Game strategy / Matchup Engine
Game strategy / Matchup Engine

Who has the edge in this at-bat, and with which pitch?

Any pitcher against any hitter: the pitcher’s mix against that side, how good each of his pitch types is, how the hitter handles that pitch type from that hand, and the league’s platoon split, so a left-handed hitter facing a lefty starts from the league’s same-side penalty. Every number is shrunk by amounts measured from the data and calibrated on 2024 → 2025, so a predicted run is close to a real one (tested forward on 2026: 0.91× of predicted). Most of any edge is overall quality, then platoon; the platoon split adds 0.002 to 0.011 to the forward correlation, while the pitch-type layer adds −0.001 to 0.001, not distinguishable from zero. Use it for marginal decisions (the seventh-inning lefty, the pinch hitter), not to override talent.
For manager, advance scouting, pitching coach Model card Profiles from 2025–26 Statcast · calibrated on 2024 → 2025, tested on 2026 · relievers from the Winter Plan
Pitcher
vs.
Hitter
Matchup edge · LHP vs. LHB · same side Pitcher edge 0.21 runs per 100 pitches vs. an average matchup · ≈ 0.008 runs (.010 wOBA) per plate appearance

Over 100 such plate appearances that is about 0.09 wins at average leverage and 0.17 at a leverage of 2 (runs ÷ 9.7 per win × leverage, a rough conversion). His best-graded pitch here is the sinker (39% of his pitches to this side, net +0.32), his weakest the curveball (net +0.02). The hitter-specific part of that ranking is within noise in the forward test, so read it as his best pitch, not a plan for this hitter.

By pitch type

His usage against this side; runs per 100 pitches vs. league for that pitch type. Pitcher column: + is good for the pitcher. Hitter column: + is good for the hitter, and includes the league platoon split for his side against this hand. Contribution = usage × (pitcher − hitter).

PitchUsePitcherHitterContribution
Sinker39%+0.27−0.05316 +0.12
Sweeper33%+0.32+0.0998 +0.08
Four-seam13%+0.31+0.26310 +0.01
Curveball12%+0.36+0.3459 0.00
Changeup1%+0.29+0.0435 0.00
Cutter1%+0.30+0.0764 0.00
Slider1%+0.30+0.35265 0.00

Pittsburgh bullpen vs. a rival lineup

The Winter Plan’s 2027 bullpen (decisions feed, in the plan’s order) against each rival regular, runs per 100 pitches. Warm = our pitcher’s edge. Click a cell to open it above.

Crow-ArmstrongLBuschLBregmanRSuzukiR · FAHappS · FAHoernerRSwansonRKellyR · FAConfortoL · FAAmayaR
Mason MontgomeryLHP · Late innings
Carmen MlodzinskiRHP · Middle / long
Wilber DotelRHP · Middle / long
Luke WeaverRHP · Setup
Yohan RamírezRHP · Late innings
Evan SiskLHP · Setup
Isaac MattsonRHP · Middle / long
Brandon EisertLHP · Middle / long
Best edgeSiskSiskWeaverWeaverWeaverWeaverWeaverWeaverSiskWeaver
Best fitSiskSiskRamírezDotelWeaverDotelDotelRamírezSiskDotel

“Best edge” is mostly who is good (one arm is best against 7 of 10); “Best fit” ranks each arm by his edge against this hitter beyond his usual edge, which is the matchup-specific part. Against the Cubs’ 3 left-handed regulars (Crow-Armstrong, Busch, Conforto), the plan’s 3 lefties give a best edge of +0.35 on average (Evan Sisk has the highest average edge against them), its righties +0.15 (Luke Weaver the highest). FA: a pending free agent, who may not be in that lineup in 2027. Fatigue and back-to-back availability aren’t in the grid: the data end with the 2026 season.

Our 2027 lineup vs. their staff

The Winter Plan’s hitters (decisions feed) against the Cubs’ 12 busiest pitchers under control for 2027, hitter’s view: + is our hitter’s edge, runs per 100 pitches, weighted by each pitcher’s 2025–26 pitches. 9 of their 13 busiest are pending free agents, left out.

Hitter2027Batsvs. RHPvs. LHPAll
Bryan Reynoldslineup, LFS+0.33+0.48+0.35
Isaac Paredeslineup, 3BR+0.53+0.69+0.56
Nick Gonzaleslineup, 2BR−0.11+0.13−0.08
Ryan O'Hearnlineup, 1BL+0.48+0.05+0.42
Spencer Horwitzlineup, DHL+0.29−0.07+0.24
Oneil Cruzlineup, CFL+0.38−0.05+0.33
Konnor Griffinlineup, SSR−0.18+0.17−0.13
Esmerlyn Valdezlineup, RFR+0.22+0.59+0.27
Rafael Flores Jr.lineup, CR+0.13+0.44+0.17
Jake Mangumbench, CFS−0.02−0.01−0.02
Jared Triolobench, SSR−0.42−0.14−0.38
Endy Rodríguezbench, CS+0.26+0.31+0.26
Ronny Simonbench, RFS−0.18−0.15−0.18
Brandon Lowefree agent (if he declines)L+0.66+0.19+0.60
Henry Davisnon-tenderR−0.72−0.49−0.69
Jacob GonzaleztradedL−0.23−0.59−0.28

