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 20261006Games 2Checks 314Schema metric_evolution_report_v1Built 2026-10-07 09:14Z

Verdict across the slate

314 invariants checked across 2 games: 2 OF 314 CHECKS FAILED
  • away staff totals a regulation workload: 30 outs recorded, 27 expected
  • home staff totals a regulation workload: 30 outs recorded, 27 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
20261006_LAD@ATL4 - 30.494882yes-0.5364+0.2218-no
20261006_MIL@SD4 - 50.566481yes-0.3389-0.3442-no
KPI model in force. candidate 20261007T091423Z_47b9db81, 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

20261006_LAD@ATL — published 4-3, 157 checks, 2 failed
Artifact. 20261006_LAD@ATL__20261007T023903Z.json, phase post_start_rerun, generated 2026-10-07T02:39:03, first pitch 2026-10-06T22:00:00.
Published 4 - 3 with p(home) 0.494846. 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.807428442993566 - 4.6343579582579890000noBase ML historical model prediction
2. variance_applied4 - 5+0.1926+0.3656+0.1926+0.3656yesDeterministic baseline target (variance factor 1.0)
3. enhanced_prediction4 - 30-2.0000+0.1926-1.6344yesEnhanced ML with recent form, H2H, low-score analysis (confidence shrunk by projected_margin_is_one_run, matchup_recency_guardrail)
4. kpi_layer4 - 300+0.1926-1.6344noaway -0.5364; home +0.2218
Savant KPI blend applied to the model target
5. embedded_savant_run_environment4 - 300+0.1926-1.6344noaway -0.0093; home -0.1827
Target score adjusted by temporal Savant lineup quality versus opposing starter quality
6. fundamental_edge_target_review4 - 300+0.1926-1.6344noRefreshed score target and win probability after Savant/pitcher/team-strength adjustments
7. capped_target4 - 300+0.1926-1.6344noCapped at max 12 realistic runs
8. simulation_result4 - 3----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.31230.783.46364.0000 + 0.78 × (3.3123 − 4.0000) = 3.4636PASS
home_runs3.00003.50400.443.22183.0000 + 0.44 × (3.5040 − 3.0000) = 3.2218PASS
home_win0.49290.82540.000.49290.4929 + 0.00 × (0.8254 − 0.4929) = 0.4929PASS

Published by the layer: away 4, home 3, p(home) 0.492867, continuous away 3.4636 / home 3.2218

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

What drove the KPI forecast for away_runs

intercept 4.2573 + sum of contributions = 3.3123; prediction 3.3123; contributions outside the top listed 0.2556 runs

FeatureRawStandardisedRuns contributedWhich KPIs it is built from
home_platoon_barrel0.65032.019-0.7956platoon term, selected by the opposing starter's throwing hand
away_sp_command1.22732.183-0.6964starter group: pitcher_strikeout_rate, pitcher_walk_rate
away_off_contact0.39981.574+0.6025offence group: batter_barrel_rate_vs_fastball, batter_barrel_rate_vs_breaking, batter_barrel_rate_vs_offspeed, batter_hard_hit_rate_vs_fastball ...
away_off_discipline0.35481.341+0.4771offence group: batter_whiff_rate_vs_fastball, batter_whiff_rate_vs_breaking, batter_whiff_rate_vs_offspeed, batter_strikeout_rate ...
home_off_top3_contact1.27011.642-0.4634mean of the three best contact bats, a tail a club mean cannot express
home_off_qualified_share0.88891.083-0.4006share of the lineup carrying a qualifying sample, not a skill measurement
away_sp_whiff0.77541.372+0.3512starter group: pitcher_whiff_rate, pitcher_whiff_rate_fastball, pitcher_whiff_rate_breaking
home_off_power0.53292.154+0.3498offence group: batter_home_run_rate, batter_bat_speed
away_x_breaking0.25111.192-0.3360batter x pitcher interaction: pitcher_whiff_rate_breaking, batter_whiff_rate_vs_breaking
home_sp_suppress0.57570.854-0.2892starter group: pitcher_barrel_rate_allowed, pitcher_hard_hit_rate_allowed, pitcher_contact_xwoba_allowed, pitcher_home_run_rate_allowed

What drove the KPI forecast for home_runs

intercept 4.2997 + sum of contributions = 3.5040; prediction 3.5040; contributions outside the top listed -0.4713 runs

FeatureRawStandardisedRuns contributedWhich KPIs it is built from
home_off_power0.53292.154+0.5722offence group: batter_home_run_rate, batter_bat_speed
away_off_ground0.52831.634+0.3967offence group: batter_ground_ball_rate_vs_slider, batter_ground_ball_rate_vs_fastball
home_pen_minus_sp-0.2144-1.823-0.3904composite feature
away_x_suppress0.32471.324-0.3180batter x pitcher interaction: pitcher_barrel_rate_allowed, batter_barrel_rate_vs_fastball
home_sp_command0.75701.209-0.2936starter group: pitcher_strikeout_rate, pitcher_walk_rate
away_off_top3_contact1.13411.254-0.2723mean of the three best contact bats, a tail a club mean cannot express
away_off_contact0.39981.574+0.2554offence group: batter_barrel_rate_vs_fastball, batter_barrel_rate_vs_breaking, batter_barrel_rate_vs_offspeed, batter_hard_hit_rate_vs_fastball ...
away_pen_minus_sp-0.2423-1.782-0.2550composite feature
home_platoon_barrel0.65032.019-0.2478platoon term, selected by the opposing starter's throwing hand
home_off_worst3_discipline-0.33150.759+0.2284mean of the three weakest plate approaches

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 Evan Phillips (RHP)

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

PlayerPosMetricPublished → KPIΔLeagueOwn rateOpponent rateLog5Own skillOpponentRemainder
Mookie BettsSSHitswhole staff0.939 → 0.900-0.0400.21690.2268n=523
Good
0.2069n=628
Good
0.2165+0.041-0.041-0.001 ok
  splitstarter x0.9546 at 0.600 share (log5 0.2165 vs his 0.2069)  +  bullpen x0.9626 at 0.400 share (log5 0.2183 vs pen 0.2087)  =  x0.9578  |  starter alone would have been -0.043
Strikeoutswhole staff0.567 → 0.711+0.1440.22120.1168n=523
Very good
0.2947n=628
Very good
0.1629-0.429+0.302-0.113 ok
  splitstarter x1.3946 at 0.600 share (log5 0.1629 vs his 0.2947)  +  bullpen x1.0432 at 0.400 share (log5 0.1218 vs pen 0.2296)  =  x1.2539  |  starter alone would have been +0.224
Walkswhole staff0.281 → 0.211-0.0700.08890.0866n=523
Average
0.0573n=628
Very good
0.0557-0.010-0.130+0.003 ok
  splitstarter x0.6438 at 0.600 share (log5 0.0557 vs his 0.0573)  +  bullpen x0.9106 at 0.400 share (log5 0.0788 vs pen 0.0810)  =  x0.7506  |  starter alone would have been -0.100
Home runswhole staff0.173 → 0.138-0.0350.03040.0394n=523
Good
0.0219n=628
Very good
0.0285+0.037-0.035-0.010 ok
  splitstarter x0.7237 at 0.600 share (log5 0.0285 vs his 0.0219)  +  bullpen x0.9069 at 0.400 share (log5 0.0357 vs pen 0.0275)  =  x0.797  |  starter alone would have been -0.048
Neutralising Mookie Betts to the qualified-population mean moves the club's KPI run forecast by 0.3764 runs, and the weighted stage by 0.2936. Interactions make these non-additive across players, so they do not sum to the published movement.
Freddie Freeman1BHitswhole staff1.000 → 0.959-0.0420.21690.2394n=652
Very good
0.2069n=628
Good
0.2287+0.094-0.042-0.003 ok
  splitstarter x0.9553 at 0.600 share (log5 0.2287 vs his 0.2069)  +  bullpen x0.9632 at 0.400 share (log5 0.2306 vs pen 0.2087)  =  x0.9585  |  starter alone would have been -0.045
Strikeoutswhole staff0.889 → 1.093+0.2050.22120.1781n=652
Good
0.2947n=628
Very good
0.2417-0.181+0.308-0.041 ok
  splitstarter x1.3575 at 0.600 share (log5 0.2417 vs his 0.2947)  +  bullpen x1.0401 at 0.400 share (log5 0.1852 vs pen 0.2296)  =  x1.2304  |  starter alone would have been +0.318
Walkswhole staff0.275 → 0.207-0.0680.08890.0993n=652
Average
0.0573n=628
Very good
0.0643+0.043-0.132-0.014 ok
  splitstarter x0.647 at 0.600 share (log5 0.0643 vs his 0.0573)  +  bullpen x0.9117 at 0.400 share (log5 0.0906 vs pen 0.0810)  =  x0.753  |  starter alone would have been -0.097
Home runswhole staff0.129 → 0.103-0.0260.03040.0262n=652
Average
0.0219n=628
Very good
0.0189-0.017-0.035+0.005 ok
  splitstarter x0.721 at 0.600 share (log5 0.0189 vs his 0.0219)  +  bullpen x0.9057 at 0.400 share (log5 0.0238 vs pen 0.0275)  =  x0.7949  |  starter alone would have been -0.036
Neutralising Freddie Freeman to the qualified-population mean moves the club's KPI run forecast by 0.3824 runs, and the weighted stage by 0.2982. Interactions make these non-additive across players, so they do not sum to the published movement.
Teoscar HernándezLFHitswhole staff0.854 → 0.818-0.0360.21690.2292n=487
Good
0.2069n=628
Good
0.2188+0.049-0.040-0.002 ok
  splitstarter x0.9547 at 0.600 share (log5 0.2188 vs his 0.2069)  +  bullpen x0.9627 at 0.400 share (log5 0.2206 vs pen 0.2087)  =  x0.9579  |  starter alone would have been -0.039
Strikeoutswhole staff1.322 → 1.584+0.2620.22120.2684n=487
Below average
0.2947n=628
Very good
0.3506+0.188+0.293+0.034 ok
  splitstarter x1.3061 at 0.600 share (log5 0.3506 vs his 0.2947)  +  bullpen x1.0355 at 0.400 share (log5 0.2779 vs pen 0.2296)  =  x1.1978  |  starter alone would have been +0.405
Walkswhole staff0.259 → 0.194-0.0650.08890.0868n=487
Average
0.0573n=628
Very good
0.0559-0.009-0.126+0.003 ok
  splitstarter x0.6438 at 0.600 share (log5 0.0559 vs his 0.0573)  +  bullpen x0.9106 at 0.400 share (log5 0.0790 vs pen 0.0810)  =  x0.7506  |  starter alone would have been -0.092
Home runswhole staff0.139 → 0.111-0.0280.03040.0320n=487
Average
0.0219n=628
Very good
0.0231+0.006-0.034-0.002 ok
  splitstarter x0.7222 at 0.600 share (log5 0.0231 vs his 0.0219)  +  bullpen x0.9062 at 0.400 share (log5 0.0290 vs pen 0.0275)  =  x0.7959  |  starter alone would have been -0.039
Neutralising Teoscar Hernández to the qualified-population mean moves the club's KPI run forecast by 0.1722 runs, and the weighted stage by 0.1343. Interactions make these non-additive across players, so they do not sum to the published movement.
Will SmithCHitswhole staff0.776 → 0.743-0.0330.21690.2185n=276
Average
0.2069n=628
Good
0.2084+0.006-0.039-0.000 ok
  splitstarter x0.9541 at 0.600 share (log5 0.2084 vs his 0.2069)  +  bullpen x0.9622 at 0.400 share (log5 0.2102 vs pen 0.2087)  =  x0.9573  |  starter alone would have been -0.036
Strikeoutswhole staff0.857 → 1.057+0.2000.22120.1718n=276
Good
0.2947n=628
Very good
0.2338-0.196+0.291-0.045 ok
  splitstarter x1.3612 at 0.600 share (log5 0.2338 vs his 0.2947)  +  bullpen x1.0404 at 0.400 share (log5 0.1787 vs pen 0.2296)  =  x1.2328  |  starter alone would have been +0.310
Walkswhole staff0.319 → 0.241-0.0780.08890.1129n=276
Good
0.0573n=628
Very good
0.0734+0.095-0.125-0.031 ok
  splitstarter x0.6505 at 0.600 share (log5 0.0734 vs his 0.0573)  +  bullpen x0.913 at 0.400 share (log5 0.1030 vs pen 0.0810)  =  x0.7556  |  starter alone would have been -0.111
Home runswhole staff0.129 → 0.102-0.0260.03040.0334n=276
Average
0.0219n=628
Very good
0.0241+0.012-0.033-0.003 ok
  splitstarter x0.7225 at 0.600 share (log5 0.0241 vs his 0.0219)  +  bullpen x0.9064 at 0.400 share (log5 0.0302 vs pen 0.0275)  =  x0.7961  |  starter alone would have been -0.036
Neutralising Will Smith to the qualified-population mean moves the club's KPI run forecast by 0.3409 runs, and the weighted stage by 0.2659. Interactions make these non-additive across players, so they do not sum to the published movement.
Shohei OhtaniDHHitswhole staff0.879 → 0.841-0.0370.21690.2255n=613
Good
0.2069n=628
Good
0.2152+0.035-0.041-0.001 ok
  splitstarter x0.9545 at 0.600 share (log5 0.2152 vs his 0.2069)  +  bullpen x0.9625 at 0.400 share (log5 0.2170 vs pen 0.2087)  =  x0.9577  |  starter alone would have been -0.040
