New to these reports? Start here
  • Dotted-underlined words have a plain-English definition — hover or tap them. Every term is also on the glossary page.
  • "Null" means we found nothing, not that something broke. Most reports here are negative results, on purpose — knowing an idea doesn't work is the point.
  • Two questions get asked separately. First, is the effect real? Second, is it already priced into the betting odds? An effect can be completely real and still useless to bet on.
  • A "calibration" row is a self-check. It runs the same method on something already known to be true. If that fails, the whole report is unreliable — so it's reported alongside the findings.
  • If a confidence interval includes zero, the real effect might be nothing at all, so no claim gets made.

Home Run Derby: Selection & the "Post-Derby Slump"

One-off descriptive study — not a model, not production. All code/data under backtests/hr_derby/. n is tiny (~122 participant-slots over 15 Derbies); everything below is bounded, not proven. Adversarial check verdict: sound (regression-to-the-mean explicitly handled), with one major caveat folded into the results below.

TL;DR

  1. Selection (Q1): YES. Derby invitees are picked on first-half home-run rate — participants roughly double the regular-pool HR/PA (0.0544 vs 0.0279), and a logistic model on public rate stats separates them at CV AUC ~0.90. Barrel% and exit velocity show big univariate gaps but add no demonstrable incremental signal beyond HR rate.
  2. Derby effect (Q2): NO detectable slump beyond regression to the meanregression to the meanExtreme results tend to be followed by more ordinary ones, purely by chance. Mistaking this for a real decline is a classic error.. Participants do decline after the break (-4.94 HR/550 PA, 72% of them) — but non-participants matched on the same hot first-half HR pace decline more (-5.90). The control-adjusted "Derby effect" is +0.95 HR/550 PA, 95% CI95% confidence intervalThe range the true value is plausibly in. If this range includes zero, we cannot rule out that the real effect is nothing at all. [-0.82, +2.70] — straddles zero. The famous slump is consistent with ordinary selection-then-regression.

This is not proof the Derby is harmless — it's a bound: any real effect is small, and the design has specific blind spots (below).


