MLB Prediction System

Metric Evolution & Audit

Every number that moved, the stage that moved it, the input it used, and the arithmetic that proves it

Slate 20261005Games 2Checks 313Schema metric_evolution_report_v1Built 2026-10-06 17:19Z

Verdict across the slate

313 invariants checked across 2 games: NO DEFECT FOUND

How to read this, and what a defect looks like

Every figure below is shown with the arithmetic that produced it and a verdict beside it, so a disagreement can be pointed at a specific line rather than at the system as a whole.

Slate overview

GamePublishedp(home)StagesStages that moved itKPI appliedΔ away runsΔ home runsSimulation draw chosen on0-out starter
20261005_CHW@CLE4 - 50.518581yes-0.2841+0.2723-no
20261005_NYY@TB4 - 20.460483yes+0.3329+0.0510-no
KPI model in force. candidate 20261005T125039Z_f5114dc0, 48 features built from 40 registered KPIs, blend weights {"home_runs": 0.44, "away_runs": 0.78, "home_win": 0.0}, frozen evaluation ends 2026-09-26. A target whose weight is zero contributes nothing by construction: the winner probability carries weight zero while its walk-forward verdict is inconclusive, so every win-probability movement below is expected to be exactly zero.

Per game

20261005_CHW@CLE — published 4-5, 156 checks, all pass
Artifact. 20261005_CHW@CLE__20261006T023851Z.json, phase post_start_rerun, generated 2026-10-06T02:38:51, first pitch 2026-10-05T21:00:00.
Published 4 - 5 with p(home) 0.518498. Simulation draw chosen on not recorded; ? of ? draws realized the target exactly.

Stage chain: every stage that touched the score

StageScore afterΔ awayΔ homeCum. awayCum. homeChanged targetOwn adjustment and description
1. historical_ml4.052787417582998 - 4.6577124020447060000noBase ML historical model prediction
2. variance_applied4 - 5-0.0528+0.3423-0.0528+0.3423yesDeterministic baseline target (variance factor 1.0)
3. enhanced_prediction4 - 500-0.0528+0.3423noEnhanced ML with recent form, H2H, low-score analysis (confidence shrunk by projected_margin_is_one_run, matchup_recency_guardrail)
4. kpi_layer4 - 500-0.0528+0.3423noaway -0.2841; home +0.2723
Savant KPI blend applied to the model target
5. embedded_savant_run_environment4 - 500-0.0528+0.3423noaway -0.1691; home +0.2405
Target score adjusted by temporal Savant lineup quality versus opposing starter quality
6. fundamental_edge_target_review4 - 500-0.0528+0.3423noRefreshed score target and win probability after Savant/pitcher/team-strength adjustments
7. capped_target4 - 500-0.0528+0.3423noCapped at max 12 realistic runs
8. simulation_result4 - 5----noFinal inning-by-inning simulation result

A stage reporting its own adjustment while Changed target reads no computed a movement that a later reconciliation absorbed, or that rounded away at the integer score. That is recorded rather than hidden.

KPI team layer: the blend, with its arithmetic

TargetBaselineKPI onlyWeightBlendedComputationVerdict
away_runs4.00003.63570.783.71594.0000 + 0.78 × (3.6357 − 4.0000) = 3.7159PASS
home_runs5.00005.61880.445.27235.0000 + 0.44 × (5.6188 − 5.0000) = 5.2723PASS
home_win0.52560.57910.000.52560.5256 + 0.00 × (0.5791 − 0.5256) = 0.5256PASS

Published by the layer: away 4, home 5, p(home) 0.525603, continuous away 3.7159 / home 5.2723

Inputs and gates. candidate 20261005T125039Z_f5114dc0, value age 8 days, lineup coverage away 0.8947 / home 1.0000, movement cap 2.5 runs.
values_present ok values_fresh ok one_source_bundle ok lineup_coverage ok target_eligible ok movement_within_limit ok published_movement_within_limit ok

What drove the KPI forecast for away_runs

intercept 4.2573 + sum of contributions = 3.6357; prediction 3.6357; contributions outside the top listed 1.1556 runs

FeatureRawStandardisedRuns contributedWhich KPIs it is built from
away_x_fastball-0.9471-5.759-1.2283batter x pitcher interaction: pitcher_whiff_rate_fastball, batter_whiff_rate_vs_fastball
home_off_power_spread1.09061.365+0.8901offence group (dispersion across the lineup, not its mean): batter_home_run_rate, batter_bat_speed
home_platoon_whiff0.59481.899-0.8165platoon term, selected by the opposing starter's throwing hand
home_off_qualified_share1.00002.096-0.7754share of the lineup carrying a qualifying sample, not a skill measurement
home_platoon_barrel-0.4177-1.566+0.6170platoon term, selected by the opposing starter's throwing hand
away_sp_whiff1.16332.168+0.5548starter group: pitcher_whiff_rate, pitcher_whiff_rate_fastball, pitcher_whiff_rate_breaking
away_off_worst3_discipline-1.1139-2.311-0.5384mean of the three weakest plate approaches
away_sp_command0.89111.479-0.4717starter group: pitcher_strikeout_rate, pitcher_walk_rate
away_off_contact_spread0.96241.353-0.4677offence group (dispersion across the lineup, not its mean): batter_barrel_rate_vs_fastball, batter_barrel_rate_vs_breaking, batter_barrel_rate_vs_offspeed, batter_hard_hit_rate_vs_fastball ...
home_off_discipline0.53662.246+0.4589offence group: batter_whiff_rate_vs_fastball, batter_whiff_rate_vs_breaking, batter_whiff_rate_vs_offspeed, batter_strikeout_rate ...

What drove the KPI forecast for home_runs

intercept 4.2997 + sum of contributions = 5.6188; prediction 5.6188; contributions outside the top listed 2.0013 runs

FeatureRawStandardisedRuns contributedWhich KPIs it is built from
away_x_suppress-0.8553-3.665+0.8801batter x pitcher interaction: pitcher_barrel_rate_allowed, batter_barrel_rate_vs_fastball
home_off_discipline0.53662.246-0.5282offence group: batter_whiff_rate_vs_fastball, batter_whiff_rate_vs_breaking, batter_whiff_rate_vs_offspeed, batter_strikeout_rate ...
away_off_contact_spread0.96241.353-0.4390offence group (dispersion across the lineup, not its mean): batter_barrel_rate_vs_fastball, batter_barrel_rate_vs_breaking, batter_barrel_rate_vs_offspeed, batter_hard_hit_rate_vs_fastball ...
away_off_discipline_spread0.93692.473-0.3999offence group (dispersion across the lineup, not its mean): batter_whiff_rate_vs_fastball, batter_whiff_rate_vs_breaking, batter_whiff_rate_vs_offspeed, batter_strikeout_rate ...
home_off_power-0.2953-1.493-0.3968offence group: batter_home_run_rate, batter_bat_speed
away_off_top3_contact1.27801.722-0.3740mean of the three best contact bats, a tail a club mean cannot express
home_off_ground_spread0.3813-1.257-0.3695offence group (dispersion across the lineup, not its mean): batter_ground_ball_rate_vs_slider, batter_ground_ball_rate_vs_fastball
away_off_power_spread1.15431.469+0.3287offence group (dispersion across the lineup, not its mean): batter_home_run_rate, batter_bat_speed
away_off_ground_spread1.17952.464+0.3106offence group (dispersion across the lineup, not its mean): batter_ground_ball_rate_vs_slider, batter_ground_ball_rate_vs_fastball
away_x_fastball-0.9471-5.759+0.3057batter x pitcher interaction: pitcher_whiff_rate_fastball, batter_whiff_rate_vs_fastball

These are Ridge coefficients on standardised inputs, so each contribution is that feature's own push on the run forecast, in runs. They sum exactly to the prediction minus the intercept, which makes the list an accounting of the forecast rather than a ranking of vaguely important things.

Per-player metric movement

CHW against Hagen Smith (LHP)

The pipeline applied one club-wide ×0.929 to every CHW hitter line, identical for the leadoff hitter and the ninth bat.
Opposing staff exposure. These hitters face the starter for 23.1868 of 37.398 projected batters (62.0%) and the 3 projected relievers for the remaining 38.0%. Every metric below is the exposure-weighted blend of both matchups; the starter-only figure is shown beside it. Real 2026 game logs put a starter at 21.75 batters faced on average (median 23, p10-p90 17-27) and a whole staff at 37.9: this starter is inside that band and this staff is inside its. The per-player columns are the measured alternative: each subject moved by his own KPI pairing. Exposure for a hitter is his projected plate appearances; for the starter it is batters faced.

PlayerPosMetricPublished → KPIΔLeagueOwn rateOpponent rateLog5Own skillOpponentRemainder
Sam AntonacciLFHitswhole staff0.841 → 0.775-0.0660.21690.2300n=553
Good
0.1978n=721
Good
0.2101+0.055-0.080-0.004 ok
  splitstarter x0.9134 at 0.620 share (log5 0.2101 vs his 0.1978)  +  bullpen x0.9344 at 0.380 share (log5 0.2149 vs pen 0.2024)  =  x0.9214  |  starter alone would have been -0.073
Strikeoutswhole staff0.842 → 1.167+0.3250.22120.1525n=553
Good
0.3179n=721
Very good
0.2280-0.289+0.407-0.089 ok
  splitstarter x1.495 at 0.620 share (log5 0.2280 vs his 0.3179)  +  bullpen x1.2074 at 0.380 share (log5 0.1842 vs pen 0.2627)  =  x1.3857  |  starter alone would have been +0.417
Walkswhole staff0.346 → 0.351+0.0040.08890.0797n=553
Average
0.0854n=721
Average
0.0765-0.039-0.015+0.001 ok
  splitstarter x0.9598 at 0.620 share (log5 0.0765 vs his 0.0854)  +  bullpen x1.0988 at 0.380 share (log5 0.0876 vs pen 0.0976)  =  x1.0126  |  starter alone would have been -0.014
Home runswhole staff0.068 → 0.069+0.0010.03040.0196n=553
Poor
0.0330n=721
Below average
0.0213-0.045+0.011-0.004 ok
  splitstarter x1.0881 at 0.620 share (log5 0.0213 vs his 0.0330)  +  bullpen x0.909 at 0.380 share (log5 0.0178 vs pen 0.0277)  =  x1.02  |  starter alone would have been +0.006
Neutralising Sam Antonacci to the qualified-population mean moves the club's KPI run forecast by 0.1940 runs, and the weighted stage by 0.1514. Interactions make these non-additive across players, so they do not sum to the published movement.
Kyle TeelCHitswhole staff0.707 → 0.650-0.0560.21690.2169n=0
averagebelow floor
0.1978n=721
Good
0.19780-0.0760 ok
  splitstarter x0.9121 at 0.620 share (log5 0.1978 vs his 0.1978)  +  bullpen x0.9333 at 0.380 share (log5 0.2024 vs pen 0.2024)  =  x0.9202  |  starter alone would have been -0.062
Strikeoutswhole staff1.730 → 2.323+0.5920.22120.2212n=0
averagebelow floor
0.3179n=721
Very good
0.31790+0.3870 ok
  splitstarter x1.4373 at 0.620 share (log5 0.3179 vs his 0.3179)  +  bullpen x1.1875 at 0.380 share (log5 0.2627 vs pen 0.2627)  =  x1.3424  |  starter alone would have been +0.757
Walkswhole staff0.417 → 0.422+0.0050.08890.0889n=0
averagebelow floor
0.0854n=721
Average
0.08540-0.0140 ok
  splitstarter x0.9601 at 0.620 share (log5 0.0854 vs his 0.0854)  +  bullpen x1.0977 at 0.380 share (log5 0.0976 vs pen 0.0976)  =  x1.0124  |  starter alone would have been -0.017
Home runswhole staff0.102 → 0.104+0.0020.03040.0304n=0
averagebelow floor
0.0330n=721
Below average
0.03300+0.0110 ok
  splitstarter x1.0871 at 0.620 share (log5 0.0330 vs his 0.0330)  +  bullpen x0.9099 at 0.380 share (log5 0.0277 vs pen 0.0277)  =  x1.0198  |  starter alone would have been +0.009
Neutralising Kyle Teel to the qualified-population mean moves the club's KPI run forecast by -0.4272 runs, and the weighted stage by -0.3332. Interactions make these non-additive across players, so they do not sum to the published movement.
Miguel Vargas3BHitswhole staff0.831 → 0.764-0.0670.21690.2136n=695
Average
0.1978n=721
Good
0.1947-0.014-0.081+0.001 ok
  splitstarter x0.9117 at 0.620 share (log5 0.1947 vs his 0.1978)  +  bullpen x0.933 at 0.380 share (log5 0.1993 vs pen 0.2024)  =  x0.9198  |  starter alone would have been -0.073
Strikeoutswhole staff0.992 → 1.355+0.3630.22120.1826n=695
Good
0.3179n=721
Very good
0.2682-0.164+0.411-0.047 ok
  splitstarter x1.4692 at 0.620 share (log5 0.2682 vs his 0.3179)  +  bullpen x1.1986 at 0.380 share (log5 0.2188 vs pen 0.2627)  =  x1.3664  |  starter alone would have been +0.465
Walkswhole staff0.528 → 0.535+0.0060.08890.1346n=695
Very good
0.0854n=721
Average
0.1295+0.194-0.015-0.007 ok
  splitstarter x0.9621 at 0.620 share (log5 0.1295 vs his 0.0854)  +  bullpen x1.0924 at 0.380 share (log5 0.1470 vs pen 0.0976)  =  x1.0116  |  starter alone would have been -0.020
Home runswhole staff0.154 → 0.157+0.0030.03040.0428n=695
Very good
0.0330n=721
Below average
0.0464+0.053+0.011+0.004 ok
  splitstarter x1.0859 at 0.620 share (log5 0.0464 vs his 0.0330)  +  bullpen x0.911 at 0.380 share (log5 0.0390 vs pen 0.0277)  =  x1.0194  |  starter alone would have been +0.013
