PNW District Championship Projections 2019

Every year I project the field for the PNW District Championship. Here are links to the previous incarnations:

2018: PNW District Championship Projections 2018
2017: PNW District Championship Projections 2017
2016: PNW District Championship Projections
2015: PNW District Championship Projections 2015
2014: 2014 Autodesk PNW District Championship

Typically, this is done with two weeks of competition left. However, this year I’ve redone the algorithm and am prepared to start making predictions much sooner.

If you would like to see the technical details, the source code is available here: https://github.com/errorcodexero/standing_predictor. If you would like an explanation ask and I’ll try to write something up.

Here’s a bit of explanation of what the columns mean:

  1. “Team #”: Should be self-explanatory
  2. Probability that the team qualifies for the district championship. For example, if it says “0.844” that would mean the team would have and 84% chance of qualifying.
  3. “Pts 5%”: How many more district points the team would have to earn in order to have a 5% chance of qualifying for the district championship
  4. “Pts 50%”: How many more district points the team would have to earn in order to have a 50% chance of qualifying for the district championship
  5. “Pts 95%”: How many more district points the team would have to earn in order to have a 95% chance of qualifying for the district championship
  6. “Nickname”: The team’s official nickname

Known issues:
-Assumes no declines
-Assumes that teams that have not already won chairmans will not
-All teams treated as equal. So for example a rookie who’s never been to an event is ranked above Shockwave (who hasn’t played yet) because the rookie at least has a 10 point bonus to start out.
-Teams that exist in the rankings but appear to be defunct are not identified. It assumes they still have 2 events to go.

First, here’s the point cutoff probability distribution:

(49,0.0005)
(50,0.001)
(51,0.005)
(52,0.0265)
(53,0.05)
(54,0.098)
(55,0.1095)
(56,0.1495)
(57,0.19)
(58,0.1445)
(59,0.1085)
(60,0.061)
(61,0.0345)
(62,0.016)
(63,0.004)
(64,0.0015)
Team #	P(DCMP)	Pts 5%	Pts 50%	Pts 95%	Nickname
4125	1	0	0	0	Confidential
2980	1	0	0	0	The Whidbey Island Wild Cats
2557	1	0	0	0	SOTAbots 
1983	1	0	0	0	Skunk Works Robotics
6443	1	0	0	0	AEMBOT
5803	1	0	0	0	Apex Robotics
2990	1	0	0	0	Hotwire
2930	1	0	0	0	Sonic Squirrels
2910	1	0	0	0	Jack in the Bot
5827	0.991	0	2	6	Code Purple
1425	0.982	0	3	7	Error Code Xero
1540	0.968	0	4	8	Flaming Chickens
948	0.95	1	5	9	NRG (Newport Robotics Group)
5085	0.95	1	5	9	LakerBots
2976	0.95	1	5	9	Spartabots
2928	0.875	4	8	12	Viking Robotics
2046	0.845	5	9	13	Bear Metal
6445	0.752	8	12	16	CTEC Robotics
4043	0.752	8	12	16	NerdHerd
3574	0.752	8	12	16	HIGH TEKERZ
4309	0.72	9	13	17	4-H Botsmiths
7819	0.699	43	47	51	Automataardvarks
7803	0.699	43	47	51	Pioneer Robotics
7776	0.699	43	47	51	MVR
7696	0.699	43	47	51	Gear Hounds 
7493	0.699	43	47	51	Phoenix Force Robotics
4057	0.69	10	14	18	Klamath Basin Robotics - STEAMPUNK 
3588	0.69	10	14	18	the Talon
7034	0.663	11	15	19	2B Determined
6845	0.663	11	15	19	River Bots
4512	0.638	12	16	20	Otter Chaos
1318	0.638	12	16	20	Issaquah Robotics Society
4513	0.597	14	18	22	Circuit Breakers
5937	0.579	15	19	23	MI-Robotics
997	0.56	16	20	24	Spartan Robotics
2915	0.56	16	20	24	Pandamonium
7118	0.537	48	52	56	ScotBots
4060	0.518	18	22	26	Bearcat Robotics
2733	0.495	19	23	27	Pigmice
4579	0.471	20	24	28	RoboEagles
4469	0.447	21	25	29	R.A.I.D. (Raider Artificial Intelligence DIvision)
3711	0.447	21	25	29	Iron Mustang
2097	0.447	21	25	29	Phoenix Force Robotics
3238	0.426	22	26	30	Cyborg Ferrets
5450	0.406	23	27	31	SHREC - St. Helens Robotics and Engineering Club
5468	0.385	24	28	32	Chaos Theory
3663	0.385	24	28	32	CPR - Cedar Park Robotics
360	0.385	24	28	32	The Revolution
6465	0.385	53	57	61	Mystic Biscuit
6442	0.385	53	57	61	Modern Americans
6129	0.385	53	57	61	Warp Speed, Scotty !
6076	0.385	53	57	61	Mustangs
5975	0.385	53	57	61	Beta Blues
5970	0.385	53	57	61	BeaverTronics
5920	0.385	53	57	61	VIKotics
5748	0.385	53	57	61	Adna Pirate Robotics
4980	0.385	53	57	61	Canine Crusaders
492	0.385	53	57	61	Titan Robotics Club
4911	0.385	53	57	61	CyberKnights
4726	0.385	53	57	61	Robo Dynasty
4662	0.385	53	57	61	Byte Sized Robotics
4488	0.385	53	57	61	Shockwave
4461	0.385	53	57	61	Ramen
4127	0.385	53	57	61	LoggerBots
4110	0.385	53	57	61	DEEP SPACE NINERS
4104	0.385	53	57	61	Blackhawks
4061	0.385	53	57	61	SciBorgs
3876	0.385	53	57	61	Mabton LugNutz
3712	0.385	53	57	61	RoboCats
3693	0.385	53	57	61	GearHead Pirates
3674	0.385	53	57	61	CloverBots
3220	0.385	53	57	61	Mechanics of Mayhem
3192	0.385	53	57	61	High Visibility
3070	0.385	53	57	61	Team Pronto
2944	0.385	53	57	61	Titanium Tigers
2926	0.385	53	57	61	Robo Sparks
2898	0.385	53	57	61	Flying Hedgehogs
2635	0.385	53	57	61	Lake Monsters
2522	0.385	53	57	61	Royal Robotics
2521	0.385	53	57	61	SERT
2471	0.385	53	57	61	Team Mean Machine
2411	0.385	53	57	61	Rebel Alliance
2374	0.385	53	57	61	Crusader Bots
2148	0.385	53	57	61	Mechaknights
1595	0.385	53	57	61	The Dragons
1571	0.385	53	57	61	CALibrate Robotics
1510	0.385	53	57	61	Wildcats
1432	0.385	53	57	61	Metal Beavers
4450	0.366	25	29	33	Olympia Robotics Federation
3812	0.366	25	29	33	Bits & Bots
1899	0.366	25	29	33	Saints Robotics
1258	0.349	26	30	34	SeaBot
7627	0.314	28	32	36	Descendants of G.O.R.T.
4205	0.314	28	32	36	ROBOCUBS
4131	0.314	28	32	36	Iron Patriots
3826	0.314	28	32	36	Sequim Robotics Federation "SRF" 
3223	0.314	28	32	36	Robotics Of Central Kitsap
1778	0.314	28	32	36	Chill Out
957	0.298	29	33	37	SWARM
847	0.298	29	33	37	PHRED
2907	0.298	29	33	37	Lion Robotics
2412	0.298	29	33	37	Robototes
5683	0.284	30	34	38	Hello World
7461	0.269	31	35	39	Binary Circles
6831	0.269	31	35	39	 A-05 Annex
6343	0.269	31	35	39	Steel Ridge Robotics
5588	0.269	31	35	39	Reign Robotics
5198	0.269	31	35	39	Knight Tech
4915	0.269	31	35	39	Spartronics
6350	0.255	32	36	40	Clawbots
2147	0.255	32	36	40	CHUCK
4173	0.241	33	37	41	 IMVERT (Interscholastic Mount Vernon Engineering Robotics Team)
3268	0.241	33	37	41	Vahallabots
2903	0.229	34	38	42	NeoBots
3636	0.207	36	40	44	Generals
3237	0.207	36	40	44	Event Horizon
2811	0.196	37	41	45	StormBots
7032	0.185	38	42	46	Raptors
4682	0.185	38	42	46	BraveBots
2605	0.185	38	42	46	Seamonsters 
2550	0.185	38	42	46	Skynet
949	0.174	39	43	47	Wolverine Robotics
7448	0.174	39	43	47	S.C. Robotics
6696	0.174	39	43	47	Cardinal Dynamics
488	0.174	39	43	47	Team XBot
1294	0.174	39	43	47	Top Gun
4692	0.163	40	44	48	Metal Mallards
3681	0.163	40	44	48	Robo-Raiders
3393	0.163	40	44	48	Horns of Havoc
3049	0.163	40	44	48	BremerTron
1359	0.163	40	44	48	Scalawags
753	0.151	41	45	49	High Desert Droids
4683	0.151	41	45	49	Full Metal Robotics
955	0.141	42	46	50	CV Robotics
3218	0.141	42	46	50	Panther Robotics
7204	0.132	43	47	51	Freedom Gliders
6959	0.132	43	47	51	Organized Chaos
4051	0.132	43	47	51	Sabin-Sharks
3131	0.132	43	47	51	Gladiators
2927	0.132	43	47	51	Pi Rho Techs
6503	0.122	44	48	52	Iron Dragon
4180	0.122	44	48	52	Iron Riders
3786	0.122	44	48	52	Chargers
3219	0.122	44	48	52	TREAD
4918	0.114	45	49	53	The Roboctopi
3684	0.114	45	49	53	Electric Eagles
3673	0.114	45	49	53	C.Y.B.O.R.G. Seagulls
2906	0.114	45	49	53	Sentinel Prime Robotics
568	0.106	46	50	54	Nerds of the North
3024	0.106	46	50	54	My Favorite Team
5977	0.0971	47	51	55	Rosemary Rebels
4681	0.0971	47	51	55	Murphys law
4089	0.0971	47	51	55	Stealth Robotics
5295	0.0864	48	52	56	Aldernating Current
2929	0.0762	49	53	57	JAGBOTS
3 Likes