Strikeoutswhole staff1.270 → 1.532+0.2620.22120.2445n=613
Average
0.2947n=628
Very good
0.3226+0.095+0.301+0.019 ok
  splitstarter x1.3193 at 0.600 share (log5 0.3226 vs his 0.2947)  +  bullpen x1.0367 at 0.400 share (log5 0.2535 vs pen 0.2296)  =  x1.2062  |  starter alone would have been +0.406
Walkswhole staff0.329 → 0.249-0.0800.08890.1251n=613
Very good
0.0573n=628
Very good
0.0818+0.148-0.130-0.048 ok
  splitstarter x0.6536 at 0.600 share (log5 0.0818 vs his 0.0573)  +  bullpen x0.9141 at 0.400 share (log5 0.1144 vs pen 0.0810)  =  x0.7579  |  starter alone would have been -0.114
Home runswhole staff0.159 → 0.127-0.0320.03040.0434n=613
Very good
0.0219n=628
Very good
0.0314+0.053-0.035-0.014 ok
  splitstarter x0.7246 at 0.600 share (log5 0.0314 vs his 0.0219)  +  bullpen x0.9072 at 0.400 share (log5 0.0393 vs pen 0.0275)  =  x0.7977  |  starter alone would have been -0.044
Neutralising Shohei Ohtani to the qualified-population mean moves the club's KPI run forecast by -0.1031 runs, and the weighted stage by -0.0804. Interactions make these non-additive across players, so they do not sum to the published movement.
Miguel Rojas2BHitswhole staff0.704 → 0.674-0.0300.21690.2246n=252
Good
0.2069n=628
Good
0.2144+0.025-0.033-0.001 ok
  splitstarter x0.9545 at 0.600 share (log5 0.2144 vs his 0.2069)  +  bullpen x0.9625 at 0.400 share (log5 0.2162 vs pen 0.2087)  =  x0.9577  |  starter alone would have been -0.032
Strikeoutswhole staff0.491 → 0.614+0.1230.22120.1256n=252
Very good
0.2947n=628
Very good
0.1745-0.312+0.240-0.080 ok
  splitstarter x1.3891 at 0.600 share (log5 0.1745 vs his 0.2947)  +  bullpen x1.0428 at 0.400 share (log5 0.1310 vs pen 0.2296)  =  x1.2505  |  starter alone would have been +0.191
Walkswhole staff0.165 → 0.123-0.0420.08890.0717n=252
Below average
0.0573n=628
Very good
0.0459-0.056-0.103+0.019 ok
  splitstarter x0.6401 at 0.600 share (log5 0.0459 vs his 0.0573)  +  bullpen x0.9093 at 0.400 share (log5 0.0652 vs pen 0.0810)  =  x0.7479  |  starter alone would have been -0.059
Home runswhole staff0.076 → 0.060-0.0150.03040.0233n=252
Below average
0.0219n=628
Very good
0.0168-0.023-0.028+0.006 ok
  splitstarter x0.7204 at 0.600 share (log5 0.0168 vs his 0.0219)  +  bullpen x0.9055 at 0.400 share (log5 0.0211 vs pen 0.0275)  =  x0.7945  |  starter alone would have been -0.021
Neutralising Miguel Rojas to the qualified-population mean moves the club's KPI run forecast by 0.2808 runs, and the weighted stage by 0.2190. Interactions make these non-additive across players, so they do not sum to the published movement.
Andy PagesCFHitswhole staff0.780 → 0.747-0.0330.21690.2323n=569
Good
0.2069n=628
Good
0.2219+0.057-0.037-0.002 ok
  splitstarter x0.9549 at 0.600 share (log5 0.2219 vs his 0.2069)  +  bullpen x0.9628 at 0.400 share (log5 0.2237 vs pen 0.2087)  =  x0.9581  |  starter alone would have been -0.035
Strikeoutswhole staff0.841 → 1.028+0.1880.22120.1971n=569
Average
0.2947n=628
Very good
0.2654-0.088+0.270-0.019 ok
  splitstarter x1.3463 at 0.600 share (log5 0.2654 vs his 0.2947)  +  bullpen x1.0391 at 0.400 share (log5 0.2049 vs pen 0.2296)  =  x1.2233  |  starter alone would have been +0.291
Walkswhole staff0.247 → 0.185-0.0620.08890.0866n=569
Average
0.0573n=628
Very good
0.0558-0.009-0.116+0.003 ok
  splitstarter x0.6438 at 0.600 share (log5 0.0558 vs his 0.0573)  +  bullpen x0.9106 at 0.400 share (log5 0.0789 vs pen 0.0810)  =  x0.7506  |  starter alone would have been -0.088
Home runswhole staff0.137 → 0.109-0.0280.03040.0372n=569
Good
0.0219n=628
Very good
0.0269+0.025-0.031-0.007 ok
  splitstarter x0.7233 at 0.600 share (log5 0.0269 vs his 0.0219)  +  bullpen x0.9067 at 0.400 share (log5 0.0338 vs pen 0.0275)  =  x0.7967  |  starter alone would have been -0.038
Neutralising Andy Pages to the qualified-population mean moves the club's KPI run forecast by 0.2434 runs, and the weighted stage by 0.1898. Interactions make these non-additive across players, so they do not sum to the published movement.
Kyle TuckerRFHitswhole staff0.739 → 0.707-0.0320.21690.2076n=622
Below average
0.2069n=628
Good
0.1979-0.035-0.037+0.001 ok
  splitstarter x0.9535 at 0.600 share (log5 0.1979 vs his 0.2069)  +  bullpen x0.9617 at 0.400 share (log5 0.1996 vs pen 0.2087)  =  x0.9568  |  starter alone would have been -0.034
Strikeoutswhole staff0.887 → 1.094+0.2070.22120.1711n=622
Good
0.2947n=628
Very good
0.2330-0.188+0.276-0.044 ok
  splitstarter x1.3616 at 0.600 share (log5 0.2330 vs his 0.2947)  +  bullpen x1.0405 at 0.400 share (log5 0.1780 vs pen 0.2296)  =  x1.2331  |  starter alone would have been +0.321
Walkswhole staff0.275 → 0.208-0.0670.08890.1195n=622
Very good
0.0573n=628
Very good
0.0780+0.115-0.119-0.037 ok
  splitstarter x0.6522 at 0.600 share (log5 0.0780 vs his 0.0573)  +  bullpen x0.9136 at 0.400 share (log5 0.1092 vs pen 0.0810)  =  x0.7568  |  starter alone would have been -0.096
Home runswhole staff0.101 → 0.080-0.0210.03040.0282n=622
Average
0.0219n=628
Very good
0.0204-0.008-0.032+0.002 ok
  splitstarter x0.7214 at 0.600 share (log5 0.0204 vs his 0.0219)  +  bullpen x0.9059 at 0.400 share (log5 0.0256 vs pen 0.0275)  =  x0.7953  |  starter alone would have been -0.028
Neutralising Kyle Tucker to the qualified-population mean moves the club's KPI run forecast by 0.1829 runs, and the weighted stage by 0.1427. Interactions make these non-additive across players, so they do not sum to the published movement.
Enrique Hernández3BHitswhole staff0.676 → 0.647-0.0290.21690.2169n=0
averagebelow floor
0.2069n=628
Good
0.20690-0.0330 ok
  splitstarter x0.954 at 0.600 share (log5 0.2069 vs his 0.2069)  +  bullpen x0.9621 at 0.400 share (log5 0.2087 vs pen 0.2087)  =  x0.9572  |  starter alone would have been -0.031
Strikeoutswhole staff1.078 → 1.309+0.2310.22120.2212n=0
averagebelow floor
0.2947n=628
Very good
0.29470+0.2420 ok
  splitstarter x1.3325 at 0.600 share (log5 0.2947 vs his 0.2947)  +  bullpen x1.0379 at 0.400 share (log5 0.2296 vs pen 0.2296)  =  x1.2146  |  starter alone would have been +0.358
Walkswhole staff0.196 → 0.147-0.0490.08890.0889n=0
averagebelow floor
0.0573n=628
Very good
0.05730-0.1040 ok
  splitstarter x0.6444 at 0.600 share (log5 0.0573 vs his 0.0573)  +  bullpen x0.9108 at 0.400 share (log5 0.0810 vs pen 0.0810)  =  x0.751  |  starter alone would have been -0.070
Home runswhole staff0.108 → 0.086-0.0220.03040.0304n=0
averagebelow floor
0.0219n=628
Very good
0.02190-0.0280 ok
  splitstarter x0.7219 at 0.600 share (log5 0.0219 vs his 0.0219)  +  bullpen x0.9061 at 0.400 share (log5 0.0275 vs pen 0.0275)  =  x0.7956  |  starter alone would have been -0.030
Neutralising Enrique Hernández to the qualified-population mean moves the club's KPI run forecast by 0.0283 runs, and the weighted stage by 0.0220. Interactions make these non-additive across players, so they do not sum to the published movement.
STARTER Yoshinobu Yamamoto23.1926 BFStarterHits3.425 → 3.557+0.1320.21690.1839n=678
Very good
0.22498/9 qualified
lineup mean
0.1910-0.764+0.185-0.021 ok
Strikeouts6.455 → 6.206-0.2490.22120.2542n=678
Good
0.21238/9 qualified
lineup mean
0.2444+0.765-0.206-0.021 ok
Walks1.270 → 1.191-0.0780.08890.0670n=678
Very good
0.08368/9 qualified
lineup mean
0.0629-0.508-0.124+0.029 ok
Home runs0.799 → 0.923+0.1240.03040.0290n=678
Average
0.03518/9 qualified
lineup mean
0.0335-0.033+0.110-0.005 ok
RELIEVER Tanner Scott2.1768 BFRelieverHits0.446 → 0.463+0.0170.21690.2051n=251
Good
0.22498/9 qualified
lineup mean
0.2127-0.026+0.017-0.001 ok
Strikeouts0.655 → 0.632-0.0240.22120.3011n=251
Very good
0.21238/9 qualified
lineup mean
0.2902+0.174-0.019-0.004 ok
Walks0.155 → 0.145-0.0090.08890.0710n=251
Good
0.08368/9 qualified
lineup mean
0.0666-0.039-0.012+0.002 ok
Home runs0.055 → 0.063+0.0090.03040.0252n=251
Good
0.03518/9 qualified
lineup mean
0.0291-0.011+0.010-0.002 ok
RELIEVER Kris Bubic2.1102 BFRelieverHits0.421 → 0.437+0.0160.21690.1996n=226
Good
0.22498/9 qualified
lineup mean
0.2071-0.036+0.017-0.001 ok
Strikeouts0.508 → 0.488-0.0200.22120.2408n=226
Average
0.21238/9 qualified
lineup mean
0.2314+0.041-0.019-0.001 ok
Walks0.220 → 0.207-0.0130.08890.1043n=226
Below average
0.08368/9 qualified
lineup mean
0.0981+0.033-0.011-0.002 ok
Home runs0.055 → 0.064+0.0090.03040.0261n=226
Good
0.03518/9 qualified
lineup mean
0.0302-0.009+0.010-0.001 ok
RELIEVER Alex Vesia1.9069 BFMiddle Reliever (High Leverage)Hits0.387 → 0.402+0.0150.21690.1766n=237
Very good
0.22498/9 qualified
lineup mean
0.1835-0.077+0.015-0.002 ok
Strikeouts1.336 → 1.287-0.0490.22120.2892n=237
Very good
0.21238/9 qualified
lineup mean
0.2786+0.130-0.017-0.003 ok
Walks0.452 → 0.426-0.0260.08890.1166n=237
Poor
0.08368/9 qualified
lineup mean
0.1098+0.053-0.010-0.003 ok
Home runs0.052 → 0.060+0.0080.03040.0257n=237
Good
0.03518/9 qualified
lineup mean
0.0297-0.009+0.009-0.001 ok
RELIEVER Brock Stewart1.7123 BFMiddle RelieverHits0.522 → 0.541+0.0190.21690.2169n=0
averagebelow floor
0.22498/9 qualified
lineup mean
0.22490+0.0140 ok
Strikeouts0.965 → 0.926-0.0390.22120.2212n=0
averagebelow floor
0.21238/9 qualified
lineup mean
0.21230-0.0150 ok
Walks0.331 → 0.311-0.0200.08890.0889n=0
averagebelow floor
0.08368/9 qualified
lineup mean
0.08360-0.0090 ok
Home runs0.058 → 0.067+0.0090.03040.0304n=0
averagebelow floor
0.03518/9 qualified
lineup mean
0.03510+0.0080 ok
RELIEVER Edwin Díaz1.6859 BFRelieverHits0.366 → 0.379+0.0130.21690.2169n=0
averagebelow floor
0.22498/9 qualified
lineup mean
0.22490+0.0130 ok
Strikeouts0.373 → 0.358-0.0150.22120.2212n=0
averagebelow floor
0.21238/9 qualified
lineup mean
0.21230-0.0150 ok
Walks0.150 → 0.141-0.0090.08890.0889n=0
averagebelow floor
0.08368/9 qualified
lineup mean
0.08360-0.0090 ok
Home runs0.051 → 0.059+0.0080.03040.0304n=0
averagebelow floor
0.03518/9 qualified
lineup mean
0.03510+0.0080 ok
RELIEVER Roki Sasaki1.6106 BFRelieverHits0.349 → 0.362+0.0130.21690.2166n=522
Average
0.22498/9 qualified
lineup mean
0.2246-0.000+0.0130 ok
Strikeouts0.376 → 0.361-0.0150.22120.2337n=522
Average
0.21238/9 qualified
lineup mean
0.2245+0.020-0.014-0.001 ok
Walks0.147 → 0.138-0.0090.08890.0913n=522
Average
0.08368/9 qualified
lineup mean
0.0858+0.004-0.009-0.000 ok
Home runs0.059 → 0.068+0.0090.03040.0367n=522
Poor
0.03518/9 qualified
lineup mean
0.0424+0.010+0.008+0.002 ok
RELIEVER Evan Phillips1.3495 BFMiddle RelieverHits0.474 → 0.491+0.0180.21690.2169n=0
averagebelow floor
0.22498/9 qualified
lineup mean
0.22490+0.0110 ok
Strikeouts0.835 → 0.801-0.0340.22120.2212n=0
averagebelow floor
0.21238/9 qualified
lineup mean
0.21230-0.0120 ok
Walks0.170 → 0.160-0.0100.08890.0889n=0
averagebelow floor
0.08368/9 qualified
lineup mean
0.08360-0.0070 ok
Home runs0.101 → 0.117+0.0160.03040.0304n=0
averagebelow floor
0.03518/9 qualified
lineup mean
0.03510+0.0060 ok

