Across 576 pitcher-halves in 2024 and 2025, adding public Statcast pitch traits cut the error of a second-half K-BB% forecast by 2.6%, on top of 16 first-half statistics that already described the pitcher’s results. K-BB% is strikeout rate minus walk rate, the quickest one-number read on whether a pitcher is winning at-bats. It isn’t a lot, but in this historical test it was real. I call the model ShapeCast.

The comparison model already knew each pitcher’s first-half strikeout and walk rates, whiffs, called strikes, chases, zone rate, contact rate, the quality of contact he allowed, and his role. ShapeCast adds what his pitches looked like: velocity, movement, release point, extension, location and usage for each pitch family. Error is RMSE, root mean squared error, which punishes big misses most.

One caveat up front: the model reported here is the full public-shape model from the original study design. Its edge over the results model was a secondary comparison, first seen after the holdout was opened. A smaller 36-input version that I had committed to in advance as ShapeCast improved RMSE by only 1.67% and failed its pre-set gate.

What I found

  • Pitch shape adds a little. RMSE fell 2.6% (95% interval 0.4% to 4.8%). The gain showed up in both seasons (4.1% in 2024, 0.9% in 2025) and for both starter-like and reliever-like pitchers.
  • The 36-input version missed its threshold. The 36-input version’s interval ran from −0.5% to +3.7%, and it did worse in 2025. The 61-input model behind the 2.6% wasn’t the headline test.
  • ZiPS still wins. On 273 pitchers over the rest of 2025, ShapeCast’s RMSE was 4.6% higher than archived ZiPS. The one-season interval for ShapeCast’s improvement over ZiPS, −10.7% to +1.2%, doesn’t rule out parity and doesn’t support it.
  • A 75/25 blend with ZiPS beat ZiPS on FIP. The blend was 2.8% better for 2025 rest-of-season FIP (1.5% to 4.0%), mostly through home runs. That is one season, and most of the gain comes from current results, not pitch shape.
  • The pitch-quality residual added error. A pitch-quality residual I call Deception Above Expected made the forecast 0.5% worse.

None of this is a new idea. FanGraphs’ PitchingBot primer argued that pitch-quality grades may improve an ERA estimator, and THE BATcast now blends a multi-model stuff system into THE BAT X for pitchers. What’s new here is narrower: a K-BB component built only on public Statcast data, with a frozen time split, uncertainty clustered by pitcher, and code I’ll share on request.

How I tested it

I used regular-season Statcast pitches to forecast each pitcher’s second-half K-BB%. “First half” means through June 30. A pitcher needed at least 100 first-half batters faced and 200 first-half swings, plus 75 second-half batters faced so a rate could be scored. Hyperparameters, the model’s tuning settings, were chosen once on 2023 using models fit to 2021–22. The final model was then refit on 2021–23 and scored once on 2024–25.

The comparison model isn’t a naive leaderboard. It has 16 inputs: batters faced, K%, BB%, K-BB%, whiff%, called-plus-whiff strike rate (CSW%), zone%, chase%, called-strike%, contact%, expected wOBA on contact allowed, pitcher run value per 100 pitches, the share of batters faced the second and third time through the order, pitches per appearance, and which hand he throws with. It used only the current season’s first half. Like ShapeCast, it saw no prior seasons.

ShapeCast adds 45 inputs: for four-seamers, sinkers, cutters, breaking balls and offspeed pitches, each family’s usage, velocity, horizontal and vertical movement, extension, two release-point coordinates, and average horizontal and vertical location. That makes 61 in all. There’s no pitcher identity and no future information.

The result

Second-half K-BB% forecast error, 576 pitcher-halves from 419 pitchers
PeriodResults only (RMSE)With pitch shape (RMSE)Change
2024–250.053380.051982.63% better
20240.054160.051934.10% better
20250.052490.052030.86% better

Mean absolute error improved 3.3% pooled, and both error measures improved in both years. Starter-like pitchers improved 2.55% by RMSE and reliever-like pitchers 2.72%. The pitcher-clustered 95% interval for the pooled gain ran from 0.44% to 4.76% better. Clustering matters because repeated cells from the same pitcher can’t be treated as independent evidence.

