I wrote a TamperMonkey script that will run on the district standings page of your choice and make a very crude attempt at identifying those teams that are in, likely in, on the bubble, likely out and out.

You need the Chrome extension TamperMonkey and the script at the github link above. I set it up for the New England district - if you want to use it elsewhere, you would have to modify the @match parameter on line 7 to match the URL for the district you are interested in.

The biggest reason I am bringing it to public attention is that I have no idea how to do a real statistical analysis, and so my system is very crude. I’d be interested in hearing how to better go about predicting teams’ second event score and what the invitation cutoff might be. I’ve tried to modularize a little so people can just change the right functions but it’s likely there is not enough or the right data being passed. I’m interested in feedback.

Per a recent (last?) team update, the NE district invite cutoff will be 64 teams.

That will be the top 64 teams by quality points unless a team that’s outside of the top 64 gets an invite to champs through other means (district chairmans award). If that happens then I believe the cutoff by rank moves up.

I’ve done an analysis independently, and determined the cutoff would be around 63 quality pts.
I took the average difference in points scored for all teams who played two events. On average teams improve their first event score by 3pts.
For all teams that haven’t played their 2nd event, I just took their first event score plus 3, then sorted all by pts.

This oversimplifies the problem, as some teams will compete in more than two events, the more they play the better they will likely perform. They’ll end up pulling available points out of the pool available for teams who haven’t played in two events yet… But the above method was a quick way I cane up with determining rank.

in=will have enough points to make it in
out=won't make it
~in=probably going to have enough points
~out=probably won't have enough points
bubble=could easily go either way

