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 20261007Games 4Checks 627Schema metric_evolution_report_v1Built 2026-10-08 09:14Z

Verdict across the slate

627 invariants checked across 4 games: 3 OF 627 CHECKS FAILED
  • away staff totals a regulation workload: 30 outs recorded, 27 expected
  • home staff totals a regulation workload: 30 outs recorded, 27 expected
  • away staff totals a regulation workload: 26 outs recorded, 24 expected

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
20261007_CLE@CHW5 - 40.464982yes+0.0005+0.4454-no
20261007_LAD@ATL6 - 40.492882yes+0.0409+0.6826-no
20261007_MIL@SD6 - 50.495083yes-0.1958+0.3883-no
20261007_TB@NYY3 - 40.544082yes+0.4627+0.1996-no
KPI model in force. candidate 20261008T091425Z_3ccbc4c8, 48 features built from 40 registered KPIs, blend weights {"home_runs": 0.38, "away_runs": 0.34, "home_win": 0.0}, frozen evaluation ends 2026-09-27. 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

20261007_CLE@CHW — published 5-4, 157 checks, all pass
Artifact. 20261007_CLE@CHW__20261008T024006Z.json, phase post_start_rerun, generated 2026-10-08T02:40:06, first pitch 2026-10-07T20:00:00.
Published 5 - 4 with p(home) 0.464871. 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.629906778357269 - 2.8016567809837490000noBase ML historical model prediction
2. variance_applied5 - 3+0.3701+0.1983+0.3701+0.1983yesDeterministic baseline target (variance factor 1.0)
3. enhanced_prediction5 - 40+1.0000+0.3701+1.1983yesEnhanced ML with recent form, H2H, low-score analysis (confidence shrunk by projected_margin_is_one_run, matchup_recency_guardrail)
4. kpi_layer5 - 400+0.3701+1.1983noaway +0.0005; home +0.4454
Savant KPI blend applied to the model target
5. embedded_savant_run_environment5 - 400+0.3701+1.1983noaway +0.0538; home -0.2578
Target score adjusted by temporal Savant lineup quality versus opposing starter quality
6. fundamental_edge_target_review5 - 400+0.3701+1.1983noRefreshed score target and win probability after Savant/pitcher/team-strength adjustments
7. capped_target5 - 400+0.3701+1.1983noCapped at max 12 realistic runs
8. simulation_result5 - 4----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_runs5.00005.00150.345.00055.0000 + 0.34 × (5.0015 − 5.0000) = 5.0005PASS
home_runs4.00005.17210.384.44544.0000 + 0.38 × (5.1721 − 4.0000) = 4.4454PASS
home_win0.45140.52750.000.45140.4514 + 0.00 × (0.5275 − 0.4514) = 0.4514PASS

Published by the layer: away 5, home 4, p(home) 0.451379, continuous away 5.0005 / home 4.4454

Inputs and gates. candidate 20261007T091423Z_47b9db81, value age 10 days, lineup coverage away 1.0000 / home 0.8947, 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.2358 + sum of contributions = 5.0015; prediction 5.0015; contributions outside the top listed -0.6178 runs

FeatureRawStandardisedRuns contributedWhich KPIs it is built from
home_off_power_spread1.19141.740+0.9154offence group (dispersion across the lineup, not its mean): batter_home_run_rate, batter_bat_speed
away_off_contact-0.3389-1.678-0.5764offence group: 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.96732.572+0.5713offence 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 ...
away_pen_share0.60843.094-0.5330composite feature
home_platoon_whiff-0.2395-1.044+0.5264platoon term, selected by the opposing starter's throwing hand
home_off_ground_spread1.17112.365+0.5243offence group (dispersion across the lineup, not its mean): batter_ground_ball_rate_vs_slider, batter_ground_ball_rate_vs_fastball
home_off_top3_contact1.34351.885-0.4188mean of the three best contact bats, a tail a club mean cannot express
away_off_discipline0.53482.248+0.3998offence group: batter_whiff_rate_vs_fastball, batter_whiff_rate_vs_breaking, batter_whiff_rate_vs_offspeed, batter_strikeout_rate ...
home_platoon_barrel0.36691.083-0.3665platoon term, selected by the opposing starter's throwing hand
home_x_fastball-0.2385-1.268+0.3409batter x pitcher interaction: pitcher_whiff_rate_fastball, batter_whiff_rate_vs_fastball

What drove the KPI forecast for home_runs

intercept 4.5238 + sum of contributions = 5.1721; prediction 5.1721; contributions outside the top listed 0.0145 runs

FeatureRawStandardisedRuns contributedWhich KPIs it is built from
away_pen_share0.60843.094+0.6775composite feature
home_off_ground_spread1.17112.365+0.5782offence group (dispersion across the lineup, not its mean): batter_ground_ball_rate_vs_slider, batter_ground_ball_rate_vs_fastball
home_pen_share0.53992.299+0.5465composite feature
home_off_contact_spread0.98361.624+0.4690offence 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_power_spread1.19141.740-0.4472offence group (dispersion across the lineup, not its mean): batter_home_run_rate, batter_bat_speed
home_off_worst3_discipline-1.1139-2.305-0.4261mean of the three weakest plate approaches
home_platoon_whiff-0.2395-1.044-0.3999platoon term, selected by the opposing starter's throwing hand
home_off_top3_contact1.34351.885-0.3397mean of the three best contact bats, a tail a club mean cannot express
away_platoon_whiff0.59201.831-0.3076platoon term, selected by the opposing starter's throwing hand
home_off_qualified_share0.89471.086+0.2830share of the lineup carrying a qualifying sample, not a skill measurement

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

CLE against Matt Festa (RHP)

The pipeline applied no club-wide rescale to CLE hitter lines.
Opposing staff exposure. These hitters face the starter for 13.8787 of 35.458 projected batters (39.1%) and the 3 projected relievers for the remaining 60.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 OUTSIDE 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 staff0.955 → 0.929-0.0250.21690.2296n=620
Good
0.2048n=369
Good
0.2170+0.056-0.053-0.002 ok
  splitstarter x0.9451 at 0.391 share (log5 0.2170 vs his 0.2048)  +  bullpen x0.9916 at 0.609 share (log5 0.2277 vs pen 0.2150)  =  x0.9734  |  starter alone would have been -0.052
Strikeoutswhole staff0.477 → 0.499+0.0220.22120.1013n=620
Very good
0.2265n=369
Average
0.1042-0.529+0.023-0.011 ok
  splitstarter x1.0277 at 0.391 share (log5 0.1042 vs his 0.2265)  +  bullpen x1.0573 at 0.609 share (log5 0.1072 vs pen 0.2321)  =  x1.0457  |  starter alone would have been +0.013
Walkswhole staff0.532 → 0.544+0.0120.08890.1280n=620
Very good
0.0912n=369
Average
0.1311+0.172+0.010+0.004 ok
  splitstarter x1.0242 at 0.391 share (log5 0.1311 vs his 0.0912)  +  bullpen x1.0224 at 0.609 share (log5 0.1309 vs pen 0.0910)  =  x1.0231  |  starter alone would have been +0.013
Home runswhole staff0.053 → 0.045-0.0080.03040.0125n=620
Poor
0.0215n=369
Very good
0.0088-0.079-0.039+0.023 ok
  splitstarter x0.7052 at 0.391 share (log5 0.0088 vs his 0.0215)  +  bullpen x0.9488 at 0.609 share (log5 0.0118 vs pen 0.0289)  =  x0.8535  |  starter alone would have been -0.016
Neutralising Steven Kwan to the qualified-population mean moves the club's KPI run forecast by 0.4174 runs, and the weighted stage by 0.1419. Interactions make these non-additive across players, so they do not sum to the published movement.
José Ramírez3BHitswhole staff0.870 → 0.846-0.0240.21690.2095n=531
Below average
0.2048n=369
Good
0.1977-0.033-0.054+0.001 ok
  splitstarter x0.9437 at 0.391 share (log5 0.1977 vs his 0.2048)  +  bullpen x0.9914 at 0.609 share (log5 0.2077 vs pen 0.2150)  =  x0.9727  |  starter alone would have been -0.049
Strikeoutswhole staff0.627 → 0.655+0.0280.22120.1376n=531
Very good
0.2265n=369
Average
0.1413-0.377+0.024-0.007 ok
  splitstarter x1.0265 at 0.391 share (log5 0.1413 vs his 0.2265)  +  bullpen x1.0549 at 0.609 share (log5 0.1452 vs pen 0.2321)  =  x1.0438  |  starter alone would have been +0.017
Walkswhole staff0.545 → 0.558+0.0130.08890.1086n=531
Good
0.0912n=369
Average
0.1113+0.089+0.010+0.002 ok
  splitstarter x1.0248 at 0.391 share (log5 0.1113 vs his 0.0912)  +  bullpen x1.0229 at 0.609 share (log5 0.1111 vs pen 0.0910)  =  x1.0236  |  starter alone would have been +0.013
Home runswhole staff0.115 → 0.098-0.0170.03040.0252n=531
Below average
0.0215n=369
Very good
0.0178-0.023-0.040+0.007 ok
  splitstarter x0.7079 at 0.391 share (log5 0.0178 vs his 0.0215)  +  bullpen x0.9495 at 0.609 share (log5 0.0239 vs pen 0.0289)  =  x0.8549  |  starter alone would have been -0.034
Neutralising José Ramírez to the qualified-population mean moves the club's KPI run forecast by 0.0749 runs, and the weighted stage by 0.0255. Interactions make these non-additive across players, so they do not sum to the published movement.
Chase DeLauterRFHitswhole staff0.964 → 0.938-0.0250.21690.2364n=543
Very good
0.2048n=369
Good
0.2236+0.083-0.051-0.003 ok
  splitstarter x0.9455 at 0.391 share (log5 0.2236 vs his 0.2048)  +  bullpen x0.9917 at 0.609 share (log5 0.2345 vs pen 0.2150)  =  x0.9736  |  starter alone would have been -0.052
Strikeoutswhole staff0.709 → 0.739+0.0300.22120.1534n=543
Good
0.2265n=369
Average
0.1574-0.287+0.022-0.005 ok
  splitstarter x1.026 at 0.391 share (log5 0.1574 vs his 0.2265)  +  bullpen x1.0538 at 0.609 share (log5 0.1617 vs pen 0.2321)  =  x1.0429  |  starter alone would have been +0.018
Walkswhole staff0.418 → 0.428+0.0100.08890.1051n=543
Good
0.0912n=369
Average
0.1077+0.069+0.010+0.002 ok
  splitstarter x1.0249 at 0.391 share (log5 0.1077 vs his 0.0912)  +  bullpen x1.023 at 0.609 share (log5 0.1075 vs pen 0.0910)  =  x1.0237  |  starter alone would have been +0.010
Home runswhole staff0.125 → 0.107-0.0180.03040.0298n=543
Average
0.0215n=369
Very good
0.0211-0.003-0.037+0.001 ok
  splitstarter x0.7089 at 0.391 share (log5 0.0211 vs his 0.0215)  +  bullpen x0.9497 at 0.609 share (log5 0.0283 vs pen 0.0289)  =  x0.8555  |  starter alone would have been -0.036
Neutralising Chase DeLauter to the qualified-population mean moves the club's KPI run forecast by 0.2651 runs, and the weighted stage by 0.0901. Interactions make these non-additive across players, so they do not sum to the published movement.
Jo AdellDHHitswhole staff0.871 → 0.847-0.0240.21690.2185n=656
Average
0.2048n=369
Good
0.2063+0.006-0.050-0.000 ok
  splitstarter x0.9443 at 0.391 share (log5 0.2063 vs his 0.2048)  +  bullpen x0.9915 at 0.609 share (log5 0.2166 vs pen 0.2150)  =  x0.973  |  starter alone would have been -0.049
Strikeoutswhole staff1.044 → 1.084+0.0400.22120.2367n=656
Average
0.2265n=369
Average
0.2422+0.063+0.022+0.001 ok
  splitstarter x1.0234 at 0.391 share (log5 0.2422 vs his 0.2265)  +  bullpen x1.0483 at 0.609 share (log5 0.2481 vs pen 0.2321)  =  x1.0386  |  starter alone would have been +0.024
Walkswhole staff0.281 → 0.288+0.0070.08890.0575n=656
Poor
0.0912n=369
Average
0.0590-0.129+0.009-0.003 ok
  splitstarter x1.0263 at 0.391 share (log5 0.0590 vs his 0.0912)  +  bullpen x1.0243 at 0.609 share (log5 0.0589 vs pen 0.0910)  =  x1.0251  |  starter alone would have been +0.007
Home runswhole staff0.149 → 0.127-0.0210.03040.0337n=656
Average
0.0215n=369
Very good
0.0239+0.014-0.036-0.004 ok
  splitstarter x0.7097 at 0.391 share (log5 0.0239 vs his 0.0215)  +  bullpen x0.9499 at 0.609 share (log5 0.0320 vs pen 0.0289)  =  x0.8559  |  starter alone would have been -0.043
Neutralising Jo Adell to the qualified-population mean moves the club's KPI run forecast by -0.0412 runs, and the weighted stage by -0.0140. Interactions make these non-additive across players, so they do not sum to the published movement.
Nathaniel Lowe1BHitswhole staff0.832 → 0.809-0.0220.21690.2187n=417
Average
0.2048n=369
Good
0.2065+0.007-0.047-0.000 ok
  splitstarter x0.9443 at 0.391 share (log5 0.2065 vs his 0.2048)  +  bullpen x0.9915 at 0.609 share (log5 0.2168 vs pen 0.2150)  =  x0.973  |  starter alone would have been -0.046
Strikeoutswhole staff0.992 → 1.030+0.0380.22120.2293n=417
Average
0.2265n=369
Average
0.2347+0.031+0.021+0.001 ok
  splitstarter x1.0236 at 0.391 share (log5 0.2347 vs his 0.2265)  +  bullpen x1.0487 at 0.609 share (log5 0.2404 vs pen 0.2321)  =  x1.0389  |  starter alone would have been +0.023
Walkswhole staff0.332 → 0.340+0.0080.08890.0906n=417
Average
0.0912n=369
Average
0.0929+0.007+0.009+0.000 ok
  splitstarter x1.0253 at 0.391 share (log5 0.0929 vs his 0.0912)  +  bullpen x1.0234 at 0.609 share (log5 0.0928 vs pen 0.0910)  =  x1.0241  |  starter alone would have been +0.008
Home runswhole staff0.138 → 0.118-0.0200.03040.0353n=417
Good
0.0215n=369
Very good
0.0250+0.019-0.034-0.005 ok
  splitstarter x0.7101 at 0.391 share (log5 0.0250 vs his 0.0215)  +  bullpen x0.95 at 0.609 share (log5 0.0335 vs pen 0.0289)  =  x0.8561  |  starter alone would have been -0.040
Neutralising Nathaniel Lowe to the qualified-population mean moves the club's KPI run forecast by 0.0927 runs, and the weighted stage by 0.0315. Interactions make these non-additive across players, so they do not sum to the published movement.
Angel MartínezLFHitswhole staff0.869 → 0.846-0.0230.21690.2293n=408
Good
0.2048n=369
Good
0.2167+0.048-0.047-0.002 ok
  splitstarter x0.9451 at 0.391 share (log5 0.2167 vs his 0.2048)  +  bullpen x0.9916 at 0.609 share (log5 0.2273 vs pen 0.2150)  =  x0.9734  |  starter alone would have been -0.048
Strikeoutswhole staff0.941 → 0.978+0.0370.22120.2185n=408
Average
0.2265n=369
Average
0.2237-0.011+0.021-0.000 ok
  splitstarter x1.024 at 0.391 share (log5 0.2237 vs his 0.2265)  +  bullpen x1.0495 at 0.609 share (log5 0.2293 vs pen 0.2321)  =  x1.0395  |  starter alone would have been +0.023
Walkswhole staff0.205 → 0.210+0.0050.08890.0429n=408
Poor
0.0912n=369
Average
0.0440-0.179+0.009-0.004 ok
  splitstarter x1.0267 at 0.391 share (log5 0.0440 vs his 0.0912)  +  bullpen x1.0247 at 0.609 share (log5 0.0439 vs pen 0.0910)  =  x1.0255  |  starter alone would have been +0.005
Home runswhole staff0.164 → 0.140-0.0240.03040.0387n=408
Good
0.0215n=369
Very good
0.0275+0.032-0.034-0.009 ok
  splitstarter x0.7108 at 0.391 share (log5 0.0275 vs his 0.0215)  +  bullpen x0.9501 at 0.609 share (log5 0.0368 vs pen 0.0289)  =  x0.8564  |  starter alone would have been -0.047
Neutralising Angel Martínez to the qualified-population mean moves the club's KPI run forecast by 0.0306 runs, and the weighted stage by 0.0104. Interactions make these non-additive across players, so they do not sum to the published movement.
Travis Bazzana2BHitswhole staff0.788 → 0.767-0.0210.21690.2129n=506
Average
0.2048n=369
Good
0.2010-0.015-0.046+0.001 ok
  splitstarter x0.944 at 0.391 share (log5 0.2010 vs his 0.2048)  +  bullpen x0.9914 at 0.609 share (log5 0.2111 vs pen 0.2150)  =  x0.9728  |  starter alone would have been -0.044
Strikeoutswhole staff0.873 → 0.908+0.0350.22120.2087n=506
Average
0.2265n=369
Average
0.2138-0.048+0.020-0.001 ok
  splitstarter x1.0243 at 0.391 share (log5 0.2138 vs his 0.2265)  +  bullpen x1.0501 at 0.609 share (log5 0.2192 vs pen 0.2321)  =  x1.04  |  starter alone would have been +0.021
Walkswhole staff0.388 → 0.397+0.0090.08890.1033n=506
Good
0.0912n=369
Average
0.1059+0.055+0.009+0.001 ok
  splitstarter x1.0249 at 0.391 share (log5 0.1059 vs his 0.0912)  +  bullpen x1.0231 at 0.609 share (log5 0.1057 vs pen 0.0910)  =  x1.0238  |  starter alone would have been +0.010
Home runswhole staff0.113 → 0.097-0.0160.03040.0299n=506
Average
0.0215n=369
Very good
0.0212-0.002-0.034+0.001 ok
  splitstarter x0.7089 at 0.391 share (log5 0.0212 vs his 0.0215)  +  bullpen x0.9497 at 0.609 share (log5 0.0284 vs pen 0.0289)  =  x0.8555  |  starter alone would have been -0.033
Neutralising Travis Bazzana to the qualified-population mean moves the club's KPI run forecast by -0.0246 runs, and the weighted stage by -0.0084. Interactions make these non-additive across players, so they do not sum to the published movement.
Patrick BaileyCHitswhole staff0.735 → 0.715-0.0200.21690.2062n=333
Below average
0.2048n=369
Good
0.1946-0.039-0.045+0.002 ok
  splitstarter x0.9435 at 0.391 share (log5 0.1946 vs his 0.2048)  +  bullpen x0.9913 at 0.609 share (log5 0.2045 vs pen 0.2150)  =  x0.9726  |  starter alone would have been -0.042
Strikeoutswhole staff1.008 → 1.045+0.0370.22120.2666n=333
Below average
0.2265n=369
Average
0.2726+0.168+0.019+0.003 ok
  splitstarter x1.0225 at 0.391 share (log5 0.2726 vs his 0.2265)  +  bullpen x1.0463 at 0.609 share (log5 0.2790 vs pen 0.2321)  =  x1.037  |  starter alone would have been +0.023
Walkswhole staff0.336 → 0.344+0.0080.08890.0809n=333
Average
0.0912n=369
Average
0.0830-0.029+0.008-0.001 ok
  splitstarter x1.0256 at 0.391 share (log5 0.0830 vs his 0.0912)  +  bullpen x1.0237 at 0.609 share (log5 0.0829 vs pen 0.0910)  =  x1.0244  |  starter alone would have been +0.009
Home runswhole staff0.119 → 0.102-0.0170.03040.0302n=333
Average
0.0215n=369
Very good
0.0214-0.001-0.033+0.000 ok
  splitstarter x0.709 at 0.391 share (log5 0.0214 vs his 0.0215)  +  bullpen x0.9497 at 0.609 share (log5 0.0287 vs pen 0.0289)  =  x0.8555  |  starter alone would have been -0.035
Neutralising Patrick Bailey to the qualified-population mean moves the club's KPI run forecast by -0.0759 runs, and the weighted stage by -0.0258. Interactions make these non-additive across players, so they do not sum to the published movement.
Brayan RocchioSSHitswhole staff0.745 → 0.725-0.0200.21690.2238n=576
Average
0.2048n=369
Good
0.2115+0.024-0.042-0.001 ok
  splitstarter x0.9447 at 0.391 share (log5 0.2115 vs his 0.2048)  +  bullpen x0.9915 at 0.609 share (log5 0.2219 vs pen 0.2150)  =  x0.9732  |  starter alone would have been -0.041
Strikeoutswhole staff0.552 → 0.576+0.0240.22120.1501n=576
Good
0.2265n=369
Average
0.1540-0.246+0.018-0.005 ok
  splitstarter x1.0261 at 0.391 share (log5 0.1540 vs his 0.2265)  +  bullpen x1.054 at 0.609 share (log5 0.1582 vs pen 0.2321)  =  x1.0431  |  starter alone would have been +0.014
Walkswhole staff0.275 → 0.282+0.0070.08890.0699n=576
Below average
0.0912n=369
Average
0.0717-0.066+0.008-0.002 ok
  splitstarter x1.0259 at 0.391 share (log5 0.0717 vs his 0.0912)  +  bullpen x1.024 at 0.609 share (log5 0.0716 vs pen 0.0910)  =  x1.0247  |  starter alone would have been +0.007
Home runswhole staff0.093 → 0.079-0.0130.03040.0250n=576
Below average
0.0215n=369
Very good
0.0177-0.019-0.031+0.005 ok
  splitstarter x0.7079 at 0.391 share (log5 0.0177 vs his 0.0215)  +  bullpen x0.9494 at 0.609 share (log5 0.0238 vs pen 0.0289)  =  x0.8549  |  starter alone would have been -0.027
Neutralising Brayan Rocchio to the qualified-population mean moves the club's KPI run forecast by -0.1313 runs, and the weighted stage by -0.0446. Interactions make these non-additive across players, so they do not sum to the published movement.
STARTER Daniel Espino17.1684 BFStarterHits3.623 → 3.620-0.0030.21690.2169n=0
averagebelow floor
0.21678/9 qualified
lineup mean
0.21670-0.0030 ok
Strikeouts3.940 → 4.083+0.1430.22120.2212n=0
averagebelow floor
0.22938/9 qualified
lineup mean
0.22930+0.1380 ok
Walks1.731 → 1.913+0.1810.08890.0889n=0
averagebelow floor
0.09828/9 qualified
lineup mean
0.09820+0.1600 ok
Home runs0.637 → 0.720+0.0830.03040.0304n=0
averagebelow floor
0.03438/9 qualified
lineup mean
0.03430+0.0680 ok
RELIEVER Tim Herrin3.9958 BFMiddle RelieverHits0.868 → 0.867-0.0010.21690.2029n=237
Good
0.21678/9 qualified
lineup mean
0.2028-0.056-0.0010 ok
Strikeouts0.972 → 1.007+0.0350.22120.2262n=237
Average
0.22938/9 qualified
lineup mean
0.2343+0.020+0.032+0.001 ok
Walks0.491 → 0.541+0.0500.08890.1065n=237
Below average
0.09828/9 qualified
lineup mean
0.1174+0.070+0.037+0.006 ok
Home runs0.070 → 0.079+0.0090.03040.0272n=237
Average
0.03438/9 qualified
lineup mean
0.0307-0.013+0.016-0.002 ok
RELIEVER Erik Sabrowski3.6485 BFMiddle Reliever (High Leverage)Hits0.525 → 0.524-0.0010.21690.1819n=194
Very good
0.21678/9 qualified
lineup mean
0.1817-0.128-0.001+0.000 ok
Strikeouts1.568 → 1.617+0.0490.22120.3346n=194
Very good
0.22938/9 qualified
lineup mean
0.3449+0.414+0.029+0.008 ok
Walks0.625 → 0.688+0.0620.08890.1280n=194
Poor
0.09828/9 qualified
lineup mean
0.1408+0.143+0.034+0.013 ok
Home runs0.046 → 0.052+0.0060.03040.0259n=194
Good
0.03438/9 qualified
lineup mean
0.0292-0.017+0.014-0.002 ok
RELIEVER Cade Smith3.53 BFRelieverHits0.674 → 0.673-0.0010.21690.1909n=281
Very good
0.21678/9 qualified
lineup mean
0.1907-0.092-0.001+0.000 ok
Strikeouts1.170 → 1.207+0.0360.22120.3315n=281
Very good
0.22938/9 qualified
lineup mean
0.3418+0.389+0.028+0.008 ok
Walks0.274 → 0.303+0.0290.08890.0776n=281
Good
0.09828/9 qualified
lineup mean
0.0858-0.040+0.033-0.004 ok
Home runs0.090 → 0.102+0.0120.03040.0255n=281
Good
0.03438/9 qualified
lineup mean
0.0289-0.017+0.014-0.002 ok
RELIEVER Hunter Gaddis3.4396 BFRelieverHits0.736 → 0.735-0.0010.21690.2138n=252
Average
0.21678/9 qualified
lineup mean
0.2137-0.010-0.0010 ok
Strikeouts0.763 → 0.791+0.0280.22120.2220n=252
Average
0.22938/9 qualified
lineup mean
0.2300+0.003+0.028+0.000 ok
Walks0.302 → 0.334+0.0320.08890.0879n=252
Average
0.09828/9 qualified
lineup mean
0.0971-0.003+0.032-0.000 ok
Home runs0.101 → 0.114+0.0130.03040.0294n=252
Average
0.03438/9 qualified
lineup mean
0.0333-0.003+0.014-0.000 ok
RELIEVER Shawn Armstrong3.2931 BFMiddle Reliever (High Leverage)Hits0.684 → 0.683-0.0010.21690.2076n=148
Average
0.21678/9 qualified
lineup mean
0.2074-0.030-0.0010 ok
Strikeouts0.881 → 0.913+0.0320.22120.2180n=148
Average
0.22938/9 qualified
lineup mean
0.2259-0.011+0.026-0.000 ok
Walks0.472 → 0.521+0.0490.08890.1048n=148
Below average
0.09828/9 qualified
lineup mean
0.1155+0.052+0.031+0.005 ok
Home runs0.066 → 0.075+0.0090.03040.0279n=148
Average
0.03438/9 qualified
lineup mean
0.0315-0.008+0.013-0.001 ok
RELIEVER Joey Cantillo1.3855 BFRelieverHits0.293 → 0.293-0.0000.21690.2118n=687
Average
0.21678/9 qualified
lineup mean
0.2116-0.007-0.0000 ok
Strikeouts0.341 → 0.353+0.0120.22120.2460n=687
Good
0.22938/9 qualified
lineup mean
0.2547+0.034+0.011+0.001 ok
Walks0.156 → 0.172+0.0160.08890.1125n=687
Below average
0.09828/9 qualified
lineup mean
0.1239+0.033+0.013+0.003 ok
Home runs0.037 → 0.042+0.0050.03040.0270n=687
Good
0.03438/9 qualified
lineup mean
0.0305-0.005+0.005-0.001 ok
RELIEVER Matt Festa0.7911 BFRelieverHits0.174 → 0.174-0.0000.21690.2199n=278
Average
0.21678/9 qualified
lineup mean
0.2197+0.002-0.0000 ok
Strikeouts0.183 → 0.189+0.0070.22120.2310n=278
Average
0.22938/9 qualified
lineup mean
0.2393+0.008+0.006+0.000 ok
Walks0.064 → 0.070+0.0070.08890.0804n=278
Average
0.09828/9 qualified
lineup mean
0.0889-0.007+0.007-0.001 ok
Home runs0.021 → 0.024+0.0030.03040.0270n=278
Good
0.03438/9 qualified
lineup mean
0.0305-0.003+0.003-0.000 ok

