Deep slate diagnosis — 20260903
- Games: 9 · hits 5 · misses 4 · winner accuracy 0.5556
- Mean total-run bias on losses: 2.75 (negative = under-projected)
- Mean team-run error on losses: 6.75 · mean Brier on losses: 0.319
Loss primary drivers
- Small edge on the losing side: 2
- Starting-pitcher projection was wrong: 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: MIA@KC - 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': 1, 'info': 68}
- 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] Validated run models explain very little holdout variance
- Domain:
model_validation· affected: BOS@BAL, CHW@HOU, MIA@KC, MIL@CHC, OAK@SEA, SF@PIT, STL@LAD, TB@TEX, TOR@CLE - Evidence: home/away/total R² = 0.0234/0.0268/0.0262
- 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: BOS@BAL, CHW@HOU, MIA@KC, MIL@CHC, OAK@SEA, SF@PIT, STL@LAD, TB@TEX, TOR@CLE - Evidence: 9/9 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: BOS@BAL, CHW@HOU, MIA@KC, MIL@CHC, OAK@SEA, SF@PIT, STL@LAD, TB@TEX, 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, 20260903 (6 prior slates loaded)
- Highest-confidence pick loss streak: 3 slate(s)
- Actionable pattern detected: True
Escalated persistent patterns
- simulation_inert_on_slate — 7 consecutive slates (7 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 7 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 — 7 consecutive slates (7 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 7 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: flat · series [0.4667, 0.9412, 0.5, 0.6667, 0.4667, 0.3333, 0.5556]weighted_calibration_error: improving · series [0.2179, 0.3961, 0.0693, 0.1661, 0.2476, 0.21, 0.1474]margin_bias: improving · series [-1.333, -1.882, -2.786, -3.5, -2.533, -3.067, -1.778]mean_team_run_error_on_losses: regressing · series [5.0, 3.0, 7.0, 8.25, 7.125, 6.4, 6.75]
Pipeline stage quality
historical_ml: winner 5/9 (0.5556), team-run MAE 2.0006, margin MAE 2.7246variance_applied: winner 4/9 (0.4444), team-run MAE 2.0556, margin MAE 2.7778enhanced_prediction: winner 5/9 (0.5556), team-run MAE 2.3333, margin MAE 2.8889embedded_savant_run_environment: winner 5/9 (0.5556), team-run MAE 2.3333, margin MAE 2.8889fundamental_edge_target_review: winner 5/9 (0.5556), team-run MAE 2.3333, margin MAE 2.8889capped_target: winner 5/9 (0.5556), team-run MAE 2.3333, margin MAE 2.8889simulation_result: winner 5/9 (0.5556), team-run MAE 2.3333, margin MAE 2.8889published_final: winner 5/9 (0.5556), team-run MAE 2.3333, margin MAE 2.8889
Probability lineage
- BOS@BAL: raw 0.5085 → calibrated 0.5082 → published 0.53; score coherence followed by matchup-recency guardrail
- CHW@HOU: raw 0.5816 → calibrated 0.5786 → published 0.5591; score coherence followed by matchup-recency guardrail
- MIA@KC: raw 0.5278 → calibrated 0.5271 → published 0.5476; no recorded transformation explains the publication delta
- MIL@CHC: raw 0.5085 → calibrated 0.5082 → published 0.5337; score coherence followed by matchup-recency guardrail
- OAK@SEA: raw 0.6086 → calibrated 0.6045 → published 0.6373; score_coherence aligned probability to the published score margin
- SF@PIT: raw 0.5085 → calibrated 0.5082 → published 0.53; score coherence followed by matchup-recency guardrail
- STL@LAD: raw 0.5816 → calibrated 0.5786 → published 0.53; score coherence followed by matchup-recency guardrail
- TB@TEX: raw 0.5085 → calibrated 0.5082 → published 0.5337; score coherence followed by matchup-recency guardrail
- TOR@CLE: raw 0.5448 → calibrated 0.5439 → published 0.5466; published probability matches the calibrated/governed value
Every game, in detail
BOS@BAL — ✅ hit
- Predicted BOS 5-4 (conf -0.06, lean) · actual BOS 6-5
- Root cause: solid_correct_call
- Errors: winner correct · Brier 0.2209 · team-run err 2.0 · total bias -2
CHW@HOU — ✅ hit
- Predicted HOU 4-5 (conf +0.12, moderate) · actual HOU 2-6
- Root cause: strong_correct_call
- Errors: winner correct · Brier 0.194379 · team-run err 3.0 · total bias +1
MIA@KC — ❌ miss
- Predicted MIA 5-4 (conf -0.10, lean) · actual KC 3-7
- Root cause: Small edge on the losing side
- Errors: winner WRONG · Brier 0.299912 · team-run err 5.0 · total bias -1
- Contributing factors:
- KC offense under-projected by 3
- Sandy Alcantara (MIA) allowed 3 more ER than projected (4 vs 1)
MIL@CHC — ❌ miss
- Predicted MIL 7-6 (conf -0.07, lean) · actual CHC 1-2
- Root cause: Starting-pitcher projection was wrong
- Secondary cause: Run environment far lower than projected (over-dispersed)
- Errors: winner WRONG · Brier 0.284821 · team-run err 10.0 · total bias +10
- Contributing factors:
- total runs over-projected by 10 (13 vs 3)
- MIL offense over-projected by 6
- CHC offense over-projected by 4
- Kevin Gausman (CHC) allowed 4 fewer ER than projected (1 vs 5)
OAK@SEA — ❌ miss
- Predicted SEA 4-6 (conf +0.27, strong) · actual OAK 7-4
- Root cause: Backed the wrong side with real conviction
- Secondary cause: Small edge on the losing side
- Errors: winner WRONG · Brier 0.406089 · team-run err 5.0 · total bias -1
- Contributing factors:
- OAK offense under-projected by 3
- committed to SEA at 0.27 confidence and it lost
SF@PIT — ✅ hit
- Predicted PIT 5-6 (conf +0.06, lean) · actual PIT 2-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 (11 vs 7)
- SF offense over-projected by 3
STL@LAD — ✅ hit
- Predicted LAD 4-5 (conf +0.06, lean) · actual LAD 2-3
- 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 (9 vs 5)
TB@TEX — ❌ miss
- Predicted TB 5-4 (conf -0.07, lean) · actual TEX 0-6
- Root cause: Small edge on the losing side
- Errors: winner WRONG · Brier 0.284821 · team-run err 7.0 · total bias +3
- Contributing factors:
- total runs over-projected by 3 (9 vs 6)
- TB offense over-projected by 5
- Cal Quantrill (TEX) allowed 3 fewer ER than projected (0 vs 3)
TOR@CLE — ✅ hit
- Predicted TOR 4-3 (conf -0.09, lean) · actual TOR 6-3
- Root cause: solid_correct_call
- Errors: winner correct · Brier 0.205614 · team-run err 2.0 · total bias -2
- Contributing factors:
- José Soriano (TOR) allowed 3 more ER than projected (3 vs 0)
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: 1 helped vs 0 hurt
- Would help:
- OAK@SEA (miss): lost a 0.27-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 3 hurt
- Would help:
- MIA@KC (miss): starter ER off by 3
- MIL@CHC (miss): starter ER off by 4
- TB@TEX (miss): starter ER off by 3
- TOR@CLE (hit): starter ER off by 3
- Would hurt / risk:
- BOS@BAL (hit): starter projection was accurate (ER off 1); reweight risks disturbing it
- OAK@SEA (miss): starter projection was accurate (ER off 1); reweight risks disturbing it
- SF@PIT (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 2 hurt
- Would help:
- MIA@KC (miss): team runs off by 5
- MIL@CHC (miss): team runs off by 10
- OAK@SEA (miss): team runs off by 5
- SF@PIT (hit): team runs off by 4
- STL@LAD (hit): team runs off by 4
- TB@TEX (miss): team runs off by 7
- Would hurt / risk:
- BOS@BAL (hit): team runs already close (off 2); reweight risks disturbing it
- TOR@CLE (hit): team runs already close (off 2); reweight risks disturbing it