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 20261013Games 1Schema kpi_player_effects_v2Built 2026-10-12 17:48Z

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; 18 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
Jo AdellCLEStrikeoutsDrew Rasmussen1.1091.272+0.163AverageGood20261013_CLE@TB
Angel MartínezCLEStrikeoutsDrew Rasmussen1.0041.156+0.152AverageGood20261013_CLE@TB
Patrick BaileyCLEStrikeoutsDrew Rasmussen1.0241.168+0.144Below averageGood20261013_CLE@TB
Nathaniel LoweCLEStrikeoutsDrew Rasmussen0.9101.045+0.136AverageGood20261013_CLE@TB
Travis BazzanaCLEStrikeoutsDrew Rasmussen0.8370.966+0.129AverageGood20261013_CLE@TB
Steven KwanCLEWalksDrew Rasmussen0.4060.288-0.118Very goodVery good20261013_CLE@TB
José RamírezCLEStrikeoutsDrew Rasmussen0.6800.795+0.115Very goodGood20261013_CLE@TB
Chase DeLauterCLEStrikeoutsDrew Rasmussen0.6720.784+0.112GoodGood20261013_CLE@TB
José RamírezCLEWalksDrew Rasmussen0.3600.254-0.106GoodVery good20261013_CLE@TB
Chase DeLauterCLEWalksDrew Rasmussen0.3210.226-0.095GoodVery good20261013_CLE@TB
Brayan RocchioCLEStrikeoutsDrew Rasmussen0.5620.656+0.094GoodGood20261013_CLE@TB
Travis BazzanaCLEWalksDrew Rasmussen0.2960.209-0.088GoodVery good20261013_CLE@TB
Nathaniel LoweCLEWalksDrew Rasmussen0.2600.182-0.077AverageVery good20261013_CLE@TB
Steven KwanCLEStrikeoutsDrew Rasmussen0.4310.508+0.077Very goodGood20261013_CLE@TB
Steven KwanCLEHitsDrew Rasmussen0.9290.854-0.075GoodGood20261013_CLE@TB
Chase DeLauterCLEHitsDrew Rasmussen0.9220.848-0.074Very goodGood20261013_CLE@TB
Jo AdellCLEHitsDrew Rasmussen0.8590.788-0.071AverageGood20261013_CLE@TB
José RamírezCLEHitsDrew Rasmussen0.8300.761-0.069Below averageGood20261013_CLE@TB
Patrick BaileyCLEWalksDrew Rasmussen0.2200.154-0.066AverageVery good20261013_CLE@TB
Angel MartínezCLEHitsDrew Rasmussen0.8080.743-0.066GoodGood20261013_CLE@TB

Per game

20261013_CLE@TB — team layer withheld (values_fresh); runs moved away 0.7278 / home 0.0905
Foster Griffin (LHP, 21.9 BF)
H 0.2244 Below average · SO 0.2193 Average · BB 0.0672 Very good · HR 0.0313 Average
Drew Rasmussen (RHP, 21.8 BF)
H 0.1960 Good · SO 0.2559 Good · BB 0.0557 Very good · HR 0.0247 Good

CLE hitters vs Drew Rasmussen 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 KwanCFDrew Rasmussen + bullpen4.260.929 → 0.854-0.0750.431 → 0.508+0.0770.406 → 0.288-0.1180.052 → 0.046-0.005
José Ramírez3BDrew Rasmussen + bullpen4.350.830 → 0.761-0.0690.680 → 0.795+0.1150.360 → 0.254-0.1060.119 → 0.107-0.013
Chase DeLauterRFDrew Rasmussen + bullpen4.140.922 → 0.848-0.0740.672 → 0.784+0.1120.321 → 0.226-0.0950.132 → 0.118-0.014
Jo AdellDHDrew Rasmussen + bullpen3.990.859 → 0.788-0.0711.109 → 1.272+0.1630.174 → 0.121-0.0530.148 → 0.132-0.015
Nathaniel Lowe1BDrew Rasmussen + bullpen3.700.771 → 0.708-0.0630.910 → 1.045+0.1360.260 → 0.182-0.0770.141 → 0.126-0.015
Angel MartínezLFDrew Rasmussen + bullpen3.830.808 → 0.743-0.0661.004 → 1.156+0.1520.132 → 0.091-0.0410.158 → 0.141-0.017
Travis Bazzana2BDrew Rasmussen + bullpen3.730.721 → 0.661-0.0600.837 → 0.966+0.1290.296 → 0.209-0.0880.115 → 0.103-0.012
Patrick BaileyCDrew Rasmussen + bullpen3.570.726 → 0.665-0.0601.024 → 1.168+0.1440.220 → 0.154-0.0660.125 → 0.112-0.013
Brayan RocchioSSDrew Rasmussen + bullpen3.380.705 → 0.648-0.0580.562 → 0.656+0.0940.184 → 0.128-0.0560.088 → 0.079-0.009

