MLB Prediction System

KPI Player Effects

How each KPI adds or removes a hit, a strikeout, a walk or a home run, per player, against the arm he actually faces

Slate 20261010Games 1Schema kpi_player_effects_v2Built 2026-10-11 09:12Z

What this document measures

Every counting stat below has a KPI on both sides of the matchup, measured on the same denominator: a plate appearance. That is what lets the hitter's reading and the starter's reading be combined instead of listed side by side. The combination is the standard Log5 odds ratio, which is exactly additive in log odds, so the hitter's push and the pitcher's push separate cleanly and the remainder is reported rather than absorbed.

Hits use a derived KPI. Hit rate is not in config/kpi_registry.json: registering it would move the registry hash recorded in the model manifest and fail the live layer closed until a retrain. It is computed with the same strict as-of cutoff and the same shrinkage, stored in its own namespace, and never read by the runtime.

These per-player numbers are measured, not published. The live KPI layer moves team runs and the win probability. The hitter lines in the artifact were then scaled by one club-wide ratio, identical for the leadoff hitter and the ninth bat. The per-hitter columns here are what that single ratio discards.

The whole staff, not only the starter. A hitter takes roughly four in ten of his plate appearances against relievers. Each club's bullpen here is the pregame bullpen: the seven busiest healthy relievers of the last 30 days, the same arms the KPI forecast weighted and the simulation pitched, each sharing the relief work by the batters faced the forecast gave him. The bullpen's workload tonight is the club's real mean staff batters faced minus the starter's projection. The published staff alone holds only the relievers one simulation draw used, so it is shown beside the bullpen for comparison, not used.

Reading a delta. Own skill is measured against the league. The opponent effect is measured against the hitter's own rate, which is the only one that may adjust a published line, because the published line already carries his own skill. Adding both to a published line would count the hitter twice.

Coverage. 18 hitter-versus-starter pairings; 16 have both sides above their sample floor on hits and 18 carry a non-zero hit adjustment. A side below its floor falls back to the league rate and is marked n<floor, which is a stated absence of evidence rather than a measured zero. All four outcome metrics have value documents. Handedness source: model bundle pitcher_hands.json.

Largest per-player movements on the slate

HitterClubMetricStarter faced (+ bullpen)PublishedKPI adjusted, whole staffΔHitter bandPitcher bandGame
Kyle TeelCHWStrikeoutsGavin Williams1.8132.316+0.503averagen<floorVery good20261010_CHW@CLE
Munetaka MurakamiCHWStrikeoutsGavin Williams1.8852.300+0.415PoorVery good20261010_CHW@CLE
Colson MontgomeryCHWStrikeoutsGavin Williams1.7092.083+0.375PoorVery good20261010_CHW@CLE
Brenton DoyleCHWStrikeoutsGavin Williams1.4661.815+0.350PoorVery good20261010_CHW@CLE
Chase MeidrothCHWStrikeoutsGavin Williams1.1061.415+0.309AverageVery good20261010_CHW@CLE
Miguel VargasCHWStrikeoutsGavin Williams0.9651.252+0.286GoodVery good20261010_CHW@CLE
Tristan PetersCHWStrikeoutsGavin Williams0.9621.248+0.285GoodVery good20261010_CHW@CLE
Andrew BenintendiCHWStrikeoutsGavin Williams1.0341.314+0.280AverageVery good20261010_CHW@CLE
Sam AntonacciCHWStrikeoutsGavin Williams0.8341.095+0.261GoodVery good20261010_CHW@CLE
Jo AdellCLEStrikeoutsSean Burke1.2091.340+0.131AverageGood20261010_CHW@CLE
Patrick BaileyCLEStrikeoutsSean Burke1.1431.261+0.118Below averageGood20261010_CHW@CLE
Nathaniel LoweCLEStrikeoutsSean Burke0.9991.108+0.109AverageGood20261010_CHW@CLE
Travis BazzanaCLEStrikeoutsSean Burke0.9091.012+0.103AverageGood20261010_CHW@CLE
Petey HalpinCLEStrikeoutsSean Burke0.8290.921+0.092averagen<floorGood20261010_CHW@CLE
Chase DeLauterCLEStrikeoutsSean Burke0.7330.822+0.089GoodGood20261010_CHW@CLE
José RamírezCLEStrikeoutsSean Burke0.7000.787+0.087Very goodGood20261010_CHW@CLE
Brayan RocchioCLEStrikeoutsSean Burke0.6120.686+0.075GoodGood20261010_CHW@CLE
Steven KwanCLEStrikeoutsSean Burke0.5040.570+0.066Very goodGood20261010_CHW@CLE
Sam AntonacciCHWHitsGavin Williams0.8540.799-0.055GoodGood20261010_CHW@CLE
Miguel VargasCHWHitsGavin Williams0.8370.782-0.055AverageGood20261010_CHW@CLE