Here are updated predictions, after the week 3 events.

Cutoff distribution
(51,0.0005)
(53,0.003)
(54,0.014)
(55,0.0495)
(56,0.063)
(57,0.165)
(58,0.226)
(59,0.24)
(60,0.136)
(61,0.0515)
(62,0.0305)
(63,0.012)
(64,0.007)
(65,0.0025)
(66,0.0005)
Team #	P(DCMP)	Pts 5%	Pts 50%	Pts 95%	Nickname
948	1	0	0	0	NRG (Newport Robotics Group)
2990	1	0	0	0	Hotwire
2930	1	0	0	0	Sonic Squirrels
4980	1	0	0	0	Canine Crusaders
4125	1	0	0	0	Confidential
3024	1	0	0	0	My Favorite Team
2980	1	0	0	0	The Whidbey Island Wild Cats
2557	1	0	0	0	SOTAbots 
7034	1	0	0	0	2B Determined
6845	1	0	0	0	River Bots
6443	1	0	0	0	AEMBOT
5803	1	0	0	0	Apex Robotics
5468	1	0	0	0	Chaos Theory
5085	1	0	0	0	LakerBots
4060	1	0	0	0	Bearcat Robotics
2910	1	0	0	0	Jack in the Bot
1983	1	0	0	0	Skunk Works Robotics
1540	1	0	0	0	Flaming Chickens
1425	1	0	0	0	Error Code Xero
1318	1	0	0	0	Issaquah Robotics Society
3674	1	0	0	2	CloverBots
3574	1	0	0	2	HIGH TEKERZ
3636	0.999	0	0	0	Generals
2976	0.996	0	1	5	Spartabots
2898	0.991	0	2	6	Flying Hedgehogs
5827	0.981	0	3	7	Code Purple
2522	0.981	0	3	7	Royal Robotics
2046	0.948	2	5	9	Bear Metal
7776	0.839	6	9	13	MVR
2928	0.839	6	9	13	Viking Robotics
2915	0.76	0	0	2	Pandamonium
4061	0.751	9	12	16	SciBorgs
6445	0.725	10	13	17	CTEC Robotics
4043	0.725	10	13	17	NerdHerd
4309	0.701	11	14	18	4-H Botsmiths
2521	0.701	11	14	18	SERT
4057	0.679	12	15	19	Klamath Basin Robotics - STEAMPUNK 
3588	0.679	12	15	19	the Talon
4512	0.638	14	17	21	Otter Chaos
4488	0.62	15	18	22	Shockwave
4513	0.603	16	19	23	Circuit Breakers
2471	0.603	16	19	23	Team Mean Machine
5937	0.583	17	20	24	MI-Robotics
7118	0.565	50	53	57	ScotBots
997	0.564	18	21	25	Spartan Robotics
2926	0.564	18	21	25	Robo Sparks
2097	0.564	18	21	25	Phoenix Force Robotics
4692	0.52	0	0	3	Metal Mallards
2733	0.502	21	24	28	Pigmice
1595	0.502	21	24	28	The Dragons
4579	0.481	22	25	29	RoboEagles
4469	0.458	23	26	30	R.A.I.D. (Raider Artificial Intelligence DIvision)
3238	0.433	24	27	31	Cyborg Ferrets
492	0.414	55	58	62	Titan Robotics Club
4461	0.414	55	58	62	Ramen
3876	0.414	55	58	62	Mabton LugNutz
3070	0.414	55	58	62	Team Pronto
7461	0.407	25	28	32	Binary Circles
5588	0.407	25	28	32	Reign Robotics
5450	0.407	25	28	32	SHREC - St. Helens Robotics and Engineering Club
3663	0.383	26	29	33	CPR - Cedar Park Robotics
360	0.383	26	29	33	The Revolution
2907	0.383	26	29	33	Lion Robotics
2412	0.383	26	29	33	Robototes
4450	0.363	27	30	34	Olympia Robotics Federation
3812	0.363	27	30	34	Bits & Bots
1899	0.363	27	30	34	Saints Robotics
1432	0.363	27	30	34	Metal Beavers
4911	0.347	28	31	35	CyberKnights
1258	0.347	28	31	35	SeaBot
6442	0.334	29	32	36	Modern Americans
7627	0.323	30	33	37	Descendants of G.O.R.T.
4205	0.323	30	33	37	ROBOCUBS
3826	0.323	30	33	37	Sequim Robotics Federation "SRF" 
3223	0.323	30	33	37	Robotics Of Central Kitsap
1778	0.323	30	33	37	Chill Out
957	0.313	31	34	38	SWARM
847	0.313	31	34	38	PHRED
5683	0.301	32	35	39	Hello World
2944	0.301	32	35	39	Titanium Tigers
4131	0.294	0	0	4	Iron Patriots
6343	0.287	33	36	40	Steel Ridge Robotics
5198	0.287	33	36	40	Knight Tech
4915	0.287	33	36	40	Spartronics
6350	0.272	34	37	41	Clawbots
2147	0.272	34	37	41	CHUCK
7803	0.256	35	38	42	Pioneer Robotics
4173	0.256	35	38	42	 IMVERT (Interscholastic Mount Vernon Engineering Robotics Team)
3268	0.256	35	38	42	Vahallabots
488	0.242	36	39	43	Team XBot
2903	0.242	36	39	43	NeoBots
7696	0.23	37	40	44	Gear Hounds 
5975	0.23	37	40	44	Beta Blues
6465	0.22	38	41	45	Mystic Biscuit
5920	0.22	38	41	45	VIKotics
4110	0.22	38	41	45	DEEP SPACE NINERS
3237	0.22	38	41	45	Event Horizon
3220	0.209	39	42	46	Mechanics of Mayhem
7032	0.197	40	43	47	Raptors
4682	0.197	40	43	47	BraveBots
949	0.184	41	44	48	Wolverine Robotics
7448	0.184	41	44	48	S.C. Robotics
1294	0.184	41	44	48	Top Gun
4918	0.171	42	45	49	The Roboctopi
3681	0.171	42	45	49	Robo-Raiders
3393	0.171	42	45	49	Horns of Havoc
3049	0.171	42	45	49	BremerTron
753	0.158	43	46	50	High Desert Droids
4683	0.158	43	46	50	Full Metal Robotics
955	0.146	44	47	51	CV Robotics
4662	0.146	44	47	51	Byte Sized Robotics
3693	0.146	44	47	51	GearHead Pirates
3192	0.146	44	47	51	High Visibility
1510	0.146	44	47	51	Wildcats
7204	0.136	45	48	52	Freedom Gliders
6959	0.136	45	48	52	Organized Chaos
6076	0.136	45	48	52	Mustang Mechanica
2927	0.136	45	48	52	Pi Rho Techs
2635	0.136	45	48	52	Lake Monsters
2374	0.136	45	48	52	Crusader Bots
3711	0.13	0	1	5	Iron Mustang
6503	0.129	46	49	53	Iron Dragon
5970	0.129	46	49	53	BeaverTronics
4180	0.129	46	49	53	Iron Riders
3786	0.129	46	49	53	Chargers
3219	0.129	46	49	53	TREAD
2148	0.129	46	49	53	Mechaknights
4127	0.122	47	50	54	LoggerBots
3684	0.122	47	50	54	Electric Eagles
2906	0.122	47	50	54	Sentinel Prime Robotics
1571	0.122	47	50	54	CALibrate Robotics
4104	0.114	48	51	55	Blackhawks
4681	0.104	49	52	56	Murphys law
4089	0.104	49	52	56	Stealth Robotics
2411	0.104	49	52	56	Rebel Alliance
3712	0.0835	51	54	58	RoboCats
2929	0.0835	51	54	58	JAGBOTS
6129	0.0599	55	58	62	Warp Speed, Scotty !
3673	0.0175	0	3	7	C.Y.B.O.R.G. Seagulls
7819	0	45	48	52	Automataardvarks
7493	0	45	48	52	Phoenix Force Robotics
6831	0	12	15	19	 A-05 Annex
6696	0	18	21	25	Cardinal Dynamics
5977	0	39	42	46	Rosemary Rebels
5748	0	55	58	62	Adna Pirate Robotics
568	0	28	31	35	Nerds of the North
5295	0	23	26	30	Aldernating Current
4726	0	55	58	62	Robo Dynasty
4051	0	41	44	48	Sabin-Sharks
3218	0	12	15	19	Panther Robotics
3131	0	24	27	31	Gladiators
2811	0	15	18	22	StormBots
2605	0	20	23	27	Seamonsters 
2550	0	14	17	21	Skynet
1359	0	12	15	19	Scalawags

