Which reports actually fed the diagnosis. A source shown as missing was not silently assumed.
| Source | Status | Evidence supplied | Path | Bytes |
|---|---|---|---|---|
| prediction review | loaded | official outcomes and scoring errors | /app/output/reports/prediction_review_20261001.json | 101990 |
| forensic deep audit | loaded | probability, provenance, starter and decision contracts | /app/output/reports/PREDICTION_SYSTEM_DEEP_AUDIT_20261001.json | 75617 |
| continuous learning | loaded | pipeline-stage quality, calibration, probability lineage, score distribution, and official starter comparisons | /app/output/learning/continuous_learning_daily_20261001.json | 454850 |
| detailed report | loaded | full game and simulation rendering | /app/output/reports/detailed_20261001.html | 98628 |
| ultra detailed player audit | loaded | player-level prediction trace | /app/output/reports/20261001_ultra_detailed_player_audit.html | 8732780 |
| structural audit | loaded | all invariant findings | /app/output/reports/audit_report_20261001.html | 520200 |
| integrity revision audit | missing | post-Luna remediation proof for immutable revision artifacts | /app/output/reports/audit_report_20261001_integrity_revision.html | n/a |
Deterministic findings across data integrity, model validation, calibration, score distribution, pipeline stages, simulation, and coverage. Critical is reserved for broken evidence or an unexplained contract violation; high marks material model/process risk. Each row pairs the action to take (Do this) with the wrong conclusion to avoid (Don't conclude).
| Severity | Domain | Finding and evidence | Affected | Action & guardrail |
|---|---|---|---|---|
| HIGH | score_distribution | Published margins are compressed relative to realized margins 1/1 predictions were ≤2 runs; 1/1 actual margins were ≥4; mean predicted margin 1.00 vs actual 4.00 | PHI@ATL | Do thisCheck whether predicted margins are too narrow across several recent out-of-sample slates (measuring tail coverage and margin MAE) before widening the score spread. Don't concludeA single blowout game is not a reason to widen every score prediction. |
| HIGH | calibration | Published confidence buckets were poorly aligned on this slate weighted absolute calibration error 0.4832 across 1 games | PHI@ATL | Do thisWatch the same confidence buckets over the full rolling window before changing any calibration weight. Don't concludeA single slate has far too few games to establish a stable calibration curve. |
| HIGH | model_validation | Validated run models explain very little holdout variance home/away/total R² = 0.0021/0.0309/0.0024 | PHI@ATL | Do thisTreat exact run scores as low-confidence estimates, and look for stronger features or a better target before tuning the score tails. Don't concludeA small positive R² only means the model beats guessing the average; it does not make the exact scores reliable. |
| INFO | coverage | Every settled game received structural QA 4/1 games structurally audited | PHI@ATL | Do thisKeep the per-game audit receipt in every report. Don't concludeFull audit coverage does not cancel the findings raised inside the audited games. |
| INFO | simulation | Simulation produced no winner-direction intervention on this slate flip candidates 0; published flips 0 | PHI@ATL | Do thisMeasure the simulation's contribution across rolling slates, separating score realization from winner flipping. Don't concludeZero winner flips is not a defect and does not mean the simulation did no score-reconciliation work. |
A finding that has repeated at or beyond the escalation streak is no longer single-slate noise. It carries its target registered lever and an action-oriented guardrail.
| Finding | Persistence | Target lever(s) | Direction | Guardrail |
|---|---|---|---|---|
| score_margin_compression | 3 consecutive · 5 in window | score.variance_multiplier, score.variance_floor | widen run distributions | score_margin_compression has persisted 3 consecutive slates; this is no longer single-slate noise. Treat it as an actionable pattern and propose a bounded shadow experiment against a target lever. |
| simulation_inert_on_slate | 11 consecutive · 11 in window | simulation.allow_score | confirm the simulation module is running, not silently no-oping | 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. |
| single_slate_calibration_instability | 3 consecutive · 7 in window | confidence.empirical_max_weight, confidence.base_cap, confidence.moderate_cap | increase empirical shrinkage | single_slate_calibration_instability has persisted 3 consecutive slates; this is no longer single-slate noise. Treat it as an actionable pattern and propose a bounded shadow experiment against a target lever. |
| weak_run_model_signal | 3 consecutive · 10 in window | training.xgb.n_estimators, training.xgb.max_depth, training.xgb.learning_rate | investigate features/target via isolated training backtest (manual) | 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. |
| Finding | Consecutive slates | Incidence | Present now | Fix type |
|---|---|---|---|---|
| high_raw_probability_cluster | 0 | 1/11 | no | param |
| pipeline_winner_instability | 0 | 5/11 | no | code/diagnostic |
| score_margin_compression | 3 | 5/11 | yes | param |
| simulation_inert_on_slate | 11 | 11/11 | yes | code/diagnostic |
| single_slate_calibration_instability | 3 | 7/11 | yes | param |
| weak_run_model_signal | 3 | 10/11 | yes | code/diagnostic |
| Metric | Direction | Series (old → new) |
|---|---|---|
| winner_accuracy | improving | [0.3333, 0.4, 0.5, 0.6667, 0.6471, 0.5385, 0.6429, None, 1.0, 0.75, 1.0] |
| weighted_calibration_error | regressing | [0.2028, 0.1881, 0.1108, 0.1701, 0.1302, 0.1524, 0.1031, None, 0.4792, 0.2317, 0.4832] |
| margin_bias | regressing | [-2.667, -1.867, -1.188, -1.083, -1.706, -3.0, -1.571, None, -4.25, -2.75, -3.0] |
| team_run_error_on_losses | improving | [3.0, 6.222, 5.75, 3.5, 5.333, 6.167, 4.8, None, None, 2.0, None] |
Every stored stage is scored against the same official finals. A later recovery remains visible; it does not erase an unstable intermediate flip.
| Stage | Winner hits | Accuracy | Team-run MAE | Total-run MAE | Margin MAE |
|---|---|---|---|---|---|
| historical_ml | 1/1 | 100% | 1.675 | 1.046 | 3.351 |
| variance_applied | 1/1 | 100% | 1.5 | 1 | 3 |
| enhanced_prediction | 1/1 | 100% | 1.5 | 1 | 3 |
| embedded_savant_run_environment | 1/1 | 100% | 1.5 | 1 | 3 |
| fundamental_edge_target_review | 1/1 | 100% | 1.5 | 1 | 3 |
| capped_target | 1/1 | 100% | 1.5 | 1 | 3 |
| simulation_result | 1/1 | 100% | 1.5 | 1 | 3 |
| published_final | 1/1 | 100% | 1.5 | 1 | 3 |
| Transition | Δ accuracy | Δ hits | Δ team-run MAE | Δ margin MAE | Games whose winner/tie changed |
|---|---|---|---|---|---|
| historical_ml → variance_applied | 0 | 0 | -0.1753 | -0.3506 | |
| variance_applied → enhanced_prediction | 0 | 0 | 0 | 0 | CHW@HOU: HOU → CHW |
| enhanced_prediction → embedded_savant_run_environment | 0 | 0 | 0 | 0 | |
| embedded_savant_run_environment → fundamental_edge_target_review | 0 | 0 | 0 | 0 | |
| fundamental_edge_target_review → capped_target | 0 | 0 | 0 | 0 | |
| capped_target → simulation_result | 0 | 0 | 0 | 0 | |
| simulation_result → published_final | 0 | 0 | 0 | 0 |
All columns are pick-side probabilities, so away favorites are not accidentally compared using home-side semantics.
| Game | Outcome | Raw model | Calibrated | Governor | Score coherence | Published | Explanation |
|---|---|---|---|---|---|---|---|
| PHI@ATL | hit | 0.5453 | 0.5278 | 0.5278 | 0.5278 | 0.5168 | score coherence followed by matchup-recency guardrail |
One blown start is noise. The same failure repeating across the slate is a model problem. These are the repeats.
| Sides analyzed | Broke on pitching | Broke on offense | Both | Variance | Mean starter ERA error | Mean lineup runs vs proj |
|---|---|---|---|---|---|---|
| 2 | 0 | 0 | 0 | 2 | 0 | 0.5 |
The blend mixes the trained win classifier with the margin-derived probability. It is only worth its weight if its decision survives the downstream reconciliation to the projected score.
On all 1 games with an applied blend, the blend's side and the published side agree.
Blend side survived on 1 of 1 games; the blend flagged a winner change on 0.
A bias on one slate is noise. The same sign across slates, large relative to how much it moves between them, is a model defect. Only the ones that pass both tests are turned into a named parameter change; the rest are held deliberately.
starter ERA error (actual minus projected)
Mean -0.02 over 11 slates (sign shared by 0.55 of them, z = -0.05).
starters beat their projection: the run model credits opposing offenses with more than they produced.
Hold: no change: this bias is not separable from slate-to-slate noise yet
6 of 11 slates share the sign, mean -0.02 +/- 0.36 standard error: not separable from noise
lineup runs actual minus projected
Mean -0.32 over 11 slates (sign shared by 0.73 of them, z = -1.84).
lineups scored below projection: the run environment is set too high.
Hold: no change: this bias is not separable from slate-to-slate noise yet
8 of 11 slates share the sign, mean -0.32 +/- 0.17 standard error: not separable from noise
| Slate | Games | Winner acc | Mean starter ERA error | Mean lineup runs vs proj | Sides broke on pitching | Sides broke on offense |
|---|---|---|---|---|---|---|
| 20260930 | 4 | 0.750 | 0.78 | 0.00 | 1 | |
| 20260929 | 4 | 1.000 | -0.76 | -0.50 | 3 | |
| 20260928 | — | — | — | |||
| 20260927 | 14 | 0.643 | -2.16 | -0.06 | 2 | 5 |
| 20260926 | 13 | 0.538 | 0.55 | 0.69 | 3 | 4 |
| 20260925 | 17 | 0.647 | 1.13 | 0.50 | 8 | 10 |
| 20260924 | 12 | 0.667 | 1.68 | -0.67 | 4 | 11 |
| 20260923 | 16 | 0.500 | -0.49 | -0.91 | 4 | 11 |
| 20260922 | 15 | 0.400 | -0.32 | -0.97 | 3 | 11 |
| 20260921 | 3 | 0.333 | -1.08 | -0.50 | ||
| 20260920 | 15 | 0.600 | -0.89 | -1.00 | 2 | 10 |
| 20260919 | 15 | 0.733 | 1.36 | -0.10 | 8 | 7 |
Narrow predicted margins next to wide actual margins is the signature the score-variance tail is too tight.
| Game | Pred margin | Actual margin | Pred − actual |
|---|---|---|---|
| PHI@ATL | 1 | 4 | -3 |
No large single-factor errors.
| Team | Starter | Projected | Actual | ER err |
|---|---|---|---|---|
| PHI | Aaron Nola | 2 ER / 16 outs | 3 ER / 5 outs | 1 |
| ATL | Ray Kerr | 0 ER / 14 outs | 0 ER / 10 outs | 0 |
Every value is actual / projected. Run impact approximates how far each hitter's real line moved run expectancy from its projection; it orders the movers and is not a published stat.
Top deviations that drove the game:
Pitcher versus batter: what actually broke this game
Per-pitch matchup fields are not populated in the current feeds, so this is reconstructed from the settled box: each starter's workload-adjusted ERA, the bullpen share behind him, and the opposing lineup's real production against its projection, with the hitters who beat that projection named.
AWAY pitching
No settled pitching line for this club. The forecast named Aaron Nola (PHI) at a projected 3.38 ERA, but the per-player feed carries no pitching row for him in this game, so the actual-versus-projected comparison cannot be made on this side. That is a source-coverage gap in the settled box, not a forecasting failure.
Bullpen behind him: 0 ER over 0 outs.
The HOME lineup he faced produced 6 runs on 6 hits and 3 HR, against a projected 5 runs / 9 hits (1 runs vs projection).
Who did the damage to him:
Verdict: neither side broke materially - the result is closer to variance
HOME pitching
Ray Kerr (ATL) threw 10 outs, 0 ER = 0 ERA against a projected 0 ERA (0 ERA error) only 9 prior appearances in the covered season - the projection had little of his own record to stand on
Bullpen behind him: 0 ER over 3 outs.
The AWAY lineup he faced produced 0 runs on 0 hits and 0 HR, against a projected 0 runs / 0 hits (0 runs vs projection).
No individual hitter beat his projection by a meaningful margin.
Verdict: neither side broke materially - the result is closer to variance
Starting pitchers & relievers: actual / projected + context (ERA is workload-aware: ER over 9 innings, so a short blow-up is not read like a quality start; ERA error in parentheses when material. exp BB and exp SO are the continuous rate expectations. The integer beside each is a simulation draw reconciled to the opposing simulated batting box, so it is not the line that ranks pitchers: on the 2026-09-07 slate the integers published 39 walks and 121 strikeouts against 51 and 130 real, while these expectations landed on 50.4 and 132.6.)
| Pitcher | Team | Outs | ERA | ER | H | HR | BB | exp BB | SO | exp SO | Context (as-of) |
|---|---|---|---|---|---|---|---|---|---|---|---|
| ATL | Ray Kerr (Starter) | 10 / 14 | 0 / 0 | 0 / 0 | 1 / 0 | 0 / 0 | 1 / 0 | 1.36 | 2 / 5 | 0 | opp run factor 0.99 (average) · 9 prior appearances this season |
| ATL | Didier Fuentes (Setup Man) | 3 / 4 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 0 / 1 | 0.28 | 0 / 1 | 1.45 |
Hitters: actual / projected (sorted by run impact vs projection)
| Batter | Team | AB | H | 2B | 3B | HR | RBI | R | BB | SO | Run impact | Season xwOBA | Signal |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Ozzie Albies (2B) | ATL | 3 / 3 | 1 / 1 | 0 / 0 | 0 / 0 | 1 / 0 | 2 / 0 | 1 / 1 | 1 / 0 | 1 / 1 | 1.26 | 0.273 weak | good day |
| Drake Baldwin (C) | ATL | 4 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 0 / 1 | 0 / 1 | -0.8 | 0.37 elite | bad day |
| Michael Harris II (CF) | ATL | 3 / 4 | 1 / 1 | 0 / 1 | 0 / 0 | 1 / 0 | 3 / 1 | 1 / 1 | 0 / 0 | 1 / 1 | 0.62 | 0.342 elite | projection too low |
| Mauricio Dubón (SS) | ATL | 4 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | -0.47 | 0.304 average | — |
| Dominic Smith (DH) | ATL | 3 / 3 | 2 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 0.47 | 0.301 below average | — |
| Mike Yastrzemski (LF) | ATL | 4 / 3 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 2 / 1 | -0.47 | 0.309 average | — |
| Ronald Acuña Jr. (RF) | ATL | 3 / 4 | 1 / 1 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 1 / 1 | 1 / 1 | 0 / 1 | -0.31 | 0.366 elite | — |
| Austin Riley (3B) | ATL | 2 / 3 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 2 / 0 | 0 / 1 | 0.19 | 0.299 below average | — |
| Matt Olson (1B) | ATL | 3 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 1 / 1 | 1 / 1 | 2 / 1 | 1 / 1 | 0 / 1 | 0 | 0.351 elite | — |
| Signal | Home-away edge | Meaning |
|---|---|---|
| Season quality | 0.559 | positive favors home; negative favors away |
| Recent form | 0.406 | positive favors home; negative favors away |
| Starting-pitcher matchup | 0.05 | positive favors home; negative favors away |
| Composite | 0.699 | positive favors home; negative favors away |
| Stage | Away-home runs | Confidence | What changed |
|---|---|---|---|
| historical_ml | 4.2-4.85 | n/a | Base ML historical model prediction |
| variance_applied | 4-5 | n/a | Deterministic baseline target (variance factor 1.0) |
| enhanced_prediction | 3-4 | 0.517 | Enhanced ML with recent form, H2H, low-score analysis (confidence shrunk by projected_margin_is_one_run, matchup_recency_guardrail) |
| embedded_savant_run_environment | 3-4 | n/a | Target score adjusted by temporal Savant lineup quality versus opposing starter quality |
| fundamental_edge_target_review | 3-4 | n/a | Refreshed score target and win probability after Savant/pitcher/team-strength adjustments |
| capped_target | 3-4 | n/a | Capped at max 12 realistic runs |
| simulation_result | 3-4 | n/a | Final inning-by-inning simulation result |
| Stage | Before | After | Toward final pick | What changed |
|---|---|---|---|---|
| variance_applied | 4.2-4.85 | 4-5 | 0.351 | Deterministic baseline target (variance factor 1.0) |
| enhanced_prediction | 4-5 | 3-4 | 0 | Enhanced ML with recent form, H2H, low-score analysis (confidence shrunk by projected_margin_is_one_run, matchup_recency_guardrail) |
| embedded_savant_run_environment | 3-4 | 3-4 | 0 | Target score adjusted by temporal Savant lineup quality versus opposing starter quality |
| fundamental_edge_target_review | 3-4 | 3-4 | 0 | Refreshed score target and win probability after Savant/pitcher/team-strength adjustments |
| capped_target | 3-4 | 3-4 | 0 | Capped at max 12 realistic runs |
| simulation_result | 3-4 | 3-4 | 0 | Final inning-by-inning simulation result |
These are pregame model adjustments, not claims about actual postgame player error.
| Team | Player | Role | Net effect | Largest change |
|---|---|---|---|---|
| ATL | Ronald Acuña Jr. | batter / RF | better | predicted_SO 2.037 |
| ATL | Drake Baldwin | batter / C | worse | predicted_AB -1.71 |
| ATL | Mauricio Dubón | batter / SS | worse | predicted_SO 1.513 |
| ATL | Dominic Smith | batter / DH | worse | predicted_SO 1.51 |
| PHI | Alec Bohm | batter / 1B | better | predicted_RBI 1.422 |
| ATL | Michael Harris II | batter / CF | worse | predicted_RBI 1.4 |
| PHI | Bryson Stott | batter / 2B | worse | predicted_SO 1.353 |
| PHI | Edmundo Sosa | batter / 3B | worse | predicted_SO 1.345 |
| Severity | Rule | Finding | Subject |
|---|---|---|---|
| info | CURRENT_PITCHER_DUPLICATION | ATL pitcher list appears in both predicted_performance.pitchers and player_predictions_by_position.pitchers; IDs match and were de-duplicated in this audit. | ATL |
| info | CURRENT_PITCHER_DUPLICATION | PHI pitcher list appears in both predicted_performance.pitchers and player_predictions_by_position.pitchers; IDs match and were de-duplicated in this audit. | PHI |
| info | CURRENT_FINALIZED_MATCH_BOX | ATL model-prediction batting totals differ from final simulation box score (AB: current=32, sim=35; H: current=9, sim=11; 2B: current=2, sim=3; HR: current=1, sim=2; R: current=5, sim=4; BB: current=3, sim=2; SO: current=8, sim=12; SF: current=0, sim=1). | ATL |
| info | CURRENT_PLAYER_MATCH_BOX | ATL current finalized hitter lines are model predictions and differ from the simulation box score: Drake Baldwin: H current=1 box=3, 2B current=0 box=1, RBI current=1 box=0, BB current=1 box=0; Mauricio Dubón: H current=1 box=0, SO current=0 box=2; Ronald Acuña Jr.: AB current=4 box=5, H current=1 box=2, HR current=0 box=1, RBI current=1 box=2; Matt Olson: AB current=4 box=3, HR current=1 box=0, RBI current=1 box=0, SO current=1 box=2; Michael Harris II: 2B current=1 box=0, HR current=0 box=1, RBI current=1 box=2; Dominic Smith: AB current=3 box=4, SO current=1 box=2; Austin Riley: AB current=3 box=4, SO current=1 box=0; Mike Yastrzemski: BB current=0 box=1 | ATL |
| info | CURRENT_FINALIZED_MATCH_BOX | PHI model-prediction batting totals differ from final simulation box score (H: current=8, sim=5; HR: current=1, sim=0; RBI: current=4, sim=3; R: current=4, sim=3; BB: current=3, sim=2). | PHI |
| info | CURRENT_PLAYER_MATCH_BOX | PHI current finalized hitter lines are model predictions and differ from the simulation box score: Alec Bohm: 2B current=0 box=1, RBI current=1 box=2, R current=0 box=1; Bryce Harper: AB current=4 box=3, RBI current=1 box=0; Bryan De La Cruz: H current=1 box=0, BB current=0 box=1; Edmundo Sosa: AB current=3 box=4, RBI current=1 box=0, SO current=1 box=2; Kyle Schwarber: HR current=1 box=0, RBI current=1 box=0, R current=1 box=0, BB current=1 box=0; Trea Turner: H current=1 box=0, 2B current=1 box=0, R current=1 box=0, SO current=1 box=0; Bryson Stott: RBI current=0 box=1, BB current=1 box=0, SO current=1 box=2; J.T. Realmuto: SO current=1 box=0 | PHI |
| info | RECONCILIATION_PROPAGATION | No score_target_reconciliation step was used for this game. |
Each candidate fix, and exactly which games it would help versus hurt. A lever that repairs one game and breaks two is visible here before it is proposed.
Compared against packet 20260930. Last recorded change: v4.30.0 (2026-09-08) Hitter shrinkage is derived from the between-hitter spread rather than fitted to slate error, so an established extreme profile is no longer flattened toward the league.
| Metric | Prior | Current | Δ | Result |
|---|---|---|---|---|
| brier_score | 0.2444 | 0.2435 | -0.000902 | improved |
| accuracy | 0.5897 | 0.5877 | -0.002 | regressed |
| team_run_mae | 2.5385 | 2.5351 | -0.0034 | improved |
| total_run_mae | 3.6923 | 3.6316 | -0.0607 | improved |
| calibration_error | 0.0889 | 0.0896 | +0.0007 | regressed |
| starter_er_mae | 1.7438 | 1.7243 | -0.0195 | improved |
| starter_outs_mae | 4.0909 | 4.2103 | +0.1194 | regressed |
All six listed source artifacts marked loaded were received and represented in the evidence:
/app/output/reports/prediction_review_20261001.json, 101,990 bytesPurpose: official outcomes and scoring errors.
/app/output/reports/PREDICTION_SYSTEM_DEEP_AUDIT_20261001.json, 75,617 bytesPurpose: probability, provenance, starter, and decision contracts.
/app/output/learning/continuous_learning_daily_20261001.json, 454,850 bytesPurpose: pipeline-stage quality, calibration, probability lineage, score distribution, and starter comparisons.
/app/output/reports/detailed_20261001.html, 98,628 bytesPurpose: full game and simulation rendering.
/app/output/reports/20261001_ultra_detailed_player_audit.html, 8,732,780 bytesPurpose: player-level prediction trace.
/app/output/reports/audit_report_20261001.html, 520,200 bytesPurpose: invariant findings.
One manifest entry is explicitly missing:
/app/output/reports/audit_report_20261001_integrity_revision.htmlStatus: missing; byte count null
Purpose: post-Luna remediation proof for immutable revision artifacts.
The missing integrity-revision audit is an evidence gap and an artifact-contract limitation. It is not, by itself, evidence that the prediction artifact was corrupted.
The settled game reviewed in the detailed game section is:
The payload reports:
games_reviewed: 1hits: 1misses: 0summary.games: 4summary.hits: 1summary.misses: 0continuous_learning_games: 4canonical_artifacts_loaded: 4forensic_deep_audit_games: 4structural_audits_completed: 4expected_games: 1This is internally inconsistent. The game-level record and expected_games identify one settled game, but several coverage counters claim four games. The structural audit also reports 4/1 games structurally audited in the causal issue register. Therefore:
market_crosscheck.available: false.0.5168 - 1.0 = -0.4832. The self-assessment’s confidence_overconfident action is therefore not supported by this slate alone, although rolling evidence may justify shrinkage.probability_lineage gives raw_model_pick_probability: 0.5453, but confidence_path.raw_pick_probability gives 0.53. The lineage still records transformations and no unexplained material delta, but the two raw-probability fields should be reconciled.---
This was a correct-winner, materially wrong-score prediction with clean structural QA for the represented game, but with important cross-slate process risks.
The system:
0.0336 home-minus-away, with published home probability 0.516818.+1, actual margin +4.3.0.-1.0, meaning the predicted total of 7 was one run below the actual total of 8.A correct winner is not equivalent to a good full prediction. The score forecast was compressed and missed the actual run distribution even though the side was correct.
1.0, one hit from one settled game.0.570149.0.600414.The one-game winner result was correct and beat the cited baseline, but the sample is too small to establish improved winner skill. Cross-slate winner accuracy is labelled improving, with mean 0.6479 in the trend block, but that conclusion remains subject to the metadata inconsistencies noted above.
Current-slate calibration is poor as an estimate, but not evidence of overconfidence:
0.5168.1.0.-0.4832, which is underconfidence.0.4832.The rolling trend labels weighted calibration error as regressing, with mean 0.2252. The persistent finding has occurred on three consecutive slates and seven times in the 11-slate window. The appropriate diagnosis is unstable or poorly aligned confidence, not “this single game was overconfident.”
Score accuracy was the principal current-slate weakness:
-3.0.3.0.-1.0.3.0.The causal register’s score_margin_compression finding is high severity, with evidence that one of one predictions had margin ≤2 while the actual margin was ≥4. It correctly includes the guardrail that one blowout does not justify widening every score prediction. Cross-slate evidence, however, escalates this from a single-slate observation to a three-consecutive-slate pattern.
The run model is also weak at validation level:
0.030936.0.002143.0.002415.2415.This supports treating exact scores as low-confidence outputs, not merely adjusting one game’s variance.
The starter picture is mixed:
+1; ERA error +12.82; outs error -11.0; outs error -4.Starter projection error contributed to score uncertainty, especially Nola’s short outing and three earned runs, but the evidence does not justify identifying starter weighting as the main causal defect. The lever-tension record says changing pitcher form/prior weights would have hurt this game because the starter projection was judged sufficiently accurate overall, especially for Kerr’s zero ER result.
For the represented game:
PASS.0.0.0.0.101.7.Artifact integrity is therefore good for the supplied prediction artifact, subject to the missing integrity-revision audit and the inconsistent four-game coverage metadata. The missing audit is a contract/coverage gap, not evidence of a bad forecast.
score_margin_compression — high1/1 predicted margins were ≤2; 1/1 actual margins were ≥4; mean predicted margin 1.00 versus actual 4.00.single_slate_calibration_instability — high0.4832 across one game.weak_run_model_signal — high0.0021/0.0309/0.0024.complete_slate_audit_coverage — info4/1 games structurally audited.games_reviewed: 1 and should be treated as a coverage-accounting defect until reconciled.simulation_inert_on_slate — info, escalated cross-slate---
| Field | Prediction | Actual |
|---|---|---|
| PHI runs | 3 | 2 |
| ATL runs | 4 | 6 |
| Winner | ATL | ATL |
| Margin | ATL by 1 | ATL by 4 |
| Total | 7 | 8 |
This is explicitly a correct-winner/wrong-score game.
0.516818.0.0336.0.03.toss_up.0.5453.0.5278.0.53.0.5278.0.527795.0.516818.0.527795 to 0.523278 and was stated not to change the winner.0.12 edge as a near coin flip; the actual published edge here was only 0.0336, while the required guardrail remains that a 0.12 home-away edge is moderate, not near coin-flip territory.0.233465.3.0.-1.0.3.0.1.0, but based on one game.-3.0.+1.0.+12.82.-11.0.0.0.-4.0.+0.559.+0.406.+0.050.+0.699.+0.2348.+0.679.+0.336.0.994.1.044.Pipeline stages, all compared with the actual final score:
| Stage | Winner | Team-run MAE | Total-run MAE | Margin MAE |
|---|---|---|---|---|
| historical_ml | 1.000 | 1.6753 | 1.0462 | 3.3506 |
| variance_applied | 1.000 | 1.5000 | 1.0000 | 3.0000 |
| enhanced_prediction | 1.000 | 1.5000 | 1.0000 | 3.0000 |
| embedded_savant_run_environment | 1.000 | 1.5000 | 1.0000 | 3.0000 |
| fundamental_edge_target_review | 1.000 | 1.5000 | 1.0000 | 3.0000 |
| capped_target | 1.000 | 1.5000 | 1.0000 | 3.0000 |
| simulation_result | 1.000 | 1.5000 | 1.0000 | 3.0000 |
| published_final | 1.000 | 1.5000 | 1.0000 | 3.0000 |
Variance application improved the score metrics relative to historical ML, but the resulting margin remained too narrow. No later stage changed the final score.
Material deviations included:
+1.26 run impact versus projection; 1-for-3, one home run, two RBI.-0.80; 0-for-4.+0.62; one home run, three RBI. This was the main learnable deviation because his season xwOBA was 0.342, classified elite.-0.47.+0.47.-0.47.-0.31.+0.19.0.00.Three player deviations were large enough to move the game; only one was supported by the hitter’s own season contact-quality profile. The audit therefore classifies:
1.2.33.3%.Slate-level player metrics also show:
spread_ratio: 0.0.These facts support weak player/run signal, but they do not establish that every individual hitter projection should be widened.
PASS.-3.0 margin error and the escalated compression pattern.---
There was no losing game: misses: 0. Therefore, no loss-specific winner reconstruction is applicable. The game was a score miss, not a winner miss.
For the score objective, the earliest measurable issue is the underlying score model’s narrow margin:
3.3506.3.0.3.0 margin MAE.The score evidence moved toward the wrong result at the base score-generation stage through insufficient margin dispersion. This is best classified as:
A 0.12 home-away confidence edge would be moderate, not a near coin flip. This game’s published edge was much smaller, 0.0336, and was appropriately bucketed as a toss-up.
Every listed stage must be retained in the audit:
historical_mlvariance_appliedenhanced_predictionembedded_savant_run_environmentfundamental_edge_target_reviewcapped_targetsimulation_resultpublished_finalThe transition record shows:
0.3506, team-run MAE fell 0.1753; winner unchanged.CHW@HOU: HOU → CHW. That is not this supplied game and must be retained as an intermediate winner-direction regression in the broader pipeline audit, even though no improvement/regression counts were assigned to it.A later unchanged or successful final outcome does not erase the CHW@HOU intermediate direction change. Conversely, it should not be attributed to PHI@ATL without the missing game record.
The simulation’s lack of change is especially important because it has persisted for 11 slates and is diagnosed as potentially using target-seeking draws that terminate too early. Its apparent inertness is not proof that the simulation mathematically had no useful information; it is evidence that the current implementation may not be generating an independent probability distribution.
---
The lever_tension block contains three entries.
score.variance_multiplier / score.variance_floor0 helped vs 0 hurt.player.pitcher.v4 form weights / player.pitcher_prior_games0 helped vs 1 hurt.recent.* / season.* run-mean weighting0 helped vs 0 hurt.---
The supplied structural audit reports:
The seven informational notes are counted but not individually enumerated in the payload. Therefore, the exact seven structural-audit information titles cannot be independently listed from the supplied evidence. The payload does provide several informational/diagnostic items:
Items 1–3 are causal/diagnostic notes; items 4–7 are evidence limitations or game-level informational findings. They should not be assumed to be the exact seven HTML audit labels.
0.002415;0.002143;0.030936.0.556 versus flat 0.519;0.667 versus flat 0.593;0.222 versus flat 0.000.expected_games is one.4/1 games structurally audited.0.5453) and confidence path (0.53).These are not all prediction defects. Missing labels, inconsistent counts, and absent audit artifacts are contract/presentation defects; near-zero R², compressed margins, and inert simulation are model/process defects.
The slate cannot be called fully clean because:
expected_games = 1games_reviewed = 1The correct conservative interpretation is:
For PHI@ATL, the recorded pick-side lineage is:
0.5453 in the lineage record; 0.53 in the confidence path.0.5278, based on sample size 815 and empirical hit rate 0.562.0.53, output 0.5278.0.527795.0.523278; recency guardrail applied.0.516818.The lineage records:
published_minus_calibrated = -0.010982.unexplained_material_delta = false.There is no recorded material bypass. The raw-probability discrepancy (0.5453 versus 0.53) is a field-consistency defect, but not an unrecorded published bypass because the subsequent transformations are documented and the final delta is explained.
---
A single slate is noise; the following patterns have explicit multi-slate escalation and must be treated as established failures or actionable patterns.
| Finding | Consecutive-slate count | Present now? | Interpretation |
|---|---|---|---|
high_raw_probability_cluster | 0 | No | Not currently present; one occurrence in the 11-slate window. |
pipeline_winner_instability | 0 | No | Not currently present; five occurrences in the window but no current streak. |
score_margin_compression | 3 | Yes | Established persistent compression pattern. |
simulation_inert_on_slate | 11 | Yes | Established failure, not single-slate noise. |
single_slate_calibration_instability | 3 | Yes | Established persistent calibration instability. |
weak_run_model_signal | 3 | Yes | Established weak run-model signal. |
score.variance_multiplier, score.variance_floor.simulation.allow_score, but the finding is explicitly param_actionable: false.The self-assessment identifies the likely root cause: the same draws are used both for target realization and win-probability estimation, with early exit at a default draw count of approximately two. The recommended code target is _build_simulation_distribution and the draw-loop early exits in routers/team_router.py, with an independent 200–500 draw batch or a closed-form run-difference distribution.
confidence.empirical_max_weight, confidence.base_cap, confidence.moderate_cap.training.xgb.n_estimators, training.xgb.max_depth, training.xgb.learning_rate.param_actionable: false.The required directions are:
margin_bias: regressing; mean -2.3082.mean_team_run_error_on_losses: improving; mean 4.5965. There are no current losses, so this is a historical loss metric.weighted_calibration_error: regressing; mean 0.2252.winner_accuracy: improving; mean 0.6479.These directions must be read together: winner selection is improving, while score-margin and calibration quality are regressing.
loss_streak: 0.unknown result; this is a data-quality gap, not a loss.The two explicitly held cross-slate biases should remain held:
-0.018, z -0.05; not separable from noise.-0.32, z -1.84; not yet separated from noise.Thus, persistent escalated findings should be acted on; the two cross_slate_bias items remain no-change findings.
---
Recommendations are ranked by persistence, scope, expected metric impact, affected games, and regression risk.
score.variance_multiplier and score.variance_floor.+5% on score.variance_multiplier and +0.10 on score.variance_floor, with exact production values unchanged until the gate passes.This is the strongest actionable change for the current slate because the score-margin problem is both directly observed and persistent.
confidence.empirical_max_weight, confidence.base_cap, or confidence.moderate_cap.confidence.moderate_cap by 0.02, or reduce the relevant empirical-weight contribution by approximately 5% in the shadow branch. Do not change all caps simultaneously.simulation.allow_score is listed, but the finding is not parameter-actionable._distribution_agreement.training.xgb.n_estimators, training.xgb.max_depth, training.xgb.learning_rate.---
0.516818, edge 0.0336, bucket toss_up.Run a control-versus-shadow experiment that modestly widens score.variance_multiplier and/or score.variance_floor, while keeping the current production path unchanged and monitoring margin tail coverage, team-run MAE, total-run MAE, and calibration.
This is the safest immediate improvement because it addresses the directly observed and cross-slate-persistent margin-compression problem without reacting to the one game by changing starter weights, hitter projections, or winner probabilities.