ATL against Dylan Dodd (LHP)

The pipeline applied one club-wide ×1.0739 to every ATL hitter line, identical for the leadoff hitter and the ninth bat.
Opposing staff exposure. These hitters face the starter for 23.1926 of 35.746 projected batters (64.9%) and the 3 projected relievers for the remaining 35.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
Drake BaldwinCHitswhole staff0.990 → 0.877-0.1130.21690.2374n=598
Very good
0.1839n=678
Very good
0.2021+0.090-0.145-0.010 ok
  splitstarter x0.8515 at 0.649 share (log5 0.2021 vs his 0.1839)  +  bullpen x0.9501 at 0.351 share (log5 0.2255 vs pen 0.2058)  =  x0.8861  |  starter alone would have been -0.147
Strikeoutswhole staff0.986 → 1.129+0.1430.22120.2099n=598
Average
0.2542n=678
Good
0.2418-0.050+0.145-0.005 ok
  splitstarter x1.1517 at 0.649 share (log5 0.2418 vs his 0.2542)  +  bullpen x1.1337 at 0.351 share (log5 0.2380 vs pen 0.2503)  =  x1.1454  |  starter alone would have been +0.149
Walkswhole staff0.346 → 0.296-0.0500.08890.0915n=598
Average
0.0670n=678
Very good
0.0690+0.011-0.096-0.003 ok
  splitstarter x0.7544 at 0.649 share (log5 0.0690 vs his 0.0670)  +  bullpen x1.0447 at 0.351 share (log5 0.0956 vs pen 0.0929)  =  x0.8564  |  starter alone would have been -0.085
Home runswhole staff0.186 → 0.178-0.0090.03040.0371n=598
Good
0.0290n=678
Average
0.0354+0.030-0.006-0.001 ok
  splitstarter x0.9534 at 0.649 share (log5 0.0354 vs his 0.0290)  +  bullpen x0.9504 at 0.351 share (log5 0.0353 vs pen 0.0289)  =  x0.9523  |  starter alone would have been -0.009
Neutralising Drake Baldwin to the qualified-population mean moves the club's KPI run forecast by -0.0093 runs, and the weighted stage by -0.0041. Interactions make these non-additive across players, so they do not sum to the published movement.
Ronald Acuña Jr.DHHitswhole staff0.885 → 0.782-0.1030.21690.2212n=457
Average
0.1839n=678
Very good
0.1878+0.018-0.140-0.002 ok
  splitstarter x0.8488 at 0.649 share (log5 0.1878 vs his 0.1839)  +  bullpen x0.9491 at 0.351 share (log5 0.2099 vs pen 0.2058)  =  x0.884  |  starter alone would have been -0.134
Strikeoutswhole staff0.990 → 1.132+0.1420.22120.2190n=457
Average
0.2542n=678
Good
0.2518-0.009+0.140-0.001 ok
  splitstarter x1.1497 at 0.649 share (log5 0.2518 vs his 0.2542)  +  bullpen x1.132 at 0.351 share (log5 0.2480 vs pen 0.2503)  =  x1.1435  |  starter alone would have been +0.148
Walkswhole staff0.363 → 0.312-0.0510.08890.1104n=457
Good
0.0670n=678
Very good
0.0837+0.091-0.093-0.020 ok
  splitstarter x0.7583 at 0.649 share (log5 0.0837 vs his 0.0670)  +  bullpen x1.0437 at 0.351 share (log5 0.1152 vs pen 0.0929)  =  x0.8585  |  starter alone would have been -0.088
Home runswhole staff0.177 → 0.169-0.0080.03040.0389n=457
Good
0.0290n=678
Average
0.0371+0.036-0.006-0.002 ok
  splitstarter x0.9535 at 0.649 share (log5 0.0371 vs his 0.0290)  +  bullpen x0.9505 at 0.351 share (log5 0.0369 vs pen 0.0289)  =  x0.9524  |  starter alone would have been -0.008
Neutralising Ronald Acuña Jr. to the qualified-population mean moves the club's KPI run forecast by 0.1862 runs, and the weighted stage by 0.0819. Interactions make these non-additive across players, so they do not sum to the published movement.
Matt Olson1BHitswhole staff0.836 → 0.739-0.0970.21690.2232n=682
Average
0.1839n=678
Very good
0.1895+0.026-0.137-0.003 ok
  splitstarter x0.8491 at 0.649 share (log5 0.1895 vs his 0.1839)  +  bullpen x0.9492 at 0.351 share (log5 0.2119 vs pen 0.2058)  =  x0.8843  |  starter alone would have been -0.126
Strikeoutswhole staff1.080 → 1.230+0.1500.22120.2406n=682
Average
0.2542n=678
Good
0.2754+0.080+0.137+0.008 ok
  splitstarter x1.1449 at 0.649 share (log5 0.2754 vs his 0.2542)  +  bullpen x1.1279 at 0.351 share (log5 0.2713 vs pen 0.2503)  =  x1.1389  |  starter alone would have been +0.157
Walkswhole staff0.323 → 0.277-0.0460.08890.0919n=682
Average
0.0670n=678
Very good
0.0693+0.012-0.091-0.003 ok
  splitstarter x0.7545 at 0.649 share (log5 0.0693 vs his 0.0670)  +  bullpen x1.0447 at 0.351 share (log5 0.0960 vs pen 0.0929)  =  x0.8564  |  starter alone would have been -0.079
Home runswhole staff0.228 → 0.218-0.0110.03040.0518n=682
Very good
0.0290n=678
Average
0.0494+0.089-0.006-0.004 ok
  splitstarter x0.9541 at 0.649 share (log5 0.0494 vs his 0.0290)  +  bullpen x0.9511 at 0.351 share (log5 0.0493 vs pen 0.0289)  =  x0.953  |  starter alone would have been -0.011
Neutralising Matt Olson to the qualified-population mean moves the club's KPI run forecast by 0.3441 runs, and the weighted stage by 0.1514. Interactions make these non-additive across players, so they do not sum to the published movement.
Ozzie Albies2BHitswhole staff0.822 → 0.726-0.0960.21690.2154n=667
Average
0.1839n=678
Very good
0.1826-0.006-0.129+0.001 ok
  splitstarter x0.8478 at 0.649 share (log5 0.1826 vs his 0.1839)  +  bullpen x0.9487 at 0.351 share (log5 0.2043 vs pen 0.2058)  =  x0.8832  |  starter alone would have been -0.125
Strikeoutswhole staff0.697 → 0.806+0.1090.22120.1576n=667
Good
0.2542n=678
Good
0.1833-0.249+0.129-0.028 ok
  splitstarter x1.1634 at 0.649 share (log5 0.1833 vs his 0.2542)  +  bullpen x1.1438 at 0.351 share (log5 0.1802 vs pen 0.2503)  =  x1.1565  |  starter alone would have been +0.114
Walkswhole staff0.257 → 0.220-0.0370.08890.0707n=667
Below average
0.0670n=678
Very good
0.0530-0.071-0.086+0.017 ok
  splitstarter x0.7502 at 0.649 share (log5 0.0530 vs his 0.0670)  +  bullpen x1.0458 at 0.351 share (log5 0.0740 vs pen 0.0929)  =  x0.854  |  starter alone would have been -0.064
Home runswhole staff0.146 → 0.139-0.0070.03040.0322n=667
Average
0.0290n=678
Average
0.0307+0.007-0.006-0.000 ok
  splitstarter x0.9532 at 0.649 share (log5 0.0307 vs his 0.0290)  +  bullpen x0.9502 at 0.351 share (log5 0.0306 vs pen 0.0289)  =  x0.9521  |  starter alone would have been -0.007
Neutralising Ozzie Albies to the qualified-population mean moves the club's KPI run forecast by 0.6243 runs, and the weighted stage by 0.2747. Interactions make these non-additive across players, so they do not sum to the published movement.
Michael Harris IICFHitswhole staff1.031 → 0.915-0.1150.21690.2533n=608
Very good
0.1839n=678
Very good
0.2163+0.146-0.132-0.016 ok
  splitstarter x0.8541 at 0.649 share (log5 0.2163 vs his 0.1839)  +  bullpen x0.951 at 0.351 share (log5 0.2409 vs pen 0.2058)  =  x0.8881  |  starter alone would have been -0.150
Strikeoutswhole staff0.877 → 1.008+0.1310.22120.1915n=608
Average
0.2542n=678
Good
0.2214-0.119+0.133-0.013 ok
  splitstarter x1.1558 at 0.649 share (log5 0.2214 vs his 0.2542)  +  bullpen x1.1372 at 0.351 share (log5 0.2178 vs pen 0.2503)  =  x1.1493  |  starter alone would have been +0.137
Walkswhole staff0.151 → 0.129-0.0220.08890.0462n=608
Poor
0.0670n=678
Very good
0.0344-0.172-0.088+0.041 ok
  splitstarter x0.7453 at 0.649 share (log5 0.0344 vs his 0.0670)  +  bullpen x1.047 at 0.351 share (log5 0.0484 vs pen 0.0929)  =  x0.8513  |  starter alone would have been -0.038
Home runswhole staff0.179 → 0.171-0.0090.03040.0379n=608
Good
0.0290n=678
Average
0.0361+0.030-0.006-0.001 ok
  splitstarter x0.9535 at 0.649 share (log5 0.0361 vs his 0.0290)  +  bullpen x0.9504 at 0.351 share (log5 0.0360 vs pen 0.0289)  =  x0.9524  |  starter alone would have been -0.008
Neutralising Michael Harris II to the qualified-population mean moves the club's KPI run forecast by 0.0680 runs, and the weighted stage by 0.0299. Interactions make these non-additive across players, so they do not sum to the published movement.
Mauricio DubónLFHitswhole staff0.897 → 0.795-0.1020.21690.2382n=603
Very good
0.1839n=678
Very good
0.2028+0.082-0.126-0.009 ok
  splitstarter x0.8516 at 0.649 share (log5 0.2028 vs his 0.1839)  +  bullpen x0.9501 at 0.351 share (log5 0.2263 vs pen 0.2058)  =  x0.8862  |  starter alone would have been -0.133
Strikeoutswhole staff0.569 → 0.661+0.0930.22120.1270n=603
Very good
0.2542n=678
Good
0.1486-0.360+0.126-0.043 ok
  splitstarter x1.1703 at 0.649 share (log5 0.1486 vs his 0.2542)  +  bullpen x1.1498 at 0.351 share (log5 0.1460 vs pen 0.2503)  =  x1.1631  |  starter alone would have been +0.097
Walkswhole staff0.200 → 0.171-0.0290.08890.0631n=603
Below average
0.0670n=678
Very good
0.0473-0.099-0.084+0.023 ok
  splitstarter x0.7486 at 0.649 share (log5 0.0473 vs his 0.0670)  +  bullpen x1.0461 at 0.351 share (log5 0.0660 vs pen 0.0929)  =  x0.8531  |  starter alone would have been -0.050
Home runswhole staff0.099 → 0.094-0.0050.03040.0231n=603
Below average
0.0290n=678
Average
0.0220-0.028-0.005+0.001 ok
  splitstarter x0.9528 at 0.649 share (log5 0.0220 vs his 0.0290)  +  bullpen x0.9497 at 0.351 share (log5 0.0219 vs pen 0.0289)  =  x0.9517  |  starter alone would have been -0.005
Neutralising Mauricio Dubón to the qualified-population mean moves the club's KPI run forecast by 0.0602 runs, and the weighted stage by 0.0265. Interactions make these non-additive across players, so they do not sum to the published movement.
Lane ThomasRFHitswhole staff0.703 → 0.621-0.0830.21690.2079n=370
Below average
0.1839n=678
Very good
0.1760-0.032-0.116+0.004 ok
  splitstarter x0.8466 at 0.649 share (log5 0.1760 vs his 0.1839)  +  bullpen x0.9482 at 0.351 share (log5 0.1972 vs pen 0.2058)  =  x0.8823  |  starter alone would have been -0.108
