Pre-Worlds (and hopefully live) ELO ratings

Hi all,

I’ve got a bot tending a google sheet containing team ELO ratings for the season, as well at ratings from previous seasons. Teams like things like this for scouting, so I thought I’d share it. Here’s a link to the shared folder with all the sheets, including an archived one for today (Apr 15, 2019) which I added in case something goes wrong with the live sheet: https://drive.google.com/drive/folders/1zNNNHjfZuxf3VJYvG6fIxQnEQOIR9Gdu

The ratings generally are pretty accurate at predicting the success of teams at the world championship. If you look at the historical data, one of the top 2 teams on my ratings wins the high school World Championship almost every year, with the exception of one or two years, where the winning team was in the top 4 I believe.

Also, the specific high school/middle school ratings aren’t necessarily accurate, since vexDB can’t properly classify all middle school teams. So if you’re a middle school team improperly classified as a high school team, I’m aware of this.

You can ignore the rest of this post if you aren’t interested in how it works or the parameters I’m using for the rating calculations. If you are interested but don’t know how ELO works, then I suggest doing a quick google search before reading the rest of the post. I’m glad to answer questions as well.

These ratings are using a pretty standard ELO system with a few provisional matches, as well as a proportional weighting system for alliance partners. That is, if you have more points than your partner, you will earn/lose more points than them, as a reward for “carrying them”. For example, team A has 1000 points and team B has 500, and together they earn 60 from winning a match. Team A has 1000/1500 of the alliance’s total ELO score, so they would receive 1000/1500 (2/3) of those 60 points, meaning they get 40 points added to their rating, and team B would only get 20 points added to their rating. Their opponents would lose points in the same manner, as a ratio of the sum of their points.

I’m using a k-factor of 64, which is divided between the two teams on an alliance (equally matched partners would each effectively have a k-factor of 32, whereas a team carrying another team would have a higher effective k-factor due to the system described above). Things like DQs and no-shows are not currently factored in to the system.

Let me know what you all think, and happy scouting.

14 Likes

Thanks for this! It is really helpful for my middle school team when scouting in their division.

1 Like

Pretty cool. Question - does this only take into account this year’s data? In other words, there is no carry over rankings/points from previous year.

1 Like

Are you able to do this for vexU? This is pretty cool BTW

Each season’s rankings only takes the current year into account. I can’t justify carrying ratings over because there are too many variables that change between seasons for a given team. Student turnover and number changes make carrying over ratings not make much sense.

1 Like

As for doing ratings for VEXU, most VEXU teams do not play that many matches in a season, and because of the nature of their competition and my own personal experience, I do not believe ELO ratings are a good measure or predictor of VEXU team performance.

Ok, thank you

I think there is a case to be made that ELO rankings wouldn’t be that helpful in EDR as well. Things like bad early seasons could ruin a teams ELO(us), or being in a hard state, or going to a signature event where matches are most definitely harder. They could be used as a general guide, but definitely not your main source for alliance selecting.

yet past seasons results contradict your assertion that it is not useful for VRC.

Likely HS winners were in the top five Elo Rankings.

Mileage may vary.

Interesting, do you know if this is consistence with previous years as well? I might have to change my mind.

Jason specifically mentions that top 2-4 won HS.

Guess I missed that, oh well

1 Like

For Anyone Wondering, Here Is The List Of Divisions With Their Elo Rank Made With A Quick Python Script…

–ENGINEERING–
Elo Rank Team

6 6135K
16 2775B
18 6008D
28 99402C
29 170A
43 55055A
47 114T
49 162A
52 2131M
57 56J
60 1010X
61 315G
81 1275A
86 20785A
87 134G
91 2D
105 5203S
110 71303A
112 4104A
130 121X
132 1104X
136 1124A
154 2011D
156 47618B
163 4549B
172 74762B
180 598A
190 9457Y
193 8995M
214 5776T
243 323Y
244 1320B
255 10955M
267 6277A
268 7983J
276 2263C
315 4303C
316 9409C
334 48667A
338 9210A
378 8031E
382 2602H
394 3532B
440 154A
479 2900A
481 99679H
488 9635A
501 248F
514 41998B
516 1492W
522 9698V
544 77788J
546 81785K
581 1429B
631 63840T
640 1814D
642 9776D
645 1965T
710 356Y
813 5588D
841 33691A
844 2437A
858 2158K
895 6526D
916 6761F
936 6724C
1110 3162Z
1186 285X
1231 986B
1340 507E
1355 9060H
1429 8787A
1440 8637A
1570 7646J
1689 929X
1831 16075D
1848 37409A
2009 666S
2096 38211A
2112 9181C
2136 8447A
2378 7316F
2406 7862K
3016 5327R
3137 8861B
3193 56332M
3294 60953A
3560 8331A
3664 69222A
4057 7258B
4172 19000H
4331 8079A
4439 5884A
5969 36620A
8397 39Z