Neutralising Miguel Vargas to the qualified-population mean moves the club's KPI run forecast by 0.5724 runs, and the weighted stage by 0.4465. Interactions make these non-additive across players, so they do not sum to the published movement.
Munetaka Murakami1BHitswhole staff0.724 → 0.665-0.0590.21690.1915n=544
Poor
0.1978n=721
Good
0.1742-0.111-0.083+0.008 ok
  splitstarter x0.9095 at 0.620 share (log5 0.1742 vs his 0.1978)  +  bullpen x0.9313 at 0.380 share (log5 0.1783 vs pen 0.2024)  =  x0.9178  |  starter alone would have been -0.066
Strikeoutswhole staff1.873 → 2.383+0.5090.22120.3438n=544
Poor
0.3179n=721
Very good
0.4623+0.536+0.423+0.095 ok
  splitstarter x1.3447 at 0.620 share (log5 0.4623 vs his 0.3179)  +  bullpen x1.1534 at 0.380 share (log5 0.3966 vs pen 0.2627)  =  x1.272  |  starter alone would have been +0.646
Walkswhole staff0.632 → 0.640+0.0070.08890.1532n=544
Very good
0.0854n=721
Average
0.1475+0.281-0.015-0.009 ok
  splitstarter x0.9629 at 0.620 share (log5 0.1475 vs his 0.0854)  +  bullpen x1.0902 at 0.380 share (log5 0.1670 vs pen 0.0976)  =  x1.0113  |  starter alone would have been -0.024
Home runswhole staff0.211 → 0.215+0.0040.03040.0532n=544
Very good
0.0330n=721
Below average
0.0578+0.100+0.012+0.008 ok
  splitstarter x1.0848 at 0.620 share (log5 0.0578 vs his 0.0330)  +  bullpen x0.9118 at 0.380 share (log5 0.0485 vs pen 0.0277)  =  x1.0191  |  starter alone would have been +0.018
Neutralising Munetaka Murakami to the qualified-population mean moves the club's KPI run forecast by -0.4628 runs, and the weighted stage by -0.3610. Interactions make these non-additive across players, so they do not sum to the published movement.
Andrew BenintendiDHHitswhole staff0.706 → 0.650-0.0560.21690.2160n=460
Average
0.1978n=721
Good
0.1970-0.003-0.066+0.000 ok
  splitstarter x0.912 at 0.620 share (log5 0.1970 vs his 0.1978)  +  bullpen x0.9332 at 0.380 share (log5 0.2016 vs pen 0.2024)  =  x0.9201  |  starter alone would have been -0.062
Strikeoutswhole staff1.021 → 1.361+0.3410.22120.2354n=460
Average
0.3179n=721
Very good
0.3357+0.049+0.334+0.012 ok
  splitstarter x1.4259 at 0.620 share (log5 0.3357 vs his 0.3179)  +  bullpen x1.1834 at 0.380 share (log5 0.2786 vs pen 0.2627)  =  x1.3337  |  starter alone would have been +0.435
Walkswhole staff0.308 → 0.312+0.0040.08890.0856n=460
Average
0.0854n=721
Average
0.0822-0.011-0.012+0.000 ok
  splitstarter x0.96 at 0.620 share (log5 0.0822 vs his 0.0854)  +  bullpen x1.0981 at 0.380 share (log5 0.0940 vs pen 0.0976)  =  x1.0125  |  starter alone would have been -0.012
Home runswhole staff0.088 → 0.090+0.0020.03040.0318n=460
Average
0.0330n=721
Below average
0.0346+0.005+0.009+0.000 ok
  splitstarter x1.0869 at 0.620 share (log5 0.0346 vs his 0.0330)  +  bullpen x0.91 at 0.380 share (log5 0.0289 vs pen 0.0277)  =  x1.0197  |  starter alone would have been +0.008
Neutralising Andrew Benintendi to the qualified-population mean moves the club's KPI run forecast by 0.2292 runs, and the weighted stage by 0.1788. Interactions make these non-additive across players, so they do not sum to the published movement.
Tristan PetersCFHitswhole staff0.756 → 0.697-0.0600.21690.2266n=484
Good
0.1978n=721
Good
0.2069+0.036-0.071-0.002 ok
  splitstarter x0.9131 at 0.620 share (log5 0.2069 vs his 0.1978)  +  bullpen x0.9341 at 0.380 share (log5 0.2117 vs pen 0.2024)  =  x0.9211  |  starter alone would have been -0.066
Strikeoutswhole staff0.924 → 1.262+0.3380.22120.1835n=484
Good
0.3179n=721
Very good
0.2695-0.140+0.360-0.040 ok
  splitstarter x1.4684 at 0.620 share (log5 0.2695 vs his 0.3179)  +  bullpen x1.1983 at 0.380 share (log5 0.2199 vs pen 0.2627)  =  x1.3658  |  starter alone would have been +0.433
Walkswhole staff0.298 → 0.302+0.0040.08890.0789n=484
Average
0.0854n=721
Average
0.0757-0.037-0.013+0.001 ok
  splitstarter x0.9597 at 0.620 share (log5 0.0757 vs his 0.0854)  +  bullpen x1.0989 at 0.380 share (log5 0.0867 vs pen 0.0976)  =  x1.0126  |  starter alone would have been -0.012
Home runswhole staff0.083 → 0.085+0.0020.03040.0268n=484
Average
0.0330n=721
Below average
0.0291-0.013+0.010-0.001 ok
  splitstarter x1.0874 at 0.620 share (log5 0.0291 vs his 0.0330)  +  bullpen x0.9096 at 0.380 share (log5 0.0243 vs pen 0.0277)  =  x1.0198  |  starter alone would have been +0.007
Neutralising Tristan Peters to the qualified-population mean moves the club's KPI run forecast by 0.0078 runs, and the weighted stage by 0.0061. Interactions make these non-additive across players, so they do not sum to the published movement.
Braden MontgomeryRFHitswhole staff0.720 → 0.662-0.0580.21690.2100n=362
Below average
0.1978n=721
Good
0.1914-0.026-0.072+0.002 ok
  splitstarter x0.9114 at 0.620 share (log5 0.1914 vs his 0.1978)  +  bullpen x0.9328 at 0.380 share (log5 0.1959 vs pen 0.2024)  =  x0.9195  |  starter alone would have been -0.064
Strikeoutswhole staff0.995 → 1.349+0.3540.22120.1991n=362
Average
0.3179n=721
Very good
0.2898-0.084+0.366-0.023 ok
  splitstarter x1.4554 at 0.620 share (log5 0.2898 vs his 0.3179)  +  bullpen x1.1938 at 0.380 share (log5 0.2377 vs pen 0.2627)  =  x1.356  |  starter alone would have been +0.453
Walkswhole staff0.374 → 0.379+0.0050.08890.1010n=362
Good
0.0854n=721
Average
0.0970+0.046-0.013-0.002 ok
  splitstarter x0.9607 at 0.620 share (log5 0.0970 vs his 0.0854)  +  bullpen x1.0963 at 0.380 share (log5 0.1107 vs pen 0.0976)  =  x1.0122  |  starter alone would have been -0.015
Home runswhole staff0.069 → 0.070+0.0010.03040.0224n=362
Below average
0.0330n=721
Below average
0.0244-0.030+0.010-0.003 ok
  splitstarter x1.0879 at 0.620 share (log5 0.0244 vs his 0.0330)  +  bullpen x0.9092 at 0.380 share (log5 0.0204 vs pen 0.0277)  =  x1.02  |  starter alone would have been +0.006
Neutralising Braden Montgomery to the qualified-population mean moves the club's KPI run forecast by 0.1445 runs, and the weighted stage by 0.1127. Interactions make these non-additive across players, so they do not sum to the published movement.
Chase Meidroth2BHitswhole staff0.781 → 0.720-0.0610.21690.2330n=635
Good
0.1978n=721
Good
0.2129+0.059-0.070-0.004 ok
  splitstarter x0.9137 at 0.620 share (log5 0.2129 vs his 0.1978)  +  bullpen x0.9346 at 0.380 share (log5 0.2177 vs pen 0.2024)  =  x0.9216  |  starter alone would have been -0.067
Strikeoutswhole staff1.054 → 1.417+0.3630.22120.2176n=635
Average
0.3179n=721
Very good
0.3134-0.013+0.356-0.004 ok
  splitstarter x1.4403 at 0.620 share (log5 0.3134 vs his 0.3179)  +  bullpen x1.1885 at 0.380 share (log5 0.2586 vs pen 0.2627)  =  x1.3446  |  starter alone would have been +0.464
Walkswhole staff0.327 → 0.331+0.0040.08890.0936n=635
Average
0.0854n=721
Average
0.0899+0.017-0.013-0.001 ok
  splitstarter x0.9603 at 0.620 share (log5 0.0899 vs his 0.0854)  +  bullpen x1.0972 at 0.380 share (log5 0.1027 vs pen 0.0976)  =  x1.0123  |  starter alone would have been -0.013
Home runswhole staff0.083 → 0.085+0.0020.03040.0267n=635
Average
0.0330n=721
Below average
0.0291-0.013+0.010-0.001 ok
  splitstarter x1.0874 at 0.620 share (log5 0.0291 vs his 0.0330)  +  bullpen x0.9096 at 0.380 share (log5 0.0243 vs pen 0.0277)  =  x1.0198  |  starter alone would have been +0.007
Neutralising Chase Meidroth to the qualified-population mean moves the club's KPI run forecast by 0.1770 runs, and the weighted stage by 0.1381. Interactions make these non-additive across players, so they do not sum to the published movement.
Colson MontgomerySSHitswhole staff0.592 → 0.544-0.0490.21690.1929n=630
Poor
0.1978n=721
Good
0.1755-0.084-0.067+0.006 ok
  splitstarter x0.9096 at 0.620 share (log5 0.1755 vs his 0.1978)  +  bullpen x0.9314 at 0.380 share (log5 0.1797 vs pen 0.2024)  =  x0.9179  |  starter alone would have been -0.053
Strikeoutswhole staff1.683 → 2.139+0.4560.22120.3459n=630
Poor
0.3179n=721
Very good
0.4647+0.440+0.341+0.077 ok
  splitstarter x1.3433 at 0.620 share (log5 0.4647 vs his 0.3179)  +  bullpen x1.1529 at 0.380 share (log5 0.3988 vs pen 0.2627)  =  x1.2709  |  starter alone would have been +0.578
Walkswhole staff0.309 → 0.312+0.0040.08890.0836n=630
Average
0.0854n=721
Average
0.0802-0.019-0.013+0.001 ok
  splitstarter x0.9599 at 0.620 share (log5 0.0802 vs his 0.0854)  +  bullpen x1.0984 at 0.380 share (log5 0.0918 vs pen 0.0976)  =  x1.0125  |  starter alone would have been -0.012
Home runswhole staff0.129 → 0.132+0.0030.03040.0436n=630
Very good
0.0330n=721
Below average
0.0474+0.047+0.009+0.004 ok
  splitstarter x1.0858 at 0.620 share (log5 0.0474 vs his 0.0330)  +  bullpen x0.911 at 0.380 share (log5 0.0398 vs pen 0.0277)  =  x1.0194  |  starter alone would have been +0.011
Neutralising Colson Montgomery to the qualified-population mean moves the club's KPI run forecast by 0.0168 runs, and the weighted stage by 0.0131. Interactions make these non-additive across players, so they do not sum to the published movement.
STARTER Anthony Kay20.6793 BFStarterHits5.084 → 5.173+0.0890.21690.2242n=686
Below average
0.22079/9 qualified
lineup mean
0.2281+0.152+0.079+0.002 ok
Strikeouts3.531 → 2.960-0.5720.22120.1837n=686
Below average
0.18689/9 qualified
lineup mean
0.1540-0.776-0.712+0.097 ok
Walks1.555 → 1.549-0.0060.08890.0818n=686
Average
0.08869/9 qualified
lineup mean
0.0815-0.147-0.007+0.001 ok
Home runs0.514 → 0.485-0.0290.03040.0305n=686
Average
0.02879/9 qualified
lineup mean
0.0288+0.003-0.035-0.000 ok
RELIEVER Sean Newcomb3.6911 BFMiddle Reliever (High Leverage)Hits1.889 → 1.923+0.0340.21690.2048n=369
Good
0.22079/9 qualified
lineup mean
0.2084-0.045+0.014-0.001 ok
Strikeouts1.485 → 1.255-0.2300.22120.2265n=369
Average
0.18689/9 qualified
lineup mean
0.1915+0.019-0.127-0.002 ok
Walks0.562 → 0.560-0.0020.08890.0912n=369
Average
0.08869/9 qualified
lineup mean
0.0908+0.008-0.0010 ok
Home runs0.033 → 0.031-0.0020.03040.0215n=369
Very good
0.02879/9 qualified
lineup mean
0.0203-0.033-0.006+0.002 ok
RELIEVER Erick Fedde3.5859 BFRelieverHits0.808 → 0.822+0.0140.21690.2253n=606
Below average
0.22079/9 qualified
lineup mean
0.2292+0.030+0.014+0.000 ok
Strikeouts0.610 → 0.510-0.1000.22120.1701n=606
Poor
0.18689/9 qualified
lineup mean
0.1422-0.183-0.123+0.023 ok
Walks0.310 → 0.309-0.0010.08890.0865n=606
Average
0.08869/9 qualified
lineup mean
0.0861-0.009-0.0010 ok
Home runs0.125 → 0.118-0.0070.03040.0347n=606
Below average
0.02879/9 qualified
lineup mean
0.0328+0.016-0.006-0.001 ok
RELIEVER Jordan Hicks2.3948 BFSetup ManHits0.912 → 0.928+0.0160.21690.2054n=216
Good
0.22079/9 qualified
lineup mean
0.2091-0.027+0.009-0.000 ok
Strikeouts1.234 → 1.053-0.1800.22120.2760n=216
Good
0.18689/9 qualified
lineup mean
0.2356+0.131-0.082-0.014 ok
Walks0.599 → 0.596-0.0020.08890.1258n=216
Poor
0.08869/9 qualified
lineup mean
0.1254+0.088-0.001-0.000 ok
Home runs0.098 → 0.092-0.0050.03040.0265n=216
Good
0.02879/9 qualified
lineup mean
0.0250-0.009-0.004+0.001 ok
RELIEVER Bryan Hudson2.1591 BFRelieverHits0.494 → 0.502+0.0090.21690.2287n=282
Below average
0.22079/9 qualified
lineup mean
0.2327+0.026+0.008+0.000 ok
Strikeouts0.458 → 0.386-0.0720.22120.2119n=282
Average
0.18689/9 qualified
lineup mean
0.1786-0.020-0.074+0.002 ok
Walks0.157 → 0.157-0.0010.08890.0728n=282
Good
0.08869/9 qualified
lineup mean
0.0725-0.035-0.001+0.000 ok
Home runs0.055 → 0.052-0.0030.03040.0255n=282
Good
0.02879/9 qualified
lineup mean
0.0240-0.011-0.004+0.001 ok
RELIEVER Grant Taylor1.6248 BFRelieverHits0.321 → 0.327+0.0060.21690.1974n=333
Good
0.22079/9 qualified
lineup mean
0.2010-0.032+0.006-0.000 ok
Strikeouts0.483 → 0.414-0.0690.22120.2970n=333
Very good
0.18689/9 qualified
lineup mean
0.2547+0.123-0.056-0.013 ok
Walks0.146 → 0.145-0.0010.08890.0897n=333
Average
0.08869/9 qualified
lineup mean
0.0894+0.001-0.0010 ok
Home runs0.043 → 0.041-0.0020.03040.0264n=333
Good
0.02879/9 qualified
lineup mean
0.0249-0.006-0.003+0.000 ok
RELIEVER David Sandlin1.1927 BFRelieverHits0.258 → 0.263+0.0040.21690.2164n=167
Average
0.22079/9 qualified
lineup mean
0.2202-0.001+0.0050 ok
Strikeouts0.279 → 0.236-0.0430.22120.2336n=167
Average
0.18689/9 qualified
lineup mean
0.1977+0.015-0.041-0.002 ok
Walks0.099 → 0.099-0.0000.08890.0832n=167
Average
0.08869/9 qualified
lineup mean
0.0829-0.007-0.0000 ok
Home runs0.040 → 0.038-0.0020.03040.0335n=167
Below average
0.02879/9 qualified
lineup mean
0.0316+0.004-0.002-0.000 ok
RELIEVER Hagen Smith1.0654 BFRelieverHits0.231 → 0.235+0.0040.21690.2169n=0
averagebelow floor
0.22079/9 qualified
lineup mean
0.22070+0.0040 ok
Strikeouts0.236 → 0.199-0.0370.22120.2212n=0
averagebelow floor
0.18689/9 qualified
lineup mean
0.18680-0.0370 ok
Walks0.095 → 0.094-0.0000.08890.0889n=0
averagebelow floor
0.08869/9 qualified
lineup mean
0.08860-0.0000 ok
Home runs0.032 → 0.031-0.0020.03040.0304n=0
averagebelow floor
0.02879/9 qualified
lineup mean
0.02870-0.0020 ok