Per game

20261010_CHW@CLE — team layer withheld (values_fresh); runs moved away -0.6051 / home -0.4448
Sean Burke (RHP, 19.8 BF)
H 0.2062 Good · SO 0.2528 Good · BB 0.0893 Average · HR 0.0286 Average
Gavin Williams (RHP, 20.5 BF)
H 0.1978 Good · SO 0.3179 Very good · BB 0.0854 Average · HR 0.0330 Below average

CHW hitters vs Gavin Williams and the bullpen

The pipeline applied no club-wide rescale to CHW hitter lines. The columns below are the measured alternative: each hitter moved by his own KPI pairing with the whole opposing staff, the starter and the full relief corps combined at the share of his plate appearances each takes. Click a name for the starter-only and bullpen decomposition and the contextual readings.

PlayerPosFacesPAHitsStrikeoutsWalksHome runs
published → KPIΔpublished → KPIΔpublished → KPIΔpublished → KPIΔ
Sam AntonacciLFGavin Williams + bullpen4.160.854 → 0.799-0.0550.834 → 1.095+0.2610.357 → 0.372+0.0150.067 → 0.069+0.002
Kyle TeelCGavin Williams + bullpen4.100.742 → 0.693-0.0491.813 → 2.316+0.5030.440 → 0.458+0.0180.104 → 0.107+0.003
Miguel Vargas3BGavin Williams + bullpen4.170.837 → 0.782-0.0550.965 → 1.252+0.2860.555 → 0.577+0.0210.157 → 0.161+0.004
Munetaka Murakami1BGavin Williams + bullpen4.400.747 → 0.696-0.0511.885 → 2.300+0.4150.662 → 0.687+0.0250.214 → 0.219+0.005
Andrew BenintendiDHGavin Williams + bullpen3.430.722 → 0.674-0.0481.034 → 1.314+0.2800.318 → 0.331+0.0130.090 → 0.092+0.002
Tristan PetersRFGavin Williams + bullpen3.760.787 → 0.736-0.0510.962 → 1.248+0.2850.309 → 0.322+0.0130.085 → 0.087+0.002
Chase Meidroth2BGavin Williams + bullpen3.860.848 → 0.793-0.0551.106 → 1.415+0.3090.355 → 0.370+0.0140.089 → 0.091+0.002
Colson MontgomerySSGavin Williams + bullpen3.550.614 → 0.572-0.0421.709 → 2.083+0.3750.324 → 0.337+0.0130.132 → 0.135+0.003
Brenton DoyleCFGavin Williams + bullpen3.520.741 → 0.692-0.0491.466 → 1.815+0.3500.233 → 0.243+0.0100.092 → 0.095+0.002

CHW starter against the CLE lineup

PlayerPosFacesBFHitsStrikeoutsWalksHome runs
published → KPIΔpublished → KPIΔpublished → KPIΔpublished → KPIΔ
Sean BurkeStarterCLE19.754.216 → 4.266+0.0505.087 → 4.321-0.7671.868 → 1.969+0.1010.706 → 0.644-0.062