CHW against David Sandlin (RHP)

The pipeline applied one club-wide ×1.1114 to every CHW hitter line, identical for the leadoff hitter and the ninth bat.
Opposing staff exposure. These hitters face the starter for 17.1684 of 37.248 projected batters (46.1%) and the 3 projected relievers for the remaining 53.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
Sam AntonacciDHHitswhole staff0.974 → 0.936-0.0380.21690.2300n=553
Good
0.2169n=0
averagebelow floor
0.2300+0.05600 ok
  splitstarter x1.0 at 0.461 share (log5 0.2300 vs his 0.2169)  +  bullpen x0.9276 at 0.539 share (log5 0.2134 vs pen 0.2009)  =  x0.961  |  starter alone would have been 0
Strikeoutswhole staff0.751 → 0.838+0.0860.22120.1525n=553
Good
0.2212n=0
averagebelow floor
0.1525-0.29300 ok
  splitstarter x1.0 at 0.461 share (log5 0.1525 vs his 0.2212)  +  bullpen x1.2135 at 0.539 share (log5 0.1851 vs pen 0.2639)  =  x1.1151  |  starter alone would have been 0
Walkswhole staff0.411 → 0.442+0.0310.08890.0797n=553
Average
0.0889n=0
averagebelow floor
0.0797-0.03900 ok
  splitstarter x1.0 at 0.461 share (log5 0.0797 vs his 0.0889)  +  bullpen x1.14 at 0.539 share (log5 0.0909 vs pen 0.1012)  =  x1.0755  |  starter alone would have been 0
Home runswhole staff0.091 → 0.086-0.0050.03040.0196n=553
Poor
0.0304n=0
averagebelow floor
0.0196-0.04600 ok
  splitstarter x1.0 at 0.461 share (log5 0.0196 vs his 0.0304)  +  bullpen x0.8917 at 0.539 share (log5 0.0175 vs pen 0.0271)  =  x0.9416  |  starter alone would have been 0
Neutralising Sam Antonacci to the qualified-population mean moves the club's KPI run forecast by 0.1818 runs, and the weighted stage by 0.0691. Interactions make these non-additive across players, so they do not sum to the published movement.
Miguel Vargas3BHitswhole staff0.868 → 0.834-0.0350.21690.2136n=695
Average
0.2169n=0
averagebelow floor
0.2136-0.01400 ok
  splitstarter x1.0 at 0.461 share (log5 0.2136 vs his 0.2169)  +  bullpen x0.9262 at 0.539 share (log5 0.1978 vs pen 0.2009)  =  x0.9602  |  starter alone would have been 0
Strikeoutswhole staff0.881 → 0.978+0.0970.22120.1826n=695
Good
0.2212n=0
averagebelow floor
0.1826-0.16800 ok
  splitstarter x1.0 at 0.461 share (log5 0.1826 vs his 0.2212)  +  bullpen x1.2044 at 0.539 share (log5 0.2199 vs pen 0.2639)  =  x1.1102  |  starter alone would have been 0
Walkswhole staff0.636 → 0.681+0.0450.08890.1346n=695
Very good
0.0889n=0
averagebelow floor
0.1346+0.19900 ok
  splitstarter x1.0 at 0.461 share (log5 0.1346 vs his 0.0889)  +  bullpen x1.1306 at 0.539 share (log5 0.1522 vs pen 0.1012)  =  x1.0704  |  starter alone would have been 0
Home runswhole staff0.187 → 0.176-0.0110.03040.0428n=695
Very good
0.0304n=0
averagebelow floor
0.0428+0.05400 ok
  splitstarter x1.0 at 0.461 share (log5 0.0428 vs his 0.0304)  +  bullpen x0.894 at 0.539 share (log5 0.0382 vs pen 0.0271)  =  x0.9429  |  starter alone would have been 0
Neutralising Miguel Vargas to the qualified-population mean moves the club's KPI run forecast by 0.5581 runs, and the weighted stage by 0.2121. Interactions make these non-additive across players, so they do not sum to the published movement.
Munetaka Murakami1BHitswhole staff0.811 → 0.778-0.0330.21690.1915n=544
Poor
0.2169n=0
averagebelow floor
0.1915-0.11500 ok
  splitstarter x1.0 at 0.461 share (log5 0.1915 vs his 0.2169)  +  bullpen x0.9242 at 0.539 share (log5 0.1770 vs pen 0.2009)  =  x0.9591  |  starter alone would have been 0
Strikeoutswhole staff1.652 → 1.792+0.1400.22120.3438n=544
Poor
0.2212n=0
averagebelow floor
0.3438+0.55400 ok
  splitstarter x1.0 at 0.461 share (log5 0.3438 vs his 0.2212)  +  bullpen x1.1577 at 0.539 share (log5 0.3980 vs pen 0.2639)  =  x1.085  |  starter alone would have been 0
Walkswhole staff0.753 → 0.805+0.0520.08890.1532n=544
Very good
0.0889n=0
averagebelow floor
0.1532+0.29100 ok
  splitstarter x1.0 at 0.461 share (log5 0.1532 vs his 0.0889)  +  bullpen x1.1274 at 0.539 share (log5 0.1727 vs pen 0.1012)  =  x1.0687  |  starter alone would have been 0
Home runswhole staff0.245 → 0.231-0.0140.03040.0532n=544
Very good
0.0304n=0
averagebelow floor
0.0532+0.10300 ok
  splitstarter x1.0 at 0.461 share (log5 0.0532 vs his 0.0304)  +  bullpen x0.895 at 0.539 share (log5 0.0476 vs pen 0.0271)  =  x0.9434  |  starter alone would have been 0
Neutralising Munetaka Murakami to the qualified-population mean moves the club's KPI run forecast by 0.0164 runs, and the weighted stage by 0.0062. Interactions make these non-additive across players, so they do not sum to the published movement.
Kyle TeelCHitswhole staff0.833 → 0.800-0.0330.21690.2169n=0
averagebelow floor
0.2169n=0
averagebelow floor
0.2169000 ok
  splitstarter x1.0 at 0.461 share (log5 0.2169 vs his 0.2169)  +  bullpen x0.9264 at 0.539 share (log5 0.2009 vs pen 0.2009)  =  x0.9603  |  starter alone would have been 0
Strikeoutswhole staff1.496 → 1.652+0.1560.22120.2212n=0
averagebelow floor
0.2212n=0
averagebelow floor
0.2212000 ok
  splitstarter x1.0 at 0.461 share (log5 0.2212 vs his 0.2212)  +  bullpen x1.1929 at 0.539 share (log5 0.2639 vs pen 0.2639)  =  x1.104  |  starter alone would have been 0
Walkswhole staff0.488 → 0.525+0.0360.08890.0889n=0
averagebelow floor
0.0889n=0
averagebelow floor
0.0889000 ok
  splitstarter x1.0 at 0.461 share (log5 0.0889 vs his 0.0889)  +  bullpen x1.1385 at 0.539 share (log5 0.1012 vs pen 0.1012)  =  x1.0747  |  starter alone would have been 0
Home runswhole staff0.136 → 0.128-0.0080.03040.0304n=0
averagebelow floor
0.0304n=0
averagebelow floor
0.0304000 ok
  splitstarter x1.0 at 0.461 share (log5 0.0304 vs his 0.0304)  +  bullpen x0.8928 at 0.539 share (log5 0.0271 vs pen 0.0271)  =  x0.9422  |  starter alone would have been 0
Neutralising Kyle Teel to the qualified-population mean moves the club's KPI run forecast by 0.0777 runs, and the weighted stage by 0.0295. Interactions make these non-additive across players, so they do not sum to the published movement.
Chase Meidroth2BHitswhole staff0.936 → 0.899-0.0360.21690.2330n=635
Good
0.2169n=0
averagebelow floor
0.2330+0.06500 ok
  splitstarter x1.0 at 0.461 share (log5 0.2330 vs his 0.2169)  +  bullpen x0.9278 at 0.539 share (log5 0.2161 vs pen 0.2009)  =  x0.9611  |  starter alone would have been 0
Strikeoutswhole staff1.042 → 1.151+0.1090.22120.2176n=635
Average
0.2212n=0
averagebelow floor
0.2176-0.01500 ok
  splitstarter x1.0 at 0.461 share (log5 0.2176 vs his 0.2212)  +  bullpen x1.1939 at 0.539 share (log5 0.2598 vs pen 0.2639)  =  x1.1045  |  starter alone would have been 0
Walkswhole staff0.418 → 0.449+0.0310.08890.0936n=635
Average
0.0889n=0
averagebelow floor
0.0936+0.01900 ok
  splitstarter x1.0 at 0.461 share (log5 0.0936 vs his 0.0889)  +  bullpen x1.1376 at 0.539 share (log5 0.1065 vs pen 0.1012)  =  x1.0742  |  starter alone would have been 0
Home runswhole staff0.119 → 0.112-0.0070.03040.0267n=635
Average
0.0304n=0
averagebelow floor
0.0267-0.01500 ok
  splitstarter x1.0 at 0.461 share (log5 0.0267 vs his 0.0304)  +  bullpen x0.8924 at 0.539 share (log5 0.0238 vs pen 0.0271)  =  x0.942  |  starter alone would have been 0
Neutralising Chase Meidroth to the qualified-population mean moves the club's KPI run forecast by 0.0580 runs, and the weighted stage by 0.0220. Interactions make these non-additive across players, so they do not sum to the published movement.
Tristan PetersCFHitswhole staff0.863 → 0.829-0.0340.21690.2266n=484
Good
0.2169n=0
averagebelow floor
0.2266+0.03700 ok
  splitstarter x1.0 at 0.461 share (log5 0.2266 vs his 0.2169)  +  bullpen x0.9273 at 0.539 share (log5 0.2102 vs pen 0.2009)  =  x0.9608  |  starter alone would have been 0
Strikeoutswhole staff0.822 → 0.912+0.0900.22120.1835n=484
Good
0.2212n=0
averagebelow floor
0.1835-0.14200 ok
  splitstarter x1.0 at 0.461 share (log5 0.1835 vs his 0.2212)  +  bullpen x1.2041 at 0.539 share (log5 0.2210 vs pen 0.2639)  =  x1.11  |  starter alone would have been 0
Walkswhole staff0.354 → 0.380+0.0270.08890.0789n=484
Average
0.0889n=0
averagebelow floor
0.0789-0.03800 ok
  splitstarter x1.0 at 0.461 share (log5 0.0789 vs his 0.0889)  +  bullpen x1.1402 at 0.539 share (log5 0.0900 vs pen 0.1012)  =  x1.0756  |  starter alone would have been 0
Home runswhole staff0.111 → 0.104-0.0060.03040.0268n=484
Average
0.0304n=0
averagebelow floor
0.0268-0.01400 ok
  splitstarter x1.0 at 0.461 share (log5 0.0268 vs his 0.0304)  +  bullpen x0.8924 at 0.539 share (log5 0.0239 vs pen 0.0271)  =  x0.942  |  starter alone would have been 0
Neutralising Tristan Peters to the qualified-population mean moves the club's KPI run forecast by 0.2924 runs, and the weighted stage by 0.1111. Interactions make these non-additive across players, so they do not sum to the published movement.
Braden MontgomeryRFHitswhole staff0.799 → 0.767-0.0320.21690.2100n=362
Below average
0.2169n=0
averagebelow floor
0.2100-0.02700 ok
  splitstarter x1.0 at 0.461 share (log5 0.2100 vs his 0.2169)  +  bullpen x0.9258 at 0.539 share (log5 0.1944 vs pen 0.2009)  =  x0.96  |  starter alone would have been 0
Strikeoutswhole staff0.902 → 0.999+0.0970.22120.1991n=362
Average
0.2212n=0
averagebelow floor
0.1991-0.08600 ok
  splitstarter x1.0 at 0.461 share (log5 0.1991 vs his 0.2212)  +  bullpen x1.1994 at 0.539 share (log5 0.2388 vs pen 0.2639)  =  x1.1075  |  starter alone would have been 0
Walkswhole staff0.444 → 0.477+0.0330.08890.1010n=362
Good
0.0889n=0
averagebelow floor
0.1010+0.04700 ok
  splitstarter x1.0 at 0.461 share (log5 0.1010 vs his 0.0889)  +  bullpen x1.1364 at 0.539 share (log5 0.1148 vs pen 0.1012)  =  x1.0735  |  starter alone would have been 0
Home runswhole staff0.091 → 0.086-0.0050.03040.0224n=362
Below average
0.0304n=0
averagebelow floor
0.0224-0.03100 ok
  splitstarter x1.0 at 0.461 share (log5 0.0224 vs his 0.0304)  +  bullpen x0.892 at 0.539 share (log5 0.0200 vs pen 0.0271)  =  x0.9418  |  starter alone would have been 0
Neutralising Braden Montgomery to the qualified-population mean moves the club's KPI run forecast by 0.1599 runs, and the weighted stage by 0.0608. Interactions make these non-additive across players, so they do not sum to the published movement.
Randal GrichukLFHitswhole staff0.868 → 0.834-0.0340.21690.2384n=279
Very good
0.2169n=0
averagebelow floor
0.2384+0.07700 ok
  splitstarter x1.0 at 0.461 share (log5 0.2384 vs his 0.2169)  +  bullpen x0.9283 at 0.539 share (log5 0.2213 vs pen 0.2009)  =  x0.9613  |  starter alone would have been 0
Strikeoutswhole staff0.955 → 1.054+0.1000.22120.2190n=279
Average
0.2212n=0
averagebelow floor
0.2190-0.00800 ok
  splitstarter x1.0 at 0.461 share (log5 0.2190 vs his 0.2212)  +  bullpen x1.1935 at 0.539 share (log5 0.2614 vs pen 0.2639)  =  x1.1043  |  starter alone would have been 0
Walkswhole staff0.231 → 0.249+0.0180.08890.0542n=279
Poor
0.0889n=0
averagebelow floor
0.0542-0.12300 ok
  splitstarter x1.0 at 0.461 share (log5 0.0542 vs his 0.0889)  +  bullpen x1.1445 at 0.539 share (log5 0.0621 vs pen 0.1012)  =  x1.0779  |  starter alone would have been 0
Home runswhole staff0.168 → 0.159-0.0100.03040.0424n=279
Very good
0.0304n=0
averagebelow floor
0.0424+0.04300 ok
  splitstarter x1.0 at 0.461 share (log5 0.0424 vs his 0.0304)  +  bullpen x0.8939 at 0.539 share (log5 0.0379 vs pen 0.0271)  =  x0.9428  |  starter alone would have been 0
Neutralising Randal Grichuk to the qualified-population mean moves the club's KPI run forecast by 0.4031 runs, and the weighted stage by 0.1532. Interactions make these non-additive across players, so they do not sum to the published movement.
Colson MontgomerySSHitswhole staff0.697 → 0.669-0.0280.21690.1929n=630
Poor
0.2169n=0
averagebelow floor
0.1929-0.08600 ok
  splitstarter x1.0 at 0.461 share (log5 0.1929 vs his 0.2169)  +  bullpen x0.9244 at 0.539 share (log5 0.1783 vs pen 0.2009)  =  x0.9592  |  starter alone would have been 0
Strikeoutswhole staff1.404 → 1.522+0.1190.22120.3459n=630
Poor
0.2212n=0
averagebelow floor
0.3459+0.44700 ok
  splitstarter x1.0 at 0.461 share (log5 0.3459 vs his 0.2212)  +  bullpen x1.1571 at 0.539 share (log5 0.4003 vs pen 0.2639)  =  x1.0847  |  starter alone would have been 0
Walkswhole staff0.366 → 0.394+0.0280.08890.0836n=630
Average
0.0889n=0
averagebelow floor
0.0836-0.01900 ok
  splitstarter x1.0 at 0.461 share (log5 0.0836 vs his 0.0889)  +  bullpen x1.1394 at 0.539 share (log5 0.0952 vs pen 0.1012)  =  x1.0752  |  starter alone would have been 0
Home runswhole staff0.174 → 0.164-0.0100.03040.0436n=630
Very good
0.0304n=0
averagebelow floor
0.0436+0.04800 ok
  splitstarter x1.0 at 0.461 share (log5 0.0436 vs his 0.0304)  +  bullpen x0.8941 at 0.539 share (log5 0.0390 vs pen 0.0271)  =  x0.9429  |  starter alone would have been 0
Neutralising Colson Montgomery to the qualified-population mean moves the club's KPI run forecast by 0.3800 runs, and the weighted stage by 0.1444. Interactions make these non-additive across players, so they do not sum to the published movement.
STARTER Sean Newcomb13.8787 BFStarterHits2.562 → 2.608+0.0460.21690.2048n=369
Good
0.22079/9 qualified
lineup mean
0.2084-0.168+0.053-0.002 ok
Strikeouts3.281 → 2.775-0.5060.22120.2265n=369
Average
0.18699/9 qualified
lineup mean
0.1915+0.073-0.476-0.009 ok
Walks1.294 → 1.289-0.0040.08890.0912n=369
Average
0.08869/9 qualified
lineup mean
0.0909+0.031-0.004-0.000 ok
Home runs0.306 → 0.289-0.0170.03040.0215n=369
Very good
0.02879/9 qualified
lineup mean
0.0203-0.123-0.024+0.007 ok
RELIEVER Grant Taylor4.3461 BFRelieverHits0.858 → 0.873+0.0150.21690.1974n=333
Good
0.22079/9 qualified
lineup mean
0.2010-0.085+0.017-0.001 ok
Strikeouts1.291 → 1.107-0.1840.22120.2970n=333
Very good
0.18699/9 qualified
lineup mean
0.2548+0.330-0.149-0.034 ok
Walks0.390 → 0.389-0.0010.08890.0897n=333
Average
0.08869/9 qualified
lineup mean
0.0894+0.003-0.0010 ok
Home runs0.115 → 0.108-0.0060.03040.0264n=333
Good
0.02879/9 qualified
lineup mean
0.0249-0.017-0.007+0.001 ok
RELIEVER Hagen Smith4.1778 BFLong RelieverHits0.469 → 0.477+0.0080.21690.2169n=0
averagebelow floor
0.22079/9 qualified
lineup mean
0.22070+0.0160 ok
Strikeouts1.866 → 1.577-0.2900.22120.2212n=0
averagebelow floor
0.18699/9 qualified
lineup mean
0.18690-0.1430 ok
Walks0.937 → 0.934-0.0030.08890.0889n=0
averagebelow floor
0.08869/9 qualified
lineup mean
0.08860-0.0010 ok
Home runs0.000 → 0.00000.03040.0304n=0
averagebelow floor
0.02879/9 qualified
lineup mean
0.02870-0.0070 ok
RELIEVER Anthony Kay3.4829 BFRelieverHits0.781 → 0.795+0.0140.21690.2242n=686
Below average
0.22079/9 qualified
lineup mean
0.2282+0.026+0.013+0.000 ok
Strikeouts0.640 → 0.536-0.1030.22120.1837n=686
Below average
0.18699/9 qualified
lineup mean
0.1540-0.131-0.120+0.016 ok
Walks0.285 → 0.284-0.0010.08890.0818n=686
Average
0.08869/9 qualified
lineup mean
0.0815-0.025-0.001+0.000 ok
Home runs0.106 → 0.100-0.0060.03040.0305n=686
Average
0.02879/9 qualified
lineup mean
0.0288+0.001-0.0060 ok
RELIEVER Jordan Hicks3.4138 BFMiddle Reliever (High Leverage)Hits0.913 → 0.929+0.0160.21690.2054n=216
Good
0.22079/9 qualified
lineup mean
0.2091-0.039+0.013-0.001 ok
Strikeouts1.235 → 1.055-0.1800.22120.2760n=216
Good
0.18699/9 qualified
lineup mean
0.2357+0.187-0.117-0.020 ok
Walks0.599 → 0.597-0.0020.08890.1258n=216
Poor
0.08869/9 qualified
lineup mean
0.1254+0.126-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.013-0.006+0.001 ok
RELIEVER Bryan Hudson3.1398 BFMiddle Reliever (High Leverage)Hits1.024 → 1.042+0.0180.21690.2287n=282
Below average
0.22079/9 qualified
lineup mean
0.2327+0.037+0.012+0.001 ok
Strikeouts0.787 → 0.664-0.1230.22120.2119n=282
Average
0.18699/9 qualified
lineup mean
0.1787-0.029-0.108+0.004 ok
Walks0.229 → 0.228-0.0010.08890.0728n=282
Good
0.08869/9 qualified
lineup mean
0.0726-0.051-0.001+0.000 ok
Home runs0.073 → 0.069-0.0040.03040.0255n=282
Good
0.02879/9 qualified
lineup mean
0.0241-0.015-0.005+0.001 ok
RELIEVER Erick Fedde2.501 BFRelieverHits0.563 → 0.573+0.0100.21690.2253n=606
Below average
0.22079/9 qualified
lineup mean
0.2292+0.021+0.010+0.000 ok
Strikeouts0.425 → 0.356-0.0700.22120.1701n=606
Poor
0.18699/9 qualified
lineup mean
0.1423-0.128-0.086+0.016 ok
Walks0.216 → 0.215-0.0010.08890.0865n=606
Average
0.08869/9 qualified
lineup mean
0.0862-0.006-0.0010 ok
Home runs0.087 → 0.082-0.0050.03040.0347n=606
Below average
0.02879/9 qualified
lineup mean
0.0328+0.011-0.004-0.001 ok
RELIEVER David Sandlin0.5179 BFRelieverHits0.112 → 0.114+0.0020.21690.2164n=167
Average
0.22079/9 qualified
lineup mean
0.2202-0.000+0.0020 ok
Strikeouts0.121 → 0.102-0.0180.22120.2336n=167
Average
0.18699/9 qualified
lineup mean
0.1978+0.006-0.018-0.001 ok
Walks0.043 → 0.043-0.0000.08890.0832n=167
Average
0.08869/9 qualified
lineup mean
0.0829-0.003-0.0000 ok
Home runs0.017 → 0.016-0.0010.03040.0335n=167
Below average
0.02879/9 qualified
lineup mean
0.0316+0.002-0.001-0.000 ok

Published pitching, integer draw beside the continuous model line

PitcherRoleBFIPexpected IPH int/contSO int/contBB int/contER int/contRate source
Daniel EspinoStarter17.24.03.9383 / 3.6233 / 3.9403 / 1.7312 / 2.157all_players_stats_recent_season_blend
Tim HerrinMiddle Reliever4.41.01.0001 / 0.8681 / 0.9721 / 0.4910 / 0.312all_players_stats_recent_season_blend
Erik SabrowskiMiddle Reliever (High Leverage)4.21.01.0001 / 0.5251 / 1.5680 / 0.6251 / 0.376all_players_stats_recent_season_blend
Shawn ArmstrongMiddle Reliever (High Leverage)4.23.01.0002 / 0.6843 / 0.8810 / 0.4720 / 0.402all_players_stats_recent_season_blend
Sean NewcombStarter13.93.13.3412 / 2.5622 / 3.2812 / 1.2941 / 1.187all_players_stats_recent_season_blend
Hagen SmithLong Reliever5.41.11.3371 / 0.4690 / 1.8661 / 0.9370 / 0.279all_players_stats_recent_season_blend
Jordan HicksMiddle Reliever (High Leverage)4.51.01.0031 / 0.9131 / 1.2351 / 0.5992 / 0.488all_players_stats_recent_season_blend
Bryan HudsonMiddle Reliever (High Leverage)4.33.11.0034 / 1.0243 / 0.7871 / 0.2292 / 0.317all_players_stats_recent_season_blend

Audit: NO DEFECT FOUND