CLE against Matt Festa (RHP)

The pipeline applied one club-wide ×1.0545 to every CLE hitter line, identical for the leadoff hitter and the ninth bat.
Opposing staff exposure. These hitters face the starter for 20.6793 of 36.393 projected batters (56.8%) and the 2 projected relievers for the remaining 43.2%. Every metric below is the exposure-weighted blend of both matchups; the starter-only figure is shown beside it. Real 2026 game logs put a starter at 21.75 batters faced on average (median 23, p10-p90 17-27) and a whole staff at 37.9: this starter is inside that band and this staff is inside its. The per-player columns are the measured alternative: each subject moved by his own KPI pairing. Exposure for a hitter is his projected plate appearances; for the starter it is batters faced.

PlayerPosMetricPublished → KPIΔLeagueOwn rateOpponent rateLog5Own skillOpponentRemainder
Steven KwanCFHitswhole staff1.063 → 1.076+0.0140.21690.2296n=620
Good
0.2242n=686
Below average
0.2373+0.056+0.032+0.001 ok
  splitstarter x1.0334 at 0.568 share (log5 0.2373 vs his 0.2242)  +  bullpen x0.986 at 0.432 share (log5 0.2264 vs pen 0.2138)  =  x1.0129  |  starter alone would have been +0.035
Strikeoutswhole staff0.441 → 0.398-0.0420.22120.1013n=620
Very good
0.1837n=686
Below average
0.0820-0.527-0.165+0.080 ok
  splitstarter x0.8093 at 0.568 share (log5 0.0820 vs his 0.1837)  +  bullpen x1.0284 at 0.432 share (log5 0.1042 vs pen 0.2266)  =  x0.9039  |  starter alone would have been -0.084
Walkswhole staff0.517 → 0.501-0.0150.08890.1280n=620
Very good
0.0818n=686
Average
0.1181+0.172-0.031-0.012 ok
  splitstarter x0.9232 at 0.568 share (log5 0.1181 vs his 0.0818)  +  bullpen x1.0326 at 0.432 share (log5 0.1321 vs pen 0.0920)  =  x0.9704  |  starter alone would have been -0.040
Home runswhole staff0.047 → 0.046-0.0020.03040.0125n=620
Poor
0.0305n=686
Average
0.0125-0.079+0.001-0.000 ok
  splitstarter x1.0046 at 0.568 share (log5 0.0125 vs his 0.0305)  +  bullpen x0.9156 at 0.432 share (log5 0.0114 vs pen 0.0279)  =  x0.9662  |  starter alone would have been +0.000
Neutralising Steven Kwan to the qualified-population mean moves the club's KPI run forecast by -0.0915 runs, and the weighted stage by -0.0403. Interactions make these non-additive across players, so they do not sum to the published movement.
José Ramírez3BHitswhole staff0.983 → 0.996+0.0130.21690.2095n=531
Below average
0.2242n=686
Below average
0.2167-0.034+0.034-0.001 ok
  splitstarter x1.0343 at 0.568 share (log5 0.2167 vs his 0.2242)  +  bullpen x0.9856 at 0.432 share (log5 0.2065 vs pen 0.2138)  =  x1.0133  |  starter alone would have been +0.034
Strikeoutswhole staff0.572 → 0.519-0.0530.22120.1376n=531
Very good
0.1837n=686
Below average
0.1122-0.380-0.171+0.055 ok
  splitstarter x0.8155 at 0.568 share (log5 0.1122 vs his 0.1837)  +  bullpen x1.0272 at 0.432 share (log5 0.1414 vs pen 0.2266)  =  x0.9069  |  starter alone would have been -0.105
Walkswhole staff0.533 → 0.517-0.0160.08890.1086n=531
Good
0.0818n=686
Average
0.1001+0.089-0.032-0.006 ok
  splitstarter x0.9216 at 0.568 share (log5 0.1001 vs his 0.0818)  +  bullpen x1.0333 at 0.432 share (log5 0.1122 vs pen 0.0920)  =  x0.9698  |  starter alone would have been -0.042
Home runswhole staff0.104 → 0.101-0.0040.03040.0252n=531
Below average
0.0305n=686
Average
0.0253-0.024+0.001-0.000 ok
  splitstarter x1.0045 at 0.568 share (log5 0.0253 vs his 0.0305)  +  bullpen x0.9166 at 0.432 share (log5 0.0231 vs pen 0.0279)  =  x0.9665  |  starter alone would have been +0.001
Neutralising José Ramírez to the qualified-population mean moves the club's KPI run forecast by 0.3369 runs, and the weighted stage by 0.1482. Interactions make these non-additive across players, so they do not sum to the published movement.
Chase DeLauterRFHitswhole staff1.069 → 1.082+0.0140.21690.2364n=543
Very good
0.2242n=686
Below average
0.2443+0.083+0.031+0.002 ok
  splitstarter x1.0331 at 0.568 share (log5 0.2443 vs his 0.2242)  +  bullpen x0.9861 at 0.432 share (log5 0.2332 vs pen 0.2138)  =  x1.0128  |  starter alone would have been +0.035
Strikeoutswhole staff0.655 → 0.595-0.0600.22120.1534n=543
Good
0.1837n=686
Below average
0.1255-0.287-0.159+0.041 ok
  splitstarter x0.8183 at 0.568 share (log5 0.1255 vs his 0.1837)  +  bullpen x1.0267 at 0.432 share (log5 0.1575 vs pen 0.2266)  =  x0.9083  |  starter alone would have been -0.119
Walkswhole staff0.407 → 0.395-0.0120.08890.1051n=543
Good
0.0818n=686
Average
0.0968+0.068-0.030-0.005 ok
  splitstarter x0.9213 at 0.568 share (log5 0.0968 vs his 0.0818)  +  bullpen x1.0334 at 0.432 share (log5 0.1086 vs pen 0.0920)  =  x0.9697  |  starter alone would have been -0.032
Home runswhole staff0.112 → 0.108-0.0040.03040.0298n=543
Average
0.0305n=686
Average
0.0299-0.003+0.0010 ok
  splitstarter x1.0045 at 0.568 share (log5 0.0299 vs his 0.0305)  +  bullpen x0.917 at 0.432 share (log5 0.0273 vs pen 0.0279)  =  x0.9667  |  starter alone would have been +0.001
Neutralising Chase DeLauter to the qualified-population mean moves the club's KPI run forecast by 0.0139 runs, and the weighted stage by 0.0061. Interactions make these non-additive across players, so they do not sum to the published movement.
Jo AdellDHHitswhole staff0.974 → 0.987+0.0130.21690.2185n=656
Average
0.2242n=686
Below average
0.2259+0.006+0.030+0.000 ok
  splitstarter x1.0339 at 0.568 share (log5 0.2259 vs his 0.2242)  +  bullpen x0.9858 at 0.432 share (log5 0.2154 vs pen 0.2138)  =  x1.0131  |  starter alone would have been +0.033
Strikeoutswhole staff0.957 → 0.877-0.0810.22120.2367n=656
Average
0.1837n=686
Below average
0.1972+0.064-0.154-0.008 ok
  splitstarter x0.8332 at 0.568 share (log5 0.1972 vs his 0.1837)  +  bullpen x1.024 at 0.432 share (log5 0.2423 vs pen 0.2266)  =  x0.9156  |  starter alone would have been -0.160
Walkswhole staff0.271 → 0.262-0.0090.08890.0575n=656
Poor
0.0818n=686
Average
0.0528-0.129-0.029+0.010 ok
  splitstarter x0.9175 at 0.568 share (log5 0.0528 vs his 0.0818)  +  bullpen x1.0353 at 0.432 share (log5 0.0596 vs pen 0.0920)  =  x0.9684  |  starter alone would have been -0.022
Home runswhole staff0.134 → 0.129-0.0040.03040.0337n=656
Average
0.0305n=686
Average
0.0339+0.014+0.001+0.000 ok
  splitstarter x1.0045 at 0.568 share (log5 0.0339 vs his 0.0305)  +  bullpen x0.9173 at 0.432 share (log5 0.0309 vs pen 0.0279)  =  x0.9668  |  starter alone would have been +0.001
Neutralising Jo Adell to the qualified-population mean moves the club's KPI run forecast by -0.0933 runs, and the weighted stage by -0.0411. Interactions make these non-additive across players, so they do not sum to the published movement.
Nathaniel Lowe1BHitswhole staff0.923 → 0.935+0.0120.21690.2187n=417
Average
0.2242n=686
Below average
0.2261+0.007+0.028+0.000 ok
  splitstarter x1.0339 at 0.568 share (log5 0.2261 vs his 0.2242)  +  bullpen x0.9858 at 0.432 share (log5 0.2156 vs pen 0.2138)  =  x1.0131  |  starter alone would have been +0.031
Strikeoutswhole staff0.903 → 0.827-0.0770.22120.2293n=417
Average
0.1837n=686
Below average
0.1907+0.031-0.144-0.004 ok
  splitstarter x0.8318 at 0.568 share (log5 0.1907 vs his 0.1837)  +  bullpen x1.0243 at 0.432 share (log5 0.2348 vs pen 0.2266)  =  x0.9149  |  starter alone would have been -0.152
Walkswhole staff0.321 → 0.311-0.0100.08890.0906n=417
Average
0.0818n=686
Average
0.0834+0.007-0.027-0.001 ok
  splitstarter x0.9201 at 0.568 share (log5 0.0834 vs his 0.0818)  +  bullpen x1.034 at 0.432 share (log5 0.0937 vs pen 0.0920)  =  x0.9693  |  starter alone would have been -0.026
Home runswhole staff0.123 → 0.119-0.0040.03040.0353n=417
Good
0.0305n=686
Average
0.0354+0.019+0.001+0.000 ok
  splitstarter x1.0045 at 0.568 share (log5 0.0354 vs his 0.0305)  +  bullpen x0.9174 at 0.432 share (log5 0.0324 vs pen 0.0279)  =  x0.9669  |  starter alone would have been +0.001
Neutralising Nathaniel Lowe to the qualified-population mean moves the club's KPI run forecast by 0.2210 runs, and the weighted stage by 0.0972. Interactions make these non-additive across players, so they do not sum to the published movement.
Angel MartínezLFHitswhole staff0.970 → 0.983+0.0130.21690.2293n=408
Good
0.2242n=686
Below average
0.2369+0.048+0.029+0.001 ok
  splitstarter x1.0334 at 0.568 share (log5 0.2369 vs his 0.2242)  +  bullpen x0.986 at 0.432 share (log5 0.2261 vs pen 0.2138)  =  x1.0129  |  starter alone would have been +0.032
Strikeoutswhole staff0.854 → 0.780-0.0730.22120.2185n=408
Average
0.1837n=686
Below average
0.1813-0.011-0.145+0.001 ok
  splitstarter x0.8299 at 0.568 share (log5 0.1813 vs his 0.1837)  +  bullpen x1.0246 at 0.432 share (log5 0.2238 vs pen 0.2266)  =  x0.914  |  starter alone would have been -0.145
Walkswhole staff0.201 → 0.194-0.0060.08890.0429n=408
Poor
0.0818n=686
Average
0.0393-0.178-0.028+0.014 ok
  splitstarter x0.9163 at 0.568 share (log5 0.0393 vs his 0.0818)  +  bullpen x1.0359 at 0.432 share (log5 0.0444 vs pen 0.0920)  =  x0.9679  |  starter alone would have been -0.017
Home runswhole staff0.146 → 0.142-0.0050.03040.0387n=408
Good
0.0305n=686
Average
0.0389+0.032+0.001+0.000 ok
  splitstarter x1.0044 at 0.568 share (log5 0.0389 vs his 0.0305)  +  bullpen x0.9177 at 0.432 share (log5 0.0355 vs pen 0.0279)  =  x0.967  |  starter alone would have been +0.001