A different cutoff gave a smaller number. Moving the cutoff to July 15 shrank the gain to 1.66% (interval −0.64% to 3.89%) on 562 pitcher-seasons. It still won in both years, so it passes the supportive gate I set, but it isn’t decisive on its own.

A consistency check, and what it can’t show

A consistency check replaced each pitcher’s actual arsenal with a matched pitcher’s entire 45-variable shape block. Donors were matched by season, hand, starter or reliever role, baseline projection quintile and workload tercile. That keeps realistic values and missing-pitch patterns but breaks the link between a pitcher and his pitches.

The shuffled model’s RMSE was 0.05489, worse than both the real shape model (0.05198) and the results-only model (0.05338). Real shapes were 5.30% better than shuffled shapes, with an interval of 2.91% to 7.78%, in both seasons and both roles. The model leans on the real pitcher-to-arsenal link: scrambled arsenals made it worse than having no shape data at all. The evidence that shape adds information is the out-of-sample gain above, not this check.

ZiPS still beats it

ShapeCast isn’t a projection system. It doesn’t predict injuries, survival, role, innings, ERA, WAR or aging. I compared it with ZiPS, Dan Szymborski’s system at FanGraphs, using an Internet Archive capture of rest-of-season ZiPS from 00:25 ET on June 24, 2025. To avoid a timing advantage, ShapeCast used data only through June 23, and both forecasts were scored on the same 273 pitchers through the end of the season.

K-BB% forecast error, 273 pitchers, June 24 through the end of 2025
ForecastRMSEMAE
Results only0.053750.04148
ShapeCast0.053450.04168
Archived ZiPS0.051090.03938

ShapeCast’s RMSE was 4.60% higher than ZiPS, and ShapeCast’s edge over my own results-only model shrank to 0.56%. The interval for ShapeCast’s improvement over ZiPS was −10.75% to +1.24%. One season can’t prove a permanent gap, but it does reject any claim that ShapeCast has matched ZiPS. The likeliest reason is simple: ZiPS sees years of history, and both of my models see half a season. I haven’t tested that.

A 75/25 blend with ZiPS beat ZiPS on FIP

If pitch shape can’t replace ZiPS, can public data correct it? I froze FIP, fielding independent pitching, an ERA estimator built from strikeouts, walks and home runs, as a fresh endpoint before importing its outcomes. A 75/25 blend of ZiPS and current-season public data beat ZiPS alone for 2025 rest-of-season FIP by 2.80% (1.54–3.99%), mostly through HR/9. On 279 pitchers, RMSE fell from 1.0169 to 0.9884 and mean absolute error from 0.7717 to 0.7477. The public side of the blend used first-half results, plate-discipline statistics, run estimators and pitch shape.

The caveats matter as much as the number:

  • One target season. The test is 2025 only, and the interval comes from bootstrapping pitchers, not seasons.
  • One blend weight. The 25% weight was chosen on 281 pitchers in 2024 and applied unchanged to 2025. It was never tuned on 2025, but it is still one weight tested once.
  • Mostly not pitch shape. A blend using results and process statistics alone was 2.72% better than ZiPS. The shape-specific increment was about 0.14%, with an interval from roughly 0.66% worse to 0.96% better. The frozen version also carried 45 prior-year arsenal-change inputs, which a later check found didn’t help.
  • The home-run claim is a breakdown, not a headline. Home-run rate (HR/9) forecast error was 2.32% lower (1.18% to 3.46%). Strikeouts per nine looked better by 3.20% but the interval, −0.58% to 6.94%, includes zero, and walks per nine were 0.96% worse. A results-only blend did as well on HR/9, so this isn’t a pitch-shape result.
  • Other targets didn’t clear zero. K-BB% (1.6%) and ERA (1.2%) also improved at the point estimate, but their intervals included zero. I’m not claiming a next-season version either: its interval, −2.3% to +8.9%, included zero, and its archive was truncated.

So the supportable statement is small: a public in-season overlay made a strong ZiPS forecast of FIP a little better in one season. It isn’t a standalone win over ZiPS, and it isn’t a pitch-shape result.

