2021 Google Sheets Component OPR calculator

A slightly modified 2021 version of my google sheets match breakdown / component OPR calculator is linked here:

This is the same as the 2020 version, with the addition of a match lookup sheet that pulls component OPRs for the teams in that match, along with all the score breakdowns from the matches the 6 teams played in. If you don’t want the team lookup or match lookup tabs, you can delete them after adding an event to make the sheet smaller.

The sheet will only work on events that publish component breakdowns. I’ve tested on isjo but only after the event completion, so if you find any issues please let me know.


Do you plan on doing this for the 2022 season? In 2020, this was one of the best resources out there. It ranks right up there with the JVN Calculator as a must use.

1 Like

Yes! I usually try to post a new sheet shortly before week 0 events for teams to test them out. I was just very late this year since there wasn’t really a season.

I’m glad you find it useful!


@Rachel_Lim when does TBA usually have their response schema available for /match/{match_key}? In other words, how much time do you usually have before a Week 0 or Week 1 event to make the needed changes for the new season scoring details?

I belive FIRST usually announces the breakdowns around a week earlier, but in 2019 it was the day before week 0s. Since TBA uses the same naming scheme I can start changing once we know what’s tracked and what the fields will be called (specifically around auto/endgame stats that are tracked per robot).


FIRST announcement of what FMS reports sometimes differ from what blue alliance reports.

For my OPR component analysis , I usually have to wait until after week 1 for a complete list of items that blue alliance pushes

1 Like

TBA always includes all FIRST provided breakdowns, but has occasionally simplified some into fields prefixed by “tba” (e.g. in 2018 “tba_gameData”) that are more human readable. Since score breakdowns come directly from the field / scorers those just come as is. Other field returned by the /match endpoint do differ from FIRST’s, either including more data (like video links) or named differently, but those rarely change year to year.

For the match breakdown tab, I include all TBA provided breakdowns, including any they add. For COPRs, since I publish only selected averages/OPRs to include to keep it more readable, I can start on that once I know what FIRST plans to publish. Generally this list includes:

  • Event rank, ranking score, ELO, OPR
  • Averages for anything tracked per robot – auto movement, endgame status, etc.
  • COPRs for anything high priority in scouting (e.g. for 2020 low vs high vs inner balls)
  • Other fields that would be a high priority for match strat or alliance selection

Things I have dropped over the years:

  • Calculations that are inherently statistically misleading (DPR, CCWM)
  • Fields that trend too close to 0 to be statistically significant (foul OPRs, ranking point OPRs)
  • Avoiding alliance averages, since they can be misleading especially partway through events

If there are particular fields that you/your team find useful, please reach out to me and I’ll consider including them. The vast majority of the sheet doesn’t change year to year, I just reformat the match breakdown tab, pick the averages/OPRs, and adjust the team/event lookups as needed.

Sorry for the long explanation, hopefully this helps shed some light on the process I use.

FIRST API documentation: FRC Events
TBA blog: How We Ship Match Breakdowns – The Blue Alliance Blog


Will your spreadsheet work for this weekend’s Chezy Champs? If so, what event code do we use? Thanks for posting this.

Rachel can correct me if I’m wrong, but it will work for Chezy as long as they’re reporting match results in somewhat real time, which they almost certainly will be. The event code will just be “cc,” but with no matches played so far, there is no data to report. Once matches start happening, data will start populating.

1 Like

@BordomBeThyName is right, it should work at Chezy and the code is “cc.”

The spreadsheet will work for all seasons that run Cheesy Arena, or that otherwise publish match breakdowns to TBA – in regular years this covers the official FMS and Cheesy Arena, for this year just the latter as far as I know.

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.