Neutralising Angel Martínez to the qualified-population mean moves the club's KPI run forecast by 0.1855 runs, and the weighted stage by 0.0816. Interactions make these non-additive across players, so they do not sum to the published movement.
Travis Bazzana2BHitswhole staff0.868 → 0.879+0.0110.21690.2129n=506
Average
0.2242n=686
Below average
0.2202-0.015+0.028-0.000 ok
  splitstarter x1.0342 at 0.568 share (log5 0.2202 vs his 0.2242)  +  bullpen x0.9857 at 0.432 share (log5 0.2099 vs pen 0.2138)  =  x1.0133  |  starter alone would have been +0.030
Strikeoutswhole staff0.789 → 0.720-0.0690.22120.2087n=506
Average
0.1837n=686
Below average
0.1728-0.047-0.141+0.006 ok
  splitstarter x0.8281 at 0.568 share (log5 0.1728 vs his 0.1837)  +  bullpen x1.0249 at 0.432 share (log5 0.2139 vs pen 0.2266)  =  x0.9131  |  starter alone would have been -0.136
Walkswhole staff0.366 → 0.355-0.0110.08890.1033n=506
Good
0.0818n=686
Average
0.0952+0.054-0.027-0.004 ok
  splitstarter x0.9212 at 0.568 share (log5 0.0952 vs his 0.0818)  +  bullpen x1.0335 at 0.432 share (log5 0.1068 vs pen 0.0920)  =  x0.9697  |  starter alone would have been -0.029
Home runswhole staff0.100 → 0.097-0.0030.03040.0299n=506
Average
0.0305n=686
Average
0.0300-0.002+0.0010 ok
  splitstarter x1.0045 at 0.568 share (log5 0.0300 vs his 0.0305)  +  bullpen x0.917 at 0.432 share (log5 0.0274 vs pen 0.0279)  =  x0.9667  |  starter alone would have been +0.000
Neutralising Travis Bazzana to the qualified-population mean moves the club's KPI run forecast by 0.1652 runs, and the weighted stage by 0.0727. Interactions make these non-additive across players, so they do not sum to the published movement.
Patrick BaileyCHitswhole staff0.821 → 0.832+0.0110.21690.2062n=333
Below average
0.2242n=686
Below average
0.2133-0.039+0.027-0.001 ok
  splitstarter x1.0345 at 0.568 share (log5 0.2133 vs his 0.2242)  +  bullpen x0.9856 at 0.432 share (log5 0.2033 vs pen 0.2138)  =  x1.0134  |  starter alone would have been +0.028
Strikeoutswhole staff0.924 → 0.849-0.0750.22120.2666n=333
Below average
0.1837n=686
Below average
0.2236+0.167-0.138-0.020 ok
  splitstarter x0.8387 at 0.568 share (log5 0.2236 vs his 0.1837)  +  bullpen x1.0231 at 0.432 share (log5 0.2728 vs pen 0.2266)  =  x0.9183  |  starter alone would have been -0.149
Walkswhole staff0.330 → 0.319-0.0100.08890.0809n=333
Average
0.0818n=686
Average
0.0744-0.029-0.026+0.002 ok
  splitstarter x0.9194 at 0.568 share (log5 0.0744 vs his 0.0818)  +  bullpen x1.0344 at 0.432 share (log5 0.0837 vs pen 0.0920)  =  x0.9691  |  starter alone would have been -0.027
Home runswhole staff0.106 → 0.103-0.0040.03040.0302n=333
Average
0.0305n=686
Average
0.0303-0.001+0.0010 ok
  splitstarter x1.0045 at 0.568 share (log5 0.0303 vs his 0.0305)  +  bullpen x0.917 at 0.432 share (log5 0.0277 vs pen 0.0279)  =  x0.9667  |  starter alone would have been +0.001
Neutralising Patrick Bailey to the qualified-population mean moves the club's KPI run forecast by -0.0193 runs, and the weighted stage by -0.0085. Interactions make these non-additive across players, so they do not sum to the published movement.
Brayan RocchioSSHitswhole staff0.831 → 0.842+0.0110.21690.2238n=576
Average
0.2242n=686
Below average
0.2314+0.024+0.025+0.001 ok
  splitstarter x1.0337 at 0.568 share (log5 0.2314 vs his 0.2242)  +  bullpen x0.9859 at 0.432 share (log5 0.2207 vs pen 0.2138)  =  x1.0131  |  starter alone would have been +0.028
Strikeoutswhole staff0.509 → 0.462-0.0470.22120.1501n=576
Good
0.1837n=686
Below average
0.1227-0.246-0.130+0.035 ok
  splitstarter x0.8177 at 0.568 share (log5 0.1227 vs his 0.1837)  +  bullpen x1.0268 at 0.432 share (log5 0.1541 vs pen 0.2266)  =  x0.908  |  starter alone would have been -0.093
Walkswhole staff0.269 → 0.261-0.0080.08890.0699n=576
Below average
0.0818n=686
Average
0.0642-0.066-0.025+0.005 ok
  splitstarter x0.9185 at 0.568 share (log5 0.0642 vs his 0.0818)  +  bullpen x1.0348 at 0.432 share (log5 0.0723 vs pen 0.0920)  =  x0.9687  |  starter alone would have been -0.022
Home runswhole staff0.083 → 0.080-0.0030.03040.0250n=576
Below average
0.0305n=686
Average
0.0251-0.018+0.001-0.000 ok
  splitstarter x1.0045 at 0.568 share (log5 0.0251 vs his 0.0305)  +  bullpen x0.9166 at 0.432 share (log5 0.0229 vs pen 0.0279)  =  x0.9665  |  starter alone would have been +0.000
Neutralising Brayan Rocchio to the qualified-population mean moves the club's KPI run forecast by 0.1767 runs, and the weighted stage by 0.0778. Interactions make these non-additive across players, so they do not sum to the published movement.
STARTER Gavin Williams23.1868 BFStarterHits3.926 → 3.880-0.0460.21690.1978n=721
Good
0.21448/9 qualified
lineup mean
0.1955-0.442-0.058+0.004 ok
Strikeouts8.606 → 8.931+0.3240.22120.3179n=721
Very good
0.23088/9 qualified
lineup mean
0.3299+2.243+0.222+0.056 ok
Walks2.254 → 2.568+0.3140.08890.0854n=721
Average
0.10138/9 qualified
lineup mean
0.0973-0.082+0.286-0.010 ok
Home runs0.460 → 0.504+0.0440.03040.0330n=721
Below average
0.03338/9 qualified
lineup mean
0.0362+0.061+0.067+0.006 ok
RELIEVER Tim Herrin2.7015 BFMiddle RelieverHits0.868 → 0.858-0.0100.21690.2029n=237
Good
0.21448/9 qualified
lineup mean
0.2006-0.038-0.007+0.000 ok
Strikeouts0.974 → 1.015+0.0420.22120.2262n=237
Average
0.23088/9 qualified
lineup mean
0.2359+0.013+0.026+0.000 ok
Walks0.493 → 0.560+0.0670.08890.1065n=237
Below average
0.10138/9 qualified
lineup mean
0.1209+0.047+0.033+0.006 ok
Home runs0.070 → 0.077+0.0070.03040.0272n=237
Average
0.03338/9 qualified
lineup mean
0.0298-0.009+0.008-0.001 ok
RELIEVER Erik Sabrowski2.585 BFMiddle Reliever (High Leverage)Hits0.472 → 0.466-0.0060.21690.1819n=194
Very good
0.21448/9 qualified
lineup mean
0.1797-0.090-0.006+0.001 ok
Strikeouts1.588 → 1.646+0.0580.22120.3346n=194
Very good
0.23088/9 qualified
lineup mean
0.3469+0.293+0.025+0.007 ok
Walks0.662 → 0.750+0.0870.08890.1280n=194
Poor
0.10138/9 qualified
lineup mean
0.1449+0.101+0.032+0.012 ok
Home runs0.046 → 0.050+0.0040.03040.0259n=194
Good
0.03338/9 qualified
lineup mean
0.0284-0.012+0.007-0.001 ok
RELIEVER Daniel Espino2.5637 BFMiddle Reliever (High Leverage)Hits0.978 → 0.967-0.0110.21690.2169n=0
averagebelow floor
0.21448/9 qualified
lineup mean
0.21440-0.0060 ok
Strikeouts1.634 → 1.705+0.0710.22120.2212n=0
averagebelow floor
0.23088/9 qualified
lineup mean
0.23080+0.0250 ok
Walks0.396 → 0.451+0.0550.08890.0889n=0
averagebelow floor
0.10138/9 qualified
lineup mean
0.10130+0.0320 ok
Home runs0.182 → 0.199+0.0170.03040.0304n=0
averagebelow floor
0.03338/9 qualified
lineup mean
0.03330+0.0070 ok
RELIEVER Cade Smith2.5125 BFRelieverHits0.480 → 0.474-0.0060.21690.1909n=281
Very good
0.21448/9 qualified
lineup mean
0.1886-0.065-0.006+0.001 ok
Strikeouts0.833 → 0.864+0.0310.22120.3315n=281
Very good
0.23088/9 qualified
lineup mean
0.3437+0.277+0.024+0.007 ok
Walks0.195 → 0.222+0.0270.08890.0776n=281
Good
0.10138/9 qualified
lineup mean
0.0885-0.029+0.031-0.004 ok
Home runs0.064 → 0.070+0.0060.03040.0255n=281
Good
0.03338/9 qualified
lineup mean
0.0280-0.012+0.007-0.001 ok
RELIEVER Hunter Gaddis2.4898 BFRelieverHits0.532 → 0.526-0.0060.21690.2138n=252
Average
0.21448/9 qualified
lineup mean
0.2114-0.007-0.006+0.000 ok
Strikeouts0.553 → 0.577+0.0240.22120.2220n=252
Average
0.23088/9 qualified
lineup mean
0.2316+0.002+0.024+0.000 ok
Walks0.219 → 0.249+0.0300.08890.0879n=252
Average
0.10138/9 qualified
lineup mean
0.1001-0.003+0.031-0.000 ok
Home runs0.073 → 0.080+0.0070.03040.0294n=252
Average
0.03338/9 qualified
lineup mean
0.0323-0.002+0.007-0.000 ok
RELIEVER Shawn Armstrong0.7248 BFRelieverHits0.150 → 0.149-0.0020.21690.2076n=148
Average
0.21448/9 qualified
lineup mean
0.2052-0.007-0.002+0.000 ok
Strikeouts0.158 → 0.165+0.0070.22120.2180n=148
Average
0.23088/9 qualified
lineup mean
0.2274-0.002+0.007-0.000 ok
Walks0.076 → 0.086+0.0100.08890.1048n=148
Below average
0.10138/9 qualified
lineup mean
0.1190+0.011+0.009+0.001 ok
Home runs0.020 → 0.022+0.0020.03040.0279n=148
Average
0.03338/9 qualified
lineup mean
0.0305-0.002+0.002-0.000 ok
RELIEVER Matt Festa0.6338 BFRelieverHits0.139 → 0.138-0.0020.21690.2199n=278
Average
0.21448/9 qualified
lineup mean
0.2173+0.002-0.0020 ok
Strikeouts0.146 → 0.153+0.0060.22120.2310n=278
Average
0.23088/9 qualified
lineup mean
0.2408+0.006+0.006+0.000 ok
Walks0.051 → 0.058+0.0070.08890.0804n=278
Average
0.10138/9 qualified
lineup mean
0.0917-0.005+0.008-0.001 ok
Home runs0.017 → 0.019+0.0020.03040.0270n=278
Good
0.03338/9 qualified
lineup mean
0.0296-0.002+0.002-0.000 ok

Published pitching, integer draw beside the continuous model line

PitcherRoleBFIPexpected IPH int/contSO int/contBB int/contER int/contRate source
Anthony KayStarter20.74.24.6803 / 5.0843 / 3.5312 / 1.5551 / 2.568all_players_stats_recent_season_blend
Sean NewcombMiddle Reliever (High Leverage)8.52.02.0063 / 1.8892 / 1.4852 / 0.5623 / 0.819all_players_stats_recent_season_blend
Jordan HicksSetup Man4.51.11.0031 / 0.9122 / 1.2340 / 0.5990 / 0.488all_players_stats_recent_season_blend
Gavin WilliamsStarter23.25.25.6696 / 3.9267 / 8.6063 / 2.2544 / 1.922all_players_stats_recent_season_blend
Tim HerrinMiddle Reliever4.41.01.0000 / 0.8681 / 0.9740 / 0.4930 / 0.312all_players_stats_recent_season_blend
Daniel EspinoMiddle Reliever (High Leverage)4.41.01.0001 / 0.9781 / 1.6340 / 0.3960 / 0.320all_players_stats_recent_season_blend
Erik SabrowskiMiddle Reliever (High Leverage)4.11.11.0000 / 0.4721 / 1.5880 / 0.6620 / 0.262all_players_stats_recent_season_blend

Audit: NO DEFECT FOUND

InvariantVerdictEvidence
blend arithmetic away_runsPASS4.0000 + 0.78 x (3.6357 - 4.0000) = 3.7159, recorded 3.7159
blend arithmetic home_runsPASS5.0000 + 0.44 x (5.6188 - 5.0000) = 5.2723, recorded 5.2723
blend arithmetic home_winPASS0.5256 + 0.00 x (0.5791 - 0.5256) = 0.5256, recorded 0.5256
published rounding faithful to the blendPASSblended 3.7159-5.2723 rounds to 4-5, layer published 4-5
published probability on the score's sidePASS4-5 with p(home) 0.525603
Log5 additivity136 checksPASS136 of 136 pass
away club fields exactly one starterPASS1 starters in a staff of 3
away staff totals a regulation workloadPASS24 outs recorded, 24 expected
away starter carries a continuous linePASSexpected_IP 4.68
away starter batters faced inside the real bandPASSAnthony Kay projected 20.7 batters faced; real starters run p01-p99 4-30, median 23, mean 21.75
away reliever batters faced inside the real band2 checksPASS2 of 2 pass
home club fields exactly one starterPASS1 starters in a staff of 4
home staff totals a regulation workloadPASS27 outs recorded, 27 expected
home starter carries a continuous linePASSexpected_IP 5.669
home starter batters faced inside the real bandPASSGavin Williams projected 23.2 batters faced; real starters run p01-p99 4-30, median 23, mean 21.75
home reliever batters faced inside the real band3 checksPASS3 of 3 pass
away hitters satisfy every coherence rulePASS9 hitters checked; H<=AB, HR<=H, 2B+3B+HR<=H, SO<=AB, continuous line present
home hitters satisfy every coherence rulePASS9 hitters checked; H<=AB, HR<=H, 2B+3B+HR<=H, SO<=AB, continuous line present
20261005_NYY@TB — published 4-2, 157 checks, all pass
Artifact. 20261005_NYY@TB__20261006T023852Z.json, phase post_start_rerun, generated 2026-10-06T02:38:52, first pitch 2026-10-06T00:00:00.
Published 4 - 2 with p(home) 0.460388. Simulation draw chosen on not recorded; ? of ? draws realized the target exactly.