Best-case points to make it to district cmp: 48
Worst-case points to make it to district cmp: 99
Best estimate: 62
{'bubble': 43, 'out': 32, '~in': 38, '~out': 61, 'in': 7}
0 in 1058 - PVC Pirates
1 in 319 - Big Bad Bob
2 in 78 - AIR STRIKE
3 in 4905 - Andromeda One
4 in 230 - Gaelhawks
5 in 5813 - Morpheus
6 in 1831 - Screaming Eagles
7 ~in 1768 - Robo Chiefs
8 ~in 228 - GUS Robotics
9 ~in 176 - Aces High
10 ~in 88 - TJ(Squared)
11 ~in 4048 - Redshift
12 ~in 190 - Gompei and the H.E.R.D.
13 ~in 1153 - Robo-Rebels
14 ~in 1729 - Team Inconceivable!
15 ~in 155 - The Technonuts
16 ~in 95 - Grasshoppers
17 ~in 4761 - The Robockets
18 ~in 131 - C.H.A.O.S.
19 ~in 2370 - iBots
20 ~in 2648 - Infinite Loop
21 ~in 5962 - perSEVERE
22 ~in 4909 - Bionics
23 ~in 1519 - Mechanical Mayhem
24 ~in 2876 - Devilbotz
25 ~in 558 - Elm City Robo Squad
26 ~in 2064 - The Panther Project
27 ~in 1124 - UberBots
28 ~in 5846 - Southcoast Corsairs
29 ~in 1512 - The Metal Vidsters
30 ~in 177 - Bobcat Robotics
31 ~in 2067 - Apple Pi
32 ~in 885 - THE GREEN TEAM
33 ~in 238 - Cruisin' Crusaders
34 ~in 125 - NUTRONs
35 ~in 195 - CyberKnights
36 bubble 213 - The Dirty Birds
37 ~in 6153 - Blue Crew
38 ~in 1099 - DiscoTechs
39 ~out 5112 - The Gongoliers
40 ~out 1277 - The Robotomies
41 ~in 839 - Rosie Robotics
42 ~out 4055 - NRG4055
43 ~out 1735 - Green Reapers
44 ~out 246 - Overclocked
45 ~in 3930 - SMART Spruce Mountain Area Ro...
46 ~out 4151 - SCRAP
47 ~out 138 - Entropy
48 ~out 2342 - Team Phoenix
49 bubble 6161 - Equilibrium
50 ~out 1786 - The Robotics Team
51 ~in 4564 - Orange Chaos
52 ~in 5687 - The Outliers
53 ~in 126 - Gael Force
54 bubble 5686 - Wirecats
55 ~out 501 - The PowerKnights
56 ~out 4473 - Delta Prime
57 ~in 133 - B.E.R.T
58 out 6201 - The Highlanders
59 ~out 348 - Norwell Robotics
60 bubble 3461 - Operation PEACCE Robotics
61 ~in 175 - Buzz Robotics
62 out 3958 - Schrodinger's Cat
63 out 157 - AZTECHS
64 bubble 2084 - Robots by the C
65 out 4929 - Maroon Monsoon
66 bubble 181 - Birds Of Prey
67 out 2836 - Team Beta
68 bubble 467 - The Colonials
69 out 151 - Tough Techs
70 bubble 5746 - Human Error
71 out 3719 - STEM Whalers
72 out 3205 - Patriots
73 out 4311 - Swampscott Currents
74 out 1721 - Tidal Force
75 out 1071 - Team Max
76 bubble 166 - Chop Shop
77 bubble 1699 - Robocats
78 bubble 3182 - Athena's Warriors
79 out 1350 - The Rambots
80 out 509 - Red Storm
81 out 3323 - Potential Energy
82 out 4097 - Devilbots
83 bubble 2877 - LigerBots
84 out 3236 - TRIFORCE
85 bubble 3609 - Duct Tape Dragons
86 out 4474 - Silver Circuit
87 bubble 3467 - Windham Windup
88 bubble 999 - MechaRAMS
89 bubble 4557 - FullMetal Falcons
90 bubble 58 - The Riot Crew
91 out 178 - The 2nd Law Enforcers
92 bubble 236 - Techno-Ticks
93 out 4176 - Iron Tigers
94 bubble 1100 - The T-Hawks
95 bubble 5556 - Carriagetown Robotics
96 out 4169 - Warrior Robotics
97 bubble 5902 - The Wire Clippers
98 bubble 172 - Northern Force
99 out 5958 - Blue Wave Robotics
100 bubble 3464 - Sim-City
101 bubble 4908 - Duxbury Dragons
102 bubble 2168 - Aluminum Falcons
103 bubble 5752 - Beverly Panthers
104 bubble 716 - Who'sCTEKS
105 bubble 811 - Cardinals
106 bubble 69 - HYPER
107 bubble 6224 - The Saints
108 bubble 5000 - Hammerheads
109 out 1517 - The Lumberjacks
110 out 1474 - Master Link Militia
111 bubble 5422 - Stormgears FRC
112 ~out 5856 - Bullbots
113 bubble 121 - Rhode Warriors
114 bubble 237 - Black Magic Robotics
115 bubble 1991 - Dragons
116 bubble 4546 - ShockWave
117 ~out 5844 - Phoenix Tech
118 bubble 1073 - The Force Team
119 out 3566 - Gone Fishin'
120 ~out 5969 - English Skunkworks
121 bubble 3146 - GRANBY GRUNTS
122 bubble 4906 - The Collective
123 out 5494 - Bizarbots Robotics
124 bubble 2170 - Titanium Tomahawks
125 out 5400 - WARP
126 bubble 3654 - TechTigers
127 out 1307 - Robosaints
128 bubble 571 - Team Paragon
129 bubble 3466 - Vikings Robotics
130 out 97 - Bionic Beef
131 ~out 6172 - Team Jupiter
132 ~out 2713 - iRaiders
133 out 1247 - Robotics of Kearsarge (ROK)
134 out 1973 - Brighton Burning Tiger
135 ~out 5506 - Viking Landers
136 ~out 1740 - Ledyard Cyber Colonels
137 ~out 5491 - Cognitive Hazard
138 ~out 5471 - W.Hi.R.R.
139 ~out 5459 - Ipswich TIGERS (Technologicall...
140 ~out 3525 - The Nuts & Bolts of Fury
141 ~out 5122 - robOTies
142 ~out 2079 - 4H ALARM Robotics
143 ~out 4572 - BArlow RobAutics
144 ~out 3623 - Terror Bots
145 ~out 5735 - Control Freaks
146 ~out 5563 - Phalanx
147 out 5163 - The Aluminum Warriors
148 ~out 3780 - Robot Unicorns
149 ~out 4925 - The Resistance
150 ~out 1922 - Oz-Ram
151 out 1027 - Project Jabberwocky
152 ~out 2785 - Prometheus
153 ~out 1289 - Gearheadz
154 ~out 3634 - Spark City
155 ~out 2262 - Robo-Panthers
156 ~out 4628 - Sintian Robotics
157 ~out 5633 - Hyde Phoenix
158 ~out 4796 - Cyber Dragons
159 ~out 1761 - STEAMpunk Tigers
160 ~out 173 - RAGE (Robotics And Gadget Engi...
161 ~out 4041 - Iron Tigers
162 ~out 2423 - The KwarQs
163 ~out 4042 - Murphy's Lawyers
164 ~out 4555 - Sprocketology
165 ~out 1965 - Firebirds
166 ~out 3718 - Junkyard Battalion
167 ~out 5129 - Digital Devils
168 ~out 3451 - The ANOMALY
169 ~out 1757 - Wolverines
170 ~out 5347 - Gryphons
171 ~out 3597 - Robo-Rangers
172 ~out 3585 - Rogue Robots of 4-H
173 ~out 3104 - The Cyber Rams
174 ~out 5265 - Radical Impact
175 ~out 4987 - MegaRams
176 ~out 4958 - Robocats
177 ~out 2523 - Tech Storm
178 ~out 5142 - Robo Dominators
179 ~out 3555 - Aluminati
180 ~out 663 - Robonauts

It’s your posts that inspired me to do it with TamperMonkey, and in fact I tried to use your methodology but I struggled to understand the Python code. I only vaguely know the language. I did copy your 5 classifications.

While your posts are awesome and much appreciated, I thought it would be neat to go to the district rankings page and have them automatically do what I wanted right in the browser - the beauty of Grease - er - TamperMonkey. (The original name is so much better!)

My son is taking Python - with your permission, when I get a chance (probably next season at this point) I will, with his help, translate your algorithm into Javascript.

I wonder if there’s some way that we could combine our efforts. Putting them inline with the results webpage is definately more elegant than my output. At the same time, I have no idea how to run a TamperMonkey script, and I bet I’m not the only one. I’m not sure what the easiest way is to let people get results is.

How do you run a TamperMonkey script anyway? I tried installing it and got a page that looked IDE-like so I copied your code in but then I wasn’t sure what to do next.

I haven’t been keeping up on the latest Javascript stuff, so I feel like there’s probably some security rules that will prevent this, but is it possible to make a webpage that loads a remote page and then parses it? Can you make an iframe and then mess with its contents? Could this be done with just a normal webpage?

I feel like the less barriers to entry for someone running the script the more useful it will be. For example, I don’t know whether anyone besides me has tried to run my script despite it being publicly available for years. I wonder if ultimately the right thing is to put a CGI script together on a server someplace.

What do you think? Either way, feel free to copy the algorithm. And I know it’s a little sparse on comments so I’m happy to answer questions about what it’s doing.

Once you install a script on your local copy of TamperMonkey, it should run automatically when you go to a page whose URL matches the @match line in the script. So go to the url that the match field says and it should run. If it doesn’t, click on the TamperMonkey extension’s icon - it should at least indicate that there is a script that can run. Obviously that matching URL is a little specific, and it should be made more general to work for all districts.

I think you’re right about this. The TamperMonkey extension is a little work - first you have to install the extension, then you have to go and find matching scripts. It’s fun but what would be better is, as you suggest, a web page. There is an API available to pull this data from FRC, so that would probably make the most sense.