–MATH–
Elo Rank Team

3 574C
4 9545W
30 169A
40 99900A
62 4478V
72 1320D
79 21S
99 1859S
102 56736C
104 8110R
117 1028R
119 3674R
120 315R
126 5509A
129 40404A
145 5090Z
146 375X
151 7862X
175 9181Z
192 2886A
200 4393S
201 9364A
210 3273B
215 5249Z
226 1437Z
229 1181B
263 97934W
274 6403C
275 16099B
296 11124R
310 265T
322 929H
341 3217A
354 6277C
356 36116A
372 20181X
397 2496Y
424 4253G
443 2131R
472 3946E
477 6671X
525 240P
531 1742A
554 200X
558 1961A
590 70857B
599 8447E
615 1509E
667 60466A
697 90990A
702 8059A
728 750R
735 6627B
825 67766A
934 4815B
963 72832C
980 3018A
988 21050A
1007 10B
1009 5588V
1016 7139B
1018 58072A
1026 12E
1053 7984A
1075 244C
1097 4112A
1127 2775H
1206 590D
1217 6741D
1228 8675C
1232 8349A
1254 1248A
1269 9421X
1287 2921R
1316 1563C
1334 5327X
1364 599C
1505 1350X
1517 11411A
1552 6109C
1571 901J
1708 88899B
1833 49181D
2046 3389C
2158 46304V
2189 99000B
2345 7792F
2382 9727A
2419 88000X
2446 99490A
2948 61601B
3052 3547A
3522 7386P

–SCIENCE–
Elo Rank Team

2 8349B
8 1961U
13 1008M
26 5509B
34 4478X
36 536E
38 6627X
41 8110X
45 315X
51 288A
54 7405P
58 574D
65 491A
76 9950A
80 355E
83 22095A
90 185A
103 7K
128 709S
147 2019F
148 910X
159 2114V
166 99904A
184 10E
185 1757A
213 8800X
218 3116A
220 404Z
224 7536B
231 169X
232 26982E
245 11124X
248 4255B
256 9447A
281 62A
290 97371A
292 9909C
309 1028Z
311 5S
344 9364C
363 3946W
375 12F
387 5686C
415 64040A
429 8892A
431 41364A
455 9185A
490 52521C
491 6121A
519 2131S
569 3773U
574 7842F
578 244D
580 9545Z
582 1353P
603 3389E
607 590M
611 1509Z
650 11423A
656 675A
680 2316A
693 1575X
695 729M
714 7870E
763 321A
824 2011A
854 98060C
873 14606A
931 56272A
1086 7700S
1096 5106C
1152 2941A
1234 5868A
1265 16101X
1320 96671A
1386 4393Z
1403 7225B
1788 25322A
1792 8223B
1950 278E
2078 8685Y
2110 33182A
2279 464M
2295 66799A
2569 3616F
2635 60466M
2710 8059X
2831 1193Z
2919 1320E
3080 9020A
3535 6194A
4229 6822B
4245 929N
4278 1264D
5406 3715H
5800 8451C
5836 4825A

–TECHNOLOGY–
Elo Rank Team

9 8349E
12 1533M
21 86868R
23 1045A
27 9457B
31 11495A
35 2114X
66 4410C
88 67101B
95 169Y
97 491X
98 25461Z
100 1375A
113 7536R
124 60883A
134 27183R
138 7232X
139 10099J
141 1588B
157 5139C
158 321H
164 4142B
168 3131V
179 81118P
186 1460Z
188 91A
199 7701T
209 40B
212 3815M
217 2460A
228 4505A
237 2131Z
246 333E
250 8000B
254 96671X
266 12G
305 9922X
327 1200A
330 675B
332 34000R
336 356A
350 1115A
352 1341W
361 9031C
393 2028A
430 5776A
433 4828H
439 9848A
445 99588A
459 1961X
506 1267C
512 790X
538 3638A
545 2011B
568 6645A
628 42904G
648 10N
655 9364D
677 8825S
684 464Z
708 2828J
719 6842A
727 288B
745 7432E
754 7110F
809 9573A
827 62X
828 6121C
843 7316B
848 54001A
859 5W
893 242A
967 9123C
981 8931G
1036 18650A
1067 528V
1092 569A
1142 8568H
1207 6210X
1251 315Z
1303 99905A
1454 2322A
1553 1764B
1603 2218B
1643 55563B
1674 39A
1760 97673R
1884 590X
2019 929S
2213 56332B
2700 7853A
2822 824C
3571 8059Z
4402 16101Y
4879 6463A