InvariantVerdictEvidence
blend arithmetic away_runsPASS5.0000 + 0.34 x (5.0015 - 5.0000) = 5.0005, recorded 5.0005
blend arithmetic home_runsPASS4.0000 + 0.38 x (5.1721 - 4.0000) = 4.4454, recorded 4.4454
blend arithmetic home_winPASS0.4514 + 0.00 x (0.5275 - 0.4514) = 0.4514, recorded 0.4514
published rounding faithful to the blendPASSblended 5.0005-4.4454 rounds to 5-4, layer published 5-4
published probability on the score's sidePASS5-4 with p(home) 0.451379
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 3.938
away starter batters faced inside the real bandPASSDaniel Espino projected 17.2 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 3.341
home starter batters faced inside the real bandPASSSean Newcomb projected 13.9 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
20261007_LAD@ATL — published 6-4, 156 checks, all pass
Artifact. 20261007_LAD@ATL__20261008T024931Z.json, phase post_start_rerun, generated 2026-10-08T02:49:31, first pitch 2026-10-07T22:00:00.
Published 6 - 4 with p(home) 0.492823. 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.695043839817618 - 3.97080993507530120000noBase ML historical model prediction
2. variance_applied5 - 4+0.3050+0.0292+0.3050+0.0292yesDeterministic baseline target (variance factor 1.0)
3. enhanced_prediction5 - 400+0.3050+0.0292noEnhanced ML with recent form, H2H, low-score analysis (confidence shrunk by matchup_recency_guardrail)
4. kpi_layer5 - 400+0.3050+0.0292noaway +0.0409; home +0.6826
Savant KPI blend applied to the model target
5. embedded_savant_run_environment6 - 4+1.00000+1.3050+0.0292yesaway +0.5111; home -0.2760
Target score adjusted by temporal Savant lineup quality versus opposing starter quality
6. fundamental_edge_target_review6 - 400+1.3050+0.0292noRefreshed score target and win probability after Savant/pitcher/team-strength adjustments
7. capped_target6 - 400+1.3050+0.0292noCapped at max 12 realistic runs
8. simulation_result6 - 4----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.12040.344.04094.0000 + 0.34 × (4.1204 − 4.0000) = 4.0409PASS
home_runs3.00004.79620.383.68263.0000 + 0.38 × (4.7962 − 3.0000) = 3.6826PASS
home_win0.49160.68760.000.49160.4916 + 0.00 × (0.6876 − 0.4916) = 0.4916PASS

Published by the layer: away 5, home 4, p(home) 0.491557, continuous away 4.0409 / home 3.6826

Inputs and gates. candidate 20261007T091423Z_47b9db81, value age 10 days, lineup coverage away 0.8830 / home 0.8947, 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.2358 + sum of contributions = 4.1204; prediction 4.1204; contributions outside the top listed -0.0462 runs

FeatureRawStandardisedRuns contributedWhich KPIs it is built from
away_off_contact0.51301.979+0.6800offence group: batter_barrel_rate_vs_fastball, batter_barrel_rate_vs_breaking, batter_barrel_rate_vs_offspeed, batter_hard_hit_rate_vs_fastball ...
home_platoon_barrel0.63901.994-0.6751platoon term, selected by the opposing starter's throwing hand
home_x_breaking0.49552.484+0.5070batter x pitcher interaction: pitcher_whiff_rate_breaking, batter_whiff_rate_vs_breaking
home_off_top3_contact1.27011.656-0.3680mean of the three best contact bats, a tail a club mean cannot express
home_off_qualified_share0.89471.086-0.3364share of the lineup carrying a qualifying sample, not a skill measurement
home_sp_whiff1.05831.948-0.3142starter group: pitcher_whiff_rate, pitcher_whiff_rate_fastball, pitcher_whiff_rate_breaking
home_off_contact0.39661.442+0.2872offence group: batter_barrel_rate_vs_fastball, batter_barrel_rate_vs_breaking, batter_barrel_rate_vs_offspeed, batter_hard_hit_rate_vs_fastball ...
away_off_power_spread0.5497-0.956-0.2260offence group (dispersion across the lineup, not its mean): batter_home_run_rate, batter_bat_speed
home_sp_command0.76731.214+0.1930starter group: pitcher_strikeout_rate, pitcher_walk_rate
away_off_discipline0.27761.031+0.1834offence 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.5238 + sum of contributions = 4.7962; prediction 4.7962; contributions outside the top listed 0.1885 runs

FeatureRawStandardisedRuns contributedWhich KPIs it is built from
home_off_power0.52442.160+0.5036offence group: batter_home_run_rate, batter_bat_speed
away_off_top3_contact1.30121.698-0.3773mean of the three best contact bats, a tail a club mean cannot express
away_off_ground0.64962.051+0.3746offence group: batter_ground_ball_rate_vs_slider, batter_ground_ball_rate_vs_fastball
home_sp_whiff1.05831.948-0.3729starter group: pitcher_whiff_rate, pitcher_whiff_rate_fastball, pitcher_whiff_rate_breaking
home_x_breaking0.49552.484-0.3591batter x pitcher interaction: pitcher_whiff_rate_breaking, batter_whiff_rate_vs_breaking
home_off_contact_spread0.89401.138+0.3286offence 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_contact0.51301.979+0.3203offence group: batter_barrel_rate_vs_fastball, batter_barrel_rate_vs_breaking, batter_barrel_rate_vs_offspeed, batter_hard_hit_rate_vs_fastball ...
home_platoon_barrel0.63901.994-0.3183platoon term, selected by the opposing starter's throwing hand
home_off_top3_contact1.27011.656-0.2985mean of the three best contact bats, a tail a club mean cannot express
home_off_qualified_share0.89471.086+0.2830share of the lineup carrying a qualifying sample, not a skill measurement

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

LAD against Edgardo Henriquez (RHP)

The pipeline applied no club-wide rescale to LAD hitter lines.
Opposing staff exposure. These hitters face the starter for 20.8794 of 37.04 projected batters (56.4%) and the 2 projected relievers for the remaining 43.6%. 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
Mookie BettsSSHitswhole staff1.057 → 1.056-0.0000.21690.2268n=523
Good
0.2222n=614
Average
0.2323+0.042+0.023+0.001 ok
  splitstarter x1.0243 at 0.564 share (log5 0.2323 vs his 0.2222)  +  bullpen x0.9682 at 0.436 share (log5 0.2196 vs pen 0.2099)  =  x0.9998  |  starter alone would have been +0.026
Strikeoutswhole staff0.524 → 0.531+0.0060.22120.1168n=523
Very good
0.2229n=614
Average
0.1178-0.443+0.007-0.003 ok
  splitstarter x1.0087 at 0.564 share (log5 0.1178 vs his 0.2229)  +  bullpen x1.0164 at 0.436 share (log5 0.1187 vs pen 0.2244)  =  x1.0121  |  starter alone would have been +0.005
Walkswhole staff0.408 → 0.373-0.0360.08890.0866n=523
Average
0.0778n=614
Good
0.0757-0.010-0.047+0.001 ok
  splitstarter x0.8744 at 0.564 share (log5 0.0757 vs his 0.0778)  +  bullpen x0.9627 at 0.436 share (log5 0.0833 vs pen 0.0856)  =  x0.9129  |  starter alone would have been -0.051
Home runswhole staff0.158 → 0.159+0.0010.03040.0394n=523
Good
0.0317n=614
Average
0.0410+0.038+0.005+0.002 ok
  splitstarter x1.0412 at 0.564 share (log5 0.0410 vs his 0.0317)  +  bullpen x0.9639 at 0.436 share (log5 0.0380 vs pen 0.0293)  =  x1.0075  |  starter alone would have been +0.006
Neutralising Mookie Betts to the qualified-population mean moves the club's KPI run forecast by 0.3096 runs, and the weighted stage by 0.1053. Interactions make these non-additive across players, so they do not sum to the published movement.
Freddie Freeman1BHitswhole staff1.060 → 1.060-0.0000.21690.2394n=652
Very good
0.2222n=614
Average
0.2451+0.098+0.023+0.002 ok
  splitstarter x1.0239 at 0.564 share (log5 0.2451 vs his 0.2222)  +  bullpen x0.9687 at 0.436 share (log5 0.2319 vs pen 0.2099)  =  x0.9998  |  starter alone would have been +0.025
Strikeoutswhole staff0.729 → 0.738+0.0080.22120.1781n=652
Good
0.2229n=614
Average
0.1795-0.188+0.007-0.001 ok
  splitstarter x1.0081 at 0.564 share (log5 0.1795 vs his 0.2229)  +  bullpen x1.0152 at 0.436 share (log5 0.1808 vs pen 0.2244)  =  x1.0112  |  starter alone would have been +0.006
Walkswhole staff0.448 → 0.409-0.0380.08890.0993n=652
Average
0.0778n=614
Good
0.0870+0.045-0.049-0.005 ok
  splitstarter x0.8759 at 0.564 share (log5 0.0870 vs his 0.0778)  +  bullpen x0.9632 at 0.436 share (log5 0.0957 vs pen 0.0856)  =  x0.914  |  starter alone would have been -0.056
Home runswhole staff0.139 → 0.140+0.0010.03040.0262n=652
Average
0.0317n=614
Average
0.0273-0.018+0.005-0.001 ok
  splitstarter x1.0418 at 0.564 share (log5 0.0273 vs his 0.0317)  +  bullpen x0.9634 at 0.436 share (log5 0.0253 vs pen 0.0293)  =  x1.0076  |  starter alone would have been +0.006
Neutralising Freddie Freeman to the qualified-population mean moves the club's KPI run forecast by 0.1949 runs, and the weighted stage by 0.0662. Interactions make these non-additive across players, so they do not sum to the published movement.
Will SmithCHitswhole staff0.935 → 0.934-0.0000.21690.2185n=276
Average
0.2222n=614
Average
0.2238+0.007+0.022+0.000 ok
  splitstarter x1.0245 at 0.564 share (log5 0.2238 vs his 0.2222)  +  bullpen x0.9679 at 0.436 share (log5 0.2114 vs pen 0.2099)  =  x0.9998  |  starter alone would have been +0.023
Strikeoutswhole staff0.699 → 0.707+0.0080.22120.1718n=276
Good
0.2229n=614
Average
0.1732-0.204+0.007-0.001 ok
  splitstarter x1.0082 at 0.564 share (log5 0.1732 vs his 0.2229)  +  bullpen x1.0153 at 0.436 share (log5 0.1744 vs pen 0.2244)  =  x1.0113  |  starter alone would have been +0.006
Walkswhole staff0.437 → 0.400-0.0370.08890.1129n=276
Good
0.0778n=614
Good
0.0990+0.099-0.046-0.011 ok
  splitstarter x0.8776 at 0.564 share (log5 0.0990 vs his 0.0778)  +  bullpen x0.9638 at 0.436 share (log5 0.1088 vs pen 0.0856)  =  x0.9152  |  starter alone would have been -0.053
Home runswhole staff0.159 → 0.160+0.0010.03040.0334n=276
Average
0.0317n=614
Average
0.0348+0.012+0.005+0.001 ok
  splitstarter x1.0415 at 0.564 share (log5 0.0348 vs his 0.0317)  +  bullpen x0.9637 at 0.436 share (log5 0.0322 vs pen 0.0293)  =  x1.0076  |  starter alone would have been +0.007
Neutralising Will Smith to the qualified-population mean moves the club's KPI run forecast by 0.1339 runs, and the weighted stage by 0.0455. Interactions make these non-additive across players, so they do not sum to the published movement.
Shohei OhtaniDHHitswhole staff0.896 → 0.896-0.0000.21690.2255n=613
Good
0.2222n=614
Average
0.2310+0.036+0.023+0.001 ok
  splitstarter x1.0243 at 0.564 share (log5 0.2310 vs his 0.2222)  +  bullpen x0.9682 at 0.436 share (log5 0.2183 vs pen 0.2099)  =  x0.9998  |  starter alone would have been +0.022
Strikeoutswhole staff1.012 → 1.023+0.0100.22120.2445n=613
Average
0.2229n=614
Average
0.2463+0.099+0.007+0.001 ok
  splitstarter x1.0074 at 0.564 share (log5 0.2463 vs his 0.2229)  +  bullpen x1.014 at 0.436 share (log5 0.2479 vs pen 0.2244)  =  x1.0103  |  starter alone would have been +0.007
Walkswhole staff0.487 → 0.446-0.0410.08890.1251n=613
Very good
0.0778n=614
Good
0.1100+0.154-0.047-0.017 ok
  splitstarter x0.8791 at 0.564 share (log5 0.1100 vs his 0.0778)  +  bullpen x0.9642 at 0.436 share (log5 0.1206 vs pen 0.0856)  =  x0.9162  |  starter alone would have been -0.059
Home runswhole staff0.181 → 0.182+0.0010.03040.0434n=613
Very good
0.0317n=614
Average
0.0451+0.055+0.005+0.002 ok
  splitstarter x1.041 at 0.564 share (log5 0.0451 vs his 0.0317)  +  bullpen x0.9641 at 0.436 share (log5 0.0418 vs pen 0.0293)  =  x1.0074  |  starter alone would have been +0.007
Neutralising Shohei Ohtani to the qualified-population mean moves the club's KPI run forecast by -0.0401 runs, and the weighted stage by -0.0136. Interactions make these non-additive across players, so they do not sum to the published movement.
Teoscar HernándezLFHitswhole staff0.952 → 0.951-0.0000.21690.2292n=487
Good
0.2222n=614
Average
0.2347+0.049+0.021+0.001 ok
  splitstarter x1.0242 at 0.564 share (log5 0.2347 vs his 0.2222)  +  bullpen x0.9683 at 0.436 share (log5 0.2219 vs pen 0.2099)  =  x0.9998  |  starter alone would have been +0.023
Strikeoutswhole staff1.057 → 1.067+0.0110.22120.2684n=487
Below average
0.2229n=614
Average
0.2703+0.186+0.007+0.001 ok
  splitstarter x1.0072 at 0.564 share (log5 0.2703 vs his 0.2229)  +  bullpen x1.0135 at 0.436 share (log5 0.2720 vs pen 0.2244)  =  x1.0099  |  starter alone would have been +0.008
Walkswhole staff0.280 → 0.255-0.0240.08890.0868n=487
Average
0.0778n=614
Good
0.0759-0.009-0.044+0.001 ok
  splitstarter x0.8744 at 0.564 share (log5 0.0759 vs his 0.0778)  +  bullpen x0.9627 at 0.436 share (log5 0.0835 vs pen 0.0856)  =  x0.9129  |  starter alone would have been -0.035
Home runswhole staff0.134 → 0.135+0.0010.03040.0320n=487
Average
0.0317n=614
Average
0.0333+0.006+0.005+0.000 ok
  splitstarter x1.0416 at 0.564 share (log5 0.0333 vs his 0.0317)  +  bullpen x0.9637 at 0.436 share (log5 0.0308 vs pen 0.0293)  =  x1.0076  |  starter alone would have been +0.006
Neutralising Teoscar Hernández to the qualified-population mean moves the club's KPI run forecast by -0.0332 runs, and the weighted stage by -0.0113. Interactions make these non-additive across players, so they do not sum to the published movement.
Max Muncy3BHitswhole staff0.913 → 0.913-0.0000.21690.2173n=556
Average
0.2222n=614
Average
0.2226+0.002+0.0210 ok
  splitstarter x1.0246 at 0.564 share (log5 0.2226 vs his 0.2222)  +  bullpen x0.9678 at 0.436 share (log5 0.2103 vs pen 0.2099)  =  x0.9998  |  starter alone would have been +0.022
Strikeoutswhole staff0.966 → 0.976+0.0100.22120.2493n=556
Below average
0.2229n=614
Average
0.2512+0.111+0.007+0.001 ok
  splitstarter x1.0074 at 0.564 share (log5 0.2512 vs his 0.2229)  +  bullpen x1.0139 at 0.436 share (log5 0.2528 vs pen 0.2244)  =  x1.0102  |  starter alone would have been +0.007
Walkswhole staff0.381 → 0.349-0.0320.08890.1105n=556
Good
0.0778n=614
Good
0.0969+0.085-0.044-0.009 ok
  splitstarter x0.8773 at 0.564 share (log5 0.0969 vs his 0.0778)  +  bullpen x0.9637 at 0.436 share (log5 0.1065 vs pen 0.0856)  =  x0.915  |  starter alone would have been -0.047
Home runswhole staff0.184 → 0.185+0.0010.03040.0451n=556
Very good
0.0317n=614
Average
0.0470+0.058+0.005+0.002 ok
  splitstarter x1.041 at 0.564 share (log5 0.0470 vs his 0.0317)  +  bullpen x0.9641 at 0.436 share (log5 0.0435 vs pen 0.0293)  =  x1.0074  |  starter alone would have been +0.007
Neutralising Max Muncy to the qualified-population mean moves the club's KPI run forecast by 0.0012 runs, and the weighted stage by 0.0004. Interactions make these non-additive across players, so they do not sum to the published movement.
Enrique Hernández2BHitswhole staff0.805 → 0.805-0.0000.21690.2169n=0
averagebelow floor
0.2222n=614
Average
0.22220+0.0180 ok
  splitstarter x1.0246 at 0.564 share (log5 0.2222 vs his 0.2222)  +  bullpen x0.9678 at 0.436 share (log5 0.2099 vs pen 0.2099)  =  x0.9998  |  starter alone would have been +0.020
Strikeoutswhole staff0.980 → 0.990+0.0100.22120.2212n=0
averagebelow floor
0.2229n=614
Average
0.22290+0.0060 ok
  splitstarter x1.0077 at 0.564 share (log5 0.2229 vs his 0.2229)  +  bullpen x1.0144 at 0.436 share (log5 0.2244 vs pen 0.2244)  =  x1.0106  |  starter alone would have been +0.007
Walkswhole staff0.223 → 0.204-0.0190.08890.0889n=0
averagebelow floor
0.0778n=614
Good
0.07780-0.0390 ok
  splitstarter x0.8747 at 0.564 share (log5 0.0778 vs his 0.0778)  +  bullpen x0.9628 at 0.436 share (log5 0.0856 vs pen 0.0856)  =  x0.9131  |  starter alone would have been -0.028
Home runswhole staff0.137 → 0.138+0.0010.03040.0304n=0
averagebelow floor
0.0317n=614
Average
0.03170+0.0040 ok
  splitstarter x1.0416 at 0.564 share (log5 0.0317 vs his 0.0317)  +  bullpen x0.9636 at 0.436 share (log5 0.0293 vs pen 0.0293)  =  x1.0076  |  starter alone would have been +0.006
Neutralising Enrique Hernández to the qualified-population mean moves the club's KPI run forecast by 0.0000 runs, and the weighted stage by 0.0000. Interactions make these non-additive across players, so they do not sum to the published movement.
Kyle TuckerRFHitswhole staff0.791 → 0.791-0.0000.21690.2076n=622
Below average
0.2222n=614
Average
0.2127-0.037+0.021-0.001 ok
  splitstarter x1.0249 at 0.564 share (log5 0.2127 vs his 0.2222)  +  bullpen x0.9674 at 0.436 share (log5 0.2008 vs pen 0.2099)  =  x0.9998  |  starter alone would have been +0.020
Strikeoutswhole staff0.659 → 0.666+0.0070.22120.1711n=622
Good
0.2229n=614
Average
0.1725-0.197+0.007-0.001 ok
  splitstarter x1.0082 at 0.564 share (log5 0.1725 vs his 0.2229)  +  bullpen x1.0154 at 0.436 share (log5 0.1737 vs pen 0.2244)  =  x1.0113  |  starter alone would have been +0.005
Walkswhole staff0.455 → 0.416-0.0380.08890.1195n=622
Very good
0.0778n=614
Good
0.1050+0.120-0.044-0.013 ok
  splitstarter x0.8784 at 0.564 share (log5 0.1050 vs his 0.0778)  +  bullpen x0.964 at 0.436 share (log5 0.1152 vs pen 0.0856)  =  x0.9157  |  starter alone would have been -0.055
Home runswhole staff0.119 → 0.120+0.0010.03040.0282n=622
Average
0.0317n=614
Average
0.0294-0.008+0.005-0.000 ok
  splitstarter x1.0417 at 0.564 share (log5 0.0294 vs his 0.0317)  +  bullpen x0.9635 at 0.436 share (log5 0.0272 vs pen 0.0293)  =  x1.0076  |  starter alone would have been +0.005
Neutralising Kyle Tucker to the qualified-population mean moves the club's KPI run forecast by -0.0192 runs, and the weighted stage by -0.0065. Interactions make these non-additive across players, so they do not sum to the published movement.
Andy PagesCFHitswhole staff0.840 → 0.839-0.0000.21690.2323n=569
Good
0.2222n=614
Average
0.2379+0.056+0.019+0.001 ok
  splitstarter x1.0241 at 0.564 share (log5 0.2379 vs his 0.2222)  +  bullpen x0.9684 at 0.436 share (log5 0.2250 vs pen 0.2099)  =  x0.9998  |  starter alone would have been +0.020
Strikeoutswhole staff0.731 → 0.739+0.0080.22120.1971n=569
Average
0.2229n=614
Average
0.1987-0.087+0.006-0.001 ok
  splitstarter x1.0079 at 0.564 share (log5 0.1987 vs his 0.2229)  +  bullpen x1.0149 at 0.436 share (log5 0.2001 vs pen 0.2244)  =  x1.011  |  starter alone would have been +0.006
Walkswhole staff0.337 → 0.308-0.0290.08890.0866n=569
Average
0.0778n=614
Good
0.0757-0.008-0.040+0.001 ok
  splitstarter x0.8744 at 0.564 share (log5 0.0757 vs his 0.0778)  +  bullpen x0.9627 at 0.436 share (log5 0.0834 vs pen 0.0856)  =  x0.9129  |  starter alone would have been -0.042
Home runswhole staff0.136 → 0.137+0.0010.03040.0372n=569
Good
0.0317n=614
Average
0.0388+0.025+0.005+0.001 ok
  splitstarter x1.0413 at 0.564 share (log5 0.0388 vs his 0.0317)  +  bullpen x0.9638 at 0.436 share (log5 0.0359 vs pen 0.0293)  =  x1.0075  |  starter alone would have been +0.006
Neutralising Andy Pages to the qualified-population mean moves the club's KPI run forecast by 0.1699 runs, and the weighted stage by 0.0578. Interactions make these non-additive across players, so they do not sum to the published movement.
STARTER Tyler Glasnow20.9371 BFStarterHits3.503 → 3.637+0.1340.21690.1869n=288
Very good
0.22498/9 qualified
lineup mean
0.1941-0.628+0.167-0.017 ok
Strikeouts6.814 → 6.540-0.2750.22120.3143n=288
Very good
0.21118/9 qualified
lineup mean
0.3017+1.950-0.211-0.054 ok
Walks1.829 → 1.698-0.1310.08890.0876n=288
Average
0.08268/9 qualified
lineup mean
0.0813-0.029-0.133+0.002 ok
Home runs0.393 → 0.454+0.0610.03040.0280n=288
Average
0.03518/9 qualified
lineup mean
0.0324-0.050+0.099-0.007 ok
RELIEVER Kris Bubic2.7485 BFRelieverHits0.548 → 0.569+0.0210.21690.1996n=226
Good
0.22498/9 qualified
lineup mean
0.2071-0.048+0.022-0.001 ok
Strikeouts0.662 → 0.632-0.0290.22120.2408n=226
Average
0.21118/9 qualified
lineup mean
0.2301+0.054-0.028-0.002 ok
Walks0.287 → 0.267-0.0200.08890.1043n=226
Below average
0.08268/9 qualified
lineup mean
0.0970+0.042-0.018-0.003 ok
Home runs0.072 → 0.083+0.0110.03040.0261n=226
Good
0.03518/9 qualified
lineup mean
0.0302-0.012+0.013-0.002 ok
RELIEVER Brock Stewart2.2263 BFMiddle Reliever (High Leverage)Hits0.522 → 0.541+0.0190.21690.2169n=0
averagebelow floor
0.22498/9 qualified
lineup mean
0.22490+0.0180 ok
Strikeouts0.968 → 0.924-0.0440.22120.2212n=0
averagebelow floor
0.21118/9 qualified
lineup mean
0.21110-0.0220 ok
Walks0.330 → 0.306-0.0240.08890.0889n=0
averagebelow floor
0.08268/9 qualified
lineup mean
0.08260-0.0140 ok
Home runs0.058 → 0.067+0.0090.03040.0304n=0
averagebelow floor
0.03518/9 qualified
lineup mean
0.03510+0.0110 ok
RELIEVER Roki Sasaki2.2029 BFMiddle RelieverHits0.868 → 0.900+0.0320.21690.2166n=522
Average
0.22498/9 qualified
lineup mean
0.2246-0.001+0.0180 ok
Strikeouts1.578 → 1.507-0.0710.22120.2337n=522
Average
0.21118/9 qualified
lineup mean
0.2232+0.028-0.022-0.001 ok
Walks0.502 → 0.466-0.0360.08890.0913n=522
Average
0.08268/9 qualified
lineup mean
0.0847+0.005-0.014-0.000 ok
Home runs0.088 → 0.102+0.0140.03040.0367n=522
Poor
0.03518/9 qualified
lineup mean
0.0424+0.014+0.010+0.002 ok
RELIEVER Alex Vesia2.1606 BFMiddle RelieverHits0.387 → 0.402+0.0150.21690.1766n=237
Very good
0.22498/9 qualified
lineup mean
0.1835-0.087+0.017-0.003 ok
Strikeouts1.340 → 1.284-0.0560.22120.2892n=237
Very good
0.21118/9 qualified
lineup mean
0.2772+0.147-0.022-0.004 ok
Walks0.450 → 0.419-0.0310.08890.1166n=237
Poor
0.08268/9 qualified
lineup mean
0.1085+0.060-0.014-0.004 ok
Home runs0.052 → 0.060+0.0080.03040.0257n=237
Good
0.03518/9 qualified
lineup mean
0.0297-0.010+0.010-0.002 ok
RELIEVER Evan Phillips1.9783 BFRelieverHits0.429 → 0.445+0.0160.21690.2169n=0
averagebelow floor
0.22498/9 qualified
lineup mean
0.22490+0.0160 ok
Strikeouts0.438 → 0.418-0.0200.22120.2212n=0
averagebelow floor
0.21118/9 qualified
lineup mean
0.21110-0.0200 ok
Walks0.176 → 0.163-0.0130.08890.0889n=0
averagebelow floor
0.08268/9 qualified
lineup mean
0.08260-0.0130 ok
Home runs0.060 → 0.069+0.0090.03040.0304n=0
averagebelow floor
0.03518/9 qualified
lineup mean
0.03510+0.0090 ok
RELIEVER Tanner Scott1.7025 BFRelieverHits0.349 → 0.362+0.0130.21690.2051n=251
Good
0.22498/9 qualified
lineup mean
0.2127-0.020+0.014-0.001 ok
Strikeouts0.513 → 0.492-0.0210.22120.3011n=251
Very good
0.21118/9 qualified
lineup mean
0.2888+0.136-0.017-0.004 ok
Walks0.121 → 0.112-0.0090.08890.0710n=251
Good
0.08268/9 qualified
lineup mean
0.0658-0.030-0.011+0.002 ok
Home runs0.043 → 0.050+0.0070.03040.0252n=251
Good
0.03518/9 qualified
lineup mean
0.0291-0.009+0.008-0.001 ok
RELIEVER Edgardo Henriquez1.5698 BFRelieverHits0.295 → 0.306+0.0110.21690.1880n=242
Very good
0.22498/9 qualified
lineup mean
0.1952-0.045+0.013-0.001 ok
Strikeouts0.432 → 0.414-0.0180.22120.2754n=242
Good
0.21118/9 qualified
lineup mean
0.2637+0.085-0.016-0.003 ok
Walks0.153 → 0.142-0.0110.08890.0976n=242
Average
0.08268/9 qualified
lineup mean
0.0907+0.014-0.010-0.001 ok
Home runs0.033 → 0.038+0.0050.03040.0212n=242
Very good
0.03518/9 qualified
lineup mean
0.0245-0.015+0.007-0.002 ok