Strikeoutswhole staff0.953 → 1.085+0.1320.22120.2455n=370
Average
0.2542n=678
Good
0.2808+0.085+0.116+0.008 ok
  splitstarter x1.1439 at 0.649 share (log5 0.2808 vs his 0.2542)  +  bullpen x1.1269 at 0.351 share (log5 0.2766 vs pen 0.2503)  =  x1.1379  |  starter alone would have been +0.137
Walkswhole staff0.292 → 0.251-0.0410.08890.1096n=370
Good
0.0670n=678
Very good
0.0831+0.073-0.077-0.016 ok
  splitstarter x0.7581 at 0.649 share (log5 0.0831 vs his 0.0670)  +  bullpen x1.0438 at 0.351 share (log5 0.1144 vs pen 0.0929)  =  x0.8584  |  starter alone would have been -0.071
Home runswhole staff0.117 → 0.112-0.0060.03040.0300n=370
Average
0.0290n=678
Average
0.0286-0.001-0.005+0.000 ok
  splitstarter x0.9531 at 0.649 share (log5 0.0286 vs his 0.0290)  +  bullpen x0.9501 at 0.351 share (log5 0.0285 vs pen 0.0289)  =  x0.952  |  starter alone would have been -0.005
Neutralising Lane Thomas to the qualified-population mean moves the club's KPI run forecast by 0.1430 runs, and the weighted stage by 0.0629. Interactions make these non-additive across players, so they do not sum to the published movement.
Austin Riley3BHitswhole staff0.711 → 0.627-0.0840.21690.2034n=614
Below average
0.1839n=678
Very good
0.1721-0.048-0.117+0.006 ok
  splitstarter x0.8459 at 0.649 share (log5 0.1721 vs his 0.1839)  +  bullpen x0.948 at 0.351 share (log5 0.1928 vs pen 0.2058)  =  x0.8818  |  starter alone would have been -0.110
Strikeoutswhole staff1.209 → 1.360+0.1510.22120.3090n=614
Poor
0.2542n=678
Good
0.3492+0.313+0.118+0.026 ok
  splitstarter x1.1302 at 0.649 share (log5 0.3492 vs his 0.2542)  +  bullpen x1.115 at 0.351 share (log5 0.3445 vs pen 0.2503)  =  x1.1249  |  starter alone would have been +0.157
Walkswhole staff0.233 → 0.199-0.0340.08890.0799n=614
Average
0.0670n=678
Very good
0.0601-0.032-0.078+0.007 ok
  splitstarter x0.752 at 0.649 share (log5 0.0601 vs his 0.0670)  +  bullpen x1.0453 at 0.351 share (log5 0.0835 vs pen 0.0929)  =  x0.855  |  starter alone would have been -0.058
Home runswhole staff0.121 → 0.115-0.0060.03040.0308n=614
Average
0.0290n=678
Average
0.0293+0.001-0.005-0.000 ok
  splitstarter x0.9531 at 0.649 share (log5 0.0293 vs his 0.0290)  +  bullpen x0.9501 at 0.351 share (log5 0.0292 vs pen 0.0289)  =  x0.952  |  starter alone would have been -0.006
Neutralising Austin Riley to the qualified-population mean moves the club's KPI run forecast by 0.1063 runs, and the weighted stage by 0.0468. Interactions make these non-additive across players, so they do not sum to the published movement.
Ha-Seong KimSSHitswhole staff0.601 → 0.531-0.0700.21690.2169n=0
averagebelow floor
0.1839n=678
Very good
0.18390-0.1020 ok
  splitstarter x0.8481 at 0.649 share (log5 0.1839 vs his 0.1839)  +  bullpen x0.9488 at 0.351 share (log5 0.2058 vs pen 0.2058)  =  x0.8835  |  starter alone would have been -0.091
Strikeoutswhole staff0.866 → 0.990+0.1240.22120.2212n=0
averagebelow floor
0.2542n=678
Good
0.25420+0.1020 ok
  splitstarter x1.1492 at 0.649 share (log5 0.2542 vs his 0.2542)  +  bullpen x1.1315 at 0.351 share (log5 0.2503 vs pen 0.2503)  =  x1.143  |  starter alone would have been +0.129
Walkswhole staff0.257 → 0.220-0.0370.08890.0889n=0
averagebelow floor
0.0670n=678
Very good
0.06700-0.0680 ok
  splitstarter x0.7539 at 0.649 share (log5 0.0670 vs his 0.0670)  +  bullpen x1.0448 at 0.351 share (log5 0.0929 vs pen 0.0929)  =  x0.8561  |  starter alone would have been -0.063
Home runswhole staff0.076 → 0.072-0.0040.03040.0304n=0
averagebelow floor
0.0290n=678
Average
0.02900-0.0040 ok
  splitstarter x0.9531 at 0.649 share (log5 0.0290 vs his 0.0290)  +  bullpen x0.9501 at 0.351 share (log5 0.0289 vs pen 0.0289)  =  x0.952  |  starter alone would have been -0.004
Neutralising Ha-Seong Kim to the qualified-population mean moves the club's KPI run forecast by -0.0090 runs, and the weighted stage by -0.0039. Interactions make these non-additive across players, so they do not sum to the published movement.
STARTER Chris Sale22.1517 BFStarterHits4.088 → 4.240+0.1520.21690.2069n=628
Good
0.22488/9 qualified
lineup mean
0.2146-0.221+0.176-0.006 ok
Strikeouts6.870 → 5.947-0.9230.22120.2947n=628
Very good
0.18888/9 qualified
lineup mean
0.2551+1.629-0.717-0.160 ok
Walks0.856 → 0.948+0.0930.08890.0573n=628
Very good
0.09828/9 qualified
lineup mean
0.0635-0.701+0.205-0.068 ok
Home runs0.347 → 0.376+0.0290.03040.0219n=628
Very good
0.03298/9 qualified
lineup mean
0.0237-0.187+0.055-0.015 ok
RELIEVER Grant Holmes2.5669 BFRelieverHits0.555 → 0.575+0.0200.21690.2162n=607
Average
0.22488/9 qualified
lineup mean
0.2241-0.002+0.0200 ok
Strikeouts0.477 → 0.405-0.0720.22120.1859n=607
Below average
0.18888/9 qualified
lineup mean
0.1576-0.091-0.083+0.011 ok
Walks0.235 → 0.260+0.0240.08890.0916n=607
Average
0.09828/9 qualified
lineup mean
0.1011+0.007+0.024+0.001 ok
Home runs0.087 → 0.094+0.0070.03040.0338n=607
Below average
0.03298/9 qualified
lineup mean
0.0365+0.009+0.006+0.001 ok
RELIEVER Victor Mederos2.3407 BFRelieverHits0.481 → 0.498+0.0180.21690.2054n=148
Good
0.22488/9 qualified
lineup mean
0.2130-0.027+0.019-0.001 ok
Strikeouts0.531 → 0.454-0.0770.22120.2267n=148
Average
0.18888/9 qualified
lineup mean
0.1937+0.013-0.076-0.001 ok
Walks0.215 → 0.237+0.0220.08890.0917n=148
Average
0.09828/9 qualified
lineup mean
0.1012+0.006+0.022+0.001 ok
Home runs0.057 → 0.062+0.0050.03040.0245n=148
Very good
0.03298/9 qualified
lineup mean
0.0265-0.014+0.006-0.001 ok
RELIEVER Dylan Lee2.2682 BFMiddle Reliever (High Leverage)Hits0.744 → 0.772+0.0280.21690.2007n=253
Good
0.22488/9 qualified
lineup mean
0.2082-0.037+0.018-0.001 ok
Strikeouts1.044 → 0.901-0.1430.22120.2783n=253
Very good
0.18888/9 qualified
lineup mean
0.2402+0.130-0.073-0.013 ok
Walks0.247 → 0.273+0.0260.08890.0755n=253
Good
0.09828/9 qualified
lineup mean
0.0835-0.030+0.021-0.003 ok
Home runs0.149 → 0.161+0.0120.03040.0237n=253
Very good
0.03298/9 qualified
lineup mean
0.0256-0.015+0.006-0.001 ok
RELIEVER Robert Suarez2.252 BFMiddle Reliever (High Leverage)Hits0.817 → 0.847+0.0300.21690.2070n=130
Good
0.22488/9 qualified
lineup mean
0.2147-0.022+0.018-0.001 ok
Strikeouts0.599 → 0.510-0.0890.22120.2081n=130
Average
0.18888/9 qualified
lineup mean
0.1772-0.029-0.073+0.003 ok
Walks0.179 → 0.198+0.0190.08890.0696n=130
Good
0.09828/9 qualified
lineup mean
0.0770-0.043+0.021-0.004 ok
Home runs0.022 → 0.024+0.0020.03040.0253n=130
Good
0.03298/9 qualified
lineup mean
0.0273-0.011+0.006-0.001 ok
RELIEVER Brent Suter1.9666 BFRelieverHits0.439 → 0.455+0.0160.21690.2232n=377
Average
0.22488/9 qualified
lineup mean
0.2313+0.012+0.016+0.000 ok
Strikeouts0.412 → 0.351-0.0610.22120.2094n=377
Average
0.18888/9 qualified
lineup mean
0.1784-0.023-0.064+0.003 ok
Walks0.147 → 0.163+0.0160.08890.0748n=377
Good
0.09828/9 qualified
lineup mean
0.0828-0.028+0.018-0.003 ok
Home runs0.054 → 0.058+0.0040.03040.0274n=377
Average
0.03298/9 qualified
lineup mean
0.0296-0.006+0.005-0.001 ok
RELIEVER Raisel Iglesias1.8054 BFRelieverHits0.383 → 0.397+0.0140.21690.2121n=233
Average
0.22488/9 qualified
lineup mean
0.2199-0.009+0.014-0.000 ok
Strikeouts0.460 → 0.395-0.0650.22120.2546n=233
Good
0.18888/9 qualified
lineup mean
0.2187+0.060-0.059-0.006 ok
Walks0.143 → 0.159+0.0150.08890.0794n=233
Average
0.09828/9 qualified
lineup mean
0.0878-0.017+0.017-0.002 ok
Home runs0.052 → 0.056+0.0040.03040.0288n=233
Average
0.03298/9 qualified
lineup mean
0.0312-0.003+0.004-0.000 ok
RELIEVER Dylan Dodd1.5851 BFMiddle RelieverHits0.678 → 0.704+0.0260.21690.1933n=186
Very good
0.22488/9 qualified
lineup mean
0.2006-0.037+0.013-0.001 ok
Strikeouts1.022 → 0.879-0.1430.22120.2620n=186
Good
0.18888/9 qualified
lineup mean
0.2254+0.065-0.051-0.007 ok
Walks0.223 → 0.246+0.0230.08890.0815n=186
Average
0.09828/9 qualified
lineup mean
0.0901-0.012+0.015-0.001 ok
Home runs0.154 → 0.167+0.0130.03040.0294n=186
Average
0.03298/9 qualified
lineup mean
0.0318-0.002+0.004-0.000 ok

Published pitching, integer draw beside the continuous model line

PitcherRoleBFIPexpected IPH int/contSO int/contBB int/contER int/contRate source
Yoshinobu YamamotoStarter23.26.06.1666 / 3.4255 / 6.4551 / 1.2703 / 1.522all_players_stats_recent_season_blend
Brock StewartMiddle Reliever3.91.01.0141 / 0.5220 / 0.9651 / 0.3310 / 0.246all_players_stats_recent_season_blend
Evan PhillipsMiddle Reliever2.70.20.6760 / 0.4741 / 0.8350 / 0.1700 / 0.231all_players_stats_recent_season_blend
Alex VesiaMiddle Reliever (High Leverage)3.92.11.0140 / 0.3872 / 1.3361 / 0.4520 / 0.218all_players_stats_recent_season_blend
Chris SaleStarter22.25.25.7365 / 4.0884 / 6.8701 / 0.8562 / 1.522all_players_stats_recent_season_blend
Dylan DoddMiddle Reliever3.91.00.9931 / 0.6781 / 1.0220 / 0.2231 / 0.369all_players_stats_recent_season_blend
Robert SuarezMiddle Reliever (High Leverage)4.01.00.9932 / 0.8171 / 0.5990 / 0.1790 / 0.177all_players_stats_recent_season_blend
Dylan LeeMiddle Reliever (High Leverage)4.02.10.9931 / 0.7442 / 1.0441 / 0.2470 / 0.362all_players_stats_recent_season_blend

Audit: 2 CHECK(S) FAILED

