Deep slate diagnosis — 20260902
- Games: 15 · hits 5 · misses 10 · winner accuracy 0.3333
- Mean total-run bias on losses: -2.0 (negative = under-projected)
- Mean team-run error on losses: 6.4 · mean Brier on losses: 0.299
Loss primary drivers
- Small edge on the losing side: 1
- Several errors of similar size: 1
- Run environment far higher than projected (under-dispersed): 4
- Starting-pitcher projection was wrong: 1
- Genuine toss-up that flipped: 1
- Backed the wrong side with real conviction: 2
High-level causal issue register
[CRITICAL] Published probability differs materially without a recorded transformation
- Domain:
probability_lineage· affected: SF@PIT - Evidence: 1 game(s) have an unexplained ≥2pp calibrated-to-published delta
- Action: Block any promotion until the missing probability transformation is recorded and reconciled.
- Do not infer: Do not assume the probability governor was bypassed until you have traced the pick-side math.
[HIGH] Canonical artifact warning requires reconciliation
- Domain:
artifact_integrity· affected: slate-wide - Evidence: structural audit totals: {'critical': 0, 'error': 0, 'warning': 2, 'info': 110}
- Action: Fix the flagged stat or presentation contract before treating this slate as clean evidence.
- Do not infer: A warning flags a display or contract issue; it does not prove the model picked the wrong side.
[HIGH] An intermediate stage materially degraded winner direction
- Domain:
pipeline_stages· affected: DET@MIN, OAK@TEX, PHI@ARI, SEA@BOS, TOR@CLE - Evidence: variance_applied → enhanced_prediction changed winner accuracy by -0.2667 (-4 hits)
- Action: List the exact games whose winner flipped at this stage, and keep both the before-stage and after-stage picks in the trace.
- Do not infer: Even if a later stage recovers the pick, this unstable step is still a risk; do not treat it as harmless.
[HIGH] Published margins are compressed relative to realized margins
- Domain:
score_distribution· affected: ATL@WAS, DET@MIN, NYM@TB, OAK@TEX, SD@CIN, SEA@BOS, TOR@CLE - Evidence: 15/15 predictions were ≤2 runs; 8/15 actual margins were ≥4; mean predicted margin 1.20 vs actual 4.27
- Action: Check whether predicted margins are too narrow across several recent out-of-sample slates (measuring tail coverage and margin MAE) before widening the score spread.
- Do not infer: A single blowout game is not a reason to widen every score prediction.
[HIGH] Published confidence buckets were poorly aligned on this slate
- Domain:
calibration· affected: ATL@WAS, BAL@COL, CHW@HOU, DET@MIN, MIA@KC, MIL@CHC, NYM@TB, NYY@LAA, OAK@TEX, PHI@ARI, SD@CIN, SEA@BOS, SF@PIT, STL@LAD, TOR@CLE - Evidence: weighted absolute calibration error 0.2100 across 15 games
- Action: Watch the same confidence buckets over the full rolling window before changing any calibration weight.
- Do not infer: A single slate has far too few games to establish a stable calibration curve.
[HIGH] Validated run models explain very little holdout variance
- Domain:
model_validation· affected: ATL@WAS, BAL@COL, CHW@HOU, DET@MIN, MIA@KC, MIL@CHC, NYM@TB, NYY@LAA, OAK@TEX, PHI@ARI, SD@CIN, SEA@BOS, SF@PIT, STL@LAD, TOR@CLE - Evidence: home/away/total R² = 0.0300/0.0214/0.0287
- Action: Treat exact run scores as low-confidence estimates, and look for stronger features or a better target before tuning the score tails.
- Do not infer: A small positive R² only means the model beats guessing the average; it does not make the exact scores reliable.
[INFO] Every settled game received structural QA
- Domain:
coverage· affected: ATL@WAS, BAL@COL, CHW@HOU, DET@MIN, MIA@KC, MIL@CHC, NYM@TB, NYY@LAA, OAK@TEX, PHI@ARI, SD@CIN, SEA@BOS, SF@PIT, STL@LAD, TOR@CLE - Evidence: 15/15 games structurally audited
- Action: Keep the per-game audit receipt in every report.
- Do not infer: Full audit coverage does not cancel the findings raised inside the audited games.
[INFO] Simulation produced no winner-direction intervention on this slate
- Domain:
simulation· affected: ATL@WAS, BAL@COL, CHW@HOU, DET@MIN, MIA@KC, MIL@CHC, NYM@TB, NYY@LAA, OAK@TEX, PHI@ARI, SD@CIN, SEA@BOS, SF@PIT, STL@LAD, TOR@CLE - Evidence: flip candidates 0; published flips 0
- Action: Measure the simulation's contribution across rolling slates, separating score realization from winner flipping.
- Do not infer: Zero winner flips is not a defect and does not mean the simulation did no score-reconciliation work.
Cross-slate trends (persistent-pattern memory)
- Window: 20260828, 20260829, 20260830, 20260831, 20260901, 20260902 (5 prior slates loaded)
- Highest-confidence pick loss streak: 2 slate(s)
- Actionable pattern detected: True
Escalated persistent patterns
- score_margin_compression — 3 consecutive slates (3 in window)
- Target lever(s): score.variance_multiplier, score.variance_floor
- Direction: widen run distributions
- Guardrail: score_margin_compression has persisted 3 consecutive slates; this is no longer single-slate noise. Treat it as an actionable pattern and propose a bounded shadow experiment against a target lever.
- simulation_inert_on_slate — 6 consecutive slates (6 in window)
- Target lever(s): simulation.allow_score
- Direction: confirm the simulation module is running, not silently no-oping
- Guardrail: simulation_inert_on_slate has persisted 6 consecutive slates; this is no longer single-slate noise. Treat it as an actionable pattern and raise the code/diagnostic action named; do not force a parameter move.
- single_slate_calibration_instability — 3 consecutive slates (5 in window)
- Target lever(s): confidence.empirical_max_weight, confidence.base_cap, confidence.moderate_cap
- Direction: increase empirical shrinkage
- Guardrail: single_slate_calibration_instability has persisted 3 consecutive slates; this is no longer single-slate noise. Treat it as an actionable pattern and propose a bounded shadow experiment against a target lever.
- weak_run_model_signal — 6 consecutive slates (6 in window)
- Target lever(s): training.xgb.n_estimators, training.xgb.max_depth, training.xgb.learning_rate
- Direction: investigate features/target via isolated training backtest (manual)
- Guardrail: weak_run_model_signal has persisted 6 consecutive slates; this is no longer single-slate noise. Treat it as an actionable pattern and raise the code/diagnostic action named; do not force a parameter move.
Metric direction across the window
winner_accuracy: regressing · series [0.4667, 0.9412, 0.5, 0.6667, 0.4667, 0.3333]weighted_calibration_error: flat · series [0.2179, 0.3961, 0.0693, 0.1661, 0.2476, 0.21]margin_bias: regressing · series [-1.333, -1.882, -2.786, -3.5, -2.533, -3.067]mean_team_run_error_on_losses: regressing · series [5.0, 3.0, 7.0, 8.25, 7.125, 6.4]
Pipeline stage quality
historical_ml: winner 11/15 (0.7333), team-run MAE 2.9394, margin MAE 3.8777variance_applied: winner 9/15 (0.6), team-run MAE 2.9333, margin MAE 3.7333enhanced_prediction: winner 5/15 (0.3333), team-run MAE 3.0667, margin MAE 4.6667embedded_savant_run_environment: winner 5/15 (0.3333), team-run MAE 3.1333, margin MAE 4.5333fundamental_edge_target_review: winner 5/15 (0.3333), team-run MAE 3.1333, margin MAE 4.5333capped_target: winner 5/15 (0.3333), team-run MAE 3.1333, margin MAE 4.5333simulation_result: winner 5/15 (0.3333), team-run MAE 3.1333, margin MAE 4.5333published_final: winner 5/15 (0.3333), team-run MAE 3.1333, margin MAE 4.5333
Probability lineage
- ATL@WAS: raw 0.5085 → calibrated 0.5082 → published 0.53; score coherence followed by matchup-recency guardrail
- BAL@COL: raw 0.551 → calibrated 0.5499 → published 0.5573; score coherence followed by matchup-recency guardrail
- CHW@HOU: raw 0.5085 → calibrated 0.5082 → published 0.53; score coherence followed by matchup-recency guardrail
- DET@MIN: raw 0.6241 → calibrated 0.6196 → published 0.5591; score coherence followed by matchup-recency guardrail
- MIA@KC: raw 0.5469 → calibrated 0.5458 → published 0.5556; no recorded transformation explains the publication delta
- MIL@CHC: raw 0.5085 → calibrated 0.5082 → published 0.5396; score coherence followed by matchup-recency guardrail
- NYM@TB: raw 0.551 → calibrated 0.5499 → published 0.5487; published probability matches the calibrated/governed value
- NYY@LAA: raw 0.5803 → calibrated 0.5773 → published 0.53; score coherence followed by matchup-recency guardrail
- OAK@TEX: raw 0.628 → calibrated 0.6233 → published 0.56; score coherence followed by matchup-recency guardrail
- PHI@ARI: raw 0.5552 → calibrated 0.554 → published 0.5301; score coherence followed by matchup-recency guardrail
- SD@CIN: raw 0.5714 → calibrated 0.5696 → published 0.53; score coherence followed by matchup-recency guardrail
- SEA@BOS: raw 0.5061 → calibrated 0.5059 → published 0.5197; score coherence followed by matchup-recency guardrail
- SF@PIT: raw 0.5228 → calibrated 0.5223 → published 0.5456; no recorded transformation explains the publication delta
- STL@LAD: raw 0.5943 → calibrated 0.591 → published 0.53; score coherence followed by matchup-recency guardrail
- TOR@CLE: raw 0.6456 → calibrated 0.6394 → published 0.5838; score coherence followed by matchup-recency guardrail
Every game, in detail
ATL@WAS — ✅ hit
- Predicted ATL 5-4 (conf -0.06, lean) · actual ATL 9-0
- Root cause: right_winner_wrong_score
- Errors: winner correct · Brier 0.2209 · team-run err 8.0 · total bias +0
- Contributing factors:
- ATL offense under-projected by 4
- WAS offense over-projected by 4
- Brad Lord (WAS) allowed 3 fewer ER than projected (0 vs 3)
BAL@COL — ❌ miss
- Predicted BAL 7-5 (conf -0.11, moderate) · actual COL 5-6
- Root cause: Backed the wrong side with real conviction
- Errors: winner WRONG · Brier 0.310622 · team-run err 3.0 · total bias +1
- Contributing factors:
- Trevor Rogers (BAL) allowed 3 fewer ER than projected (2 vs 5)
- committed to BAL at 0.11 confidence and it lost
CHW@HOU — ✅ hit
- Predicted HOU 5-6 (conf +0.06, lean) · actual HOU 0-2
- Root cause: right_winner_wrong_score
- Errors: winner correct · Brier 0.2209 · team-run err 9.0 · total bias +9
- Contributing factors:
- total runs over-projected by 9 (11 vs 2)
- CHW offense over-projected by 5
- HOU offense over-projected by 4
- Davis Martin (CHW) allowed 5 fewer ER than projected (0 vs 5)
- Hayden Wesneski (HOU) allowed 3 fewer ER than projected (0 vs 3)
DET@MIN — ❌ miss
- Predicted MIN 4-5 (conf +0.12, moderate) · actual DET 11-6
- Root cause: Run environment far higher than projected (under-dispersed)
- Secondary cause: Backed the wrong side with real conviction
- Errors: winner WRONG · Brier 0.312611 · team-run err 8.0 · total bias -8
- Contributing factors:
- total runs under-projected by 8 (9 vs 17)
- DET offense under-projected by 7
- Drew Anderson (DET) allowed 3 fewer ER than projected (1 vs 4)
- committed to MIN at 0.12 confidence and it lost
MIA@KC — ✅ hit
- Predicted MIA 5-4 (conf -0.11, moderate) · actual MIA 9-6
- Root cause: right_winner_wrong_score
- Errors: winner correct · Brier 0.197484 · team-run err 6.0 · total bias -6
- Contributing factors:
- total runs under-projected by 6 (9 vs 15)
- MIA offense under-projected by 4
- Eury Pérez (MIA) allowed 4 more ER than projected (6 vs 2)
- Noah Cameron (KC) allowed 4 more ER than projected (4 vs 0)
MIL@CHC — ✅ hit
- Predicted MIL 6-4 (conf -0.08, lean) · actual MIL 9-5
- Root cause: solid_correct_call
- Errors: winner correct · Brier 0.211943 · team-run err 4.0 · total bias -4
- Contributing factors:
- total runs under-projected by 4 (10 vs 14)
- MIL offense under-projected by 3
- Jacob Misiorowski (MIL) allowed 3 more ER than projected (5 vs 2)
NYM@TB — ❌ miss
- Predicted TB 3-4 (conf +0.10, lean) · actual NYM 10-4
- Root cause: Run environment far higher than projected (under-dispersed)
- Errors: winner WRONG · Brier 0.301109 · team-run err 7.0 · total bias -7
- Contributing factors:
- total runs under-projected by 7 (7 vs 14)
- NYM offense under-projected by 7
NYY@LAA — ✅ hit
- Predicted NYY 4-2 (conf -0.06, lean) · actual NYY 6-3
- Root cause: solid_correct_call
- Errors: winner correct · Brier 0.2209 · team-run err 3.0 · total bias -3
- Contributing factors:
- total runs under-projected by 3 (6 vs 9)
OAK@TEX — ❌ miss
- Predicted TEX 4-5 (conf +0.12, moderate) · actual OAK 9-2
- Root cause: Backed the wrong side with real conviction
- Secondary cause: Small edge on the losing side
- Errors: winner WRONG · Brier 0.3136 · team-run err 8.0 · total bias -2
- Contributing factors:
- OAK offense under-projected by 5
- TEX offense over-projected by 3
- committed to TEX at 0.12 confidence and it lost
PHI@ARI — ❌ miss
- Predicted PHI 5-4 (conf -0.06, lean) · actual ARI 0-1
- Root cause: Starting-pitcher projection was wrong
- Secondary cause: Run environment far lower than projected (over-dispersed)
- Errors: winner WRONG · Brier 0.281033 · team-run err 8.0 · total bias +8
- Contributing factors:
- total runs over-projected by 8 (9 vs 1)
- PHI offense over-projected by 5
- ARI offense over-projected by 3
- Andrew Painter (PHI) allowed 4 fewer ER than projected (0 vs 4)
SD@CIN — ❌ miss
- Predicted SD 5-4 (conf -0.06, lean) · actual CIN 3-7
- Root cause: Small edge on the losing side
- Errors: winner WRONG · Brier 0.2809 · team-run err 5.0 · total bias -1
- Contributing factors:
- CIN offense under-projected by 3
SEA@BOS — ❌ miss
- Predicted BOS 4-5 (conf +0.04, toss_up) · actual SEA 8-3
- Root cause: Genuine toss-up that flipped
- Secondary cause: Small edge on the losing side
- Errors: winner WRONG · Brier 0.270085 · team-run err 6.0 · total bias -2
- Contributing factors:
- SEA offense under-projected by 4
SF@PIT — ❌ miss
- Predicted PIT 5-6 (conf +0.09, lean) · actual SF 5-4
- Root cause: Several errors of similar size
- Errors: winner WRONG · Brier 0.297668 · team-run err 2.0 · total bias +2
STL@LAD — ❌ miss
- Predicted LAD 4-5 (conf +0.06, lean) · actual STL 8-6
- Root cause: Run environment far higher than projected (under-dispersed)
- Errors: winner WRONG · Brier 0.2809 · team-run err 5.0 · total bias -5
- Contributing factors:
- total runs under-projected by 5 (9 vs 14)
- STL offense under-projected by 4
TOR@CLE — ❌ miss
- Predicted CLE 2-3 (conf +0.17, moderate) · actual TOR 11-0
- Root cause: Run environment far higher than projected (under-dispersed)
- Secondary cause: Backed the wrong side with real conviction
- Errors: winner WRONG · Brier 0.340848 · team-run err 12.0 · total bias -6
- Contributing factors:
- total runs under-projected by 6 (5 vs 11)
- TOR offense under-projected by 9
- CLE offense over-projected by 3
- committed to CLE at 0.17 confidence and it lost
Cross-game lever tension
Each candidate fix, with the games it would help and the games it would hurt. A lever that repairs one game and breaks two is visible here before it is proposed.
score.variance_multiplier / score.variance_floor (widen run distributions)
- Targets: brier_score, calibration_error
- Net: 4 helped vs 0 hurt
- Would help:
- BAL@COL (miss): lost a 0.11-confidence pick; wider tails lower overconfidence
- DET@MIN (miss): lost a 0.12-confidence pick; wider tails lower overconfidence
- OAK@TEX (miss): lost a 0.12-confidence pick; wider tails lower overconfidence
- TOR@CLE (miss): lost a 0.17-confidence pick; wider tails lower overconfidence
player.pitcher.v4 form weights / player.pitcher_prior_games
- Targets: starter_er_mae, starter_outs_mae
- Net: 7 helped vs 6 hurt
- Would help:
- ATL@WAS (hit): starter ER off by 3
- BAL@COL (miss): starter ER off by 3
- CHW@HOU (hit): starter ER off by 5
- DET@MIN (miss): starter ER off by 3
- MIA@KC (hit): starter ER off by 4
- MIL@CHC (hit): starter ER off by 3
- PHI@ARI (miss): starter ER off by 4
- Would hurt / risk:
- NYM@TB (miss): starter projection was accurate (ER off 1); reweight risks disturbing it
- NYY@LAA (hit): starter projection was accurate (ER off 1); reweight risks disturbing it
- SD@CIN (miss): starter projection was accurate (ER off 1); reweight risks disturbing it
- SEA@BOS (miss): starter projection was accurate (ER off 1); reweight risks disturbing it
- SF@PIT (miss): starter projection was accurate (ER off 1); reweight risks disturbing it
- STL@LAD (miss): starter projection was accurate (ER off 1); reweight risks disturbing it
recent. / season. run-mean weighting
- Targets: team_run_mae, total_run_mae, accuracy
- Net: 12 helped vs 1 hurt
- Would help:
- ATL@WAS (hit): team runs off by 8
- CHW@HOU (hit): team runs off by 9
- DET@MIN (miss): team runs off by 8
- MIA@KC (hit): team runs off by 6
- MIL@CHC (hit): team runs off by 4
- NYM@TB (miss): team runs off by 7
- OAK@TEX (miss): team runs off by 8
- PHI@ARI (miss): team runs off by 8
- SD@CIN (miss): team runs off by 5
- SEA@BOS (miss): team runs off by 6
- STL@LAD (miss): team runs off by 5
- TOR@CLE (miss): team runs off by 12
- Would hurt / risk:
- SF@PIT (miss): team runs already close (off 2); reweight risks disturbing it