Skip to main content
Read-only snapshot: model data as of 2026-07-16; paper desk record through 2026-10-22. No live data; paper units only.
CourtVision
Ask Scout

Findings

Findings

MLB leaderboards, with the nulls attached

The one gated signal failed. Catcher, platoon and umpire leaderboards are descriptive. The umpire-tendency signal for game totals was gated against a planted null and did not pass.

REJECTn = 103 umpires in the gate; 113 qualified catchersno intervalmlb_descriptive_leaderboards.jsongenerated 2026-07-24descriptive_only
quoted on 2 pages
Findings are exploratory unless a pre-registration file, date and hash are shown on the page.

How it was tested

  • Gate: leak-free expanding gate with a planted null (shuffled umpire assignment) for the totals signal; leaderboards ungated
  • Corpora: Statcast 2022_2023
  • Folds: 3 walk-forward folds

Replication

single corpus

Inspector

No inspector page for this finding.

Descriptive MLB Statcast-derived leaderboards (catcher/umpire out-of-zone strike rate, platoon on-base splits) for a fixed 2022-2023 corpus slice, shown beside two honest nulls -- an unstable park-factor read and a REJECTed umpire-totals gate -- with no predictive or advantage claim anywhere.

Window: 2022-2023 Statcast slice (statcast_fuller_v1) — a fixed 2022-2023 Statcast slice, not the current season.

Catcher out-of-zone strike rate

Out-of-zone called/swung-strike rate -- a DESCRIPTIVE catcher stat, cruder than model-based framing; NOT a called-strike or framing rate, NOT predictive.

floor: n_ooz_called>=500 · n_qualified 113

Top 15

NameOOZ strike raten
René Pinto0.3153,448
Austin Barnes0.3056,707
Alejandro Kirk0.30510,963
Patrick Bailey0.3045,657
Roberto Pérez0.3021,637
Sandy León0.3022,537
Travis d'Arnaud0.29911,281
Cal Raleigh0.29914,504
Curt Casali0.2995,068
Jacob Stallings0.29812,090
Austin Wells0.2981,276
Manny Piña0.298541
Danny Jansen0.2978,461
Meibrys Viloria0.2971,543
Tom Murphy0.2973,167

Scroll horizontally for all columns.

Bottom 15

NameOOZ strike raten
Logan O'Hoppe0.2553,921
Tyler Stephenson0.2548,674
Carlos Pérez0.2532,234
David Fry0.253882
Andrew Knizner0.2539,652
Shea Langeliers0.2529,839
Brett Sullivan0.2511,708
Korey Lee0.2502,159
Riley Adams0.2505,437
P.J. Higgins0.2501,946
Elias Díaz0.25014,540
Robinson Chirinos0.2463,989
Carlos Pérez0.2391,277
Cooper Hummel0.218914
Drew Millas0.212585

Scroll horizontally for all columns.

Platoon splits

Raw on-base-rate gap vs LHP minus vs RHP -- not park/quality adjusted, descriptive only.

floor: pa_vs_l>=50 and pa_vs_r>=50 · n_qualified 394

Battervs LHPvs RHPDeltaPA (L/R)
Mitch Garver0.4530.3000.152148 / 413
Robbie Grossman0.4270.2760.151286 / 613
Cristian Pache0.3150.1910.124146 / 209
Bobby Dalbec0.3580.2430.116134 / 272
Sam Haggerty0.3960.2880.108154 / 156
William Contreras0.4370.3290.107293 / 695
Kevin Smith0.2790.1750.104104 / 194
Rob Refsnyder0.4200.3170.103219 / 202
Kevin Newman0.3740.2730.101214 / 348
Albert Pujols0.4050.3080.097131 / 221
TJ Friedl0.4170.3210.096132 / 682
José Caballero0.3950.3010.094124 / 156
Patrick Bailey0.3450.2540.091113 / 240
Jose Trevino0.3450.2540.090119 / 405
Harold Ramírez0.4110.3220.088246 / 624

Scroll horizontally for all columns.

Umpire out-of-zone strike rate

Out-of-zone called/swung-strike rate -- a DESCRIPTIVE umpire-zone stat, cruder than model-based framing; NOT a called-strike or framing rate, NOT predictive.

n_qualified 102

Top 15

NameOOZ strike raten
Randy Rosenberg0.314506
Bill Miller0.3088,815
Laz Diaz0.3027,197
Doug Eddings0.3028,181
Andy Fletcher0.3008,328
Lance Barrett0.2998,184
Gabe Morales0.2998,409
Jacob Metz0.2991,735
Marty Foster0.2981,492
Brian Walsh0.2981,960
Jerry Meals0.2973,759
CB Bucknor0.2977,915
Phil Cuzzi0.2978,086
Chris Conroy0.2954,251
Greg Gibson0.2951,308

Scroll horizontally for all columns.

Bottom 15

NameOOZ strike raten
Jansen Visconti0.2728,248
Alan Porter0.2718,451
Adrian Johnson0.2708,422
Shane Livensparger0.2708,920
Paul Emmel0.2705,062
Jordan Baker0.2708,319
Nate Tomlinson0.2697,223
Tripp Gibson0.2688,399
Alex Tosi0.2687,715
John Bacon0.2672,933
Pat Hoberg0.2668,269
Mark Wegner0.2636,755
Carlos Torres0.2608,472
David Arrieta0.259754
Derek Thomas0.2522,608

Scroll horizontally for all columns.

Park factor — the published null

asof_park.parquet's park_factor is mostly NaN in this corpus -- too unstable/sparse to publish as a ranking, so we report the null instead. 0 of 29 rows had a finite park factor (29 NaN). This is not published as a ranking — verdict: too unstable/sparse to publish as a ranking.

Umpire-totals gate — the sharp angle we tested and failed

REJECT

Hypothesis

home-plate umpire out-of-zone strike-rate tendency (expanding, as-of within this gate) predicts game total runs beyond an internal league+park baseline

Why it failed

planted null (shuffled umpire assignment) shows an equal-or-larger RMSE improvement than the real assignment -- added-flexibility artifact, not umpire signal

N umpires

103

Fold RMSE deltas (real vs. planted-null assignment)

-0.000407, -0.001334, -0.000491

Reading

ump identity did not move game totals -- a REJECT, published honestly

Confounds

  • OOZ strike rate is cruder than mixed-model framing and is NOT a called-strike/framing rate.
  • 2022-2023 fixed window; not current-season.
  • platoon delta is raw on-base rate difference, not park/quality adjusted.
  • these are DESCRIPTIVE leaderboards; no predictive or advantage claim is made.

Descriptive only, from a fixed 2022-2023 window. The tables report observed Statcast splits rather than a forecast.

Limitations

  • Sample and independence: pitches cluster within games and umpires; the leaderboards carry no intervals.
  • Scope: one Statcast window; the park-factor ranking was too sparse to publish.
  • Does not establish any umpire or catcher effect on game outcomes; the gated totals signal failed.

Verdict history

  1. : current: REJECT

Reproduce

python scripts/platformkit/analytics_showcase/mlb_descriptive_leaderboards.py

Source path

scripts/platformkit/analytics_showcase/out/mlb_descriptive_leaderboards.json

scripts/platformkit/analytics_showcase/mlb_descriptive_leaderboards.py

Change log

Quoted on

scripts/platformkit/analytics_showcase/out/mlb_descriptive_leaderboards.json is quoted on:

Findings