Deep slate diagnosis — 20260830
- Games: 14 · hits 7 · misses 7 · winner accuracy 0.5
- Mean total-run bias on losses: -0.714 (negative = under-projected)
- Mean team-run error on losses: 7.0 · mean Brier on losses: 0.329
Loss primary drivers
- Small edge on the losing side: 1
- Run environment far lower than projected (over-dispersed): 1
- Starting-pitcher projection was wrong: 2
- 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: CHW@MIN - 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': 100}
- 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] An intermediate stage materially degraded winner direction
- Domain:
pipeline_stages· affected: BAL@OAK, PIT@STL - Evidence: historical_ml → variance_applied changed winner accuracy by -0.1429 (-2 hits)
- Action: List the exact games whose winner flipped at this stage, and keep both the before-stage and after-stage picks in the trace.
- Do not infer: Even if a later stage recovers the pick, this unstable step is still a risk; do not treat it as harmless.
[HIGH] Validated run models explain very little holdout variance
- Domain:
model_validation· affected: BAL@OAK, BOS@NYY, CHW@MIN, CIN@CHC, COL@ATL, HOU@NYM, KC@CLE, LAD@DET, MIA@WAS, PHI@LAA, PIT@STL, SD@TB, SEA@TOR, TEX@MIL - Evidence: home/away/total R² = 0.0429/0.0253/0.0224
- 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.
[MEDIUM] Most high-raw picks lost before/after shrinkage
- Domain:
calibration· affected: CHW@MIN, CIN@CHC, PHI@LAA - Evidence: 1/3 games with raw pick probability ≥0.65 won
- Action: Track how often high-raw-probability picks lose across multiple slates, and keep the raw to calibrated to published lineage.
- Do not infer: This one slate is not enough to justify a new per-bucket shrinkage rule.
[INFO] Every settled game received structural QA
- Domain:
coverage· affected: BAL@OAK, BOS@NYY, CHW@MIN, CIN@CHC, COL@ATL, HOU@NYM, KC@CLE, LAD@DET, MIA@WAS, PHI@LAA, PIT@STL, SD@TB, SEA@TOR, TEX@MIL - Evidence: 14/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: BAL@OAK, BOS@NYY, CHW@MIN, CIN@CHC, COL@ATL, HOU@NYM, KC@CLE, LAD@DET, MIA@WAS, PHI@LAA, PIT@STL, SD@TB, SEA@TOR, TEX@MIL - 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 (2 prior slates loaded)
- Highest-confidence pick loss streak: 1 slate(s)
- Actionable pattern detected: True
Escalated persistent patterns
- simulation_inert_on_slate — 3 consecutive slates (3 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 3 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 — 3 consecutive slates (3 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 3 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.4667, 0.9412, 0.5]weighted_calibration_error: improving · series [0.2179, 0.3961, 0.0693]margin_bias: regressing · series [-1.333, -1.882, -2.786]mean_team_run_error_on_losses: regressing · series [5.0, 3.0, 7.0]
Pipeline stage quality
historical_ml: winner 7/14 (0.5), team-run MAE 2.4184, margin MAE 4.4881variance_applied: winner 5/14 (0.3571), team-run MAE 2.3929, margin MAE 4.5enhanced_prediction: winner 7/14 (0.5), team-run MAE 2.5, margin MAE 4.7143embedded_savant_run_environment: winner 7/14 (0.5), team-run MAE 2.4643, margin MAE 4.6429fundamental_edge_target_review: winner 7/14 (0.5), team-run MAE 2.4643, margin MAE 4.6429capped_target: winner 7/14 (0.5), team-run MAE 2.4643, margin MAE 4.6429simulation_result: winner 7/14 (0.5), team-run MAE 2.4643, margin MAE 4.6429published_final: winner 7/14 (0.5), team-run MAE 2.4643, margin MAE 4.6429
Probability lineage
- BAL@OAK: raw 0.568 → calibrated 0.5662 → published 0.5514; score coherence followed by matchup-recency guardrail
- BOS@NYY: raw 0.5085 → calibrated 0.5082 → published 0.53; score coherence followed by matchup-recency guardrail
- CHW@MIN: raw 0.7341 → calibrated 0.7117 → published 0.6867; no recorded transformation explains the publication delta
- CIN@CHC: raw 0.7597 → calibrated 0.7444 → published 0.56; score coherence followed by matchup-recency guardrail
- COL@ATL: raw 0.6332 → calibrated 0.6277 → published 0.58; score coherence followed by matchup-recency guardrail
- HOU@NYM: raw 0.5311 → calibrated 0.5303 → published 0.5416; score coherence followed by matchup-recency guardrail
- KC@CLE: raw 0.5085 → calibrated 0.5082 → published 0.53; score coherence followed by matchup-recency guardrail
- LAD@DET: raw 0.551 → calibrated 0.5498 → published 0.5487; published probability matches the calibrated/governed value
- MIA@WAS: raw 0.5947 → calibrated 0.5913 → published 0.5749; no recorded transformation explains the publication delta
- PHI@LAA: raw 0.67 → calibrated 0.6609 → published 0.6655; score_coherence aligned probability to the published score margin
- PIT@STL: raw 0.5838 → calibrated 0.5804 → published 0.5597; score coherence followed by matchup-recency guardrail
- SD@TB: raw 0.5085 → calibrated 0.5082 → published 0.5337; score coherence followed by matchup-recency guardrail
- SEA@TOR: raw 0.5085 → calibrated 0.5082 → published 0.53; score coherence followed by matchup-recency guardrail
- TEX@MIL: raw 0.6332 → calibrated 0.6277 → published 0.5768; score coherence followed by matchup-recency guardrail
Every game, in detail
BAL@OAK — ✅ hit
- Predicted BAL 8-6 (conf -0.10, moderate) · actual BAL 8-5
- Root cause: strong_correct_call
- Errors: winner correct · Brier 0.201245 · team-run err 1.0 · total bias +1
BOS@NYY — ❌ miss
- Predicted BOS 5-4 (conf -0.06, lean) · actual NYY 1-16
- Root cause: Starting-pitcher projection was wrong
- Secondary cause: Run environment far higher than projected (under-dispersed)
- Errors: winner WRONG · Brier 0.2809 · team-run err 16.0 · total bias -8
- Contributing factors:
- total runs under-projected by 8 (9 vs 17)
- BOS offense over-projected by 4
- NYY offense under-projected by 12
- Ranger Suarez (BOS) allowed 3 more ER than projected (6 vs 3)
- Will Warren (NYY) allowed 4 fewer ER than projected (1 vs 5)
CHW@MIN — ❌ miss
- Predicted CHW 7-4 (conf -0.37, strong) · actual MIN 1-5
- Root cause: Run environment far lower than projected (over-dispersed)
- Secondary cause: Backed the wrong side with real conviction
- Errors: winner WRONG · Brier 0.471521 · team-run err 7.0 · total bias +5
- Contributing factors:
- total runs over-projected by 5 (11 vs 6)
- CHW offense over-projected by 6
- Zebby Matthews (MIN) allowed 3 fewer ER than projected (1 vs 4)
- committed to CHW at 0.37 confidence and it lost
CIN@CHC — ❌ miss
- Predicted CHC 4-7 (conf +0.12, moderate) · actual CIN 7-5
- Root cause: Backed the wrong side with real conviction
- Secondary cause: Small edge on the losing side
- Errors: winner WRONG · Brier 0.3136 · team-run err 5.0 · total bias -1
- Contributing factors:
- CIN offense under-projected by 3
- Shota Imanaga (CHC) allowed 3 more ER than projected (6 vs 3)
- committed to CHC at 0.12 confidence and it lost
COL@ATL — ✅ hit
- Predicted ATL 3-6 (conf +0.16, moderate) · actual ATL 2-3
- Root cause: solid_correct_call
- Errors: winner correct · Brier 0.1764 · team-run err 4.0 · total bias +4
- Contributing factors:
- total runs over-projected by 4 (9 vs 5)
- ATL offense over-projected by 3
HOU@NYM — ❌ miss
- Predicted NYM 4-5 (conf +0.08, lean) · actual HOU 6-3
- Root cause: Small edge on the losing side
- Errors: winner WRONG · Brier 0.293383 · team-run err 4.0 · total bias +0
KC@CLE — ✅ hit
- Predicted CLE 5-6 (conf +0.06, lean) · actual CLE 1-11
- Root cause: right_winner_wrong_score
- Errors: winner correct · Brier 0.2209 · team-run err 9.0 · total bias -1
- Contributing factors:
- KC offense over-projected by 4
- CLE offense under-projected by 5
- Seth Lugo (KC) allowed 7 more ER than projected (9 vs 2)
LAD@DET — ✅ hit
- Predicted LAD 4-3 (conf -0.10, lean) · actual LAD 6-1
- Root cause: solid_correct_call
- Errors: winner correct · Brier 0.203663 · team-run err 4.0 · total bias +0
MIA@WAS — ❌ miss
- Predicted WAS 3-4 (conf +0.15, moderate) · actual MIA 6-2
- Root cause: Backed the wrong side with real conviction
- Secondary cause: Small edge on the losing side
- Errors: winner WRONG · Brier 0.330554 · team-run err 5.0 · total bias -1
- Contributing factors:
- MIA offense under-projected by 3
- committed to WAS at 0.15 confidence and it lost
PHI@LAA — ✅ hit
- Predicted PHI 5-2 (conf -0.33, strong) · actual PHI 5-2
- Root cause: strong_correct_call
- Errors: winner correct · Brier 0.111918 · team-run err 0.0 · total bias +0
- Contributing factors:
- Yusei Kikuchi (LAA) allowed 3 fewer ER than projected (2 vs 5)
PIT@STL — ✅ hit
- Predicted PIT 5-4 (conf -0.12, moderate) · actual PIT 5-4
- Root cause: strong_correct_call
- Errors: winner correct · Brier 0.193821 · team-run err 0.0 · total bias +0
SD@TB — ✅ hit
- Predicted TB 3-4 (conf +0.07, lean) · actual TB 4-5
- Root cause: solid_correct_call
- Errors: winner correct · Brier 0.217457 · team-run err 2.0 · total bias -2
SEA@TOR — ❌ miss
- Predicted SEA 5-4 (conf -0.06, lean) · actual TOR 0-7
- Root cause: Starting-pitcher projection was wrong
- Secondary cause: Small edge on the losing side
- Errors: winner WRONG · Brier 0.2809 · team-run err 8.0 · total bias +2
- Contributing factors:
- SEA offense over-projected by 5
- TOR offense under-projected by 3
- Max Scherzer (TOR) allowed 4 fewer ER than projected (0 vs 4)
TEX@MIL — ❌ miss
- Predicted MIL 4-5 (conf +0.15, moderate) · actual TEX 7-4
- Root cause: Backed the wrong side with real conviction
- Secondary cause: Small edge on the losing side
- Errors: winner WRONG · Brier 0.332731 · team-run err 4.0 · total bias -2
- Contributing factors:
- TEX offense under-projected by 3
- committed to MIL at 0.15 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: 4 helped vs 1 hurt
- Would help:
- CHW@MIN (miss): lost a 0.37-confidence pick; wider tails lower overconfidence
- CIN@CHC (miss): lost a 0.12-confidence pick; wider tails lower overconfidence
- MIA@WAS (miss): lost a 0.15-confidence pick; wider tails lower overconfidence
- TEX@MIL (miss): lost a 0.15-confidence pick; wider tails lower overconfidence
- Would hurt / risk:
- PHI@LAA (hit): strong correct call at 0.33; 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:
- BOS@NYY (miss): starter ER off by 4
- CHW@MIN (miss): starter ER off by 3
- CIN@CHC (miss): starter ER off by 3
- KC@CLE (hit): starter ER off by 7
- PHI@LAA (hit): starter ER off by 3
- SEA@TOR (miss): starter ER off by 4
- Would hurt / risk:
- MIA@WAS (miss): starter projection was accurate (ER off 1); reweight risks disturbing it
- SD@TB (hit): starter projection was accurate (ER off 0); reweight risks disturbing it
- TEX@MIL (miss): 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: 10 helped vs 4 hurt
- Would help:
- BOS@NYY (miss): team runs off by 16
- CHW@MIN (miss): team runs off by 7
- CIN@CHC (miss): team runs off by 5
- COL@ATL (hit): team runs off by 4
- HOU@NYM (miss): team runs off by 4
- KC@CLE (hit): team runs off by 9
- LAD@DET (hit): team runs off by 4
- MIA@WAS (miss): team runs off by 5
- SEA@TOR (miss): team runs off by 8
- TEX@MIL (miss): team runs off by 4
- Would hurt / risk:
- BAL@OAK (hit): team runs already close (off 1); reweight risks disturbing it
- PHI@LAA (hit): team runs already close (off 0); reweight risks disturbing it
- PIT@STL (hit): team runs already close (off 0); reweight risks disturbing it
- SD@TB (hit): team runs already close (off 2); reweight risks disturbing it