CHW bullpen: the full relief corps (7 arms)

Exposure. Starter 19.8 batters faced, bullpen 15.7 (44.3% of the game), from the club's real 35.5 staff batters faced per game over 2 complete games in the last 30 days. The published staff alone would have given the bullpen 47.5% across 3 arms, because it holds only the relievers the selected simulation draw used.

RelieverRoleIn the corps becauseRelief BF, 30dAppsShareBF tonight
Sean NewcombLong Relieverpregame bullpen, published staff38721.0%3.31
David SandlinRelieverpregame bullpen5118.5%2.91
Grant TaylorRelieverpregame bullpen0017.1%2.70
Anthony KayRelieverpregame bullpen9213.5%2.13
Jordan HicksMiddle Relieverpregame bullpen, published staff0011.3%1.78
Noah SchultzLong Relieverpregame bullpen, published staff009.8%1.54
Bryan HudsonRelieverpregame bullpen1658.7%1.36

CHW relievers against the CLE lineup

PlayerPosFacesBFHitsStrikeoutsWalksHome runs
published → KPIΔpublished → KPIΔpublished → KPIΔpublished → KPIΔ
Sean NewcombLong RelieverCLE (21% of relief)3.311.030 → 1.042+0.0121.246 → 1.052-0.1930.435 → 0.459+0.0240.097 → 0.088-0.009
David SandlinRelieverCLE (18% of relief)2.910.630 → 0.637+0.0070.680 → 0.575-0.1050.242 → 0.255+0.0130.098 → 0.089-0.009
Grant TaylorRelieverCLE (17% of relief)2.700.532 → 0.539+0.0060.801 → 0.686-0.1150.242 → 0.255+0.0130.071 → 0.065-0.006
Anthony KayRelieverCLE (14% of relief)2.130.478 → 0.483+0.0050.391 → 0.328-0.0640.174 → 0.184+0.0090.065 → 0.059-0.006
Jordan HicksMiddle RelieverCLE (11% of relief)1.780.912 → 0.923+0.0111.223 → 1.044-0.1790.602 → 0.633+0.0310.098 → 0.089-0.009
Noah SchultzLong RelieverCLE (10% of relief)1.541.538 → 1.556+0.0181.623 → 1.367-0.2570.350 → 0.369+0.0190.134 → 0.122-0.012
Bryan HudsonRelieverCLE (9% of relief)1.360.312 → 0.315+0.0040.289 → 0.243-0.0450.099 → 0.105+0.0050.035 → 0.032-0.003

CLE hitters vs Sean Burke and the bullpen

The pipeline applied no club-wide rescale to CLE hitter lines. The columns below are the measured alternative: each hitter moved by his own KPI pairing with the whole opposing staff, the starter and the full relief corps combined at the share of his plate appearances each takes. Click a name for the starter-only and bullpen decomposition and the contextual readings.

PlayerPosFacesPAHitsStrikeoutsWalksHome runs
published → KPIΔpublished → KPIΔpublished → KPIΔpublished → KPIΔ
Steven KwanLFSean Burke + bullpen4.490.934 → 0.898-0.0360.504 → 0.570+0.0660.586 → 0.593+0.0060.047 → 0.044-0.004
José Ramírez3BSean Burke + bullpen4.530.882 → 0.848-0.0350.700 → 0.787+0.0870.515 → 0.521+0.0060.103 → 0.096-0.007
Chase DeLauterRFSean Burke + bullpen4.280.937 → 0.901-0.0350.733 → 0.822+0.0890.462 → 0.467+0.0050.111 → 0.103-0.008
Jo AdellDHSean Burke + bullpen4.090.876 → 0.842-0.0341.209 → 1.340+0.1310.253 → 0.256+0.0030.125 → 0.116-0.009
Nathaniel Lowe1BSean Burke + bullpen3.840.791 → 0.761-0.0310.999 → 1.108+0.1090.377 → 0.381+0.0040.120 → 0.111-0.009
Travis Bazzana2BSean Burke + bullpen3.900.769 → 0.739-0.0300.909 → 1.012+0.1030.432 → 0.437+0.0050.102 → 0.094-0.007
Patrick BaileyCSean Burke + bullpen3.750.756 → 0.727-0.0301.143 → 1.261+0.1180.324 → 0.328+0.0040.108 → 0.101-0.008
Petey HalpinCFSean Burke + bullpen3.480.729 → 0.700-0.0280.829 → 0.921+0.0920.222 → 0.225+0.0030.087 → 0.081-0.006
Brayan RocchioSSSean Burke + bullpen3.460.741 → 0.713-0.0290.612 → 0.686+0.0750.265 → 0.268+0.0030.079 → 0.073-0.006