CLE starter against the TB lineup

PlayerPosFacesBFHitsStrikeoutsWalksHome runs
published → KPIΔpublished → KPIΔpublished → KPIΔpublished → KPIΔ
Foster GriffinStarterTB21.915.968 → 6.311+0.3434.438 → 3.973-0.4651.349 → 1.208-0.1410.280 → 0.267-0.013

CLE bullpen: the full relief corps (7 arms)

Exposure. Starter 21.9 batters faced, bullpen 15.4 (41.2% of the game), from the club's real 37.3 staff batters faced per game over 18 complete games in the last 30 days. The published staff alone would have given the bullpen 35.3% across 2 arms, because it holds only the relievers the selected simulation draw used.

RelieverRoleIn the corps becauseRelief BF, 30dAppsShareBF tonight
Joey CantilloLong Relieverpregame bullpen, published staff45324.0%3.68
Hunter GaddisRelieverpregame bullpen531314.1%2.16
Tim HerrinRelieverpregame bullpen35914.1%2.16
Erik SabrowskiRelieverpregame bullpen371013.9%2.14
Shawn ArmstrongRelieverpregame bullpen19611.8%1.82
Cade SmithRelieverpregame bullpen491211.7%1.80
Tanner BibeeMiddle Relieverpregame bullpen, published staff3110.4%1.60

CLE relievers against the TB lineup

PlayerPosFacesBFHitsStrikeoutsWalksHome runs
published → KPIΔpublished → KPIΔpublished → KPIΔpublished → KPIΔ
Joey CantilloLong RelieverTB (24% of relief)3.680.716 → 0.758+0.0422.074 → 1.863-0.2110.704 → 0.634-0.0700.000 → 0.0000
Hunter GaddisRelieverTB (14% of relief)2.160.462 → 0.489+0.0270.479 → 0.429-0.0500.190 → 0.171-0.0190.064 → 0.061-0.003
Tim HerrinRelieverTB (14% of relief)2.160.438 → 0.464+0.0260.488 → 0.437-0.0510.230 → 0.206-0.0230.059 → 0.056-0.003
Erik SabrowskiRelieverTB (14% of relief)2.140.389 → 0.412+0.0240.715 → 0.650-0.0650.274 → 0.247-0.0270.055 → 0.053-0.003
Shawn ArmstrongRelieverTB (12% of relief)1.820.377 → 0.400+0.0220.396 → 0.355-0.0420.190 → 0.171-0.0190.051 → 0.048-0.002
Cade SmithRelieverTB (12% of relief)1.800.344 → 0.364+0.0210.597 → 0.542-0.0540.140 → 0.125-0.0150.046 → 0.044-0.002
Tanner BibeeMiddle RelieverTB (10% of relief)1.600.944 → 0.998+0.0540.967 → 0.863-0.1040.570 → 0.511-0.0590.141 → 0.135-0.006

TB hitters vs Foster Griffin and the bullpen

