FRC Elo Ratings - Updated Live During Championships.

Introduction

Hello, everyone.

I have been interested in FRC ranking/rating systems for several years and have developed a website that calculates and displays Elo ratings for every active FRC team. The website in its current iteration can be found here: https://carlcolglazier.com/frcelo/

Barring any technical difficulties, the ratings should update every ten minutes during Championships. I also plan on using the predictive abilities of Elo ratings to calculate ranking probabilities. This feature will likely be finished at some point this weekend.

The source code that runs the website is public under an MIT License on GitHub.

Methodology

A mathematical description of the model used for the ratings can be found here.

TL;DR: teams are rewarded for performing above expectations and punished for performing below expectations based on score margins.

Some Ranking Examples

Here are the rankings for the top one hundred teams computed by the method described above. All of the ratings, of course, can be found here.

Top 100 by Elo Rating
[spoiler]


   1. frc254   481.368
   2. frc2481  374.464
   3. frc1986  372.644
   4. frc1678  371.402
   5. frc118   370.560
   6. frc2056  356.639
   7. frc195   345.838
   8. frc1619  338.527
   9. frc3663  337.990
  10. frc1574  337.477
  11. frc33    330.786
  12. frc2168  328.942
  13. frc987   328.246
  14. frc3130  321.549
  15. frc3309  320.088
  16. frc2122  313.921
  17. frc971   313.737
  18. frc4143  313.456
  19. frc330   308.713
  20. frc1730  299.698
  21. frc1114  298.423
  22. frc303   295.066
  23. frc2046  291.412
  24. frc610   290.578
  25. frc1923  288.021
  26. frc604   287.586
  27. frc3255  286.082
  28. frc948   285.741
  29. frc1807  285.740
  30. frc180   284.634
  31. frc148   284.373
  32. frc973   282.813
  33. frc2791  282.259
  34. frc2848  276.080
  35. frc1538  275.656
  36. frc876   275.489
  37. frc71    274.009
  38. frc4536  273.404
  39. frc3937  272.690
  40. frc16    271.461
  41. frc3419  270.858
  42. frc4976  270.688
  43. frc3824  270.399
  44. frc3015  270.106
  45. frc469   267.923
  46. frc78    267.493
  47. frc1255  267.170
  48. frc384   265.633
  49. frc3238  265.539
  50. frc1595  261.976
  51. frc1806  260.791
  52. frc399   259.894
  53. frc4613  259.122
  54. frc3230  258.471
  55. frc5172  258.426
  56. frc2875  258.210
  57. frc3310  257.228
  58. frc3005  256.996
  59. frc3284  256.125
  60. frc1732  255.403
  61. frc2974  255.116
  62. frc4028  255.105
  63. frc2614  255.061
  64. frc4451  254.451
  65. frc4488  254.088
  66. frc2052  253.428
  67. frc2073  253.228
  68. frc3538  252.750
  69. frc1477  252.222
  70. frc2512  251.666
  71. frc5499  250.100
  72. frc3132  249.731
  73. frc2164  249.618
  74. frc694   247.914
  75. frc340   247.592
  76. frc4941  247.554
  77. frc2590  246.606
  78. frc1507  246.035
  79. frc2992  245.705
  80. frc179   245.533
  81. frc4561  245.475
  82. frc222   245.109
  83. frc2410  244.879
  84. frc3528  244.867
  85. frc135   244.756
  86. frc4334  244.684
  87. frc2062  244.460
  88. frc1746  243.925
  89. frc494   243.744
  90. frc1690  242.995
  91. frc2363  241.800
  92. frc3793  241.208
  93. frc3683  239.855
  94. frc379   239.297
  95. frc4253  238.479
  96. frc272   238.400
  97. frc1885  237.608
  98. frc3256  237.206
  99. frc2767  237.139
 100. frc333   236.802

[/spoiler]

I would be reneged if I did not use my favorite North Carolina teams as an example.

