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_20261008.json | 17218 |
| forensic deep audit | loaded | probability, provenance, starter and decision contracts | /app/output/reports/PREDICTION_SYSTEM_DEEP_AUDIT_20261008.json | 45923 |
| continuous learning | loaded | pipeline-stage quality, calibration, probability lineage, score distribution, and official starter comparisons | /app/output/learning/continuous_learning_daily_20261008.json | 245469 |
| detailed report | loaded | full game and simulation rendering | /app/output/reports/detailed_20261008.html | 58372 |
| ultra detailed player audit | loaded | player-level prediction trace | /app/output/reports/20261008_ultra_detailed_player_audit.html | 3404020 |
| structural audit | loaded | all invariant findings | /app/output/reports/audit_report_20261008.html | 244042 |
| integrity revision audit | loaded | structural audit of every post-start revision of the slate's games | /app/output/reports/audit_report_20261008_integrity_revision.html | 126889 |
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 | CLE@CHW | 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.4950 across 1 games | CLE@CHW | 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 | CLE@CHW | 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 2/1 games structurally audited | CLE@CHW | 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 | CLE@CHW | 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. |
| single_slate_calibration_instability | 6 consecutive · 9 in window | confidence.empirical_max_weight, confidence.base_cap, confidence.moderate_cap | increase empirical shrinkage | single_slate_calibration_instability has persisted 6 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 | 6 consecutive · 9 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 6 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 | 3/11 | no | code/diagnostic |
| score_margin_compression | 1 | 4/11 | yes | param |
| simulation_inert_on_slate | 11 | 11/11 | yes | code/diagnostic |
| single_slate_calibration_instability | 6 | 9/11 | yes | param |
| weak_run_model_signal | 6 | 9/11 | yes | code/diagnostic |
| Metric | Direction | Series (old → new) |
|---|---|---|
| winner_accuracy | improving | –, 1.0, 0.75, 1.0, –, 1.0, 0.5, 0.0, 1.0, 0.75, 1.0 |
| weighted_calibration_error | regressing | –, 0.4792, 0.2317, 0.4832, –, 0.4705, 0.4806, 0.5291, 0.4642, 0.2272, 0.495 |
| margin_bias | regressing | –, -4.25, -2.75, -3.0, –, -0.25, 0.0, -0.5, -0.5, -1.75, -3.0 |
| team_run_error_on_losses | improving | –, –, 2.0, –, –, –, 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 | 0/1 | 0% | 2.715 | 5.147 | 5.429 |
| variance_applied | 0/1 | 0% | 2.5 | 5 | 5 |
| enhanced_prediction | 1/1 | 100% | 2.5 | 5 | 3 |
| kpi_layer | 1/1 | 100% | 2.5 | 5 | 3 |
| embedded_savant_run_environment | 1/1 | 100% | 2.5 | 5 | 3 |
| fundamental_edge_target_review | 1/1 | 100% | 2.5 | 5 | 3 |
| capped_target | 1/1 | 100% | 2.5 | 5 | 3 |
| simulation_result | 1/1 | 100% | 2.5 | 5 | 3 |
| published_final | 1/1 | 100% | 2.5 | 5 | 3 |
| Transition | Δ accuracy | Δ hits | Δ team-run MAE | Δ margin MAE | Games whose winner/tie changed |
|---|---|---|---|---|---|
| historical_ml → variance_applied | 0 | 0 | -0.2145 | -0.429 | TB@NYY: TB → TIE |
| variance_applied → enhanced_prediction | 1 | 1 | 0 | -2 | CLE@CHW: CHW → CLE; TB@NYY: TIE → TB |
| enhanced_prediction → kpi_layer | 0 | 0 | 0 | 0 | |
| kpi_layer → 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 |
|---|---|---|---|---|---|---|---|
| CLE@CHW | hit | 0.5 | 0.505 | 0.505 | 0.505 | 0.505 | 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 | 0 | 0 | 2 | 2.31 | 1 |
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.
1 of 1 games: the blend picked one side and the published number picked the other. The published probability is reconciled to the integer score after the blend runs, so a blend that disagrees with the score is overwritten before publication. On those games the trained classifier changes nothing a reader sees, even where the artifact records winner_changed.
| Game | Trained p(home) | Blended p(home) | Blend favoured | Published p(home) | Published side | Artifact says winner changed | Outcome |
|---|---|---|---|---|---|---|---|
| CLE@CHW | 0.653 | 0.576 | home | 0.495 | away | yes | hit |
Blend side survived on 0 of 1 games; the blend flagged a winner change on 1.
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.56 over 10 slates (sign shared by 0.60 of them, z = -1.67).
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.56 +/- 0.34 standard error: not separable from noise
lineup runs actual minus projected
Mean -0.59 over 10 slates (sign shared by 0.70 of them, z = -1.89).
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
7 of 10 slates share the sign, mean -0.59 +/- 0.31 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 |
|---|---|---|---|---|---|---|
| 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 | |
| 20260928 | — | — | — | |||
| 20260927 | 14 | 0.643 | -2.33 | -0.11 | 2 | 5 |
| 20260926 | 13 | 0.538 | 0.55 | 0.69 | 3 | 4 |
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 |
|---|---|---|---|
| CLE@CHW | 1 | 4 | -3 |
| Team | Starter | Projected | Actual | ER err |
|---|---|---|---|---|
| CLE | Parker Messick | 3 ER / 15 outs | 2 ER / 7 outs | -1 |
| CHW | Hagen Smith | 0 ER / 8 outs | 0 ER / 2 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
Parker Messick (CLE) threw 7 outs, 2 ER = 7.71 ERA against a projected 5.4 ERA (2.31 ERA error)
Bullpen behind him: 1 ER over 7 outs.
The HOME 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
HOME pitching
No settled pitching line for this club. The forecast named Hagen Smith (CHW) at a projected 0 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 AWAY lineup he faced produced 7 runs on 8 hits and 1 HR, against a projected 5 runs / 6 hits (2 runs vs projection).
Who did the damage to him:
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) |
|---|---|---|---|---|---|---|---|---|---|---|---|
| CLE | Parker Messick (Starter) | 7 / 15 | 7.71 / 5.4 | 2 / 3 | 2 / 5 | 0 / 1 | 4 / 3 | 1.57 | 5 / 4 | 5.78 | venue away: 2.22 vs 3.02 ERA (ok) · opp run factor 0.99 (average) · 33 prior appearances this season |
| CLE | Tim Herrin (Middle Reliever (High Leverage)) | 1 / 3 | 0 / 0 | 0 / 0 | 1 / 1 | 0 / 0 | 1 / 0 | 0.39 | 0 / 1 | 1.18 | |
| CLE | Erik Sabrowski (Setup Man) | 3 / 3 | 0 / 0 | 0 / 0 | 1 / 1 | 0 / 0 | 0 / 0 | 0.63 | 1 / 2 | 1.62 | |
| CLE | Cade Smith (Closer) | 3 / 6 | 9 / 0 (+9.00) | 1 / 0 | 2 / 1 | 1 / 0 | 1 / 1 | 0.23 | 1 / 3 | 1.57 |
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 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Angel Martínez (LF) | CLE | 3 / 3 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 2 | 1 / 1 | 0 / 1 | 1 / 0 | -1.73 | 0.299 below average | projection too high |
| Nathaniel Lowe (1B) | CLE | 4 / 3 | 2 / 2 | 0 / 0 | 0 / 1 | 0 / 1 | 0 / 2 | 0 / 2 | 1 / 1 | 0 / 1 | -1.55 | 0.335 above average | bad day |
| José Ramírez (3B) | CLE | 5 / 4 | 2 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 3 / 0 | 2 / 0 | 0 / 1 | 0 / 1 | 1.54 | 0.325 above average | projection too low |
| Steven Kwan (CF) | CLE | 3 / 5 | 1 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 2 / 0 | 2 / 0 | 0 / 0 | 1.13 | 0.328 above average | projection too low |
| Travis Bazzana (2B) | CLE | 4 / 4 | 1 / 0 | 1 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 1 / 0 | 0 / 0 | 0 / 1 | 0.78 | 0.299 below average | good day |
| Jo Adell (DH) | CLE | 4 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 2 / 0 | 0 / 1 | 1 / 0 | 1 / 1 | 0.33 | 0.329 above average | — |
| Austin Hedges (C) | CLE | 1 / 3 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | -0.33 | 0.28 weak | — |
| Brayan Rocchio (SS) | CLE | 2 / 3 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 2 / 1 | 0 / 2 | 0.33 | 0.294 below average | — |
| Chase DeLauter (RF) | CLE | 4 / 5 | 1 / 2 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 0 / 1 | 1 / 0 | 0 / 1 | -0.14 | 0.346 elite | — |
| Signal | Home-away edge | Meaning |
|---|---|---|
| Season quality | 0.161 | positive favors home; negative favors away |
| Recent form | 0.03 | positive favors home; negative favors away |
| Starting-pitcher matchup | -0.001 | positive favors home; negative favors away |
| Composite | -0.085 | positive favors home; negative favors away |
| Stage | Away-home runs | Confidence | What changed |
|---|---|---|---|
| historical_ml | 3.71-5.14 | n/a | Base ML historical model prediction |
| variance_applied | 4-5 | n/a | Deterministic baseline target (variance factor 1.0) |
| enhanced_prediction | 5-4 | 0.505 | Enhanced ML with recent form, H2H, low-score analysis (confidence shrunk by projected_margin_is_one_run, matchup_recency_guardrail) |
| kpi_layer | 5-4 | n/a | Savant KPI blend computed and withheld; baseline kept |
| embedded_savant_run_environment | 5-4 | n/a | Target score adjusted by temporal Savant lineup quality versus opposing starter quality |
| fundamental_edge_target_review | 5-4 | n/a | Refreshed score target and win probability after Savant/pitcher/team-strength adjustments |
| capped_target | 5-4 | n/a | Capped at max 12 realistic runs |
| simulation_result | 5-4 | n/a | Final inning-by-inning simulation result |
| Stage | Before | After | Toward final pick | What changed |
|---|---|---|---|---|
| variance_applied | 3.71-5.14 | 4-5 | 0.429 | Deterministic baseline target (variance factor 1.0) |
| enhanced_prediction | 4-5 | 5-4 | 2 | Enhanced ML with recent form, H2H, low-score analysis (confidence shrunk by projected_margin_is_one_run, matchup_recency_guardrail) |
| kpi_layer | 5-4 | 5-4 | -0 | Savant KPI blend computed and withheld; baseline kept |
| embedded_savant_run_environment | 5-4 | 5-4 | -0 | Target score adjusted by temporal Savant lineup quality versus opposing starter quality |
| fundamental_edge_target_review | 5-4 | 5-4 | -0 | Refreshed score target and win probability after Savant/pitcher/team-strength adjustments |
| capped_target | 5-4 | 5-4 | -0 | Capped at max 12 realistic runs |
| simulation_result | 5-4 | 5-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 |
|---|---|---|---|---|
| CLE | Erik Sabrowski | pitcher / Setup Man | better | predicted_ER -3 |
| CHW | Hagen Smith | pitcher / Starter | better | predicted_IP -2.8 |
| CHW | Randal Grichuk | batter / LF | worse | predicted_AB 2.5 |
| CLE | Parker Messick | pitcher / Starter | worse | predicted_ER 2 |
| CLE | Cade Smith | pitcher / Closer | better | predicted_SO 2 |
| CHW | Bryan Hudson | pitcher / Middle Reliever (High Leverage) | worse | predicted_BB 2 |
| CHW | Anthony Kay | pitcher / Setup Man | worse | predicted_BB 2 |
| CLE | Nathaniel Lowe | batter / 1B | better | predicted_R 1.697 |
| 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 20261007. 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.2461 | 0.2453 | -0.000828 | improved |
| accuracy | 0.5965 | 0.6106 | +0.0141 | improved |
| team_run_mae | 2.386 | 2.3982 | +0.0122 | regressed |
| total_run_mae | 3.5614 | 3.5929 | +0.0315 | regressed |
| calibration_error | 0.109 | 0.1238 | +0.0148 | regressed |
| starter_er_mae | 1.6736 | 1.6402 | -0.0334 | improved |
| starter_outs_mae | 4.2066 | 4.2383 | +0.0317 | regressed |
All seven source_manifest entries are present and marked loaded:
| Source | Bytes | Purpose |
|---|---|---|
prediction review — /app/output/reports/prediction_review_20261008.json | 17,218 | Official outcomes and scoring errors |
forensic deep audit — /app/output/reports/PREDICTION_SYSTEM_DEEP_AUDIT_20261008.json | 45,923 | Probability, provenance, starter and decision contracts |
continuous learning — /app/output/learning/continuous_learning_daily_20261008.json | 245,469 | Pipeline stages, calibration, probability lineage, score distribution and starter comparisons |
detailed report — /app/output/reports/detailed_20261008.html | 58,372 | Game and simulation rendering |
ultra detailed player audit — /app/output/reports/20261008_ultra_detailed_player_audit.html | 3,404,020 | Player-level prediction trace |
structural audit — /app/output/reports/audit_report_20261008.html | 244,042 | Invariant findings |
integrity revision audit — /app/output/reports/audit_report_20261008_integrity_revision.html | 126,889 | Structural audit of post-start revisions |
Game-level review: one game is supplied in games[]: CLE@CHW. Its official result is CLE 9, CHW 5. The game record says games_reviewed: 1, hits: 1, misses: 0; the continuous-learning summary says one settled game, also one hit and zero misses. Thus the available game-level result is internally consistent.
Coverage-count contradiction: the same evidence reports expected_games: 1, but canonical_artifacts_loaded: 2, continuous_learning_games: 2, forensic_deep_audit_games: 2, structural_audits_completed: 2, and forensic_deep_audit_games: 2. The causal register describes this as “2/1 games structurally audited.” These counts do not reconcile to the single supplied game record. The pipeline transitions also name TB@NYY, which is absent from games[] and has no supplied score, probability, or game-level audit here. I report that transition as evidence of a coverage/provenance gap, not as a second game that can be independently evaluated.
There are no listed starter comparisons for a second game, and the only player-level trace supplied is for CLE@CHW. I do not infer any missing TB@NYY results or player outcomes.
toss_up.confidence_overconfident and its “lower confidence caps” proposal. It also warrants caution with the cross-slate escalation’s prescribed increase in empirical shrinkage: the escalation is established as a recurring finding, but the direction of any adjustment is not validated by this single hit.single_slate_calibration_instability; its persistent status is actionable, while the present one-game calibration reading is not enough to select a production change.PASS, with 0 critical, 0 error, 0 warning and 1 info.score_margin_compression — high, score distribution, CLE@CHW. Evidence: 1/1 predicted margins ≤2; 1/1 actual margins ≥4; mean predicted margin 1.00 versus actual 4.00. Action: check tail coverage and margin MAE across recent out-of-sample slates before widening. Guardrail: a single blowout does not justify widening every score prediction.single_slate_calibration_instability — high, calibration, CLE@CHW. Evidence: weighted absolute calibration error 0.4950 across one game. Action: watch confidence buckets over the rolling window before changing calibration weight. Guardrail: one slate is far too small to establish a stable calibration curve.weak_run_model_signal — high, model validation, CLE@CHW. Evidence: home/away/total run-model R² = 0.0021/0.0309/0.0024. Action: treat exact runs as low-confidence; investigate features/target rather than tuning score tails. Guardrail: small positive R² only means beating a mean-only reference; it does not make exact scores reliable.complete_slate_audit_coverage — info, coverage, CLE@CHW. Evidence says “2/1 games structurally audited.” Action: retain a per-game audit receipt in each report. Guardrail: full audit coverage does not cancel game-level findings. The stated coverage count is internally inconsistent with the one supplied game record and must not be taken as proof that the unprovided game was reviewed here.simulation_inert_on_slate — info, simulation, CLE@CHW. Evidence: 0 flip candidates and 0 published flips. Action: measure simulation contribution across rolling slates, separating score realization from winner flipping. Guardrail: zero winner flips is not itself a defect and does not mean no score-reconciliation work occurred. The cross-slate evidence separately escalates the recurring simulation issue, discussed below.Prediction and result
toss_up. The diagnostic correctly cautions that an edge of 0.01 is not “the half-scale distance from 50%.”Errors
Starter comparison
Pregame edges, confidence and controls
model_trace: 0.526027; calibration sample size 571, empirical hit rate 0.5499; governed pick probability 0.505. Governor was applied.probability_lineage record says raw model pick probability was 0.500, rather than 0.526027. That discrepancy is a provenance issue, not a basis for choosing whichever raw value better explains the final pick.Score path
Important player-level evidence
Audit and cause
null); player-forensics verdict counts assign two deviations to variance and none to offense or pitching as a side-level verdict.Game losses: none in the supplied game list. Thus there is no losing pick for which to assign a wrong-winner cause. CLE@CHW is a winner hit and a score miss, not a winner loss. The unexplained TB@NYY transition cannot be reconstructed as a game result from this evidence.
For the score miss in CLE@CHW, the earliest relevant evidence and distinctions are:
All listed stages have one game of measurement; interpret the metrics as one-game observations.
| Stage | Winner hits / accuracy | Margin MAE | Team-run MAE | Total-run MAE |
|---|---|---|---|---|
| historical_ml | 0 / 0.0 | 5.429 | 2.7145 | 5.1472 |
| variance_applied | 0 / 0.0 | 5.000 | 2.500 | 5.000 |
| enhanced_prediction | 1 / 1.0 | 3.000 | 2.500 | 5.000 |
| kpi_layer | 1 / 1.0 | 3.000 | 2.500 | 5.000 |
| embedded_savant_run_environment | 1 / 1.0 | 3.000 | 2.500 | 5.000 |
| fundamental_edge_target_review | 1 / 1.0 | 3.000 | 2.500 | 5.000 |
| capped_target | 1 / 1.0 | 3.000 | 2.500 | 5.000 |
| simulation_result | 1 / 1.0 | 3.000 | 2.500 | 5.000 |
| published_final | 1 / 1.0 | 3.000 | 2.500 | 5.000 |
largest_team_run_regression_vs_base is labeled variance-applied, but its deltas versus historical ML are negative (improvements), not regressions. The label and numeric deltas are internally inconsistent; the numeric values show improvement on this one game.The supplied lever_tension contains three entries; with only one game, its listed benefits and costs are limited to that game.
score.variance_multiplier / score.variance_floor — widen run distributionsplayer.pitcher.v4 form weights / player.pitcher_prior_gamesrecent.* / season.* run-mean weightingTempting one-game fixes to avoid: widening every score after the 9–5 result; changing pitcher-form weights based on this single starter comparison; fitting individual hitter weights to the deviations of Lowe or Bazzana without supporting cross-slate evidence; and treating the 0.505 winner probability as proof that confidence should be lowered or raised. Each would overfit sparse evidence or conflict with the supplied lever-tension/guardrail evidence.
good: 108, info: 1), and one informational note in the forecast-file integrity summary. Their detailed text is not supplied, so they cannot be named more specifically. The causal register separately records two informational findings:complete_slate_audit_coverage, with evidence “2/1 games structurally audited,” action to retain per-game receipts, and guardrail that coverage does not cancel game-level findings.simulation_inert_on_slate, with 0 flip candidates and 0 published flips; its guardrail is that zero winner flips is not, by itself, a defect.The matrix says the expected game count is 1 while several loaded/audited counts are 2. The supplied game array and games_reviewed are both 1. The “2/1” causal-issue evidence therefore cannot be reconciled from this payload. The extra TB@NYY pipeline transition reinforces, but does not resolve, the discrepancy. Do not call coverage clean solely because all_games_structurally_audited is true.
The published side was away/CLE at 0.505.
model_trace reports raw pick probability 0.526027. probability_lineage instead reports raw model pick probability 0.500. These values conflict; the payload does not explain whether they have different definitions.published_minus_calibrated is 0 and the lineage marks the published probability transformation as matching the calibrated/governed value.The lineage does not label an unexplained material delta between calibrated/governed probability and published probability. However, the 0.500 versus 0.526027 raw-value conflict is unresolved, and the displayed raw-to-governor-input path has no explicit transformation description in the lineage. This is an observability/contract gap; the JSON does not establish that the final published probability bypassed a recorded calibration or governor transformation.
A separate probability_reversions record reports trained home-win probability 0.653438, blended home probability 0.575938, a blend-stage side change to home, and a published away side at home-win probability 0.495; it says the blend side did not survive publication (overwritten: 1). That material event is recorded in the separate reversions block, but it is not represented as a step in the pick-side probability_lineage. Treat this as an incomplete cross-block trace, not proof of an unrecorded bypass.
Model/process defects versus presentation/artifact concerns
margin_distribution: one row, CLE@CHW; predicted margin 1, actual margin 4, signed margin error −3. One observation only.pipeline_stage_quality.transitions: winner direction first remains wrong through variance-applied, then changes from CHW to CLE at enhanced prediction; later stages show no change. The TB@NYY references are not corroborated by the game list.calibration_monitoring: one settled observation, confidence 0.505, actual hit rate 1.0, signed error −0.495 (underconfident for the observed bucket), weighted absolute error 0.495.high_raw_cluster: 0 games, 0 hits, threshold 0.65. There are no high-raw picks in this block.simulation_control: 2 observed games, 0 flip candidates, 0 published flips; status diagnostic_only_without_independent_support. This is not evidence that a winner flip should have occurred. The cross-slate streak, however, makes the repeated lack of useful simulation signal an established diagnostic concern.pipeline_winner_instability: 0 consecutive slates, not present now; 3 incidences in the 11-slate window; no target lever.score_margin_compression: 1 consecutive slate, present now; 4 incidences in the window; target levers score.variance_multiplier, score.variance_floor.simulation_inert_on_slate: 11 consecutive slates, present now; 11 incidences; target list includes simulation.allow_score, but param_actionable is false.single_slate_calibration_instability: 6 consecutive slates, present now; 9 incidences; target levers confidence.empirical_max_weight, confidence.base_cap, confidence.moderate_cap.weak_run_model_signal: 6 consecutive slates, present now; 9 incidences; target list includes training XGBoost parameters, but param_actionable is false.simulation.allow_score; target metrics: team-run MAE and total-run MAE; stated direction: confirm the simulation module is running rather than silently no-oping. This has a concrete code/diagnostic action, not a supported parameter adjustment. The self-assessment identifies a likely structural cause: the same draws are used both to search for a target-realizing play-by-play and estimate the win distribution; early exit can leave only about two selected draws. It recommends an independent, unsteered distribution batch that does not early-exit, feeding the resulting win rate to the distribution-agreement policy. This root-cause description is supplied as a self-assessment, not independently demonstrated by the game receipt.confidence.empirical_max_weight, confidence.base_cap, confidence.moderate_cap; metrics: Brier and calibration error; recommended direction: increase empirical shrinkage. Its persistence warrants a bounded shadow experiment. The current one-game bucket is underconfident, while the self-assessment proposes lower caps; this directional conflict argues for shadow comparison and monitoring rather than automatic application.training.xgb.n_estimators, training.xgb.max_depth, and training.xgb.learning_rate, but param_actionable is false. Target metrics: team-run and total-run MAE. The stated action is to investigate features/target by isolated training backtest, not to force a nightly parameter change. Holdout R² is 0.002415 total, 0.002143 home, 0.030936 away.margin_bias: regressing, mean −1.7778.mean_team_run_error_on_losses: improving, mean 2.375.weighted_calibration_error: regressing, mean 0.429.winner_accuracy: improving, mean 0.7778.loss_streak: 0.unknown; those cannot be counted as hits or misses from this record.The separate 10-slate bias record does not establish an actionable starter or lineup-run bias:
hold, not persistent.hold, not persistent.These are not grounds for changing context.opponent_strength_weight or score.variance_floor on their own.
Recommendations below are bounded proposals or diagnostics; none is promoted or applied here. Persistent patterns receive priority over the one-game signal.
confidence.empirical_max_weight.lever_tension; none can be named from this slate. CLE@CHW was a 0.505-probability hit, so blindly reducing its confidence could hurt calibration for this one observation.simulation.allow_score; do not force a change to it, because the finding is explicitly param_actionable: false._build_simulation_distribution; verify whether early exit and target-realization selection are contaminating the win-rate sample. Compare against an independent unsteered, non-early-exiting probability batch as proposed in the supplied self-assessment.training.xgb.n_estimators, training.xgb.max_depth, training.xgb.learning_rate; the finding marks this non-actionable by parameter.lever_tension games map to training changes.score.variance_multiplier (a named target of score_margin_compression; do not simultaneously alter score.variance_floor).lever_tension lists no helped or hurt games for score variance. The only directly relevant game is CLE@CHW, where predicted margin 1 and actual margin 4 favor a wider tail; the causal register explicitly warns not to widen every score from one blowout. No other game is supplied to assess collateral effects.No production change to pitcher weights or a wildcard recent.* / season.* parameter is recommended: the supplied tension gives no net cross-game evidence, and the latter does not name an exact parameter. The self-assessment’s general “lower caps and widen run variance” recommendation is not taken as a direct production instruction because it conflicts with the current observed calibration direction and the one-game score guardrail.
Known: CLE@CHW was a correct-winner, wrong-score prediction. The away win probability was 0.505; the pick hit, but CLE was under-projected by four runs and the total by five. Exact run models have near-zero reported holdout R². The game artifact passed its supplied structural checks, while the starter-feed line for Hagen Smith is missing.
Uncertain or defective: only one supplied game can be fully reviewed despite multiple reported coverage counts and a TB@NYY transition. Raw pick probability is reported as both 0.500 and 0.526027. Calibration’s current single observation is underconfident, despite a persistent calibration-instability finding and a conflicting self-assessment recommendation. The magnitude and causes of the score miss cannot be cleanly separated among run-model signal, offense, starter usage and variance from this game alone.
Safest next action: have the operator verify the simulation’s early-exit/draw-distribution path and measure an independent, unsteered win-probability distribution in shadow. This addresses the longest persistent failure without forcing a parameter move or claiming that the single game proves a particular score or winner adjustment.