Skip to content
Scouting & Strategy·Lesson 21 of 32

Project 4: Build an EPA-Component Robot Ranking Sheet

Combine your scouted averages with TBA and Statbotics data into one sheet that ranks robots by what actually wins REEFSCAPE matches.

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

Goal

A single Google Sheet (or pandas notebook) that ranks every team at your event by capability, using your own scouting as the spine and public analytics as a cross-check. This is the artifact a picklist (covered in the existing strategy module) is built from, so here we focus only on constructing and validating it.

Columns to compute

Start from your aggregated scouting (averages per team from QRScout output), then add derived metrics that map directly to REEFSCAPE scoring and ranking points. Use the real point values so the number is in actual match points. Because coral is worth more in auto than teleop, weight the two phases separately:

  • Avg points contributed = auto coral (3*avgAutoL1 + 4*avgAutoL2 + 6*avgAutoL3 + 7*avgAutoL4) + teleop coral (2*avgTelL1 + 3*avgTelL2 + 4*avgTelL3 + 5*avgTelL4) + algae (6*avgAlgaeProc + 4*avgAlgaeNet) + auto leave (3*leaveRate) + endgame average (Park=2, shallow Cage=6, deep Cage=12).
  • Auto reliability = fraction of matches with Leave + at least 1 coral scored in auto (this maps to the Auto RP, which needs all robots to leave AND at least one coral in auto).
  • L4 rate = avg L4 coral per match. High L4 teams drive the Coral RP, which needs 7 coral on each of 4 levels (or 3 levels if the Coopertition bonus is earned via 2 algae in each alliance's processor).
  • Endgame value = expected barge points. The Barge RP needs 16 barge points, so two deep climbs (12 each) clear it.
  • Cross-check columns: TBA OPR, Statbotics EPA total, and Statbotics endgame EPA pulled via Project 3.

Spreadsheet recipe

  1. Tab raw: every scanned QRScout row.
  2. Tab agg: =AVERAGEIF(raw!$C:$C, $A2, raw!D:D) style formulas to average each metric per team (column A = team list).
  3. Tab rank: the derived columns above, plus a consistency column = STDEV of total points per match (lower is more reliable).
  4. Sort rank by Avg points contributed descending.

Validate before you trust it

The whole sheet is worthless if the inputs are wrong, so run three checks:

  • Match-sum check: for a sampled match, your three scouted robots' points should be within roughly 10-15% of the TBA score_breakdown alliance total. Large gaps mean a scout miscounted or a robot was mislabeled.
  • OPR/EPA agreement: flag any team whose scouted average is far from both its TBA OPR and Statbotics EPA. That team gets a super-scout next match.
  • Sample-size guard: hide ranks for teams with fewer than ~3 scouted matches; one bad partner alliance can wreck a small average.

Why component breakdown beats a single number

Two robots can have identical total EPA but win you very different matches: one is a pure-offense L4 coral machine, the other a reliable deep-climb + algae robot that secures the Barge RP. A component sheet lets a strategist pick the robot that fills a specific gap (e.g., "we already have offense, we need a guaranteed climb"), which is exactly the decision alliance selection turns on.

Key takeaways

  • Convert scouted counts into real match points using actual REEFSCAPE values, weighting auto coral (3/4/6/7) higher than teleop coral (2/3/4/5).
  • Validate the sheet by comparing your scouted alliance sums against TBA score_breakdown and flagging teams where your data disagrees with OPR/EPA.
  • Component breakdowns reveal robots with equal totals but different strengths, which is what alliance selection actually decides on.

Lesson quiz

Required

Answer all 3 questions correctly to complete this lesson.

1.What is the key advantage of EPA over OPR that makes it useful as a single ranking metric?

2.How is a team's EPA updated as an event progresses?

3.Why is breaking EPA into auto, teleop, and endgame components valuable for a robot ranking sheet?

Answer every question to submit.