InvariantVerdictEvidence
blend arithmetic away_runsPASS4.0000 + 0.78 x (3.3123 - 4.0000) = 3.4636, recorded 3.4636
blend arithmetic home_runsPASS3.0000 + 0.44 x (3.5040 - 3.0000) = 3.2218, recorded 3.2218
blend arithmetic home_winPASS0.4929 + 0.00 x (0.8254 - 0.4929) = 0.4929, recorded 0.4929
published rounding faithful to the blendPASSblended 3.4636-3.2218 rounds to 4-3, layer published 4-3
published probability on the score's sidePASS4-3 with p(home) 0.492867
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 6.166
away starter batters faced inside the real bandPASSYoshinobu Yamamoto projected 23.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 workloadFAIL30 outs recorded, 27 expected
home starter carries a continuous linePASSexpected_IP 5.736
home starter batters faced inside the real bandPASSChris Sale projected 22.2 batters faced; real starters run p01-p99 4-30, median 23, mean 21.75
home reliever batters faced inside the real band3 checksPASS3 of 3 pass
away hitters satisfy every coherence rulePASS9 hitters checked; H<=AB, HR<=H, 2B+3B+HR<=H, SO<=AB, continuous line present
home hitters satisfy every coherence rulePASS9 hitters checked; H<=AB, HR<=H, 2B+3B+HR<=H, SO<=AB, continuous line present
20261006_MIL@SD — published 4-5, 157 checks, all pass
Artifact. 20261006_MIL@SD__20261007T023916Z.json, phase post_start_rerun, generated 2026-10-07T02:39:16, first pitch 2026-10-07T01:30:00.
Published 4 - 5 with p(home) 0.566430. 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.5313164191848228 - 4.7001933727815610000noBase ML historical model prediction
2. variance_applied4 - 5+0.4687+0.2998+0.4687+0.2998yesDeterministic baseline target (variance factor 1.0)
3. enhanced_prediction4 - 500+0.4687+0.2998noEnhanced ML with recent form, H2H, low-score analysis (confidence shrunk by projected_margin_is_one_run)
4. kpi_layer4 - 500+0.4687+0.2998noaway -0.3389; home -0.3442
Savant KPI blend applied to the model target
5. embedded_savant_run_environment4 - 500+0.4687+0.2998noaway +0.1075; home +0.1114
Target score adjusted by temporal Savant lineup quality versus opposing starter quality
6. fundamental_edge_target_review4 - 500+0.4687+0.2998noRefreshed score target and win probability after Savant/pitcher/team-strength adjustments
7. capped_target4 - 500+0.4687+0.2998noCapped at max 12 realistic runs
8. simulation_result4 - 5----noFinal inning-by-inning simulation result

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

KPI team layer: the blend, with its arithmetic

TargetBaselineKPI onlyWeightBlendedComputationVerdict
away_runs4.00003.56550.783.66114.0000 + 0.78 × (3.5655 − 4.0000) = 3.6611PASS
home_runs5.00004.21760.444.65585.0000 + 0.44 × (4.2176 − 5.0000) = 4.6558PASS
home_win0.57820.67920.000.57820.5782 + 0.00 × (0.6792 − 0.5782) = 0.5782PASS

Published by the layer: away 4, home 5, p(home) 0.578153, continuous away 3.6611 / home 4.6558

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

What drove the KPI forecast for away_runs

intercept 4.2573 + sum of contributions = 3.5655; prediction 3.5655; contributions outside the top listed -0.0666 runs

FeatureRawStandardisedRuns contributedWhich KPIs it is built from
home_off_power_spread0.5852-0.761-0.4963offence group (dispersion across the lineup, not its mean): batter_home_run_rate, batter_bat_speed
away_off_contact0.33281.283+0.4912offence group: batter_barrel_rate_vs_fastball, batter_barrel_rate_vs_breaking, batter_barrel_rate_vs_offspeed, batter_hard_hit_rate_vs_fastball ...
away_off_qualified_share1.00002.120+0.4497share of the lineup carrying a qualifying sample, not a skill measurement
away_pen_share0.57812.680-0.4249composite feature
away_off_contact_spread0.90251.040-0.3596offence 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_sp_command0.71661.113-0.3550starter group: pitcher_strikeout_rate, pitcher_walk_rate
home_off_discipline_spread0.2163-2.308+0.3484offence 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_top3_contact1.07741.040-0.2936mean of the three best contact bats, a tail a club mean cannot express
home_off_qualified_share0.6842-0.784+0.2898share of the lineup carrying a qualifying sample, not a skill measurement
home_sp_velocity0.98491.338-0.2748starter group: pitcher_release_speed

What drove the KPI forecast for home_runs

intercept 4.2997 + sum of contributions = 4.2176; prediction 4.2176; contributions outside the top listed -0.4904 runs

FeatureRawStandardisedRuns contributedWhich KPIs it is built from
away_off_ground-0.7382-2.577-0.6259offence group: batter_ground_ball_rate_vs_slider, batter_ground_ball_rate_vs_fastball
away_pen_share0.57812.680+0.4215composite feature
home_sp_velocity0.98491.338+0.4170starter group: pitcher_release_speed
away_off_top3_contact1.33861.919-0.4168mean of the three best contact bats, a tail a club mean cannot express
home_off_worst3_discipline-0.17701.364+0.4107mean of the three weakest plate approaches
away_off_contact_spread0.90251.040-0.3375offence 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_power0.27551.020+0.2711offence group: batter_home_run_rate, batter_bat_speed
away_pen_minus_sp0.57231.864+0.2667composite feature
away_off_contact0.33281.283+0.2082offence group: batter_barrel_rate_vs_fastball, batter_barrel_rate_vs_breaking, batter_barrel_rate_vs_offspeed, batter_hard_hit_rate_vs_fastball ...
home_off_ground-0.2120-0.831-0.2067offence group: batter_ground_ball_rate_vs_slider, batter_ground_ball_rate_vs_fastball

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

Per-player metric movement

MIL against Chad Patrick (RHP)

The pipeline applied one club-wide ×0.9153 to every MIL hitter line, identical for the leadoff hitter and the ninth bat.
Opposing staff exposure. These hitters face the starter for 15.895 of 37.625 projected batters (42.2%) and the 4 projected relievers for the remaining 57.8%. 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 staff0.971 → 0.918-0.0530.21690.2457n=567
Very good
0.2091n=140
Average
0.2372+0.128-0.034-0.003 ok
  splitstarter x0.9656 at 0.422 share (log5 0.2372 vs his 0.2091)  +  bullpen x0.9302 at 0.578 share (log5 0.2285 vs pen 0.2012)  =  x0.9452  |  starter alone would have been -0.033
Strikeoutswhole staff1.169 → 1.406+0.2370.22120.2351n=567
Average
0.2713n=140
Good
0.2872+0.062+0.222+0.009 ok
  splitstarter x1.2215 at 0.422 share (log5 0.2872 vs his 0.2713)  +  bullpen x1.1898 at 0.578 share (log5 0.2798 vs pen 0.2641)  =  x1.2032  |  starter alone would have been +0.259
Walkswhole staff0.342 → 0.316-0.0250.08890.0839n=567
Average
0.0740n=140
Good
0.0698-0.022-0.066+0.003 ok
  splitstarter x0.8311 at 0.422 share (log5 0.0698 vs his 0.0740)  +  bullpen x0.9952 at 0.578 share (log5 0.0835 vs pen 0.0885)  =  x0.9259  |  starter alone would have been -0.058
Home runswhole staff0.169 → 0.148-0.0210.03040.0397n=567
Good
0.0265n=140
Good
0.0348+0.041-0.017-0.005 ok
  splitstarter x0.8746 at 0.422 share (log5 0.0348 vs his 0.0265)  +  bullpen x0.8782 at 0.578 share (log5 0.0349 vs pen 0.0267)  =  x0.8767  |  starter alone would have been -0.021
Neutralising Jackson Chourio to the qualified-population mean moves the club's KPI run forecast by 0.2792 runs, and the weighted stage by 0.2178. Interactions make these non-additive across players, so they do not sum to the published movement.
Jake Bauers1BHitswhole staff0.786 → 0.741-0.0450.21690.2179n=567
Average
0.2091n=140
Average
0.2101+0.004-0.033-0.000 ok
  splitstarter x0.9644 at 0.422 share (log5 0.2101 vs his 0.2091)  +  bullpen x0.9278 at 0.578 share (log5 0.2022 vs pen 0.2012)  =  x0.9433  |  starter alone would have been -0.028
Strikeoutswhole staff1.181 → 1.408+0.2280.22120.2676n=567
Below average
0.2713n=140
Good
0.3239+0.197+0.212+0.026 ok
  splitstarter x1.2101 at 0.422 share (log5 0.3239 vs his 0.2713)  +  bullpen x1.1802 at 0.578 share (log5 0.3159 vs pen 0.2641)  =  x1.1928  |  starter alone would have been +0.248
Walkswhole staff0.572 → 0.532-0.0400.08890.1510n=567
Very good
0.0740n=140
Good
0.1271+0.263-0.063-0.038 ok
  splitstarter x0.8415 at 0.422 share (log5 0.1271 vs his 0.0740)  +  bullpen x0.9956 at 0.578 share (log5 0.1503 vs pen 0.0885)  =  x0.9305  |  starter alone would have been -0.091
Home runswhole staff0.150 → 0.132-0.0180.03040.0397n=567
Good
0.0265n=140
Good
0.0348+0.040-0.016-0.005 ok
  splitstarter x0.8746 at 0.422 share (log5 0.0348 vs his 0.0265)  +  bullpen x0.8782 at 0.578 share (log5 0.0349 vs pen 0.0267)  =  x0.8767  |  starter alone would have been -0.019
Neutralising Jake Bauers to the qualified-population mean moves the club's KPI run forecast by 0.2847 runs, and the weighted stage by 0.2221. Interactions make these non-additive across players, so they do not sum to the published movement.
William ContrerasCHitswhole staff0.849 → 0.802-0.0480.21690.2303n=630
Good
0.2091n=140
Average
0.2222+0.056-0.032-0.001 ok
  splitstarter x0.9649 at 0.422 share (log5 0.2222 vs his 0.2091)  +  bullpen x0.9288 at 0.578 share (log5 0.2139 vs pen 0.2012)  =  x0.9441  |  starter alone would have been -0.030
Strikeoutswhole staff0.812 → 0.999+0.1870.22120.1529n=630
Good
0.2713n=140
Good
0.1913-0.286+0.209-0.049 ok
  splitstarter x1.2513 at 0.422 share (log5 0.1913 vs his 0.2713)  +  bullpen x1.2145 at 0.578 share (log5 0.1857 vs pen 0.2641)  =  x1.23  |  starter alone would have been +0.204
Walkswhole staff0.363 → 0.336-0.0270.08890.0942n=630
Average
0.0740n=140
Good
0.0785+0.022-0.062-0.003 ok
  splitstarter x0.8327 at 0.422 share (log5 0.0785 vs his 0.0740)  +  bullpen x0.9953 at 0.578 share (log5 0.0938 vs pen 0.0885)  =  x0.9266  |  starter alone would have been -0.061
Home runswhole staff0.107 → 0.094-0.0130.03040.0291n=630
Average
0.0265n=140
Good
0.0254-0.005-0.016+0.001 ok
  splitstarter x0.8734 at 0.422 share (log5 0.0254 vs his 0.0265)  +  bullpen x0.877 at 0.578 share (log5 0.0255 vs pen 0.0267)  =  x0.8755  |  starter alone would have been -0.014
Neutralising William Contreras to the qualified-population mean moves the club's KPI run forecast by 0.3181 runs, and the weighted stage by 0.2481. Interactions make these non-additive across players, so they do not sum to the published movement.
Brice Turang2BHitswhole staff0.797 → 0.752-0.0450.21690.2264n=666
Good
0.2091n=140
Average
0.2184+0.040-0.032-0.001 ok
  splitstarter x0.9647 at 0.422 share (log5 0.2184 vs his 0.2091)  +  bullpen x0.9285 at 0.578 share (log5 0.2102 vs pen 0.2012)  =  x0.9438  |  starter alone would have been -0.028
Strikeoutswhole staff1.118 → 1.341+0.2230.22120.2473n=666
Below average
0.2713n=140
Good
0.3011+0.108+0.208+0.015 ok
  splitstarter x1.2172 at 0.422 share (log5 0.3011 vs his 0.2713)  +  bullpen x1.1862 at 0.578 share (log5 0.2934 vs pen 0.2641)  =  x1.1993  |  starter alone would have been +0.243
Walkswhole staff0.492 → 0.457-0.0350.08890.1243n=666
Very good
0.0740n=140
Good
0.1041+0.147-0.062-0.022 ok
  splitstarter x0.8374 at 0.422 share (log5 0.1041 vs his 0.0740)  +  bullpen x0.9954 at 0.578 share (log5 0.1237 vs pen 0.0885)  =  x0.9286  |  starter alone would have been -0.080
Home runswhole staff0.113 → 0.099-0.0140.03040.0312n=666
Average
0.0265n=140
Good
0.0273+0.003-0.016-0.000 ok
  splitstarter x0.8737 at 0.422 share (log5 0.0273 vs his 0.0265)  +  bullpen x0.8772 at 0.578 share (log5 0.0274 vs pen 0.0267)  =  x0.8757  |  starter alone would have been -0.014
Neutralising Brice Turang to the qualified-population mean moves the club's KPI run forecast by 0.4175 runs, and the weighted stage by 0.3256. Interactions make these non-additive across players, so they do not sum to the published movement.
Christian YelichDHHitswhole staff0.799 → 0.753-0.0460.21690.2108n=487
Average
0.2091n=140
Average
0.2032-0.025-0.031+0.001 ok
  splitstarter x0.964 at 0.422 share (log5 0.2032 vs his 0.2091)  +  bullpen x0.9272 at 0.578 share (log5 0.1955 vs pen 0.2012)  =  x0.9427  |  starter alone would have been -0.029
