Every spring the bats get faster. Junior Caminero, Jordan Walker, and Oneil Cruz sit at the top of the bat-speed leaderboard; a generation of hitters is being coached to swing as hard as they can and let the launch angle sort itself out. And every month of 2026, the offense has looked a little worse — squared-up contact down, strikeouts up, runs harder to come by. Put those two facts next to each other and you get the take of the season: hitters are trading contact for raw speed, and it’s backfiring. A bat-speed treadmill — everyone running faster to end up further behind.
It’s a clean story. We tried to confirm it, and couldn’t. We took every hitter with enough tracked swings in both 2025 and 2026, measured how much each one changed his bat speed, and asked whether the ones who sped up actually got worse. They didn’t. If anything, they got slightly better — with no measurable cost in contact.
What we found
- There is no treadmill. Within a hitter, adding 1 mph of bat speed from 2025 to 2026 is worth about +0.27 runs per 100 PA (95% CI −0.07 to +0.62) — a modest positive lean, not a penalty. The sign is stable from the loosest to the strictest sample. It is not yet statistically settled, which is why we’re calling it “no treadmill,” not “swinging harder wins.”
- Added speed costs no contact. Per +1 mph, exit velocity rises +0.66 mph and expected production on contact rises ~12 points of xwOBAcon — while the whiff rate doesn’t move at all (−0.08pp, CI straddles zero). The “sell out and swing through everything” mechanism simply isn’t in the data.
- The 2026 “offense crisis” is mostly the calendar. Compare 2026 to the same dates in 2025 instead of the full season, and run value in the bat-tracking population is flat — actually up a hair. League bat speed even rose (69.7 → 70.1 mph). Most of the “decline” everyone’s citing is cold-April seasonality.
- There’s no “right way” to add it. We split each speed gain into “free” speed (same swing length, just faster) and “bought” speed (a longer swing). We expected free to win and bought to backfire. They’re statistically identical. The elegant story died honestly.
- It survives the obvious objection. Maybe failed speed-chasers just lose their jobs and vanish from the sample? We modeled exactly that. Bad hitters drop out — but bat speed doesn’t predict who disappears, and correcting for it leaves the result unchanged.
One caution up front, because it’s the whole ballgame: this is two months of 2026 against a matched window of 2025. The signal is real but modest, and the confidence intervals brush against zero. We re-test it at the All-Star break. What follows is what the early data actually supports — no more.
1. Where’s the treadmill?
Start with the players. We took the 254 hitters with at least 150 tracked swings in the matched 2025 window and 100 in 2026, computed each one’s change in average bat speed, and plotted it against his change in run value — adjusted so we’re measuring him against the league’s own year-over-year drift, not the calendar. If the treadmill were real, this cloud would tilt down to the right: more speed, less production.
Hover any dot for the full split; gold-ringed names are in the news. Horizontal: change in bat speed, 2025→2026. Vertical: league-adjusted change in run value per 100 PA. There is no downward tilt. JJ Bleday (+2.0 mph, +14 runs/100 PA) is the poster child for the optimistic read; Cam Smith — the spring’s most-cited bat-speed breakout — actually added the most speed of any in-news hitter and came out slightly negative, the cleanest counter-anecdote in the set. Individual seasons are noisy; the trend across all 254 is the signal.
The cloud doesn’t tilt. The average within-player slope is +0.27 runs per 100 PA for every mph added — positive, modest, and a long way from the “running backward” story. The naive correlation between speed gained and run value gained is +0.11, already pointing the wrong way for the treadmill.
And notice the names that don’t fit the narrative either way. Brandon Lowe sits up and to the left — he lost half a mph of bat speed and improved anyway, a reminder that speed is one lever among many. Junior Caminero added two full mph and landed almost exactly at zero. If swinging harder were a trap, these are the hitters who’d have fallen into it. They didn’t, and neither did the group.
2. The crisis that isn’t in the swings
Before going further we have to deal with the premise, because it nearly tripped us up too. The 2026 offense numbers really are down against 2025… if you compare them to the full 2025 season. But 2026 has only happened from late March through early June — the cold part of the calendar, when offense is always lower. Compare apples to apples — the same March-27-to-June-1 window in both years — and the “crisis” mostly evaporates in the population we’re studying:
| League, bat-tracked swings | vs full 2025 (naive) | vs matched window (correct) |
|---|---|---|
| Change in run value / swing | −0.0020 (a “decline”) | +0.0002 (flat) |
| Change in run value / 100 PA | −0.30 | +0.05 |
| Average bat speed | 69.7 → 70.1 mph (rose) | |
| xwOBA on contact | .3636 → .3639 (flat) | |
League aggregates over bat-tracked swings, matched calendar window. The full-season comparison manufactures a decline that is really just April weather. This correction matters: differencing every hitter against the wrong baseline would have baked a fake league-wide drop into every individual number.
This is its own small finding. The bat-tracking population isn’t hitting worse in 2026 — it’s swinging a touch harder and producing about the same. Whatever is or isn’t wrong with leaguewide offense, it is not visible as a collapse in how hard the ball is being hit by the hitters we can track. That alone takes a lot of air out of the treadmill.
3. The part the cliché gets exactly backward
The treadmill story has a mechanism baked in: you swing harder, so you swing through more pitches, so you strike out more and the extra exit velo isn’t worth it. That mechanism is testable directly. Within each hitter, what does an extra mph of bat speed actually do to his contact?
Within-player effect of +1 mph of added bat speed, 254 hitters, 95% hitter-bootstrap CIs. Exit velocity and expected production on contact both rise clearly; the whiff rate does not move — its interval straddles zero. There is no contact-for-speed trade in this data.
The harder swing produces harder, better contact — +0.66 mph of exit velocity and about +12 points of xwOBAcon per mph — and it does so for free. The whiff rate barely flinches: −0.08 percentage points per mph, with a confidence interval that comfortably contains zero. Whatever the “sell out and miss” story describes, it is not what these hitters did when they added bat speed. They added speed and kept making the same amount of contact — just louder.
That’s the crux of why there’s no treadmill. A treadmill requires a trade: something given up for the speed. We went looking for the thing given up — contact — and it isn’t being given up.
4. How sure are we? (Honestly: lean, not lock.)
Here is where we have to be careful, because the effect is real but it is not large, and two months is not a season. The honest picture is a positive lean whose error bars still touch zero. We ran the within-player effect at three different sample cutoffs and then corrected for attrition; here are all four side by side:
Toggle the scale between runs per 100 PA and runs per swing. Every estimate is positive; every interval brushes or crosses zero. The point estimate is remarkably stable from the loosest sample (286 hitters) to the strictest (207). The bottom row is the attrition-corrected estimate — see below.
Two things stand out. First, the sign never flips — loosen or tighten the sample, the speed-gainers come out positive every time, between +0.25 and +0.37 runs per 100 PA. A spurious result usually isn’t that stable. Second, the intervals genuinely cross zero at the primary cutoff, so we cannot tell you that swinging harder wins. We can tell you it doesn’t lose, which is the entire question the treadmill story posed.
The survivorship objection, handled
There’s one objection sharp enough to kill the whole thing: maybe the hitters who added speed and failed simply lost playing time and never reached our 2026 cutoff — so we only see the survivors, and the survivors look fine by definition. We took that seriously and modeled it. Of 325 hitters who qualified in 2025, 71 (22%) dropped below the 2026 bar. Who dropped out? Bad hitters — 2025 run value strongly predicts disappearing (odds ratio 0.51 per standard deviation). But bat speed does not: its odds ratio is 0.96 with a p-value of 0.78, a coin flip. The specific failure the treadmill story needs — speed-chasers washing out — isn’t happening. Re-weighting the survivors to stand in for the dropouts (inverse-probability-of-censoring weighting) barely moves the estimate: +0.25 runs/100 PA, versus +0.27 uncorrected. The lean is not a mirage of who’s left standing.
5. The elegant theory that died
We started this with a prettier hypothesis than “no effect.” Intuitively, there should be a right way to add bat speed and a wrong way. The right way: get stronger or more efficient and swing faster on the same swing path — “free” speed. The wrong way: buy the speed with a longer, loopier swing — “bought” speed, which should cost you contact. So we decomposed every hitter’s gain into those two components and tested them separately.
Nothing. Free speed is worth +0.00177 run value per swing; bought speed, +0.00179. The difference is −0.00002 with an interval that spans both directions — a textbook null. At the margins hitters actually moved this season, buying speed with a longer swing was no worse than getting it for free. It’s a cleaner story than reality offered, and we’re reporting it as the null it is rather than dressing it up. (The flip side: there’s also no evidence of an optimal amount to add — within the range hitters moved, the relationship is a straight line, no diminishing returns we can detect.)
The takeaway
The next time a broadcast frets that a young hitter is “selling out for bat speed,” remember what the bat actually did across the league this year: it got a little faster, the contact got a little louder, and the whiffs didn’t budge. There is a real conversation to be had about leaguewide offense — but the bat-speed arms race is not the villain, and on the early evidence it’s a mild net positive for the hitters running it.
What we can say in June, precisely: through June 1, there is no bat-speed treadmill — added bat speed carries no whiff penalty and run-value estimates lean modestly positive, even after correcting for who dropped out of the league. What we can’t yet say is that swinging harder wins; the error bars won’t let us, and they shouldn’t until we have more than two months. We’ll re-run every number in this piece at the All-Star break. If the lean holds and tightens, “swing hard, it works” graduates from a hint to a finding. If it fades, you’ll read that here too.
Methodology
Data
Statcast pitch-level data via pybaseball. The 2025 season is the full-season pull (739,820 pitches); 2026 covers 2026-03-27 through 2026-06-01 (260,868 pitches, 118,860 tracked swings). We restrict to bat-tracked competitive swings — non-null bat_speed and swing_length with a swing-type description, bunts dropped. The panel is the 254 hitters with ≥150 tracked swings in the matched 2025 window and ≥100 in 2026; results are shown at three thresholds (286 / 254 / 207 hitters). Run value is delta_run_exp (batter-facing); contact quality is estimated_woba_using_speedangle (xwOBAcon) and exit velocity on balls in play. Statcast’s player_name field is the pitcher, not the batter; hitters are keyed by MLBAM id.
The matched-window baseline
Every within-player change is differenced against the league’s own change over the matched calendar window (2025-03-27 to 06-01), not the full 2025 season. Using full-2025 manufactures a spurious −0.30 run/100 PA league “decline” that is really April-vs-summer seasonality; against the matched window the league shift is +0.05. This correction does not materially move the bat-speed coefficient (+0.0020 naive vs +0.0018 adjusted), but it is essential to the framing and to every per-hitter number.
Estimation
The headline is a within-player change regression: league-adjusted Δ(run value) on Δ(bat speed), weighted by harmonic-mean swing count, controlling for age and a regression-to-the-mean prior. The baseline control is an empirical-Bayes shrinkage of each hitter’s matched-window 2025 run value toward his full-2025 mean, so we don’t over-credit hitters who simply had a hot or cold April. A separate batter-clustered (cluster-robust) swing-level regression with count, zone, pitch-type, platoon, and season controls gives a concordant +0.0025 run value per swing per mph (p = 0.04). The free-vs-bought decomposition regresses Δ(bat speed) on Δ(swing length) — slope +3.73 mph per foot — and tests the fitted (“bought”) and residual (“free”) components separately. A natural-cubic-spline check finds no significant non-linearity (curvature p = 0.34); its bootstrap band straddles the line throughout, so we report it as a null rather than reading a peak into the noise.
Attrition
From all 325 matched-window 2025 qualifiers, 71 failed the 2026 swing floor. A logistic model predicts 2026 qualification from standardized 2025 bat speed, run value, and age: run value predicts dropout (OR 0.51, p < 0.001), bat speed does not (OR 0.96, p = 0.78). We re-estimate the headline under stabilized inverse-probability-of-censoring weights; the effect is essentially unchanged (+0.25 vs +0.27 run/100 PA), so the positive lean is not a survivorship artifact.
Independent verification & honest limitations
Two agents with deliberately divergent methods analyzed the same data independently — one interpretability-first (within-player regression, empirical-Bayes shrinkage, IPCW, bootstrap CIs), one ML-engineering (gradient-boosted trees with constant-length speed counterfactuals, SHAP, permutation importance, swing-change clustering). Across two cross-review rounds they caught and fixed real errors in each other’s work — a full-season vs matched-window baseline mistake, a mis-specified bootstrap interval, and an over-precise cross-check — and converged on the same conclusion: no treadmill, no whiff penalty, a modest positive lean that survives attrition, and a free-vs-bought null. The honest limitations: this is two months of 2026, observational, with a small per-hitter sample; the headline interval crosses zero at the primary cutoff (hence “no treadmill,” not “speed wins”); the gradient-boosted model finds bat speed only weakly important out of sample, a fair reminder that the effect is small; and individual hitter seasons are noisy — the league-average slope, not any one dot, is the result. We re-test at the All-Star break.