KPI learning cycle: 20261009

Settled pregame forecasts against official finals, a rolling self-assessment, the calibration it produced and the actions it took · 2026-10-10 09:13 UTC

Yesterday: where the forecast went wrong

Games settled
0
0 excluded · finals data/games.csv
Club-run MAE by stage
– → –
baseline → blend · KPI alone – · published –
Layer moved toward result
0/0
club totals the layer moved
Player lines from
statsapi.mlb.com box scores
GameClubActualBaselineKPI aloneBlendPublishedCard rightSP outs errPen share errFeature that pushed hardest the wrong wayDominant cause

Causes are checked in a fixed order and the first that applies is named: layer refused, wrong card (3+ of nine), starter length (±6 outs), bullpen share (±0.20), KPI moved away by 0.3+ runs, outlier (5+ runs from the baseline), then variance. Every cause that applied is kept in the settled document.

Bullpen: who the forecast expected against who pitched

Relievers who pitched, in the pregame bullpen
–
0 relievers over 0 club-games
Closer named = arm who finished
–
Probability it pitches
– / –
arms who pitched / stayed idle · Brier –
Batters faced error per arm
–
GameClubPitched and in poolPoolPitched but not in poolCloser right
Bullpen usage model: kept current · challenger holdout log loss 0.4511 vs current 0.4489 vs usage-only baseline 0.5080

Luna KPI review

Luna skipped_no_pregame_evidence. KPI-level faults 1, player-level faults 1, players flagged 6. New KPIs admitted 0, active candidates 10, promoted 0. Full review: 20261009_kpi_luna_review.html.

Per-player, per-club and per-KPI failures: 20261009_kpi_failures.html, every hitter and pitcher on the card scored against his real line, with the reason and size of each miss and the rolling ledger.

Self-assessment: 20 settled slates in the last 21 days

Blend gain over baseline
+0.022
90% [-0.080, +0.126]
KPI alone gain over baseline
-0.060
90% [-0.225, +0.109]
Club totals scored
238
moved toward 118/238

Blend weights: what the settled games imply

TargetClub totalsModel weightImplied by evidenceClamped 0–1
away_runs1190.680.350.35
home_runs1190.440.610.61

The implied weight is the least-squares fit of (actual − baseline) on (KPI − baseline) over the window's settled club totals. It is evidence for the next walk-forward refit, never applied directly.

Why club totals missed

CauseOwnerShareCountMean published error
KPI layer did not applyoperator: fix the missing input named in the reason11%282.21
Card named hitters who did not startdata feed: posted lineups arrive after the pregame run11%262.46
Starter length missed by two innings or moremodel: starter workload projection15%362.14
Bullpen share missed by a fifth of the game or moremodel: bullpen exposure method3%82.00
KPI layer moved the total away from the resultKPI model: weights, features or recipe18%432.65
Outlier game, five or more runs from any mean forecastnone: not forecastable7%175.24
Ordinary one-game variancenone35%861.83

Lineups, starters and bullpen exposure

MeasurenBiasMean absolute error
Card hitters who did not start (of nine)226–0.96
Starter outs (projected − actual)210+2.113.89
Bullpen share, published staff (used by the KPI model)181-0.0550.137
Bullpen share, full relief corps (effects document)213-0.0630.133

Per-hitter KPI matchups

MetricHitter-gamesMAE publishedMAE adjustedDirection rightRateChanceLiftTough per PAFavourable per PASeparationSELearned ββ status
H16620.68370.6835729/14270.5110.493+0.0180.1990.233+0.0350.0121.000measured scale confirmed: the interval includes 1.0
SO18180.67950.6879914/17900.5110.498+0.0120.1870.256+0.0690.0120.449learned: the interval excludes 1.0
BB18180.46700.4628887/16150.5490.537+0.0120.0780.091+0.0140.0080.250learned: the interval excludes 1.0
HR18180.21930.2167762/11640.6550.626+0.0280.0270.038+0.0100.0051.750learned: the interval excludes 1.0

Chance is the direction rate expected from the sign mix alone. Separation is the favourable third's rate per plate appearance minus the tough third's, bucketed by the whole-staff multiplier. Learned β scales the matchup adjustment in the effects document from the next slate on.

KPI features ranked by net runs pushed toward the result (worst first)