Rankings of NC District Teams
[spoiler]


  81. frc4561  245.475
 125. frc587   227.700
 252. frc2642  198.126
 254. frc3196  197.727
 320. frc5190  186.731
 332. frc1533  185.170
 381. frc435   179.063
 499. frc3402  168.267
 560. frc2682  162.438
 588. frc3737  159.394
 672. frc900   152.394
 693. frc4935  150.906
 897. frc3229  135.298
 944. frc5511  131.685
1023. frc6004  126.742
1118. frc2059  121.943
1143. frc6003  120.247
1164. frc2640  119.144
1304. frc6500  111.544
1323. frc6332  110.407
1332. frc5160  110.030
1426. frc4290  104.732
1522. frc3459  99.011
1531. frc5854  98.620
1584. frc5544  95.670
1595. frc4816  94.825
1636. frc5518  92.085
1743. frc4534  86.180
1814. frc3506  81.905
1873. frc3331  78.421
1896. frc4795  77.270
1926. frc4291  75.416
1961. frc6729  72.474
1986. frc2655  70.975
2117. frc3796  64.525
2148. frc1225  61.660
2159. frc6502  60.565
2193. frc3845  58.389
2217. frc5679  57.195
2421. frc6240  44.368
2488. frc3215  39.752
2494. frc6639  39.284
2501. frc3336  38.903
2608. frc4829  33.010
2631. frc3971  31.649
2708. frc6214  26.052
2712. frc4767  25.738
2849. frc5607  14.311
2981. frc5919  1.561
2987. frc6565  1.182
3003. frc3822  -0.624
3013. frc4828  -1.338
3054. frc5727  -5.700
3194. frc6512  -25.458
3212. frc3661  -28.929
3223. frc6215  -31.046
3268. frc5762  -39.493
3305. frc6426  -64.332
3312. frc3680  -70.036

[/spoiler]

Thanks and Acknowledgements

Special thanks to Caleb Sykes upon whose optimizations much of the system is based.

*Thank you to everyone who takes a look at these ratings and remember that this is all for fun. :slight_smile: *

Enjoy!

Neat!

Suggestion for this and any other purely statistical analyses that people invent: offer an option to filter teams by district. Offering that option would make it a lot easier to compare these results to the “eyeball test” for people in districts.

I’m extremely excited about this and was happy to provide the research into the model foundation. I think sites like this and divisions.co provide data in a much more digestible way than does my scouting database, which I think is great.

In case anyone is wondering why the Elo ratings on this site differ from the Elo ratings I post, there are two key differences:
Carl’s ratings give new teams a rating of 0, while mine gives new teams a rating of 1350. While I agree that starting from 0 makes more intuitive sense than starting at 1350, I chose the pseudo-mean of my system to be 1500 in order to remain in line with most other Elo systems. It doesn’t really matter though since only the differences in ratings are used to make predictions.

Carl’s ratings begin calculation in 2002, while mine begins in 2008. I chose 2008 as a starting point because there are some big gaps in 2007 data. This also shouldn’t matter long term since all of our ratings should converge (with the 1350 offset of course).

Altogether, my ratings are roughly 1400 points higher on average than these ratings.

Great work!

Update (2017-04-19)

I have updated the website to include rank predictions and simulated results. The system runs 10,000 simulated future versions of the event and tallies each team’s average rank score, average rank, and the percentage of outcomes where teams end up in the top seed or in an alliance captain position.

I think it will be fun to watch these simulations update as the matches are played.

The ranking point predictions seem to be on the low side. Do you account for pressure/rotor ranking points at all or just the WLT ranking points?

The current ranking point predictions are based only on WLT, but pressure/rotor ranking points will become more of a factor as more matches are played.

This is a really neat metric…

Would it be feasible to represent this data so we could see how the top 5 or 10 teams ratings have changed over the last few years?

The site is updating once again for the Championship event in St. Louis. Simulations are running for each division.

great start, however I have trouble believing some of these predicted rankings (this may be because it is the start of the St.louis champs). It may be me, but for the most part I feel Michigan teams rankings may be a bit inaccurate. I have trouble believing teams like 469(ranked 32) (although good) are so much better than teams such as 67(ranked 141) or 2834 (ranked 319). However I will continue to look at the web sight to see if these anomalies are straightened out over the coarse of the comp