Deep slate diagnosis — 20260907
- Games: 11 · hits 6 · misses 5 · winner accuracy 0.5455
- Mean total-run bias on losses: -1.0 (negative = under-projected)
- Mean team-run error on losses: 3.8 · mean Brier on losses: 0.354
Loss primary drivers
- Small edge on the losing side: 1
- Several errors of similar size: 1
- Backed the wrong side with real conviction: 3
High-level causal issue register
[CRITICAL] Published probability differs materially without a recorded transformation
- Domain:
probability_lineage· affected: ARI@KC, CIN@LAD, LAA@BOS, NYM@MIA - Evidence: 4 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: ARI@KC, ATL@PHI, CHC@MIL, CIN@LAD, CLE@BAL, LAA@BOS, MIN@DET, NYM@MIA, STL@SF, TOR@OAK, WAS@SD - Evidence: weighted absolute calibration error 0.2611 across 11 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: ARI@KC, ATL@PHI, CHC@MIL, CIN@LAD, CLE@BAL, LAA@BOS, MIN@DET, NYM@MIA, STL@SF, TOR@OAK, WAS@SD - Evidence: home/away/total R² = 0.0124/0.0205/0.0184
- 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@KC, ATL@PHI, CHC@MIL, CIN@LAD, CLE@BAL, LAA@BOS, MIN@DET, NYM@MIA, STL@SF, TOR@OAK, WAS@SD - Evidence: 11/11 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@KC, ATL@PHI, CHC@MIL, CIN@LAD, CLE@BAL, LAA@BOS, MIN@DET, NYM@MIA, STL@SF, TOR@OAK, WAS@SD - 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, 20260904, 20260905, 20260906, 20260907 (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: flat · series [0.4667, 0.9412, 0.5, 0.6667, 0.4667, 0.3333, 0.5556, 0.625, 0.5333, 0.6, 0.5455]weighted_calibration_error: regressing · series [0.2179, 0.3961, 0.0693, 0.1661, 0.2476, 0.21, 0.1474, 0.1316, 0.1, 0.0937, 0.2611]margin_bias: improving · series [-1.333, -1.882, -2.786, -3.5, -2.533, -3.067, -1.778, -0.688, -1.467, -1.467, -0.182]mean_team_run_error_on_losses: improving · series [5.0, 3.0, 7.0, 8.25, 7.125, 6.4, 6.75, 6.0, 5.286, 5.333, 3.8]
Pipeline stage quality
historical_ml: winner 6/11 (0.5455), team-run MAE 1.5782, margin MAE 2.195variance_applied: winner 5/11 (0.4545), team-run MAE 1.5909, margin MAE 2.0909enhanced_prediction: winner 6/11 (0.5455), team-run MAE 1.8182, margin MAE 2.0embedded_savant_run_environment: winner 6/11 (0.5455), team-run MAE 1.9091, margin MAE 2.1818fundamental_edge_target_review: winner 6/11 (0.5455), team-run MAE 1.9091, margin MAE 2.1818capped_target: winner 6/11 (0.5455), team-run MAE 1.9091, margin MAE 2.1818simulation_result: winner 6/11 (0.5455), team-run MAE 1.9091, margin MAE 2.1818published_final: winner 6/11 (0.5455), team-run MAE 1.9091, margin MAE 2.1818
Probability lineage
- ARI@KC: raw 0.5978 → calibrated 0.618 → published 0.5796; no recorded transformation explains the publication delta
- ATL@PHI: raw 0.5995 → calibrated 0.5565 → published 0.53; score coherence followed by matchup-recency guardrail
- CHC@MIL: raw 0.504 → calibrated 0.508 → published 0.5068; published probability matches the calibrated/governed value
- CIN@LAD: raw 0.5322 → calibrated 0.5751 → published 0.5326; no recorded transformation explains the publication delta
- CLE@BAL: raw 0.5133 → calibrated 0.5107 → published 0.5078; published probability matches the calibrated/governed value
- LAA@BOS: raw 0.6371 → calibrated 0.6539 → published 0.6231; no recorded transformation explains the publication delta
- MIN@DET: raw 0.5258 → calibrated 0.5675 → published 0.53; score coherence followed by matchup-recency guardrail
- NYM@MIA: raw 0.582 → calibrated 0.5477 → published 0.5208; no recorded transformation explains the publication delta
- STL@SF: raw 0.5409 → calibrated 0.6268 → published 0.6268; published probability matches the calibrated/governed value
- TOR@OAK: raw 0.7068 → calibrated 0.6996 → published 0.6996; published probability matches the calibrated/governed value
- WAS@SD: raw 0.6299 → calibrated 0.5724 → published 0.5297; score coherence followed by matchup-recency guardrail
Every game, in detail
ARI@KC — ❌ miss
- Predicted KC 3-5 (conf +0.16, moderate) · actual ARI 5-4
- Root cause: Backed the wrong side with real conviction
- Errors: winner WRONG · Brier 0.335963 · team-run err 3.0 · total bias -1
- Contributing factors:
- committed to KC at 0.16 confidence and it lost
ATL@PHI — ✅ hit
- Predicted PHI 3-4 (conf +0.06, lean) · actual PHI 0-1
- Root cause: right_winner_wrong_score
- Errors: winner correct · Brier 0.2209 · team-run err 6.0 · total bias +6
- Contributing factors:
- total runs over-projected by 6 (7 vs 1)
- ATL offense over-projected by 3
- PHI offense over-projected by 3
CHC@MIL — ✅ hit
- Predicted MIL 5-7 (conf +0.01, toss_up) · actual MIL 3-4
- Root cause: toss_up_went_our_way
- Errors: winner correct · Brier 0.243228 · team-run err 5.0 · total bias +5
- Contributing factors:
- total runs over-projected by 5 (12 vs 7)
- MIL offense over-projected by 3
- Robert Gasser (MIL) allowed 3 fewer ER than projected (1 vs 4)
CIN@LAD — ✅ hit
- Predicted LAD 5-6 (conf +0.07, lean) · actual LAD 3-6
- Root cause: solid_correct_call
- Errors: winner correct · Brier 0.218499 · team-run err 2.0 · total bias +2
- Contributing factors:
- Chase Burns (CIN) allowed 3 fewer ER than projected (0 vs 3)
CLE@BAL — ✅ hit
- Predicted BAL 3-4 (conf +0.02, toss_up) · actual BAL 4-6
- Root cause: toss_up_went_our_way
- Errors: winner correct · Brier 0.242295 · team-run err 3.0 · total bias -3
- Contributing factors:
- total runs under-projected by 3 (7 vs 10)
LAA@BOS — ✅ hit
- Predicted BOS 3-5 (conf +0.25, strong) · actual BOS 2-5
- Root cause: strong_correct_call
- Errors: winner correct · Brier 0.142016 · team-run err 1.0 · total bias +1
MIN@DET — ❌ miss
- Predicted MIN 5-4 (conf -0.06, lean) · actual DET 4-5
- Root cause: Several errors of similar size
- Errors: winner WRONG · Brier 0.2809 · team-run err 2.0 · total bias +0
NYM@MIA — ❌ miss
- Predicted MIA 4-5 (conf +0.04, lean) · actual NYM 9-4
- Root cause: Small edge on the losing side
- Errors: winner WRONG · Brier 0.271202 · team-run err 6.0 · total bias -4
- Contributing factors:
- total runs under-projected by 4 (9 vs 13)
- NYM offense under-projected by 5
STL@SF — ❌ miss
- Predicted STL 7-5 (conf -0.25, strong) · actual SF 4-5
- Root cause: Backed the wrong side with real conviction
- Errors: winner WRONG · Brier 0.392833 · team-run err 3.0 · total bias +3
- Contributing factors:
- total runs over-projected by 3 (12 vs 9)
- STL offense over-projected by 3
- Logan Webb (SF) allowed 3 fewer ER than projected (1 vs 4)
- committed to STL at 0.25 confidence and it lost
TOR@OAK — ❌ miss
- Predicted TOR 6-2 (conf -0.40, strong) · actual OAK 5-6
- Root cause: Backed the wrong side with real conviction
- Secondary cause: Small edge on the losing side
- Errors: winner WRONG · Brier 0.489381 · team-run err 5.0 · total bias -3
- Contributing factors:
- total runs under-projected by 3 (8 vs 11)
- OAK offense under-projected by 4
- committed to TOR at 0.40 confidence and it lost
WAS@SD — ✅ hit
- Predicted SD 5-6 (conf +0.06, lean) · actual SD 2-3
- Root cause: right_winner_wrong_score
- Errors: winner correct · Brier 0.221225 · team-run err 6.0 · total bias +6
- Contributing factors:
- total runs over-projected by 6 (11 vs 5)
- WAS offense over-projected by 3
- SD offense over-projected by 3
- Nick Pivetta (SD) allowed 4 fewer ER than projected (0 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: 3 helped vs 1 hurt
- Would help:
- ARI@KC (miss): lost a 0.16-confidence pick; wider tails lower overconfidence
- STL@SF (miss): lost a 0.25-confidence pick; wider tails lower overconfidence
- TOR@OAK (miss): lost a 0.40-confidence pick; wider tails lower overconfidence
- Would hurt / risk:
- LAA@BOS (hit): strong correct call at 0.25; widening softens a good edge
player.pitcher.v4 form weights / player.pitcher_prior_games
- Targets: starter_er_mae, starter_outs_mae
- Net: 4 helped vs 0 hurt
- Would help:
- CHC@MIL (hit): starter ER off by 3
- CIN@LAD (hit): starter ER off by 3
- STL@SF (miss): starter ER off by 3
- WAS@SD (hit): starter ER off by 4
recent. / season. run-mean weighting
- Targets: team_run_mae, total_run_mae, accuracy
- Net: 5 helped vs 3 hurt
- Would help:
- ATL@PHI (hit): team runs off by 6
- CHC@MIL (hit): team runs off by 5
- NYM@MIA (miss): team runs off by 6
- TOR@OAK (miss): team runs off by 5
- WAS@SD (hit): team runs off by 6
- Would hurt / risk:
- CIN@LAD (hit): team runs already close (off 2); reweight risks disturbing it
- LAA@BOS (hit): team runs already close (off 1); reweight risks disturbing it
- MIN@DET (miss): team runs already close (off 2); reweight risks disturbing it