Strikeoutswhole staff1.116 → 1.331+0.2150.22120.2684n=487
Below average
0.2713n=140
Good
0.3247+0.192+0.203+0.025 ok
  splitstarter x1.2099 at 0.422 share (log5 0.3247 vs his 0.2713)  +  bullpen x1.18 at 0.578 share (log5 0.3167 vs pen 0.2641)  =  x1.1926  |  starter alone would have been +0.234
Walkswhole staff0.395 → 0.366-0.0290.08890.0983n=487
Average
0.0740n=140
Good
0.0819+0.038-0.061-0.006 ok
  splitstarter x0.8333 at 0.422 share (log5 0.0819 vs his 0.0740)  +  bullpen x0.9953 at 0.578 share (log5 0.0979 vs pen 0.0885)  =  x0.9269  |  starter alone would have been -0.066
Home runswhole staff0.116 → 0.101-0.0150.03040.0267n=487
Average
0.0265n=140
Good
0.0233-0.015-0.016+0.002 ok
  splitstarter x0.8731 at 0.422 share (log5 0.0233 vs his 0.0265)  +  bullpen x0.8767 at 0.578 share (log5 0.0234 vs pen 0.0267)  =  x0.8752  |  starter alone would have been -0.015
Neutralising Christian Yelich to the qualified-population mean moves the club's KPI run forecast by 0.1820 runs, and the weighted stage by 0.1420. Interactions make these non-additive across players, so they do not sum to the published movement.
Garrett MitchellCFHitswhole staff0.761 → 0.718-0.0430.21690.2215n=519
Average
0.2091n=140
Average
0.2136+0.018-0.030-0.001 ok
  splitstarter x0.9645 at 0.422 share (log5 0.2136 vs his 0.2091)  +  bullpen x0.9281 at 0.578 share (log5 0.2056 vs pen 0.2012)  =  x0.9435  |  starter alone would have been -0.027
Strikeoutswhole staff1.296 → 1.531+0.2340.22120.3061n=519
Poor
0.2713n=140
Good
0.3664+0.330+0.195+0.040 ok
  splitstarter x1.1969 at 0.422 share (log5 0.3664 vs his 0.2713)  +  bullpen x1.1692 at 0.578 share (log5 0.3579 vs pen 0.2641)  =  x1.1809  |  starter alone would have been +0.255
Walkswhole staff0.395 → 0.366-0.0290.08890.1091n=519
Good
0.0740n=140
Good
0.0911+0.078-0.058-0.012 ok
  splitstarter x0.835 at 0.422 share (log5 0.0911 vs his 0.0740)  +  bullpen x0.9953 at 0.578 share (log5 0.1086 vs pen 0.0885)  =  x0.9276  |  starter alone would have been -0.065
Home runswhole staff0.083 → 0.073-0.0100.03040.0243n=519
Below average
0.0265n=140
Good
0.0212-0.024-0.015+0.003 ok
  splitstarter x0.8729 at 0.422 share (log5 0.0212 vs his 0.0265)  +  bullpen x0.8765 at 0.578 share (log5 0.0213 vs pen 0.0267)  =  x0.875  |  starter alone would have been -0.011
Neutralising Garrett Mitchell to the qualified-population mean moves the club's KPI run forecast by -0.0305 runs, and the weighted stage by -0.0238. Interactions make these non-additive across players, so they do not sum to the published movement.
Cooper PrattSSHitswhole staff0.751 → 0.709-0.0420.21690.2255n=258
Good
0.2091n=140
Average
0.2176+0.032-0.029-0.001 ok
  splitstarter x0.9647 at 0.422 share (log5 0.2176 vs his 0.2091)  +  bullpen x0.9284 at 0.578 share (log5 0.2094 vs pen 0.2012)  =  x0.9437  |  starter alone would have been -0.026
Strikeoutswhole staff0.799 → 0.974+0.1750.22120.1851n=258
Good
0.2713n=140
Good
0.2294-0.134+0.186-0.021 ok
  splitstarter x1.2395 at 0.422 share (log5 0.2294 vs his 0.2713)  +  bullpen x1.2047 at 0.578 share (log5 0.2230 vs pen 0.2641)  =  x1.2194  |  starter alone would have been +0.191
Walkswhole staff0.311 → 0.288-0.0230.08890.0917n=258
Average
0.0740n=140
Good
0.0763+0.010-0.056-0.002 ok
  splitstarter x0.8323 at 0.422 share (log5 0.0763 vs his 0.0740)  +  bullpen x0.9953 at 0.578 share (log5 0.0913 vs pen 0.0885)  =  x0.9264  |  starter alone would have been -0.052
Home runswhole staff0.072 → 0.063-0.0090.03040.0211n=258
Below average
0.0265n=140
Good
0.0184-0.034-0.014+0.004 ok
  splitstarter x0.8725 at 0.422 share (log5 0.0184 vs his 0.0265)  +  bullpen x0.8761 at 0.578 share (log5 0.0185 vs pen 0.0267)  =  x0.8746  |  starter alone would have been -0.009
Neutralising Cooper Pratt to the qualified-population mean moves the club's KPI run forecast by 0.1306 runs, and the weighted stage by 0.1018. Interactions make these non-additive across players, so they do not sum to the published movement.
Sal FrelickRFHitswhole staff0.723 → 0.682-0.0420.21690.2106n=374
Below average
0.2091n=140
Average
0.2030-0.023-0.028+0.001 ok
  splitstarter x0.964 at 0.422 share (log5 0.2030 vs his 0.2091)  +  bullpen x0.9271 at 0.578 share (log5 0.1952 vs pen 0.2012)  =  x0.9427  |  starter alone would have been -0.026
Strikeoutswhole staff0.484 → 0.603+0.1180.22120.1106n=374
Very good
0.2713n=140
Good
0.1402-0.401+0.182-0.074 ok
  splitstarter x1.2672 at 0.422 share (log5 0.1402 vs his 0.2713)  +  bullpen x1.2277 at 0.578 share (log5 0.1358 vs pen 0.2641)  =  x1.2444  |  starter alone would have been +0.129
Walkswhole staff0.301 → 0.278-0.0220.08890.0843n=374
Average
0.0740n=140
Good
0.0701-0.017-0.054+0.003 ok
  splitstarter x0.8312 at 0.422 share (log5 0.0701 vs his 0.0740)  +  bullpen x0.9952 at 0.578 share (log5 0.0839 vs pen 0.0885)  =  x0.9259  |  starter alone would have been -0.051
Home runswhole staff0.063 → 0.055-0.0080.03040.0173n=374
Poor
0.0265n=140
Good
0.0151-0.048-0.014+0.006 ok
  splitstarter x0.8721 at 0.422 share (log5 0.0151 vs his 0.0265)  +  bullpen x0.8757 at 0.578 share (log5 0.0151 vs pen 0.0267)  =  x0.8742  |  starter alone would have been -0.008
Neutralising Sal Frelick to the qualified-population mean moves the club's KPI run forecast by 0.1252 runs, and the weighted stage by 0.0977. Interactions make these non-additive across players, so they do not sum to the published movement.
Joey Ortiz3BHitswhole staff0.753 → 0.711-0.0420.21690.2271n=403
Good
0.2091n=140
Average
0.2191+0.038-0.029-0.001 ok
  splitstarter x0.9648 at 0.422 share (log5 0.2191 vs his 0.2091)  +  bullpen x0.9285 at 0.578 share (log5 0.2108 vs pen 0.2012)  =  x0.9438  |  starter alone would have been -0.026
Strikeoutswhole staff0.875 → 1.062+0.1870.22120.2010n=403
Average
0.2713n=140
Good
0.2479-0.075+0.184-0.011 ok
  splitstarter x1.2337 at 0.422 share (log5 0.2479 vs his 0.2713)  +  bullpen x1.1999 at 0.578 share (log5 0.2411 vs pen 0.2641)  =  x1.2142  |  starter alone would have been +0.204
Walkswhole staff0.290 → 0.269-0.0210.08890.0873n=403
Average
0.0740n=140
Good
0.0726-0.006-0.055+0.001 ok
  splitstarter x0.8316 at 0.422 share (log5 0.0726 vs his 0.0740)  +  bullpen x0.9952 at 0.578 share (log5 0.0869 vs pen 0.0885)  =  x0.9261  |  starter alone would have been -0.049
Home runswhole staff0.087 → 0.076-0.0110.03040.0255n=403
Below average
0.0265n=140
Good
0.0223-0.018-0.014+0.002 ok
  splitstarter x0.873 at 0.422 share (log5 0.0223 vs his 0.0265)  +  bullpen x0.8766 at 0.578 share (log5 0.0224 vs pen 0.0267)  =  x0.8751  |  starter alone would have been -0.011
Neutralising Joey Ortiz to the qualified-population mean moves the club's KPI run forecast by 0.0909 runs, and the weighted stage by 0.0709. Interactions make these non-additive across players, so they do not sum to the published movement.
STARTER Dustin May17.0326 BFStarterHits3.791 → 3.842+0.0510.21690.2249n=621
Below average
0.21986/9 qualified
lineup mean
0.2279+0.136+0.051+0.001 ok
Strikeouts4.456 → 4.316-0.1400.22120.2307n=621
Average
0.21426/9 qualified
lineup mean
0.2234+0.161-0.120-0.004 ok
Walks1.224 → 1.250+0.0270.08890.0822n=621
Average
0.09086/9 qualified
lineup mean
0.0840-0.114+0.033-0.002 ok
Home runs0.627 → 0.663+0.0360.03040.0258n=621
Good
0.03216/9 qualified
lineup mean
0.0273-0.078+0.029-0.004 ok
RELIEVER DL Hall4.3644 BFRelieverHits0.759 → 0.770+0.0110.21690.1738n=234
Very good
0.21986/9 qualified
lineup mean
0.1763-0.188+0.013-0.002 ok
Strikeouts1.108 → 1.074-0.0340.22120.2538n=234
Good
0.21426/9 qualified
lineup mean
0.2461+0.142-0.031-0.003 ok
Walks0.535 → 0.546+0.0110.08890.1226n=234
Poor
0.09086/9 qualified
lineup mean
0.1252+0.147+0.008+0.003 ok
Home runs0.119 → 0.126+0.0070.03040.0273n=234
Average
0.03216/9 qualified
lineup mean
0.0288-0.013+0.007-0.001 ok
RELIEVER JoJo Romero3.9668 BFLong RelieverHits0.723 → 0.733+0.0100.21690.2159n=233
Average
0.21986/9 qualified
lineup mean
0.2188-0.004+0.0120 ok
Strikeouts1.045 → 1.012-0.0330.22120.2259n=233
Average
0.21426/9 qualified
lineup mean
0.2187+0.018-0.028-0.000 ok
Walks0.280 → 0.286+0.0060.08890.0794n=233
Average
0.09086/9 qualified
lineup mean
0.0811-0.038+0.008-0.001 ok
Home runs0.088 → 0.093+0.0050.03040.0303n=233
Average
0.03216/9 qualified
lineup mean
0.0320-0.001+0.0070 ok
RELIEVER Antonio Senzatela3.7088 BFMiddle Reliever (High Leverage)Hits1.050 → 1.064+0.0140.21690.2274n=303
Below average
0.21986/9 qualified
lineup mean
0.2305+0.039+0.011+0.000 ok
Strikeouts0.737 → 0.713-0.0240.22120.1977n=303
Below average
0.21426/9 qualified
lineup mean
0.1912-0.087-0.026+0.002 ok
Walks0.399 → 0.408+0.0090.08890.0847n=303
Average
0.09086/9 qualified
lineup mean
0.0865-0.016+0.007-0.000 ok
Home runs0.058 → 0.061+0.0030.03040.0261n=303
Good
0.03216/9 qualified
lineup mean
0.0276-0.016+0.006-0.001 ok
RELIEVER Trevor Megill2.691 BFRelieverHits0.521 → 0.528+0.0070.21690.1936n=242
Very good
0.21986/9 qualified
lineup mean
0.1963-0.063+0.008-0.001 ok
Strikeouts0.725 → 0.703-0.0220.22120.2692n=242
Good
0.21426/9 qualified
lineup mean
0.2612+0.129-0.019-0.003 ok
Walks0.195 → 0.200+0.0040.08890.0726n=242
Good
0.09086/9 qualified
lineup mean
0.0742-0.044+0.005-0.001 ok
Home runs0.057 → 0.060+0.0030.03040.0212n=242
Very good
0.03216/9 qualified
lineup mean
0.0224-0.025+0.005-0.001 ok
RELIEVER Aaron Ashby2.5017 BFRelieverHits0.506 → 0.513+0.0070.21690.2024n=372
Good
0.21986/9 qualified
lineup mean
0.2052-0.036+0.007-0.000 ok
Strikeouts0.718 → 0.697-0.0210.22120.2869n=372
Very good
0.21426/9 qualified
lineup mean
0.2785+0.164-0.018-0.003 ok
Walks0.260 → 0.265+0.0050.08890.1039n=372
Below average
0.09086/9 qualified
lineup mean
0.1061+0.037+0.005+0.001 ok
Home runs0.063 → 0.067+0.0040.03040.0251n=372
Good
0.03216/9 qualified
lineup mean
0.0266-0.013+0.004-0.001 ok
RELIEVER Abner Uribe1.9272 BFRelieverHits0.389 → 0.394+0.0050.21690.2018n=230
Good
0.21986/9 qualified
lineup mean
0.2047-0.029+0.006-0.000 ok
Strikeouts0.489 → 0.474-0.0150.22120.2538n=230
Good
0.21426/9 qualified
lineup mean
0.2461+0.063-0.013-0.001 ok
Walks0.159 → 0.163+0.0040.08890.0826n=230
Average
0.09086/9 qualified
lineup mean
0.0844-0.012+0.004-0.000 ok
Home runs0.047 → 0.050+0.0030.03040.0245n=230
Very good
0.03216/9 qualified
lineup mean
0.0259-0.011+0.003-0.001 ok
RELIEVER Chad Patrick1.6525 BFRelieverHits0.329 → 0.334+0.0050.21690.1991n=438
Good
0.21986/9 qualified
lineup mean
0.2019-0.029+0.005-0.000 ok
Strikeouts0.353 → 0.342-0.0110.22120.2137n=438
Average
0.21426/9 qualified
lineup mean
0.2069-0.012-0.012+0.000 ok
Walks0.172 → 0.176+0.0040.08890.1041n=438
Below average
0.09086/9 qualified
lineup mean
0.1063+0.025+0.003+0.001 ok
Home runs0.046 → 0.049+0.0030.03040.0278n=438
Average
0.03216/9 qualified
lineup mean
0.0294-0.004+0.003-0.000 ok

