Hi everyone! With Week 1 in the books, I wanted to reintroduce the FRC community to Statbotics (statbotics.io). Statbotics aims to modernize FRC data analytics, and currently includes Elo and OPR data, available through a website, REST API, and Python package.
A few examples:
2022 Global Elo and OPR Rankings
Stay up to date on the most dominant FRC teams this season. So far, 1678 has already hit an Elo of 2000, and five teams have an OPR of at least 50. Check the full page out at Teams - Statbotics.
Event Insights and Simulation
For completed and ongoing events, understand the competitive landscape through Elo and OPR tables and graphs. Event simulation is experimental, but should improve as the season progresses. Check out the full page at statbotics.io/event/2022caph.
Explore with the Python API
The Statbotics Python API allows you to query years, teams, events, and matches, filtering and ordering by several fields. Hereâs a quick example to load the top 5 teams in Israel in 2022 by Elo as of Week 1. Check the documentation at statbotics.readthedocs.io.
import statbotics
sb = statbotics.Statbotics()
sb.get_team_years(year=2022, country="Israel", fields=["team", "name", "elo_max", "opr_no_fouls"], metric="elo_max", limit=5)
[{'team': 1690, 'name': 'Orbit', 'elo_max': 1948, 'opr_no_fouls': 55.1},
{'team': 1577, 'name': 'Steampunk', 'elo_max': 1691, 'opr_no_fouls': 25.97},
{'team': 1574, 'name': 'MisCar', 'elo_max': 1656, 'opr_no_fouls': 26.77},
{'team': 2231, 'name': 'OnyxTronix', 'elo_max': 1621, 'opr_no_fouls': 15.25},
{'team': 5654, 'name': 'Phoenix', 'elo_max': 1616, 'opr_no_fouls': 25.11}]
A script runs every six hours to query data from TheBlueAlliance and keep Statbotics up-to-date. The full documentation and code is available on GitHub: GitHub - avgupta456/statbotics: đ Modernizing Data Analytics for FRC Robotics.
I will be using this thread to broadcast feature updates, share data observations, and answer any questions you all may have. I am excited to see how everyone uses this platform, and please let me know if I can answer any questions or improve anything. Thanks!