CLE starter against the CHW lineup

PlayerPosFacesBFHitsStrikeoutsWalksHome runs
published → KPIΔpublished → KPIΔpublished → KPIΔpublished → KPIΔ
Gavin WilliamsStarterCHW20.513.730 → 3.704-0.0257.658 → 8.272+0.6142.239 → 2.462+0.2230.403 → 0.451+0.048

CLE bullpen: the full relief corps (7 arms)

Exposure. Starter 20.5 batters faced, bullpen 16.8 (45.1% of the game), from the club's real 37.4 staff batters faced per game over 19 complete games in the last 30 days. The published staff alone would have given the bullpen 49.3% across 5 arms, because it holds only the relievers the selected simulation draw used.

RelieverRoleIn the corps becauseRelief BF, 30dAppsShareBF tonight
Joey CantilloRelieverpregame bullpen60422.0%3.70
Tanner BibeeSetup Manpregame bullpen, published staff3115.6%2.62
Erik SabrowskiRelieverpregame bullpen391015.0%2.52
Daniel EspinoMiddle Reliever (High Leverage)pregame bullpen, published staff8314.7%2.47
Shawn ArmstrongMiddle Relieverpregame bullpen, published staff19611.3%1.90
Tim HerrinMiddle Relieverpregame bullpen, published staff381011.2%1.88
Hunter GaddisMiddle Reliever (High Leverage)pregame bullpen, published staff521310.4%1.75

CLE relievers against the CHW lineup

PlayerPosFacesBFHitsStrikeoutsWalksHome runs
published → KPIΔpublished → KPIΔpublished → KPIΔpublished → KPIΔ
Joey CantilloRelieverCHW (22% of relief)3.700.783 → 0.778-0.0050.910 → 0.991+0.0810.416 → 0.456+0.0400.100 → 0.112+0.012
Tanner BibeeSetup ManCHW (16% of relief)2.620.951 → 0.945-0.0061.055 → 1.157+0.1020.596 → 0.656+0.0600.142 → 0.159+0.017
Erik SabrowskiRelieverCHW (15% of relief)2.520.459 → 0.455-0.0030.843 → 0.909+0.0660.323 → 0.353+0.0300.065 → 0.073+0.008
Daniel EspinoMiddle Reliever (High Leverage)CHW (15% of relief)2.470.978 → 0.972-0.0061.665 → 1.819+0.1540.394 → 0.433+0.0390.182 → 0.204+0.022
Shawn ArmstrongMiddle RelieverCHW (11% of relief)1.900.570 → 0.566-0.0040.996 → 1.089+0.0930.338 → 0.371+0.0330.059 → 0.066+0.007
Tim HerrinMiddle RelieverCHW (11% of relief)1.880.587 → 0.583-0.0040.783 → 0.855+0.0720.303 → 0.333+0.0290.046 → 0.051+0.005
Hunter GaddisMiddle Reliever (High Leverage)CHW (10% of relief)1.750.997 → 0.990-0.0070.893 → 0.976+0.0830.263 → 0.289+0.0260.136 → 0.152+0.016
Measured from published artifacts and stored KPI values. Nothing recomputed. Per-player adjustments are a measurement of the catalog, not the published line.