ATL against Dylan Lee (LHP)

The pipeline applied one club-wide ×1.2275 to every ATL hitter line, identical for the leadoff hitter and the ninth bat.
Opposing staff exposure. These hitters face the starter for 20.9371 of 35.526 projected batters (58.9%) and the 3 projected relievers for the remaining 41.1%. 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
Michael Harris IICFHitswhole staff1.014 → 0.910-0.1040.21690.2533n=608
Very good
0.1869n=288
Very good
0.2197+0.156-0.129-0.015 ok
  splitstarter x0.8674 at 0.589 share (log5 0.2197 vs his 0.1869)  +  bullpen x0.9394 at 0.411 share (log5 0.2379 vs pen 0.2031)  =  x0.897  |  starter alone would have been -0.135
Strikeoutswhole staff1.099 → 1.453+0.3530.22120.1915n=608
Average
0.3143n=288
Very good
0.2766-0.127+0.399-0.035 ok
  splitstarter x1.4442 at 0.589 share (log5 0.2766 vs his 0.3143)  +  bullpen x1.1454 at 0.411 share (log5 0.2194 vs pen 0.2520)  =  x1.3215  |  starter alone would have been +0.488
Walkswhole staff0.232 → 0.237+0.0050.08890.0462n=608
Poor
0.0876n=288
Average
0.0455-0.183-0.006+0.003 ok
  splitstarter x0.9839 at 0.589 share (log5 0.0455 vs his 0.0876)  +  bullpen x1.0732 at 0.411 share (log5 0.0496 vs pen 0.0951)  =  x1.0206  |  starter alone would have been -0.004
Home runswhole staff0.197 → 0.182-0.0150.03040.0379n=608
Good
0.0280n=288
Average
0.0349+0.032-0.010-0.002 ok
  splitstarter x0.9221 at 0.589 share (log5 0.0349 vs his 0.0280)  +  bullpen x0.9301 at 0.411 share (log5 0.0352 vs pen 0.0282)  =  x0.9254  |  starter alone would have been -0.015
Neutralising Michael Harris II to the qualified-population mean moves the club's KPI run forecast by 0.3276 runs, and the weighted stage by 0.1245. Interactions make these non-additive across players, so they do not sum to the published movement.
Ronald Acuña Jr.RFHitswhole staff0.952 → 0.851-0.1020.21690.2212n=457
Average
0.1869n=288
Very good
0.1908+0.019-0.130-0.002 ok
  splitstarter x0.8624 at 0.589 share (log5 0.1908 vs his 0.1869)  +  bullpen x0.9369 at 0.411 share (log5 0.2073 vs pen 0.2031)  =  x0.893  |  starter alone would have been -0.131
Strikeoutswhole staff1.124 → 1.468+0.3440.22120.2190n=457
Average
0.3143n=288
Very good
0.3116-0.009+0.402-0.002 ok
  splitstarter x1.4227 at 0.589 share (log5 0.3116 vs his 0.3143)  +  bullpen x1.1398 at 0.411 share (log5 0.2497 vs pen 0.2520)  =  x1.3065  |  starter alone would have been +0.475
Walkswhole staff0.458 → 0.467+0.0090.08890.1104n=457
Good
0.0876n=288
Average
0.1087+0.093-0.006-0.001 ok
  splitstarter x0.985 at 0.589 share (log5 0.1087 vs his 0.0876)  +  bullpen x1.0679 at 0.411 share (log5 0.1179 vs pen 0.0951)  =  x1.019  |  starter alone would have been -0.007
Home runswhole staff0.175 → 0.162-0.0130.03040.0389n=457
Good
0.0280n=288
Average
0.0358+0.037-0.010-0.003 ok
  splitstarter x0.9222 at 0.589 share (log5 0.0358 vs his 0.0280)  +  bullpen x0.9302 at 0.411 share (log5 0.0361 vs pen 0.0282)  =  x0.9255  |  starter alone would have been -0.014
Neutralising Ronald Acuña Jr. to the qualified-population mean moves the club's KPI run forecast by 0.2291 runs, and the weighted stage by 0.0871. Interactions make these non-additive across players, so they do not sum to the published movement.
Matt Olson1BHitswhole staff0.865 → 0.773-0.0920.21690.2232n=682
Average
0.1869n=288
Very good
0.1926+0.027-0.128-0.003 ok
  splitstarter x0.8627 at 0.589 share (log5 0.1926 vs his 0.1869)  +  bullpen x0.9371 at 0.411 share (log5 0.2092 vs pen 0.2031)  =  x0.8933  |  starter alone would have been -0.119
Strikeoutswhole staff1.184 → 1.533+0.3490.22120.2406n=682
Average
0.3143n=288
Very good
0.3383+0.083+0.397+0.020 ok
  splitstarter x1.4063 at 0.589 share (log5 0.3383 vs his 0.3143)  +  bullpen x1.1354 at 0.411 share (log5 0.2731 vs pen 0.2520)  =  x1.295  |  starter alone would have been +0.481
Walkswhole staff0.446 → 0.454+0.0090.08890.0919n=682
Average
0.0876n=288
Average
0.0905+0.013-0.006-0.000 ok
  splitstarter x0.9847 at 0.589 share (log5 0.0905 vs his 0.0876)  +  bullpen x1.0695 at 0.411 share (log5 0.0982 vs pen 0.0951)  =  x1.0195  |  starter alone would have been -0.007
Home runswhole staff0.232 → 0.215-0.0170.03040.0518n=682
Very good
0.0280n=288
Average
0.0478+0.091-0.010-0.007 ok
  splitstarter x0.9231 at 0.589 share (log5 0.0478 vs his 0.0280)  +  bullpen x0.931 at 0.411 share (log5 0.0482 vs pen 0.0282)  =  x0.9263  |  starter alone would have been -0.018
Neutralising Matt Olson to the qualified-population mean moves the club's KPI run forecast by 0.4574 runs, and the weighted stage by 0.1738. Interactions make these non-additive across players, so they do not sum to the published movement.
Ozzie Albies2BHitswhole staff0.773 → 0.690-0.0830.21690.2154n=667
Average
0.1869n=288
Very good
0.1856-0.006-0.119+0.001 ok
  splitstarter x0.8616 at 0.589 share (log5 0.1856 vs his 0.1869)  +  bullpen x0.9365 at 0.411 share (log5 0.2017 vs pen 0.2031)  =  x0.8924  |  starter alone would have been -0.107
Strikeoutswhole staff0.781 → 1.047+0.2660.22120.1576n=667
Good
0.3143n=288
Very good
0.2319-0.253+0.371-0.075 ok
  splitstarter x1.4717 at 0.589 share (log5 0.2319 vs his 0.3143)  +  bullpen x1.1524 at 0.411 share (log5 0.1816 vs pen 0.2520)  =  x1.3406  |  starter alone would have been +0.368
Walkswhole staff0.345 → 0.352+0.0070.08890.0707n=667
Below average
0.0876n=288
Average
0.0696-0.072-0.005+0.001 ok
  splitstarter x0.9843 at 0.589 share (log5 0.0696 vs his 0.0876)  +  bullpen x1.0712 at 0.411 share (log5 0.0758 vs pen 0.0951)  =  x1.02  |  starter alone would have been -0.005
Home runswhole staff0.140 → 0.130-0.0110.03040.0322n=667
Average
0.0280n=288
Average
0.0297+0.007-0.009-0.001 ok
  splitstarter x0.9217 at 0.589 share (log5 0.0297 vs his 0.0280)  +  bullpen x0.9297 at 0.411 share (log5 0.0300 vs pen 0.0282)  =  x0.925  |  starter alone would have been -0.011
Neutralising Ozzie Albies to the qualified-population mean moves the club's KPI run forecast by 0.4581 runs, and the weighted stage by 0.1741. Interactions make these non-additive across players, so they do not sum to the published movement.
Drake BaldwinDHHitswhole staff0.933 → 0.835-0.0980.21690.2374n=598
Very good
0.1869n=288
Very good
0.2053+0.088-0.128-0.009 ok
  splitstarter x0.8649 at 0.589 share (log5 0.2053 vs his 0.1869)  +  bullpen x0.9382 at 0.411 share (log5 0.2227 vs pen 0.2031)  =  x0.895  |  starter alone would have been -0.126
Strikeoutswhole staff1.070 → 1.403+0.3330.22120.2099n=598
Average
0.3143n=288
Very good
0.3002-0.048+0.399-0.013 ok
  splitstarter x1.4297 at 0.589 share (log5 0.3002 vs his 0.3143)  +  bullpen x1.1416 at 0.411 share (log5 0.2397 vs pen 0.2520)  =  x1.3114  |  starter alone would have been +0.460
Walkswhole staff0.389 → 0.397+0.0080.08890.0915n=598
Average
0.0876n=288
Average
0.0901+0.011-0.006-0.000 ok
  splitstarter x0.9847 at 0.589 share (log5 0.0901 vs his 0.0876)  +  bullpen x1.0695 at 0.411 share (log5 0.0978 vs pen 0.0951)  =  x1.0195  |  starter alone would have been -0.006
Home runswhole staff0.177 → 0.164-0.0130.03040.0371n=598
Good
0.0280n=288
Average
0.0343+0.029-0.010-0.002 ok
  splitstarter x0.9221 at 0.589 share (log5 0.0343 vs his 0.0280)  +  bullpen x0.9301 at 0.411 share (log5 0.0345 vs pen 0.0282)  =  x0.9254  |  starter alone would have been -0.014
Neutralising Drake Baldwin to the qualified-population mean moves the club's KPI run forecast by 0.2741 runs, and the weighted stage by 0.1042. Interactions make these non-additive across players, so they do not sum to the published movement.
Mike YastrzemskiLFHitswhole staff0.705 → 0.628-0.0760.21690.2093n=398
Below average
0.1869n=288
Very good
0.1802-0.029-0.117+0.003 ok
  splitstarter x0.8606 at 0.589 share (log5 0.1802 vs his 0.1869)  +  bullpen x0.936 at 0.411 share (log5 0.1959 vs pen 0.2031)  =  x0.8916  |  starter alone would have been -0.098
Strikeoutswhole staff1.138 → 1.481+0.3420.22120.2301n=398
Average
0.3143n=288
Very good
0.3254+0.035+0.363+0.009 ok
  splitstarter x1.4142 at 0.589 share (log5 0.3254 vs his 0.3143)  +  bullpen x1.1375 at 0.411 share (log5 0.2617 vs pen 0.2520)  =  x1.3006  |  starter alone would have been +0.472
Walkswhole staff0.350 → 0.356+0.0070.08890.0998n=398
Average
0.0876n=288
Average
0.0983+0.042-0.005-0.001 ok
  splitstarter x0.9848 at 0.589 share (log5 0.0983 vs his 0.0876)  +  bullpen x1.0688 at 0.411 share (log5 0.1066 vs pen 0.0951)  =  x1.0193  |  starter alone would have been -0.005
Home runswhole staff0.129 → 0.119-0.0100.03040.0302n=398
Average
0.0280n=288
Average
0.0279-0.001-0.0090 ok
  splitstarter x0.9215 at 0.589 share (log5 0.0279 vs his 0.0280)  +  bullpen x0.9296 at 0.411 share (log5 0.0281 vs pen 0.0282)  =  x0.9248  |  starter alone would have been -0.010
Neutralising Mike Yastrzemski to the qualified-population mean moves the club's KPI run forecast by 0.1894 runs, and the weighted stage by 0.0720. Interactions make these non-additive across players, so they do not sum to the published movement.
Mauricio DubónSSHitswhole staff0.950 → 0.850-0.1000.21690.2382n=603
Very good
0.1869n=288
Very good
0.2060+0.082-0.115-0.008 ok
  splitstarter x0.865 at 0.589 share (log5 0.2060 vs his 0.1869)  +  bullpen x0.9382 at 0.411 share (log5 0.2235 vs pen 0.2031)  =  x0.8951  |  starter alone would have been -0.128
Strikeoutswhole staff0.628 → 0.853+0.2250.22120.1270n=603
Very good
0.3143n=288
Very good
0.1902-0.361+0.356-0.115 ok
  splitstarter x1.4973 at 0.589 share (log5 0.1902 vs his 0.3143)  +  bullpen x1.1589 at 0.411 share (log5 0.1472 vs pen 0.2520)  =  x1.3583  |  starter alone would have been +0.312
Walkswhole staff0.247 → 0.252+0.0050.08890.0631n=603
Below average
0.0876n=288
Average
0.0621-0.099-0.005+0.001 ok
  splitstarter x0.9842 at 0.589 share (log5 0.0621 vs his 0.0876)  +  bullpen x1.0718 at 0.411 share (log5 0.0677 vs pen 0.0951)  =  x1.0202  |  starter alone would have been -0.004
Home runswhole staff0.104 → 0.096-0.0080.03040.0231n=603
Below average
0.0280n=288
Average
0.0213-0.028-0.009+0.002 ok
  splitstarter x0.921 at 0.589 share (log5 0.0213 vs his 0.0280)  +  bullpen x0.9291 at 0.411 share (log5 0.0215 vs pen 0.0282)  =  x0.9243  |  starter alone would have been -0.008
Neutralising Mauricio Dubón to the qualified-population mean moves the club's KPI run forecast by 0.0844 runs, and the weighted stage by 0.0321. Interactions make these non-additive across players, so they do not sum to the published movement.
Austin Riley3BHitswhole staff0.685 → 0.611-0.0750.21690.2034n=614
Below average
0.1869n=288
Very good
0.1749-0.049-0.109+0.005 ok
  splitstarter x0.8597 at 0.589 share (log5 0.1749 vs his 0.1869)  +  bullpen x0.9356 at 0.411 share (log5 0.1903 vs pen 0.2031)  =  x0.8909  |  starter alone would have been -0.096
Strikeoutswhole staff1.455 → 1.833+0.3790.22120.3090n=614
Poor
0.3143n=288
Very good
0.4192+0.320+0.340+0.062 ok
  splitstarter x1.3566 at 0.589 share (log5 0.4192 vs his 0.3143)  +  bullpen x1.1217 at 0.411 share (log5 0.3466 vs pen 0.2520)  =  x1.2601  |  starter alone would have been +0.519
Walkswhole staff0.317 → 0.323+0.0060.08890.0799n=614
Average
0.0876n=288
Average
0.0787-0.033-0.005+0.001 ok
  splitstarter x0.9845 at 0.589 share (log5 0.0787 vs his 0.0876)  +  bullpen x1.0704 at 0.411 share (log5 0.0856 vs pen 0.0951)  =  x1.0198  |  starter alone would have been -0.005
Home runswhole staff0.126 → 0.116-0.0090.03040.0308n=614
Average
0.0280n=288
Average
0.0284+0.001-0.009-0.000 ok
  splitstarter x0.9216 at 0.589 share (log5 0.0284 vs his 0.0280)  +  bullpen x0.9296 at 0.411 share (log5 0.0286 vs pen 0.0282)  =  x0.9249  |  starter alone would have been -0.010
Neutralising Austin Riley to the qualified-population mean moves the club's KPI run forecast by 0.3284 runs, and the weighted stage by 0.1248. Interactions make these non-additive across players, so they do not sum to the published movement.
Sean MurphyCHitswhole staff0.616 → 0.550-0.0660.21690.2169n=0
averagebelow floor
0.1869n=288
Very good
0.18690-0.1020 ok
  splitstarter x0.8618 at 0.589 share (log5 0.1869 vs his 0.1869)  +  bullpen x0.9366 at 0.411 share (log5 0.2031 vs pen 0.2031)  =  x0.8925  |  starter alone would have been -0.085
Strikeoutswhole staff1.135 → 1.482+0.3470.22120.2212n=0
averagebelow floor
0.3143n=288
Very good
0.31430+0.3180 ok
  splitstarter x1.421 at 0.589 share (log5 0.3143 vs his 0.3143)  +  bullpen x1.1393 at 0.411 share (log5 0.2520 vs pen 0.2520)  =  x1.3053  |  starter alone would have been +0.478
Walkswhole staff0.322 → 0.328+0.0060.08890.0889n=0
averagebelow floor
0.0876n=288
Average
0.08760-0.0050 ok
  splitstarter x0.9846 at 0.589 share (log5 0.0876 vs his 0.0876)  +  bullpen x1.0697 at 0.411 share (log5 0.0951 vs pen 0.0951)  =  x1.0196  |  starter alone would have been -0.005
Home runswhole staff0.119 → 0.110-0.0090.03040.0304n=0
averagebelow floor
0.0280n=288
Average
0.02800-0.0080 ok
  splitstarter x0.9215 at 0.589 share (log5 0.0280 vs his 0.0280)  +  bullpen x0.9296 at 0.411 share (log5 0.0282 vs pen 0.0282)  =  x0.9248  |  starter alone would have been -0.009
Neutralising Sean Murphy to the qualified-population mean moves the club's KPI run forecast by -0.0006 runs, and the weighted stage by -0.0002. Interactions make these non-additive across players, so they do not sum to the published movement.
STARTER Tyler Mahle20.8794 BFStarterHits4.443 → 4.587+0.1430.21690.2222n=614
Average
0.22398/9 qualified
lineup mean
0.2294+0.111+0.147+0.003 ok
Strikeouts4.119 → 3.745-0.3740.22120.2229n=614
Average
0.20118/9 qualified
lineup mean
0.2027+0.035-0.420-0.002 ok
Walks1.445 → 1.663+0.2190.08890.0778n=614
Good
0.10228/9 qualified
lineup mean
0.0896-0.233+0.277-0.031 ok
Home runs0.602 → 0.695+0.0930.03040.0317n=614
Average
0.03518/9 qualified
lineup mean
0.0365+0.026+0.098+0.004 ok
RELIEVER AJ Smith-Shawver3.3824 BFRelieverHits0.740 → 0.763+0.0240.21690.2186n=144
Average
0.22398/9 qualified
lineup mean
0.2257+0.006+0.024+0.000 ok
Strikeouts0.675 → 0.612-0.0630.22120.1996n=144
Below average
0.20118/9 qualified
lineup mean
0.1809-0.073-0.068+0.005 ok
Walks0.337 → 0.386+0.0500.08890.0995n=144
Below average
0.10228/9 qualified
lineup mean
0.1142+0.036+0.045+0.005 ok
Home runs0.118 → 0.136+0.0180.03040.0348n=144
Below average
0.03518/9 qualified
lineup mean
0.0402+0.015+0.016+0.002 ok
RELIEVER Grant Holmes3.1853 BFLong RelieverHits1.515 → 1.564+0.0490.21690.2162n=607
Average
0.22398/9 qualified
lineup mean
0.2232-0.002+0.022-0.000 ok
Strikeouts1.085 → 0.982-0.1030.22120.1859n=607
Below average
0.20118/9 qualified
lineup mean
0.1683-0.113-0.064+0.008 ok
Walks0.966 → 1.109+0.1440.08890.0916n=607
Average
0.10228/9 qualified
lineup mean
0.1052+0.008+0.042+0.001 ok
Home runs0.379 → 0.437+0.0580.03040.0338n=607
Below average
0.03518/9 qualified
lineup mean
0.0390+0.011+0.015+0.002 ok
RELIEVER Robert Suarez2.5097 BFRelieverHits0.519 → 0.537+0.0170.21690.2070n=130
Good
0.22398/9 qualified
lineup mean
0.2138-0.025+0.018-0.001 ok
Strikeouts0.522 → 0.474-0.0480.22120.2081n=130
Average
0.20118/9 qualified
lineup mean
0.1889-0.033-0.051+0.002 ok
Walks0.175 → 0.201+0.0270.08890.0696n=130
Good
0.10228/9 qualified
lineup mean
0.0802-0.049+0.033-0.007 ok
Home runs0.063 → 0.073+0.0100.03040.0253n=130
Good
0.03518/9 qualified
lineup mean
0.0292-0.013+0.012-0.002 ok
RELIEVER Victor Mederos2.1995 BFRelieverHits0.452 → 0.467+0.0150.21690.2054n=148
Good
0.22398/9 qualified
lineup mean
0.2121-0.025+0.015-0.001 ok
Strikeouts0.499 → 0.454-0.0450.22120.2267n=148
Average
0.20118/9 qualified
lineup mean
0.2062+0.012-0.044-0.001 ok
Walks0.202 → 0.232+0.0300.08890.0917n=148
Average
0.10228/9 qualified
lineup mean
0.1053+0.006+0.029+0.001 ok
Home runs0.054 → 0.062+0.0080.03040.0245n=148
Very good
0.03518/9 qualified
lineup mean
0.0283-0.013+0.010-0.002 ok
RELIEVER Didier Fuentes2.1397 BFRelieverHits0.453 → 0.468+0.0150.21690.2119n=290
Average
0.22398/9 qualified
lineup mean
0.2189-0.011+0.015-0.000 ok
Strikeouts0.600 → 0.549-0.0510.22120.2802n=290
Very good
0.20118/9 qualified
lineup mean
0.2565+0.126-0.043-0.008 ok
Walks0.163 → 0.187+0.0250.08890.0760n=290
Good
0.10228/9 qualified
lineup mean
0.0875-0.028+0.028-0.004 ok
Home runs0.057 → 0.066+0.0090.03040.0266n=290
Good
0.03518/9 qualified
lineup mean
0.0307-0.008+0.010-0.001 ok
RELIEVER Dylan Dodd1.5304 BFMiddle RelieverHits0.707 → 0.731+0.0240.21690.1933n=186
Very good
0.22398/9 qualified
lineup mean
0.1997-0.036+0.011-0.001 ok
Strikeouts1.112 → 1.016-0.0960.22120.2620n=186
Good
0.20118/9 qualified
lineup mean
0.2393+0.062-0.031-0.004 ok
Walks0.213 → 0.245+0.0320.08890.0815n=186
Average
0.10228/9 qualified
lineup mean
0.0938-0.011+0.020-0.002 ok
Home runs0.148 → 0.171+0.0230.03040.0294n=186
Average
0.03518/9 qualified
lineup mean
0.0339-0.002+0.007-0.000 ok
RELIEVER Dylan Lee1.2137 BFRelieverHits0.244 → 0.252+0.0080.21690.2007n=253
Good
0.22398/9 qualified
lineup mean
0.2073-0.020+0.009-0.001 ok
Strikeouts0.338 → 0.309-0.0290.22120.2783n=253
Very good
0.20118/9 qualified
lineup mean
0.2547+0.069-0.024-0.004 ok
Walks0.092 → 0.106+0.0140.08890.0755n=253
Good
0.10228/9 qualified
lineup mean
0.0870-0.016+0.016-0.002 ok
Home runs0.029 → 0.033+0.0040.03040.0237n=253
Very good
0.03518/9 qualified
lineup mean
0.0274-0.008+0.006-0.001 ok

Published pitching, integer draw beside the continuous model line

PitcherRoleBFIPexpected IPH int/contSO int/contBB int/contER int/contRate source
Tyler GlasnowStarter20.95.15.2024 / 3.5035 / 6.8140 / 1.8292 / 2.010all_players_stats_recent_season_blend
Alex VesiaMiddle Reliever3.91.01.0140 / 0.3871 / 1.3400 / 0.4500 / 0.218all_players_stats_recent_season_blend
Roki SasakiMiddle Reliever5.41.11.3511 / 0.8682 / 1.5780 / 0.5021 / 0.305all_players_stats_recent_season_blend
Brock StewartMiddle Reliever (High Leverage)3.91.11.0142 / 0.5224 / 0.9681 / 0.3301 / 0.246all_players_stats_recent_season_blend
Tyler MahleStarter20.95.04.9976 / 4.4434 / 4.1192 / 1.4453 / 1.853all_players_stats_recent_season_blend
Grant HolmesLong Reliever8.42.01.9851 / 1.5152 / 1.0851 / 0.9662 / 0.571all_players_stats_recent_season_blend
Dylan DoddMiddle Reliever3.92.00.9932 / 0.7072 / 1.1120 / 0.2131 / 0.354all_players_stats_recent_season_blend

Audit: NO DEFECT FOUND