SD against Joe Musgrove (RHP)

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

PlayerPosMetricPublished → KPIΔLeagueOwn rateOpponent rateLog5Own skillOpponentRemainder
Fernando Tatis Jr.RFHitswhole staff0.993 → 0.972-0.0210.21690.2416n=704
Very good
0.2249n=621
Below average
0.2502+0.109+0.035+0.003 ok
  splitstarter x1.0357 at 0.450 share (log5 0.2502 vs his 0.2249)  +  bullpen x0.9333 at 0.550 share (log5 0.2255 vs pen 0.2020)  =  x0.9794  |  starter alone would have been +0.035
Strikeoutswhole staff0.893 → 0.958+0.0650.22120.1870n=704
Good
0.2307n=621
Average
0.1954-0.151+0.042-0.005 ok
  splitstarter x1.0447 at 0.450 share (log5 0.1954 vs his 0.2307)  +  bullpen x1.095 at 0.550 share (log5 0.2048 vs pen 0.2413)  =  x1.0724  |  starter alone would have been +0.040
Walkswhole staff0.382 → 0.380-0.0020.08890.0906n=704
Average
0.0822n=621
Average
0.0838+0.007-0.030-0.001 ok
  splitstarter x0.9247 at 0.450 share (log5 0.0838 vs his 0.0822)  +  bullpen x1.0539 at 0.550 share (log5 0.0955 vs pen 0.0937)  =  x0.9957  |  starter alone would have been -0.029
Home runswhole staff0.141 → 0.122-0.0200.03040.0341n=704
Average
0.0258n=621
Good
0.0290+0.016-0.020-0.002 ok
  splitstarter x0.8504 at 0.450 share (log5 0.0290 vs his 0.0258)  +  bullpen x0.8684 at 0.550 share (log5 0.0296 vs pen 0.0264)  =  x0.8603  |  starter alone would have been -0.021
Neutralising Fernando Tatis Jr. to the qualified-population mean moves the club's KPI run forecast by 0.0920 runs, and the weighted stage by 0.0405. Interactions make these non-additive across players, so they do not sum to the published movement.
Jackson MerrillCFHitswhole staff0.892 → 0.874-0.0190.21690.2277n=664
Good
0.2249n=621
Below average
0.2360+0.047+0.034+0.001 ok
  splitstarter x1.0364 at 0.450 share (log5 0.2360 vs his 0.2249)  +  bullpen x0.9322 at 0.550 share (log5 0.2123 vs pen 0.2020)  =  x0.9791  |  starter alone would have been +0.032
Strikeoutswhole staff1.111 → 1.186+0.0750.22120.2396n=664
Average
0.2307n=621
Average
0.2496+0.079+0.041+0.002 ok
  splitstarter x1.0417 at 0.450 share (log5 0.2496 vs his 0.2307)  +  bullpen x1.0883 at 0.550 share (log5 0.2608 vs pen 0.2413)  =  x1.0673  |  starter alone would have been +0.046
Walkswhole staff0.305 → 0.304-0.0010.08890.0659n=664
Below average
0.0822n=621
Average
0.0608-0.099-0.029+0.007 ok
  splitstarter x0.9228 at 0.450 share (log5 0.0608 vs his 0.0822)  +  bullpen x1.0555 at 0.550 share (log5 0.0695 vs pen 0.0937)  =  x0.9958  |  starter alone would have been -0.024
Home runswhole staff0.142 → 0.122-0.0200.03040.0367n=664
Good
0.0258n=621
Good
0.0312+0.027-0.020-0.004 ok
  splitstarter x0.8507 at 0.450 share (log5 0.0312 vs his 0.0258)  +  bullpen x0.8687 at 0.550 share (log5 0.0318 vs pen 0.0264)  =  x0.8606  |  starter alone would have been -0.021
Neutralising Jackson Merrill to the qualified-population mean moves the club's KPI run forecast by 0.3190 runs, and the weighted stage by 0.1403. Interactions make these non-additive across players, so they do not sum to the published movement.
Manny Machado3BHitswhole staff0.818 → 0.800-0.0180.21690.2000n=677
Poor
0.2249n=621
Below average
0.2076-0.072+0.034-0.002 ok
  splitstarter x1.0377 at 0.450 share (log5 0.2076 vs his 0.2249)  +  bullpen x0.9299 at 0.550 share (log5 0.1860 vs pen 0.2020)  =  x0.9784  |  starter alone would have been +0.031
Strikeoutswhole staff0.906 → 0.969+0.0630.22120.2133n=677
Average
0.2307n=621
Average
0.2225-0.034+0.040-0.001 ok
  splitstarter x1.0432 at 0.450 share (log5 0.2225 vs his 0.2307)  +  bullpen x1.0917 at 0.550 share (log5 0.2328 vs pen 0.2413)  =  x1.0699  |  starter alone would have been +0.039
Walkswhole staff0.455 → 0.453-0.0020.08890.1088n=677
Good
0.0822n=621
Average
0.1007+0.084-0.029-0.006 ok
  splitstarter x0.9261 at 0.450 share (log5 0.1007 vs his 0.0822)  +  bullpen x1.0528 at 0.550 share (log5 0.1145 vs pen 0.0937)  =  x0.9958  |  starter alone would have been -0.034
Home runswhole staff0.161 → 0.139-0.0220.03040.0404n=677
Good
0.0258n=621
Good
0.0344+0.043-0.019-0.006 ok
  splitstarter x0.8512 at 0.450 share (log5 0.0344 vs his 0.0258)  +  bullpen x0.8691 at 0.550 share (log5 0.0351 vs pen 0.0264)  =  x0.861  |  starter alone would have been -0.024
Neutralising Manny Machado to the qualified-population mean moves the club's KPI run forecast by 0.1326 runs, and the weighted stage by 0.0583. Interactions make these non-additive across players, so they do not sum to the published movement.
Ty France1BHitswhole staff0.987 → 0.967-0.0200.21690.2398n=500
Very good
0.2249n=621
Below average
0.2484+0.095+0.033+0.002 ok
  splitstarter x1.0358 at 0.450 share (log5 0.2484 vs his 0.2249)  +  bullpen x0.9332 at 0.550 share (log5 0.2238 vs pen 0.2020)  =  x0.9794  |  starter alone would have been +0.035
Strikeoutswhole staff0.963 → 1.030+0.0670.22120.2165n=500
Average
0.2307n=621
Average
0.2258-0.020+0.039-0.001 ok
  splitstarter x1.043 at 0.450 share (log5 0.2258 vs his 0.2307)  +  bullpen x1.0913 at 0.550 share (log5 0.2362 vs pen 0.2413)  =  x1.0696  |  starter alone would have been +0.041
Walkswhole staff0.310 → 0.309-0.0010.08890.0769n=500
Below average
0.0822n=621
Average
0.0710-0.050-0.028+0.004 ok
  splitstarter x0.9237 at 0.450 share (log5 0.0710 vs his 0.0822)  +  bullpen x1.0548 at 0.550 share (log5 0.0811 vs pen 0.0937)  =  x0.9958  |  starter alone would have been -0.024
Home runswhole staff0.159 → 0.137-0.0220.03040.0380n=500
Good
0.0258n=621
Good
0.0323+0.032-0.019-0.005 ok
  splitstarter x0.8509 at 0.450 share (log5 0.0323 vs his 0.0258)  +  bullpen x0.8688 at 0.550 share (log5 0.0330 vs pen 0.0264)  =  x0.8607  |  starter alone would have been -0.024
Neutralising Ty France to the qualified-population mean moves the club's KPI run forecast by 0.0936 runs, and the weighted stage by 0.0412. Interactions make these non-additive across players, so they do not sum to the published movement.
Ethan SalasCHitswhole staff0.742 → 0.726-0.0160.21690.2169n=0
averagebelow floor
0.2249n=621
Below average
0.22490+0.0280 ok
  splitstarter x1.0369 at 0.450 share (log5 0.2249 vs his 0.2249)  +  bullpen x0.9313 at 0.550 share (log5 0.2020 vs pen 0.2020)  =  x0.9788  |  starter alone would have been +0.027
Strikeoutswhole staff0.841 → 0.899+0.0580.22120.2212n=0
averagebelow floor
0.2307n=621
Average
0.23070+0.0330 ok
  splitstarter x1.0427 at 0.450 share (log5 0.2307 vs his 0.2307)  +  bullpen x1.0907 at 0.550 share (log5 0.2413 vs pen 0.2413)  =  x1.0691  |  starter alone would have been +0.036
Walkswhole staff0.262 → 0.261-0.0010.08890.0889n=0
averagebelow floor
0.0822n=621
Average
0.08220-0.0230 ok
  splitstarter x0.9246 at 0.450 share (log5 0.0822 vs his 0.0822)  +  bullpen x1.054 at 0.550 share (log5 0.0937 vs pen 0.0937)  =  x0.9958  |  starter alone would have been -0.020
Home runswhole staff0.110 → 0.095-0.0150.03040.0304n=0
averagebelow floor
0.0258n=621
Good
0.02580-0.0160 ok
  splitstarter x0.8499 at 0.450 share (log5 0.0258 vs his 0.0258)  +  bullpen x0.8679 at 0.550 share (log5 0.0264 vs pen 0.0264)  =  x0.8598  |  starter alone would have been -0.017
Neutralising Ethan Salas 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.
Xander BogaertsSSHitswhole staff0.742 → 0.726-0.0160.21690.2059n=606
Below average
0.2249n=621
Below average
0.2137-0.043+0.031-0.001 ok
  splitstarter x1.0374 at 0.450 share (log5 0.2137 vs his 0.2249)  +  bullpen x0.9304 at 0.550 share (log5 0.1916 vs pen 0.2020)  =  x0.9786  |  starter alone would have been +0.028
Strikeoutswhole staff0.724 → 0.777+0.0530.22120.1829n=606
Good
0.2307n=621
Average
0.1912-0.149+0.037-0.005 ok
  splitstarter x1.0449 at 0.450 share (log5 0.1912 vs his 0.2307)  +  bullpen x1.0955 at 0.550 share (log5 0.2004 vs pen 0.2413)  =  x1.0727  |  starter alone would have been +0.033
Walkswhole staff0.448 → 0.446-0.0020.08890.1208n=606
Very good
0.0822n=621
Average
0.1120+0.124-0.026-0.008 ok
  splitstarter x0.927 at 0.450 share (log5 0.1120 vs his 0.0822)  +  bullpen x1.0521 at 0.550 share (log5 0.1271 vs pen 0.0937)  =  x0.9958  |  starter alone would have been -0.033
Home runswhole staff0.098 → 0.084-0.0140.03040.0242n=606
Below average
0.0258n=621
Good
0.0205-0.024-0.018+0.004 ok
  splitstarter x0.8491 at 0.450 share (log5 0.0205 vs his 0.0258)  +  bullpen x0.8672 at 0.550 share (log5 0.0210 vs pen 0.0264)  =  x0.8591  |  starter alone would have been -0.015
Neutralising Xander Bogaerts to the qualified-population mean moves the club's KPI run forecast by -0.0141 runs, and the weighted stage by -0.0062. Interactions make these non-additive across players, so they do not sum to the published movement.
Dustin HarrisLFHitswhole staff0.858 → 0.840-0.0180.21690.2169n=0
averagebelow floor
0.2249n=621
Below average
0.22490+0.0320 ok
  splitstarter x1.0369 at 0.450 share (log5 0.2249 vs his 0.2249)  +  bullpen x0.9313 at 0.550 share (log5 0.2020 vs pen 0.2020)  =  x0.9788  |  starter alone would have been +0.032
Strikeoutswhole staff0.629 → 0.673+0.0430.22120.2212n=0
averagebelow floor
0.2307n=621
Average
0.23070+0.0370 ok
  splitstarter x1.0427 at 0.450 share (log5 0.2307 vs his 0.2307)  +  bullpen x1.0907 at 0.550 share (log5 0.2413 vs pen 0.2413)  =  x1.0691  |  starter alone would have been +0.027