Stage chain: every stage that touched the score

StageScore afterΔ awayΔ homeCum. awayCum. homeChanged targetOwn adjustment and description
1. historical_ml4.864972693493641 - 2.99685240015669850000noBase ML historical model prediction
2. variance_applied5 - 3+0.1350+0.0031+0.1350+0.0031yesDeterministic baseline target (variance factor 1.0)
3. enhanced_prediction4 - 3-1.00000-0.8650+0.0031yesEnhanced ML with recent form, H2H, low-score analysis (confidence shrunk by matchup_recency_guardrail)
4. kpi_layer4 - 300-0.8650+0.0031noaway +0.3329; home +0.0510
Savant KPI blend applied to the model target
5. embedded_savant_run_environment4 - 20-1.0000-0.8650-0.9969yesaway +0.2682; home -0.7020
Target score adjusted by temporal Savant lineup quality versus opposing starter quality
6. fundamental_edge_target_review4 - 200-0.8650-0.9969noRefreshed score target and win probability after Savant/pitcher/team-strength adjustments
7. capped_target4 - 200-0.8650-0.9969noCapped at max 12 realistic runs
8. simulation_result4 - 2----noFinal inning-by-inning simulation result

A stage reporting its own adjustment while Changed target reads no computed a movement that a later reconciliation absorbed, or that rounded away at the integer score. That is recorded rather than hidden.

KPI team layer: the blend, with its arithmetic

TargetBaselineKPI onlyWeightBlendedComputationVerdict
away_runs4.00004.42680.784.33294.0000 + 0.78 × (4.4268 − 4.0000) = 4.3329PASS
home_runs3.00003.11600.443.05103.0000 + 0.44 × (3.1160 − 3.0000) = 3.0510PASS
home_win0.45340.68510.000.45340.4534 + 0.00 × (0.6851 − 0.4534) = 0.4534PASS

Published by the layer: away 4, home 3, p(home) 0.453398, continuous away 4.3329 / home 3.0510

Inputs and gates. candidate 20261005T125039Z_f5114dc0, value age 8 days, lineup coverage away 0.9064 / home 0.9942, movement cap 2.5 runs.
values_present ok values_fresh ok one_source_bundle ok lineup_coverage ok target_eligible ok movement_within_limit ok published_movement_within_limit ok

What drove the KPI forecast for away_runs

intercept 4.2573 + sum of contributions = 4.4268; prediction 4.4268; contributions outside the top listed -0.5952 runs

FeatureRawStandardisedRuns contributedWhich KPIs it is built from
home_off_power_spread1.57973.423+2.2318offence group (dispersion across the lineup, not its mean): batter_home_run_rate, batter_bat_speed
home_platoon_whiff0.88522.933-1.2609platoon term, selected by the opposing starter's throwing hand
home_x_fastball0.92234.653-1.1913batter x pitcher interaction: pitcher_whiff_rate_fastball, batter_whiff_rate_vs_fastball
away_off_contact0.57542.335+0.8940offence group: batter_barrel_rate_vs_fastball, batter_barrel_rate_vs_breaking, batter_barrel_rate_vs_offspeed, batter_hard_hit_rate_vs_fastball ...
home_off_qualified_share0.99422.043-0.7557share of the lineup carrying a qualifying sample, not a skill measurement
home_off_discipline0.75763.296+0.6733offence group: batter_whiff_rate_vs_fastball, batter_whiff_rate_vs_breaking, batter_whiff_rate_vs_offspeed, batter_strikeout_rate ...
home_x_breaking1.08536.021+0.5849batter x pitcher interaction: pitcher_whiff_rate_breaking, batter_whiff_rate_vs_breaking
home_off_ground_spread1.28472.859+0.5180offence group (dispersion across the lineup, not its mean): batter_ground_ball_rate_vs_slider, batter_ground_ball_rate_vs_fastball
away_off_worst3_discipline-1.0390-2.018-0.4701mean of the three weakest plate approaches
home_sp_velocity1.57942.236-0.4594starter group: pitcher_release_speed

What drove the KPI forecast for home_runs

intercept 4.2997 + sum of contributions = 3.1160; prediction 3.1160; contributions outside the top listed -0.3202 runs

FeatureRawStandardisedRuns contributedWhich KPIs it is built from
home_off_ground_spread1.28472.859+0.8403offence group (dispersion across the lineup, not its mean): batter_ground_ball_rate_vs_slider, batter_ground_ball_rate_vs_fastball
home_x_fastball0.92234.653-0.7820batter x pitcher interaction: pitcher_whiff_rate_fastball, batter_whiff_rate_vs_fastball
home_off_discipline0.75763.296-0.7751offence group: batter_whiff_rate_vs_fastball, batter_whiff_rate_vs_breaking, batter_whiff_rate_vs_offspeed, batter_strikeout_rate ...
home_sp_velocity1.57942.236+0.6970starter group: pitcher_release_speed
home_off_worst3_discipline0.02062.138+0.6437mean of the three weakest plate approaches
home_pen_minus_sp-0.4227-2.914-0.6244composite feature
home_off_contact_spread1.15192.556+0.4602offence group (dispersion across the lineup, not its mean): batter_barrel_rate_vs_fastball, batter_barrel_rate_vs_breaking, batter_barrel_rate_vs_offspeed, batter_hard_hit_rate_vs_fastball ...
away_off_top3_contact1.39952.117-0.4599mean of the three best contact bats, a tail a club mean cannot express
home_off_power_spread1.57973.423-0.4359offence group (dispersion across the lineup, not its mean): batter_home_run_rate, batter_bat_speed
home_sp_command1.02291.761-0.4276starter group: pitcher_strikeout_rate, pitcher_walk_rate

These are Ridge coefficients on standardised inputs, so each contribution is that feature's own push on the run forecast, in runs. They sum exactly to the prediction minus the intercept, which makes the list an accounting of the forecast rather than a ranking of vaguely important things.

Per-player metric movement

NYY against Ryan Yarbrough (LHP)

The pipeline applied one club-wide ×1.0832 to every NYY hitter line, identical for the leadoff hitter and the ninth bat.
Opposing staff exposure. These hitters face the starter for 21.6754 of 35.458 projected batters (61.1%) and the 3 projected relievers for the remaining 38.9%. Every metric below is the exposure-weighted blend of both matchups; the starter-only figure is shown beside it. Real 2026 game logs put a starter at 21.75 batters faced on average (median 23, p10-p90 17-27) and a whole staff at 37.9: this starter is inside that band and this staff is inside its. The per-player columns are the measured alternative: each subject moved by his own KPI pairing. Exposure for a hitter is his projected plate appearances; for the starter it is batters faced.

PlayerPosMetricPublished → KPIΔLeagueOwn rateOpponent rateLog5Own skillOpponentRemainder
Ben RiceDHHitswhole staff1.019 → 1.002-0.0170.21690.2240n=651
Average
0.2195n=730
Average
0.2267+0.031+0.011+0.000 ok
  splitstarter x1.012 at 0.611 share (log5 0.2267 vs his 0.2195)  +  bullpen x0.9379 at 0.389 share (log5 0.2101 vs pen 0.2033)  =  x0.9832  |  starter alone would have been +0.012
Strikeoutswhole staff0.946 → 0.952+0.0060.22120.2398n=651
Average
0.2144n=730
Average
0.2326+0.080-0.029-0.002 ok
  splitstarter x0.9701 at 0.611 share (log5 0.2326 vs his 0.2144)  +  bullpen x1.0624 at 0.389 share (log5 0.2547 vs pen 0.2354)  =  x1.006  |  starter alone would have been -0.028
Walkswhole staff0.499 → 0.467-0.0320.08890.1228n=651
Very good
0.0868n=730
Average
0.1200+0.145-0.009-0.003 ok
  splitstarter x0.9766 at 0.611 share (log5 0.1200 vs his 0.0868)  +  bullpen x0.8704 at 0.389 share (log5 0.1069 vs pen 0.0770)  =  x0.9353  |  starter alone would have been -0.012
Home runswhole staff0.275 → 0.279+0.0030.03040.0536n=651
Very good
0.0311n=730
Average
0.0548+0.099+0.003+0.002 ok
  splitstarter x1.0223 at 0.611 share (log5 0.0548 vs his 0.0311)  +  bullpen x0.9966 at 0.389 share (log5 0.0534 vs pen 0.0303)  =  x1.0123  |  starter alone would have been +0.006
Neutralising Ben Rice to the qualified-population mean moves the club's KPI run forecast by 0.1070 runs, and the weighted stage by 0.0835. Interactions make these non-additive across players, so they do not sum to the published movement.
Cody BellingerLFHitswhole staff1.087 → 1.069-0.0180.21690.2269n=549
Good
0.2195n=730
Average
0.2296+0.044+0.011+0.000 ok
  splitstarter x1.0119 at 0.611 share (log5 0.2296 vs his 0.2195)  +  bullpen x0.9381 at 0.389 share (log5 0.2129 vs pen 0.2033)  =  x0.9832  |  starter alone would have been +0.013
Strikeoutswhole staff0.704 → 0.709+0.0050.22120.1619n=549
Good
0.2144n=730
Average
0.1566-0.260-0.030+0.006 ok
  splitstarter x0.9672 at 0.611 share (log5 0.1566 vs his 0.2144)  +  bullpen x1.0693 at 0.389 share (log5 0.1731 vs pen 0.2354)  =  x1.0069  |  starter alone would have been -0.023
Walkswhole staff0.423 → 0.395-0.0280.08890.1027n=549
Good
0.0868n=730
Average
0.1002+0.060-0.009-0.001 ok
  splitstarter x0.9761 at 0.611 share (log5 0.1002 vs his 0.0868)  +  bullpen x0.8678 at 0.389 share (log5 0.0891 vs pen 0.0770)  =  x0.934  |  starter alone would have been -0.010
Home runswhole staff0.164 → 0.166+0.0020.03040.0295n=549
Average
0.0311n=730
Average
0.0302-0.004+0.003-0.000 ok
  splitstarter x1.0229 at 0.611 share (log5 0.0302 vs his 0.0311)  +  bullpen x0.9965 at 0.389 share (log5 0.0294 vs pen 0.0303)  =  x1.0126  |  starter alone would have been +0.004
Neutralising Cody Bellinger to the qualified-population mean moves the club's KPI run forecast by 0.6268 runs, and the weighted stage by 0.4889. Interactions make these non-additive across players, so they do not sum to the published movement.
Luis García Jr.1BHitswhole staff1.092 → 1.074-0.0180.21690.2435n=539
Very good
0.2195n=730
Average
0.2464+0.109+0.011+0.001 ok
  splitstarter x1.0117 at 0.611 share (log5 0.2464 vs his 0.2195)  +  bullpen x0.9393 at 0.389 share (log5 0.2288 vs pen 0.2033)  =  x0.9836  |  starter alone would have been +0.013
Strikeoutswhole staff0.760 → 0.765+0.0050.22120.1817n=539
Good
0.2144n=730
Average
0.1758-0.162-0.028+0.004 ok
  splitstarter x0.9679 at 0.611 share (log5 0.1758 vs his 0.2144)  +  bullpen x1.0675 at 0.389 share (log5 0.1939 vs pen 0.2354)  =  x1.0066  |  starter alone would have been -0.024
Walkswhole staff0.219 → 0.204-0.0150.08890.0541n=539
Poor
0.0868n=730
Average
0.0527-0.142-0.009+0.003 ok
  splitstarter x0.9749 at 0.611 share (log5 0.0527 vs his 0.0868)  +  bullpen x0.8616 at 0.389 share (log5 0.0466 vs pen 0.0770)  =  x0.9309  |  starter alone would have been -0.005
Home runswhole staff0.215 → 0.218+0.0030.03040.0473n=539
Very good
0.0311n=730
Average
0.0484+0.069+0.003+0.002 ok
  splitstarter x1.0224 at 0.611 share (log5 0.0484 vs his 0.0311)  +  bullpen x0.9966 at 0.389 share (log5 0.0472 vs pen 0.0303)  =  x1.0124  |  starter alone would have been +0.005
Neutralising Luis García Jr. to the qualified-population mean moves the club's KPI run forecast by 0.4351 runs, and the weighted stage by 0.3393. Interactions make these non-additive across players, so they do not sum to the published movement.
Spencer JonesRFHitswhole staff0.960 → 0.944-0.0160.21690.2177n=283
Average
0.2195n=730
Average
0.2204+0.004+0.0110 ok
  splitstarter x1.0121 at 0.611 share (log5 0.2204 vs his 0.2195)  +  bullpen x0.9374 at 0.389 share (log5 0.2041 vs pen 0.2033)  =  x0.9831  |  starter alone would have been +0.012
Strikeoutswhole staff1.384 → 1.391+0.0070.22120.3460n=283
Poor
0.2144n=730
Average
0.3371+0.512-0.028-0.009 ok
  splitstarter x0.9742 at 0.611 share (log5 0.3371 vs his 0.2144)  +  bullpen x1.0532 at 0.389 share (log5 0.3644 vs pen 0.2354)  =  x1.0049  |  starter alone would have been -0.036