InvariantVerdictEvidence
blend arithmetic away_runsPASS4.0000 + 0.34 x (4.1204 - 4.0000) = 4.0409, recorded 4.0409
blend arithmetic home_runsPASS3.0000 + 0.38 x (4.7962 - 3.0000) = 3.6826, recorded 3.6826
blend arithmetic home_winPASS0.4916 + 0.00 x (0.6876 - 0.4916) = 0.4916, recorded 0.4916
published rounding faithful to the blendPASSblended 4.0409-3.6826 rounds to 5-4, layer published 5-4
published probability on the score's sidePASS5-4 with p(home) 0.491557
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.2016
away starter batters faced inside the real bandPASSTyler Glasnow projected 20.9 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 3
home staff totals a regulation workloadPASS27 outs recorded, 27 expected
home starter carries a continuous linePASSexpected_IP 4.9971
home starter batters faced inside the real bandPASSTyler Mahle projected 20.9 batters faced; real starters run p01-p99 4-30, median 23, mean 21.75
home reliever batters faced inside the real band2 checksPASS2 of 2 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
20261007_MIL@SD — published 6-5, 157 checks, 2 failed
Artifact. 20261007_MIL@SD__20261008T024942Z.json, phase post_start_rerun, generated 2026-10-08T02:49:42, first pitch 2026-10-08T02:00:00.
Published 6 - 5 with p(home) 0.495000. 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.316793501587018 - 3.95834180109560000noBase ML historical model prediction
2. variance_applied4 - 4-0.3168+0.0417-0.3168+0.0417yesDeterministic baseline target (variance factor 1.0)
3. enhanced_prediction4 - 50+1.0000-0.3168+1.0417yesEnhanced ML with recent form, H2H, low-score analysis (confidence shrunk by projected_margin_is_one_run)
4. kpi_layer4 - 500-0.3168+1.0417noaway -0.1958; home +0.3883
Savant KPI blend applied to the model target
5. embedded_savant_run_environment4 - 500-0.3168+1.0417noaway +0.4139; home +0.2587
Target score adjusted by temporal Savant lineup quality versus opposing starter quality
6. fundamental_edge_target_review6 - 5+2.00000+1.6832+1.0417yesRefreshed score target and win probability after Savant/pitcher/team-strength adjustments
7. capped_target6 - 500+1.6832+1.0417noCapped at max 12 realistic runs
8. simulation_result6 - 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.42400.343.80424.0000 + 0.34 × (3.4240 − 4.0000) = 3.8042PASS
home_runs5.00006.02170.385.38835.0000 + 0.38 × (6.0217 − 5.0000) = 5.3883PASS
home_win0.50500.70710.000.50500.5050 + 0.00 × (0.7071 − 0.5050) = 0.5050PASS

Published by the layer: away 4, home 5, p(home) 0.505000, continuous away 3.8042 / home 5.3883

Inputs and gates. candidate 20261007T091423Z_47b9db81, value age 10 days, lineup coverage away 1.0000 / home 0.7719, 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.2358 + sum of contributions = 3.4240; prediction 3.4240; contributions outside the top listed -0.4461 runs

FeatureRawStandardisedRuns contributedWhich KPIs it is built from
away_sp_ground1.01751.612-0.5250starter group: pitcher_ground_ball_rate_induced
away_off_contact0.33251.204+0.4138offence group: batter_barrel_rate_vs_fastball, batter_barrel_rate_vs_breaking, batter_barrel_rate_vs_offspeed, batter_hard_hit_rate_vs_fastball ...
home_off_power_spread0.5785-0.773-0.4064offence group (dispersion across the lineup, not its mean): batter_home_run_rate, batter_bat_speed
away_pen_share0.51491.733-0.2986composite feature
home_off_discipline_spread0.2140-2.368+0.2839offence 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 ...
away_off_contact_spread0.89790.993-0.2761offence 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_top3_contact1.07741.055-0.2345mean of the three best contact bats, a tail a club mean cannot express
away_off_discipline_spread0.73011.054+0.2340offence 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_contact0.32371.140+0.2272offence group: batter_barrel_rate_vs_fastball, batter_barrel_rate_vs_breaking, batter_barrel_rate_vs_offspeed, batter_hard_hit_rate_vs_fastball ...
away_off_ground-0.7385-2.544+0.2160offence group: batter_ground_ball_rate_vs_slider, batter_ground_ball_rate_vs_fastball

What drove the KPI forecast for home_runs

intercept 4.5238 + sum of contributions = 6.0217; prediction 6.0217; contributions outside the top listed 0.6565 runs

FeatureRawStandardisedRuns contributedWhich KPIs it is built from
away_off_ground-0.7385-2.544-0.4647offence group: batter_ground_ball_rate_vs_slider, batter_ground_ball_rate_vs_fastball
away_off_contact_spread0.89790.993-0.4421offence 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.33861.818-0.4038mean of the three best contact bats, a tail a club mean cannot express
away_pen_share0.51491.733+0.3796composite feature
home_pen_share0.47941.511+0.3592composite feature
away_sp_velocity0.57120.742+0.3413starter group: pitcher_release_speed
home_pen_minus_sp0.54082.027+0.3017composite feature
away_sp_ground1.01751.612+0.2835starter group: pitcher_ground_ball_rate_induced
home_off_power0.28371.084+0.2527offence group: batter_home_run_rate, batter_bat_speed
away_pen_minus_sp0.52831.683+0.2339composite feature

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

MIL against JoJo Romero (LHP)

The pipeline applied one club-wide ×0.951 to every MIL hitter line, identical for the leadoff hitter and the ninth bat.
Opposing staff exposure. These hitters face the starter for 15.467 of 37.766 projected batters (40.9%) and the 3 projected relievers for the remaining 59.1%. 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 OUTSIDE 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
Jackson ChourioLFHitswhole staff1.087 → 1.075-0.0120.21690.2457n=567
Very good
0.2262n=651
Below average
0.2559+0.128+0.041+0.004 ok
  splitstarter x1.0414 at 0.409 share (log5 0.2559 vs his 0.2262)  +  bullpen x0.9532 at 0.591 share (log5 0.2342 vs pen 0.2063)  =  x0.9893  |  starter alone would have been +0.045
Strikeoutswhole staff1.017 → 1.046+0.0290.22120.2351n=567
Average
0.2034n=651
Average
0.2165+0.062-0.079-0.004 ok
  splitstarter x0.9209 at 0.409 share (log5 0.2165 vs his 0.2034)  +  bullpen x1.1037 at 0.591 share (log5 0.2595 vs pen 0.2446)  =  x1.0288  |  starter alone would have been -0.080
Walkswhole staff0.362 → 0.353-0.0090.08890.0839n=567
Average
0.0878n=651
Average
0.0829-0.022-0.005+0.000 ok
  splitstarter x0.9876 at 0.409 share (log5 0.0829 vs his 0.0878)  +  bullpen x0.968 at 0.591 share (log5 0.0813 vs pen 0.0861)  =  x0.976  |  starter alone would have been -0.004
Home runswhole staff0.171 → 0.161-0.0100.03040.0397n=567
Good
0.0324n=651
Below average
0.0423+0.042+0.009+0.003 ok
  splitstarter x1.0658 at 0.409 share (log5 0.0423 vs his 0.0324)  +  bullpen x0.8591 at 0.591 share (log5 0.0341 vs pen 0.0261)  =  x0.9437  |  starter alone would have been +0.011
Neutralising Jackson Chourio to the qualified-population mean moves the club's KPI run forecast by 0.2686 runs, and the weighted stage by 0.0913. Interactions make these non-additive across players, so they do not sum to the published movement.
Christian YelichDHHitswhole staff0.855 → 0.846-0.0090.21690.2108n=487
Average
0.2262n=651
Below average
0.2200-0.025+0.039-0.001 ok
  splitstarter x1.0434 at 0.409 share (log5 0.2200 vs his 0.2262)  +  bullpen x0.9511 at 0.591 share (log5 0.2005 vs pen 0.2063)  =  x0.9889  |  starter alone would have been +0.037
Strikeoutswhole staff1.029 → 1.057+0.0280.22120.2684n=487
Below average
0.2034n=651
Average
0.2480+0.199-0.075-0.011 ok
  splitstarter x0.9241 at 0.409 share (log5 0.2480 vs his 0.2034)  +  bullpen x1.0987 at 0.591 share (log5 0.2949 vs pen 0.2446)  =  x1.0272  |  starter alone would have been -0.078
Walkswhole staff0.421 → 0.411-0.0100.08890.0983n=487
Average
0.0878n=651
Average
0.0971+0.040-0.005-0.000 ok
  splitstarter x0.9878 at 0.409 share (log5 0.0971 vs his 0.0878)  +  bullpen x0.9685 at 0.591 share (log5 0.0952 vs pen 0.0861)  =  x0.9764  |  starter alone would have been -0.005
Home runswhole staff0.114 → 0.107-0.0060.03040.0267n=487
Average
0.0324n=651
Below average
0.0284-0.016+0.009-0.001 ok
  splitstarter x1.0667 at 0.409 share (log5 0.0284 vs his 0.0324)  +  bullpen x0.8575 at 0.591 share (log5 0.0229 vs pen 0.0261)  =  x0.9432  |  starter alone would have been +0.008
Neutralising Christian Yelich to the qualified-population mean moves the club's KPI run forecast by -0.1141 runs, and the weighted stage by -0.0388. Interactions make these non-additive across players, so they do not sum to the published movement.
William ContrerasCHitswhole staff0.940 → 0.930-0.0100.21690.2303n=630
Good
0.2262n=651
Below average
0.2400+0.057+0.039+0.002 ok
  splitstarter x1.0422 at 0.409 share (log5 0.2400 vs his 0.2262)  +  bullpen x0.9523 at 0.591 share (log5 0.2193 vs pen 0.2063)  =  x0.9891  |  starter alone would have been +0.040
Strikeoutswhole staff0.621 → 0.642+0.0210.22120.1529n=630
Good
0.2034n=651
Average
0.1396-0.289-0.075+0.019 ok
  splitstarter x0.9132 at 0.409 share (log5 0.1396 vs his 0.2034)  +  bullpen x1.1161 at 0.591 share (log5 0.1706 vs pen 0.2446)  =  x1.033  |  starter alone would have been -0.054
Walkswhole staff0.410 → 0.400-0.0100.08890.0942n=630
Average
0.0878n=651
Average
0.0931+0.022-0.005-0.000 ok
  splitstarter x0.9877 at 0.409 share (log5 0.0931 vs his 0.0878)  +  bullpen x0.9684 at 0.591 share (log5 0.0913 vs pen 0.0861)  =  x0.9763  |  starter alone would have been -0.005
Home runswhole staff0.122 → 0.115-0.0070.03040.0291n=630
Average
0.0324n=651
Below average
0.0310-0.005+0.009-0.000 ok
  splitstarter x1.0666 at 0.409 share (log5 0.0310 vs his 0.0324)  +  bullpen x0.8578 at 0.591 share (log5 0.0250 vs pen 0.0261)  =  x0.9433  |  starter alone would have been +0.008
Neutralising William Contreras to the qualified-population mean moves the club's KPI run forecast by 0.1979 runs, and the weighted stage by 0.0673. Interactions make these non-additive across players, so they do not sum to the published movement.
Brice Turang2BHitswhole staff0.898 → 0.888-0.0100.21690.2264n=666
Good
0.2262n=651
Below average
0.2360+0.040+0.039+0.001 ok
  splitstarter x1.0425 at 0.409 share (log5 0.2360 vs his 0.2262)  +  bullpen x0.952 at 0.591 share (log5 0.2156 vs pen 0.2063)  =  x0.9891  |  starter alone would have been +0.038
Strikeoutswhole staff0.955 → 0.982+0.0270.22120.2473n=666
Below average
0.2034n=651
Average
0.2281+0.109-0.074-0.006 ok
  splitstarter x0.9221 at 0.409 share (log5 0.2281 vs his 0.2034)  +  bullpen x1.1018 at 0.591 share (log5 0.2725 vs pen 0.2446)  =  x1.0282  |  starter alone would have been -0.074
Walkswhole staff0.501 → 0.489-0.0110.08890.1243n=666
Very good
0.0878n=651
Average
0.1228+0.148-0.005-0.002 ok
  splitstarter x0.9881 at 0.409 share (log5 0.1228 vs his 0.0878)  +  bullpen x0.9694 at 0.591 share (log5 0.1205 vs pen 0.0861)  =  x0.9771  |  starter alone would have been -0.006
Home runswhole staff0.116 → 0.109-0.0060.03040.0312n=666
Average
0.0324n=651
Below average
0.0333+0.003+0.009+0.000 ok
  splitstarter x1.0664 at 0.409 share (log5 0.0333 vs his 0.0324)  +  bullpen x0.8581 at 0.591 share (log5 0.0268 vs pen 0.0261)  =  x0.9434  |  starter alone would have been +0.008
Neutralising Brice Turang to the qualified-population mean moves the club's KPI run forecast by 0.3509 runs, and the weighted stage by 0.1193. Interactions make these non-additive across players, so they do not sum to the published movement.
Jake Bauers1BHitswhole staff0.803 → 0.794-0.0090.21690.2179n=567
Average
0.2262n=651
Below average
0.2273+0.004+0.039+0.000 ok
  splitstarter x1.0429 at 0.409 share (log5 0.2273 vs his 0.2262)  +  bullpen x0.9515 at 0.591 share (log5 0.2073 vs pen 0.2063)  =  x0.9889  |  starter alone would have been +0.035
Strikeoutswhole staff1.016 → 1.043+0.0280.22120.2676n=567
Below average
0.2034n=651
Average
0.2473+0.193-0.074-0.011 ok
  splitstarter x0.924 at 0.409 share (log5 0.2473 vs his 0.2034)  +  bullpen x1.0988 at 0.591 share (log5 0.2941 vs pen 0.2446)  =  x1.0272  |  starter alone would have been -0.077
Walkswhole staff0.554 → 0.542-0.0120.08890.1510n=567
Very good
0.0878n=651
Average
0.1492+0.257-0.005-0.003 ok
  splitstarter x0.9885 at 0.409 share (log5 0.1492 vs his 0.0878)  +  bullpen x0.9703 at 0.591 share (log5 0.1465 vs pen 0.0861)  =  x0.9778  |  starter alone would have been -0.006
Home runswhole staff0.170 → 0.160-0.0100.03040.0397n=567
Good
0.0324n=651
Below average
0.0423+0.039+0.008+0.003 ok
  splitstarter x1.0658 at 0.409 share (log5 0.0423 vs his 0.0324)  +  bullpen x0.8591 at 0.591 share (log5 0.0341 vs pen 0.0261)  =  x0.9437  |  starter alone would have been +0.011
Neutralising Jake Bauers to the qualified-population mean moves the club's KPI run forecast by 0.0609 runs, and the weighted stage by 0.0207. Interactions make these non-additive across players, so they do not sum to the published movement.
Cooper PrattSSHitswhole staff0.833 → 0.823-0.0090.21690.2255n=258
Good
0.2262n=651
Below average
0.2351+0.033+0.035+0.001 ok
  splitstarter x1.0425 at 0.409 share (log5 0.2351 vs his 0.2262)  +  bullpen x0.952 at 0.591 share (log5 0.2147 vs pen 0.2063)  =  x0.9891  |  starter alone would have been +0.035
Strikeoutswhole staff0.700 → 0.722+0.0220.22120.1851n=258
Good
0.2034n=651
Average
0.1696-0.136-0.067+0.009 ok
  splitstarter x0.9162 at 0.409 share (log5 0.1696 vs his 0.2034)  +  bullpen x1.1112 at 0.591 share (log5 0.2057 vs pen 0.2446)  =  x1.0313  |  starter alone would have been -0.059
Walkswhole staff0.307 → 0.300-0.0070.08890.0917n=258
Average
0.0878n=651
Average
0.0906+0.011-0.004-0.000 ok
  splitstarter x0.9877 at 0.409 share (log5 0.0906 vs his 0.0878)  +  bullpen x0.9683 at 0.591 share (log5 0.0888 vs pen 0.0861)  =  x0.9762  |  starter alone would have been -0.004
Home runswhole staff0.074 → 0.070-0.0040.03040.0211n=258
Below average
0.0324n=651
Below average
0.0225-0.035+0.008-0.002 ok
  splitstarter x1.0672 at 0.409 share (log5 0.0225 vs his 0.0324)  +  bullpen x0.8568 at 0.591 share (log5 0.0181 vs pen 0.0261)  =  x0.943  |  starter alone would have been +0.005
Neutralising Cooper Pratt to the qualified-population mean moves the club's KPI run forecast by 0.1071 runs, and the weighted stage by 0.0364. Interactions make these non-additive across players, so they do not sum to the published movement.
Sal FrelickRFHitswhole staff0.810 → 0.801-0.0090.21690.2106n=374
Below average
0.2262n=651
Below average
0.2197-0.023+0.034-0.001 ok
  splitstarter x1.0434 at 0.409 share (log5 0.2197 vs his 0.2262)  +  bullpen x0.9511 at 0.591 share (log5 0.2003 vs pen 0.2063)  =  x0.9889  |  starter alone would have been +0.035
Strikeoutswhole staff0.418 → 0.432+0.0150.22120.1106n=374
Very good
0.2034n=651
Average
0.1006-0.408-0.066+0.029 ok
  splitstarter x0.9092 at 0.409 share (log5 0.1006 vs his 0.2034)  +  bullpen x1.1226 at 0.591 share (log5 0.1242 vs pen 0.2446)  =  x1.0352  |  starter alone would have been -0.038
Walkswhole staff0.282 → 0.276-0.0070.08890.0843n=374
Average
0.0878n=651
Average
0.0833-0.017-0.004+0.000 ok
  splitstarter x0.9876 at 0.409 share (log5 0.0833 vs his 0.0878)  +  bullpen x0.968 at 0.591 share (log5 0.0817 vs pen 0.0861)  =  x0.976  |  starter alone would have been -0.004
Home runswhole staff0.068 → 0.064-0.0040.03040.0173n=374
Poor
0.0324n=651
Below average
0.0184-0.048+0.007-0.003 ok
  splitstarter x1.0674 at 0.409 share (log5 0.0184 vs his 0.0324)  +  bullpen x0.8563 at 0.591 share (log5 0.0148 vs pen 0.0261)  =  x0.9427  |  starter alone would have been +0.005
Neutralising Sal Frelick to the qualified-population mean moves the club's KPI run forecast by 0.3225 runs, and the weighted stage by 0.1097. Interactions make these non-additive across players, so they do not sum to the published movement.
Garrett MitchellCFHitswhole staff0.792 → 0.783-0.0090.21690.2215n=519
Average
0.2262n=651
Below average
0.2310+0.018+0.036+0.001 ok
  splitstarter x1.0427 at 0.409 share (log5 0.2310 vs his 0.2262)  +  bullpen x0.9517 at 0.591 share (log5 0.2108 vs pen 0.2063)  =  x0.989  |  starter alone would have been +0.034
Strikeoutswhole staff1.110 → 1.138+0.0280.22120.3061n=519
Poor
0.2034n=651
Average
0.2840+0.324-0.068-0.017 ok
  splitstarter x0.9277 at 0.409 share (log5 0.2840 vs his 0.2034)  +  bullpen x1.0932 at 0.591 share (log5 0.3346 vs pen 0.2446)  =  x1.0254  |  starter alone would have been -0.080
Walkswhole staff0.411 → 0.402-0.0100.08890.1091n=519
Good
0.0878n=651
Average
0.1077+0.077-0.004-0.001 ok
  splitstarter x0.9879 at 0.409 share (log5 0.1077 vs his 0.0878)  +  bullpen x0.9689 at 0.591 share (log5 0.1057 vs pen 0.0861)  =  x0.9767  |  starter alone would have been -0.005
Home runswhole staff0.086 → 0.081-0.0050.03040.0243n=519
Below average
0.0324n=651
Below average
0.0259-0.023+0.008-0.002 ok
  splitstarter x1.0669 at 0.409 share (log5 0.0259 vs his 0.0324)  +  bullpen x0.8572 at 0.591 share (log5 0.0208 vs pen 0.0261)  =  x0.9431  |  starter alone would have been +0.006
Neutralising Garrett Mitchell to the qualified-population mean moves the club's KPI run forecast by -0.1415 runs, and the weighted stage by -0.0481. Interactions make these non-additive across players, so they do not sum to the published movement.
Joey Ortiz3BHitswhole staff0.785 → 0.777-0.0090.21690.2271n=403
Good
0.2262n=651
Below average
0.2367+0.037+0.034+0.001 ok
  splitstarter x1.0424 at 0.409 share (log5 0.2367 vs his 0.2262)  +  bullpen x0.9521 at 0.591 share (log5 0.2162 vs pen 0.2063)  =  x0.9891  |  starter alone would have been +0.033
Strikeoutswhole staff0.747 → 0.770+0.0230.22120.2010n=403
Average
0.2034n=651
Average
0.1844-0.073-0.064+0.004 ok
  splitstarter x0.9177 at 0.409 share (log5 0.1844 vs his 0.2034)  +  bullpen x1.1088 at 0.591 share (log5 0.2228 vs pen 0.2446)  =  x1.0305  |  starter alone would have been -0.061
Walkswhole staff0.278 → 0.271-0.0070.08890.0873n=403
Average
0.0878n=651
Average
0.0862-0.006-0.004+0.000 ok
  splitstarter x0.9876 at 0.409 share (log5 0.0862 vs his 0.0878)  +  bullpen x0.9681 at 0.591 share (log5 0.0845 vs pen 0.0861)  =  x0.9761  |  starter alone would have been -0.003
Home runswhole staff0.086 → 0.081-0.0050.03040.0255n=403
Below average
0.0324n=651
Below average
0.0272-0.018+0.007-0.001 ok
  splitstarter x1.0668 at 0.409 share (log5 0.0272 vs his 0.0324)  +  bullpen x0.8573 at 0.591 share (log5 0.0219 vs pen 0.0261)  =  x0.9431  |  starter alone would have been +0.006
Neutralising Joey Ortiz to the qualified-population mean moves the club's KPI run forecast by 0.0813 runs, and the weighted stage by 0.0276. Interactions make these non-additive across players, so they do not sum to the published movement.
STARTER Robert Gasser15.7744 BFStarterHits2.886 → 2.934+0.0480.21690.2100n=462
Average
0.22047/9 qualified
lineup mean
0.2135-0.108+0.056-0.001 ok
Strikeouts3.300 → 3.185-0.1160.22120.2227n=462
Average
0.21347/9 qualified
lineup mean
0.2149+0.023-0.123-0.001 ok
Walks1.658 → 1.738+0.0810.08890.0775n=462
Good
0.09327/9 qualified
lineup mean
0.0813-0.180+0.067-0.008 ok
Home runs0.483 → 0.512+0.0290.03040.0314n=462
Average
0.03227/9 qualified
lineup mean
0.0333+0.017+0.029+0.001 ok
RELIEVER Aaron Ashby6.3304 BFSetup ManHits0.861 → 0.875+0.0140.21690.2024n=372
Good
0.22047/9 qualified
lineup mean
0.2057-0.092+0.023-0.001 ok
Strikeouts1.556 → 1.506-0.0500.22120.2869n=372
Very good
0.21347/9 qualified
lineup mean
0.2776+0.416-0.049-0.009 ok
Walks0.417 → 0.437+0.0200.08890.1039n=372
Below average
0.09327/9 qualified
lineup mean
0.1088+0.095+0.027+0.004 ok
Home runs0.081 → 0.086+0.0050.03040.0251n=372
Good
0.03227/9 qualified
lineup mean
0.0266-0.033+0.011-0.002 ok
RELIEVER Trevor Megill5.3848 BFCloserHits0.540 → 0.549+0.0090.21690.1936n=242
Very good
0.22047/9 qualified
lineup mean
0.1969-0.125+0.019-0.002 ok
Strikeouts1.073 → 1.038-0.0350.22120.2692n=242
Good
0.21347/9 qualified
lineup mean
0.2603+0.259-0.042-0.006 ok
Walks0.177 → 0.185+0.0090.08890.0726n=242
Good
0.09327/9 qualified
lineup mean
0.0762-0.088+0.023-0.004 ok
Home runs0.012 → 0.013+0.0010.03040.0212n=242
Very good
0.03227/9 qualified
lineup mean
0.0224-0.050+0.010-0.003 ok
RELIEVER Antonio Senzatela4.114 BFMiddle Reliever (High Leverage)Hits1.007 → 1.023+0.0160.21690.2274n=303
Below average
0.22047/9 qualified
lineup mean
0.2311+0.043+0.015+0.001 ok
Strikeouts0.794 → 0.765-0.0290.22120.1977n=303
Below average
0.21347/9 qualified
lineup mean
0.1905-0.097-0.032+0.003 ok
Walks0.397 → 0.416+0.0190.08890.0847n=303
Average
0.09327/9 qualified
lineup mean
0.0888-0.017+0.018-0.001 ok
Home runs0.057 → 0.060+0.0030.03040.0261n=303
Good
0.03227/9 qualified
lineup mean
0.0277-0.018+0.007-0.001 ok
RELIEVER Abner Uribe2.1864 BFRelieverHits0.441 → 0.449+0.0070.21690.2018n=230
Good
0.22047/9 qualified
lineup mean
0.2052-0.033+0.008-0.000 ok
Strikeouts0.555 → 0.536-0.0190.22120.2538n=230
Good
0.21347/9 qualified
lineup mean
0.2453+0.071-0.017-0.002 ok
Walks0.181 → 0.189+0.0090.08890.0826n=230
Average
0.09327/9 qualified
lineup mean
0.0866-0.014+0.009-0.001 ok
Home runs0.054 → 0.057+0.0030.03040.0245n=230
Very good
0.03227/9 qualified
lineup mean
0.0260-0.013+0.004-0.001 ok
RELIEVER Chad Patrick2.0067 BFRelieverHits0.400 → 0.406+0.0070.21690.1991n=438
Good
0.22047/9 qualified
lineup mean
0.2025-0.036+0.007-0.000 ok
Strikeouts0.429 → 0.414-0.0150.22120.2137n=438
Average
0.21347/9 qualified
lineup mean
0.2061-0.015-0.016+0.000 ok
Walks0.209 → 0.219+0.0100.08890.1041n=438
Below average
0.09327/9 qualified
lineup mean
0.1090+0.030+0.009+0.001 ok
Home runs0.056 → 0.059+0.0030.03040.0278n=438
Average
0.03227/9 qualified
lineup mean
0.0294-0.005+0.004-0.000 ok
RELIEVER DL Hall0.7894 BFRelieverHits0.137 → 0.140+0.0020.21690.1738n=234
Very good
0.22047/9 qualified
lineup mean
0.1768-0.034+0.003-0.000 ok
Strikeouts0.200 → 0.194-0.0070.22120.2538n=234
Good
0.21347/9 qualified
lineup mean
0.2452+0.026-0.006-0.001 ok
Walks0.097 → 0.101+0.0040.08890.1226n=234
Poor
0.09327/9 qualified
lineup mean
0.1283+0.027+0.003+0.001 ok
Home runs0.021 → 0.023+0.0010.03040.0273n=234
Average
0.03227/9 qualified
lineup mean
0.0289-0.002+0.001-0.000 ok
RELIEVER JoJo Romero0.5819 BFRelieverHits0.126 → 0.128+0.0020.21690.2159n=233
Average
0.22047/9 qualified
lineup mean
0.2194-0.001+0.0020 ok
Strikeouts0.131 → 0.127-0.0050.22120.2259n=233
Average
0.21347/9 qualified
lineup mean
0.2180+0.003-0.004-0.000 ok
Walks0.046 → 0.048+0.0020.08890.0794n=233
Average
0.09327/9 qualified
lineup mean
0.0833-0.005+0.003-0.000 ok
Home runs0.018 → 0.019+0.0010.03040.0303n=233
Average
0.03227/9 qualified
lineup mean
0.0321-0.000+0.0010 ok