Walkswhole staff0.310 → 0.309-0.0010.08890.0889n=0
averagebelow floor
0.0822n=621
Average
0.08220-0.0270 ok
  splitstarter x0.9246 at 0.450 share (log5 0.0822 vs his 0.0822)  +  bullpen x1.054 at 0.550 share (log5 0.0937 vs pen 0.0937)  =  x0.9958  |  starter alone would have been -0.023
Home runswhole staff0.072 → 0.062-0.0100.03040.0304n=0
averagebelow floor
0.0258n=621
Good
0.02580-0.0180 ok
  splitstarter x0.8499 at 0.450 share (log5 0.0258 vs his 0.0258)  +  bullpen x0.8679 at 0.550 share (log5 0.0264 vs pen 0.0264)  =  x0.8598  |  starter alone would have been -0.011
Neutralising Dustin Harris to the qualified-population mean moves the club's KPI run forecast by 0.0197 runs, and the weighted stage by 0.0087. Interactions make these non-additive across players, so they do not sum to the published movement.
Samad TaylorDHHitswhole staff0.788 → 0.772-0.0170.21690.2169n=0
averagebelow floor
0.2249n=621
Below average
0.22490+0.0290 ok
  splitstarter x1.0369 at 0.450 share (log5 0.2249 vs his 0.2249)  +  bullpen x0.9313 at 0.550 share (log5 0.2020 vs pen 0.2020)  =  x0.9788  |  starter alone would have been +0.029
Strikeoutswhole staff0.960 → 1.026+0.0660.22120.2212n=0
averagebelow floor
0.2307n=621
Average
0.23070+0.0340 ok
  splitstarter x1.0427 at 0.450 share (log5 0.2307 vs his 0.2307)  +  bullpen x1.0907 at 0.550 share (log5 0.2413 vs pen 0.2413)  =  x1.0691  |  starter alone would have been +0.041
Walkswhole staff0.337 → 0.336-0.0010.08890.0889n=0
averagebelow floor
0.0822n=621
Average
0.08220-0.0240 ok
  splitstarter x0.9246 at 0.450 share (log5 0.0822 vs his 0.0822)  +  bullpen x1.054 at 0.550 share (log5 0.0937 vs pen 0.0937)  =  x0.9958  |  starter alone would have been -0.025
Home runswhole staff0.076 → 0.065-0.0110.03040.0304n=0
averagebelow floor
0.0258n=621
Good
0.02580-0.0160 ok
  splitstarter x0.8499 at 0.450 share (log5 0.0258 vs his 0.0258)  +  bullpen x0.8679 at 0.550 share (log5 0.0264 vs pen 0.0264)  =  x0.8598  |  starter alone would have been -0.011
Neutralising Samad Taylor to the qualified-population mean moves the club's KPI run forecast by -0.0095 runs, and the weighted stage by -0.0042. Interactions make these non-additive across players, so they do not sum to the published movement.
Jake Cronenworth2BHitswhole staff0.728 → 0.712-0.0160.21690.2086n=425
Below average
0.2249n=621
Below average
0.2164-0.030+0.029-0.001 ok
  splitstarter x1.0373 at 0.450 share (log5 0.2164 vs his 0.2249)  +  bullpen x0.9306 at 0.550 share (log5 0.1941 vs pen 0.2020)  =  x0.9786  |  starter alone would have been +0.027
Strikeoutswhole staff0.831 → 0.887+0.0570.22120.2275n=425
Average
0.2307n=621
Average
0.2372+0.023+0.035+0.001 ok
  splitstarter x1.0424 at 0.450 share (log5 0.2372 vs his 0.2307)  +  bullpen x1.0899 at 0.550 share (log5 0.2480 vs pen 0.2413)  =  x1.0685  |  starter alone would have been +0.035
Walkswhole staff0.338 → 0.336-0.0010.08890.0893n=425
Average
0.0822n=621
Average
0.0826+0.001-0.025-0.000 ok
  splitstarter x0.9246 at 0.450 share (log5 0.0826 vs his 0.0822)  +  bullpen x1.054 at 0.550 share (log5 0.0941 vs pen 0.0937)  =  x0.9958  |  starter alone would have been -0.025
Home runswhole staff0.082 → 0.070-0.0110.03040.0218n=425
Below average
0.0258n=621
Good
0.0185-0.032-0.017+0.005 ok
  splitstarter x0.8487 at 0.450 share (log5 0.0185 vs his 0.0258)  +  bullpen x0.8669 at 0.550 share (log5 0.0189 vs pen 0.0264)  =  x0.8587  |  starter alone would have been -0.012
Neutralising Jake Cronenworth to the qualified-population mean moves the club's KPI run forecast by 0.1040 runs, and the weighted stage by 0.0457. Interactions make these non-additive across players, so they do not sum to the published movement.
STARTER Nick Pivetta15.895 BFStarterHits3.266 → 3.379+0.1130.21690.2091n=140
Average
0.22439/9 qualified
lineup mean
0.2164-0.123+0.118-0.003 ok
Strikeouts4.260 → 4.256-0.0040.22120.2713n=140
Good
0.22109/9 qualified
lineup mean
0.2711+0.796-0.003-0.001 ok
Walks0.905 → 1.053+0.1480.08890.0740n=140
Good
0.10329/9 qualified
lineup mean
0.0861-0.238+0.227-0.035 ok
Home runs0.297 → 0.281-0.0160.03040.0265n=140
Good
0.02879/9 qualified
lineup mean
0.0251-0.061-0.026+0.003 ok
RELIEVER Jason Adam5.2739 BFSetup ManHits0.752 → 0.778+0.0260.21690.2150n=142
Average
0.22439/9 qualified
lineup mean
0.2225-0.010+0.039-0.000 ok
Strikeouts0.507 → 0.507-0.0010.22120.1789n=142
Below average
0.22109/9 qualified
lineup mean
0.1787-0.223-0.001+0.000 ok
Walks0.385 → 0.448+0.0630.08890.0802n=142
Average
0.10329/9 qualified
lineup mean
0.0932-0.046+0.075-0.007 ok
Home runs0.111 → 0.105-0.0060.03040.0316n=142
Average
0.02879/9 qualified
lineup mean
0.0298+0.006-0.009-0.000 ok
RELIEVER Adrian Morejon4.5198 BFMiddle Reliever (High Leverage)Hits1.069 → 1.107+0.0380.21690.1993n=352
Good
0.22439/9 qualified
lineup mean
0.2063-0.079+0.034-0.002 ok
Strikeouts1.436 → 1.435-0.0010.22120.2886n=352
Very good
0.22109/9 qualified
lineup mean
0.2884+0.305-0.001-0.000 ok
Walks0.419 → 0.487+0.0680.08890.0824n=352
Average
0.10329/9 qualified
lineup mean
0.0958-0.029+0.065-0.004 ok
Home runs0.108 → 0.102-0.0060.03040.0220n=352
Very good
0.02879/9 qualified
lineup mean
0.0208-0.038-0.007+0.002 ok
RELIEVER Bradgley Rodriguez4.1678 BFMiddle Reliever (High Leverage)Hits0.784 → 0.811+0.0270.21690.2063n=301
Good
0.22439/9 qualified
lineup mean
0.2135-0.044+0.031-0.001 ok
Strikeouts1.468 → 1.467-0.0010.22120.2590n=301
Good
0.22109/9 qualified
lineup mean
0.2588+0.158-0.001-0.000 ok
Walks0.497 → 0.578+0.0810.08890.0742n=301
Good
0.10329/9 qualified
lineup mean
0.0863-0.061+0.060-0.009 ok
Home runs0.052 → 0.049-0.0030.03040.0262n=301
Good
0.02879/9 qualified
lineup mean
0.0247-0.018-0.007+0.001 ok
RELIEVER Mason Miller3.0292 BFCloserHits0.679 → 0.704+0.0250.21690.1780n=272
Very good
0.22439/9 qualified
lineup mean
0.1845-0.118+0.023-0.003 ok
Strikeouts1.781 → 1.780-0.0010.22120.4166n=272
Very good
0.22109/9 qualified
lineup mean
0.4164+0.592-0.001-0.000 ok
Walks0.584 → 0.677+0.0930.08890.0931n=272
Average
0.10329/9 qualified
lineup mean
0.1080+0.013+0.043+0.002 ok
Home runs0.032 → 0.030-0.0020.03040.0231n=272
Very good
0.02879/9 qualified
lineup mean
0.0218-0.022-0.005+0.001 ok
RELIEVER Yuki Matsui2.738 BFRelieverHits0.498 → 0.516+0.0180.21690.1819n=260
Very good
0.22439/9 qualified
lineup mean
0.1884-0.096+0.020-0.003 ok
Strikeouts0.690 → 0.690-0.0010.22120.2520n=260
Good
0.22109/9 qualified
lineup mean
0.2518+0.084-0.001-0.000 ok
Walks0.328 → 0.379+0.0510.08890.1198n=260
Poor
0.10329/9 qualified
lineup mean
0.1383+0.084+0.039+0.011 ok
Home runs0.080 → 0.075-0.0040.03040.0291n=260
Average
0.02879/9 qualified
lineup mean
0.0275-0.004-0.005+0.000 ok
RELIEVER David Morgan1.2864 BFRelieverHits0.284 → 0.294+0.0100.21690.2210n=162
Average
0.22439/9 qualified
lineup mean
0.2285+0.005+0.010+0.000 ok
Strikeouts0.301 → 0.301-0.0000.22120.2343n=162
Average
0.22109/9 qualified
lineup mean
0.2341+0.017-0.0000 ok
Walks0.145 → 0.168+0.0230.08890.1127n=162
Below average
0.10329/9 qualified
lineup mean
0.1303+0.031+0.018+0.004 ok
Home runs0.033 → 0.031-0.0020.03040.0256n=162
Good
0.02879/9 qualified
lineup mean
0.0242-0.006-0.002+0.000 ok
RELIEVER Joe Musgrove0.7193 BFRelieverHits0.156 → 0.161+0.0050.21690.2169n=0
averagebelow floor
0.22439/9 qualified
lineup mean
0.22430+0.0050 ok
Strikeouts0.159 → 0.159-0.0000.22120.2212n=0
averagebelow floor
0.22109/9 qualified
lineup mean
0.22100-0.0000 ok
Walks0.064 → 0.074+0.0100.08890.0889n=0
averagebelow floor
0.10329/9 qualified
lineup mean
0.10320+0.0100 ok
Home runs0.022 → 0.021-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
Dustin MayStarter17.04.04.0068 / 3.7914 / 4.4562 / 1.2245 / 2.010all_players_stats_recent_season_blend
JoJo RomeroLong Reliever4.01.01.0131 / 0.7231 / 1.0450 / 0.2800 / 0.265all_players_stats_recent_season_blend
Antonio SenzatelaMiddle Reliever (High Leverage)4.53.01.0131 / 1.0502 / 0.7370 / 0.3990 / 0.370all_players_stats_recent_season_blend
Nick PivettaStarter15.94.03.9084 / 3.2662 / 4.2601 / 0.9053 / 0.982all_players_stats_recent_season_blend
Bradgley RodriguezMiddle Reliever (High Leverage)5.21.11.3182 / 0.7841 / 1.4681 / 0.4970 / 0.184all_players_stats_recent_season_blend
Adrian MorejonMiddle Reliever (High Leverage)5.41.11.3181 / 1.0691 / 1.4360 / 0.4191 / 0.412all_players_stats_recent_season_blend
Jason AdamSetup Man4.11.00.9890 / 0.7521 / 0.5071 / 0.3850 / 0.312all_players_stats_recent_season_blend
Mason MillerCloser4.21.10.9891 / 0.6790 / 1.7810 / 0.5840 / 0.426all_players_stats_recent_season_blend

Audit: NO DEFECT FOUND

InvariantVerdictEvidence
blend arithmetic away_runsPASS4.0000 + 0.78 x (3.5655 - 4.0000) = 3.6611, recorded 3.6611
blend arithmetic home_runsPASS5.0000 + 0.44 x (4.2176 - 5.0000) = 4.6558, recorded 4.6558
blend arithmetic home_winPASS0.5782 + 0.00 x (0.6792 - 0.5782) = 0.5782, recorded 0.5782
published rounding faithful to the blendPASSblended 3.6611-4.6558 rounds to 4-5, layer published 4-5
published probability on the score's sidePASS4-5 with p(home) 0.578153
Log5 additivity136 checksPASS136 of 136 pass
away club fields exactly one starterPASS1 starters in a staff of 3
away staff totals a regulation workloadPASS24 outs recorded, 24 expected
away starter carries a continuous linePASSexpected_IP 4.006
away starter batters faced inside the real bandPASSDustin May projected 17.0 batters faced; real starters run p01-p99 4-30, median 23, mean 21.75
away reliever batters faced inside the real band2 checksPASS2 of 2 pass
home club fields exactly one starterPASS1 starters in a staff of 5
home staff totals a regulation workloadPASS27 outs recorded, 27 expected
home starter carries a continuous linePASSexpected_IP 3.908
home starter batters faced inside the real bandPASSNick Pivetta projected 15.9 batters faced; real starters run p01-p99 4-30, median 23, mean 21.75
home reliever batters faced inside the real band4 checksPASS4 of 4 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.