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 20261011Games 1Schema kpi_player_effects_v2Built 2026-10-12 09:15Z

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; 17 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
Teoscar HernándezLADStrikeoutsJacob Misiorowski1.5262.046+0.520Below averageVery good20261011_LAD@MIL
Shohei OhtaniLADStrikeoutsJacob Misiorowski1.4021.904+0.502AverageVery good20261011_LAD@MIL
Enrique HernándezLADStrikeoutsJacob Misiorowski1.2781.758+0.479averagen<floorVery good20261011_LAD@MIL
Max MuncyLADStrikeoutsJacob Misiorowski1.3181.785+0.467Below averageVery good20261011_LAD@MIL
Freddie FreemanLADStrikeoutsJacob Misiorowski1.1221.580+0.458GoodVery good20261011_LAD@MIL
Will SmithLADStrikeoutsJacob Misiorowski1.0631.502+0.439GoodVery good20261011_LAD@MIL
Andy PagesLADStrikeoutsJacob Misiorowski1.0281.432+0.404AverageVery good20261011_LAD@MIL
Garrett MitchellMILStrikeoutsTarik Skubal1.6312.000+0.368PoorVery good20261011_LAD@MIL
Brice TurangMILStrikeoutsTarik Skubal1.4721.840+0.368Below averageVery good20261011_LAD@MIL
Kyle TuckerLADStrikeoutsJacob Misiorowski0.8851.252+0.366GoodVery good20261011_LAD@MIL
Mookie BettsLADStrikeoutsJacob Misiorowski0.7701.124+0.354Very goodVery good20261011_LAD@MIL
Jake BauersMILStrikeoutsTarik Skubal1.4541.806+0.351Below averageVery good20261011_LAD@MIL
Jackson ChourioMILStrikeoutsTarik Skubal1.3381.679+0.341AverageVery good20261011_LAD@MIL
Joey OrtizMILStrikeoutsTarik Skubal1.1151.415+0.301AverageVery good20261011_LAD@MIL
Luis LaraMILStrikeoutsTarik Skubal1.0701.349+0.279AverageVery good20261011_LAD@MIL
Andrew VaughnMILStrikeoutsTarik Skubal0.8801.130+0.250GoodVery good20261011_LAD@MIL
Cooper PrattMILStrikeoutsTarik Skubal0.8791.122+0.243GoodVery good20261011_LAD@MIL
William ContrerasMILStrikeoutsTarik Skubal0.7620.984+0.222GoodVery good20261011_LAD@MIL
Freddie FreemanLADHitsJacob Misiorowski0.8170.699-0.118Very goodVery good20261011_LAD@MIL
Mookie BettsLADHitsJacob Misiorowski0.7890.674-0.115GoodVery good20261011_LAD@MIL

Per game

20261011_LAD@MIL — team layer withheld (values_fresh); runs moved away -0.6301 / home 1.0124
Tarik Skubal (LHP, 22.4 BF)
H 0.2076 Average · SO 0.2910 Very good · BB 0.0527 Very good · HR 0.0259 Good
Jacob Misiorowski (RHP, 18.9 BF)
H 0.1679 Very good · SO 0.3593 Very good · BB 0.0727 Good · HR 0.0235 Very good

Warnings: away published staff projects 26.3214 batters faced, outside the real p10-p90 band of 30-45; the exposure here uses the club's real 35.71 per game instead

LAD hitters vs Jacob Misiorowski and the bullpen

