Colorado’s hitters won 75 of 178 challenges, 42%. Hitters league-wide won 49%. Colorado’s catchers and pitchers won 134 of 208, 64%, against 58% for everyone else. The club still finished +7.2 in Runs Above Average, second only to the Minnesota Twins (+8.7). That doesn’t add up on its face, and I wanted to know why.
ABS is new to the majors in 2026. A hitter, catcher or pitcher can challenge a called ball or strike, and an automated zone makes the final ruling. The zone is 17 inches wide and runs from 27% to 53.5% of the batter’s height, judged at the middle of the plate, and any part of the ball touching it counts. Each club gets two challenges and keeps one each time it wins. To find out which of Colorado’s two faces is the real one, I went back through every called pitch and every challenge of the season and charted where each one crossed the plate.
What I found
- The edge is mostly volume. Colorado gained +8.6 runs over what an average club would have gotten on the same pitches (the 95% range, the span of values the data can’t rule out, is +3.1 to +14.4). +7.9 of that came from challenging more. Picking better pitches added +0.7 (−4.1 to +5.5), which I can’t tell apart from zero.
- Hitters are the extreme case. They led MLB in volume (+5.2 runs) and ranked 29th of 30 in how well they picked (−2.8). The 42% win rate is the cost of challenging that much.
- The catchers carry the quality. Hunter Goodman ranks second among 107 MLB catchers by Savant’s measure, and he won more challenges than his pitches would predict, though by less than his raw record suggests once I account for the small sample.
- Most of what Colorado “left on the table” was too close to see. 318 of its 473 unchallenged wrong calls were within an inch of the line.
- I found no clear Coors Field difference in challenge rate, success or umpire error. That means I didn’t detect one, not that there isn’t one.
Short on time? Read the one-page brief (PDF), written like an internal research summary. It is not a Rockies document.
1 The puzzle
Runs Above Average is Savant’s estimate, not a literal run count. It compares the run value Colorado gained by winning challenges, and gave up by losing them, with what an average club would have gotten on the same pitches. By that measure, Colorado’s catchers and pitchers were the best in baseball (+6.1) and its hitters modestly positive (+1.1).
Win rate can’t explain that, because win rate isn’t a measure of decision quality. A player who only challenges pitches that missed by four inches looks perfect. One who takes more chances looks worse and may help the team more. Hitters and fielders also challenge different pitches: hitters appeal called strikes that look like balls, while catchers and pitchers appeal called balls that clipped the zone. Around the league, the gap between the two is 8.6 points. Colorado’s is 22.3. Beyond that normal gap, the extra is 13.7 points (95% range 3.1 to 24.0), unusual but not off the chart.
Map shows local overturn rate (thin cells blank).
Tick marks show the average of the other 29 clubs. Select a row to redraw both zones.
To separate the two stories, I split each club’s gain into two parts. Volume is what a club earned by challenging more (or less) often than an average club would on the same pitches. Selection is the rest: how valuable each challenge was compared with an average one. To define “average,” I built a model of how often a typical club challenges a pitch, given where it crossed the plate, the count, the situation and the stakes. It held up on games it hadn’t seen (details are in the methodology).
Colorado’s hitters challenged 178 times where an average club would have challenged about 130. That volume was worth +5.2 runs (+2.6 to +8.3), the most in MLB. Their selection cost −2.8 (−6.1 to +0.5), 29th of 30. The catchers and pitchers did both: +2.6 from volume and +3.5 from selection (+0.1 to +7.0), fourth in MLB.
Hitters: Colorado ranks #1 of 30 in volume (+5.2 runs) and #29 of 30 in selection (−2.8 runs). Dots are clubs; hover for values.
ABS Runs Above Average (Savant). Official: runs gained and cost of failed challenges, each compared with an average challenger on identical pitches.
My own version of the measure puts Colorado third rather than second. It leaves out Savant’s penalty for failed challenges and uses my own definition of an average club, so the rankings shouldn’t match exactly. The pieces I rebuilt track Savant’s published numbers almost perfectly (a correlation of about 0.99 across the 30 clubs for expected challenges, runs gained and expected runs gained), so I’m describing the same thing Savant scores.
2 Where in the zone Colorado challenges
Every dot below is a Colorado challenge, drawn where the ball crossed the plate and scaled to that batter’s own zone, so a pitch at the top edge is at the top edge for a 5-foot-9 shortstop and a 6-foot-5 first baseman alike. You can see where the club challenges most, where it wins, and how that map differs from the other 29 clubs. Areas with too few challenges to read are left blank.
Data table for the 386 selected challenges
| Date | Opp. | Inn. | Count | Challenger | Role | Orig. call | Result | Edge margin (in) | Flip value (runs) |
|---|---|---|---|---|---|---|---|---|---|
| Aug 26 | @ WSH | ▼3 | 0-2 | Hunter Goodman | Fielding | Ball | Overturned | 0.97 | 0.15 |
| Aug 26 | @ WSH | ▲6 | 0-0 | Connor Norby | Batting | Strike | Upheld | -0.92 | 0.10 |
| Aug 25 | @ WSH | ▲4 | 0-0 | Willi Castro | Batting | Strike | Overturned | 0.61 | 0.06 |
| Aug 25 | @ WSH | ▲4 | 2-0 | Willi Castro | Batting | Strike | Upheld | -1.64 | 0.34 |
| Aug 25 | @ WSH | ▼4 | 2-2 | Hunter Goodman | Fielding | Ball | Upheld | -0.47 | 0.22 |
| Aug 27 | @ WSH | ▲2 | 0-2 | Ezequiel Tovar | Batting | Strike | Overturned | 0.88 | 0.20 |
| Aug 27 | @ WSH | ▲9 | 0-0 | Cole Carrigg | Batting | Strike | Upheld | -2.05 | 0.06 |
| Aug 27 | @ WSH | ▲9 | 2-1 | TJ Rumfield | Batting | Strike | Upheld | -2.47 | 0.13 |
| Aug 24 | @ WSH | ▼2 | 1-2 | Brett Sullivan | Fielding | Ball | Overturned | 1.50 | 0.29 |
| Aug 24 | @ WSH | ▲3 | 2-0 | Jake McCarthy | Batting | Strike | Overturned | 3.20 | 0.15 |
| Aug 24 | @ WSH | ▲5 | 0-2 | Jake McCarthy | Batting | Strike | Upheld | -1.01 | 0.15 |
| Aug 24 | @ WSH | ▼8 | 0-1 | Brett Sullivan | Fielding | Ball | Upheld | -0.82 | 0.08 |
| Mar 30 | @ TOR | ▼5 | 3-2 | Hunter Goodman | Fielding | Ball | Upheld | -1.83 | 0.63 |
| Apr 1 | @ TOR | ▼1 | 1-2 | Brett Sullivan | Fielding | Ball | Upheld | -0.02 | 0.09 |
| Apr 1 | @ TOR | ▼8 | 1-1 | Brett Sullivan | Fielding | Ball | Overturned | 1.61 | 0.09 |
| Mar 31 | @ TOR | ▼2 | 1-2 | Hunter Goodman | Fielding | Ball | Overturned | 0.43 | 0.15 |
| Mar 31 | @ TOR | ▼3 | 3-2 | Hunter Goodman | Fielding | Ball | Upheld | -1.01 | 0.46 |
| Mar 31 | @ TOR | ▼6 | 0-0 | Hunter Goodman | Fielding | Ball | Overturned | 4.39 | 0.06 |
| Mar 31 | @ TOR | ▲8 | 2-1 | Kyle Karros | Batting | Strike | Overturned | 2.46 | 0.21 |
| Mar 31 | @ TOR | ▲8 | 1-0 | Hunter Goodman | Batting | Strike | Upheld | -2.45 | 0.11 |
| Aug 9 | @ STL | ▲3 | 1-0 | Cole Carrigg | Batting | Strike | Overturned | 0.70 | 0.23 |
| Aug 9 | @ STL | ▼8 | 1-0 | Brett Sullivan | Fielding | Ball | Overturned | 2.71 | 0.06 |
| Aug 8 | @ STL | ▲3 | 3-1 | Willi Castro | Batting | Strike | Upheld | -0.53 | 0.57 |
| Aug 8 | @ STL | ▲5 | 3-2 | Willi Castro | Batting | Strike | Upheld | -0.43 | 0.46 |
| Aug 16 | @ SF | ▼3 | 1-0 | Brett Sullivan | Fielding | Ball | Overturned | 1.36 | 0.06 |
| Aug 16 | @ SF | ▲7 | 3-2 | Jordan Beck | Batting | Strike | Overturned | 0.59 | 0.59 |
| Aug 16 | @ SF | ▲8 | 1-1 | Cole Carrigg | Batting | Strike | Upheld | -0.64 | 0.13 |
| Aug 15 | @ SF | ▼3 | 0-2 | Brett Sullivan | Fielding | Ball | Overturned | 0.31 | 0.15 |
| Aug 15 | @ SF | ▼4 | 2-1 | Brett Sullivan | Fielding | Ball | Upheld | -1.22 | 0.44 |
| Aug 15 | @ SF | ▼4 | 0-1 | Brett Sullivan | Fielding | Ball | Overturned | 0.89 | 0.09 |
| Aug 14 | @ SF | ▲2 | 2-0 | TJ Rumfield | Batting | Strike | Overturned | 0.77 | 0.24 |
| Aug 14 | @ SF | ▲4 | 0-0 | Connor Norby | Batting | Strike | Overturned | 0.72 | 0.05 |
| Aug 14 | @ SF | ▼6 | 1-1 | Brett Sullivan | Fielding | Ball | Upheld | -0.49 | 0.13 |
| Jul 11 | @ SF | ▼1 | 0-0 | Kyle Freeland | Fielding | Ball | Overturned | 1.18 | 0.03 |
| Jul 11 | @ SF | ▼2 | 2-2 | Kyle Freeland | Fielding | Ball | Overturned | 2.62 | 0.13 |
| Jul 11 | @ SF | ▲8 | 1-1 | Hunter Goodman | Batting | Strike | Upheld | -1.71 | 0.13 |
| Jul 11 | @ SF | ▲9 | 1-0 | Edouard Julien | Batting | Strike | Upheld | -0.39 | 0.16 |
| Jul 12 | @ SF | ▲1 | 1-2 | Kyle Karros | Batting | Strike | Overturned | 0.38 | 0.22 |
| Jul 12 | @ SF | ▼1 | 0-0 | Hunter Goodman | Fielding | Ball | Overturned | 0.29 | 0.17 |
| Jul 12 | @ SF | ▲2 | 0-0 | Cole Carrigg | Batting | Strike | Overturned | 1.50 | 0.10 |
| Jul 12 | @ SF | ▼6 | 0-0 | Hunter Goodman | Fielding | Ball | Overturned | 1.47 | 0.06 |
| Jul 10 | @ SF | ▼2 | 2-1 | Hunter Goodman | Fielding | Ball | Overturned | 1.51 | 0.21 |
| Jul 10 | @ SF | ▲6 | 0-0 | Cole Carrigg | Batting | Strike | Overturned | 0.74 | 0.10 |
| Jul 10 | @ SF | ▼6 | 0-1 | Hunter Goodman | Fielding | Ball | Overturned | 1.60 | 0.09 |
| Jul 10 | @ SF | ▼6 | 1-2 | Hunter Goodman | Fielding | Ball | Upheld | -0.60 | 0.29 |
| Jul 10 | @ SF | ▼7 | 1-0 | Hunter Goodman | Fielding | Ball | Upheld | -3.41 | 0.05 |
| Jul 9 | @ SF | ▲6 | 3-2 | Tyler Freeman | Batting | Strike | Upheld | -0.64 | 0.46 |
| Jul 9 | @ SF | ▲9 | 3-2 | Edouard Julien | Batting | Strike | Upheld | -3.40 | 0.75 |
| Jul 28 | @ SD | ▼1 | 0-0 | Hunter Goodman | Fielding | Ball | Overturned | 2.32 | 0.12 |
| Jul 28 | @ SD | ▼8 | 0-0 | Hunter Goodman | Fielding | Ball | Upheld | -1.33 | 0.12 |
| Apr 11 | @ SD | ▼6 | 0-0 | Brett Sullivan | Fielding | Ball | Upheld | -0.48 | 0.06 |
| Apr 11 | @ SD | ▲8 | 2-2 | Edouard Julien | Batting | Strike | Upheld | -0.60 | 0.29 |
| Apr 12 | @ SD | ▲7 | 3-1 | Hunter Goodman | Batting | Strike | Upheld | -1.44 | 0.33 |
| Apr 12 | @ SD | ▼8 | 0-2 | Brett Sullivan | Fielding | Ball | Overturned | 1.65 | 0.25 |
| Apr 10 | @ SD | ▲1 | 1-1 | Edouard Julien | Batting | Strike | Overturned | 0.33 | 0.13 |
| Apr 10 | @ SD | ▲4 | 1-1 | Mickey Moniak | Batting | Strike | Overturned | 0.79 | 0.09 |
| Apr 10 | @ SD | ▲7 | 3-2 | Jordan Beck | Batting | Strike | Overturned | 0.20 | 0.63 |
| Apr 10 | @ SD | ▼7 | 0-1 | Brett Sullivan | Fielding | Ball | Overturned | 1.13 | 0.07 |
| Apr 10 | @ SD | ▼7 | 1-2 | Brett Sullivan | Fielding | Ball | Overturned | 1.85 | 0.09 |
| Apr 10 | @ SD | ▲8 | 1-1 | Hunter Goodman | Batting | Strike | Overturned | 1.44 | 0.08 |
| Apr 10 | @ SD | ▲8 | 0-0 | Jordan Beck | Batting | Strike | Upheld | -1.73 | 0.11 |
| Apr 10 | @ SD | ▼8 | 3-0 | Brett Sullivan | Fielding | Ball | Overturned | 0.90 | 0.22 |
| Apr 10 | @ SD | ▼8 | 2-0 | Brett Sullivan | Fielding | Ball | Upheld | -0.86 | 0.09 |
| Apr 9 | @ SD | ▲2 | 0-0 | TJ Rumfield | Batting | Strike | Overturned | 2.61 | 0.06 |
| Apr 9 | @ SD | ▼2 | 0-0 | Hunter Goodman | Fielding | Ball | Overturned | 0.02 | 0.03 |
| Apr 9 | @ SD | ▼4 | 0-0 | Hunter Goodman | Fielding | Ball | Overturned | 1.66 | 0.12 |
| Apr 9 | @ SD | ▲6 | 2-1 | Troy Johnston | Batting | Strike | Upheld | -0.83 | 0.21 |
| Apr 9 | @ SD | ▲7 | 1-0 | Willi Castro | Batting | Strike | Upheld | -3.56 | 0.16 |
| Apr 9 | @ SD | ▼11 | 0-0 | Brett Sullivan | Fielding | Ball | Overturned | 1.79 | 0.08 |
| May 14 | @ PIT | ▼1 | 2-0 | Hunter Goodman | Fielding | Ball | Upheld | -1.52 | 0.19 |
| May 14 | @ PIT | ▼8 | 1-2 | Hunter Goodman | Fielding | Ball | Overturned | 0.56 | 0.15 |
| May 12 | @ PIT | ▼8 | 0-0 | Hunter Goodman | Fielding | Ball | Overturned | 0.58 | 0.11 |
| May 13 | @ PIT | ▼2 | 0-0 | Brett Sullivan | Fielding | Ball | Overturned | 2.55 | 0.10 |
| May 13 | @ PIT | ▼5 | 1-1 | Brett Sullivan | Fielding | Ball | Overturned | 0.36 | 0.13 |
| May 13 | @ PIT | ▲7 | 2-2 | Brett Sullivan | Batting | Strike | Overturned | 1.87 | 0.22 |
| May 10 | @ PHI | ▲8 | 0-1 | Edouard Julien | Batting | Strike | Upheld | -1.79 | 0.08 |
| May 8 | @ PHI | ▼8 | 3-2 | Hunter Goodman | Fielding | Ball | Upheld | -1.30 | 1.01 |
| May 9 | @ PHI | ▲1 | 1-2 | Edouard Julien | Batting | Strike | Overturned | 1.72 | 0.20 |
| May 9 | @ PHI | ▲1 | 1-1 | TJ Rumfield | Batting | Strike | Upheld | -0.93 | 0.10 |
| May 9 | @ PHI | ▲4 | 3-2 | Jake McCarthy | Batting | Strike | Overturned | 0.58 | 0.46 |
| May 9 | @ PHI | ▲8 | 1-2 | Willi Castro | Batting | Strike | Upheld | -3.11 | 0.22 |
| Sep 9 | @ NYY | ▲1 | 3-2 | Cole Carrigg | Batting | Strike | Upheld | -2.07 | 0.43 |
| Sep 9 | @ NYY | ▼7 | 2-0 | Brett Sullivan | Fielding | Ball | Overturned | 1.05 | 0.20 |
| Sep 10 | @ NYY | ▲2 | 1-1 | TJ Rumfield | Batting | Strike | Upheld | -0.05 | 0.13 |
| Sep 10 | @ NYY | ▼6 | 1-1 | Hunter Goodman | Fielding | Ball | Overturned | 1.18 | 0.17 |
| Sep 10 | @ NYY | ▼7 | 3-2 | Hunter Goodman | Fielding | Ball | Overturned | 0.73 | 0.24 |
| Sep 8 | @ NYY | ▼2 | 0-1 | Hunter Goodman | Fielding | Ball | Overturned | 0.07 | 0.14 |
| Sep 8 | @ NYY | ▲6 | 2-1 | Cole Carrigg | Batting | Strike | Upheld | -0.60 | 0.13 |
| Sep 8 | @ NYY | ▲8 | 0-0 | Adael Amador | Batting | Strike | Upheld | -0.32 | 0.10 |
| Apr 26 | @ NYM | ▼1 | 0-0 | Brett Sullivan | Fielding | Ball | Upheld | -0.34 | 0.12 |
| Apr 26 | @ NYM | ▼1 | 3-2 | Brett Sullivan | Fielding | Ball | Overturned | 0.04 | 1.75 |
| Apr 26 | @ NYM | ▲7 | 1-2 | Ezequiel Tovar | Batting | Strike | Overturned | 0.73 | 0.45 |
| Apr 26 | @ NYM | ▼3 | 3-2 | Hunter Goodman | Fielding | Ball | Overturned | 0.74 | 0.43 |
| Apr 26 | @ NYM | ▼3 | 0-0 | Hunter Goodman | Fielding | Ball | Upheld | -0.80 | 0.03 |
| Apr 24 | @ NYM | ▲2 | 1-2 | Kyle Karros | Batting | Strike | Overturned | 0.53 | 0.15 |
| Apr 24 | @ NYM | ▲7 | 0-2 | Jordan Beck | Batting | Strike | Overturned | 0.48 | 0.34 |
| Apr 24 | @ NYM | ▲9 | 2-2 | Troy Johnston | Batting | Strike | Upheld | -2.95 | 0.22 |
| Jun 28 | @ MIN | ▼6 | 2-0 | Braxton Fulford | Fielding | Ball | Overturned | 0.42 | 0.16 |
| Jun 28 | @ MIN | ▼6 | 0-0 | Braxton Fulford | Fielding | Ball | Upheld | -1.77 | 0.05 |
| Jun 26 | @ MIN | ▲4 | 1-2 | Willi Castro | Batting | Strike | Upheld | -0.28 | 0.29 |
| Jun 27 | @ MIN | ▲6 | 2-2 | Willi Castro | Batting | Strike | Upheld | -1.22 | 0.44 |
| Jun 27 | @ MIN | ▲8 | 2-1 | Cole Carrigg | Batting | Strike | Upheld | -2.64 | 0.21 |
| Jul 26 | @ MIL | ▼1 | 2-1 | Hunter Goodman | Fielding | Ball | Overturned | 3.07 | 0.21 |
| Jul 26 | @ MIL | ▼6 | 3-1 | Kyle Freeland | Fielding | Ball | Upheld | -0.10 | 0.21 |
| Jul 25 | @ MIL | ▼3 | 0-0 | Braxton Fulford | Fielding | Ball | Upheld | -0.22 | 0.10 |
| Mar 29 | @ MIA | ▼4 | 2-2 | Jose Quintana | Fielding | Ball | Upheld | -2.47 | 0.29 |
| Mar 29 | @ MIA | ▼7 | 0-0 | Brett Sullivan | Fielding | Ball | Overturned | 0.96 | 0.03 |
| Jul 8 | @ LAD | ▼3 | 1-1 | Brett Sullivan | Fielding | Ball | Overturned | 0.66 | 0.05 |
| Jul 8 | @ LAD | ▼6 | 2-2 | Brett Sullivan | Fielding | Ball | Upheld | -0.27 | 0.22 |
| Jul 7 | @ LAD | ▲3 | 1-2 | Kyle Karros | Batting | Strike | Upheld | -1.26 | 0.39 |
| Jul 7 | @ LAD | ▲8 | 0-1 | Cole Carrigg | Batting | Strike | Overturned | 1.18 | 0.09 |
| Jul 7 | @ LAD | ▼9 | 1-1 | Braxton Fulford | Fielding | Ball | Overturned | 2.50 | 0.13 |
| Jul 7 | @ LAD | ▼9 | 0-0 | Braxton Fulford | Fielding | Ball | Overturned | 1.42 | 0.11 |
| Jul 7 | @ LAD | ▼9 | 0-1 | Braxton Fulford | Fielding | Ball | Overturned | 1.77 | 0.09 |
| Jul 6 | @ LAD | ▼3 | 0-0 | Hunter Goodman | Fielding | Ball | Overturned | 0.07 | 0.03 |
| Jul 6 | @ LAD | ▲5 | 2-2 | Kyle Karros | Batting | Strike | Overturned | 2.59 | 0.22 |
| Jul 6 | @ LAD | ▲8 | 3-1 | Hunter Goodman | Batting | Strike | Overturned | 0.14 | 0.33 |
| Jul 6 | @ LAD | ▼9 | 0-2 | Hunter Goodman | Fielding | Ball | Overturned | 2.64 | 0.34 |
| May 27 | @ LAD | ▲2 | 1-2 | Willi Castro | Batting | Strike | Upheld | -2.58 | 0.15 |
| May 27 | @ LAD | ▲5 | 2-1 | Edouard Julien | Batting | Strike | Upheld | -0.60 | 0.21 |
| May 25 | @ LAD | ▲6 | 2-0 | Edouard Julien | Batting | Strike | Upheld | -0.53 | 0.24 |
| May 25 | @ LAD | ▲9 | 1-0 | Troy Johnston | Batting | Strike | Upheld | -0.16 | 0.16 |
| May 26 | @ LAD | ▼5 | 1-0 | Hunter Goodman | Fielding | Ball | Overturned | 1.79 | 0.23 |
| May 26 | @ LAD | ▲8 | 1-1 | Sterlin Thompson | Batting | Strike | Upheld | -0.90 | 0.09 |
| Jun 3 | @ LAA | ▼2 | 1-2 | Hunter Goodman | Fielding | Ball | Overturned | 0.60 | 0.33 |
| Jun 3 | @ LAA | ▲4 | 3-2 | Sterlin Thompson | Batting | Strike | Upheld | -0.97 | 0.75 |
| Jun 3 | @ LAA | ▲6 | 2-2 | Willi Castro | Batting | Strike | Upheld | -1.58 | 0.13 |
| Jun 2 | @ LAA | ▲7 | 1-1 | Sterlin Thompson | Batting | Strike | Overturned | 1.07 | 0.05 |
| Jun 2 | @ LAA | ▼9 | 1-0 | Hunter Goodman | Fielding | Ball | Upheld | -0.70 | 0.12 |
| Jun 2 | @ LAA | ▼9 | 0-0 | Hunter Goodman | Fielding | Ball | Overturned | 0.34 | 0.12 |
| Jun 1 | @ LAA | ▲1 | 2-0 | Willi Castro | Batting | Strike | Overturned | 0.37 | 0.19 |
| Jun 1 | @ LAA | ▼1 | 1-0 | Hunter Goodman | Fielding | Ball | Overturned | 0.50 | 0.20 |
| Jun 1 | @ LAA | ▲3 | 2-1 | Willi Castro | Batting | Strike | Upheld | -0.94 | 0.34 |
| Jun 1 | @ LAA | ▲8 | 1-1 | Sterlin Thompson | Batting | Strike | Upheld | -0.31 | 0.13 |
| Apr 16 | @ HOU | ▲3 | 0-0 | Tyler Freeman | Batting | Strike | Upheld | -1.60 | 0.22 |
| Apr 16 | @ HOU | ▲7 | 1-2 | Hunter Goodman | Batting | Strike | Overturned | 2.91 | 0.75 |
| Apr 15 | @ HOU | ▲6 | 1-1 | Jordan Beck | Batting | Strike | Upheld | -1.39 | 0.10 |
| Apr 15 | @ HOU | ▲9 | 1-1 | Edouard Julien | Batting | Strike | Overturned | 2.01 | 0.09 |
| Apr 14 | @ HOU | ▲6 | 2-0 | Tyler Freeman | Batting | Strike | Overturned | 1.95 | 0.09 |
| Apr 14 | @ HOU | ▲8 | 3-1 | Mickey Moniak | Batting | Strike | Upheld | -1.29 | 0.24 |
| Sep 12 | @ DET | ▲4 | 0-0 | Adael Amador | Batting | Strike | Upheld | -1.58 | 0.12 |
| Sep 12 | @ DET | ▼4 | 0-0 | Hunter Goodman | Fielding | Ball | Upheld | -0.07 | 0.16 |
| Sep 13 | @ DET | ▲1 | 2-0 | Adael Amador | Batting | Strike | Upheld | -0.18 | 0.20 |
| Sep 13 | @ DET | ▼2 | 0-0 | Brett Sullivan | Fielding | Ball | Overturned | 0.99 | 0.05 |
| Sep 13 | @ DET | ▼7 | 3-2 | Brett Sullivan | Fielding | Ball | Overturned | 0.19 | 0.63 |
| Sep 11 | @ DET | ▲5 | 0-0 | Cole Carrigg | Batting | Strike | Overturned | 2.49 | 0.23 |
| Sep 11 | @ DET | ▲9 | 2-1 | Zac Veen | Batting | Strike | Overturned | 0.95 | 0.21 |
| Sep 24 | vs AZ | ▲1 | 2-2 | Brett Sullivan | Fielding | Ball | Upheld | -0.54 | 0.29 |
| Sep 24 | vs AZ | ▲4 | 0-0 | Brett Sullivan | Fielding | Ball | Overturned | 1.03 | 0.10 |
| Sep 20 | vs SEA | ▼5 | 1-1 | Brett Sullivan | Batting | Strike | Upheld | -1.73 | 0.09 |
| Sep 20 | vs SEA | ▼9 | 0-0 | Adael Amador | Batting | Strike | Overturned | 0.36 | 0.06 |
| Sep 23 | vs AZ | ▲1 | 0-2 | Hunter Goodman | Fielding | Ball | Overturned | 0.81 | 0.23 |
| Sep 23 | vs AZ | ▲3 | 0-0 | Hunter Goodman | Fielding | Ball | Overturned | 0.74 | 0.03 |
| Sep 23 | vs AZ | ▲3 | 0-1 | Hunter Goodman | Fielding | Ball | Overturned | 1.26 | 0.03 |
| Sep 23 | vs AZ | ▼3 | 1-2 | Cole Carrigg | Batting | Strike | Overturned | 1.07 | 0.51 |
| Sep 23 | vs AZ | ▲6 | 1-1 | Hunter Goodman | Fielding | Ball | Upheld | -0.27 | 0.17 |
| Sep 23 | vs AZ | ▲7 | 0-1 | Hunter Goodman | Fielding | Ball | Overturned | 1.45 | 0.07 |
| Sep 22 | vs AZ | ▲9 | 1-2 | Hunter Goodman | Fielding | Ball | Upheld | -2.13 | 0.22 |
| Sep 18 | vs SEA | ▼3 | 0-0 | Kyle Karros | Batting | Strike | Overturned | 3.94 | 0.11 |
| Sep 18 | vs SEA | ▲7 | 0-0 | Hunter Goodman | Fielding | Ball | Overturned | 2.46 | 0.06 |
| Sep 19 | vs SEA | ▲5 | 3-1 | Hunter Goodman | Fielding | Ball | Overturned | 0.35 | 0.11 |
| Sep 17 | vs SD | ▲2 | 3-2 | Brett Sullivan | Fielding | Ball | Upheld | -0.07 | 0.68 |
| Sep 16 | vs SD | ▲1 | 1-1 | Braxton Fulford | Fielding | Ball | Overturned | 0.54 | 0.33 |
| Sep 16 | vs SD | ▲4 | 0-1 | Braxton Fulford | Fielding | Ball | Overturned | 0.92 | 0.12 |
| Sep 15 | vs SD | ▼8 | 1-2 | Cole Carrigg | Batting | Strike | Upheld | -2.80 | 0.20 |
| Sep 14 | vs SD | ▲4 | 1-2 | Hunter Goodman | Fielding | Ball | Overturned | 0.87 | 0.29 |
| Sep 6 | vs STL | ▲2 | 0-0 | Brett Sullivan | Fielding | Ball | Overturned | 1.15 | 0.08 |
| Sep 6 | vs STL | ▼2 | 3-2 | Vimael Machín | Batting | Strike | Upheld | -0.71 | 0.43 |
| Sep 6 | vs STL | ▲9 | 3-2 | Blas Castaño | Fielding | Ball | Upheld | -1.61 | 0.63 |
| Sep 5 | vs STL | ▲1 | 1-1 | Hunter Goodman | Fielding | Ball | Overturned | 0.48 | 0.17 |
| Sep 5 | vs STL | ▲4 | 0-2 | Hunter Goodman | Fielding | Ball | Overturned | 2.08 | 0.17 |
| Sep 5 | vs STL | ▲5 | 1-2 | Hunter Goodman | Fielding | Ball | Overturned | 1.75 | 0.27 |
| Sep 5 | vs STL | ▼5 | 2-0 | Cole Carrigg | Batting | Strike | Upheld | -0.79 | 0.13 |
| Sep 4 | vs STL | ▲7 | 1-1 | Hunter Goodman | Fielding | Ball | Overturned | 1.00 | 0.09 |
| Sep 4 | vs STL | ▼7 | 0-1 | Hunter Goodman | Batting | Strike | Overturned | 0.54 | 0.08 |
| Sep 4 | vs STL | ▼8 | 1-0 | Jake McCarthy | Batting | Strike | Overturned | 0.18 | 0.08 |
| Sep 4 | vs STL | ▲9 | 0-0 | Hunter Goodman | Fielding | Ball | Upheld | -2.00 | 0.12 |
| Sep 2 | vs BAL | ▼4 | 0-0 | Connor Norby | Batting | Strike | Upheld | -0.09 | 0.10 |
| Sep 2 | vs BAL | ▼7 | 0-0 | Cole Carrigg | Batting | Strike | Upheld | -2.40 | 0.06 |
| Sep 2 | vs BAL | ▼11 | 0-0 | Cole Carrigg | Batting | Strike | Upheld | -0.31 | 0.06 |
| Sep 1 | vs BAL | ▲3 | 3-2 | Brett Sullivan | Fielding | Ball | Overturned | 0.57 | 1.01 |
| Sep 1 | vs BAL | ▲5 | 0-0 | Brett Sullivan | Fielding | Ball | Overturned | 2.65 | 0.06 |
| Sep 1 | vs BAL | ▼6 | 0-0 | Adael Amador | Batting | Strike | Overturned | 2.31 | 0.12 |
| Aug 31 | vs BAL | ▲6 | 0-1 | Hunter Goodman | Fielding | Ball | Overturned | 1.22 | 0.08 |
| Aug 31 | vs BAL | ▼6 | 0-2 | Willi Castro | Batting | Strike | Upheld | -2.20 | 0.15 |
| Aug 23 | vs CLE | ▲4 | 2-2 | Brett Sullivan | Fielding | Ball | Upheld | -1.30 | 0.41 |
| Aug 23 | vs CLE | ▲5 | 0-0 | Brett Sullivan | Fielding | Ball | Upheld | -2.25 | 0.12 |
| Aug 22 | vs CLE | ▲4 | 3-2 | Brett Sullivan | Fielding | Ball | Upheld | -0.22 | 0.46 |
| Aug 21 | vs CLE | ▼8 | 0-2 | Willi Castro | Batting | Strike | Upheld | -2.00 | 0.15 |
| Aug 19 | vs LAD | ▲1 | 1-0 | Brett Sullivan | Fielding | Ball | Overturned | 1.25 | 0.12 |
| Aug 19 | vs LAD | ▲4 | 1-0 | Brett Sullivan | Fielding | Ball | Overturned | 0.82 | 0.16 |
| Aug 19 | vs LAD | ▼4 | 0-0 | Adael Amador | Batting | Strike | Upheld | -2.91 | 0.20 |
| Aug 19 | vs LAD | ▼5 | 0-1 | Cole Carrigg | Batting | Strike | Upheld | -0.04 | 0.03 |
| Aug 18 | vs LAD | ▼1 | 2-1 | TJ Rumfield | Batting | Strike | Upheld | -2.44 | 0.21 |
| Aug 17 | vs LAD | ▼3 | 0-0 | Jordan Beck | Batting | Strike | Upheld | -1.23 | 0.07 |
| Aug 17 | vs LAD | ▲7 | 0-1 | Brett Sullivan | Fielding | Ball | Overturned | 1.02 | 0.07 |
| Aug 17 | vs LAD | ▼8 | 0-2 | Zac Veen | Batting | Strike | Upheld | -2.16 | 0.15 |
| Aug 4 | vs TB | ▼3 | 0-0 | Cole Carrigg | Batting | Strike | Overturned | 0.97 | 0.25 |
| Aug 4 | vs TB | ▼4 | 0-0 | Cole Carrigg | Batting | Strike | Upheld | -0.21 | 0.06 |
| Aug 4 | vs TB | ▼6 | 0-0 | Jordan Beck | Batting | Strike | Upheld | -1.28 | 0.03 |
| Aug 5 | vs TB | ▼9 | 1-2 | Edouard Julien | Batting | Strike | Upheld | -0.82 | 0.09 |
| Aug 2 | vs KC | ▼5 | 2-1 | TJ Rumfield | Batting | Strike | Overturned | 2.45 | 0.08 |
| Aug 2 | vs KC | ▲6 | 1-2 | Brett Sullivan | Fielding | Ball | Overturned | 0.10 | 0.09 |
| Aug 2 | vs KC | ▲9 | 0-0 | Brett Sullivan | Fielding | Ball | Upheld | -0.92 | 0.16 |
| Aug 3 | vs TB | ▲6 | 0-2 | Hunter Goodman | Fielding | Ball | Overturned | 2.05 | 0.07 |
| Aug 3 | vs TB | ▼7 | 3-1 | Kyle Karros | Batting | Strike | Upheld | -2.33 | 0.21 |
| Aug 3 | vs TB | ▼8 | 0-0 | Willi Castro | Batting | Strike | Upheld | -3.26 | 0.10 |
| Jul 31 | vs KC | ▲8 | 0-0 | Hunter Goodman | Fielding | Ball | Overturned | 1.23 | 0.06 |
| Jul 31 | vs KC | ▲9 | 1-0 | Hunter Goodman | Fielding | Ball | Overturned | 2.39 | 0.05 |
| Aug 1 | vs KC | ▼4 | 1-2 | Kyle Karros | Batting | Strike | Overturned | 1.61 | 0.27 |
| Aug 1 | vs KC | ▼8 | 0-0 | Cole Carrigg | Batting | Strike | Overturned | 0.96 | 0.12 |
| Aug 1 | vs KC | ▲9 | 1-2 | Hunter Goodman | Fielding | Ball | Upheld | -2.72 | 0.47 |
| Jul 22 | vs WSH | ▲3 | 2-1 | Brett Sullivan | Fielding | Ball | Upheld | -0.78 | 0.14 |
| Jul 22 | vs WSH | ▲4 | 0-0 | Brett Sullivan | Fielding | Ball | Overturned | 2.62 | 0.11 |
| Jul 22 | vs WSH | ▼4 | 1-2 | Kyle Karros | Batting | Strike | Overturned | 3.21 | 0.27 |
| Jul 22 | vs WSH | ▼4 | 3-2 | Kyle Karros | Batting | Strike | Overturned | 1.10 | 0.59 |
| Jul 22 | vs WSH | ▼8 | 0-0 | Cole Carrigg | Batting | Strike | Upheld | -4.11 | 0.11 |
| Jul 20 | vs WSH | ▼3 | 0-1 | Cole Carrigg | Batting | Strike | Upheld | -2.19 | 0.09 |
| Jul 20 | vs WSH | ▲4 | 0-0 | Kyle Freeland | Fielding | Ball | Overturned | 0.86 | 0.06 |
| Jul 21 | vs WSH | ▼6 | 1-0 | Cole Carrigg | Batting | Strike | Overturned | 0.50 | 0.26 |
| Jul 21 | vs WSH | ▲7 | 1-2 | Hunter Goodman | Fielding | Ball | Upheld | -1.34 | 0.48 |
| Jul 19 | vs CIN | ▲2 | 0-0 | Hunter Goodman | Fielding | Ball | Overturned | 1.19 | 0.16 |
| Jul 19 | vs CIN | ▲6 | 1-0 | Hunter Goodman | Fielding | Ball | Overturned | 0.46 | 0.12 |
| Jul 19 | vs CIN | ▼6 | 2-2 | Willi Castro | Batting | Strike | Upheld | -2.97 | 0.13 |
| Jul 19 | vs CIN | ▼9 | 0-0 | Tyler Freeman | Batting | Strike | Overturned | 1.42 | 0.12 |
| Jul 19 | vs CIN | ▼9 | 2-2 | Tyler Freeman | Batting | Strike | Upheld | -2.06 | 0.39 |
| Jul 18 | vs CIN | ▲7 | 0-0 | Brett Sullivan | Fielding | Ball | Upheld | -0.67 | 0.16 |
| Jul 18 | vs CIN | ▼8 | 1-1 | Cole Carrigg | Batting | Strike | Upheld | -0.77 | 0.09 |
| Jul 5 | vs SF | ▲4 | 0-0 | Brett Sullivan | Fielding | Ball | Upheld | -0.17 | 0.06 |
| Jul 5 | vs SF | ▲4 | 3-2 | Brett Sullivan | Fielding | Ball | Overturned | 0.78 | 0.43 |
| Jul 5 | vs SF | ▲6 | 2-1 | Brett Sullivan | Fielding | Ball | Overturned | 2.78 | 0.21 |
| Jul 4 | vs SF | ▲1 | 1-1 | Hunter Goodman | Fielding | Ball | Upheld | -1.51 | 0.09 |
| Jul 4 | vs SF | ▲7 | 0-2 | Hunter Goodman | Fielding | Ball | Overturned | 2.27 | 0.15 |
| Jul 4 | vs SF | ▲9 | 0-0 | Hunter Goodman | Fielding | Ball | Overturned | 0.76 | 0.06 |
| Jul 4 | vs SF | ▲9 | 0-1 | Hunter Goodman | Fielding | Ball | Overturned | 0.46 | 0.14 |
| Jul 2 | vs MIA | ▲5 | 2-2 | Brett Sullivan | Fielding | Ball | Upheld | -1.49 | 0.22 |
| Jul 3 | vs SF | ▼3 | 0-1 | Kyle Karros | Batting | Strike | Overturned | 3.18 | 0.09 |
| Jul 3 | vs SF | ▼5 | 2-0 | TJ Rumfield | Batting | Strike | Overturned | 1.73 | 0.15 |
| Jul 3 | vs SF | ▼5 | 2-2 | Edouard Julien | Batting | Strike | Upheld | -1.02 | 0.39 |
| Jul 1 | vs MIA | ▼7 | 0-0 | Mickey Moniak | Batting | Strike | Overturned | 0.69 | 0.03 |
| Jul 1 | vs MIA | ▲9 | 2-2 | Hunter Goodman | Fielding | Ball | Upheld | -1.45 | 0.29 |
| Jun 30 | vs MIA | ▼1 | 0-1 | TJ Rumfield | Batting | Strike | Overturned | 2.38 | 0.03 |
| Jun 30 | vs MIA | ▼2 | 0-0 | Edouard Julien | Batting | Strike | Overturned | 1.41 | 0.12 |
| Jun 30 | vs MIA | ▲3 | 2-2 | Hunter Goodman | Fielding | Ball | Overturned | 0.16 | 0.13 |
| Jun 30 | vs MIA | ▼9 | 2-2 | Edouard Julien | Batting | Strike | Upheld | -2.94 | 0.29 |
| Jun 29 | vs MIA | ▲2 | 1-0 | Hunter Goodman | Fielding | Ball | Overturned | 1.79 | 0.18 |
| Jun 29 | vs MIA | ▲6 | 2-0 | Hunter Goodman | Fielding | Ball | Overturned | 1.97 | 0.15 |
| Jun 29 | vs MIA | ▼6 | 2-0 | Edouard Julien | Batting | Strike | Overturned | 0.40 | 0.19 |
| Jun 29 | vs MIA | ▼7 | 0-0 | Hunter Goodman | Batting | Strike | Overturned | 2.49 | 0.06 |
| Jun 29 | vs MIA | ▼9 | 0-1 | Edouard Julien | Batting | Strike | Overturned | 0.34 | 0.08 |
| Jun 23 | vs BOS | ▲3 | 2-0 | Hunter Goodman | Fielding | Ball | Overturned | 1.42 | 0.19 |
| Jun 23 | vs BOS | ▲3 | 2-2 | Hunter Goodman | Fielding | Ball | Overturned | 1.78 | 0.87 |
| Jun 23 | vs BOS | ▲8 | 3-2 | Hunter Goodman | Fielding | Ball | Upheld | -1.12 | 0.43 |
| Jun 24 | vs BOS | ▼2 | 2-2 | Cole Carrigg | Batting | Strike | Upheld | -2.14 | 0.29 |
| Jun 24 | vs BOS | ▲6 | 1-2 | Braxton Fulford | Fielding | Ball | Upheld | -0.63 | 0.09 |
| Jun 21 | vs PIT | ▼2 | 1-2 | Cole Carrigg | Batting | Strike | Overturned | 0.40 | 0.33 |
| Jun 21 | vs PIT | ▲3 | 0-0 | Brett Sullivan | Fielding | Ball | Overturned | 0.87 | 0.06 |
| Jun 21 | vs PIT | ▼8 | 0-0 | Willi Castro | Batting | Strike | Overturned | 2.21 | 0.06 |
| Jun 21 | vs PIT | ▼9 | 1-0 | Braxton Fulford | Batting | Strike | Overturned | 0.30 | 0.16 |
| Jun 22 | vs BOS | ▲1 | 3-1 | Hunter Goodman | Fielding | Ball | Overturned | 0.14 | 0.11 |
| Jun 22 | vs BOS | ▲7 | 0-0 | Hunter Goodman | Fielding | Ball | Overturned | 0.16 | 0.10 |
| Jun 22 | vs BOS | ▲8 | 3-2 | Hunter Goodman | Fielding | Ball | Upheld | -0.89 | 0.63 |
| Jun 19 | vs PIT | ▼6 | 0-1 | Sterlin Thompson | Batting | Strike | Upheld | -3.70 | 0.23 |
| Jun 11 | vs CHC | ▲1 | 0-0 | Brett Sullivan | Fielding | Ball | Overturned | 1.28 | 0.10 |
| Jun 11 | vs CHC | ▲2 | 2-2 | Brett Sullivan | Fielding | Ball | Upheld | -1.31 | 0.13 |
| Jun 11 | vs CHC | ▲5 | 3-2 | Brett Sullivan | Fielding | Ball | Overturned | 0.37 | 0.46 |
| Jun 11 | vs CHC | ▼9 | 0-0 | Edouard Julien | Batting | Strike | Upheld | -0.38 | 0.06 |
| Jun 9 | vs CHC | ▲3 | 1-0 | Hunter Goodman | Fielding | Ball | Upheld | -0.63 | 0.16 |
| Jun 9 | vs CHC | ▲7 | 1-1 | Hunter Goodman | Fielding | Ball | Overturned | 0.17 | 0.09 |
| Jun 10 | vs CHC | ▲4 | 1-2 | Hunter Goodman | Fielding | Ball | Upheld | -0.06 | 0.22 |
| Jun 10 | vs CHC | ▼6 | 0-0 | TJ Rumfield | Batting | Strike | Upheld | -1.19 | 0.06 |
| Jun 7 | vs MIL | ▲6 | 1-1 | Hunter Goodman | Fielding | Ball | Overturned | 1.98 | 0.13 |
| Jun 7 | vs MIL | ▲6 | 1-2 | Hunter Goodman | Fielding | Ball | Upheld | -0.32 | 0.75 |
| Jun 7 | vs MIL | ▼7 | 1-0 | Edouard Julien | Batting | Strike | Overturned | 0.66 | 0.23 |
| Jun 7 | vs MIL | ▲8 | 0-1 | Hunter Goodman | Fielding | Ball | Overturned | 1.66 | 0.08 |
| Jun 7 | vs MIL | ▲8 | 1-2 | Hunter Goodman | Fielding | Ball | Overturned | 1.17 | 0.20 |
| Jun 7 | vs MIL | ▲9 | 2-2 | Hunter Goodman | Fielding | Ball | Upheld | -1.71 | 0.30 |
| Jun 5 | vs MIL | ▲2 | 3-2 | Hunter Goodman | Fielding | Ball | Upheld | -0.86 | 0.79 |
| Jun 5 | vs MIL | ▼9 | 0-0 | Chad Stevens | Batting | Strike | Overturned | 1.66 | 0.18 |
| Jun 5 | vs MIL | ▼10 | 1-0 | Jake McCarthy | Batting | Strike | Overturned | 0.38 | 0.06 |
| Jun 6 | vs MIL | ▲4 | 0-2 | Brett Sullivan | Fielding | Ball | Upheld | -0.04 | 0.34 |
| Jun 6 | vs MIL | ▲4 | 3-2 | Blas Castaño | Fielding | Ball | Overturned | 1.25 | 0.75 |
| Jun 6 | vs MIL | ▼5 | 1-2 | Brett Sullivan | Batting | Strike | Upheld | -1.80 | 0.24 |
| May 29 | vs SF | ▼4 | 1-1 | Kyle Karros | Batting | Strike | Upheld | -0.15 | 0.08 |
| May 29 | vs SF | ▼6 | 0-0 | Willi Castro | Batting | Strike | Overturned | 0.93 | 0.10 |
| May 31 | vs SF | ▼1 | 0-0 | Willi Castro | Batting | Strike | Upheld | -0.49 | 0.10 |
| May 31 | vs SF | ▲4 | 2-1 | Braxton Fulford | Fielding | Ball | Overturned | 0.67 | 0.21 |
| May 20 | vs TEX | ▼4 | 3-2 | Kyle Karros | Batting | Strike | Overturned | 0.93 | 1.75 |
| May 20 | vs TEX | ▼5 | 1-2 | Tyler Freeman | Batting | Strike | Overturned | 0.94 | 0.47 |
| May 20 | vs TEX | ▲7 | 1-0 | Brett Sullivan | Fielding | Ball | Overturned | 1.04 | 0.23 |
| May 18 | vs TEX | ▼1 | 2-0 | TJ Rumfield | Batting | Strike | Overturned | 0.75 | 0.29 |
| May 18 | vs TEX | ▲2 | 0-2 | Hunter Goodman | Fielding | Ball | Upheld | -0.10 | 0.22 |
| May 18 | vs TEX | ▼3 | 3-1 | Ezequiel Tovar | Batting | Strike | Overturned | 2.13 | 0.29 |
| May 18 | vs TEX | ▼6 | 0-0 | Willi Castro | Batting | Strike | Overturned | 3.25 | 0.12 |
| May 18 | vs TEX | ▲8 | 1-2 | Hunter Goodman | Fielding | Ball | Upheld | -0.01 | 0.45 |
| May 17 | vs AZ | ▼9 | 2-2 | TJ Rumfield | Batting | Strike | Overturned | 0.11 | 0.13 |
| May 16 | vs AZ | ▼2 | 2-1 | Kyle Karros | Batting | Strike | Upheld | -0.43 | 0.21 |
| May 16 | vs AZ | ▲6 | 0-0 | Hunter Goodman | Fielding | Ball | Upheld | -0.74 | 0.10 |
| May 15 | vs AZ | ▼3 | 0-1 | Mickey Moniak | Batting | Strike | Upheld | -0.96 | 0.10 |
| May 15 | vs AZ | ▲9 | 2-2 | Hunter Goodman | Fielding | Ball | Overturned | 1.11 | 0.60 |
| May 15 | vs AZ | ▼9 | 1-1 | Edouard Julien | Batting | Strike | Overturned | 1.65 | 0.13 |
| May 6 | vs NYM | ▲2 | 0-2 | Hunter Goodman | Fielding | Ball | Upheld | -0.47 | 0.25 |
| May 6 | vs NYM | ▼9 | 1-0 | Tyler Freeman | Batting | Strike | Overturned | 1.73 | 0.30 |
| May 7 | vs NYM | ▲2 | 3-2 | Brett Sullivan | Fielding | Ball | Upheld | -1.51 | 1.01 |
| May 7 | vs NYM | ▲7 | 0-0 | Brett Sullivan | Fielding | Ball | Upheld | -1.78 | 0.06 |
| May 4 | vs NYM | ▼6 | 0-2 | Brenton Doyle | Batting | Strike | Upheld | -0.58 | 0.15 |
| May 4 | vs NYM | ▼8 | 3-2 | Tyler Freeman | Batting | Strike | Upheld | -1.27 | 0.79 |
| May 3 | vs ATL | ▲3 | 1-2 | Brett Sullivan | Fielding | Ball | Overturned | 0.30 | 0.39 |
| May 3 | vs ATL | ▲6 | 3-1 | Brett Sullivan | Fielding | Ball | Upheld | -1.84 | 0.57 |
| May 3 | vs ATL | ▲6 | 1-0 | Brett Sullivan | Fielding | Ball | Upheld | -1.69 | 0.06 |
| May 2 | vs ATL | ▲1 | 0-0 | Hunter Goodman | Fielding | Ball | Overturned | 1.97 | 0.06 |
| May 2 | vs ATL | ▲4 | 0-0 | Hunter Goodman | Fielding | Ball | Overturned | 1.56 | 0.08 |
| May 2 | vs ATL | ▲6 | 3-2 | Hunter Goodman | Fielding | Ball | Upheld | -0.75 | 0.43 |
| May 1 | vs ATL | ▼4 | 0-2 | Hunter Goodman | Batting | Strike | Upheld | -0.61 | 0.07 |
| May 1 | vs ATL | ▲9 | 2-0 | Hunter Goodman | Fielding | Ball | Overturned | 1.57 | 0.24 |
| May 1 | vs ATL | ▼9 | 1-0 | Edouard Julien | Batting | Strike | Upheld | -1.52 | 0.23 |
| Apr 22 | vs SD | ▼3 | 2-1 | Willi Castro | Batting | Strike | Upheld | -2.15 | 0.20 |
| Apr 22 | vs SD | ▲5 | 3-2 | Hunter Goodman | Fielding | Ball | Overturned | 0.06 | 0.24 |
| Apr 23 | vs SD | ▲1 | 0-0 | Brett Sullivan | Fielding | Ball | Overturned | 0.49 | 0.03 |
| Apr 23 | vs SD | ▲3 | 0-0 | Brett Sullivan | Fielding | Ball | Overturned | 0.52 | 0.20 |
| Apr 23 | vs SD | ▲5 | 2-0 | Brett Sullivan | Fielding | Ball | Upheld | -0.89 | 0.09 |
| Apr 23 | vs SD | ▲8 | 2-1 | Brett Sullivan | Fielding | Ball | Upheld | -0.03 | 0.08 |
| Apr 21 | vs SD | ▼7 | 0-0 | TJ Rumfield | Batting | Strike | Upheld | -0.16 | 0.10 |
| Apr 21 | vs SD | ▲9 | 0-0 | Hunter Goodman | Fielding | Ball | Overturned | 3.99 | 0.06 |
| Apr 21 | vs SD | ▲9 | 2-2 | Hunter Goodman | Fielding | Ball | Overturned | 0.95 | 0.56 |
| Apr 20 | vs LAD | ▼6 | 0-1 | Ezequiel Tovar | Batting | Strike | Upheld | -0.92 | 0.07 |
| Apr 20 | vs LAD | ▲8 | 1-0 | Brett Sullivan | Fielding | Ball | Overturned | 0.65 | 0.10 |
| Apr 20 | vs LAD | ▼8 | 0-2 | Hunter Goodman | Batting | Strike | Upheld | -0.60 | 0.15 |
| Apr 19 | vs LAD | ▲2 | 0-1 | Michael Lorenzen | Fielding | Ball | Overturned | 0.14 | 0.08 |
| Apr 19 | vs LAD | ▲3 | 0-0 | Michael Lorenzen | Fielding | Ball | Upheld | -1.79 | 0.06 |
| Apr 19 | vs LAD | ▲3 | 1-0 | Hunter Goodman | Fielding | Ball | Overturned | 1.31 | 0.12 |
| Apr 19 | vs LAD | ▼7 | 0-0 | Ezequiel Tovar | Batting | Strike | Upheld | -1.33 | 0.06 |
| Apr 18 | vs LAD | ▼1 | 1-0 | Edouard Julien | Batting | Strike | Overturned | 0.80 | 0.16 |
| Apr 18 | vs LAD | ▲3 | 1-0 | Hunter Goodman | Fielding | Ball | Overturned | 2.39 | 0.16 |
| Apr 18 | vs LAD | ▲8 | 1-2 | Hunter Goodman | Fielding | Ball | Overturned | 3.28 | 0.63 |
| Apr 18 | vs LAD | ▲8 | 3-1 | Hunter Goodman | Fielding | Ball | Upheld | -0.88 | 0.19 |
| Apr 17 | vs LAD | ▲1 | 1-0 | Brett Sullivan | Fielding | Ball | Upheld | -0.56 | 0.11 |
| Apr 17 | vs LAD | ▼9 | 1-1 | TJ Rumfield | Batting | Strike | Upheld | -0.87 | 0.13 |
| Apr 8 | vs HOU | ▲6 | 2-1 | Hunter Goodman | Fielding | Ball | Upheld | -0.17 | 0.13 |
| Apr 8 | vs HOU | ▲9 | 2-1 | Hunter Goodman | Fielding | Ball | Overturned | 0.62 | 0.14 |
| Apr 7 | vs HOU | ▲1 | 0-2 | Brett Sullivan | Fielding | Ball | Overturned | 1.32 | 0.07 |
| Apr 7 | vs HOU | ▼4 | 1-0 | Jordan Beck | Batting | Strike | Overturned | 1.04 | 0.05 |
| Apr 7 | vs HOU | ▼5 | 1-2 | Kyle Karros | Batting | Strike | Upheld | -1.26 | 0.33 |
| Apr 7 | vs HOU | ▲6 | 0-2 | Brett Sullivan | Fielding | Ball | Overturned | 0.96 | 0.17 |
| Apr 6 | vs HOU | ▼3 | 3-2 | Kyle Karros | Batting | Strike | Upheld | -0.61 | 0.63 |
| Apr 6 | vs HOU | ▼5 | 0-0 | Troy Johnston | Batting | Strike | Upheld | -0.28 | 0.07 |
| Apr 3 | vs PHI | ▲1 | 0-0 | Hunter Goodman | Fielding | Ball | Overturned | 1.21 | 0.06 |
| Apr 3 | vs PHI | ▼5 | 0-0 | Hunter Goodman | Batting | Strike | Upheld | -0.34 | 0.06 |
| Apr 3 | vs PHI | ▼8 | 0-1 | Hunter Goodman | Batting | Strike | Upheld | -1.14 | 0.07 |
| Apr 4 | vs PHI | ▼2 | 3-2 | Ezequiel Tovar | Batting | Strike | Upheld | -1.92 | 0.63 |
| Apr 4 | vs PHI | ▲3 | 3-2 | Brett Sullivan | Fielding | Ball | Overturned | 2.21 | 0.43 |
| Apr 4 | vs PHI | ▲6 | 0-1 | Brett Sullivan | Fielding | Ball | Upheld | -2.29 | 0.08 |
| Apr 5 | vs PHI | ▲4 | 3-2 | Hunter Goodman | Fielding | Ball | Overturned | 0.97 | 0.63 |
| Apr 5 | vs PHI | ▲5 | 2-0 | Hunter Goodman | Fielding | Ball | Overturned | 0.66 | 0.20 |
| Apr 5 | vs PHI | ▲8 | 1-2 | Hunter Goodman | Fielding | Ball | Overturned | 0.14 | 0.15 |
| Apr 30 | @ CIN | ▼6 | 0-0 | Hunter Goodman | Fielding | Ball | Overturned | 0.46 | 0.07 |
| Apr 30 | @ CIN | ▲7 | 2-2 | Troy Johnston | Batting | Strike | Upheld | -2.25 | 0.44 |
| Apr 29 | @ CIN | ▼2 | 2-1 | Brett Sullivan | Fielding | Ball | Upheld | -0.10 | 0.21 |
| Sep 26 | @ CWS | ▲2 | 0-1 | Cole Carrigg | Batting | Strike | Overturned | 0.01 | 0.03 |
| Sep 26 | @ CWS | ▲5 | 1-0 | Connor Norby | Batting | Strike | Upheld | -0.64 | 0.05 |
| Sep 25 | @ CWS | ▲6 | 3-2 | Kyle Karros | Batting | Strike | Overturned | 1.45 | 0.52 |
| Jun 15 | @ CHC | ▲6 | 2-0 | Troy Johnston | Batting | Strike | Upheld | -1.54 | 0.28 |
| Jun 15 | @ CHC | ▼7 | 3-0 | Brett Sullivan | Fielding | Ball | Upheld | -0.37 | 0.18 |
| Jun 17 | @ CHC | ▼4 | 0-0 | Hunter Goodman | Fielding | Ball | Overturned | 0.48 | 0.12 |
| Jun 17 | @ CHC | ▼8 | 2-2 | Hunter Goodman | Fielding | Ball | Overturned | 1.17 | 0.56 |
| Aug 29 | @ ATL | ▼1 | 0-2 | Hunter Goodman | Fielding | Ball | Upheld | -1.25 | 0.23 |
| Aug 30 | @ ATL | ▼9 | 1-1 | Brett Sullivan | Fielding | Ball | Overturned | 2.14 | 0.13 |
| Aug 28 | @ ATL | ▲4 | 1-1 | Connor Norby | Batting | Strike | Upheld | -0.93 | 0.19 |
| Aug 28 | @ ATL | ▲5 | 0-0 | Cole Carrigg | Batting | Strike | Overturned | 0.70 | 0.12 |
| Aug 28 | @ ATL | ▼6 | 0-0 | Hunter Goodman | Fielding | Ball | Overturned | 2.64 | 0.06 |
| Jun 14 | @ ATH | ▲1 | 1-0 | Willi Castro | Batting | Strike | Upheld | -1.40 | 0.16 |
| Jun 14 | @ ATH | ▼1 | 0-0 | Hunter Goodman | Fielding | Ball | Overturned | 0.30 | 0.10 |
| Jun 14 | @ ATH | ▼1 | 2-2 | Hunter Goodman | Fielding | Ball | Overturned | 0.78 | 0.44 |
| Jun 14 | @ ATH | ▼2 | 0-1 | Hunter Goodman | Fielding | Ball | Upheld | -0.04 | 0.07 |
| Jun 13 | @ ATH | ▲9 | 0-0 | Sterlin Thompson | Batting | Strike | Upheld | -2.40 | 0.03 |
| Jun 12 | @ ATH | ▲3 | 0-1 | TJ Rumfield | Batting | Strike | Upheld | -4.61 | 0.03 |
| Aug 11 | @ AZ | ▼5 | 1-2 | Tomoyuki Sugano | Fielding | Ball | Overturned | 0.05 | 0.15 |
| Aug 12 | @ AZ | ▼1 | 0-0 | Brett Sullivan | Fielding | Ball | Overturned | 0.11 | 0.17 |
| Aug 12 | @ AZ | ▼3 | 0-0 | Brett Sullivan | Fielding | Ball | Upheld | -0.38 | 0.12 |
| Aug 12 | @ AZ | ▲4 | 3-1 | Willi Castro | Batting | Strike | Overturned | 2.34 | 0.33 |
| Aug 12 | @ AZ | ▼6 | 2-2 | Brett Sullivan | Fielding | Ball | Overturned | 0.53 | 0.82 |
| Aug 12 | @ AZ | ▲8 | 1-1 | Willi Castro | Batting | Strike | Upheld | -1.16 | 0.13 |
| Aug 10 | @ AZ | ▼1 | 0-0 | Hunter Goodman | Fielding | Ball | Upheld | -0.55 | 0.05 |
| May 23 | @ AZ | ▼3 | 1-1 | Hunter Goodman | Fielding | Ball | Overturned | 1.71 | 0.17 |
| May 22 | @ AZ | ▼9 | 2-1 | Hunter Goodman | Fielding | Ball | Overturned | 0.51 | 0.21 |
| May 21 | @ AZ | ▼9 | 0-0 | Hunter Goodman | Fielding | Ball | Upheld | -0.40 | 0.08 |
Three things stood out, and one of them is a caution. First, the bottom edge. Hitters’ challenges nearest the bottom of the zone succeeded 25 of 73 times, 34%, against 49% for other clubs’ hitters (−2.5 standard deviations from the league rate). Colorado’s catchers and pitchers, by contrast, did unusually well at the same edge: 52 of 73, 71% against 59%. I looked at six combinations of role and edge, so one at 2.5 deviations is suggestive, not established. As a check I looked at 2026 spring training, where Colorado hitters went 4 for 9 at the bottom edge to others’ 2 for 6. That’s far too small a sample to confirm or refute anything.
Second, where hitters place their bets. Colorado’s hitters challenged more called strikes that were correct by two to three inches (13% of their challenges against 8%) and fewer that were clearly balls by one to two inches (10% against 16%). That’s where the weaker pitch selection comes from.
Third, a caution. 683 of the calls against Colorado were wrong and challengeable (the club had a challenge in hand, ABS was running and no position player was pitching), which exactly matches Savant’s count. 682 of them have full game context, and those are the ones the numbers below use. Colorado overturned 209 of them, 31%, against 25% league-wide. That leaves 473 on the table, which makes for a tempting headline. But 318 of them (67%) were within an inch of the line, a distance no player can judge from the box or from behind the plate. Only 42 were two inches or more off, and not one of those was worth 0.30 runs or more. Savant’s unrealized-value number is real, but most of it was out of anyone’s reach.
3 The players behind the numbers
A challenger who goes 4 for 5 isn’t necessarily better than one who goes 35 for 65. To compare people fairly, I counted each challenger’s overturns against what the pitches he chose would normally produce, using only what a player could plausibly see: the rough location, the call, the count and the situation, never the exact margin. Then, because small samples exaggerate, I pulled every estimate back toward the league average by however much real skill differences among players appear to matter.
Colorado’s value on the catching and pitching side comes down to two people. Goodman and Sullivan made 188 of the club’s 208 challenges in that group. Goodman won 77 of 113 (68%) on pitches that predict 69, +7.8 above expectation, and Savant’s own RAA ranks him second among 107 MLB catchers (+3.95, behind Atlanta’s Jonah Heim, +4.30). Real skill differences among catchers and pitchers are small, about 3.7 points per challenge, so after adjusting for the small sample his estimate is smaller: about +2.8 points per challenge (95% range −2.6 to +8.1), or about 3 extra overturns over the season. That range includes zero, so I’d call it a lean, not a finding. Sullivan won 44 of 75, matching his expectation (−1.5 overturns), so whatever produced his +1.65 RAA, it wasn’t a better-than-expected hit rate.
Among hitters, the data can’t reliably rank anyone. Across 229 MLB hitters with at least 8 challenges, I estimate the real spread in skill at about 1.1 points per challenge, against 12 points of luck in a typical hitter’s record. That estimate depends on my model, so I’d read it as “small,” not “zero.” Willi Castro won 6 of 24 against 9 expected, and Cole Carrigg 12 of 27 against 14. Those are the club’s most visible lows, and with these sample sizes neither can be told apart from an average hitter. I wouldn’t build a bad-decisions story on them.
Dot = observed overturn rate; whisker = 95% range; tick = rate expected from the pitches/situations they chose. Only players with ≥ 5 challenges.
Hunter Goodman
After adjusting for the small sample by pulling toward the MLB average (real skill differences among the 86 fielding challengers with ≥ 15 challenges look to be about 3.7 points per challenge, against about 6 points of luck in a typical record), the adjusted estimate for Goodman is +2.8 points per challenge versus expectation (95% range −2.6 to +8.1), which includes zero. Expected overturns come from my model, and this range does not include uncertainty in that model.
113 challenged pitches. 77 overturned (●), 36 upheld (✕).
4 What a challenge is worth
A reversed call is worth the difference in run expectancy between a ball and a strike in that exact count, with that many outs and those runners on. At 0-0 with two out and nobody on, that’s 0.03 runs. At 3-2 with two out and the bases loaded, it’s 1.75. Six Colorado challenges show the range. Select one to step through the call, the tracked pitch, the ruling and the consequence. I only show where the ball crossed the plate, because the data don’t support drawing a flight path.
Brett Baty vs Jose Quintana
Road game at NYM, Apr 26. Brett Sullivan challenged for Colorado’s defense.
The umpire called ball on a SI at 91 mph. If it stands: ball four — walk. Challenges must be made immediately, with no replay review.
- Original call: ball — ball four — walk.
- ABS ruling: strike — strike three — out.
The cost side is less obvious. Winning a challenge costs nothing, but losing one costs you a future option. Savant’s documentation uses a rule of thumb of 0.2 runs. I estimated it from the data instead, by comparing how clubs fared in games where they started an inning holding two challenges versus one (or one versus none). That works out to about 0.047 runs per lost challenge, or 0.043 using only the 4,331 of 4,754 lost challenges with enough comparable games. For first-inning losses, which have nothing to compare against, I assumed one challenge is worth 60% of two. This is a comparison, not proof of cause and effect: clubs that kept their challenges may differ in skill or opportunity. The average club ends a game with 1.0 challenges unspent (Colorado: 0.9), which is why the number comes out small. At a cost nearer 0.2, failed challenges would matter far more, so everything below depends on this estimate. Using it, the best “skip the low-stakes ones” rule I could find for hitters, tuned on the other 29 clubs, added 0.03 runs per club in the sample and 0.05 runs for Colorado’s hitters (range −0.17 to +0.28). That’s close to nothing.
The lab below shows the break-even for any situation: how sure a player has to be before challenging pays off. It can’t tell you how sure he actually is, and that gap is the whole problem.
Challenge. At 50% confidence this clears the 42.4% break-even.
- Illustrative, not a play-calling rule. “Belief” is a probability you must form from sight alone; the exact pitch location is unknown until after the ruling.
- Flip value = change in run expectancy between a called ball and a called strike from this count, out and base state (a run-expectancy table built from 2026 pitches).
- “This study” cost = the difference in average future gain between games where a club held r challenges and games where it held r−1 at this inning (0.047 runs on average over upheld challenges; 0.043 using only the 4,331 of 4,754 where both groups have enough games; the rest, mostly first-inning losses, assume one challenge is worth 60% of two). It is a comparison, not proof of cause and effect: clubs that kept their challenges may differ in other ways. Savant’s documentation uses a 0.2-run rule of thumb; the 0.21 option is the flat loss implied by its leaderboard totals.
- Ignores win probability beyond run expectancy, who is batting or pitching, and how a flipped call changes later pitches.
So how much would a better challenger be worth? I replayed every club’s season using a simple rule: challenge only when the odds clear the break-even. The catch is that the rule can’t see the exact location. It gets a blurry version of where the ball crossed, plus the count, the situation, the pitch type and how many challenges are left, and it keeps track of its own challenges. It never sees the ABS ruling. Everything the rule relies on was set using games other than the ones being scored.
| Blur | Season, avg club | Season, Colorado | Last 41 games, avg club | Last 41 games, Colorado (95% range) |
|---|---|---|---|---|
| 0 in | +13.2 | +5.8 | +2.7 | +0.7 (−2.6 to +4.1) |
| 1 in | +11.8 | +3.2 | +2.1 | −0.7 (−4.1 to +2.7) |
| 2 in | +3.9 | −6.9 | +0.3 | −3.1 (−6.1 to −0.2) |
| 3 in | −3.9 | −13.9 | −2.0 | −4.3 (−7.3 to −1.3) |
| 4 in | −8.9 | −16.1 | −2.9 | −5.0 (−7.7 to −2.4) |
Read this as a what-if, not a forecast. If a player could place the pitch to within an inch, the rule would add +11.8 runs a season over what the average club actually did, but only +3.2 over what Colorado did; Colorado ranks 28th of 30 in room to improve. At two inches the average club’s gain shrinks to +3.9, and the rule falls below Colorado’s actual choices (−6.9). At three inches it loses for nearly everyone. In the last 41 games (August 14 to September 27), which nothing was set on, the pattern holds: at two inches the rule gains +0.28 runs per club and loses −3.06 to Colorado (range −6.1 to −0.2). So Colorado’s challengers already decide better than a rule that sees to within two inches, and a smarter rule would need much sharper sight than that to help. I tried seven settings for one family of rules, so this doesn’t show that no rule could do better, and the amount of blur is my assumption, not a measured limit. It’s also a static replay: it doesn’t change later pitches when a call flips.
5 Does Coors Field matter?
It’s the obvious question for this club. I found no clear difference, which isn’t the same as proving there is none. Colorado challenged 4.0% of its opportunities at home and 3.3% on the road, won 54% against 54%, and gained about the same value over expectation per game. For all challenges together, every range includes zero. For catchers and pitchers alone, the challenge-rate range only just excludes it (+0.7 points, +0.05 to +1.45); with twelve comparisons on the page, one barely clearing zero is about what chance would produce. League-wide, umpires were wrong on 6.52% of eligible called pitches at Coors and 6.46% elsewhere (11th highest of 30 parks), and visiting clubs challenged 3.0% of their opportunities there against 3.1% elsewhere. I won’t attribute anything to altitude that the data don’t show, and I can’t rule out small effects.
Home − road. Bars are 95% ranges that account for game-to-game luck (162 games in total); a bar that crosses the centre line is consistent with no difference, which is not the same as showing there is none. Twelve intervals are on offer across the three scopes, so one that barely clears zero is expected by chance. Axis spans ±3 points for the two rates, ±20 points for overturn rate, ±0.15 runs for run value.
Context from the whole league. Across every club, 6.52% of eligible called pitches at Coors were wrong versus 6.46% elsewhere (Coors ranks 11th of 30 parks; the park-to-park spread is ±0.23%). Visiting clubs challenged 3.0% of their opportunities there (163 of 5,427) against 3.1% elsewhere, winning 56% versus 54%. Both clubs combined, the Coors rate is 3.5% against 3.1%; that figure mixes in Colorado’s own home behavior and is not a visitor measure.
6 What Colorado could do next
None of these says “challenge less” or “challenge more.” Colorado is already near the frontier on volume, and the cost of a lost challenge is small. For each recommendation I list what I saw, why I believe it, what it might be worth, what could be wrong and how to test it.
A Make hitters’ challenge confidence measurable
- What I saw
- Hitters led MLB in volume and ranked 29th in selection; their bottom-edge challenges won 34% against 49% league-wide.
- Why I believe it
- Selection cost −2.8 runs (−6.1 to +0.5). The bottom-edge result is −2.5 standard deviations from the league rate, one of six comparisons. Spring training was too thin to test it.
- What it could be worth
- Bringing selection to average is worth about 3 runs a season if the point estimate is right. The range runs from about break-even to 6 runs, so plan for less.
- What could be wrong
- I can’t distinguish hitter-to-hitter skill differences from zero, so this is a team-wide calibration question, not a personnel one.
- How to test it
- Log a three-level confidence (sure / lean / guess) before each 2027 challenge, spring included. Write down the bottom-edge hypothesis in advance, and each month score how well confidence matched results.
B Count challenge skill in catcher decisions
- What I saw
- Catchers and pitchers were MLB’s best side (+6.1 RAA). Goodman ranks second of 107 catchers (+3.95).
- Why I believe it
- 77/113 against 69 expected. After adjusting for the small sample, his edge is +2.8 ± 5.4 points (95%). Real skill differences among catchers and pitchers look modest (3.7 points).
- What it could be worth
- Savant credits Goodman +4.0 runs against average. My adjusted estimate of his selection edge alone is 3 extra overturns, about 0.6 runs. It’s worth weighing alongside framing and receiving when deciding catcher playing time, but not worth overriding them.
- What could be wrong
- One season, and only 113 challenges. The small-sample adjustment cuts the raw edge by more than half.
- How to test it
- Add overturns above expected per 100 opportunities to the catcher report and track it through the season. Watch whether backup catchers pick up Goodman’s approach.
C Measure how well your challengers see the pitch before changing any rule
- What I saw
- In the what-if replay, a break-even rule helps the average club only if its challengers can locate the pitch to better than about two inches, and Colorado’s actual choices already beat that rule.
- Why I believe it
- Runs per season over actual behavior, if challengers could place the pitch to within 1, 2 or 3 inches: +11.8, +3.9 and −3.9 for the average club; +3.2, −6.9 and −13.9 for Colorado (28th, 27th and 29th of 30 in room to improve). In the last 41 games at two inches, Colorado was −3.1 (−6.1 to −0.2).
- What it could be worth
- Unknown until perception is measured. If a Colorado challenger really sees to one inch, the replay implies a few runs a season (+3.2), more for the average club; if not, a better rule gains nothing.
- What could be wrong
- The blur is an assumption, and real perception isn’t that tidy. I tested one family of rules at seven settings, and a replay can’t capture how a flipped call changes later pitches.
- How to test it
- Measure each hitter’s and catcher’s location error in spring-training sessions with tracked-pitch replay, assign the challenge role accordingly, and check whether measured precision predicts in-season results.
Methodology
This section is for anyone who wants to check my work. Everything above comes from public MLB data, and I checked my rebuilt numbers against Savant’s published ones wherever I could. I also rebuilt the core results as plain SQL queries and checked them against the Python: The Rockies ABS Analysis, Rebuilt in SQL.
Data and coverage. I used all 2,427 final regular-season games from March 25 through September 27, 2026, pulled on October 30, so later MLB corrections aren’t reflected. Pitch locations, calls and challenge results come from MLB’s StatsAPI game feeds (2427 files). Base-out situations, scores, catchers and a cross-check on locations come from Baseball Savant’s Statcast export (184 daily files). Official totals come from Savant’s ABS leaderboard, documented in its ABS metrics documentation. The rules are in MLB’s announcement. Spring-training games (31 Colorado games, 143 challenges) were used only for the out-of-sample check in chapter 2.
Pitch locations. The game feed measures location at the front of the plate, but the ABS zone is judged at the middle, and Statcast itself moved its location fields to the middle of the plate in 2026. I recalculated each pitch’s position at 8.5 inches behind the front edge from its tracked path. That reproduces Savant’s published values for 404 pitches to within a millionth of a foot. With a 1.45-inch ball radius and the batter-specific zone the feed reports (27% to 53.5% of height), my geometry reproduces all 10,541 located ABS rulings.
Challenges. Challenges on a pitch that ends a plate appearance (strike three, ball four) are recorded at the at-bat level in the feed, not on the pitch, and a straightforward read of the data misses about a quarter of them. After attaching them, I count 10,551 league challenges against Savant’s 10,557 (24 of 30 clubs match exactly, and none differs by more than 2). Colorado reconciles exactly: 386 challenges and 209 overturned, split 178 and 75 for hitters, 208 and 134 for catchers and pitchers. My running count of each team’s challenges left matches the feed in all 4,428 team-games that didn’t go to extra innings.
Opportunities and value. A chance to challenge follows Savant’s definition: a called pitch against the team, a challenge in hand, ABS running in the game (four games lack it) and no position player pitching. After removing 1,780 ineligible called pitches, Colorado had 683 overturnable calls, exactly Savant’s 683 (682 once I set aside one pitch with missing Statcast context, which is the set the percentages use). Across clubs, my counts correlate with Savant’s at r = 0.999, with 21 of 30 clubs matching exactly; Savant also counts some correct-but-close pitches under its “reasonable pitch” rules, so small positive gaps are expected. To value a flipped call, I built a run-expectancy table for all 288 combinations of count, outs and baserunners from 2026 pitches, smoothed where the data were sparse. I adjusted it so it behaves sensibly: more balls never lower the batting team’s value, more strikes never raise it (29 of 288 cells changed, by at most 0.085 runs), and a three-ball count never exceeds the walk it leads to (4 cells). Flip values are therefore never negative; one situation (3-0, two out, runner on third) sits at exactly zero, which the decision lab reports as “no break-even.” Against Savant’s published per-challenge values, my table differs by a median of 0.012 runs.
Models. Two statistical models sit under the analysis. One predicts how often an average club challenges a given pitch (AUC 0.95 on games it hadn’t seen, where 0.50 is a coin flip; log loss 0.081 against 0.143 for a flat rate). The other predicts whether a challenge succeeds (AUC 0.75), using only coarse information a player could have before the ruling. Both were trained on earlier dates and tested on later ones, with whole dates held out together. The success model was over- and under-confident at its extremes, so I recalibrated it on other date blocks without Colorado (out-of-sample log loss 0.580 to 0.567). The what-if replay scores each quarter of the season with settings fitted on the other three; only the last quarter is a true out-of-sample test. Ranges: team and Colorado figures come from re-drawing the season’s games 2,000 times; win-rate ranges use the Wilson method; the player ranges after the small-sample adjustment do not carry through uncertainty in the benchmark model.
Limitations
- Runs Above Average, volume and selection are measured against a model, not literal runs or wins. Whatever the sign, ten runs is roughly one win.
- “Expected” uses the true location, so it is a benchmark for describing what happened, not something a player could compute in the box. The success model and the what-if replay use only what a player could plausibly see, and the amount of blur is my assumption.
- Static replays ignore knock-on effects of flipped calls. The cost of a lost challenge is a league-average comparison, not an optimum or a proven cause and effect. I didn’t identify technical outages beyond the four games without ABS, and extra-inning challenge counts disagree with the feed in 113 team-games, which I left out of validation rather than resolve.
- I examined six edge comparisons and didn’t adjust for that, so I don’t claim the bottom-edge result as established. The 10,551 league challenges include ten whose Statcast data failed to match up (context fields blank, left out of the run-value work).
- One season, one club. Nothing here predicts 2027.
Sources, attribution and independence
Every number on this page can be rebuilt from public data; the analysis code, tests and notes are kept with this site’s source. Baseball data © MLB Advanced Media, L.P., used for independent, non-commercial analysis. MLB Advanced Media permits individual, non-commercial, non-bulk use of its data, so this site publishes only Colorado’s own challenge records and league totals, not league-wide pitch-level files. This work is not affiliated with, endorsed by, or reviewed by Major League Baseball or the Colorado Rockies. Names and statistics are used only to report on public play.