Skip to content
Scouting & Strategy·Lesson 12 of 32

Statbotics and the EPA Model

Statbotics computes EPA, a points-unit rating that builds on Elo, splits into auto/teleop/endgame components, and is more predictive than OPR.

Sign in to track progress, earn XP, and save lessons.

What Statbotics is

Statbotics (statbotics.io) is an open-source FRC analytics platform whose central feature is the EPA rating system. It pulls match data from The Blue Alliance and publishes ratings, match predictions, and event simulations, accessible via the website, a Python library (pip install statbotics), a REST API, and CSV exports.

What EPA means

EPA stands for Expected Points Added. It estimates a team's average point contribution to a match. Conceptually it is a moving average of a team's performance expressed in points: to predict a match, you add up the EPAs of the teams in each alliance; the gap between predicted and actual score is the error, and each team's EPA is nudged based on that error after every match. This is the same updating idea as the Elo rating system, but Statbotics converts it into point units (so EPA reads like OPR) and adds modifications that improve accuracy and calibration.

Component and ranking-point EPA

A big advantage over OPR is that EPA breaks into components you can interpret separately:

  • Auto EPA — contribution during autonomous.
  • Teleop EPA — contribution during the driver-controlled period.
  • Endgame EPA — contribution at the end of the match.
  • Ranking-point EPA — contribution toward earning bonus ranking points.

This lets you ask precise questions like "who has the best autonomous?" or "who reliably earns the endgame ranking point?" directly from public data.

Normalized (unitless) EPA

Raw EPA is in this year's points, so it cannot be compared across seasons. Statbotics also publishes normalized EPA on a unitless Elo-style scale (it uses the same units as the Elo model) where 1500 is roughly average, ~1800 is about the top 1%, and ~2000 is an all-time great season. On that scale a difference of about 250 points corresponds to roughly a 75% win probability for the higher-rated team, which lets you compare teams across different years and estimate matchups.

EPA vs OPR

EPA is generally more predictive than OPR and, unlike OPR, it is a moving average (so it weights recent matches and adapts as a team improves during an event) and it separates into interpretable components. It still shares one major blind spot with OPR: it is built from scoring and does not directly measure defense, and it cannot capture reliability nuance the way watching a robot can.

How to use Statbotics in scouting

  • Pre-event seeding of expectations: sort teams by EPA (and by component) to know roughly who is strong before you have your own data.
  • Picklist cross-check: compare your scouting-based ranking against EPA; investigate big disagreements, since they often reveal either a scouting error or something EPA misses (like a great defender with low EPA).
  • Match prediction: use EPA-based win probabilities to gauge which qualification matches are toss-ups worth extra strategy.

Treat EPA as the best free offensive rating available and a superb sanity check, then layer your own scouting on top for defense, reliability, and human judgment.

Key takeaways

  • EPA (Expected Points Added) is a points-unit moving-average rating built on Elo, generally more predictive than OPR.
  • It splits into auto, teleop, endgame, and ranking-point components, and a normalized unitless version (1500 average, ~1800 top 1%, ~2000 all-time great) compares across years.
  • EPA still does not measure defense, so combine it with scouting just as you would OPR.

Lesson quiz

Required

Answer all 3 questions correctly to complete this lesson.

1.What does EPA, the core Statbotics metric, stand for and measure?

2.How does Statbotics' EPA model relate to earlier rating systems like Elo and OPR?

3.How do you use team EPAs to predict an alliance's match score?

Answer every question to submit.