Deep slate diagnosis — 20260912
- Games: 15 · hits 8 · misses 7 · winner accuracy 0.5333
- Mean total-run bias on losses: -1.286 (negative = under-projected)
- Mean team-run error on losses: 6.143 · mean Brier on losses: 0.302
Loss primary drivers
- Small edge on the losing side: 1
- Several errors of similar size: 1
- Run environment far higher than projected (under-dispersed): 1
- Starting-pitcher projection was wrong: 2
- Genuine toss-up that flipped: 1
- Backed the wrong side with real conviction: 1
High-level causal issue register
[CRITICAL] Published probability differs materially without a recorded transformation
- Domain:
probability_lineage· affected: CHW@STL, COL@DET - Evidence: 2 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] Published margins are compressed relative to realized margins
- Domain:
score_distribution· affected: BAL@TOR, NYM@NYY, PHI@ATL, SEA@OAK, TEX@ARI - Evidence: 12/15 predictions were ≤2 runs; 8/15 actual margins were ≥4; mean predicted margin 1.67 vs actual 4.33
- 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: BAL@TOR, CHW@STL, CIN@MIL, CLE@MIN, COL@DET, HOU@TB, KC@BOS, LAA@WAS, LAD@MIA, NYM@NYY, PHI@ATL, PIT@CHC, SD@SF, SEA@OAK, TEX@ARI - Evidence: weighted absolute calibration error 0.1711 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: BAL@TOR, CHW@STL, CIN@MIL, CLE@MIN, COL@DET, HOU@TB, KC@BOS, LAA@WAS, LAD@MIA, NYM@NYY, PHI@ATL, PIT@CHC, SD@SF, SEA@OAK, TEX@ARI - Evidence: home/away/total R² = 0.0118/0.0210/0.0207
- 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: BAL@TOR, CHW@STL, CIN@MIL, CLE@MIN, COL@DET, HOU@TB, KC@BOS, LAA@WAS, LAD@MIA, NYM@NYY, PHI@ATL, PIT@CHC, SD@SF, SEA@OAK, TEX@ARI - 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: BAL@TOR, CHW@STL, CIN@MIL, CLE@MIN, COL@DET, HOU@TB, KC@BOS, LAA@WAS, LAD@MIA, NYM@NYY, PHI@ATL, PIT@CHC, SD@SF, SEA@OAK, TEX@ARI - 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: 20260902, 20260903, 20260904, 20260905, 20260906, 20260907, 20260908, 20260909, 20260910, 20260911, 20260912 (10 prior slates loaded)
- Highest-confidence pick loss streak: 2 slate(s)
- Actionable pattern detected: True
Escalated persistent patterns
- simulation_inert_on_slate — 11 consecutive slates (11 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 11 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.
- weak_run_model_signal — 11 consecutive slates (11 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 11 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.3333, 0.5556, 0.625, 0.5333, 0.6, 0.5455, 0.7333, 0.6667, 0.6, 0.6667, 0.5333]weighted_calibration_error: regressing · series [0.21, 0.1474, 0.1316, 0.1, 0.0937, 0.2611, 0.1825, 0.1069, 0.1171, 0.2091, 0.1711]margin_bias: regressing · series [-3.067, -1.778, -0.688, -1.467, -1.467, -0.182, -0.867, -2.133, -1.0, -2.933, -2.667]mean_team_run_error_on_losses: regressing · series [6.4, 6.75, 6.0, 5.286, 5.333, 3.8, 6.75, 5.6, 6.5, 5.0, 6.143]
Pipeline stage quality
historical_ml: winner 8/15 (0.5333), team-run MAE 2.8836, margin MAE 4.202variance_applied: winner 7/15 (0.4667), team-run MAE 2.8333, margin MAE 4.2enhanced_prediction: winner 8/15 (0.5333), team-run MAE 3.0333, margin MAE 4.2embedded_savant_run_environment: winner 8/15 (0.5333), team-run MAE 3.0, margin MAE 4.1333fundamental_edge_target_review: winner 8/15 (0.5333), team-run MAE 3.0, margin MAE 4.1333capped_target: winner 8/15 (0.5333), team-run MAE 3.0, margin MAE 4.1333simulation_result: winner 8/15 (0.5333), team-run MAE 3.0, margin MAE 4.1333published_final: winner 8/15 (0.5333), team-run MAE 3.0, margin MAE 4.1333
Probability lineage
- BAL@TOR: raw 0.646 → calibrated 0.5871 → published 0.53; score coherence followed by matchup-recency guardrail
- CHW@STL: raw 0.6585 → calibrated 0.6339 → published 0.5908; no recorded transformation explains the publication delta
- CIN@MIL: raw 0.7249 → calibrated 0.7235 → published 0.54; score coherence followed by matchup-recency guardrail
- CLE@MIN: raw 0.5951 → calibrated 0.5578 → published 0.5412; score coherence followed by matchup-recency guardrail
- COL@DET: raw 0.7568 → calibrated 0.7296 → published 0.5989; no recorded transformation explains the publication delta
- HOU@TB: raw 0.5702 → calibrated 0.5437 → published 0.5315; score coherence followed by matchup-recency guardrail
- KC@BOS: raw 0.5915 → calibrated 0.5523 → published 0.53; score coherence followed by matchup-recency guardrail
- LAA@WAS: raw 0.5 → calibrated 0.5078 → published 0.5056; published probability matches the calibrated/governed value
- LAD@MIA: raw 0.6979 → calibrated 0.6956 → published 0.6; score coherence followed by matchup-recency guardrail
- NYM@NYY: raw 0.5478 → calibrated 0.5392 → published 0.5392; published probability matches the calibrated/governed value
- PHI@ATL: raw 0.5 → calibrated 0.5065 → published 0.505; published probability matches the calibrated/governed value
- PIT@CHC: raw 0.5 → calibrated 0.5547 → published 0.53; score coherence followed by matchup-recency guardrail
- SD@SF: raw 0.5 → calibrated 0.5078 → published 0.505; published probability matches the calibrated/governed value
- SEA@OAK: raw 0.5574 → calibrated 0.5346 → published 0.525; score coherence followed by matchup-recency guardrail
- TEX@ARI: raw 0.5911 → calibrated 0.5834 → published 0.5589; score coherence followed by matchup-recency guardrail
Every game, in detail
BAL@TOR — ✅ hit
- Predicted TOR 3-4 (conf +0.06, lean) · actual TOR 3-7
- 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 (7 vs 10)
- TOR offense under-projected by 3
CHW@STL — ❌ miss
- Predicted STL 3-4 (conf +0.18, moderate) · actual CHW 6-5
- Root cause: Backed the wrong side with real conviction
- Secondary cause: Small edge on the losing side
- Errors: winner WRONG · Brier 0.349039 · team-run err 4.0 · total bias -4
- Contributing factors:
- total runs under-projected by 4 (7 vs 11)
- CHW offense under-projected by 3
- committed to STL at 0.18 confidence and it lost
CIN@MIL — ✅ hit
- Predicted MIL 6-10 (conf +0.08, lean) · actual MIL 9-13
- Root cause: right_winner_wrong_score
- Errors: winner correct · Brier 0.2116 · team-run err 6.0 · total bias -6
- Contributing factors:
- total runs under-projected by 6 (16 vs 22)
- CIN offense under-projected by 3
- MIL offense under-projected by 3
- Shane Drohan (MIL) allowed 3 more ER than projected (5 vs 2)
CLE@MIN — ❌ miss
- Predicted CLE 6-4 (conf -0.08, lean) · actual MIN 3-4
- Root cause: Several errors of similar size
- Errors: winner WRONG · Brier 0.292863 · team-run err 3.0 · total bias +3
- Contributing factors:
- total runs over-projected by 3 (10 vs 7)
- CLE offense over-projected by 3
- Daniel Espino (CLE) allowed 3 fewer ER than projected (0 vs 3)
COL@DET — ✅ hit
- Predicted DET 4-7 (conf +0.20, moderate) · actual DET 7-11
- Root cause: right_winner_wrong_score
- Errors: winner correct · Brier 0.160881 · team-run err 7.0 · total bias -7
- Contributing factors:
- total runs under-projected by 7 (11 vs 18)
- COL offense under-projected by 3
- DET offense under-projected by 4
HOU@TB — ✅ hit
- Predicted TB 4-5 (conf +0.06, lean) · actual TB 2-3
- Root cause: solid_correct_call
- Errors: winner correct · Brier 0.219447 · team-run err 4.0 · total bias +4
- Contributing factors:
- total runs over-projected by 4 (9 vs 5)
KC@BOS — ✅ hit
- Predicted BOS 4-6 (conf +0.06, lean) · actual BOS 1-5
- Root cause: solid_correct_call
- Errors: winner correct · Brier 0.2209 · team-run err 4.0 · total bias +4
- Contributing factors:
- total runs over-projected by 4 (10 vs 6)
- KC offense over-projected by 3
LAA@WAS — ❌ miss
- Predicted LAA 4-3 (conf -0.01, toss_up) · actual WAS 5-6
- Root cause: Genuine toss-up that flipped
- Secondary cause: Small edge on the losing side
- Errors: winner WRONG · Brier 0.25568 · team-run err 4.0 · total bias -4
- Contributing factors:
- total runs under-projected by 4 (7 vs 11)
- WAS offense under-projected by 3
- Walbert Ureña (LAA) allowed 3 more ER than projected (4 vs 1)
LAD@MIA — ❌ miss
- Predicted LAD 7-4 (conf -0.20, strong) · actual MIA 3-4
- Root cause: Starting-pitcher projection was wrong
- Secondary cause: Backed the wrong side with real conviction
- Errors: winner WRONG · Brier 0.36 · team-run err 4.0 · total bias +4
- Contributing factors:
- total runs over-projected by 4 (11 vs 7)
- LAD offense over-projected by 4
- Tyler Glasnow (LAD) allowed 4 more ER than projected (4 vs 0)
- committed to LAD at 0.20 confidence and it lost
NYM@NYY — ❌ miss
- Predicted NYY 5-7 (conf +0.08, lean) · actual NYM 12-2
- Root cause: Small edge on the losing side
- Errors: winner WRONG · Brier 0.290715 · team-run err 12.0 · total bias -2
- Contributing factors:
- NYM offense under-projected by 7
- NYY offense over-projected by 5
PHI@ATL — ❌ miss
- Predicted PHI 4-3 (conf -0.01, toss_up) · actual ATL 2-12
- Root cause: Run environment far higher than projected (under-dispersed)
- Secondary cause: Genuine toss-up that flipped
- Errors: winner WRONG · Brier 0.255025 · team-run err 11.0 · total bias -7
- Contributing factors:
- total runs under-projected by 7 (7 vs 14)
- ATL offense under-projected by 9
PIT@CHC — ✅ hit
- Predicted CHC 4-5 (conf +0.06, lean) · actual CHC 3-4
- Root cause: solid_correct_call
- Errors: winner correct · Brier 0.2209 · team-run err 2.0 · total bias +2
SD@SF — ✅ hit
- Predicted SD 5-4 (conf -0.01, toss_up) · actual SD 7-6
- Root cause: toss_up_went_our_way
- Errors: winner correct · Brier 0.245025 · team-run err 4.0 · total bias -4
- Contributing factors:
- total runs under-projected by 4 (9 vs 13)
- Cesar Perdomo (SF) allowed 3 more ER than projected (5 vs 2)
SEA@OAK — ✅ hit
- Predicted SEA 6-5 (conf -0.05, lean) · actual SEA 19-1
- Root cause: right_winner_wrong_score
- Errors: winner correct · Brier 0.22565 · team-run err 17.0 · total bias -9
- Contributing factors:
- total runs under-projected by 9 (11 vs 20)
- SEA offense under-projected by 13
- OAK offense over-projected by 4
TEX@ARI — ❌ miss
- Predicted ARI 4-5 (conf +0.12, moderate) · actual TEX 6-2
- Root cause: Starting-pitcher projection was wrong
- Secondary cause: Backed the wrong side with real conviction
- Errors: winner WRONG · Brier 0.312417 · team-run err 5.0 · total bias +1
- Contributing factors:
- ARI offense over-projected by 3
- Kumar Rocker (TEX) allowed 4 fewer ER than projected (1 vs 5)
- committed to ARI at 0.12 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: 3 helped vs 1 hurt
- Would help:
- CHW@STL (miss): lost a 0.18-confidence pick; wider tails lower overconfidence
- LAD@MIA (miss): lost a 0.20-confidence pick; wider tails lower overconfidence
- TEX@ARI (miss): lost a 0.12-confidence pick; wider tails lower overconfidence
- Would hurt / risk:
- COL@DET (hit): strong correct call at 0.20; widening softens a good edge
player.pitcher.v4 form weights / player.pitcher_prior_games
- Targets: starter_er_mae, starter_outs_mae
- Net: 6 helped vs 3 hurt
- Would help:
- CIN@MIL (hit): starter ER off by 3
- CLE@MIN (miss): starter ER off by 3
- LAA@WAS (miss): starter ER off by 3
- LAD@MIA (miss): starter ER off by 4
- SD@SF (hit): starter ER off by 3
- TEX@ARI (miss): starter ER off by 4
- Would hurt / risk:
- CHW@STL (miss): starter projection was accurate (ER off 1); reweight risks disturbing it
- COL@DET (hit): starter projection was accurate (ER off 1); reweight risks disturbing it
- PIT@CHC (hit): 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:
- CHW@STL (miss): team runs off by 4
- CIN@MIL (hit): team runs off by 6
- COL@DET (hit): team runs off by 7
- HOU@TB (hit): team runs off by 4
- KC@BOS (hit): team runs off by 4
- LAA@WAS (miss): team runs off by 4
- LAD@MIA (miss): team runs off by 4
- NYM@NYY (miss): team runs off by 12
- PHI@ATL (miss): team runs off by 11
- SD@SF (hit): team runs off by 4
- SEA@OAK (hit): team runs off by 17
- TEX@ARI (miss): team runs off by 5
- Would hurt / risk:
- PIT@CHC (hit): team runs already close (off 2); reweight risks disturbing it