Walkswhole staff0.342 → 0.319-0.0230.08890.0885n=283
Average
0.0868n=730
Average
0.0864-0.002-0.0090 ok
  splitstarter x0.9757 at 0.611 share (log5 0.0864 vs his 0.0868)  +  bullpen x0.866 at 0.389 share (log5 0.0767 vs pen 0.0770)  =  x0.9331  |  starter alone would have been -0.008
Home runswhole staff0.159 → 0.161+0.0020.03040.0348n=283
Average
0.0311n=730
Average
0.0356+0.018+0.003+0.000 ok
  splitstarter x1.0227 at 0.611 share (log5 0.0356 vs his 0.0311)  +  bullpen x0.9965 at 0.389 share (log5 0.0347 vs pen 0.0303)  =  x1.0125  |  starter alone would have been +0.004
Neutralising Spencer Jones to the qualified-population mean moves the club's KPI run forecast by -0.2804 runs, and the weighted stage by -0.2187. Interactions make these non-additive across players, so they do not sum to the published movement.
George Lombard Jr.SSHitswhole staff0.973 → 0.957-0.0170.21690.2169n=0
averagebelow floor
0.2195n=730
Average
0.21950+0.0110 ok
  splitstarter x1.0121 at 0.611 share (log5 0.2195 vs his 0.2195)  +  bullpen x0.9373 at 0.389 share (log5 0.2033 vs pen 0.2033)  =  x0.983  |  starter alone would have been +0.012
Strikeoutswhole staff1.028 → 1.034+0.0060.22120.2212n=0
averagebelow floor
0.2144n=730
Average
0.21440-0.0270 ok
  splitstarter x0.9694 at 0.611 share (log5 0.2144 vs his 0.2144)  +  bullpen x1.0641 at 0.389 share (log5 0.2354 vs pen 0.2354)  =  x1.0062  |  starter alone would have been -0.031
Walkswhole staff0.262 → 0.245-0.0180.08890.0889n=0
averagebelow floor
0.0868n=730
Average
0.08680-0.0090 ok
  splitstarter x0.9758 at 0.611 share (log5 0.0868 vs his 0.0868)  +  bullpen x0.866 at 0.389 share (log5 0.0770 vs pen 0.0770)  =  x0.9331  |  starter alone would have been -0.006
Home runswhole staff0.158 → 0.160+0.0020.03040.0304n=0
averagebelow floor
0.0311n=730
Average
0.03110+0.0030 ok
  splitstarter x1.0228 at 0.611 share (log5 0.0311 vs his 0.0311)  +  bullpen x0.9965 at 0.389 share (log5 0.0303 vs pen 0.0303)  =  x1.0126  |  starter alone would have been +0.004
Neutralising George Lombard Jr. to the qualified-population mean moves the club's KPI run forecast by -0.0767 runs, and the weighted stage by -0.0598. Interactions make these non-additive across players, so they do not sum to the published movement.
Jazz Chisholm Jr.2BHitswhole staff0.817 → 0.802-0.0140.21690.2095n=526
Below average
0.2195n=730
Average
0.2121-0.027+0.010-0.000 ok
  splitstarter x1.0122 at 0.611 share (log5 0.2121 vs his 0.2195)  +  bullpen x0.9368 at 0.389 share (log5 0.1963 vs pen 0.2033)  =  x0.9829  |  starter alone would have been +0.010
Strikeoutswhole staff1.039 → 1.044+0.0060.22120.2902n=526
Below average
0.2144n=730
Average
0.2821+0.258-0.025-0.005 ok
  splitstarter x0.9721 at 0.611 share (log5 0.2821 vs his 0.2144)  +  bullpen x1.0581 at 0.389 share (log5 0.3070 vs pen 0.2354)  =  x1.0055  |  starter alone would have been -0.029
Walkswhole staff0.363 → 0.339-0.0240.08890.1032n=526
Good
0.0868n=730
Average
0.1008+0.053-0.008-0.001 ok
  splitstarter x0.9761 at 0.611 share (log5 0.1008 vs his 0.0868)  +  bullpen x0.8679 at 0.389 share (log5 0.0896 vs pen 0.0770)  =  x0.934  |  starter alone would have been -0.009
Home runswhole staff0.153 → 0.155+0.0020.03040.0342n=526
Average
0.0311n=730
Average
0.0350+0.014+0.003+0.000 ok
  splitstarter x1.0227 at 0.611 share (log5 0.0350 vs his 0.0311)  +  bullpen x0.9965 at 0.389 share (log5 0.0341 vs pen 0.0303)  =  x1.0125  |  starter alone would have been +0.004
Neutralising Jazz Chisholm Jr. to the qualified-population mean moves the club's KPI run forecast by 0.0937 runs, and the weighted stage by 0.0731. Interactions make these non-additive across players, so they do not sum to the published movement.
Trent GrishamCFHitswhole staff0.791 → 0.778-0.0140.21690.1996n=474
Poor
0.2195n=730
Average
0.2021-0.066+0.010-0.001 ok
  splitstarter x1.0124 at 0.611 share (log5 0.2021 vs his 0.2195)  +  bullpen x0.936 at 0.389 share (log5 0.1868 vs pen 0.2033)  =  x0.9827  |  starter alone would have been +0.010
Strikeoutswhole staff0.722 → 0.726+0.0050.22120.1871n=474
Good
0.2144n=730
Average
0.1811-0.131-0.026+0.003 ok
  splitstarter x0.9681 at 0.611 share (log5 0.1811 vs his 0.2144)  +  bullpen x1.0671 at 0.389 share (log5 0.1996 vs pen 0.2354)  =  x1.0066  |  starter alone would have been -0.023
Walkswhole staff0.416 → 0.389-0.0270.08890.1190n=474
Very good
0.0868n=730
Average
0.1162+0.115-0.008-0.002 ok
  splitstarter x0.9765 at 0.611 share (log5 0.1162 vs his 0.0868)  +  bullpen x0.8699 at 0.389 share (log5 0.1035 vs pen 0.0770)  =  x0.9351  |  starter alone would have been -0.010
Home runswhole staff0.136 → 0.137+0.0020.03040.0339n=474
Average
0.0311n=730
Average
0.0347+0.013+0.003+0.000 ok
  splitstarter x1.0228 at 0.611 share (log5 0.0347 vs his 0.0311)  +  bullpen x0.9965 at 0.389 share (log5 0.0338 vs pen 0.0303)  =  x1.0126  |  starter alone would have been +0.003
Neutralising Trent Grisham to the qualified-population mean moves the club's KPI run forecast by 0.5213 runs, and the weighted stage by 0.4066. Interactions make these non-additive across players, so they do not sum to the published movement.
Austin WellsCHitswhole staff0.674 → 0.662-0.0120.21690.1904n=387
Poor
0.2195n=730
Average
0.1927-0.087+0.009-0.001 ok
  splitstarter x1.0125 at 0.611 share (log5 0.1927 vs his 0.2195)  +  bullpen x0.9353 at 0.389 share (log5 0.1780 vs pen 0.2033)  =  x0.9825  |  starter alone would have been +0.008
Strikeoutswhole staff0.790 → 0.794+0.0050.22120.2588n=387
Below average
0.2144n=730
Average
0.2513+0.123-0.022-0.003 ok
  splitstarter x0.9709 at 0.611 share (log5 0.2513 vs his 0.2144)  +  bullpen x1.0608 at 0.389 share (log5 0.2746 vs pen 0.2354)  =  x1.0058  |  starter alone would have been -0.023
Walkswhole staff0.348 → 0.325-0.0230.08890.1158n=387
Good
0.0868n=730
Average
0.1130+0.088-0.007-0.002 ok
  splitstarter x0.9765 at 0.611 share (log5 0.1130 vs his 0.0868)  +  bullpen x0.8695 at 0.389 share (log5 0.1007 vs pen 0.0770)  =  x0.9349  |  starter alone would have been -0.008
Home runswhole staff0.121 → 0.123+0.0020.03040.0338n=387
Average
0.0311n=730
Average
0.0346+0.011+0.002+0.000 ok
  splitstarter x1.0228 at 0.611 share (log5 0.0346 vs his 0.0311)  +  bullpen x0.9965 at 0.389 share (log5 0.0337 vs pen 0.0303)  =  x1.0126  |  starter alone would have been +0.003
Neutralising Austin Wells to the qualified-population mean moves the club's KPI run forecast by 0.1437 runs, and the weighted stage by 0.1121. Interactions make these non-additive across players, so they do not sum to the published movement.
Ryan McMahon3BHitswhole staff0.701 → 0.689-0.0120.21690.2083n=354
Below average
0.2195n=730
Average
0.2109-0.028+0.009-0.000 ok
  splitstarter x1.0122 at 0.611 share (log5 0.2109 vs his 0.2195)  +  bullpen x0.9367 at 0.389 share (log5 0.1951 vs pen 0.2033)  =  x0.9829  |  starter alone would have been +0.009
Strikeoutswhole staff0.908 → 0.913+0.0050.22120.2850n=354
Below average
0.2144n=730
Average
0.2770+0.211-0.022-0.004 ok
  splitstarter x0.9719 at 0.611 share (log5 0.2770 vs his 0.2144)  +  bullpen x1.0585 at 0.389 share (log5 0.3017 vs pen 0.2354)  =  x1.0056  |  starter alone would have been -0.026
Walkswhole staff0.262 → 0.244-0.0180.08890.0816n=354
Average
0.0868n=730
Average
0.0796-0.024-0.007+0.001 ok
  splitstarter x0.9756 at 0.611 share (log5 0.0796 vs his 0.0868)  +  bullpen x0.8651 at 0.389 share (log5 0.0706 vs pen 0.0770)  =  x0.9326  |  starter alone would have been -0.006
Home runswhole staff0.106 → 0.107+0.0010.03040.0308n=354
Average
0.0311n=730
Average
0.0315+0.001+0.0020 ok
  splitstarter x1.0228 at 0.611 share (log5 0.0315 vs his 0.0311)  +  bullpen x0.9965 at 0.389 share (log5 0.0307 vs pen 0.0303)  =  x1.0126  |  starter alone would have been +0.002
Neutralising Ryan McMahon to the qualified-population mean moves the club's KPI run forecast by 0.0599 runs, and the weighted stage by 0.0467. Interactions make these non-additive across players, so they do not sum to the published movement.
STARTER Cam Schlittler21.4633 BFStarterHits2.854 → 3.050+0.1960.21690.1805n=741
Very good
0.23119/9 qualified
lineup mean
0.1929-0.781+0.305-0.039 ok
Strikeouts7.006 → 5.737-1.2680.22120.3029n=741
Very good
0.17749/9 qualified
lineup mean
0.2481+1.753-0.941-0.237 ok
Walks1.500 → 1.497-0.0030.08890.0701n=741
Good
0.08879/9 qualified
lineup mean
0.0700-0.404-0.004+0.001 ok
Home runs0.294 → 0.295+0.0010.03040.0249n=741
Good
0.03059/9 qualified
lineup mean
0.0250-0.118+0.002-0.000 ok
RELIEVER Will Warren2.7878 BFRelieverHits0.639 → 0.680+0.0410.21690.2293n=673
Below average
0.23119/9 qualified
lineup mean
0.2441+0.035+0.040+0.002 ok
Strikeouts0.647 → 0.520-0.1270.22120.2320n=673
Average
0.17749/9 qualified
lineup mean
0.1866+0.030-0.122-0.004 ok
Walks0.225 → 0.225-0.0010.08890.0807n=673
Average
0.08879/9 qualified
lineup mean
0.0805-0.023-0.0010 ok
Home runs0.086 → 0.086+0.0000.03040.0309n=673
Average
0.03059/9 qualified
lineup mean
0.0310+0.001+0.0000 ok
RELIEVER David Bednar2.5888 BFRelieverHits0.525 → 0.560+0.0350.21690.2027n=277
Good
0.23119/9 qualified
lineup mean
0.2163-0.037+0.037-0.002 ok
Strikeouts0.679 → 0.551-0.1290.22120.2624n=277
Good
0.17749/9 qualified
lineup mean
0.2127+0.107-0.113-0.015 ok
Walks0.203 → 0.202-0.0000.08890.0783n=277
Good
0.08879/9 qualified
lineup mean
0.0781-0.028-0.001+0.000 ok
Home runs0.063 → 0.063+0.0000.03040.0243n=277
Very good
0.03059/9 qualified
lineup mean
0.0244-0.016+0.000-0.000 ok
RELIEVER Paul Blackburn2.5785 BFMiddle Reliever (High Leverage)Hits0.914 → 0.975+0.0610.21690.1987n=329
Good
0.23119/9 qualified
lineup mean
0.2120-0.047+0.037-0.002 ok
Strikeouts0.848 → 0.677-0.1710.22120.2046n=329
Average
0.17749/9 qualified
lineup mean
0.1634-0.043-0.113+0.007 ok
Walks0.465 → 0.464-0.0010.08890.0946n=329
Average
0.08879/9 qualified
lineup mean
0.0944+0.015-0.0010 ok
Home runs0.067 → 0.067+0.0000.03040.0265n=329
Good
0.03059/9 qualified
lineup mean
0.0266-0.010+0.0000 ok
RELIEVER Brent Headrick2.4959 BFSetup ManHits0.585 → 0.624+0.0390.21690.2125n=326
Average
0.23119/9 qualified
lineup mean
0.2265-0.011+0.035-0.001 ok
Strikeouts0.757 → 0.617-0.1400.22120.2849n=326
Very good
0.17749/9 qualified
lineup mean
0.2323+0.159-0.109-0.022 ok
Walks0.329 → 0.329-0.0010.08890.0848n=326
Average
0.08879/9 qualified
lineup mean
0.0846-0.010-0.0010 ok
Home runs0.068 → 0.068+0.0000.03040.0240n=326
Very good
0.03059/9 qualified
lineup mean
0.0241-0.016+0.000-0.000 ok
RELIEVER John Schreiber2.2453 BFMiddle Reliever (High Leverage)Hits0.908 → 0.968+0.0600.21690.2088n=246
Average
0.23119/9 qualified
lineup mean
0.2227-0.018+0.032-0.001 ok
Strikeouts0.591 → 0.469-0.1220.22120.1770n=246
Below average
0.17749/9 qualified
lineup mean
0.1404-0.099-0.098+0.016 ok
Walks0.340 → 0.340-0.0010.08890.0991n=246
Below average
0.08879/9 qualified
lineup mean
0.0989+0.023-0.0000 ok
Home runs0.091 → 0.091+0.0000.03040.0297n=246
Average
0.03059/9 qualified
lineup mean
0.0298-0.002+0.0000 ok
RELIEVER Ryan Weathers1.6748 BFRelieverHits0.377 → 0.401+0.0240.21690.2248n=568
Below average
0.23119/9 qualified
lineup mean
0.2393+0.013+0.024+0.001 ok
Strikeouts0.415 → 0.335-0.0800.22120.2480n=568
Good
0.17749/9 qualified
lineup mean
0.2002+0.045-0.073-0.007 ok
Walks0.120 → 0.120-0.0000.08890.0717n=568
Good
0.08879/9 qualified
lineup mean
0.0715-0.029-0.000+0.000 ok
Home runs0.052 → 0.052+0.0000.03040.0311n=568
Average
0.03059/9 qualified
lineup mean
0.0312+0.001+0.0000 ok
RELIEVER Ryan Yarbrough0.3715 BFRelieverHits0.077 → 0.082+0.0050.21690.2080n=253
Average
0.23119/9 qualified
lineup mean
0.2218-0.003+0.005-0.000 ok
Strikeouts0.072 → 0.058-0.0150.22120.1943n=253
Below average
0.17749/9 qualified
lineup mean
0.1548-0.010-0.016+0.002 ok
Walks0.032 → 0.032-0.0000.08890.0853n=253
Average
0.08879/9 qualified
lineup mean
0.0851-0.001-0.0000 ok
Home runs0.009 → 0.00900.03040.0237n=253
Very good
0.03059/9 qualified
lineup mean
0.0238-0.00300 ok