The pipeline applied no club-wide rescale to LAD 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Δ
Mookie BettsSSJacob Misiorowski + bullpen4.230.789 → 0.674-0.1150.770 → 1.124+0.3540.349 → 0.323-0.0260.149 → 0.122-0.027
Freddie Freeman1BJacob Misiorowski + bullpen4.370.817 → 0.699-0.1181.122 → 1.580+0.4580.435 → 0.403-0.0320.110 → 0.090-0.020
Will SmithCJacob Misiorowski + bullpen4.140.748 → 0.638-0.1101.063 → 1.502+0.4390.400 → 0.371-0.0290.128 → 0.104-0.024
Shohei OhtaniDHJacob Misiorowski + bullpen4.280.779 → 0.665-0.1141.402 → 1.904+0.5020.523 → 0.485-0.0380.186 → 0.152-0.034
Teoscar HernándezLFJacob Misiorowski + bullpen4.010.775 → 0.662-0.1131.526 → 2.046+0.5200.315 → 0.291-0.0230.126 → 0.103-0.023
Max Muncy3BJacob Misiorowski + bullpen4.030.721 → 0.615-0.1061.318 → 1.785+0.4670.432 → 0.401-0.0320.183 → 0.150-0.033
Andy PagesCFJacob Misiorowski + bullpen3.730.715 → 0.611-0.1041.028 → 1.432+0.4040.304 → 0.281-0.0230.125 → 0.102-0.023
Kyle TuckerRFJacob Misiorowski + bullpen3.880.671 → 0.571-0.1000.885 → 1.252+0.3660.430 → 0.399-0.0310.106 → 0.086-0.020
Enrique Hernández2BJacob Misiorowski + bullpen3.350.621 → 0.529-0.0921.278 → 1.758+0.4790.239 → 0.221-0.0180.116 → 0.095-0.021

LAD starter against the MIL lineup

PlayerPosFacesBFHitsStrikeoutsWalksHome runs
published → KPIΔpublished → KPIΔpublished → KPIΔpublished → KPIΔ
Tarik SkubalStarterMIL22.383.924 → 4.130+0.2066.300 → 6.300+0.0011.186 → 1.388+0.2020.537 → 0.504-0.033

LAD bullpen: the full relief corps (7 arms)

Exposure. Starter 22.4 batters faced, bullpen 13.3 (37.3% of the game), from the club's real 35.7 staff batters faced per game over 20 complete games in the last 30 days. The published staff alone would have given the bullpen 15.0% across 1 arms, because it holds only the relievers the selected simulation draw used.

RelieverRoleIn the corps becauseRelief BF, 30dAppsShareBF tonight
Edgardo HenriquezRelieverpregame bullpen22419.4%2.59
Tanner ScottRelieverpregame bullpen34919.0%2.53
Alex VesiaMiddle Reliever (High Leverage)pregame bullpen, published staff28915.5%2.07
Edwin DíazRelieverpregame bullpen27815.3%2.05
Evan PhillipsRelieverpregame bullpen23810.6%1.41
Roki SasakiRelieverpregame bullpen19410.1%1.35
Brock StewartRelieverpregame bullpen21710.0%1.34

LAD relievers against the MIL lineup

PlayerPosFacesBFHitsStrikeoutsWalksHome runs
published → KPIΔpublished → KPIΔpublished → KPIΔpublished → KPIΔ
Edgardo HenriquezRelieverMIL (19% of relief)2.590.487 → 0.513+0.0260.714 → 0.71400.253 → 0.294+0.0410.055 → 0.051-0.003
Tanner ScottRelieverMIL (19% of relief)2.530.519 → 0.546+0.0270.762 → 0.76200.180 → 0.210+0.0300.064 → 0.060-0.004
Alex VesiaMiddle Reliever (High Leverage)MIL (16% of relief)2.070.458 → 0.483+0.0251.244 → 1.24400.482 → 0.558+0.0760.053 → 0.050-0.003
Edwin DíazRelieverMIL (15% of relief)2.050.444 → 0.467+0.0230.453 → 0.45300.182 → 0.212+0.0300.062 → 0.058-0.004
Evan PhillipsRelieverMIL (11% of relief)1.410.305 → 0.321+0.0160.311 → 0.31100.125 → 0.146+0.0200.043 → 0.040-0.003
Roki SasakiRelieverMIL (10% of relief)1.350.292 → 0.307+0.0150.315 → 0.31500.123 → 0.143+0.0200.050 → 0.046-0.003
Brock StewartRelieverMIL (10% of relief)1.340.290 → 0.305+0.0150.296 → 0.29600.119 → 0.138+0.0190.041 → 0.038-0.003

MIL hitters vs Tarik Skubal and the bullpen