Pending free agents among the Cubs’ 13 busiest: Kevin Gausman (RHP), David Peterson (LHP), Shota Imanaga (LHP), Colin Rea (RHP), Matthew Boyd (LHP), Aaron Civale (RHP), Jacob Webb (RHP), Javier Assad (RHP), Caleb Thielbar (LHP); they are left out, and the next-busiest arms under control take their places. Muted rows are the hitters the plan lets go, for comparison. Pick a rival above to switch staffs. This is the platoon picture for a series; the Lineup Lab sets the order.

How well does this work?

Profiles built on 2025 only, tested on 20,170 batter–pitcher pairs in 2026 (305,778 pitches). Deciles of predicted edge vs. what happened, runs per 100 pitches.

−1.0−1.0−0.5−0.50.00.0+0.5+0.5+1.0+1.0Decile 1: predicted −1.02, actual −0.76 (31,996 pitches)Decile 2: predicted −0.61, actual −0.63 (31,356 pitches)Decile 3: predicted −0.41, actual −0.36 (31,090 pitches)Decile 4: predicted −0.26, actual −0.06 (31,234 pitches)Decile 5: predicted −0.12, actual −0.06 (30,785 pitches)Decile 6: predicted +0.01, actual +0.17 (30,498 pitches)Decile 7: predicted +0.13, actual +0.22 (29,862 pitches)Decile 8: predicted +0.28, actual +0.25 (29,839 pitches)Decile 9: predicted +0.45, actual +0.42 (29,776 pitches)Decile 10: predicted +0.80, actual +0.90 (29,342 pitches)predicted →actual ↑dashed: perfect · solid: fit 0.91×
Overall quality only
r = 0.079
+ league platoon split
r = 0.085
+ pitch types (the full model)
r = 0.086
Earlier design (pitch types, no platoon)
r = 0.080
2026 pairsActualPredictedEarlier design
Same side+0.16+0.05−0.10
Opposite side−0.11−0.17−0.06

Single matchups are noisy (a few pitches each), so correlations are low for every method. Predicted edges line up with outcomes on average (the top decile beat the bottom by about 1.7 runs per 100). The earlier design shrank each hitter’s split toward zero and got same-side matchups backwards (pitchers do better against their own side); with the league platoon split it gets the direction right and most of the size. Gains with 95% intervals from a bootstrap over pairs: platoon 0.002 to 0.011, pitch types −0.001 to 0.001. Every shrinkage amount and the calibration (0.79×) were set on 2024 → 2025, before this test; the pitch-type part is shrunk with 4,000 pitches of ballast because that predicted best. Recency: the profiles pool 2025–26 equally. Tuned on 2023–24 profiles → 2025, counting the later season 2.00× predicted best (r = 0.0963 against 0.0942 pooled equally); tested on 2024–25 → 2026 (21,151 pairs), it scored r = 0.0864 and slope 0.86 against equal pooling’s r = 0.0865 and slope 0.89 (r gain, 95% interval −0.0023 to +0.0023): no better out of sample, so the page keeps equal pooling. Hitter values aren’t park-neutral and pitch values aren’t count-adjusted; neither is tested here.

Reading the numbers

  • Pitcher / Hitter columns are relative to league average for that pitch type: +0.50 means half a run better per 100 of that pitch.
  • Each value is a player’s overall quality plus a hard-shrunk pitch-type tilt, so a good hitter is + on most rows; compare the two columns, not each to zero. Hitter values are by pitcher hand (2025–26) and include the league platoon split for his side; the small number is the pitches seen.
  • Switch hitters are evaluated from the side they’d bat.
  • An edge of 0.5 runs per 100 pitches is about 0.019 runs a plate appearance: it decides a close call, not a roster. The conversions are measured on 2025–26 plate appearances: 3.88 pitches each, and 1.20 of wOBA per run (0.01 runs a plate appearance is about .012 wOBA).
  • Not modeled: sequencing, count leverage, the specific location a pitcher can hit, or how tired he is.
Keystone is an independent portfolio project. It is not affiliated with Major League Baseball or any club. Data: MLB Stats API, Baseball Savant, FanGraphs. Used under their terms for individual, non-commercial use.