TB against Tyler Wells (RHP)

The pipeline applied no club-wide rescale to TB hitter lines.
Opposing staff exposure. These hitters face the starter for 21.4633 of 36.206 projected batters (59.3%) and the 3 projected relievers for the remaining 40.7%. Every metric below is the exposure-weighted blend of both matchups; the starter-only figure is shown beside it. Real 2026 game logs put a starter at 21.75 batters faced on average (median 23, p10-p90 17-27) and a whole staff at 37.9: this starter is inside that band and this staff is inside its. The per-player columns are the measured alternative: each subject moved by his own KPI pairing. Exposure for a hitter is his projected plate appearances; for the starter it is batters faced.

PlayerPosMetricPublished → KPIΔLeagueOwn rateOpponent rateLog5Own skillOpponentRemainder
Yandy DíazDHHitswhole staff0.949 → 0.850-0.0990.21690.2464n=678
Very good
0.1805n=741
Very good
0.2063+0.129-0.159-0.016 ok
  splitstarter x0.8374 at 0.593 share (log5 0.2063 vs his 0.1805)  +  bullpen x0.9796 at 0.407 share (log5 0.2413 vs pen 0.2123)  =  x0.8953  |  starter alone would have been -0.154
Strikeoutswhole staff0.881 → 1.123+0.2420.22120.1455n=678
Very good
0.3029n=741
Very good
0.2067-0.330+0.356-0.089 ok
  splitstarter x1.4203 at 0.593 share (log5 0.2067 vs his 0.3029)  +  bullpen x1.0639 at 0.407 share (log5 0.1548 vs pen 0.2340)  =  x1.2752  |  starter alone would have been +0.370
Walkswhole staff0.280 → 0.240-0.0400.08890.0835n=678
Average
0.0701n=741
Good
0.0658-0.024-0.082+0.005 ok
  splitstarter x0.7876 at 0.593 share (log5 0.0658 vs his 0.0701)  +  bullpen x0.9589 at 0.407 share (log5 0.0801 vs pen 0.0853)  =  x0.8574  |  starter alone would have been -0.059
Home runswhole staff0.139 → 0.119-0.0200.03040.0319n=678
Average
0.0249n=741
Good
0.0261+0.006-0.024-0.001 ok
  splitstarter x0.8197 at 0.593 share (log5 0.0261 vs his 0.0249)  +  bullpen x0.904 at 0.407 share (log5 0.0288 vs pen 0.0275)  =  x0.854  |  starter alone would have been -0.025
Neutralising Yandy Díaz to the qualified-population mean moves the club's KPI run forecast by -0.1520 runs, and the weighted stage by -0.0669. Interactions make these non-additive across players, so they do not sum to the published movement.
Jonathan Aranda1BHitswhole staff0.848 → 0.758-0.0900.21690.2302n=661
Good
0.1805n=741
Very good
0.1921+0.056-0.152-0.007 ok
  splitstarter x0.8345 at 0.593 share (log5 0.1921 vs his 0.1805)  +  bullpen x0.9791 at 0.407 share (log5 0.2254 vs pen 0.2123)  =  x0.8934  |  starter alone would have been -0.140
Strikeoutswhole staff1.316 → 1.623+0.3080.22120.2420n=661
Average
0.3029n=741
Very good
0.3282+0.087+0.341+0.019 ok
  splitstarter x1.3559 at 0.593 share (log5 0.3282 vs his 0.3029)  +  bullpen x1.0562 at 0.407 share (log5 0.2557 vs pen 0.2340)  =  x1.2339  |  starter alone would have been +0.468
Walkswhole staff0.341 → 0.293-0.0480.08890.1007n=661
Good
0.0701n=741
Good
0.0797+0.049-0.079-0.009 ok
  splitstarter x0.7908 at 0.593 share (log5 0.0797 vs his 0.0701)  +  bullpen x0.9597 at 0.407 share (log5 0.0967 vs pen 0.0853)  =  x0.8596  |  starter alone would have been -0.071
Home runswhole staff0.144 → 0.123-0.0210.03040.0325n=661
Average
0.0249n=741
Good
0.0266+0.009-0.023-0.002 ok
  splitstarter x0.8198 at 0.593 share (log5 0.0266 vs his 0.0249)  +  bullpen x0.9041 at 0.407 share (log5 0.0293 vs pen 0.0275)  =  x0.8541  |  starter alone would have been -0.026
Neutralising Jonathan Aranda to the qualified-population mean moves the club's KPI run forecast by 0.2774 runs, and the weighted stage by 0.1221. Interactions make these non-additive across players, so they do not sum to the published movement.
Junior Caminero3BHitswhole staff0.852 → 0.762-0.0910.21690.2330n=695
Good
0.1805n=741
Very good
0.1945+0.065-0.146-0.008 ok
  splitstarter x0.835 at 0.593 share (log5 0.1945 vs his 0.1805)  +  bullpen x0.9792 at 0.407 share (log5 0.2281 vs pen 0.2123)  =  x0.8937  |  starter alone would have been -0.141
Strikeoutswhole staff0.901 → 1.133+0.2320.22120.1853n=695
Good
0.3029n=741
Very good
0.2581-0.144+0.328-0.036 ok
  splitstarter x1.393 at 0.593 share (log5 0.2581 vs his 0.3029)  +  bullpen x1.0607 at 0.407 share (log5 0.1965 vs pen 0.2340)  =  x1.2577  |  starter alone would have been +0.354
Walkswhole staff0.339 → 0.292-0.0470.08890.1100n=695
Good
0.0701n=741
Good
0.0872+0.085-0.075-0.016 ok
  splitstarter x0.7925 at 0.593 share (log5 0.0872 vs his 0.0701)  +  bullpen x0.9601 at 0.407 share (log5 0.1057 vs pen 0.0853)  =  x0.8607  |  starter alone would have been -0.070
Home runswhole staff0.229 → 0.196-0.0330.03040.0522n=695
Very good
0.0249n=741
Good
0.0429+0.087-0.022-0.015 ok
  splitstarter x0.8228 at 0.593 share (log5 0.0429 vs his 0.0249)  +  bullpen x0.9059 at 0.407 share (log5 0.0472 vs pen 0.0275)  =  x0.8566  |  starter alone would have been -0.041
Neutralising Junior Caminero to the qualified-population mean moves the club's KPI run forecast by -0.0804 runs, and the weighted stage by -0.0354. Interactions make these non-additive across players, so they do not sum to the published movement.
Liam HicksCHitswhole staff0.829 → 0.741-0.0880.21690.2335n=551
Good
0.1805n=741
Very good
0.1950+0.066-0.143-0.008 ok
  splitstarter x0.8351 at 0.593 share (log5 0.1950 vs his 0.1805)  +  bullpen x0.9792 at 0.407 share (log5 0.2287 vs pen 0.2123)  =  x0.8938  |  starter alone would have been -0.137
Strikeoutswhole staff0.515 → 0.665+0.1500.22120.1080n=551
Very good
0.3029n=741
Very good
0.1563-0.445+0.321-0.131 ok
  splitstarter x1.447 at 0.593 share (log5 0.1563 vs his 0.3029)  +  bullpen x1.0669 at 0.407 share (log5 0.1152 vs pen 0.2340)  =  x1.2922  |  starter alone would have been +0.230
Walkswhole staff0.321 → 0.276-0.0450.08890.0994n=551
Average
0.0701n=741
Good
0.0786+0.041-0.074-0.008 ok
  splitstarter x0.7905 at 0.593 share (log5 0.0786 vs his 0.0701)  +  bullpen x0.9596 at 0.407 share (log5 0.0954 vs pen 0.0853)  =  x0.8594  |  starter alone would have been -0.067
Home runswhole staff0.136 → 0.116-0.0200.03040.0319n=551
Average
0.0249n=741
Good
0.0262+0.006-0.022-0.001 ok
  splitstarter x0.8197 at 0.593 share (log5 0.0262 vs his 0.0249)  +  bullpen x0.904 at 0.407 share (log5 0.0289 vs pen 0.0275)  =  x0.854  |  starter alone would have been -0.025
Neutralising Liam Hicks to the qualified-population mean moves the club's KPI run forecast by -0.0260 runs, and the weighted stage by -0.0115. Interactions make these non-additive across players, so they do not sum to the published movement.
Chandler SimpsonLFHitswhole staff0.970 → 0.870-0.1000.21690.2576n=606
Very good
0.1805n=741
Very good
0.2162+0.162-0.145-0.020 ok
  splitstarter x0.8394 at 0.593 share (log5 0.2162 vs his 0.1805)  +  bullpen x0.9799 at 0.407 share (log5 0.2524 vs pen 0.2123)  =  x0.8966  |  starter alone would have been -0.156
Strikeoutswhole staff0.451 → 0.587+0.1360.22120.0898n=606
Very good
0.3029n=741
Very good
0.1311-0.524+0.326-0.161 ok
  splitstarter x1.4603 at 0.593 share (log5 0.1311 vs his 0.3029)  +  bullpen x1.0683 at 0.407 share (log5 0.0959 vs pen 0.2340)  =  x1.3007  |  starter alone would have been +0.208
Walkswhole staff0.167 → 0.143-0.0250.08890.0505n=606
Poor
0.0701n=741
Good
0.0394-0.153-0.075+0.031 ok
  splitstarter x0.7816 at 0.593 share (log5 0.0394 vs his 0.0701)  +  bullpen x0.9575 at 0.407 share (log5 0.0483 vs pen 0.0853)  =  x0.8532  |  starter alone would have been -0.037
Home runswhole staff0.038 → 0.032-0.0060.03040.0092n=606
Poor
0.0249n=741
Good
0.0075-0.084-0.022+0.015 ok
  splitstarter x0.8162 at 0.593 share (log5 0.0075 vs his 0.0249)  +  bullpen x0.902 at 0.407 share (log5 0.0083 vs pen 0.0275)  =  x0.8511  |  starter alone would have been -0.007
Neutralising Chandler Simpson to the qualified-population mean moves the club's KPI run forecast by -0.0661 runs, and the weighted stage by -0.0291. Interactions make these non-additive across players, so they do not sum to the published movement.
Victor Mesa Jr.RFHitswhole staff0.801 → 0.715-0.0860.21690.2223n=259
Average
0.1805n=741
Very good
0.1852+0.021-0.140-0.003 ok
  splitstarter x0.8331 at 0.593 share (log5 0.1852 vs his 0.1805)  +  bullpen x0.9789 at 0.407 share (log5 0.2177 vs pen 0.2123)  =  x0.8925  |  starter alone would have been -0.134
Strikeoutswhole staff0.986 → 1.231+0.2450.22120.2073n=259
Average
0.3029n=741
Very good
0.2857-0.053+0.313-0.013 ok
  splitstarter x1.3784 at 0.593 share (log5 0.2857 vs his 0.3029)  +  bullpen x1.059 at 0.407 share (log5 0.2195 vs pen 0.2340)  =  x1.2483  |  starter alone would have been +0.373
Walkswhole staff0.265 → 0.228-0.0380.08890.0888n=259
Average
0.0701n=741
Good
0.0701-0.000-0.072+0.000 ok
  splitstarter x0.7886 at 0.593 share (log5 0.0701 vs his 0.0701)  +  bullpen x0.9591 at 0.407 share (log5 0.0852 vs pen 0.0853)  =  x0.858  |  starter alone would have been -0.056
Home runswhole staff0.177 → 0.152-0.0260.03040.0421n=259
Good
0.0249n=741
Good
0.0346+0.045-0.021-0.008 ok
  splitstarter x0.8212 at 0.593 share (log5 0.0346 vs his 0.0249)  +  bullpen x0.905 at 0.407 share (log5 0.0381 vs pen 0.0275)  =  x0.8553  |  starter alone would have been -0.032
Neutralising Victor Mesa Jr. to the qualified-population mean moves the club's KPI run forecast by 0.5287 runs, and the weighted stage by 0.2326. Interactions make these non-additive across players, so they do not sum to the published movement.
Jonny DeLucaCFHitswhole staff0.823 → 0.736-0.0870.21690.2346n=363
Good
0.1805n=741
Very good
0.1960+0.067-0.137-0.008 ok
  splitstarter x0.8353 at 0.593 share (log5 0.1960 vs his 0.1805)  +  bullpen x0.9793 at 0.407 share (log5 0.2298 vs pen 0.2123)  =  x0.8939  |  starter alone would have been -0.136
