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_20261011.json | 11400 |
| forensic deep audit | loaded | probability, provenance, starter and decision contracts | /app/output/reports/PREDICTION_SYSTEM_DEEP_AUDIT_20261011.json | 30976 |
| continuous learning | loaded | pipeline-stage quality, calibration, probability lineage, score distribution, and official starter comparisons | /app/output/learning/continuous_learning_daily_20261011.json | 181366 |
| detailed report | loaded | full game and simulation rendering | /app/output/reports/detailed_20261011.html | 31609 |
| ultra detailed player audit | loaded | player-level prediction trace | /app/output/reports/20261011_ultra_detailed_player_audit.html | 1635801 |
| structural audit | loaded | all invariant findings | /app/output/reports/audit_report_20261011.html | 120679 |
| integrity revision audit | loaded | structural audit of every post-start revision of the slate's games | /app/output/reports/audit_report_20261011_integrity_revision.html | 344105 |
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 | calibration | Published confidence buckets were poorly aligned on this slate weighted absolute calibration error 0.4518 across 1 games | LAD@MIL | 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 | LAD@MIL | 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 1/1 games structurally audited | LAD@MIL | 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 | LAD@MIL | 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 |
|---|---|---|---|---|
| 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. |
| Finding | Consecutive slates | Incidence | Present now | Fix type |
|---|---|---|---|---|
| pipeline_winner_instability | 0 | 1/11 | no | code/diagnostic |
| score_margin_compression | 0 | 2/11 | no | param |
| simulation_inert_on_slate | 11 | 11/11 | yes | code/diagnostic |
| single_slate_calibration_instability | 2 | 9/11 | yes | param |
| weak_run_model_signal | 2 | 9/11 | yes | code/diagnostic |
| Metric | Direction | Series (old → new) |
|---|---|---|
| winner_accuracy | improving | 1.0, –, 1.0, 0.5, 0.0, 1.0, 0.75, 1.0, –, 1.0, 1.0 |
| weighted_calibration_error | flat | 0.4832, –, 0.4705, 0.4806, 0.5291, 0.4642, 0.2272, 0.495, –, 0.4732, 0.4518 |
| margin_bias | improving | -3.0, –, -0.25, 0.0, -0.5, -0.5, -1.75, -3.0, –, -1.0, 1.0 |
| team_run_error_on_losses | improving | –, –, –, 2.0, 3.5, –, 2.0, –, –, –, – |
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% | 2.984 | 5.968 | 0.352 |
| variance_applied | 1/1 | 100% | 3 | 6 | 0 |
| enhanced_prediction | 1/1 | 100% | 2 | 4 | 0 |
| kpi_layer | 1/1 | 100% | 2 | 4 | 0 |
| embedded_savant_run_environment | 1/1 | 100% | 1.5 | 3 | 1 |
| fundamental_edge_target_review | 1/1 | 100% | 1.5 | 3 | 1 |
| capped_target | 1/1 | 100% | 1.5 | 3 | 1 |
| simulation_result | 1/1 | 100% | 1.5 | 3 | 1 |
| published_final | 1/1 | 100% | 1.5 | 3 | 1 |
| Transition | Δ accuracy | Δ hits | Δ team-run MAE | Δ margin MAE | Games whose winner/tie changed |
|---|---|---|---|---|---|
| historical_ml → variance_applied | 0 | 0 | 0.0157 | -0.3521 | |
| variance_applied → enhanced_prediction | 0 | 0 | -1 | 0 | |
| enhanced_prediction → kpi_layer | 0 | 0 | 0 | 0 | |
| kpi_layer → embedded_savant_run_environment | 0 | 0 | -0.5 | 1 | |
| 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 |
|---|---|---|---|---|---|---|---|
| LAD@MIL | hit | 0.5713 | 0.5482 | 0.5482 | 0.5482 | 0.5482 | published probability matches the calibrated/governed value |
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 | 1 | 0 | 1 | -0.84 | -1.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.34 over 10 slates (sign shared by 0.60 of them, z = -0.83).
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 10 slates share the sign, mean -0.34 +/- 0.41 standard error: not separable from noise
lineup runs actual minus projected
Mean -0.75 over 10 slates (sign shared by 0.70 of them, z = -2.13).
lineups scored below projection: the run environment is set too high.
Actionable: the total-runs projection is running hot; check the run environment before touching variance, and treat score.variance_floor only as the spread lever
Lever: score.variance_floor (default 2.75); watch total_run_mae, team_run_mae.
7 of 10 slates share the sign and the mean is 2.1 standard errors from zero
| Slate | Games | Winner acc | Mean starter ERA error | Mean lineup runs vs proj | Sides broke on pitching | Sides broke on offense |
|---|---|---|---|---|---|---|
| 20261010 | 1 | 1.000 | -1.93 | -2.00 | 1 | |
| 20261009 | — | — | — | |||
| 20261008 | 1 | 1.000 | 2.31 | 1.00 | ||
| 20261007 | 4 | 0.750 | 0.85 | -0.38 | 1 | 2 |
| 20261006 | 2 | 1.000 | -1.40 | -1.25 | 1 | |
| 20261005 | 2 | 0.000 | -1.11 | -0.75 | 2 | |
| 20261004 | 2 | 0.500 | -1.24 | -2.00 | 2 | |
| 20261003 | 4 | 1.000 | -0.95 | -2.25 | 4 | |
| 20261002 | — | — | — | |||
| 20261001 | 1 | 1.000 | 0.00 | 0.50 | ||
| 20260930 | 4 | 0.750 | 0.78 | 0.12 | 1 | |
| 20260929 | 4 | 1.000 | -0.76 | -0.50 | 3 |
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 |
|---|---|---|---|
| LAD@MIL | 2 | 1 | 1 |
| Team | Starter | Projected | Actual | ER err |
|---|---|---|---|---|
| LAD | Tarik Skubal | 4 ER / 19 outs | 2 ER / 15 outs | -2 |
| MIL | Jacob Misiorowski | 1 ER / 16 outs | 1 ER / 13 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
Tarik Skubal (LAD) threw 15 outs, 2 ER = 3.6 ERA against a projected 5.68 ERA (-2.08 ERA error)
Bullpen behind him: 0 ER over 3 outs.
The HOME lineup he faced produced 2 runs on 6 hits and 1 HR, against a projected 4 runs / 6 hits (-2 runs vs projection).
Who did the damage to him:
Verdict: neither side broke materially - the result is closer to variance
HOME pitching
Jacob Misiorowski (MIL) threw 13 outs, 1 ER = 2.08 ERA against a projected 1.69 ERA (0.39 ERA error)
Bullpen behind him: 0 ER over 6 outs.
The AWAY lineup he faced produced 1 runs on 7 hits and 0 HR, against a projected 2 runs / 4 hits (-1 runs vs projection).
Who did the damage to him:
Verdict: offense: the lineup scored well below its projection
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) |
|---|---|---|---|---|---|---|---|---|---|---|---|
| LAD | Tarik Skubal (Starter) | 15 / 19 | 3.6 / 5.68 | 2 / 4 | 5 / 6 | 1 / 0 | 2 / 3 | 1.35 | 7 / 6 | 6.84 | venue away: 1.7 vs 3.49 ERA (ok) · opp run factor 1.02 (strong) · 27 prior appearances this season |
| LAD | Alex Vesia (Middle Reliever (High Leverage)) | 3 / 5 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 0.48 | 2 / 3 | 1.24 | |
| MIL | Jacob Misiorowski (Starter) | 13 / 16 | 2.08 / 1.69 | 1 / 1 | 5 / 3 | 0 / 0 | 3 / 2 | 1.56 | 5 / 6 | 7.03 | venue home: 1.64 vs 2.15 ERA (ok) · opp run factor 0.95 (strong) · 31 prior appearances this season |
| MIL | Aaron Ashby (Middle Reliever (High Leverage)) | 6 / 4 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 0.63 | 1 / 1 | 1.85 |
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 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Andy Pages (CF) | LAD | 4 / 3 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 1 / 1 | 0 / 1 | 0 / 1 | 1 / 2 | -1.26 | 0.343 elite | bad day |
| Brice Turang (2B) | MIL | 2 / 3 | 1 / 1 | 0 / 0 | 0 / 0 | 1 / 0 | 1 / 0 | 1 / 1 | 1 / 0 | 0 / 1 | 1.26 | 0.344 elite | projection too low |
| Andrew Vaughn (DH) | MIL | 3 / 3 | 1 / 0 | 1 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 1 / 0 | 1 / 1 | 1.11 | 0.329 above average | projection too low |
| Teoscar Hernández (LF) | LAD | 4 / 4 | 2 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 0.94 | 0.332 above average | projection too low |
| Shohei Ohtani (DH) | LAD | 3 / 4 | 1 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 1 / 0 | 1 / 1 | 0.8 | 0.397 elite | projection too low |
| Joey Ortiz (3B) | MIL | 3 / 3 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 0 / 1 | 2 / 1 | -0.8 | 0.297 below average | projection too high |
| Enrique Hernández (2B) | LAD | 3 / 3 | 0 / 1 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 0 / 1 | -0.78 | 0.279 weak | projection too high |
| William Contreras (C) | MIL | 3 / 3 | 0 / 1 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 1 / 1 | 2 / 1 | -0.78 | 0.334 above average | bad day |
| Kyle Tucker (RF) | LAD | 2 / 4 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 2 / 0 | 2 / 1 | 0.66 | 0.331 above average | projection too low |
| Mookie Betts (SS) | LAD | 4 / 3 | 1 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 0 / 0 | 0.47 | 0.339 above average | — |
| Jackson Chourio (LF) | MIL | 4 / 4 | 2 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 0 / 0 | 1 / 0 | 0.47 | 0.344 elite | — |
| Cooper Pratt (SS) | MIL | 2 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 2 / 0 | -0.47 | 0.315 average | — |
| Max Muncy (3B) | LAD | 4 / 3 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 2 / 0 | -0.33 | 0.349 elite | — |
| Garrett Mitchell (CF) | MIL | 3 / 4 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 1 / 0 | 1 / 3 | 0.33 | 0.353 elite | — |
| Freddie Freeman (1B) | LAD | 4 / 3 | 1 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 1 / 2 | 0.14 | 0.363 elite | — |
| Will Smith (C) | LAD | 3 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 1 / 0 | 0 / 1 | -0.14 | 0.389 elite | — |
| Luis Lara (RF) | MIL | 3 / 3 | 1 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 0 / 1 | 0 / 1 | 2 / 1 | 0.14 | 0.293 below average | — |
| Jake Bauers (1B) | MIL | 3 / 3 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 2 / 1 | 0 | 0.371 elite | — |
| Signal | Home-away edge | Meaning |
|---|---|---|
| Season quality | 0.003 | positive favors home; negative favors away |
| Recent form | -0.122 | positive favors home; negative favors away |
| Starting-pitcher matchup | 0.072 | positive favors home; negative favors away |
| Composite | 0.489 | positive favors home; negative favors away |
| Stage | Away-home runs | Confidence | What changed |
|---|---|---|---|
| historical_ml | 4.16-4.81 | 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.548 | Enhanced ML with recent form, H2H, low-score analysis |
| kpi_layer | 3-4 | n/a | Savant KPI blend computed and withheld; baseline kept |
| embedded_savant_run_environment | 2-4 | n/a | Target score adjusted by temporal Savant lineup quality versus opposing starter quality |
| fundamental_edge_target_review | 2-4 | n/a | Refreshed score target and win probability after Savant/pitcher/team-strength adjustments |
| capped_target | 2-4 | n/a | Capped at max 12 realistic runs |
| simulation_result | 2-4 | n/a | Final inning-by-inning simulation result |
| Stage | Before | After | Toward final pick | What changed |
|---|---|---|---|---|
| variance_applied | 4.16-4.81 | 4-5 | 0.352 | Deterministic baseline target (variance factor 1.0) |
| enhanced_prediction | 4-5 | 3-4 | 0 | Enhanced ML with recent form, H2H, low-score analysis |
| kpi_layer | 3-4 | 3-4 | 0 | Savant KPI blend computed and withheld; baseline kept |
| embedded_savant_run_environment | 3-4 | 2-4 | 1 | Target score adjusted by temporal Savant lineup quality versus opposing starter quality |
| fundamental_edge_target_review | 2-4 | 2-4 | 0 | Refreshed score target and win probability after Savant/pitcher/team-strength adjustments |
| capped_target | 2-4 | 2-4 | 0 | Capped at max 12 realistic runs |
| simulation_result | 2-4 | 2-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 |
|---|---|---|---|---|
| MIL | Brice Turang | batter / 2B | worse | predicted_AB -2.2 |
| MIL | William Contreras | batter / C | worse | predicted_AB -2.12 |
| LAD | Alex Vesia | pitcher / Middle Reliever (High Leverage) | better | predicted_SO 2 |
| MIL | Jacob Misiorowski | pitcher / Starter | neutral | predicted_BB 2 |
| MIL | Aaron Ashby | pitcher / Middle Reliever (High Leverage) | neutral | predicted_H -2 |
| MIL | Garrett Mitchell | batter / CF | worse | predicted_SO 1.809 |
| LAD | Andy Pages | batter / CF | worse | predicted_AB -1.73 |
| LAD | Mookie Betts | batter / SS | worse | predicted_AB -1.69 |
| Severity | Rule | Finding | Subject |
|---|---|---|---|
| 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 20261010. Last recorded change: v15.28.3 (2026-10-07) Audit the confidence blend against the adaptive cap actually in force.
| Metric | Prior | Current | Δ | Result |
|---|---|---|---|---|
| brier_score | 0.245 | 0.2449 | -0.000101 | improved |
| accuracy | 0.6195 | 0.6195 | +0 | flat |
| team_run_mae | 2.4292 | 2.4159 | -0.0133 | improved |
| total_run_mae | 3.6549 | 3.6637 | +0.0088 | regressed |
| calibration_error | 0.1325 | 0.1324 | -0.0001 | improved |
| starter_er_mae | 1.6435 | 1.6226 | -0.0209 | improved |
| starter_outs_mae | 4.2222 | 4.184 | -0.0382 | improved |
All seven source_manifest entries are marked loaded:
| Source | Status and stated purpose |
|---|---|
Prediction review, /app/output/reports/prediction_review_20261011.json (11,400 bytes) | Loaded; official outcomes and scoring errors |
Forensic deep audit, /app/output/reports/PREDICTION_SYSTEM_DEEP_AUDIT_20261011.json (30,976 bytes) | Loaded; probability, provenance, starter, and decision contracts |
Continuous learning, /app/output/learning/continuous_learning_daily_20261011.json (181,366 bytes) | Loaded; stage quality, calibration, probability lineage, score distribution, starter comparisons |
Detailed report, /app/output/reports/detailed_20261011.html (31,609 bytes) | Loaded; game and simulation rendering |
Ultra-detailed player audit, /app/output/reports/20261011_ultra_detailed_player_audit.html (1,635,801 bytes) | Loaded; player-level prediction trace |
Structural audit, /app/output/reports/audit_report_20261011.html (120,679 bytes) | Loaded; invariant findings |
Integrity revision audit, /app/output/reports/audit_report_20261011_integrity_revision.html (344,105 bytes) | Loaded; structural audit of three post-start game revisions |
Slate coverage: The diagnosis reports one expected game and one game reviewed; continuous-learning, forensic-deep-audit, starter-comparison, and structural-audit coverage are each 1/1. The reviewed game is LAD@MIL. No additional game is identified as missing by the supplied coverage matrix.
Gaps and internal contradictions:
probability_lineage.raw_model_pick_probability is 0.5713, while model_trace.confidence_path.raw_pick_probability is 0.550827; the lineage also gives 0.550827 as the governor input. The record does not explain why the field called “raw model” differs from the value used as governor input. The final published probability and governed value do match closely, and the lineage marks no unexplained material delta; this is a provenance ambiguity, not evidence that publication bypassed a recorded transformation.Winner accuracy: 1/1 (100%), MIL correctly predicted. This is a correct winner call, not a correct score forecast. The model’s holdout winner accuracy is 0.600414, and its walk-forward accuracy is 0.570149; one winning call does not validate those broader estimates.
Calibration quality: Published MIL win probability was 0.548241 (about 54.8%), with a home-minus-away probability edge of 0.0965 (about 9.65 percentage points). The pick was a hit, producing Brier score 0.204086. The single-slate calibration bucket had average confidence 0.5482 and observed hit rate 1.0, so confidence-minus-hit-rate was −0.4518; the monitor labels that bucket underconfident, and weighted absolute calibration error was 0.4518. This is a one-game bucket, not evidence for a stable calibration curve. A confidence edge of 0.12, if encountered elsewhere, is moderate—not a near coin flip; this game’s edge was smaller, about 0.10.
Score accuracy: The published score was LAD 2, MIL 4; the actual score was LAD 1, MIL 2. Winner was right, but both team-run forecasts were high: LAD by 1 and MIL by 2. The total was forecast at 6 versus 3 actual, a +3 total-run bias/error. Team-run absolute error is 3 as reported. Exact score quality should be treated cautiously: validated holdout run-model R² is only 0.002143 home, 0.030936 away, and 0.002415 total.
Starter accuracy: Both starter identities matched. Skubal was projected for 4 ER, 5.68 ERA, and 19 outs; actual was 2 ER, 3.60 ERA, and 15 outs. Misiorowski was projected for 1 ER, 1.69 ERA, and 16 outs; actual was 1 ER, 2.08 ERA, and 13 outs. The away starter substantially outperformed the projected ERA/ER line, while the home starter allowed the projected ER but had a higher actual ERA and fewer outs. This is mixed starter performance, not a uniform starter miss.
Artifact integrity: The per-game structural audit passed, with no critical/error/warning findings; forecast-file integrity is explicitly called clean. No artifact defect is identified as the cause of this game’s score error. The conflicting raw-probability fields remain a provenance ambiguity that should be reconciled, but the reported published probability matches the governed value and the lineage says no unexplained material delta.
Causal issue register, reconciled entry by entry:
single_slate_calibration_instability. Evidence: weighted absolute calibration error 0.4518 across one game, affecting LAD@MIL. Recommended action: watch the same confidence buckets over a rolling window before changing calibration weights. Guardrail: a single slate is far too small to establish a stable calibration curve. This high-severity label marks material calibration risk, not a critical evidence failure.weak_run_model_signal. Evidence: home/away/total R² 0.0021/0.0309/0.0024, affecting LAD@MIL. Recommended action: treat exact scores as low-confidence; seek stronger features or a better target before tuning score tails. Guardrail: small positive R² only means better than guessing the average; it does not make exact scores reliable.complete_slate_audit_coverage. Evidence: 1/1 games structurally audited. Action: keep the per-game audit receipt in every report. Guardrail: full coverage does not cancel findings inside audited games.simulation_inert_on_slate. Evidence: 0 flip candidates, 0 published flips, affecting LAD@MIL. Action: measure simulation contribution over rolling slates, separating score realization from winner flipping. Guardrail: zero winner flips alone is not a defect and does not show that score reconciliation did no work. The cross-slate escalation changes the persistence diagnosis; see sections 7–8.no_change). The matchup breakdown attributes the home-side shortfall to offense; the away side is characterized as not materially breaking and closer to variance. The strongest listed contributors include Andy Pages (LAD, −1.26 runs versus projection), Brice Turang (MIL, +1.26), Andrew Vaughn (MIL, +1.11), Teoscar Hernández (LAD, +0.94), and Shohei Ohtani (LAD, +0.80). The learning analysis labels the latter four as learnable hitter deviations based on their reported season contact-quality tiers and xwOBA; it does not establish that a one-game player adjustment would improve future forecasts. The slate-level player metrics report generally weak per-hitter projections against a flat slate mean; see section 5.There were no winner losses: misses 0, hits 1. There is consequently no losing pick for which to reconstruct the earliest stage that moved the predicted winner toward the wrong result. The score forecast did miss, and stage-level score metrics show where run and margin errors changed.
Score-stage quality, compared directly with the official final score:
| Stage | Team-run MAE | Change vs historical ML | Total-run MAE | Margin MAE | Change in winner accuracy |
|---|---|---|---|---|---|
historical_ml | 2.9843 | 0.0000 | 5.9685 | 0.3521 | Baseline; 1/1 |
variance_applied | 3.0000 | +0.0157 | 6.0000 | 0.0000 | 0 |
enhanced_prediction | 2.0000 | −0.9843 | 4.0000 | 0.0000 | 0 |
kpi_layer | 2.0000 | −0.9843 | 4.0000 | 0.0000 | 0 |
embedded_savant_run_environment | 1.5000 | −1.4843 | 3.0000 | 1.0000 | 0 |
fundamental_edge_target_review | 1.5000 | −1.4843 | 3.0000 | 1.0000 | 0 |
capped_target | 1.5000 | −1.4843 | 3.0000 | 1.0000 | 0 |
simulation_result | 1.5000 | −1.4843 | 3.0000 | 1.0000 | 0 |
published_final | 1.5000 | −1.4843 | 3.0000 | 1.0000 | 0 |
The transition log reports no changed-direction games and no winner-direction regressions. It does, however, show a score-metric tradeoff: historical ML → variance worsened team-run MAE by 0.0157 while margin MAE improved by 0.3521; variance → enhanced prediction improved team-run MAE by 1.0; KPI made no change; KPI → embedded run environment improved team-run MAE by 0.5 but worsened margin MAE by 1.0. Later improvements in team-run/total-run error do not erase the intermediate margin regression. The supplied per-stage table does not provide each stage’s exact predicted score, so those scores cannot be reconstructed from these MAEs alone.
Cause categories for this game:
Pipeline-stage audit across all stages and transitions: All nine recorded stages and all eight transitions are accounted for above. Winner accuracy remains 1/1 at every stage; changed-direction, improved-game, and regressed-game arrays are empty. The numerical MAE deltas still matter: variance_applied slightly worsened team-run MAE; enhanced_prediction improved it; the embedded environment stage improved team-run and total-run errors but regressed margin MAE. fundamental_edge_target_review, capped_target, simulation_result, and published_final then leave those metrics unchanged. A later score-error recovery therefore does not erase the intermediate margin regression.
There is one game, so “helps” and “hurts” can only name that game; the supplied lever_tension entries all explicitly report no helped games and no hurt games. That is absence of counterfactual evidence, not proof of neutrality.
| Lever tension entry | Games it helps / hurts | Net evidence on changing it |
|---|---|---|
score.variance_multiplier / score.variance_floor (widen run distributions); targets Brier and calibration error | Helps: none listed. Hurts: none listed. | No slate-specific help/hurt evidence. Do not infer that widening variance fixes the +3 total-run mean bias; variance is a spread lever. |
player.pitcher.v4 form weights / player.pitcher_prior_games; targets starter ER/outs MAE | Helps: none listed. Hurts: none listed. | No counterfactual evidence. Starter outcomes were mixed; no game-based case for changing these weights. |
recent.* / season.* run-mean weighting; targets team-run MAE, total-run MAE, accuracy | Helps: none listed. Hurts: none listed. | The game’s total was over-projected, but the single game does not show whether a recent/season reweighting would correct it. Cross-slate lineup evidence supports investigating the run environment, not a broad untested reweighting. |
Tempting one-game fixes not justified: Do not raise MIL’s hitter projections solely from Turang and Vaughn’s results, lower LAD projections solely from Pages’ result, or adjust pitcher weights from these two starts. Do not change calibration weights because the one-game bucket error is large; the monitor expressly recommends rolling-window observation. Do not widen score variance as a substitute for correcting a possibly hot run mean. These changes either lack counterfactual support or risk learning from one-game noise.
Audit finding inventory available in the supplied diagnosis:
Model versus artifact defects:
recency_discount_factor is null and recency_guardrail_applied false. Published-minus-calibrated is +0.000041, with transformation described as publication matching the calibrated/governed value and unexplained_material_delta=false. The trace independently calls 0.550827 the raw pick probability, in conflict with lineage’s 0.5713 raw-model value. Thus, the final published value is accounted for by the recorded downstream transformation, and this is not a demonstrated material publication bypass; the upstream raw-field semantics/contract still need reconciliation.Raw structural evidence:
diagnostic_only_without_independent_support, priority P2.historical_game_temporal_v11, trained 2026-09-27; holdout R² 0.002143 home / 0.030936 away / 0.002415 total; walk-forward accuracy 0.570149, Brier 0.242204; validation winner accuracy 0.600414, Brier 0.239378. The near-zero run-target signal is a model-development concern, not something a one-game score fix resolves.score.variance_floor only as a spread lever. Starter ERA error is negative on 6/10 slates, mean −0.345, z = −0.83, and is explicitly on hold as not separable from noise. The current slate’s mean lineup delta is −1.5 across two sides and mean starter ERA error −0.84.margin_bias improving (mean −1.0); mean_team_run_error_on_losses improving (mean 2.5); weighted_calibration_error flat (mean 0.4528); winner_accuracy improving (mean 0.8056). “Improving” is the recorded direction, not a claim that all metrics are already good.Every finding_streaks entry:
| Finding | Consecutive-slate count | Present now? | Context |
|---|---|---|---|
pipeline_winner_instability | 0 | No | Incidence 1 in an 11-slate window; no target lever. |
score_margin_compression | 0 | No | Incidence 2; target levers score.variance_multiplier, score.variance_floor. |
simulation_inert_on_slate | 11 | Yes | Incidence 11/11; targets simulation.allow_score; target metrics team-run and total-run MAE. |
single_slate_calibration_instability | 2 | Yes | Incidence 9; targets confidence.empirical_max_weight, confidence.base_cap, confidence.moderate_cap. |
weak_run_model_signal | 2 | Yes | Incidence 9; targets training XGBoost estimator count, depth, and learning rate; this finding is marked not parameter-actionable. |
Escalated finding—established failure, not single-slate noise: simulation_inert_on_slate is explicitly escalated at 11 consecutive slates. Treat it as an established simulation/process failure pattern. The self-assessment gives a concrete suspected mechanism: the same draws are used both to search for a target-realizing play-by-play and to form the win-probability distribution, with early exit after finding a realization (default draw count around 2). It says this can make the win-rate/agreement signal vacuous. That is a supplied diagnosis, not an independently verified code execution result. The specified action is to confirm the module runs rather than silently no-oping, then separate target-score realization from an independent, unsteered win-probability batch (or a closed-form distribution), and feed a meaningful win-rate to the final policy.
Recommendations are ranked by evidence strength, persistence, scope, expected metric, affected games, and regression risk. These are proposed changes or shadow tests only; no changes have been applied.
simulation.allow_score; target metrics team_run_mae, total_run_mae.param_actionable=false, and the self-assessment specifically calls for an operator/code fix. In shadow, instrument whether the simulation is actually invoked, its draw count, early-exit reason, and whether an independent unsteered distribution is produced. Implement the stated separation of score-target realization and win-probability estimation, with batch size registered; compare a bounded 200–500 independent draws against a closed-form alternative as an isolated diagnostic.recent.* / season.* run-mean weighting is the available lever-tension entry targeting team-run MAE, total-run MAE, and accuracy. A small 2% reduction in the run-mean contribution of the currently over-projecting component, evaluated in shadow only, is a bounded test—not a claim that the JSON identifies which component is at fault. Do not use score.variance_floor to lower the mean: the bias register explicitly calls that a spread lever and says to check the run environment first.confidence.empirical_max_weight, confidence.base_cap, confidence.moderate_cap.training.xgb.n_estimators, training.xgb.max_depth, training.xgb.learning_rate, but the finding is marked param_actionable=false.recent.* / season.* tension row lists none helped or hurt. LAD@MIL’s score error is one example, not proof that any of the training parameters will fix it.Known: the only reviewed game, LAD@MIL, was a correct MIL winner call but a wrong score forecast (2–4 predicted versus 1–2 actual). The published probability was about 54.8%, with a 0.0965 home-minus-away edge; the pick hit. The total was over-projected by 3. Starter evidence is mixed, the per-game structural audit passed, and no artifact defect is identified as the cause.
Persistent evidence is more actionable than the one-game result: the run model has near-zero holdout R², lineup runs have been below projection on 7/10 slates, and the simulation-inert finding has persisted 11 consecutive slates and is escalated. Calibration error is flat across the reported trend window, but this game’s calibration bucket contains only one outcome. The upstream raw-probability fields conflict, even though the final published value matches the governed value and no material publication bypass is recorded.
Uncertain: which run-mean component caused this particular overprojection; whether any specific hitter, pitcher, or calibration adjustment would improve future slates; and whether the diagnosed simulation mechanism is the live code path without operator verification.
Safest next action for the very next slate: instrument and shadow-audit the simulation’s independent probability-distribution path—confirm it runs, record draw count and early-exit behavior, and do not change live confidence or variance parameters on this one-game result.