–ART–
Elo Rank Team

11 2011F
15 4478D
20 6627A
22 285Z
25 2131P
33 1561H
37 590B
44 1104Z
46 1028A
56 77788Y
74 6403A
78 7862S
82 134J
85 2396A
116 2442C
122 67292X
127 6277B
133 750E
143 5225A
169 9545B
178 9257R
194 21012D
202 16099A
208 41091A
227 109Z
234 6008E
241 1320C
247 97140A
251 1737B
271 5090A
273 59990Z
288 353X
293 323Z
312 1138A
313 8110C
329 5735Z
339 9409Z
366 72715Z
377 1437V
391 8336Z
396 183Z
402 93063A
417 1492X
419 765A
423 2158R
452 4610Z
454 2U
460 4815A
475 315J
487 12A
492 5327S
494 97871A
498 1233A
513 8675B
526 20002X
539 98898X
575 5588E
587 2775E
600 9181Y
629 6105C
632 4911A
661 7133A
662 5776X
758 2919A
786 359A
839 4004Y
970 99484C
982 22699A
1037 11574B
1221 96498A
1256 8447C
1302 2616Y
1382 67677B
1602 8044A
1647 666U
1742 901C
1815 70181A
2207 3931A
2426 55098A
2740 817B
3027 7386M
3349 88678A
3430 61601A
3564 8787C
3957 2496R
4106 7983W
4354 9060J
4407 1913A
4411 33691B
5019 56332P

–RESEARCH–
Elo Rank Team

1 9605A
5 2011C
7 45464Z
10 6842Z
14 7121E
17 6008A
39 9922Z
48 5203R
53 920C
68 177V
70 66618Z
71 967A
75 6135H
84 1320A
89 248A
106 1010N
107 5588C
108 7701X
121 3141S
131 1200Z
140 365X
149 7316E
150 4411S
152 1965A
160 929U
173 4154B
174 843H
177 134C
198 3162A
205 2737A
223 2990G
225 46535K
242 5327C
249 80708X
257 169Z
259 675D
262 2142E
265 1115B
277 1408F
295 5408R
298 5776E
307 21246D
317 1104S
326 50505A
345 97673W
358 4100A
412 3818A
432 7853D
437 32226A
447 16101Z
457 9457W
458 24365A
515 91709A
542 2602A
589 1898R
597 1274A
633 4828S
674 6724B
692 586B
767 20610N
771 1069E
774 56G
784 2355A
795 79267A
847 288E
862 16075B
874 8301E
902 39K
906 64846A
957 6090B
1043 9409B
1091 11495B
1101 8757C
1187 373A
1198 14641B
1257 74762A
1305 7258A
1313 6210Z
1346 8031C
1427 2854B
1610 343X
1691 63303A
1845 15376A
1888 356B
1934 81218B
1958 5956A
1972 56332C
2088 4303A
2193 76209X
2768 8855B
2868 894F
2936 99679A
4966 22366A
6546 986A
6797 8598A

6 Likes

There we go, right towards the bottom of Engineering, just where we want to be :smile:

Please use hide details so that its easier to see posts below you!

How to do that

It’s under the gear when you’re posting

5 Likes

on vex db you can change the api to different seasons.

check out: https://vexdb.io/the_data

There are Matches, Rankings, Season-Rankings, Awards, Skills etc.

In each of these you can filter through teams, season, etc.

To get to the season you want. In the query use something like this

https://api.vexdb.io/v1/get_skills?program=VRC&season=Turning%20Point&season_rank=true&limit_number=5000&type=2

Thanks for sharing this data !

My elo scrape did not pickup data for the following teams in the Art Division.

|4205A|Infinity|
|4318B|Hurricane|
|16666A|Hefei No.1 HS|
|36632A|ROBOPOWER|
|3747B|Carrollton B|

I know at least one of those teams hasn’t competed in any events yet this year (probably due to V5 troubles plus local events filling up quickly), and I imagine some of the others may have only competed in events whose data has not yet been seen by VexDB, or may not be in Robot Events.

1 Like

This is highly likely to be the case, but I can’t confirm it either way, and once they play some matches at World Championship, they’ll get a ranking in the live sheet.

I’ll be monitoring the bot from time to time to make sure the rankings are being updated, but I won’t be able to get to rebooting it until later in the evening since I’ll be head reffing matches all day. As long as vexDB is getting data and I keep the bot running, the live sheet will have data by the end of each day of matches hopefully.

3 Likes