Strikeoutswhole staff1.039 → 1.294+0.2550.22120.2132n=363
Average
0.3029n=741
Very good
0.2930-0.030+0.306-0.007 ok
  splitstarter x1.3745 at 0.593 share (log5 0.2930 vs his 0.3029)  +  bullpen x1.0585 at 0.407 share (log5 0.2257 vs pen 0.2340)  =  x1.2458  |  starter alone would have been +0.389
Walkswhole staff0.169 → 0.144-0.0250.08890.0572n=363
Poor
0.0701n=741
Good
0.0448-0.119-0.070+0.024 ok
  splitstarter x0.7828 at 0.593 share (log5 0.0448 vs his 0.0701)  +  bullpen x0.9578 at 0.407 share (log5 0.0548 vs pen 0.0853)  =  x0.8541  |  starter alone would have been -0.037
Home runswhole staff0.126 → 0.108-0.0180.03040.0303n=363
Average
0.0249n=741
Good
0.0249-0.000-0.0210 ok
  splitstarter x0.8194 at 0.593 share (log5 0.0249 vs his 0.0249)  +  bullpen x0.9039 at 0.407 share (log5 0.0274 vs pen 0.0275)  =  x0.8538  |  starter alone would have been -0.023
Neutralising Jonny DeLuca to the qualified-population mean moves the club's KPI run forecast by 0.2032 runs, and the weighted stage by 0.0894. Interactions make these non-additive across players, so they do not sum to the published movement.
Richie Palacios2BHitswhole staff0.699 → 0.623-0.0760.21690.2110n=396
Average
0.1805n=741
Very good
0.1754-0.020-0.126+0.003 ok
  splitstarter x0.8311 at 0.593 share (log5 0.1754 vs his 0.1805)  +  bullpen x0.9786 at 0.407 share (log5 0.2065 vs pen 0.2123)  =  x0.8912  |  starter alone would have been -0.118
Strikeoutswhole staff0.695 → 0.877+0.1820.22120.1749n=396
Good
0.3029n=741
Very good
0.2448-0.160+0.283-0.041 ok
  splitstarter x1.4 at 0.593 share (log5 0.2448 vs his 0.3029)  +  bullpen x1.0615 at 0.407 share (log5 0.1856 vs pen 0.2340)  =  x1.2622  |  starter alone would have been +0.278
Walkswhole staff0.305 → 0.263-0.0430.08890.1099n=396
Good
0.0701n=741
Good
0.0871+0.072-0.065-0.014 ok
  splitstarter x0.7925 at 0.593 share (log5 0.0871 vs his 0.0701)  +  bullpen x0.96 at 0.407 share (log5 0.1055 vs pen 0.0853)  =  x0.8607  |  starter alone would have been -0.063
Home runswhole staff0.098 → 0.084-0.0140.03040.0273n=396
Average
0.0249n=741
Good
0.0224-0.011-0.019+0.002 ok
  splitstarter x0.819 at 0.593 share (log5 0.0224 vs his 0.0249)  +  bullpen x0.9036 at 0.407 share (log5 0.0247 vs pen 0.0275)  =  x0.8534  |  starter alone would have been -0.018
Neutralising Richie Palacios to the qualified-population mean moves the club's KPI run forecast by 0.0866 runs, and the weighted stage by 0.0381. Interactions make these non-additive across players, so they do not sum to the published movement.
Taylor WallsSSHitswhole staff0.664 → 0.591-0.0730.21690.2028n=430
Below average
0.1805n=741
Very good
0.1682-0.048-0.124+0.006 ok
  splitstarter x0.8296 at 0.593 share (log5 0.1682 vs his 0.1805)  +  bullpen x0.9784 at 0.407 share (log5 0.1984 vs pen 0.2123)  =  x0.8902  |  starter alone would have been -0.113
Strikeoutswhole staff1.033 → 1.274+0.2420.22120.2418n=430
Average
0.3029n=741
Very good
0.3280+0.070+0.278+0.015 ok
  splitstarter x1.356 at 0.593 share (log5 0.3280 vs his 0.3029)  +  bullpen x1.0563 at 0.407 share (log5 0.2555 vs pen 0.2340)  =  x1.234  |  starter alone would have been +0.368
Walkswhole staff0.285 → 0.245-0.0400.08890.1012n=430
Good
0.0701n=741
Good
0.0801+0.042-0.064-0.008 ok
  splitstarter x0.7909 at 0.593 share (log5 0.0801 vs his 0.0701)  +  bullpen x0.9597 at 0.407 share (log5 0.0972 vs pen 0.0853)  =  x0.8596  |  starter alone would have been -0.060
Home runswhole staff0.051 → 0.043-0.0080.03040.0144n=430
Poor
0.0249n=741
Good
0.0118-0.054-0.019+0.010 ok
  splitstarter x0.817 at 0.593 share (log5 0.0118 vs his 0.0249)  +  bullpen x0.9025 at 0.407 share (log5 0.0130 vs pen 0.0275)  =  x0.8518  |  starter alone would have been -0.009
Neutralising Taylor Walls to the qualified-population mean moves the club's KPI run forecast by 0.0184 runs, and the weighted stage by 0.0081. Interactions make these non-additive across players, so they do not sum to the published movement.
STARTER Freddy Peralta21.6754 BFStarterHits3.814 → 3.803-0.0110.21690.2195n=730
Average
0.21638/9 qualified
lineup mean
0.2189+0.057-0.013-0.000 ok
Strikeouts4.724 → 5.113+0.3890.22120.2144n=730
Average
0.23928/9 qualified
lineup mean
0.2321-0.147+0.391-0.008 ok
Walks1.829 → 2.002+0.1730.08890.0868n=730
Average
0.09738/9 qualified
lineup mean
0.0950-0.047+0.181-0.004 ok
Home runs0.398 → 0.481+0.0830.03040.0311n=730
Average
0.03688/9 qualified
lineup mean
0.0376+0.015+0.138+0.003 ok
RELIEVER Bryan Baker4.0796 BFCloserHits0.547 → 0.545-0.0020.21690.1836n=244
Very good
0.21638/9 qualified
lineup mean
0.1831-0.136-0.003+0.000 ok
Strikeouts0.960 → 1.036+0.0750.22120.2490n=244
Good
0.23928/9 qualified
lineup mean
0.2686+0.114+0.073+0.006 ok
Walks0.292 → 0.319+0.0280.08890.0897n=244
Average
0.09738/9 qualified
lineup mean
0.0981+0.003+0.034+0.000 ok
Home runs0.049 → 0.059+0.0100.03040.0254n=244
Good
0.03688/9 qualified
lineup mean
0.0308-0.020+0.026-0.004 ok
RELIEVER Steven Matz2.8075 BFMiddle RelieverHits1.145 → 1.142-0.0030.21690.2166n=342
Average
0.21638/9 qualified
lineup mean
0.2160-0.001-0.0020 ok
Strikeouts1.141 → 1.238+0.0980.22120.1865n=342
Below average
0.23928/9 qualified
lineup mean
0.2024-0.097+0.051-0.006 ok
Walks0.305 → 0.334+0.0290.08890.0781n=342
Good
0.09738/9 qualified
lineup mean
0.0855-0.030+0.024-0.003 ok
Home runs0.240 → 0.290+0.0500.03040.0362n=342
Poor
0.03688/9 qualified
lineup mean
0.0438+0.016+0.018+0.003 ok
RELIEVER Cole Sulser2.383 BFSetup ManHits0.855 → 0.853-0.0020.21690.2203n=236
Average
0.21638/9 qualified
lineup mean
0.2197+0.008-0.0010 ok
Strikeouts1.099 → 1.187+0.0880.22120.2332n=236
Average
0.23928/9 qualified
lineup mean
0.2519+0.029+0.043+0.002 ok
Walks0.312 → 0.342+0.0300.08890.0788n=236
Good
0.09738/9 qualified
lineup mean
0.0863-0.024+0.020-0.002 ok
Home runs0.104 → 0.126+0.0220.03040.0301n=236
Average
0.03688/9 qualified
lineup mean
0.0365-0.001+0.015-0.000 ok
RELIEVER Cam Booser1.6856 BFRelieverHits0.336 → 0.335-0.0010.21690.1990n=152
Good
0.21638/9 qualified
lineup mean
0.1985-0.030-0.001+0.000 ok
Strikeouts0.455 → 0.490+0.0350.22120.2702n=152
Good
0.23928/9 qualified
lineup mean
0.2907+0.083+0.030+0.004 ok
Walks0.109 → 0.119+0.0110.08890.0646n=152
Very good
0.09738/9 qualified
lineup mean
0.0709-0.041+0.014-0.004 ok
Home runs0.052 → 0.063+0.0110.03040.0310n=152
Average
0.03688/9 qualified
lineup mean
0.0375+0.001+0.011+0.000 ok
RELIEVER Kevin Kelly1.596 BFRelieverHits0.331 → 0.330-0.0010.21690.2073n=279
Average
0.21638/9 qualified
lineup mean
0.2067-0.015-0.0010 ok
Strikeouts0.359 → 0.388+0.0290.22120.2248n=279
Average
0.23928/9 qualified
lineup mean
0.2430+0.006+0.029+0.000 ok
Walks0.091 → 0.100+0.0090.08890.0573n=279
Very good
0.09738/9 qualified
lineup mean
0.0629-0.051+0.013-0.004 ok
Home runs0.043 → 0.052+0.0090.03040.0270n=279
Good
0.03688/9 qualified
lineup mean
0.0327-0.005+0.010-0.001 ok
RELIEVER Ian Seymour0.8959 BFRelieverHits0.189 → 0.188-0.0010.21690.2104n=551
Average
0.21638/9 qualified
lineup mean
0.2098-0.006-0.0010 ok
Strikeouts0.249 → 0.268+0.0190.22120.2784n=551
Very good
0.23928/9 qualified
lineup mean
0.2993+0.051+0.016+0.003 ok
Walks0.063 → 0.069+0.0060.08890.0706n=551
Good
0.09738/9 qualified
lineup mean
0.0774-0.016+0.007-0.001 ok
Home runs0.035 → 0.042+0.0070.03040.0387n=551
Poor
0.03688/9 qualified
lineup mean
0.0467+0.007+0.006+0.002 ok
RELIEVER Tyler Wells0.3349 BFRelieverHits0.065 → 0.065-0.0000.21690.1936n=273
Very good
0.21638/9 qualified
lineup mean
0.1930-0.008-0.0000 ok
Strikeouts0.085 → 0.092+0.0070.22120.2541n=273
Good
0.23928/9 qualified
lineup mean
0.2738+0.011+0.006+0.001 ok
Walks0.025 → 0.027+0.0020.08890.0743n=273
Good
0.09738/9 qualified
lineup mean
0.0815-0.005+0.003-0.000 ok
Home runs0.010 → 0.012+0.0020.03040.0300n=273
Average
0.03688/9 qualified
lineup mean
0.0363-0.000+0.0020 ok

Published pitching, integer draw beside the continuous model line

PitcherRoleBFIPexpected IPH int/contSO int/contBB int/contER int/contRate source
Cam SchlittlerStarter21.55.25.7031 / 2.8545 / 7.0061 / 1.5000 / 0.817all_players_stats_recent_season_blend
Paul BlackburnMiddle Reliever (High Leverage)5.41.11.3410 / 0.9141 / 0.8480 / 0.4650 / 0.157all_players_stats_recent_season_blend
John SchreiberMiddle Reliever (High Leverage)4.31.01.0062 / 0.9080 / 0.5910 / 0.3400 / 0.377all_players_stats_recent_season_blend
Brent HeadrickSetup Man2.91.00.6712 / 0.5851 / 0.7570 / 0.3290 / 0.231all_players_stats_recent_season_blend
Freddy PeraltaStarter21.75.15.3442 / 3.8146 / 4.7241 / 1.8291 / 1.371all_players_stats_recent_season_blend
Cole SulserSetup Man4.21.01.0021 / 0.8551 / 1.0990 / 0.3120 / 0.385all_players_stats_recent_season_blend
Bryan BakerCloser3.81.01.0021 / 0.5470 / 0.9601 / 0.2921 / 0.110all_players_stats_recent_season_blend
Steven MatzMiddle Reliever5.51.21.3364 / 1.1452 / 1.1411 / 0.3052 / 0.757all_players_stats_recent_season_blend

Audit: NO DEFECT FOUND

InvariantVerdictEvidence
blend arithmetic away_runsPASS4.0000 + 0.78 x (4.4268 - 4.0000) = 4.3329, recorded 4.3329
blend arithmetic home_runsPASS3.0000 + 0.44 x (3.1160 - 3.0000) = 3.0510, recorded 3.0510
blend arithmetic home_winPASS0.4534 + 0.00 x (0.6851 - 0.4534) = 0.4534, recorded 0.4534
published rounding faithful to the blendPASSblended 4.3329-3.0510 rounds to 4-3, layer published 4-3
published probability on the score's sidePASS4-3 with p(home) 0.453398
Log5 additivity136 checksPASS136 of 136 pass
away club fields exactly one starterPASS1 starters in a staff of 4
away staff totals a regulation workloadPASS27 outs recorded, 27 expected
away starter carries a continuous linePASSexpected_IP 5.703
away starter batters faced inside the real bandPASSCam Schlittler projected 21.5 batters faced; real starters run p01-p99 4-30, median 23, mean 21.75
away reliever batters faced inside the real band3 checksPASS3 of 3 pass
home club fields exactly one starterPASS1 starters in a staff of 4
home staff totals a regulation workloadPASS27 outs recorded, 27 expected
home starter carries a continuous linePASSexpected_IP 5.344
home starter batters faced inside the real bandPASSFreddy Peralta projected 21.7 batters faced; real starters run p01-p99 4-30, median 23, mean 21.75
home reliever batters faced inside the real band3 checksPASS3 of 3 pass
away hitters satisfy every coherence rulePASS9 hitters checked; H<=AB, HR<=H, 2B+3B+HR<=H, SO<=AB, continuous line present
home hitters satisfy every coherence rulePASS9 hitters checked; H<=AB, HR<=H, 2B+3B+HR<=H, SO<=AB, continuous line present
Provenance. Read only from published artifacts and stored KPI value documents. Nothing is recomputed, so this document cannot disagree with what was published. Per-player metric adjustments are a measurement of the catalog at player level and are labelled as such throughout; the pipeline itself moved team runs, the win probability, and hitter lines by one club-wide ratio.