SD against Joe Musgrove (RHP)

The pipeline applied one club-wide ×1.0777 to every SD hitter line, identical for the leadoff hitter and the ninth bat.
Opposing staff exposure. These hitters face the starter for 15.7744 of 37.168 projected batters (42.4%) and the 3 projected relievers for the remaining 57.6%. 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 OUTSIDE 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
Fernando Tatis Jr.RFHitswhole staff1.027 → 0.979-0.0480.21690.2416n=704
Very good
0.2100n=462
Average
0.2342+0.110-0.031-0.002 ok
  splitstarter x0.9693 at 0.424 share (log5 0.2342 vs his 0.2100)  +  bullpen x0.9421 at 0.576 share (log5 0.2276 vs pen 0.2039)  =  x0.9536  |  starter alone would have been -0.032
Strikeoutswhole staff0.828 → 0.901+0.0720.22120.1870n=704
Good
0.2227n=462
Average
0.1883-0.152+0.007-0.001 ok
  splitstarter x1.007 at 0.424 share (log5 0.1883 vs his 0.2227)  +  bullpen x1.147 at 0.576 share (log5 0.2145 vs pen 0.2522)  =  x1.0876  |  starter alone would have been +0.006
Walkswhole staff0.452 → 0.431-0.0210.08890.0906n=704
Average
0.0775n=462
Good
0.0790+0.008-0.051-0.001 ok
  splitstarter x0.8717 at 0.424 share (log5 0.0790 vs his 0.0775)  +  bullpen x1.0143 at 0.576 share (log5 0.0919 vs pen 0.0902)  =  x0.9538  |  starter alone would have been -0.058
Home runswhole staff0.156 → 0.141-0.0140.03040.0341n=704
Average
0.0314n=462
Average
0.0353+0.017+0.005+0.001 ok
  splitstarter x1.0346 at 0.424 share (log5 0.0353 vs his 0.0314)  +  bullpen x0.8142 at 0.576 share (log5 0.0278 vs pen 0.0247)  =  x0.9077  |  starter alone would have been +0.005
Neutralising Fernando Tatis Jr. to the qualified-population mean moves the club's KPI run forecast by 0.2913 runs, and the weighted stage by 0.1107. Interactions make these non-additive across players, so they do not sum to the published movement.
Jackson MerrillCFHitswhole staff0.932 → 0.888-0.0440.21690.2277n=664
Good
0.2100n=462
Average
0.2206+0.046-0.029-0.001 ok
  splitstarter x0.9688 at 0.424 share (log5 0.2206 vs his 0.2100)  +  bullpen x0.9411 at 0.576 share (log5 0.2143 vs pen 0.2039)  =  x0.9529  |  starter alone would have been -0.029
Strikeoutswhole staff1.115 → 1.206+0.0900.22120.2396n=664
Average
0.2227n=462
Average
0.2412+0.078+0.006+0.000 ok
  splitstarter x1.0065 at 0.424 share (log5 0.2412 vs his 0.2227)  +  bullpen x1.1362 at 0.576 share (log5 0.2722 vs pen 0.2522)  =  x1.0812  |  starter alone would have been +0.007
Walkswhole staff0.280 → 0.267-0.0130.08890.0659n=664
Below average
0.0775n=462
Good
0.0572-0.098-0.049+0.012 ok
  splitstarter x0.8686 at 0.424 share (log5 0.0572 vs his 0.0775)  +  bullpen x1.0147 at 0.576 share (log5 0.0668 vs pen 0.0902)  =  x0.9527  |  starter alone would have been -0.037
Home runswhole staff0.152 → 0.138-0.0140.03040.0367n=664
Good
0.0314n=462
Average
0.0379+0.027+0.004+0.001 ok
  splitstarter x1.0346 at 0.424 share (log5 0.0379 vs his 0.0314)  +  bullpen x0.8146 at 0.576 share (log5 0.0299 vs pen 0.0247)  =  x0.908  |  starter alone would have been +0.005
Neutralising Jackson Merrill to the qualified-population mean moves the club's KPI run forecast by 0.4964 runs, and the weighted stage by 0.1886. Interactions make these non-additive across players, so they do not sum to the published movement.
Manny Machado3BHitswhole staff0.867 → 0.825-0.0420.21690.2000n=677
Poor
0.2100n=462
Average
0.1936-0.070-0.029+0.002 ok
  splitstarter x0.9677 at 0.424 share (log5 0.1936 vs his 0.2100)  +  bullpen x0.9391 at 0.576 share (log5 0.1878 vs pen 0.2039)  =  x0.9512  |  starter alone would have been -0.028
Strikeoutswhole staff0.854 → 0.926+0.0720.22120.2133n=677
Average
0.2227n=462
Average
0.2147-0.033+0.006-0.000 ok
  splitstarter x1.0068 at 0.424 share (log5 0.2147 vs his 0.2227)  +  bullpen x1.1416 at 0.576 share (log5 0.2435 vs pen 0.2522)  =  x1.0844  |  starter alone would have been +0.006
Walkswhole staff0.420 → 0.401-0.0190.08890.1088n=677
Good
0.0775n=462
Good
0.0951+0.083-0.048-0.009 ok
  splitstarter x0.8739 at 0.424 share (log5 0.0951 vs his 0.0775)  +  bullpen x1.014 at 0.576 share (log5 0.1103 vs pen 0.0902)  =  x0.9545  |  starter alone would have been -0.053
Home runswhole staff0.172 → 0.156-0.0160.03040.0404n=677
Good
0.0314n=462
Average
0.0418+0.042+0.004+0.001 ok
  splitstarter x1.0344 at 0.424 share (log5 0.0418 vs his 0.0314)  +  bullpen x0.8151 at 0.576 share (log5 0.0329 vs pen 0.0247)  =  x0.9082  |  starter alone would have been +0.006
Neutralising Manny Machado to the qualified-population mean moves the club's KPI run forecast by 0.1882 runs, and the weighted stage by 0.0715. Interactions make these non-additive across players, so they do not sum to the published movement.
Ty France1BHitswhole staff0.977 → 0.932-0.0450.21690.2398n=500
Very good
0.2100n=462
Average
0.2324+0.095-0.029-0.002 ok
  splitstarter x0.9692 at 0.424 share (log5 0.2324 vs his 0.2100)  +  bullpen x0.942 at 0.576 share (log5 0.2259 vs pen 0.2039)  =  x0.9535  |  starter alone would have been -0.030
Strikeoutswhole staff0.906 → 0.982+0.0760.22120.2165n=500
Average
0.2227n=462
Average
0.2179-0.020+0.006-0.000 ok
  splitstarter x1.0067 at 0.424 share (log5 0.2179 vs his 0.2227)  +  bullpen x1.1409 at 0.576 share (log5 0.2470 vs pen 0.2522)  =  x1.0839  |  starter alone would have been +0.006
Walkswhole staff0.297 → 0.283-0.0140.08890.0769n=500
Below average
0.0775n=462
Good
0.0669-0.050-0.048+0.006 ok
  splitstarter x0.87 at 0.424 share (log5 0.0669 vs his 0.0775)  +  bullpen x1.0145 at 0.576 share (log5 0.0780 vs pen 0.0902)  =  x0.9532  |  starter alone would have been -0.039
Home runswhole staff0.153 → 0.139-0.0140.03040.0380n=500
Good
0.0314n=462
Average
0.0393+0.032+0.004+0.001 ok
  splitstarter x1.0345 at 0.424 share (log5 0.0393 vs his 0.0314)  +  bullpen x0.8148 at 0.576 share (log5 0.0309 vs pen 0.0247)  =  x0.908  |  starter alone would have been +0.005
Neutralising Ty France to the qualified-population mean moves the club's KPI run forecast by 0.2022 runs, and the weighted stage by 0.0768. Interactions make these non-additive across players, so they do not sum to the published movement.
Austin HaysDHHitswhole staff0.807 → 0.768-0.0390.21690.2169n=0
averagebelow floor
0.2100n=462
Average
0.21000-0.0250 ok
  splitstarter x0.9683 at 0.424 share (log5 0.2100 vs his 0.2100)  +  bullpen x0.9403 at 0.576 share (log5 0.2039 vs pen 0.2039)  =  x0.9522  |  starter alone would have been -0.025
Strikeoutswhole staff0.949 → 1.028+0.0790.22120.2212n=0
averagebelow floor
0.2227n=462
Average
0.22270+0.0050 ok
  splitstarter x1.0067 at 0.424 share (log5 0.2227 vs his 0.2227)  +  bullpen x1.1399 at 0.576 share (log5 0.2522 vs pen 0.2522)  =  x1.0834  |  starter alone would have been +0.006
Walkswhole staff0.234 → 0.223-0.0110.08890.0889n=0
averagebelow floor
0.0775n=462
Good
0.07750-0.0420 ok
  splitstarter x0.8715 at 0.424 share (log5 0.0775 vs his 0.0775)  +  bullpen x1.0143 at 0.576 share (log5 0.0902 vs pen 0.0902)  =  x0.9537  |  starter alone would have been -0.030
Home runswhole staff0.110 → 0.100-0.0100.03040.0304n=0
averagebelow floor
0.0314n=462
Average
0.03140+0.0040 ok
  splitstarter x1.0348 at 0.424 share (log5 0.0314 vs his 0.0314)  +  bullpen x0.8136 at 0.576 share (log5 0.0247 vs pen 0.0247)  =  x0.9075  |  starter alone would have been +0.004
Neutralising Austin Hays to the qualified-population mean moves the club's KPI run forecast by -0.0600 runs, and the weighted stage by -0.0228. Interactions make these non-additive across players, so they do not sum to the published movement.
Xander BogaertsSSHitswhole staff0.817 → 0.777-0.0400.21690.2059n=606
Below average
0.2100n=462
Average
0.1993-0.042-0.027+0.001 ok
  splitstarter x0.9679 at 0.424 share (log5 0.1993 vs his 0.2100)  +  bullpen x0.9395 at 0.576 share (log5 0.1935 vs pen 0.2039)  =  x0.9516  |  starter alone would have been -0.026
Strikeoutswhole staff0.693 → 0.754+0.0610.22120.1829n=606
Good
0.2227n=462
Average
0.1842-0.149+0.006-0.001 ok
  splitstarter x1.007 at 0.424 share (log5 0.1842 vs his 0.2227)  +  bullpen x1.1478 at 0.576 share (log5 0.2100 vs pen 0.2522)  =  x1.088  |  starter alone would have been +0.005
Walkswhole staff0.412 → 0.393-0.0180.08890.1208n=606
Very good
0.0775n=462
Good
0.1057+0.124-0.044-0.014 ok
  splitstarter x0.8754 at 0.424 share (log5 0.1057 vs his 0.0775)  +  bullpen x1.0138 at 0.576 share (log5 0.1225 vs pen 0.0902)  =  x0.9551  |  starter alone would have been -0.051
Home runswhole staff0.096 → 0.087-0.0090.03040.0242n=606
Below average
0.0314n=462
Average
0.0250-0.024+0.004-0.001 ok
  splitstarter x1.035 at 0.424 share (log5 0.0250 vs his 0.0314)  +  bullpen x0.8126 at 0.576 share (log5 0.0196 vs pen 0.0247)  =  x0.907  |  starter alone would have been +0.003
Neutralising Xander Bogaerts to the qualified-population mean moves the club's KPI run forecast by 0.2708 runs, and the weighted stage by 0.1029. Interactions make these non-additive across players, so they do not sum to the published movement.
Luis CampusanoCHitswhole staff0.775 → 0.738-0.0370.21690.2215n=248
Average
0.2100n=462
Average
0.2146+0.018-0.027-0.000 ok
  splitstarter x0.9685 at 0.424 share (log5 0.2146 vs his 0.2100)  +  bullpen x0.9406 at 0.576 share (log5 0.2084 vs pen 0.2039)  =  x0.9524  |  starter alone would have been -0.024
Strikeoutswhole staff0.803 → 0.870+0.0680.22120.2149n=248
Average
0.2227n=462
Average
0.2164-0.025+0.006-0.000 ok
  splitstarter x1.0067 at 0.424 share (log5 0.2164 vs his 0.2227)  +  bullpen x1.1412 at 0.576 share (log5 0.2453 vs pen 0.2522)  =  x1.0841  |  starter alone would have been +0.005
Walkswhole staff0.348 → 0.332-0.0160.08890.1106n=248
Good
0.0775n=462
Good
0.0967+0.085-0.045-0.010 ok
  splitstarter x0.8741 at 0.424 share (log5 0.0967 vs his 0.0775)  +  bullpen x1.0139 at 0.576 share (log5 0.1121 vs pen 0.0902)  =  x0.9546  |  starter alone would have been -0.044
Home runswhole staff0.117 → 0.106-0.0110.03040.0313n=248
Average
0.0314n=462
Average
0.0324+0.004+0.004+0.000 ok
  splitstarter x1.0347 at 0.424 share (log5 0.0324 vs his 0.0314)  +  bullpen x0.8137 at 0.576 share (log5 0.0255 vs pen 0.0247)  =  x0.9075  |  starter alone would have been +0.004
Neutralising Luis Campusano to the qualified-population mean moves the club's KPI run forecast by 0.3191 runs, and the weighted stage by 0.1213. Interactions make these non-additive across players, so they do not sum to the published movement.
Jake Cronenworth2BHitswhole staff0.712 → 0.677-0.0340.21690.2086n=425
Below average
0.2100n=462
Average
0.2019-0.030-0.025+0.001 ok
  splitstarter x0.968 at 0.424 share (log5 0.2019 vs his 0.2100)  +  bullpen x0.9397 at 0.576 share (log5 0.1960 vs pen 0.2039)  =  x0.9517  |  starter alone would have been -0.023
Strikeoutswhole staff0.883 → 0.956+0.0730.22120.2275n=425
Average
0.2227n=462
Average
0.2290+0.023+0.005+0.000 ok
  splitstarter x1.0066 at 0.424 share (log5 0.2290 vs his 0.2227)  +  bullpen x1.1386 at 0.576 share (log5 0.2591 vs pen 0.2522)  =  x1.0826  |  starter alone would have been +0.006
Walkswhole staff0.307 → 0.293-0.0140.08890.0893n=425
Average
0.0775n=462
Good
0.0778+0.001-0.042-0.000 ok
  splitstarter x0.8715 at 0.424 share (log5 0.0778 vs his 0.0775)  +  bullpen x1.0143 at 0.576 share (log5 0.0906 vs pen 0.0902)  =  x0.9537  |  starter alone would have been -0.039
Home runswhole staff0.080 → 0.073-0.0070.03040.0218n=425
Below average
0.0314n=462
Average
0.0226-0.031+0.004-0.001 ok
  splitstarter x1.0351 at 0.424 share (log5 0.0226 vs his 0.0314)  +  bullpen x0.8122 at 0.576 share (log5 0.0177 vs pen 0.0247)  =  x0.9068  |  starter alone would have been +0.003
Neutralising Jake Cronenworth to the qualified-population mean moves the club's KPI run forecast by 0.4558 runs, and the weighted stage by 0.1732. Interactions make these non-additive across players, so they do not sum to the published movement.
Samad TaylorLFHitswhole staff0.720 → 0.685-0.0340.21690.2169n=0
averagebelow floor
0.2100n=462
Average
0.21000-0.0240 ok
  splitstarter x0.9683 at 0.424 share (log5 0.2100 vs his 0.2100)  +  bullpen x0.9403 at 0.576 share (log5 0.2039 vs pen 0.2039)  =  x0.9522  |  starter alone would have been -0.023
Strikeoutswhole staff0.870 → 0.942+0.0720.22120.2212n=0
averagebelow floor
0.2227n=462
Average
0.22270+0.0050 ok
  splitstarter x1.0067 at 0.424 share (log5 0.2227 vs his 0.2227)  +  bullpen x1.1399 at 0.576 share (log5 0.2522 vs pen 0.2522)  =  x1.0834  |  starter alone would have been +0.006
Walkswhole staff0.378 → 0.360-0.0180.08890.0889n=0
averagebelow floor
0.0775n=462
Good
0.07750-0.0410 ok
  splitstarter x0.8715 at 0.424 share (log5 0.0775 vs his 0.0775)  +  bullpen x1.0143 at 0.576 share (log5 0.0902 vs pen 0.0902)  =  x0.9537  |  starter alone would have been -0.049
Home runswhole staff0.077 → 0.070-0.0070.03040.0304n=0
averagebelow floor
0.0314n=462
Average
0.03140+0.0040 ok
  splitstarter x1.0348 at 0.424 share (log5 0.0314 vs his 0.0314)  +  bullpen x0.8136 at 0.576 share (log5 0.0247 vs pen 0.0247)  =  x0.9075  |  starter alone would have been +0.003
Neutralising Samad Taylor to the qualified-population mean moves the club's KPI run forecast by 0.0034 runs, and the weighted stage by 0.0013. Interactions make these non-additive across players, so they do not sum to the published movement.
STARTER Walker Buehler15.467 BFStarterHits3.388 → 3.502+0.1150.21690.2262n=651
Below average
0.22439/9 qualified
lineup mean
0.2338+0.144+0.115+0.004 ok
Strikeouts3.233 → 3.224-0.0080.22120.2034n=651
Average
0.22079/9 qualified
lineup mean
0.2029-0.275-0.009+0.001 ok
Walks1.264 → 1.465+0.2010.08890.0878n=651
Average
0.10309/9 qualified
lineup mean
0.1018-0.017+0.218-0.002 ok
Home runs0.817 → 0.771-0.0460.03040.0324n=651
Below average
0.02879/9 qualified
lineup mean
0.0306+0.031-0.026-0.002 ok
RELIEVER Adrian Morejon9.292 BFCloserHits1.069 → 1.106+0.0370.21690.1993n=352
Good
0.22439/9 qualified
lineup mean
0.2063-0.163+0.069-0.004 ok
Strikeouts1.434 → 1.431-0.0030.22120.2886n=352
Very good
0.22079/9 qualified
lineup mean
0.2880+0.626-0.005-0.001 ok
Walks0.419 → 0.486+0.0670.08890.0824n=352
Average
0.10309/9 qualified
lineup mean
0.0956-0.060+0.131-0.009 ok
Home runs0.108 → 0.102-0.0060.03040.0220n=352
Very good
0.02879/9 qualified
lineup mean
0.0208-0.078-0.016+0.004 ok
RELIEVER Jason Adam5.6639 BFSetup ManHits0.745 → 0.770+0.0250.21690.2150n=142
Average
0.22439/9 qualified
lineup mean
0.2224-0.010+0.042-0.000 ok
Strikeouts0.475 → 0.473-0.0010.22120.1789n=142
Below average
0.22079/9 qualified
lineup mean
0.1784-0.240-0.003+0.001 ok
Walks0.465 → 0.539+0.0750.08890.0802n=142
Average
0.10309/9 qualified
lineup mean
0.0930-0.050+0.080-0.007 ok
Home runs0.113 → 0.107-0.0060.03040.0316n=142
Average
0.02879/9 qualified
lineup mean
0.0298+0.007-0.010-0.000 ok
RELIEVER Bradgley Rodriguez2.6224 BFLong RelieverHits0.941 → 0.974+0.0330.21690.2063n=301
Good
0.22439/9 qualified
lineup mean
0.2135-0.028+0.019-0.001 ok
Strikeouts1.524 → 1.520-0.0040.22120.2590n=301
Good
0.22079/9 qualified
lineup mean
0.2584+0.099-0.002-0.000 ok
Walks0.450 → 0.522+0.0730.08890.0742n=301
Good
0.10309/9 qualified
lineup mean
0.0862-0.039+0.037-0.006 ok
Home runs0.052 → 0.049-0.0030.03040.0262n=301
Good
0.02879/9 qualified
lineup mean
0.0247-0.011-0.004+0.001 ok
RELIEVER David Morgan1.9868 BFRelieverHits0.439 → 0.454+0.0150.21690.2210n=162
Average
0.22439/9 qualified
lineup mean
0.2285+0.008+0.015+0.000 ok
Strikeouts0.466 → 0.464-0.0010.22120.2343n=162
Average
0.22079/9 qualified
lineup mean
0.2337+0.026-0.0010 ok
Walks0.224 → 0.258+0.0350.08890.1127n=162
Below average
0.10309/9 qualified
lineup mean
0.1300+0.047+0.028+0.006 ok
Home runs0.051 → 0.048-0.0030.03040.0256n=162
Good
0.02879/9 qualified
lineup mean
0.0241-0.009-0.003+0.001 ok
RELIEVER Yuki Matsui1.4985 BFRelieverHits0.273 → 0.282+0.0100.21690.1819n=260
Very good
0.22439/9 qualified
lineup mean
0.1884-0.052+0.011-0.001 ok
Strikeouts0.378 → 0.377-0.0010.22120.2520n=260
Good
0.22079/9 qualified
lineup mean
0.2514+0.046-0.001-0.000 ok
Walks0.179 → 0.207+0.0270.08890.1198n=260
Poor
0.10309/9 qualified
lineup mean
0.1380+0.046+0.021+0.006 ok
Home runs0.044 → 0.041-0.0030.03040.0291n=260
Average
0.02879/9 qualified
lineup mean
0.0275-0.002-0.003+0.000 ok
RELIEVER Wandy Peralta0.689 BFRelieverHits0.160 → 0.165+0.0050.21690.2321n=321
Below average
0.22439/9 qualified
lineup mean
0.2399+0.011+0.005+0.000 ok
Strikeouts0.116 → 0.116-0.0000.22120.1688n=321
Poor
0.22079/9 qualified
lineup mean
0.1684-0.036-0.000+0.000 ok
Walks0.053 → 0.062+0.0090.08890.0773n=321
Good
0.10309/9 qualified
lineup mean
0.0898-0.008+0.010-0.001 ok
Home runs0.018 → 0.017-0.0010.03040.0268n=321
Good
0.02879/9 qualified
lineup mean
0.0253-0.003-0.001+0.000 ok
RELIEVER Joe Musgrove0.5486 BFRelieverHits0.119 → 0.123+0.0040.21690.2169n=0
averagebelow floor
0.22439/9 qualified
lineup mean
0.22430+0.0040 ok
Strikeouts0.121 → 0.121-0.0000.22120.2212n=0
averagebelow floor
0.22079/9 qualified
lineup mean
0.22070-0.0000 ok
Walks0.049 → 0.057+0.0080.08890.0889n=0
averagebelow floor
0.10309/9 qualified
lineup mean
0.10300+0.0080 ok
Home runs0.017 → 0.016-0.0010.03040.0304n=0
averagebelow floor
0.02879/9 qualified
lineup mean
0.02870-0.0010 ok

Published pitching, integer draw beside the continuous model line

PitcherRoleBFIPexpected IPH int/contSO int/contBB int/contER int/contRate source
Robert GasserStarter15.83.23.7443 / 2.8864 / 3.3001 / 1.6582 / 1.146all_players_stats_recent_season_blend
Antonio SenzatelaMiddle Reliever (High Leverage)4.41.01.0130 / 1.0071 / 0.7941 / 0.3971 / 0.365all_players_stats_recent_season_blend
Aaron AshbySetup Man5.31.11.3511 / 0.8612 / 1.5560 / 0.4171 / 0.293all_players_stats_recent_season_blend
Trevor MegillCloser3.84.01.0133 / 0.5401 / 1.0731 / 0.1770 / 0.164all_players_stats_recent_season_blend
Walker BuehlerStarter15.53.23.6054 / 3.3884 / 3.2333 / 1.2643 / 1.770all_players_stats_recent_season_blend
Bradgley RodriguezLong Reliever5.31.11.3180 / 0.9411 / 1.5240 / 0.4500 / 0.253all_players_stats_recent_season_blend
Jason AdamSetup Man4.21.00.9890 / 0.7451 / 0.4750 / 0.4650 / 0.274all_players_stats_recent_season_blend
Adrian MorejonCloser5.44.01.3184 / 1.0693 / 1.4340 / 0.4192 / 0.412all_players_stats_recent_season_blend

Audit: 2 CHECK(S) FAILED