Feasibility & data

  • Derby rosters: Wikipedia per-year Derby articles → 122 participant-slots, 2010–2025 (2020 excluded: Derby cancelled). All 122 matched to mlb_id_map (Chadwick) with zero ambiguous matches — tricky cases (Guerrero Jr./Sr., Corey Hart, Chris Young OF/P, Acuña Jr., etc.) verified. One slot (Chris Young 2010) later dropped on a retro_id join failure → n=121 in analysis.
  • Stats: local [redacted] (Retrosheet PBP for HR/PA/AVG/SLG/ISO splits; mlb_statcast_batter_games for per-game barrels/EV) + live pybaseball Statcast leaderboards. FanGraphs tested and blocked from this server.
  • Dataset: 5,471 (player, season) rows — every hitter with ≥100 first-half PA, 15 seasons, plus all participants regardless of PA. Spot-checked (Judge 2022 halves exact; Judge 2024 barrel% 26.36% vs doc's 26.4%).
  • Barrel/EV granularity is tiered by design: 2010–2014 = no Statcast (missing); 2015/2023/2024/2025 = true first/second-half splits (repo per-game table); 2016–2019/2021/2022 = season-level only (pybaseball leaderboard, no split possible).

Q1 — Does first-half performance predict Derby selection?

Yes, decisively — and the carrier is HR rate, not barrel/EV.

Participants (n=121) vs the regular pool (n=5,349), first half:

Stat Participants − Controls 95% CI
HR/PA +0.0264 (0.0544 vs 0.0279) [+0.0237, +0.0291]
ISO +0.097 [+0.088, +0.106]
SLG +0.126 excludes 0
AVG +0.029 excludes 0
  • Logistic model on public rate stats: CV AUC 0.898 ± 0.023; dominant standardized coefficient is HR/PA (+1.27).
  • Barrel/EV (split-granularity seasons only, n=32 participants / 1,454 controls): barrel% 12.0% vs 6.6% (+5.4pp [+4.1, +6.7]), EV avg +3.2 mph, EV max +4.2 mph — real univariate gaps.
  • But adding barrel/EV lifts AUC only to 0.907 ± 0.039 (inside the base model's CI), and barrel%'s coefficient flips slightly negative (-0.105) once HR/PA and EV are in — a collinearity artifact, flagged as exploratory. Barrel/EV correlate with selection but are not shown to predict it beyond HR rate, and that sub-analysis rests on 32 slots.

Framing caveat (checker, minor): invites are announced in late June while the "first half" runs to ~July 11, so a sliver of the predictor window post-dates the decision. Fine for the descriptive "participants were hotter" claim; "predicts selection" is marginally overstated.

Q2 — Is there a post-Derby slump beyond regression to the mean?

No distinguishable Derby effect survives the matched-control design.

  • Raw participant decline: -0.0090 HR/PA [-0.0125, -0.0054] = -4.94 HR/550 PA; 87/121 (71.9%) declined. Naively, this is the famous slump.
  • Season-matched controls (non-participants matched to each participant on first-half HR/PA; match quality tight — mean gap 0.0012, max 0.021): declined more: -0.0107 [-0.0127, -0.0087] = -5.90 HR/550 PA.
  • Control-adjusted Derby effect: +0.0017 HR/PA = +0.95 HR/550 PA, 95% CI [-0.82, +2.70] — straddles zero, point estimate faintly positive.
  • ISO robustness check agrees: +0.0037 [-0.0082, +0.0162], also crossing zero.

The checker's one major finding (confirmed, conclusion holds)

The match was 1-D on HR/PA only, not on playing time: participants averaged ~82 more first-half PA than their controls (364 vs 281), so participants' rates were more reliable and should mechanically regress less — biasing the adjusted effect positive. Re-running with a ±75-PA matching band (PA equalized at 363 vs 349) moves the estimate from +0.95 to -0.38 HR/550 PA, [-2.19, +1.52] — still firmly nullnull resultA test that found nothing. "Null" is the starting assumption that there is no real effect; a "null result" means the data gave us no reason to abandon that assumption. It does not mean the data was missing or the test failed to run.. So the headline conclusion survives, but the honest statement of the effect is "somewhere around zero, between roughly -2 and +2 HR/550," not "slightly positive."

Other confirmed caveats (minor, none change the verdict)

  • No minimum second-half PA: two injury-shortened halves (Bautista 2012: 21 PA; Tulowitzki 2014: 7 PA) enter the unweighted mean of rates with full weight; raw decline is -4.56 without them (vs -4.94). The matched comparison neutralizes this (both sides unfiltered) and a ≥100-PA robustness run stays null.
  • Pseudo-replication: 121 slots but only 85 distinct players (Alonso ×5, Fielder/Canó ×4); bootstrapbootstrapRe-running a calculation on thousands of resampled versions of the data to see how much the answer wobbles. The spread of those answers becomes the confidence interval. treats slots as independent, and controls can be reused across participants — CIs are slightly too narrow.
  • Complete-case censoring: players with zero second-half PA are dropped. If the Derby caused injury/fatigue that removed playing time entirely, that channel is excluded by construction — a biasbiasWhether the misses lean consistently one way. A projection can have a good average error size but still be biased if it is almost always too high. Bias is often the more fixable problem. toward the null the design cannot fix.
  • Residual talent confound: matching is on a noisy stat; participants are also picked on fame/All-Star status and may have higher true talent than equally-hot controls, which could mask a modest real slump. With n=121 and CI width ±~1.8 HR/550, the design rules out large effects but not a modest one.
  • Mechanism unexamined: no pre/post barrel/EV comparison for Q2 (only 4 seasons have splits). Averaging k=5 controls also mildly shrinks control-side variance vs single-participant deltas.

Plain-English takeaway

Derby selection is exactly what it looks like: MLB invites the guys hitting the most home runs in the first half — they run about double the field's HR rate, and nothing fancier (barrel%, exit velo) adds predictive value beyond that. And the "post-Derby slump" is real in the raw data but fully explained by how participants are chosen: anyone selected on a hot half regresses afterward, and HR-pace-matched non-participants regressed at least as much as Derby hitters did. The control-adjusted effect is a tight null (roughly ±2 HR per 550 PA around zero, robust to the checker's PA-matching correction). Honest verdict: no Derby-specific effect is detectable at this sample size — which is different from "the Derby is proven harmless," because injured-out players are censored and true-talent differences vs controls can't be fully ruled out. Descriptive curiosity satisfied; nothing here warrants further modeling.


Sources: Wikipedia Derby articles; [redacted] (Retrosheet PBP + Statcast batter-games); pybaseball/Baseball Savant leaderboards. 15 seasons 2010–2019, 2021–2025; 2020 excluded (Derby cancelled). Adversarially checked 2026-07-13: verdict sound, regression-to-the-mean handled; one major matching caveat confirmed and reported above.

Follow-up — Can in-season stats predict the CHAMPION? (2026-07-13)

Different question from selection/slump: among the ~8 invitees each year, does anything in their first-half profile pick the winner? (predict_winner.py, within-year design — the champion is chosen from that year's field, so a random invitee is the AUC 0.5 baseline; exact permutationpermutation testRandomly shuffling the labels thousands of times to see what results pure chance produces, then checking whether the real result stands out from that. over 15 Derbies, 2010-2025.)

First-half stat yrs within-yr AUC perm p winner rank vs random year's leader wins
Seed (MLB's own HR rank) 10 0.561 0.32 3.50 vs 3.85 0 / 10
HR (count) 15 0.538 0.34 4.33 vs 4.53 3 / 15
HR/PA 15 0.519 0.43 4.40 vs 4.53 2 / 15
ISO 15 0.557 0.27 4.13 vs 4.53 4 / 15
SLG 15 0.434 0.80 5.00 vs 4.53 3 / 15
max exit velo (Statcast, 10 yrs) 10 0.671 0.054 3.30 vs 4.50 3 / 10
barrel% (Statcast, 10 yrs) 10 0.700 0.032 3.10 vs 4.50 2 / 10

Verdict (UPDATED 2026-07-13 after backfilling 2016-2022 Statcast — the original 4-year barrel/EV rows were starved noise; the honest sample is now 10 Derbies): GAME home-run stats do NOT predict the champion — HR, HR/PA, ISO, SLG and seed all sit at chance (AUC 0.43–0.56, perm p>0.27; the #1 seed, MLB's own first-half-HR leader, won 0 of 10 in the seeded era). But RAW-POWER metrics DO show a real, if fragile, signal: first-half barrel% (AUC 0.70, perm p=0.032) and max exit velocity (AUC 0.671, p=0.054) — the winner ranks ~3.1/3.3 of ~8 vs the random 4.5. That is physically sensible: the Derby is a pure batting-practice distance contest, so a hitter's raw exit-velo/barrel tool translates where situational game-HR rate (confounded by park, approach, opportunity) does not. Caveats that keep this hypothesis-generating, not proven: n=10 winners (one or two years could swing it); 7 stats were tested, so a lone p=0.032 would not survive multiple-comparison correction (Bonferroni ~0.22) — the case rests on the TWO correlated power metrics both pointing the same way, not one isolated hit. A larger sample (future Derbies) is the only real confirmation.

The two findings together: in-season power strongly predicts who gets invited (AUC ~0.90). Once invited, game HR stats say nothing about who wins, but raw power (barrel%/exit velo) is suggestively predictive — the Derby rewards the batting-practice distance tool, which exit velocity measures more cleanly than game home runs. So the honest arc is: HR rate gets you in the door; raw power (weakly, on n=10) picks the winner. Confirmation needs more Derbies.

On this page

Terms in this report

Source

backtests/hr_derby/FINDINGS.md
updated 2026-07-14 00:10