What didn’t work

I began with a more ambitious idea, Deception Above Expected (DeX). A model that knew nothing about the pitcher estimated the whiff probability of every swing from pitch type, movement, velocity, release, location, count and handedness. Pitchers were credited for actual whiffs above that expectation. Added to the shape model, the residual made pooled RMSE 0.49% worse, with an interval from 2.16% worse to 1.15% better. Observable pitch shape was predictive. Outperformance relative to it wasn’t stable enough to help.

The 2026 forecast I froze

Scored October 18, 2026. Of 387 frozen forecasts, 284 met the required 75 post-break batters faced. Weighted RMSE was 5.46 K-BB percentage points for ShapeCast and 5.53 for the baseline. The 1.3% improvement has a 95% interval from −1.9% to +4.1%.

A 387-pitcher rest-of-2026 forecast was frozen in my repository on July 23, using data through July 12 (protocol hash 22a78c36…). It was not publicly time-stamped. Some post-break games had already been played when I froze it, so it is blind to my data, not to the calendar: no post-break pitches were in my workspace. The frozen file is linked at the end of this article.

In 2026 Statcast moved the spot where it measures pitch location, so I rebuilt each 2026 pitch’s location at the old spot before forecasting. The same method reproduces 2024–25 locations to within about 0.003 feet (median), and 99.1% of 2026 trajectories were valid. The primary test is RMSE among pitchers with at least 75 post-break batters faced.

Frozen July 23, 2026. Not yet scored. The ten largest positive and ten largest negative ShapeCast adjustments to the 16-input baseline, rest-of-2026 K-BB%.
PitcherRoleK-BB% through July 12Baseline forecastShapeCast forecastAdjustment (points)
Largest positive adjustments
Devin WilliamsReliever-like17.3%16.6%21.8%+5.2
Michael PetersenReliever-like20.6%17.6%22.4%+4.8
José AlvaradoReliever-like21.6%16.3%21.0%+4.7
Garrett CrochetStarter-like18.8%13.6%18.2%+4.6
Jacob MisiorowskiStarter-like33.2%24.9%28.7%+3.8
Chase BurnsStarter-like19.6%18.4%22.1%+3.7
Grant TaylorReliever-like25.3%21.1%24.6%+3.6
Spencer MilesReliever-like15.5%14.8%18.3%+3.5
Spencer ArrighettiStarter-like10.4%11.0%14.3%+3.3
Simeon Woods RichardsonStarter-like−0.4%8.2%11.4%+3.2
Largest negative adjustments
Cole RagansStarter-like14.5%16.6%12.6%−4.0
Brent HeadrickReliever-like19.3%22.7%18.8%−3.9
Tatsuya ImaiStarter-like12.9%14.4%10.8%−3.6
Tyler RogersReliever-like7.2%13.0%9.6%−3.4
Lake BacharReliever-like17.5%19.3%16.2%−3.1
Brooks RaleyReliever-like16.2%16.7%13.7%−3.0
Clay HolmesStarter-like12.6%14.3%11.4%−2.9
Spencer StriderStarter-like15.8%19.4%16.6%−2.8
Max FriedStarter-like12.9%16.2%13.4%−2.8
Carlos RodónStarter-like13.3%16.3%13.6%−2.7

Adjustment = ShapeCast forecast minus the baseline forecast, in K-BB percentage points. Values are rounded here; the CSV has full precision for all 387 pitchers. These are the model’s corrections to its own baseline, not rankings of the pitchers. The whole list is scored by RMSE.

Read the 2026 scoring results, including eligibility, bias, and downloadable reproduction files.

What I take from it

If you’re forecasting a pitcher’s strikeout-minus-walk rate from public data, his first-half results don’t tell you everything. What his pitches look like still adds something. It isn’t much, and it isn’t enough to beat ZiPS. The 2026 forecasts have now been scored. Their smaller measured gain, with an interval that includes no improvement, leaves the prospective evidence inconclusive.

ShapeCast isn’t used in the trade tools or the projections table.