InvariantVerdictEvidence
blend arithmetic away_runsPASS4.0000 + 0.34 x (3.4240 - 4.0000) = 3.8042, recorded 3.8042
blend arithmetic home_runsPASS5.0000 + 0.38 x (6.0217 - 5.0000) = 5.3883, recorded 5.3883
blend arithmetic home_winPASS0.5050 + 0.00 x (0.7071 - 0.5050) = 0.5050, recorded 0.5050
published rounding faithful to the blendPASSblended 3.8042-5.3883 rounds to 4-5, layer published 4-5
published probability on the score's sidePASS4-5 with p(home) 0.505000
Log5 additivity136 checksPASS136 of 136 pass
away club fields exactly one starterPASS1 starters in a staff of 4
away staff totals a regulation workloadFAIL30 outs recorded, 27 expected
away starter carries a continuous linePASSexpected_IP 3.7437
away starter batters faced inside the real bandPASSRobert Gasser projected 15.8 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 workloadFAIL30 outs recorded, 27 expected
home starter carries a continuous linePASSexpected_IP 3.605
home starter batters faced inside the real bandPASSWalker Buehler projected 15.5 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
20261007_TB@NYY — published 3-4, 157 checks, 1 failed
Artifact. 20261007_TB@NYY__20261008T004948Z.json, phase post_start_rerun, generated 2026-10-08T00:49:48, first pitch 2026-10-08T00:00:00.
Published 3 - 4 with p(home) 0.544016. 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_ml3.959661691282892 - 5.56852202735481950000noBase ML historical model prediction
2. variance_applied4 - 6+0.0403+0.4315+0.0403+0.4315yesDeterministic baseline target (variance factor 1.0)
3. enhanced_prediction3 - 4-1.0000-2.0000-0.9597-1.5685yesEnhanced ML with recent form, H2H, low-score analysis (confidence shrunk by projected_margin_is_one_run, matchup_recency_guardrail)
4. kpi_layer3 - 400-0.9597-1.5685noaway +0.4627; home +0.1996
Savant KPI blend applied to the model target
5. embedded_savant_run_environment3 - 400-0.9597-1.5685noaway -0.2946; home +0.4252
Target score adjusted by temporal Savant lineup quality versus opposing starter quality
6. fundamental_edge_target_review3 - 400-0.9597-1.5685noRefreshed score target and win probability after Savant/pitcher/team-strength adjustments
7. capped_target3 - 400-0.9597-1.5685noCapped at max 12 realistic runs
8. simulation_result3 - 4----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_runs3.00004.36100.343.46273.0000 + 0.34 × (4.3610 − 3.0000) = 3.4627PASS
home_runs4.00004.52530.384.19964.0000 + 0.38 × (4.5253 − 4.0000) = 4.1996PASS
home_win0.56650.58170.000.56650.5665 + 0.00 × (0.5817 − 0.5665) = 0.5665PASS

Published by the layer: away 3, home 4, p(home) 0.566481, continuous away 3.4627 / home 4.1996

Inputs and gates. candidate 20261007T091423Z_47b9db81, value age 10 days, lineup coverage away 0.9825 / home 0.8947, 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.2358 + sum of contributions = 4.3610; prediction 4.3610; contributions outside the top listed 0.9711 runs

FeatureRawStandardisedRuns contributedWhich KPIs it is built from
away_off_worst3_discipline-0.03451.951+0.5862mean of the three weakest plate approaches
home_platoon_barrel0.55861.725-0.5840platoon term, selected by the opposing starter's throwing hand
away_sp_suppress1.54222.540-0.4676starter group: pitcher_barrel_rate_allowed, pitcher_hard_hit_rate_allowed, pitcher_contact_xwoba_allowed, pitcher_home_run_rate_allowed
away_off_power_spread1.27601.967+0.4651offence group (dispersion across the lineup, not its mean): batter_home_run_rate, batter_bat_speed
away_off_discipline0.61242.615+0.4651offence group: batter_whiff_rate_vs_fastball, batter_whiff_rate_vs_breaking, batter_whiff_rate_vs_offspeed, batter_strikeout_rate ...
home_off_top3_contact1.39952.059-0.4576mean of the three best contact bats, a tail a club mean cannot express
away_sp_ground0.85881.342-0.4370starter group: pitcher_ground_ball_rate_induced
away_off_contact_spread0.97471.397-0.3885offence 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_qualified_share0.89471.086-0.3364share of the lineup carrying a qualifying sample, not a skill measurement
home_x_ground-0.2803-1.378+0.3088batter x pitcher interaction: pitcher_ground_ball_rate_induced, batter_ground_ball_rate_vs_fastball

What drove the KPI forecast for home_runs

intercept 4.5238 + sum of contributions = 4.5253; prediction 4.5253; contributions outside the top listed 0.5791 runs

FeatureRawStandardisedRuns contributedWhich KPIs it is built from
away_off_contact_spread0.97471.397-0.6220offence 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_platoon_whiff0.90152.892-0.4857platoon term, selected by the opposing starter's throwing hand
away_sp_velocity-0.5170-0.979-0.4501starter group: pitcher_release_speed
home_off_ground0.44681.342+0.3886offence group: batter_ground_ball_rate_vs_slider, batter_ground_ball_rate_vs_fastball
home_off_top3_contact1.39952.059-0.3712mean of the three best contact bats, a tail a club mean cannot express
away_off_power_spread1.27601.967+0.3502offence group (dispersion across the lineup, not its mean): batter_home_run_rate, batter_bat_speed
home_sp_whiff-0.7672-1.609+0.3079starter group: pitcher_whiff_rate, pitcher_whiff_rate_fastball, pitcher_whiff_rate_breaking
away_sp_suppress1.54222.540+0.2970starter group: pitcher_barrel_rate_allowed, pitcher_hard_hit_rate_allowed, pitcher_contact_xwoba_allowed, pitcher_home_run_rate_allowed
home_off_qualified_share0.89471.086+0.2830share of the lineup carrying a qualifying sample, not a skill measurement
home_platoon_barrel0.55861.725-0.2753platoon term, selected by the opposing starter's throwing hand

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

TB against Tyler Wells (RHP)

The pipeline applied one club-wide ×1.1542 to every TB hitter line, identical for the leadoff hitter and the ninth bat.
Opposing staff exposure. These hitters face the starter for 20.9702 of 36.528 projected batters (57.4%) and the 3 projected relievers for the remaining 42.6%. 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 staff1.054 → 0.996-0.0580.21690.2464n=678
Very good
0.1991n=418
Good
0.2269+0.132-0.080-0.008 ok
  splitstarter x0.921 at 0.574 share (log5 0.2269 vs his 0.1991)  +  bullpen x0.9766 at 0.426 share (log5 0.2406 vs pen 0.2116)  =  x0.9447  |  starter alone would have been -0.083
Strikeoutswhole staff0.735 → 0.773+0.0380.22120.1455n=678
Very good
0.2303n=418
Average
0.1521-0.339+0.041-0.011 ok
  splitstarter x1.0453 at 0.574 share (log5 0.1521 vs his 0.2303)  +  bullpen x1.0606 at 0.426 share (log5 0.1544 vs pen 0.2334)  =  x1.0518  |  starter alone would have been +0.033
Walkswhole staff0.426 → 0.394-0.0330.08890.0835n=678
Average
0.0799n=418
Average
0.0751-0.024-0.040+0.002 ok
  splitstarter x0.8985 at 0.574 share (log5 0.0751 vs his 0.0799)  +  bullpen x0.9572 at 0.426 share (log5 0.0800 vs pen 0.0851)  =  x0.9235  |  starter alone would have been -0.043
Home runswhole staff0.163 → 0.126-0.0370.03040.0319n=678
Average
0.0203n=418
Very good
0.0213+0.007-0.045-0.002 ok
  splitstarter x0.6692 at 0.574 share (log5 0.0213 vs his 0.0203)  +  bullpen x0.9058 at 0.426 share (log5 0.0289 vs pen 0.0275)  =  x0.77  |  starter alone would have been -0.054
Neutralising Yandy Díaz to the qualified-population mean moves the club's KPI run forecast by 0.7051 runs, and the weighted stage by 0.2397. Interactions make these non-additive across players, so they do not sum to the published movement.
Jonathan Aranda1BHitswhole staff0.922 → 0.870-0.0520.21690.2302n=661
Good
0.1991n=418
Good
0.2116+0.057-0.076-0.003 ok
  splitstarter x0.9194 at 0.574 share (log5 0.2116 vs his 0.1991)  +  bullpen x0.9761 at 0.426 share (log5 0.2247 vs pen 0.2116)  =  x0.9435  |  starter alone would have been -0.074
Strikeoutswhole staff1.272 → 1.330+0.0580.22120.2420n=661
Average
0.2303n=418
Average
0.2517+0.089+0.039+0.003 ok
  splitstarter x1.04 at 0.574 share (log5 0.2517 vs his 0.2303)  +  bullpen x1.0534 at 0.426 share (log5 0.2550 vs pen 0.2334)  =  x1.0457  |  starter alone would have been +0.051
Walkswhole staff0.408 → 0.377-0.0310.08890.1007n=661
Good
0.0799n=418
Average
0.0907+0.051-0.038-0.005 ok
  splitstarter x0.9002 at 0.574 share (log5 0.0907 vs his 0.0799)  +  bullpen x0.958 at 0.426 share (log5 0.0965 vs pen 0.0851)  =  x0.9248  |  starter alone would have been -0.041
Home runswhole staff0.168 → 0.130-0.0390.03040.0325n=661
Average
0.0203n=418
Very good
0.0217+0.009-0.043-0.003 ok
  splitstarter x0.6693 at 0.574 share (log5 0.0217 vs his 0.0203)  +  bullpen x0.9059 at 0.426 share (log5 0.0294 vs pen 0.0275)  =  x0.7701  |  starter alone would have been -0.056
Neutralising Jonathan Aranda to the qualified-population mean moves the club's KPI run forecast by -0.0272 runs, and the weighted stage by -0.0093. Interactions make these non-additive across players, so they do not sum to the published movement.
Junior Caminero3BHitswhole staff0.951 → 0.897-0.0530.21690.2330n=695
Good
0.1991n=418
Good
0.2143+0.067-0.073-0.004 ok
  splitstarter x0.9197 at 0.574 share (log5 0.2143 vs his 0.1991)  +  bullpen x0.9762 at 0.426 share (log5 0.2274 vs pen 0.2116)  =  x0.9438  |  starter alone would have been -0.076
Strikeoutswhole staff0.803 → 0.843+0.0400.22120.1853n=695
Good
0.2303n=418
Average
0.1932-0.148+0.038-0.005 ok
  splitstarter x1.0431 at 0.574 share (log5 0.1932 vs his 0.2303)  +  bullpen x1.0576 at 0.426 share (log5 0.1959 vs pen 0.2334)  =  x1.0493  |  starter alone would have been +0.035
Walkswhole staff0.435 → 0.403-0.0320.08890.1100n=695
Good
0.0799n=418
Average
0.0992+0.087-0.037-0.008 ok
  splitstarter x0.9011 at 0.574 share (log5 0.0992 vs his 0.0799)  +  bullpen x0.9584 at 0.426 share (log5 0.1055 vs pen 0.0851)  =  x0.9255  |  starter alone would have been -0.043
Home runswhole staff0.231 → 0.179-0.0520.03040.0522n=695
Very good
0.0203n=418
Very good
0.0351+0.090-0.042-0.029 ok
  splitstarter x0.6739 at 0.574 share (log5 0.0351 vs his 0.0203)  +  bullpen x0.9076 at 0.426 share (log5 0.0473 vs pen 0.0275)  =  x0.7734  |  starter alone would have been -0.075
Neutralising Junior Caminero to the qualified-population mean moves the club's KPI run forecast by 0.2500 runs, and the weighted stage by 0.0850. Interactions make these non-additive across players, so they do not sum to the published movement.
Victor Mesa Jr.LFHitswhole staff0.822 → 0.775-0.0470.21690.2223n=259
Average
0.1991n=418
Good
0.2043+0.022-0.070-0.001 ok
  splitstarter x0.9186 at 0.574 share (log5 0.2043 vs his 0.1991)  +  bullpen x0.9759 at 0.426 share (log5 0.2170 vs pen 0.2116)  =  x0.943  |  starter alone would have been -0.067
Strikeoutswhole staff0.972 → 1.019+0.0470.22120.2073n=259
Average
0.2303n=418
Average
0.2159-0.055+0.036-0.002 ok
  splitstarter x1.0419 at 0.574 share (log5 0.2159 vs his 0.2303)  +  bullpen x1.056 at 0.426 share (log5 0.2189 vs pen 0.2334)  =  x1.0479  |  starter alone would have been +0.041
Walkswhole staff0.267 → 0.246-0.0200.08890.0888n=259
Average
0.0799n=418
Average
0.0799-0.000-0.0350 ok
  splitstarter x0.899 at 0.574 share (log5 0.0799 vs his 0.0799)  +  bullpen x0.9574 at 0.426 share (log5 0.0851 vs pen 0.0851)  =  x0.9239  |  starter alone would have been -0.027
Home runswhole staff0.189 → 0.146-0.0430.03040.0421n=259
Good
0.0203n=418
Very good
0.0283+0.046-0.040-0.015 ok
  splitstarter x0.6715 at 0.574 share (log5 0.0283 vs his 0.0203)  +  bullpen x0.9067 at 0.426 share (log5 0.0382 vs pen 0.0275)  =  x0.7717  |  starter alone would have been -0.062
Neutralising Victor Mesa Jr. to the qualified-population mean moves the club's KPI run forecast by -0.0919 runs, and the weighted stage by -0.0313. Interactions make these non-additive across players, so they do not sum to the published movement.
Ryan ViladeRFHitswhole staff0.763 → 0.720-0.0440.21690.2163n=274
Average
0.1991n=418
Good
0.1986-0.002-0.067+0.000 ok
  splitstarter x0.9181 at 0.574 share (log5 0.1986 vs his 0.1991)  +  bullpen x0.9757 at 0.426 share (log5 0.2110 vs pen 0.2116)  =  x0.9426  |  starter alone would have been -0.063
Strikeoutswhole staff0.971 → 1.015+0.0450.22120.2348n=274
Average
0.2303n=418
Average
0.2443+0.051+0.034+0.001 ok
  splitstarter x1.0404 at 0.574 share (log5 0.2443 vs his 0.2303)  +  bullpen x1.0539 at 0.426 share (log5 0.2475 vs pen 0.2334)  =  x1.0461  |  starter alone would have been +0.039
Walkswhole staff0.298 → 0.276-0.0230.08890.0931n=274
Average
0.0799n=418
Average
0.0837+0.016-0.034-0.001 ok
  splitstarter x0.8994 at 0.574 share (log5 0.0837 vs his 0.0799)  +  bullpen x0.9576 at 0.426 share (log5 0.0891 vs pen 0.0851)  =  x0.9242  |  starter alone would have been -0.030
Home runswhole staff0.167 → 0.128-0.0380.03040.0354n=274
Good
0.0203n=418
Very good
0.0237+0.019-0.038-0.006 ok
  splitstarter x0.67 at 0.574 share (log5 0.0237 vs his 0.0203)  +  bullpen x0.9061 at 0.426 share (log5 0.0320 vs pen 0.0275)  =  x0.7706  |  starter alone would have been -0.055
Neutralising Ryan Vilade to the qualified-population mean moves the club's KPI run forecast by 0.1709 runs, and the weighted stage by 0.0581. Interactions make these non-additive across players, so they do not sum to the published movement.
Liam HicksCHitswhole staff0.805 → 0.760-0.0450.21690.2335n=551
Good
0.1991n=418
Good
0.2148+0.064-0.069-0.004 ok
  splitstarter x0.9197 at 0.574 share (log5 0.2148 vs his 0.1991)  +  bullpen x0.9762 at 0.426 share (log5 0.2280 vs pen 0.2116)  =  x0.9438  |  starter alone would have been -0.065
Strikeoutswhole staff0.501 → 0.528+0.0270.22120.1080n=551
Very good
0.2303n=418
Average
0.1131-0.437+0.035-0.015 ok
  splitstarter x1.0474 at 0.574 share (log5 0.1131 vs his 0.2303)  +  bullpen x1.0634 at 0.426 share (log5 0.1149 vs pen 0.2334)  =  x1.0542  |  starter alone would have been +0.024
Walkswhole staff0.365 → 0.337-0.0280.08890.0994n=551
Average
0.0799n=418
Average
0.0894+0.040-0.035-0.004 ok
  splitstarter x0.9 at 0.574 share (log5 0.0894 vs his 0.0799)  +  bullpen x0.9579 at 0.426 share (log5 0.0952 vs pen 0.0851)  =  x0.9247  |  starter alone would have been -0.036
Home runswhole staff0.121 → 0.093-0.0280.03040.0319n=551
Average
0.0203n=418
Very good
0.0214+0.006-0.039-0.002 ok
  splitstarter x0.6692 at 0.574 share (log5 0.0214 vs his 0.0203)  +  bullpen x0.9058 at 0.426 share (log5 0.0289 vs pen 0.0275)  =  x0.77  |  starter alone would have been -0.040
Neutralising Liam Hicks to the qualified-population mean moves the club's KPI run forecast by 0.2182 runs, and the weighted stage by 0.0742. Interactions make these non-additive across players, so they do not sum to the published movement.
Jonny DeLucaCFHitswhole staff0.899 → 0.849-0.0510.21690.2346n=363
Good
0.1991n=418
Good
0.2158+0.068-0.068-0.004 ok
  splitstarter x0.9198 at 0.574 share (log5 0.2158 vs his 0.1991)  +  bullpen x0.9763 at 0.426 share (log5 0.2291 vs pen 0.2116)  =  x0.9439  |  starter alone would have been -0.072
Strikeoutswhole staff0.993 → 1.040+0.0470.22120.2132n=363
Average
0.2303n=418
Average
0.2221-0.030+0.035-0.001 ok
  splitstarter x1.0416 at 0.574 share (log5 0.2221 vs his 0.2303)  +  bullpen x1.0555 at 0.426 share (log5 0.2250 vs pen 0.2334)  =  x1.0475  |  starter alone would have been +0.041
Walkswhole staff0.253 → 0.233-0.0200.08890.0572n=363
Poor
0.0799n=418
Average
0.0513-0.121-0.034+0.011 ok
  splitstarter x0.8959 at 0.574 share (log5 0.0513 vs his 0.0799)  +  bullpen x0.956 at 0.426 share (log5 0.0547 vs pen 0.0851)  =  x0.9215  |  starter alone would have been -0.026
Home runswhole staff0.142 → 0.109-0.0330.03040.0303n=363
Average
0.0203n=418
Very good
0.0203-0.000-0.038+0.000 ok
  splitstarter x0.6688 at 0.574 share (log5 0.0203 vs his 0.0203)  +  bullpen x0.9057 at 0.426 share (log5 0.0275 vs pen 0.0275)  =  x0.7697  |  starter alone would have been -0.047
Neutralising Jonny DeLuca to the qualified-population mean moves the club's KPI run forecast by -0.0170 runs, and the weighted stage by -0.0058. Interactions make these non-additive across players, so they do not sum to the published movement.
Richie Palacios2BHitswhole staff0.755 → 0.711-0.0430.21690.2110n=396
Average
0.1991n=418
Good
0.1936-0.021-0.063+0.001 ok
  splitstarter x0.9176 at 0.574 share (log5 0.1936 vs his 0.1991)  +  bullpen x0.9756 at 0.426 share (log5 0.2059 vs pen 0.2116)  =  x0.9423  |  starter alone would have been -0.062
Strikeoutswhole staff0.738 → 0.775+0.0370.22120.1749n=396
Good
0.2303n=418
Average
0.1825-0.165+0.032-0.005 ok
  splitstarter x1.0437 at 0.574 share (log5 0.1825 vs his 0.2303)  +  bullpen x1.0584 at 0.426 share (log5 0.1851 vs pen 0.2334)  =  x1.05  |  starter alone would have been +0.032
Walkswhole staff0.371 → 0.343-0.0280.08890.1099n=396
Good
0.0799n=418
Average
0.0990+0.074-0.032-0.007 ok
  splitstarter x0.9011 at 0.574 share (log5 0.0990 vs his 0.0799)  +  bullpen x0.9584 at 0.426 share (log5 0.1053 vs pen 0.0851)  =  x0.9255  |  starter alone would have been -0.037
Home runswhole staff0.114 → 0.088-0.0260.03040.0273n=396
Average
0.0203n=418
Very good
0.0182-0.011-0.036+0.004 ok
  splitstarter x0.6681 at 0.574 share (log5 0.0182 vs his 0.0203)  +  bullpen x0.9054 at 0.426 share (log5 0.0247 vs pen 0.0275)  =  x0.7692  |  starter alone would have been -0.038
Neutralising Richie Palacios to the qualified-population mean moves the club's KPI run forecast by -0.0171 runs, and the weighted stage by -0.0058. Interactions make these non-additive across players, so they do not sum to the published movement.
Taylor WallsSSHitswhole staff0.658 → 0.620-0.0380.21690.2028n=430
Below average
0.1991n=418
Good
0.1859-0.049-0.062+0.003 ok
  splitstarter x0.9168 at 0.574 share (log5 0.1859 vs his 0.1991)  +  bullpen x0.9753 at 0.426 share (log5 0.1978 vs pen 0.2116)  =  x0.9417  |  starter alone would have been -0.055
Strikeoutswhole staff0.928 → 0.970+0.0420.22120.2418n=430
Average
0.2303n=418
Average
0.2515+0.072+0.032+0.002 ok
  splitstarter x1.04 at 0.574 share (log5 0.2515 vs his 0.2303)  +  bullpen x1.0534 at 0.426 share (log5 0.2548 vs pen 0.2334)  =  x1.0457  |  starter alone would have been +0.037
Walkswhole staff0.356 → 0.329-0.0270.08890.1012n=430
Good
0.0799n=418
Average
0.0911+0.043-0.031-0.004 ok
  splitstarter x0.9002 at 0.574 share (log5 0.0911 vs his 0.0799)  +  bullpen x0.958 at 0.426 share (log5 0.0970 vs pen 0.0851)  =  x0.9248  |  starter alone would have been -0.035
Home runswhole staff0.059 → 0.046-0.0140.03040.0144n=430
Poor
0.0203n=418
Very good
0.0096-0.056-0.035+0.018 ok
  splitstarter x0.6652 at 0.574 share (log5 0.0096 vs his 0.0203)  +  bullpen x0.9043 at 0.426 share (log5 0.0131 vs pen 0.0275)  =  x0.767  |  starter alone would have been -0.020
Neutralising Taylor Walls to the qualified-population mean moves the club's KPI run forecast by -0.0179 runs, and the weighted stage by -0.0061. Interactions make these non-additive across players, so they do not sum to the published movement.
STARTER Nick Martinez18.0453 BFStarterHits4.238 → 4.243+0.0050.21690.2316n=698
Below average
0.21718/9 qualified
lineup mean
0.2319+0.266+0.005+0.000 ok
Strikeouts3.171 → 3.257+0.0870.22120.1539n=698
Poor
0.22688/9 qualified
lineup mean
0.1581-1.215+0.100-0.024 ok
Walks0.896 → 0.971+0.0750.08890.0456n=698
Very good
0.09608/9 qualified
lineup mean
0.0494-0.782+0.127-0.059 ok
Home runs0.675 → 0.783+0.1080.03040.0302n=698
Average
0.03528/9 qualified
lineup mean
0.0350-0.003+0.088-0.001 ok
RELIEVER Cam Booser4.7411 BFSetup ManHits0.368 → 0.368+0.0010.21690.1990n=152
Good
0.21718/9 qualified
lineup mean
0.1993-0.085+0.001-0.000 ok
Strikeouts0.713 → 0.730+0.0170.22120.2702n=152
Good
0.22688/9 qualified
lineup mean
0.2766+0.232+0.026+0.004 ok
Walks0.127 → 0.137+0.0100.08890.0646n=152
Very good
0.09608/9 qualified
lineup mean
0.0699-0.115+0.033-0.008 ok
Home runs0.068 → 0.079+0.0110.03040.0310n=152
Average
0.03528/9 qualified
lineup mean
0.0360+0.003+0.023+0.001 ok
RELIEVER Bryan Baker4.6834 BFCloserHits0.540 → 0.541+0.0010.21690.1836n=244
Very good
0.21718/9 qualified
lineup mean
0.1838-0.156+0.001-0.000 ok
Strikeouts0.931 → 0.954+0.0220.22120.2490n=244
Good
0.22688/9 qualified
lineup mean
0.2551+0.130+0.026+0.002 ok
Walks0.287 → 0.310+0.0230.08890.0897n=244
Average
0.09608/9 qualified
lineup mean
0.0968+0.004+0.033+0.000 ok
Home runs0.049 → 0.057+0.0080.03040.0254n=244
Good
0.03528/9 qualified
lineup mean
0.0295-0.023+0.023-0.004 ok
RELIEVER Ian Seymour2.5597 BFRelieverHits0.538 → 0.539+0.0010.21690.2104n=551
Average
0.21718/9 qualified
lineup mean
0.2106-0.017+0.0010 ok
Strikeouts0.713 → 0.729+0.0170.22120.2784n=551
Very good
0.22688/9 qualified
lineup mean
0.2849+0.146+0.014+0.002 ok
Walks0.181 → 0.195+0.0150.08890.0706n=551
Good
0.09608/9 qualified
lineup mean
0.0763-0.047+0.018-0.003 ok
Home runs0.099 → 0.115+0.0160.03040.0387n=551
Poor
0.03528/9 qualified
lineup mean
0.0448+0.021+0.012+0.003 ok
RELIEVER Steven Matz2.0966 BFRelieverHits0.454 → 0.455+0.0010.21690.2166n=342
Average
0.21718/9 qualified
lineup mean
0.2169-0.001+0.0010 ok
Strikeouts0.391 → 0.401+0.0100.22120.1865n=342
Below average
0.22688/9 qualified
lineup mean
0.1914-0.073+0.012-0.001 ok
Walks0.164 → 0.177+0.0130.08890.0781n=342
Good
0.09608/9 qualified
lineup mean
0.0844-0.023+0.015-0.002 ok
Home runs0.076 → 0.088+0.0120.03040.0362n=342
Poor
0.03528/9 qualified
lineup mean
0.0420+0.012+0.010+0.002 ok
RELIEVER Cole Sulser1.7947 BFMiddle RelieverHits0.856 → 0.857+0.0010.21690.2203n=236
Average
0.21718/9 qualified
lineup mean
0.2206+0.006+0.0010 ok
Strikeouts1.079 → 1.106+0.0270.22120.2332n=236
Average
0.22688/9 qualified
lineup mean
0.2390+0.021+0.010+0.000 ok
Walks0.311 → 0.336+0.0250.08890.0788n=236
Good
0.09608/9 qualified
lineup mean
0.0851-0.018+0.013-0.001 ok
Home runs0.104 → 0.121+0.0170.03040.0301n=236
Average
0.03528/9 qualified
lineup mean
0.0350-0.001+0.009-0.000 ok
RELIEVER Kevin Kelly0.7345 BFRelieverHits0.152 → 0.152+0.0000.21690.2073n=279
Average
0.21718/9 qualified
lineup mean
0.2075-0.007+0.0000 ok
Strikeouts0.165 → 0.169+0.0040.22120.2248n=279
Average
0.22688/9 qualified
lineup mean
0.2304+0.003+0.0040 ok
Walks0.042 → 0.045+0.0040.08890.0573n=279
Very good
0.09608/9 qualified
lineup mean
0.0620-0.023+0.005-0.002 ok
Home runs0.020 → 0.023+0.0030.03040.0270n=279
Good
0.03528/9 qualified
lineup mean
0.0313-0.003+0.004-0.000 ok
RELIEVER Tyler Wells0.3545 BFRelieverHits0.069 → 0.069+0.0000.21690.1936n=273
Very good
0.21718/9 qualified
lineup mean
0.1938-0.008+0.0000 ok
Strikeouts0.090 → 0.092+0.0020.22120.2541n=273
Good
0.22688/9 qualified
lineup mean
0.2602+0.012+0.002+0.000 ok
Walks0.026 → 0.029+0.0020.08890.0743n=273
Good
0.09608/9 qualified
lineup mean
0.0804-0.005+0.003-0.000 ok
Home runs0.011 → 0.012+0.0020.03040.0300n=273
Average
0.03528/9 qualified
lineup mean
0.0348-0.000+0.0020 ok