And here’s a fancier way to look at this: 2019pnw.html (28.1 KB)

2 Likes

Thank you so much for this! It really helps teams like us to give us a better idea of what we have to do to make it!

so close…

2 Likes

Would we be able to use this to predict other districts like FMA?

That’s what your looking for :+1:

Thanks, this looks like some cool data!

How does it determine the chance for each cutoff points?
Does it take into account teams which have already competed in two districts, but have yet to play a third (which doesn’t earn them points but does deprive other teams)?
Does it take a team’s past performance into account for their anticipated points earned?

The algorithm to come up with the cutoff is basically:

  1. Create a probability distribution for how many points a generic team might earn at an event
  2. Create a probability distribution for each team in the district based on how many points they already have and the generic one from step 1 for each remaining event
  3. Take a sample from the probability distribution of each of the teams, and see where the cutoff would be if all those things actually happened.
  4. Repeat step 3 a couple thousand times.

It assumes independence in the number of points that teams earn, which is obviously incorrect. So that means that third event plays get totally ignored.

It does not take the quality of the past performances of a team into account at all to predict how many points they will earn. This is an obvious flaw and one that I think I will have to fix if I want to make meaningful predictions about advancing to worlds.

2 Likes

Interesting, have you looked at the algorithm’s predictive accuracy using past year’s data sets? To me it seems like it has too flat a percentage curve (underestimates high rank teams, overestimates low rank teams). Though, even if it was only accurate at predicting the cutoff value it would still be incredibly useful for teams.

Does it account for award points? I imagine awards are hard to do with judge’s awards, rookie ___ awards, and the sheer variety.

No validation has been done. I would expect that you are correct that highly ranked teams are underestimated and low-ranked teams are overestimated because future performance is treated as being uncorrelated with past performance.

Award points are accounted for. The points distributions that teams earn at events include all sources of points, not just robot performance. To improve the predictions making a more complicated model of awards would probably be a good thing to do though.

Since the week 4 competitions have ended, I’ve updated my predictions. It’s in a post I created with all of the districts here:

Post week 5 version is now available:

Note that all of the PNW district events are now finished, so official word about who’s in and out should be coming shortly. Also not that if you’ve missed the cutoff now but are close it may not stay that way because at least one team declining to make the trip is something that happens pretty often.

2 Likes

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.