The pipeline applied no club-wide rescale to TB 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Δ
Yandy DíazDHFoster Griffin + bullpen4.361.139 → 1.136-0.0030.648 → 0.687+0.0400.305 → 0.279-0.0260.150 → 0.147-0.002
Jonathan Aranda1BFoster Griffin + bullpen4.151.056 → 1.054-0.0031.047 → 1.103+0.0560.294 → 0.269-0.0250.145 → 0.143-0.002
Junior Caminero3BFoster Griffin + bullpen4.040.982 → 0.979-0.0020.728 → 0.770+0.0420.367 → 0.336-0.0310.223 → 0.220-0.003
Ryan ViladeRFFoster Griffin + bullpen3.770.882 → 0.880-0.0020.880 → 0.927+0.0470.279 → 0.255-0.0240.154 → 0.152-0.002
Jonny DeLucaCFFoster Griffin + bullpen3.880.992 → 0.990-0.0020.841 → 0.887+0.0470.188 → 0.171-0.0170.130 → 0.128-0.002
Chandler SimpsonLFFoster Griffin + bullpen3.891.132 → 1.129-0.0030.392 → 0.418+0.0260.141 → 0.129-0.0130.039 → 0.038-0.001
Nick FortesCFoster Griffin + bullpen3.280.822 → 0.820-0.0020.515 → 0.546+0.0310.147 → 0.134-0.0130.089 → 0.088-0.001
Jorge Mateo2BFoster Griffin + bullpen3.380.781 → 0.779-0.0021.016 → 1.066+0.0500.177 → 0.161-0.0150.102 → 0.100-0.002
Taylor WallsSSFoster Griffin + bullpen3.430.751 → 0.749-0.0020.828 → 0.872+0.0440.289 → 0.264-0.0250.053 → 0.052-0.001

TB starter against the CLE lineup

PlayerPosFacesBFHitsStrikeoutsWalksHome runs
published → KPIΔpublished → KPIΔpublished → KPIΔpublished → KPIΔ
Drew RasmussenStarterCLE21.823.260 → 3.320+0.0605.640 → 4.799-0.8411.135 → 1.129-0.0060.272 → 0.257-0.015

TB bullpen: the full relief corps (7 arms)

Exposure. Starter 21.8 batters faced, bullpen 13.8 (38.8% of the game), from the club's real 35.6 staff batters faced per game over 17 complete games in the last 30 days. The published staff alone would have given the bullpen 32.0% across 2 arms, because it holds only the relievers the selected simulation draw used.

RelieverRoleIn the corps becauseRelief BF, 30dAppsShareBF tonight
Griffin JaxRelieverpregame bullpen8123.3%3.22
Ian SeymourLong Relieverpregame bullpen, published staff16320.9%2.89
Kevin KellyRelieverpregame bullpen23719.1%2.64
Cam BooserMiddle Reliever (High Leverage)pregame bullpen, published staff22816.4%2.26
Bryan BakerRelieverpregame bullpen25716.4%2.26
Steven MatzRelieverpregame bullpen2662.0%0.27
Cole SulserRelieverpregame bullpen2771.9%0.27

TB relievers against the CLE lineup

PlayerPosFacesBFHitsStrikeoutsWalksHome runs
published → KPIΔpublished → KPIΔpublished → KPIΔpublished → KPIΔ
Griffin JaxRelieverCLE (23% of relief)3.220.675 → 0.687+0.0120.799 → 0.679-0.1200.261 → 0.260-0.0010.101 → 0.095-0.006
Ian SeymourLong RelieverCLE (21% of relief)2.891.326 → 1.350+0.0241.951 → 1.668-0.2830.433 → 0.430-0.0020.225 → 0.213-0.012
Kevin KellyRelieverCLE (19% of relief)2.640.548 → 0.558+0.0100.594 → 0.502-0.0920.151 → 0.151-0.0010.071 → 0.067-0.004
Cam BooserMiddle Reliever (High Leverage)CLE (16% of relief)2.260.352 → 0.358+0.0060.651 → 0.556-0.0960.120 → 0.120-0.0010.064 → 0.060-0.004
Bryan BakerRelieverCLE (16% of relief)2.260.415 → 0.422+0.0080.562 → 0.478-0.0850.203 → 0.202-0.0010.058 → 0.054-0.003
Steven MatzRelieverCLE (2% of relief)0.270.059 → 0.060+0.0010.051 → 0.043-0.0080.021 → 0.02100.010 → 0.009-0.001
Cole SulserRelieverCLE (2% of relief)0.270.058 → 0.059+0.0010.062 → 0.052-0.0090.021 → 0.02100.008 → 0.0070
Measured from published artifacts and stored KPI values. Nothing recomputed. Per-player adjustments are a measurement of the catalog, not the published line.