The pipeline applied no club-wide rescale to MIL 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Δ
Jackson ChourioLFTarik Skubal + bullpen4.441.070 → 1.017-0.0531.338 → 1.679+0.3410.357 → 0.270-0.0870.163 → 0.142-0.021
Brice Turang2BTarik Skubal + bullpen4.260.955 → 0.907-0.0481.472 → 1.840+0.3680.424 → 0.323-0.1010.113 → 0.099-0.015
William ContrerasCTarik Skubal + bullpen4.230.964 → 0.915-0.0480.762 → 0.984+0.2220.381 → 0.289-0.0920.117 → 0.102-0.015
Jake Bauers1BTarik Skubal + bullpen4.090.861 → 0.817-0.0441.454 → 1.806+0.3510.477 → 0.365-0.1110.142 → 0.124-0.018
Andrew VaughnDHTarik Skubal + bullpen3.700.845 → 0.803-0.0420.880 → 1.130+0.2500.338 → 0.256-0.0810.076 → 0.066-0.010
Garrett MitchellCFTarik Skubal + bullpen3.870.862 → 0.818-0.0441.631 → 2.000+0.3680.326 → 0.248-0.0780.081 → 0.070-0.011
Cooper PrattSSTarik Skubal + bullpen3.720.821 → 0.779-0.0410.879 → 1.122+0.2430.318 → 0.241-0.0770.073 → 0.064-0.009
Luis LaraRFTarik Skubal + bullpen3.810.814 → 0.772-0.0421.070 → 1.349+0.2790.307 → 0.232-0.0750.069 → 0.060-0.009
Joey Ortiz3BTarik Skubal + bullpen3.640.756 → 0.718-0.0381.115 → 1.415+0.3010.295 → 0.223-0.0720.083 → 0.072-0.011

MIL starter against the LAD lineup

PlayerPosFacesBFHitsStrikeoutsWalksHome runs
published → KPIΔpublished → KPIΔpublished → KPIΔpublished → KPIΔ
Jacob MisiorowskiStarterLAD18.853.028 → 3.134+0.1066.481 → 5.994-0.4881.242 → 1.431+0.1890.165 → 0.191+0.026

MIL bullpen: the full relief corps (7 arms)

Exposure. Starter 18.9 batters faced, bullpen 18.1 (48.9% of the game), from the club's real 36.9 staff batters faced per game over 18 complete games in the last 30 days. The published staff alone would have given the bullpen 46.6% across 3 arms, because it holds only the relievers the selected simulation draw used.

RelieverRoleIn the corps becauseRelief BF, 30dAppsShareBF tonight
JoJo RomeroLong Relieverpregame bullpen, published staff37818.9%3.42
Aaron AshbyMiddle Reliever (High Leverage)pregame bullpen, published staff53918.1%3.26
DL HallRelieverpregame bullpen52917.1%3.09
Antonio SenzatelaMiddle Relieverpregame bullpen, published staff32915.7%2.83
Abner UribeRelieverpregame bullpen461113.8%2.49
Trevor MegillRelieverpregame bullpen34913.4%2.41
Chad PatrickRelieverpregame bullpen2863.0%0.55

MIL relievers against the LAD lineup

PlayerPosFacesBFHitsStrikeoutsWalksHome runs
published → KPIΔpublished → KPIΔpublished → KPIΔpublished → KPIΔ
JoJo RomeroLong RelieverLAD (19% of relief)3.421.008 → 1.041+0.0331.385 → 1.261-0.1240.369 → 0.425+0.0560.184 → 0.213+0.029
Aaron AshbyMiddle Reliever (High Leverage)LAD (18% of relief)3.260.995 → 1.028+0.0331.853 → 1.699-0.1540.633 → 0.726+0.0930.094 → 0.109+0.015
DL HallRelieverLAD (17% of relief)3.090.537 → 0.556+0.0190.785 → 0.717-0.0680.379 → 0.433+0.0540.084 → 0.098+0.013
Antonio SenzatelaMiddle RelieverLAD (16% of relief)2.831.033 → 1.066+0.0330.768 → 0.697-0.0710.412 → 0.474+0.0620.059 → 0.068+0.009
Abner UribeRelieverLAD (14% of relief)2.490.502 → 0.519+0.0170.631 → 0.577-0.0550.205 → 0.236+0.0310.061 → 0.070+0.010
Trevor MegillRelieverLAD (13% of relief)2.410.467 → 0.483+0.0160.650 → 0.595-0.0550.175 → 0.202+0.0270.051 → 0.059+0.008
Chad PatrickRelieverLAD (3% of relief)0.550.109 → 0.113+0.0040.117 → 0.107-0.0110.057 → 0.066+0.0080.015 → 0.018+0.002
Measured from published artifacts and stored KPI values. Nothing recomputed. Per-player adjustments are a measurement of the catalog, not the published line.