Deep slate diagnosis — 20260927
- Games: 14 · hits 9 · misses 5 · winner accuracy 0.6429
- Mean total-run bias on losses: 0.0 (negative = under-projected)
- Mean team-run error on losses: 4.8 · mean Brier on losses: 0.29
Loss primary drivers
- Small edge on the losing side: 1
- Run environment far lower than projected (over-dispersed): 1
- Genuine toss-up that flipped: 2
- 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: TB@PHI - 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] Blocking canonical artifact error
- Domain:
artifact_integrity· affected: 20260927_CHC@BOS - Evidence: structural audit totals: {'critical': 0, 'error': 2, 'warning': 1, 'info': 111}
- Action: Exclude this slate from parameter learning until the artifact-generation step that wrote the broken file is fixed.
- Do not infer: A malformed artifact is a file bug, not proof the prediction model was wrong; do not blame accuracy changes on it.
[HIGH] Published margins are compressed relative to realized margins
- Domain:
score_distribution· affected: ARI@SD, CHC@BOS, CIN@TOR, HOU@OAK, TB@PHI - Evidence: 11/14 predictions were ≤2 runs; 7/14 actual margins were ≥4; mean predicted margin 1.79 vs actual 3.36
- 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] Validated run models explain very little holdout variance
- Domain:
model_validation· affected: ARI@SD, ATL@MIA, CHC@BOS, CIN@TOR, CLE@KC, COL@CHW, HOU@OAK, LAA@SEA, LAD@SF, NYM@WAS, PIT@DET, STL@MIL, TB@PHI, TEX@MIN - Evidence: home/away/total R² = 0.0021/0.0309/0.0024
- 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: ARI@SD, ATL@MIA, CHC@BOS, CIN@TOR, CLE@KC, COL@CHW, HOU@OAK, LAA@SEA, LAD@SF, NYM@WAS, PIT@DET, STL@MIL, TB@PHI, TEX@MIN - Evidence: 15/14 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: ARI@SD, ATL@MIA, CHC@BOS, CIN@TOR, CLE@KC, COL@CHW, HOU@OAK, LAA@SEA, LAD@SF, NYM@WAS, PIT@DET, STL@MIL, TB@PHI, TEX@MIN - 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: 20260917, 20260918, 20260919, 20260920, 20260921, 20260922, 20260923, 20260924, 20260925, 20260926, 20260927 (10 prior slates loaded)
- Highest-confidence pick loss streak: 0 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: improving · series [0.4444, 0.6667, 0.7333, 0.6, 0.3333, 0.4, 0.5, 0.6667, 0.6471, 0.5385, 0.6429]weighted_calibration_error: improving · series [0.1016, 0.1247, 0.3458, 0.3184, 0.2028, 0.1881, 0.1108, 0.1701, 0.1302, 0.1524, 0.1031]margin_bias: improving · series [-2.111, -2.0, -0.667, -1.533, -2.667, -1.867, -1.188, -1.083, -1.706, -3.0, -1.571]mean_team_run_error_on_losses: improving · series [3.6, 5.2, 6.5, 6.5, 3.0, 6.222, 5.75, 3.5, 5.333, 6.167, 4.8]
Pipeline stage quality
historical_ml: winner 8/14 (0.5714), team-run MAE 1.7001, margin MAE 2.8805variance_applied: winner 8/14 (0.5714), team-run MAE 1.6786, margin MAE 2.7857enhanced_prediction: winner 9/14 (0.6429), team-run MAE 1.8571, margin MAE 3.0embedded_savant_run_environment: winner 9/14 (0.6429), team-run MAE 1.8929, margin MAE 2.9286fundamental_edge_target_review: winner 9/14 (0.6429), team-run MAE 1.9286, margin MAE 3.0capped_target: winner 9/14 (0.6429), team-run MAE 1.9286, margin MAE 3.0simulation_result: winner 9/14 (0.6429), team-run MAE 1.9286, margin MAE 3.0published_final: winner 9/14 (0.6429), team-run MAE 1.9286, margin MAE 3.0
Probability lineage
- ARI@SD: raw 0.5176 → calibrated 0.5127 → published 0.5108; published probability matches the calibrated/governed value
- ATL@MIA: raw 0.5071 → calibrated 0.505 → published 0.505; published probability matches the calibrated/governed value
- CHC@BOS: raw 0.5 → calibrated 0.5071 → published 0.5051; published probability matches the calibrated/governed value
- CIN@TOR: raw 0.5332 → calibrated 0.5212 → published 0.5116; score coherence followed by matchup-recency guardrail
- CLE@KC: raw 0.6363 → calibrated 0.6785 → published 0.56; score coherence followed by matchup-recency guardrail
- COL@CHW: raw 0.6596 → calibrated 0.6745 → published 0.56; score coherence followed by matchup-recency guardrail
- HOU@OAK: raw 0.6674 → calibrated 0.6476 → published 0.56; score coherence followed by matchup-recency guardrail
- LAA@SEA: raw 0.6485 → calibrated 0.5973 → published 0.56; score coherence followed by matchup-recency guardrail
- LAD@SF: raw 0.7304 → calibrated 0.6405 → published 0.58; score coherence followed by matchup-recency guardrail
- NYM@WAS: raw 0.6402 → calibrated 0.6055 → published 0.5306; score coherence followed by matchup-recency guardrail
- PIT@DET: raw 0.5182 → calibrated 0.5131 → published 0.505; score coherence followed by matchup-recency guardrail
- STL@MIL: raw 0.7139 → calibrated 0.6314 → published 0.58; score coherence followed by matchup-recency guardrail
- TB@PHI: raw 0.5 → calibrated 0.6056 → published 0.5756; no recorded transformation explains the publication delta
- TEX@MIN: raw 0.5247 → calibrated 0.5166 → published 0.512; published probability matches the calibrated/governed value
Every game, in detail
ARI@SD — ❌ miss
- Predicted ARI 6-4 (conf -0.02, toss_up) · actual SD 4-9
- Root cause: Genuine toss-up that flipped
- Secondary cause: Small edge on the losing side
- Errors: winner WRONG · Brier 0.260932 · team-run err 7.0 · total bias -3
- Contributing factors:
- total runs under-projected by 3 (10 vs 13)
- SD offense under-projected by 5
ATL@MIA — ✅ hit
- Predicted MIA 4-5 (conf +0.01, toss_up) · actual MIA 3-5
- Root cause: toss_up_went_our_way
- Errors: winner correct · Brier 0.245025 · team-run err 1.0 · total bias +1
CHC@BOS — ✅ hit
- Predicted CHC 4-3 (conf -0.01, toss_up) · actual CHC 6-2
- Root cause: toss_up_went_our_way
- Errors: winner correct · Brier 0.244878 · team-run err 3.0 · total bias -1
CIN@TOR — ✅ hit
- Predicted TOR 4-5 (conf +0.02, toss_up) · actual TOR 1-5
- Root cause: toss_up_went_our_way
- Errors: winner correct · Brier 0.238543 · team-run err 3.0 · total bias +3
- Contributing factors:
- total runs over-projected by 3 (9 vs 6)
- CIN offense over-projected by 3
- Brandon Williamson (CIN) allowed 3 more ER than projected (4 vs 1)
- Max Scherzer (TOR) allowed 3 fewer ER than projected (1 vs 4)
CLE@KC — ❌ miss
- Predicted CLE 6-4 (conf -0.12, moderate) · actual KC 2-3
- Root cause: Run environment far lower than projected (over-dispersed)
- Secondary cause: Backed the wrong side with real conviction
- Errors: winner WRONG · Brier 0.3136 · team-run err 5.0 · total bias +5
- Contributing factors:
- total runs over-projected by 5 (10 vs 5)
- CLE offense over-projected by 4
- committed to CLE at 0.12 confidence and it lost
COL@CHW — ✅ hit
- Predicted CHW 5-8 (conf +0.12, moderate) · actual CHW 2-4
- Root cause: right_winner_wrong_score
- Errors: winner correct · Brier 0.1936 · team-run err 7.0 · total bias +7
- Contributing factors:
- total runs over-projected by 7 (13 vs 6)
- COL offense over-projected by 3
- CHW offense over-projected by 4
HOU@OAK — ✅ hit
- Predicted HOU 8-6 (conf -0.12, moderate) · actual HOU 9-0
- Root cause: right_winner_wrong_score
- Errors: winner correct · Brier 0.1936 · team-run err 7.0 · total bias +5
- Contributing factors:
- total runs over-projected by 5 (14 vs 9)
- OAK offense over-projected by 6
- Peter Lambert (HOU) allowed 4 fewer ER than projected (0 vs 4)
- Seth Johnson (OAK) allowed 7 fewer ER than projected (0 vs 7)
LAA@SEA — ✅ hit
- Predicted SEA 3-5 (conf +0.12, moderate) · actual SEA 3-7
- Root cause: strong_correct_call
- Errors: winner correct · Brier 0.1936 · team-run err 2.0 · total bias -2
LAD@SF — ✅ hit
- Predicted LAD 6-3 (conf -0.16, moderate) · actual LAD 5-1
- Root cause: strong_correct_call
- Errors: winner correct · Brier 0.1764 · team-run err 3.0 · total bias +3
- Contributing factors:
- total runs over-projected by 3 (9 vs 6)
- Carson Seymour (SF) allowed 4 fewer ER than projected (0 vs 4)
NYM@WAS — ❌ miss
- Predicted NYM 7-5 (conf -0.06, lean) · actual WAS 4-6
- Root cause: Small edge on the losing side
- Errors: winner WRONG · Brier 0.281491 · team-run err 4.0 · total bias +2
- Contributing factors:
- NYM offense over-projected by 3
PIT@DET — ✅ hit
- Predicted PIT 4-3 (conf -0.01, toss_up) · actual PIT 4-2
- Root cause: toss_up_went_our_way
- Errors: winner correct · Brier 0.245025 · team-run err 1.0 · total bias +1
STL@MIL — ✅ hit
- Predicted MIL 2-5 (conf +0.16, moderate) · actual MIL 4-6
- Root cause: strong_correct_call
- Errors: winner correct · Brier 0.1764 · team-run err 3.0 · total bias -3
- Contributing factors:
- total runs under-projected by 3 (7 vs 10)
TB@PHI — ❌ miss
- Predicted TB 4-3 (conf -0.15, moderate) · actual PHI 3-7
- Root cause: Backed the wrong side with real conviction
- Secondary cause: Small edge on the losing side
- Errors: winner WRONG · Brier 0.331361 · team-run err 5.0 · total bias -3
- Contributing factors:
- total runs under-projected by 3 (7 vs 10)
- PHI offense under-projected by 4
- committed to TB at 0.15 confidence and it lost
TEX@MIN — ❌ miss
- Predicted TEX 5-4 (conf -0.02, toss_up) · actual MIN 4-6
- Root cause: Genuine toss-up that flipped
- Errors: winner WRONG · Brier 0.262113 · team-run err 3.0 · total bias -1
- Contributing factors:
- MacKenzie Gore (TEX) allowed 3 fewer ER than projected (1 vs 4)
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: 2 helped vs 0 hurt
- Would help:
- CLE@KC (miss): lost a 0.12-confidence pick; wider tails lower overconfidence
- TB@PHI (miss): lost a 0.15-confidence pick; wider tails lower overconfidence
player.pitcher.v4 form weights / player.pitcher_prior_games
- Targets: starter_er_mae, starter_outs_mae
- Net: 4 helped vs 5 hurt
- Would help:
- CIN@TOR (hit): starter ER off by 3
- HOU@OAK (hit): starter ER off by 7
- LAD@SF (hit): starter ER off by 4
- TEX@MIN (miss): starter ER off by 3
- Would hurt / risk:
- ARI@SD (miss): starter projection was accurate (ER off 0); reweight risks disturbing it
- CHC@BOS (hit): starter projection was accurate (ER off 1); reweight risks disturbing it
- LAA@SEA (hit): starter projection was accurate (ER off 1); reweight risks disturbing it
- NYM@WAS (miss): starter projection was accurate (ER off 1); reweight risks disturbing it
- PIT@DET (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: 6 helped vs 3 hurt
- Would help:
- ARI@SD (miss): team runs off by 7
- CLE@KC (miss): team runs off by 5
- COL@CHW (hit): team runs off by 7
- HOU@OAK (hit): team runs off by 7
- NYM@WAS (miss): team runs off by 4
- TB@PHI (miss): team runs off by 5
- Would hurt / risk:
- ATL@MIA (hit): team runs already close (off 1); reweight risks disturbing it
- LAA@SEA (hit): team runs already close (off 2); reweight risks disturbing it
- PIT@DET (hit): team runs already close (off 1); reweight risks disturbing it