Deep slate diagnosis — 20260914
- Games: 10 · hits 7 · misses 3 · winner accuracy 0.7
- Mean total-run bias on losses: 0.333 (negative = under-projected)
- Mean team-run error on losses: 6.333 · mean Brier on losses: 0.306
Loss primary drivers
- Run environment far lower than projected (over-dispersed): 1
- Run environment far higher than projected (under-dispersed): 1
- Genuine toss-up that flipped: 1
High-level causal issue register
[CRITICAL] Published probability differs materially without a recorded transformation
- Domain:
probability_lineage· affected: BAL@NYM, MIA@ARI - 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 confidence buckets were poorly aligned on this slate
- Domain:
calibration· affected: ATL@CHC, BAL@NYM, CHW@CLE, DET@TOR, LAD@CIN, MIA@ARI, NYY@MIN, SD@COL, SEA@LAA, SF@STL - Evidence: weighted absolute calibration error 0.2812 across 10 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@CHC, BAL@NYM, CHW@CLE, DET@TOR, LAD@CIN, MIA@ARI, NYY@MIN, SD@COL, SEA@LAA, SF@STL - 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: ATL@CHC, BAL@NYM, CHW@CLE, DET@TOR, LAD@CIN, MIA@ARI, NYY@MIN, SD@COL, SEA@LAA, SF@STL - Evidence: 10/10 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@CHC, BAL@NYM, CHW@CLE, DET@TOR, LAD@CIN, MIA@ARI, NYY@MIN, SD@COL, SEA@LAA, SF@STL - 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: 20260904, 20260905, 20260906, 20260907, 20260908, 20260909, 20260910, 20260911, 20260912, 20260913, 20260914 (10 prior slates loaded)
- Highest-confidence pick loss streak: 1 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.625, 0.5333, 0.6, 0.5455, 0.7333, 0.6667, 0.6, 0.6667, 0.5333, 0.6, 0.7]weighted_calibration_error: regressing · series [0.1316, 0.1, 0.0937, 0.2611, 0.1825, 0.1069, 0.1171, 0.2091, 0.1711, 0.0827, 0.2812]margin_bias: improving · series [-0.688, -1.467, -1.467, -0.182, -0.867, -2.133, -1.0, -2.933, -2.667, -1.8, -0.4]mean_team_run_error_on_losses: regressing · series [6.0, 5.286, 5.333, 3.8, 6.75, 5.6, 6.5, 5.0, 6.143, 5.0, 6.333]
Pipeline stage quality
historical_ml: winner 6/10 (0.6), team-run MAE 2.0828, margin MAE 1.8811variance_applied: winner 5/10 (0.5), team-run MAE 1.95, margin MAE 1.7enhanced_prediction: winner 7/10 (0.7), team-run MAE 2.1, margin MAE 2.0embedded_savant_run_environment: winner 6/10 (0.6), team-run MAE 2.15, margin MAE 2.3fundamental_edge_target_review: winner 7/10 (0.7), team-run MAE 2.1, margin MAE 2.2capped_target: winner 7/10 (0.7), team-run MAE 2.1, margin MAE 2.2simulation_result: winner 7/10 (0.7), team-run MAE 2.1, margin MAE 2.2published_final: winner 7/10 (0.7), team-run MAE 2.1, margin MAE 2.2
Probability lineage
- ATL@CHC: raw 0.5538 → calibrated 0.535 → published 0.5238; no recorded transformation explains the publication delta
- BAL@NYM: raw 0.6845 → calibrated 0.725 → published 0.6275; no recorded transformation explains the publication delta
- CHW@CLE: raw 0.5 → calibrated 0.5078 → published 0.5057; published probability matches the calibrated/governed value
- DET@TOR: raw 0.5 → calibrated 0.5078 → published 0.5057; published probability matches the calibrated/governed value
- LAD@CIN: raw 0.7302 → calibrated 0.7259 → published 0.58; score coherence followed by matchup-recency guardrail
- MIA@ARI: raw 0.5242 → calibrated 0.5676 → published 0.5174; no recorded transformation explains the publication delta
- NYY@MIN: raw 0.5618 → calibrated 0.6446 → published 0.57; score coherence followed by matchup-recency guardrail
- SD@COL: raw 0.6914 → calibrated 0.6705 → published 0.58; score coherence followed by matchup-recency guardrail
- SEA@LAA: raw 0.62 → calibrated 0.5674 → published 0.5276; score coherence followed by matchup-recency guardrail
- SF@STL: raw 0.5143 → calibrated 0.5113 → published 0.505; score coherence followed by matchup-recency guardrail
Every game, in detail
ATL@CHC — ✅ hit
- Predicted CHC 5-6 (conf +0.05, lean) · actual CHC 3-7
- Root cause: solid_correct_call
- Errors: winner correct · Brier 0.226744 · team-run err 3.0 · total bias +1
- Contributing factors:
- David Peterson (CHC) allowed 3 fewer ER than projected (1 vs 4)
BAL@NYM — ❌ miss
- Predicted NYM 4-7 (conf +0.26, strong) · actual BAL 2-1
- Root cause: Run environment far lower than projected (over-dispersed)
- Secondary cause: Backed the wrong side with real conviction
- Errors: winner WRONG · Brier 0.393765 · team-run err 8.0 · total bias +8
- Contributing factors:
- total runs over-projected by 8 (11 vs 3)
- NYM offense over-projected by 6
- committed to NYM at 0.26 confidence and it lost
CHW@CLE — ❌ miss
- Predicted CLE 4-5 (conf +0.01, toss_up) · actual CHW 7-3
- Root cause: Genuine toss-up that flipped
- Secondary cause: Small edge on the losing side
- Errors: winner WRONG · Brier 0.255686 · team-run err 5.0 · total bias -1
- Contributing factors:
- CHW offense under-projected by 3
- Sean Newcomb (CHW) allowed 3 fewer ER than projected (0 vs 3)
DET@TOR — ✅ hit
- Predicted DET 5-4 (conf -0.01, toss_up) · actual DET 6-5
- Root cause: toss_up_went_our_way
- Errors: winner correct · Brier 0.244378 · team-run err 2.0 · total bias -2
LAD@CIN — ✅ hit
- Predicted LAD 8-3 (conf -0.16, moderate) · actual LAD 4-1
- Root cause: right_winner_wrong_score
- Errors: winner correct · Brier 0.1764 · team-run err 6.0 · total bias +6
- Contributing factors:
- total runs over-projected by 6 (11 vs 5)
- LAD offense over-projected by 4
- Tarik Skubal (LAD) allowed 3 fewer ER than projected (0 vs 3)
- Nick Lodolo (CIN) allowed 3 fewer ER than projected (4 vs 7)
MIA@ARI — ❌ miss
- Predicted MIA 5-4 (conf -0.03, toss_up) · actual ARI 7-8
- Root cause: Run environment far higher than projected (under-dispersed)
- Secondary cause: Genuine toss-up that flipped
- Errors: winner WRONG · Brier 0.26773 · team-run err 6.0 · total bias -6
- Contributing factors:
- total runs under-projected by 6 (9 vs 15)
- ARI offense under-projected by 4
NYY@MIN — ✅ hit
- Predicted NYY 6-4 (conf -0.14, moderate) · actual NYY 8-3
- Root cause: strong_correct_call
- Errors: winner correct · Brier 0.1849 · team-run err 3.0 · total bias -1
- Contributing factors:
- Will Warren (NYY) allowed 3 fewer ER than projected (0 vs 3)
SD@COL — ✅ hit
- Predicted SD 8-5 (conf -0.16, moderate) · actual SD 8-7
- Root cause: strong_correct_call
- Errors: winner correct · Brier 0.1764 · team-run err 2.0 · total bias -2
- Contributing factors:
- Tomoyuki Sugano (COL) allowed 3 more ER than projected (6 vs 3)
SEA@LAA — ✅ hit
- Predicted LAA 5-6 (conf +0.06, lean) · actual LAA 4-6
- Root cause: solid_correct_call
- Errors: winner correct · Brier 0.223173 · team-run err 1.0 · total bias +1
- Contributing factors:
- Kade Anderson (SEA) allowed 4 more ER than projected (5 vs 1)
SF@STL — ✅ hit
- Predicted STL 4-5 (conf +0.01, toss_up) · actual STL 1-2
- Root cause: toss_up_went_our_way
- Errors: winner correct · Brier 0.245025 · team-run err 6.0 · total bias +6
- Contributing factors:
- total runs over-projected by 6 (9 vs 3)
- SF offense over-projected by 3
- STL offense over-projected by 3
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:
- BAL@NYM (miss): lost a 0.26-confidence pick; wider tails lower overconfidence
player.pitcher.v4 form weights / player.pitcher_prior_games
- Targets: starter_er_mae, starter_outs_mae
- Net: 6 helped vs 2 hurt
- Would help:
- ATL@CHC (hit): starter ER off by 3
- CHW@CLE (miss): starter ER off by 3
- LAD@CIN (hit): starter ER off by 3
- NYY@MIN (hit): starter ER off by 3
- SD@COL (hit): starter ER off by 3
- SEA@LAA (hit): starter ER off by 4
- Would hurt / risk:
- DET@TOR (hit): starter projection was accurate (ER off 1); reweight risks disturbing it
- SF@STL (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: 5 helped vs 3 hurt
- Would help:
- BAL@NYM (miss): team runs off by 8
- CHW@CLE (miss): team runs off by 5
- LAD@CIN (hit): team runs off by 6
- MIA@ARI (miss): team runs off by 6
- SF@STL (hit): team runs off by 6
- Would hurt / risk:
- DET@TOR (hit): team runs already close (off 2); reweight risks disturbing it
- SD@COL (hit): team runs already close (off 2); reweight risks disturbing it
- SEA@LAA (hit): team runs already close (off 1); reweight risks disturbing it