NYY against Ryan Yarbrough (LHP)

The pipeline applied one club-wide ×1.0499 to every NYY hitter line, identical for the leadoff hitter and the ninth bat.
Opposing staff exposure. These hitters face the starter for 18.0453 of 35.008 projected batters (51.5%) and the 3 projected relievers for the remaining 48.4%. 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
Trent GrishamCFHitswhole staff0.812 → 0.81200.21690.1996n=474
Poor
0.2316n=698
Below average
0.2135-0.071+0.060-0.004 ok
  splitstarter x1.0696 at 0.515 share (log5 0.2135 vs his 0.2316)  +  bullpen x0.926 at 0.484 share (log5 0.1848 vs pen 0.2011)  =  x1.0  |  starter alone would have been +0.057
Strikeoutswhole staff0.678 → 0.612-0.0660.22120.1871n=474
Good
0.1539n=698
Poor
0.1284-0.140-0.275+0.035 ok
  splitstarter x0.6864 at 0.515 share (log5 0.1284 vs his 0.1539)  +  bullpen x1.1321 at 0.484 share (log5 0.2118 vs pen 0.2490)  =  x0.9023  |  starter alone would have been -0.213
Walkswhole staff0.405 → 0.276-0.1290.08890.1190n=474
Very good
0.0456n=698
Very good
0.0620+0.123-0.177-0.056 ok
  splitstarter x0.5212 at 0.515 share (log5 0.0620 vs his 0.0456)  +  bullpen x0.8533 at 0.484 share (log5 0.1016 vs pen 0.0755)  =  x0.6821  |  starter alone would have been -0.194
Home runswhole staff0.165 → 0.167+0.0010.03040.0339n=474
Average
0.0302n=698
Average
0.0337+0.014-0.001-0.000 ok
  splitstarter x0.994 at 0.515 share (log5 0.0337 vs his 0.0302)  +  bullpen x1.0197 at 0.484 share (log5 0.0346 vs pen 0.0310)  =  x1.0065  |  starter alone would have been -0.001
Neutralising Trent Grisham to the qualified-population mean moves the club's KPI run forecast by 0.4210 runs, and the weighted stage by 0.1600. Interactions make these non-additive across players, so they do not sum to the published movement.
Ben RiceDHHitswhole staff0.981 → 0.981-0.0000.21690.2240n=651
Average
0.2316n=698
Below average
0.2391+0.031+0.064+0.002 ok
  splitstarter x1.0673 at 0.515 share (log5 0.2391 vs his 0.2316)  +  bullpen x0.9281 at 0.484 share (log5 0.2079 vs pen 0.2011)  =  x0.9999  |  starter alone would have been +0.066
Strikeoutswhole staff0.871 → 0.788-0.0830.22120.2398n=651
Average
0.1539n=698
Poor
0.1680+0.080-0.291-0.019 ok
  splitstarter x0.7007 at 0.515 share (log5 0.1680 vs his 0.1539)  +  bullpen x1.1225 at 0.484 share (log5 0.2691 vs pen 0.2490)  =  x0.9051  |  starter alone would have been -0.261
Walkswhole staff0.562 → 0.384-0.1780.08890.1228n=651
Very good
0.0456n=698
Very good
0.0641+0.147-0.187-0.066 ok
  splitstarter x0.5223 at 0.515 share (log5 0.0641 vs his 0.0456)  +  bullpen x0.8538 at 0.484 share (log5 0.1049 vs pen 0.0755)  =  x0.6829  |  starter alone would have been -0.268
Home runswhole staff0.264 → 0.266+0.0020.03040.0536n=651
Very good
0.0302n=698
Average
0.0533+0.100-0.001-0.001 ok
  splitstarter x0.9941 at 0.515 share (log5 0.0533 vs his 0.0302)  +  bullpen x1.0193 at 0.484 share (log5 0.0546 vs pen 0.0310)  =  x1.0063  |  starter alone would have been -0.002
Neutralising Ben Rice to the qualified-population mean moves the club's KPI run forecast by 0.1739 runs, and the weighted stage by 0.0661. Interactions make these non-additive across players, so they do not sum to the published movement.
Luis García Jr.1BHitswhole staff1.056 → 1.056-0.0000.21690.2435n=539
Very good
0.2316n=698
Below average
0.2595+0.109+0.060+0.005 ok
  splitstarter x1.0655 at 0.515 share (log5 0.2595 vs his 0.2316)  +  bullpen x0.9298 at 0.484 share (log5 0.2264 vs pen 0.2011)  =  x0.9998  |  starter alone would have been +0.069
Strikeoutswhole staff0.747 → 0.674-0.0730.22120.1817n=539
Good
0.1539n=698
Poor
0.1245-0.161-0.274+0.041 ok
  splitstarter x0.685 at 0.515 share (log5 0.1245 vs his 0.1539)  +  bullpen x1.1331 at 0.484 share (log5 0.2059 vs pen 0.2490)  =  x0.9021  |  starter alone would have been -0.235
Walkswhole staff0.205 → 0.137-0.0680.08890.0541n=539
Poor
0.0456n=698
Very good
0.0272-0.142-0.176+0.067 ok
  splitstarter x0.5034 at 0.515 share (log5 0.0272 vs his 0.0456)  +  bullpen x0.8441 at 0.484 share (log5 0.0457 vs pen 0.0755)  =  x0.6685  |  starter alone would have been -0.102
Home runswhole staff0.234 → 0.235+0.0020.03040.0473n=539
Very good
0.0302n=698
Average
0.0471+0.069-0.001-0.000 ok
  splitstarter x0.9941 at 0.515 share (log5 0.0471 vs his 0.0302)  +  bullpen x1.0194 at 0.484 share (log5 0.0483 vs pen 0.0310)  =  x1.0064  |  starter alone would have been -0.001
Neutralising Luis García Jr. to the qualified-population mean moves the club's KPI run forecast by 0.3035 runs, and the weighted stage by 0.1153. Interactions make these non-additive across players, so they do not sum to the published movement.
Cody BellingerLFHitswhole staff0.976 → 0.976-0.0000.21690.2269n=549
Good
0.2316n=698
Below average
0.2421+0.042+0.062+0.002 ok
  splitstarter x1.067 at 0.515 share (log5 0.2421 vs his 0.2316)  +  bullpen x0.9284 at 0.484 share (log5 0.2107 vs pen 0.2011)  =  x0.9998  |  starter alone would have been +0.065
Strikeoutswhole staff0.608 → 0.548-0.0600.22120.1619n=549
Good
0.1539n=698
Poor
0.1101-0.248-0.282+0.065 ok
  splitstarter x0.6798 at 0.515 share (log5 0.1101 vs his 0.1539)  +  bullpen x1.1367 at 0.484 share (log5 0.1840 vs pen 0.2490)  =  x0.9012  |  starter alone would have been -0.195
Walkswhole staff0.295 → 0.200-0.0950.08890.1027n=549
Good
0.0456n=698
Very good
0.0530+0.058-0.181-0.026 ok
  splitstarter x0.5166 at 0.515 share (log5 0.0530 vs his 0.0456)  +  bullpen x0.8509 at 0.484 share (log5 0.0874 vs pen 0.0755)  =  x0.6786  |  starter alone would have been -0.143
Home runswhole staff0.175 → 0.176+0.0010.03040.0295n=549
Average
0.0302n=698
Average
0.0294-0.004-0.0010 ok
  splitstarter x0.9939 at 0.515 share (log5 0.0294 vs his 0.0302)  +  bullpen x1.0198 at 0.484 share (log5 0.0301 vs pen 0.0310)  =  x1.0064  |  starter alone would have been -0.001
Neutralising Cody Bellinger to the qualified-population mean moves the club's KPI run forecast by 0.3804 runs, and the weighted stage by 0.1446. Interactions make these non-additive across players, so they do not sum to the published movement.
George Lombard Jr.SSHitswhole staff0.890 → 0.890-0.0000.21690.2169n=0
averagebelow floor
0.2316n=698
Below average
0.23160+0.0600 ok
  splitstarter x1.0679 at 0.515 share (log5 0.2316 vs his 0.2316)  +  bullpen x0.9275 at 0.484 share (log5 0.2011 vs pen 0.2011)  =  x0.9999  |  starter alone would have been +0.060
Strikeoutswhole staff0.987 → 0.892-0.0950.22120.2212n=0
averagebelow floor
0.1539n=698
Poor
0.15390-0.2720 ok
  splitstarter x0.6956 at 0.515 share (log5 0.1539 vs his 0.1539)  +  bullpen x1.1258 at 0.484 share (log5 0.2490 vs pen 0.2490)  =  x0.904  |  starter alone would have been -0.300
Walkswhole staff0.275 → 0.186-0.0890.08890.0889n=0
averagebelow floor
0.0456n=698
Very good
0.04560-0.1750 ok
  splitstarter x0.5128 at 0.515 share (log5 0.0456 vs his 0.0456)  +  bullpen x0.849 at 0.484 share (log5 0.0755 vs pen 0.0755)  =  x0.6757  |  starter alone would have been -0.134
Home runswhole staff0.158 → 0.159+0.0010.03040.0304n=0
averagebelow floor
0.0302n=698
Average
0.03020-0.0010 ok
  splitstarter x0.9939 at 0.515 share (log5 0.0302 vs his 0.0302)  +  bullpen x1.0198 at 0.484 share (log5 0.0310 vs pen 0.0310)  =  x1.0064  |  starter alone would have been -0.001
Neutralising George Lombard Jr. to the qualified-population mean moves the club's KPI run forecast by 0.0316 runs, and the weighted stage by 0.0120. Interactions make these non-additive across players, so they do not sum to the published movement.
Austin WellsCHitswhole staff0.670 → 0.67000.21690.1904n=387
Poor
0.2316n=698
Below average
0.2038-0.090+0.050-0.004 ok
  splitstarter x1.0704 at 0.515 share (log5 0.2038 vs his 0.2316)  +  bullpen x0.9252 at 0.484 share (log5 0.1761 vs pen 0.2011)  =  x1.0001  |  starter alone would have been +0.047
Strikeoutswhole staff0.799 → 0.724-0.0750.22120.2588n=387
Below average
0.1539n=698
Poor
0.1827+0.127-0.228-0.030 ok
  splitstarter x0.706 at 0.515 share (log5 0.1827 vs his 0.1539)  +  bullpen x1.119 at 0.484 share (log5 0.2896 vs pen 0.2490)  =  x0.9061  |  starter alone would have been -0.235
Walkswhole staff0.310 → 0.211-0.0990.08890.1158n=387
Good
0.0456n=698
Very good
0.0602+0.091-0.146-0.041 ok
  splitstarter x0.5203 at 0.515 share (log5 0.0602 vs his 0.0456)  +  bullpen x0.8528 at 0.484 share (log5 0.0987 vs pen 0.0755)  =  x0.6814  |  starter alone would have been -0.149
Home runswhole staff0.158 → 0.159+0.0010.03040.0338n=387
Average
0.0302n=698
Average
0.0336+0.012-0.001-0.000 ok
  splitstarter x0.994 at 0.515 share (log5 0.0336 vs his 0.0302)  +  bullpen x1.0197 at 0.484 share (log5 0.0345 vs pen 0.0310)  =  x1.0065  |  starter alone would have been -0.001
Neutralising Austin Wells to the qualified-population mean moves the club's KPI run forecast by 0.2797 runs, and the weighted stage by 0.1063. Interactions make these non-additive across players, so they do not sum to the published movement.
Anthony Volpe2BHitswhole staff0.807 → 0.807-0.0000.21690.2178n=237
Average
0.2316n=698
Below average
0.2325+0.003+0.056+0.000 ok
  splitstarter x1.0679 at 0.515 share (log5 0.2325 vs his 0.2316)  +  bullpen x0.9276 at 0.484 share (log5 0.2020 vs pen 0.2011)  =  x0.9999  |  starter alone would have been +0.055
Strikeoutswhole staff0.852 → 0.770-0.0820.22120.2197n=237
Average
0.1539n=698
Poor
0.1527-0.006-0.255+0.001 ok
  splitstarter x0.6952 at 0.515 share (log5 0.1527 vs his 0.1539)  +  bullpen x1.1261 at 0.484 share (log5 0.2474 vs pen 0.2490)  =  x0.904  |  starter alone would have been -0.260
Walkswhole staff0.279 → 0.189-0.0900.08890.0999n=237
Average
0.0456n=698
Very good
0.0516+0.042-0.164-0.019 ok
  splitstarter x0.5158 at 0.515 share (log5 0.0516 vs his 0.0456)  +  bullpen x0.8506 at 0.484 share (log5 0.0850 vs pen 0.0755)  =  x0.678  |  starter alone would have been -0.135
Home runswhole staff0.087 → 0.088+0.0010.03040.0200n=237
Poor
0.0302n=698
Average
0.0199-0.039-0.001+0.000 ok
  splitstarter x0.9939 at 0.515 share (log5 0.0199 vs his 0.0302)  +  bullpen x1.02 at 0.484 share (log5 0.0204 vs pen 0.0310)  =  x1.0065  |  starter alone would have been -0.001
Neutralising Anthony Volpe to the qualified-population mean moves the club's KPI run forecast by 0.0978 runs, and the weighted stage by 0.0372. Interactions make these non-additive across players, so they do not sum to the published movement.
Spencer JonesRFHitswhole staff0.837 → 0.837-0.0000.21690.2177n=283
Average
0.2316n=698
Below average
0.2325+0.003+0.056+0.000 ok
  splitstarter x1.0679 at 0.515 share (log5 0.2325 vs his 0.2316)  +  bullpen x0.9276 at 0.484 share (log5 0.2020 vs pen 0.2011)  =  x0.9999  |  starter alone would have been +0.057
Strikeoutswhole staff1.244 → 1.135-0.1100.22120.3460n=283
Poor
0.1539n=698
Poor
0.2530+0.478-0.258-0.098 ok
  splitstarter x0.7313 at 0.515 share (log5 0.2530 vs his 0.1539)  +  bullpen x1.1036 at 0.484 share (log5 0.3819 vs pen 0.2490)  =  x0.9117  |  starter alone would have been -0.334
Walkswhole staff0.300 → 0.203-0.0970.08890.0885n=283
Average
0.0456n=698
Very good
0.0454-0.002-0.166+0.001 ok
  splitstarter x0.5127 at 0.515 share (log5 0.0454 vs his 0.0456)  +  bullpen x0.8489 at 0.484 share (log5 0.0751 vs pen 0.0755)  =  x0.6756  |  starter alone would have been -0.146
Home runswhole staff0.160 → 0.161+0.0010.03040.0348n=283
Average
0.0302n=698
Average
0.0346+0.017-0.001-0.000 ok
  splitstarter x0.994 at 0.515 share (log5 0.0346 vs his 0.0302)  +  bullpen x1.0197 at 0.484 share (log5 0.0355 vs pen 0.0310)  =  x1.0065  |  starter alone would have been -0.001
Neutralising Spencer Jones to the qualified-population mean moves the club's KPI run forecast by -0.1656 runs, and the weighted stage by -0.0629. Interactions make these non-additive across players, so they do not sum to the published movement.
José Caballero3BHitswhole staff0.822 → 0.822-0.0000.21690.2115n=451
Average
0.2316n=698
Below average
0.2259-0.019+0.051-0.001 ok
  splitstarter x1.0684 at 0.515 share (log5 0.2259 vs his 0.2316)  +  bullpen x0.927 at 0.484 share (log5 0.1960 vs pen 0.2011)  =  x0.9999  |  starter alone would have been +0.056
Strikeoutswhole staff0.826 → 0.747-0.0780.22120.2397n=451
Average
0.1539n=698
Poor
0.1679+0.064-0.234-0.015 ok
  splitstarter x0.7007 at 0.515 share (log5 0.1679 vs his 0.1539)  +  bullpen x1.1225 at 0.484 share (log5 0.2690 vs pen 0.2490)  =  x0.9051  |  starter alone would have been -0.247
Walkswhole staff0.213 → 0.143-0.0700.08890.0694n=451
Below average
0.0456n=698
Very good
0.0352-0.068-0.151+0.032 ok
  splitstarter x0.5075 at 0.515 share (log5 0.0352 vs his 0.0456)  +  bullpen x0.8463 at 0.484 share (log5 0.0588 vs pen 0.0755)  =  x0.6716  |  starter alone would have been -0.105
Home runswhole staff0.125 → 0.126+0.0010.03040.0308n=451
Average
0.0302n=698
Average
0.0306+0.001-0.0010 ok
  splitstarter x0.9939 at 0.515 share (log5 0.0306 vs his 0.0302)  +  bullpen x1.0198 at 0.484 share (log5 0.0314 vs pen 0.0310)  =  x1.0064  |  starter alone would have been -0.001
Neutralising José Caballero to the qualified-population mean moves the club's KPI run forecast by 0.2890 runs, and the weighted stage by 0.1098. Interactions make these non-additive across players, so they do not sum to the published movement.
STARTER Max Fried20.9702 BFStarterHits3.792 → 3.962+0.1710.21690.1991n=418
Good
0.22649/9 qualified
lineup mean
0.2081-0.372+0.200-0.012 ok
Strikeouts4.580 → 4.022-0.5590.22120.2303n=418
Average
0.19409/9 qualified
lineup mean
0.2022+0.191-0.572-0.017 ok
Walks1.414 → 1.490+0.0750.08890.0799n=418
Average
0.09369/9 qualified
lineup mean
0.0842-0.188+0.099-0.009 ok
Home runs0.300 → 0.331+0.0310.03040.0203n=418
Very good
0.03359/9 qualified
lineup mean
0.0224-0.211+0.065-0.021 ok
RELIEVER Paul Blackburn2.9202 BFMiddle Reliever (High Leverage)Hits0.811 → 0.848+0.0360.21690.1987n=329
Good
0.22649/9 qualified
lineup mean
0.2076-0.053+0.028-0.002 ok
Strikeouts0.773 → 0.676-0.0970.22120.2046n=329
Average
0.19409/9 qualified
lineup mean
0.1790-0.048-0.080+0.005 ok
Walks0.470 → 0.495+0.0250.08890.0946n=329
Average
0.09369/9 qualified
lineup mean
0.0995+0.017+0.014+0.001 ok
Home runs0.068 → 0.075+0.0070.03040.0265n=329
Good
0.03359/9 qualified
lineup mean
0.0292-0.011+0.009-0.001 ok
RELIEVER Ryan Weathers2.7864 BFMiddle RelieverHits0.793 → 0.828+0.0350.21690.2248n=568
Below average
0.22649/9 qualified
lineup mean
0.2346+0.022+0.027+0.001 ok
Strikeouts0.732 → 0.645-0.0870.22120.2480n=568
Good
0.19409/9 qualified
lineup mean
0.2183+0.075-0.076-0.007 ok
Walks0.415 → 0.438+0.0220.08890.0717n=568
Good
0.09369/9 qualified
lineup mean
0.0756-0.048+0.013-0.002 ok
Home runs0.119 → 0.131+0.0120.03040.0311n=568
Average
0.03359/9 qualified
lineup mean
0.0343+0.002+0.009+0.000 ok
RELIEVER David Bednar2.6402 BFRelieverHits0.535 → 0.559+0.0240.21690.2027n=277
Good
0.22649/9 qualified
lineup mean
0.2118-0.037+0.025-0.001 ok
Strikeouts0.693 → 0.612-0.0810.22120.2624n=277
Good
0.19409/9 qualified
lineup mean
0.2316+0.109-0.072-0.009 ok
Walks0.207 → 0.218+0.0110.08890.0783n=277
Good
0.09369/9 qualified
lineup mean
0.0825-0.028+0.012-0.001 ok
Home runs0.064 → 0.071+0.0070.03040.0243n=277
Very good
0.03359/9 qualified
lineup mean
0.0268-0.016+0.008-0.002 ok
RELIEVER John Schreiber2.6137 BFMiddle Reliever (High Leverage)Hits0.765 → 0.799+0.0340.21690.2088n=246
Average
0.22649/9 qualified
lineup mean
0.2181-0.021+0.025-0.001 ok
Strikeouts0.657 → 0.573-0.0850.22120.1770n=246
Below average
0.19409/9 qualified
lineup mean
0.1541-0.116-0.071+0.011 ok
Walks0.338 → 0.355+0.0180.08890.0991n=246
Below average
0.09369/9 qualified
lineup mean
0.1043+0.027+0.012+0.001 ok
Home runs0.090 → 0.099+0.0090.03040.0297n=246
Average
0.03359/9 qualified
lineup mean
0.0327-0.002+0.008-0.000 ok
RELIEVER Brent Headrick2.511 BFRelieverHits0.534 → 0.557+0.0240.21690.2125n=326
Average
0.22649/9 qualified
lineup mean
0.2219-0.011+0.024-0.000 ok
Strikeouts0.716 → 0.634-0.0820.22120.2849n=326
Very good
0.19409/9 qualified
lineup mean
0.2524+0.160-0.068-0.013 ok
Walks0.213 → 0.224+0.0110.08890.0848n=326
Average
0.09369/9 qualified
lineup mean
0.0893-0.010+0.012-0.001 ok
Home runs0.060 → 0.067+0.0060.03040.0240n=326
Very good
0.03359/9 qualified
lineup mean
0.0265-0.016+0.008-0.002 ok
RELIEVER Will Warren1.7378 BFRelieverHits0.399 → 0.416+0.0170.21690.2293n=673
Below average
0.22649/9 qualified
lineup mean
0.2392+0.022+0.017+0.001 ok
Strikeouts0.403 → 0.354-0.0490.22120.2320n=673
Average
0.19409/9 qualified
lineup mean
0.2038+0.019-0.047-0.002 ok
Walks0.140 → 0.148+0.0070.08890.0807n=673
Average
0.09369/9 qualified
lineup mean
0.0850-0.014+0.008-0.001 ok
Home runs0.054 → 0.059+0.0050.03040.0309n=673
Average
0.03359/9 qualified
lineup mean
0.0340+0.001+0.005+0.000 ok
RELIEVER Ryan Yarbrough0.3469 BFRelieverHits0.072 → 0.075+0.0030.21690.2080n=253
Average
0.22649/9 qualified
lineup mean
0.2172-0.003+0.003-0.000 ok
Strikeouts0.067 → 0.059-0.0090.22120.1943n=253
Below average
0.19409/9 qualified
lineup mean
0.1696-0.009-0.009+0.001 ok
Walks0.030 → 0.031+0.0020.08890.0853n=253
Average
0.09369/9 qualified
lineup mean
0.0898-0.001+0.002-0.000 ok
Home runs0.008 → 0.009+0.0010.03040.0237n=253
Very good
0.03359/9 qualified
lineup mean
0.0261-0.002+0.001-0.000 ok

Published pitching, integer draw beside the continuous model line

PitcherRoleBFIPexpected IPH int/contSO int/contBB int/contER int/contRate source
Nick MartinezStarter18.04.14.3044 / 4.2384 / 3.1712 / 0.8962 / 1.939all_players_stats_recent_season_blend
Cam BooserSetup Man2.50.20.6680 / 0.3681 / 0.7130 / 0.1270 / 0.121all_players_stats_recent_season_blend
Bryan BakerCloser3.81.01.0021 / 0.5401 / 0.9310 / 0.2870 / 0.108all_players_stats_recent_season_blend
Cole SulserMiddle Reliever4.22.21.0024 / 0.8562 / 1.0790 / 0.3112 / 0.385all_players_stats_recent_season_blend
Max FriedStarter21.05.15.2554 / 3.7927 / 4.5803 / 1.4142 / 1.510all_players_stats_recent_season_blend
Ryan WeathersMiddle Reliever4.21.01.0060 / 0.7930 / 0.7320 / 0.4150 / 0.414all_players_stats_recent_season_blend
Paul BlackburnMiddle Reliever (High Leverage)5.31.11.3411 / 0.8110 / 0.7730 / 0.4701 / 0.157all_players_stats_recent_season_blend
John SchreiberMiddle Reliever (High Leverage)4.11.11.0061 / 0.7651 / 0.6571 / 0.3380 / 0.285all_players_stats_recent_season_blend

Audit: 1 CHECK(S) FAILED

InvariantVerdictEvidence
blend arithmetic away_runsPASS3.0000 + 0.34 x (4.3610 - 3.0000) = 3.4627, recorded 3.4627
blend arithmetic home_runsPASS4.0000 + 0.38 x (4.5253 - 4.0000) = 4.1996, recorded 4.1996
blend arithmetic home_winPASS0.5665 + 0.00 x (0.5817 - 0.5665) = 0.5665, recorded 0.5665
published rounding faithful to the blendPASSblended 3.4627-4.1996 rounds to 3-4, layer published 3-4
published probability on the score's sidePASS3-4 with p(home) 0.566481
Log5 additivity136 checksPASS136 of 136 pass
away club fields exactly one starterPASS1 starters in a staff of 4
away staff totals a regulation workloadFAIL26 outs recorded, 24 expected
away starter carries a continuous linePASSexpected_IP 4.3037
away starter batters faced inside the real bandPASSNick Martinez projected 18.0 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.2547
home starter batters faced inside the real bandPASSMax Fried projected 21.0 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.