FeatureSeenScoredPushed away rateNet runsDrift ±3σ
home_off_power_spread80800.56-9.952
away_off_discipline61610.69-8.072
home_platoon_whiff81810.57-6.290
home_platoon_barrel69690.62-5.820
home_off_ground_spread71710.58-4.880
home_sp_suppress59590.58-4.010
away_x_fastball24240.67-3.957
away_sp_ground65650.60-3.162
away_sp_whiff36360.67-3.082
away_off_worst3_discipline31310.58-2.981
away_pen_share36360.56-2.734
home_x_fastball37370.59-2.646
Winner decision. Over 122 settled games the published winner was right 0.598 and the trained classifier 0.639. They disagreed 31 times; the classifier was right 0.581 of those (advantage +0.161, interval -0.143 to +0.448). Verdict: no_signal; the policy changes only on 40+ disagreements with an interval clear of zero.

What the system learned and did

Calibration snapshot for 20261010, built from 20 settled slates: H β 1.000 (measured scale confirmed: the interval includes 1.0), SO β 0.449 (learned: the interval excludes 1.0), BB β 0.250 (learned: the interval excludes 1.0), HR β 1.750 (learned: the interval excludes 1.0). Bullpen exposure method preferred: undecided.
KPI model: decision retrain (away_runs: settled evidence implies weight 0.35 against the model's 0.68) — retrained, new candidate 20261010T091315Z_e1040db9. Rollback check: kept.

Needs an operator

FindingOwnerPriorityAction
starter length biased by +2.1 outs over 210 startsmodelmediumrecalibrate the starter workload projection toward real outs per start
away_off_discipline pushed the KPI forecast away from the result in 69% of 61 scored club totals, net -8.1 runsKPI model recipelowcandidate for removal or rework in the next kpi_model version
home_platoon_barrel pushed the KPI forecast away from the result in 62% of 69 scored club totals, net -5.8 runsKPI model recipelowcandidate for removal or rework in the next kpi_model version
away_x_fastball was beyond ±3 standard deviations of its training range in 7 club totalsKPI model recipemediumthe live feature is built differently from the training rows; align the two constructions and retrain
home_x_fastball was beyond ±3 standard deviations of its training range in 6 club totalsKPI model recipemediumthe live feature is built differently from the training rows; align the two constructions and retrain
away_x_suppress was beyond ±3 standard deviations of its training range in 8 club totalsKPI model recipemediumthe live feature is built differently from the training rows; align the two constructions and retrain
away_off_power_spread was beyond ±3 standard deviations of its training range in 8 club totalsKPI model recipemediumthe live feature is built differently from the training rows; align the two constructions and retrain
away_x_ground was beyond ±3 standard deviations of its training range in 6 club totalsKPI model recipemediumthe live feature is built differently from the training rows; align the two constructions and retrain
away_x_breaking was beyond ±3 standard deviations of its training range in 6 club totalsKPI model recipemediumthe live feature is built differently from the training rows; align the two constructions and retrain
pitcher_strikeout_rate (elite) on SO: adjustments made SO worse over 210 hitter-games in 11 days, mean gain -0.0347, interval (-0.05984, -0.00582)KPI recipemediumreview this KPI's weight in the matchup multiplier; it is an operator change to the recipe
pitcher_home_run_rate_allowed (poor) on HR: adjustments made HR worse over 234 hitter-games in 11 days, mean gain -0.0148, interval (-0.01867, -0.01212)KPI recipemediumreview this KPI's weight in the matchup multiplier; it is an operator change to the recipe
batter_strikeout_rate (average) on SO: adjustments made SO worse over 922 hitter-games in 13 days, mean gain -0.0095, interval (-0.01697, -0.00262)KPI recipemediumreview this KPI's weight in the matchup multiplier; it is an operator change to the recipe
pitcher_home_run_rate_allowed (weak) on HR: adjustments made HR worse over 271 hitter-games in 8 days, mean gain -0.0054, interval (-0.0069, -0.00353)KPI recipemediumreview this KPI's weight in the matchup multiplier; it is an operator change to the recipe
pitcher_strikeout_rate (average) on SO: adjustments made SO worse over 822 hitter-games in 13 days, mean gain -0.0032, interval (-0.00605, -1e-05)KPI recipemediumreview this KPI's weight in the matchup multiplier; it is an operator change to the recipe
pitcher_walk_rate (average) on BB: adjustments made BB worse over 880 hitter-games in 13 days, mean gain -0.0007, interval (-0.00159, -3e-05)KPI recipemediumreview this KPI's weight in the matchup multiplier; it is an operator change to the recipe
ATL: KPI blend worse than the baseline over 11 games (MAE 2.462 vs 2.455, bias +0.299)KPI modelmediumcheck the wrong-way features listed for this club and its data coverage
HOU: KPI blend worse than the baseline over 8 games (MAE 2.902 vs 1.875, bias -2.073)KPI modelmediumcheck the wrong-way features listed for this club and its data coverage
MIA: KPI blend worse than the baseline over 8 games (MAE 1.74 vs 1.5, bias +0.134)KPI modelmediumcheck the wrong-way features listed for this club and its data coverage
ARI: KPI blend worse than the baseline over 8 games (MAE 3.175 vs 3.125, bias -1.975)KPI modelmediumcheck the wrong-way features listed for this club and its data coverage
COL: KPI blend worse than the baseline over 7 games (MAE 3.165 vs 2.857, bias +0.775)KPI modelmediumcheck the wrong-way features listed for this club and its data coverage
SF: KPI blend worse than the baseline over 8 games (MAE 1.861 vs 1.75, bias +1.054)KPI modelmediumcheck the wrong-way features listed for this club and its data coverage
LAD: KPI blend worse than the baseline over 10 games (MAE 2.776 vs 2.3, bias +1.513)KPI modelmediumcheck the wrong-way features listed for this club and its data coverage
WAS: KPI blend worse than the baseline over 6 games (MAE 2.081 vs 2.0, bias -0.588)KPI modelmediumcheck the wrong-way features listed for this club and its data coverage
STL: KPI blend worse than the baseline over 7 games (MAE 1.834 vs 1.571, bias +0.569)KPI modelmediumcheck the wrong-way features listed for this club and its data coverage
BOS: KPI blend worse than the baseline over 7 games (MAE 2.185 vs 1.714, bias +2.185)KPI modelmediumcheck the wrong-way features listed for this club and its data coverage
Yuki Matsui (SD): KPI adjustments hurt BB (gain -0.72 over 7 games, bias +0.57), HR (gain -0.01 over 7 games, bias +0.16), H (gain -0.12 over 6 games, bias +0.44)KPI readingslowhis KPI reading or its opponent pairing misleads; watch whether it persists before any change
Jeremiah Jackson (BAL): KPI adjustments hurt SO (gain -0.69 over 5 games, bias -0.29)KPI readingslowhis KPI reading or its opponent pairing misleads; watch whether it persists before any change
Trea Turner (PHI): KPI adjustments hurt SO (gain -0.61 over 8 games, bias +0.34)KPI readingslowhis KPI reading or its opponent pairing misleads; watch whether it persists before any change
Kyle Schwarber (PHI): KPI adjustments hurt SO (gain -0.58 over 8 games, bias +0.91), BB (gain -0.17 over 8 games, bias -0.25)KPI readingslowhis KPI reading or its opponent pairing misleads; watch whether it persists before any change
Shay Whitcomb (SF): KPI adjustments hurt SO (gain -0.57 over 6 games, bias +0.19)KPI readingslowhis KPI reading or its opponent pairing misleads; watch whether it persists before any change
Jonny DeLuca (TB): KPI adjustments hurt SO (gain -0.55 over 6 games, bias +0.06)KPI readingslowhis KPI reading or its opponent pairing misleads; watch whether it persists before any change
Coby Mayo (BAL): KPI adjustments hurt H (gain -0.13 over 5 games, bias -0.20), SO (gain -0.55 over 5 games, bias +0.20), BB (gain -0.05 over 5 games, bias -0.27)KPI readingslowhis KPI reading or its opponent pairing misleads; watch whether it persists before any change
Manny Machado (SD): KPI adjustments hurt SO (gain -0.53 over 11 games, bias +0.14), H (gain -0.13 over 10 games, bias -0.10)KPI readingslowhis KPI reading or its opponent pairing misleads; watch whether it persists before any change
Ty France (SD): KPI adjustments hurt SO (gain -0.52 over 11 games, bias +0.14)KPI readingslowhis KPI reading or its opponent pairing misleads; watch whether it persists before any change
George Lombard Jr. (NYY): KPI adjustments hurt SO (gain -0.48 over 8 games, bias -0.02), H (gain -0.17 over 7 games, bias -0.40)KPI readingslowhis KPI reading or its opponent pairing misleads; watch whether it persists before any change
Jordan Walker (STL): KPI adjustments hurt SO (gain -0.48 over 7 games, bias -0.20)KPI readingslowhis KPI reading or its opponent pairing misleads; watch whether it persists before any change
Christian Walker (HOU): KPI adjustments hurt SO (gain -0.42 over 8 games, bias +0.52)KPI readingslowhis KPI reading or its opponent pairing misleads; watch whether it persists before any change
Tim Tawa (ARI): KPI adjustments hurt H (gain -0.42 over 7 games, bias +0.10)KPI readingslowhis KPI reading or its opponent pairing misleads; watch whether it persists before any change
Mike Trout (LAA): KPI adjustments hurt SO (gain -0.42 over 7 games, bias +0.34), BB (gain -0.25 over 7 games, bias -0.55), HR (gain -0.01 over 7 games, bias +0.03)KPI readingslowhis KPI reading or its opponent pairing misleads; watch whether it persists before any change
Jac Caglianone (KC): KPI adjustments hurt SO (gain -0.41 over 6 games, bias +0.40), H (gain -0.13 over 5 games, bias -0.91)KPI readingslowhis KPI reading or its opponent pairing misleads; watch whether it persists before any change
Ketel Marte (ARI): KPI adjustments hurt H (gain -0.41 over 7 games, bias +0.05)KPI readingslowhis KPI reading or its opponent pairing misleads; watch whether it persists before any change
Colson Montgomery (CHW): KPI adjustments hurt H (gain -0.28 over 6 games, bias +0.64), SO (gain -0.40 over 6 games, bias -0.66)KPI readingslowhis KPI reading or its opponent pairing misleads; watch whether it persists before any change
Yandy Díaz (TB): KPI adjustments hurt H (gain -0.21 over 5 games, bias -0.52), SO (gain -0.38 over 5 games, bias +0.88)KPI readingslowhis KPI reading or its opponent pairing misleads; watch whether it persists before any change
Ozzie Albies (ATL): KPI adjustments hurt SO (gain -0.36 over 11 games, bias -0.34), BB (gain -0.19 over 11 games, bias -0.06)KPI readingslowhis KPI reading or its opponent pairing misleads; watch whether it persists before any change
Cam Smith (HOU): KPI adjustments hurt SO (gain -0.35 over 8 games, bias -0.16), HR (gain -0.04 over 8 games, bias +0.06), H (gain -0.08 over 7 games, bias +0.05)KPI readingslowhis KPI reading or its opponent pairing misleads; watch whether it persists before any change
Anthony Volpe (NYY): KPI adjustments hurt SO (gain -0.34 over 6 games, bias +0.14), H (gain -0.02 over 5 games, bias -0.17)KPI readingslowhis KPI reading or its opponent pairing misleads; watch whether it persists before any change
Bryce Harper (PHI): KPI adjustments hurt SO (gain -0.33 over 8 games, bias +0.05)KPI readingslowhis KPI reading or its opponent pairing misleads; watch whether it persists before any change
Kyle Isbel (KC): KPI adjustments hurt SO (gain -0.33 over 5 games, bias -0.24)KPI readingslowhis KPI reading or its opponent pairing misleads; watch whether it persists before any change
Adrian Morejon (SD): KPI adjustments hurt SO (gain -0.32 over 5 games, bias +0.83), HR (gain -0.03 over 5 games, bias -0.09)KPI readingslowhis KPI reading or its opponent pairing misleads; watch whether it persists before any change
Luke Keaschall (MIN): KPI adjustments hurt SO (gain -0.31 over 7 games, bias +0.31)KPI readingslowhis KPI reading or its opponent pairing misleads; watch whether it persists before any change
pitcher_home_run_rate_allowed on HR (pitcher): harm survives leaving 1 worst players out, gain -0.0130, interval (-0.01672, -0.011)KPI recipemediumthe KPI itself misleads; Luna replacement candidates are scored in shadow