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_20261005.json | 53717 |
| forensic deep audit | loaded | probability, provenance, starter and decision contracts | /app/output/reports/PREDICTION_SYSTEM_DEEP_AUDIT_20261005.json | 45957 |
| continuous learning | loaded | pipeline-stage quality, calibration, probability lineage, score distribution, and official starter comparisons | /app/output/learning/continuous_learning_daily_20261005.json | 347038 |
| detailed report | loaded | full game and simulation rendering | /app/output/reports/detailed_20261005.html | 57457 |
| ultra detailed player audit | loaded | player-level prediction trace | /app/output/reports/20261005_ultra_detailed_player_audit.html | 4406303 |
| structural audit | loaded | all invariant findings | /app/output/reports/audit_report_20261005.html | 253323 |
| integrity revision audit | missing | post-Luna remediation proof for immutable revision artifacts | /app/output/reports/audit_report_20261005_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 | artifact_integrity | Blocking canonical artifact error structural audit totals: {'critical': 0, 'error': 1, 'warning': 0, 'info': 14} | 20261005_NYY@TB | Do thisExclude this slate from parameter learning until the artifact-generation step that wrote the broken file is fixed. Don't concludeA malformed artifact is a file bug, not proof the prediction model was wrong; do not blame accuracy changes on it. |
| HIGH | calibration | Published confidence buckets were poorly aligned on this slate weighted absolute calibration error 0.5291 across 2 games | CHW@CLE, NYY@TB | 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 | CHW@CLE, NYY@TB | 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/2 games structurally audited | CHW@CLE, NYY@TB | 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 | CHW@CLE, NYY@TB | 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 | 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 · 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 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 |
|---|---|---|---|---|
| pipeline_winner_instability | 0 | 3/11 | no | code/diagnostic |
| score_margin_compression | 0 | 5/11 | no | 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 | 9/11 | yes | code/diagnostic |
| Metric | Direction | Series (old → new) |
|---|---|---|
| winner_accuracy | regressing | [0.6471, 0.5385, 0.6429, None, 1.0, 0.75, 1.0, None, 1.0, 0.5, 0.0] |
| weighted_calibration_error | regressing | [0.1302, 0.1524, 0.1031, None, 0.4792, 0.2317, 0.4832, None, 0.4705, 0.4806, 0.5291] |
| margin_bias | improving | [-1.706, -3.0, -1.571, None, -4.25, -2.75, -3.0, None, -0.25, 0.0, -0.5] |
| team_run_error_on_losses | improving | [5.333, 6.167, 4.8, None, None, 2.0, None, None, None, 2.0, 3.5] |
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/2 | 0% | 1.645 | 1.287 | 3.237 |
| variance_applied | 0/2 | 0% | 1.75 | 1.5 | 3.5 |
| enhanced_prediction | 0/2 | 0% | 1.5 | 1 | 3 |
| embedded_savant_run_environment | 0/2 | 0% | 1.75 | 1.5 | 3.5 |
| fundamental_edge_target_review | 0/2 | 0% | 1.75 | 1.5 | 3.5 |
| capped_target | 0/2 | 0% | 1.75 | 1.5 | 3.5 |
| simulation_result | 0/2 | 0% | 1.75 | 1.5 | 3.5 |
| published_final | 0/2 | 0% | 1.75 | 1.5 | 3.5 |
| Transition | Δ accuracy | Δ hits | Δ team-run MAE | Δ margin MAE | Games whose winner/tie changed |
|---|---|---|---|---|---|
| historical_ml → variance_applied | 0 | 0 | 0.1054 | 0.2634 | |
| variance_applied → enhanced_prediction | 0 | 0 | -0.25 | -0.5 | |
| enhanced_prediction → embedded_savant_run_environment | 0 | 0 | 0.25 | 0.5 | |
| 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 |
|---|---|---|---|---|---|---|---|
| CHW@CLE | miss | 0.5413 | 0.5256 | 0.5256 | 0.5256 | 0.5185 | score coherence followed by matchup-recency guardrail |
| NYY@TB | miss | 0.5808 | 0.5466 | 0.5466 | 0.5466 | 0.5396 | 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 |
|---|---|---|---|---|---|---|
| 4 | 0 | 2 | 0 | 2 | -1.11 | -0.75 |
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 2 games with an applied blend, the blend's side and the published side agree.
Blend side survived on 2 of 2 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.16 over 10 slates (sign shared by 0.50 of them, z = -0.42).
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
5 of 10 slates share the sign, mean -0.16 +/- 0.39 standard error: not separable from noise
lineup runs actual minus projected
Mean -0.46 over 10 slates (sign shared by 0.60 of them, z = -1.43).
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
6 of 10 slates share the sign, mean -0.46 +/- 0.32 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 |
|---|---|---|---|---|---|---|
| 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 |
| 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 |
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 |
|---|---|---|---|
| CHW@CLE | 1 | 1 | 0 |
| NYY@TB | 2 | 3 | -1 |
No large single-factor errors.
| Team | Starter | Projected | Actual | ER err |
|---|---|---|---|---|
| CHW | Anthony Kay | 1 ER / 14 outs | 1 ER / 1 outs | 0 |
| CLE | Gavin Williams | 3 ER / 17 outs | 2 ER / 15 outs | -1 |
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 Anthony Kay (CHW) at a projected 1.93 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 3 runs on 4 hits and 0 HR, against a projected 5 runs / 8 hits (-2 runs vs projection).
Who did the damage to him:
Verdict: neither side broke materially - the result is closer to variance
HOME pitching
Gavin Williams (CLE) threw 15 outs, 2 ER = 3.6 ERA against a projected 4.76 ERA (-1.16 ERA error)
Bullpen behind him: 2 ER over 8 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: 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) |
|---|---|---|---|---|---|---|---|---|---|---|---|
| CLE | Gavin Williams (Starter) | 15 / 17 | 3.6 / 4.76 | 2 / 3 | 4 / 6 | 0 / 1 | 3 / 0 | 2.14 | 11 / 6 | 7.1 | venue home: 2.84 vs 5.05 ERA (ok) · opp run factor 0.97 (average) · 32 prior appearances this season |
| CLE | Cade Smith (Closer) | 3 / 3 | 0 / 0 | 0 / 0 | 0 / 2 | 0 / 0 | 0 / 0 | 0.27 | 0 / 0 | 1.26 | |
| CLE | Erik Sabrowski (Middle Reliever (High Leverage)) | 2 / 4 | 27 / 6.75 (+20.25) | 2 / 1 | 1 / 2 | 0 / 0 | 1 / 0 | 0.63 | 0 / 0 | 1.32 | |
| CLE | Hunter Gaddis (Setup Man) | 3 / 3 | 0 / 0 | 0 / 0 | 1 / 0 | 0 / 0 | 0 / 1 | 0.31 | 1 / 0 | 0.81 |
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 | 4 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 0 / 1 | 0 / 0 | 2 / 1 | -1.4 | 0.299 below average | projection too high |
| José Ramírez (3B) | CLE | 3 / 4 | 0 / 1 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 1 / 1 | 2 / 1 | -0.78 | 0.325 above average | bad day |
| Jo Adell (DH) | CLE | 3 / 4 | 1 / 1 | 0 / 1 | 1 / 0 | 0 / 0 | 1 / 1 | 0 / 1 | 1 / 0 | 2 / 1 | 0.64 | 0.329 above average | projection too low |
| Nathaniel Lowe (1B) | CLE | 4 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 0 / 0 | 0 / 0 | 1 / 1 | -0.47 | 0.335 above average | — |
| Brayan Rocchio (SS) | CLE | 3 / 3 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 0 / 0 | -0.47 | 0.294 below average | — |
| Steven Kwan (CF) | CLE | 4 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 0 / 1 | 0 / 0 | -0.33 | 0.328 above average | — |
| Chase DeLauter (RF) | CLE | 4 / 4 | 2 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 1 / 0 | 0 / 1 | 0 / 1 | 0.14 | 0.346 elite | — |
| Travis Bazzana (2B) | CLE | 3 / 3 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 1 / 1 | -0.14 | 0.299 below average | — |
| Patrick Bailey (C) | CLE | 4 / 3 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 0 | 0.307 average | — |
| 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.049 | positive favors home; negative favors away |
| Composite | 0.192 | positive favors home; negative favors away |
| Stage | Away-home runs | Confidence | What changed |
|---|---|---|---|
| historical_ml | 4.05-4.66 | n/a | Base ML historical model prediction |
| variance_applied | 4-5 | n/a | Deterministic baseline target (variance factor 1.0) |
| enhanced_prediction | 4-5 | 0.518 | Enhanced ML with recent form, H2H, low-score analysis (confidence shrunk by projected_margin_is_one_run, matchup_recency_guardrail) |
| embedded_savant_run_environment | 4-5 | n/a | Target score adjusted by temporal Savant lineup quality versus opposing starter quality |
| fundamental_edge_target_review | 4-5 | n/a | Refreshed score target and win probability after Savant/pitcher/team-strength adjustments |
| capped_target | 4-5 | n/a | Capped at max 12 realistic runs |
| simulation_result | 4-5 | n/a | Final inning-by-inning simulation result |
| Stage | Before | After | Toward final pick | What changed |
|---|---|---|---|---|
| variance_applied | 4.05-4.66 | 4-5 | 0.395 | Deterministic baseline target (variance factor 1.0) |
| enhanced_prediction | 4-5 | 4-5 | 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 | 4-5 | 4-5 | 0 | Target score adjusted by temporal Savant lineup quality versus opposing starter quality |
| fundamental_edge_target_review | 4-5 | 4-5 | 0 | Refreshed score target and win probability after Savant/pitcher/team-strength adjustments |
| capped_target | 4-5 | 4-5 | 0 | Capped at max 12 realistic runs |
| simulation_result | 4-5 | 4-5 | 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 | Gavin Williams | pitcher / Starter | neutral | predicted_SO 3 |
| CHW | Sam Antonacci | batter / LF | better | predicted_RBI 2.648 |
| CLE | Brayan Rocchio | batter / SS | better | predicted_RBI 2.47 |
| CHW | Colson Montgomery | batter / SS | worse | predicted_H 2.22 |
| CLE | Erik Sabrowski | pitcher / Middle Reliever (High Leverage) | neutral | predicted_SO -2 |
| CHW | Kyle Teel | batter / C | worse | predicted_SO 1.634 |
| CHW | Miguel Vargas | batter / 3B | better | predicted_H 1.22 |
| CHW | Braden Montgomery | batter / RF | better | predicted_H 1.211 |
| Severity | Rule | Finding | Subject |
|---|---|---|---|
| info | CURRENT_PITCHER_DUPLICATION | CHW pitcher list appears in both predicted_performance.pitchers and player_predictions_by_position.pitchers; IDs match and were de-duplicated in this audit. | CHW |
| info | CURRENT_PITCHER_DUPLICATION | CLE pitcher list appears in both predicted_performance.pitchers and player_predictions_by_position.pitchers; IDs match and were de-duplicated in this audit. | CLE |
| info | CURRENT_FINALIZED_MATCH_BOX | CHW model-prediction batting totals differ from final simulation box score (AB: current=31, sim=37; H: current=7, sim=10; 2B: current=1, sim=5; R: current=5, sim=4; BB: current=4, sim=1; SO: current=11, sim=6). | CHW |
| info | CURRENT_PLAYER_MATCH_BOX | CHW current finalized hitter lines are model predictions and differ from the simulation box score: Sam Antonacci: AB current=4 box=5, H current=1 box=2, 2B current=0 box=1, RBI current=0 box=3; Munetaka Murakami: H current=1 box=0, HR current=1 box=0, RBI current=1 box=0, R current=1 box=0; Miguel Vargas: AB current=4 box=3, H current=1 box=2, HR current=0 box=1, SO current=1 box=0; Braden Montgomery: AB current=3 box=4, H current=1 box=2, 2B current=0 box=1, R current=0 box=1; Andrew Benintendi: AB current=3 box=4, H current=0 box=1, 2B current=0 box=1, RBI current=1 box=0; Kyle Teel: AB current=4 box=5, H current=1 box=0, RBI current=1 box=0, R current=1 box=0; Tristan Peters: AB current=3 box=4, H current=1 box=0, 2B current=1 box=0; Chase Meidroth: AB current=3 box=4, H current=1 box=0, R current=1 box=0 | CHW |
| info | CURRENT_FINALIZED_MATCH_BOX | CLE model-prediction batting totals differ from final simulation box score (H: current=8, sim=9; 2B: current=2, sim=3; RBI: current=4, sim=5; BB: current=3, sim=1; SO: current=7, sim=6). | CLE |
| info | CURRENT_PLAYER_MATCH_BOX | CLE current finalized hitter lines are model predictions and differ from the simulation box score: Steven Kwan: BB current=1 box=0; Jo Adell: 2B current=1 box=0, RBI current=1 box=0, R current=1 box=0; José Ramírez: H current=1 box=0, 2B current=1 box=0, R current=1 box=0, BB current=1 box=0; Nathaniel Lowe: AB current=4 box=3, H current=1 box=0, RBI current=1 box=0, BB current=0 box=1; Angel Martínez: HR current=1 box=0, RBI current=1 box=0, R current=1 box=0; Chase DeLauter: RBI current=1 box=0, R current=0 box=1, BB current=1 box=0; Patrick Bailey: H current=0 box=1, 2B current=0 box=1, RBI current=0 box=1, R current=0 box=1; Travis Bazzana: AB current=3 box=4, H current=1 box=2, 2B current=0 box=1, RBI current=0 box=1 | CLE |
| info | RECONCILIATION_PROPAGATION | No score_target_reconciliation step was used for this game. |
| Team | Starter | Projected | Actual | ER err |
|---|---|---|---|---|
| NYY | Cam Schlittler | 1 ER / 18 outs | 2 ER / 13 outs | 1 |
| TB | Freddy Peralta | 4 ER / 16 outs | 1 ER / 14 outs | -3 |
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:
Starter miss: Freddy Peralta (TB) posted 1.93 ERA vs projected 6.75 (1 ER in 14 outs); no credible venue, opponent-strength or experience signal explains it — an outlier start (variance).
What to do: Variance — no model change is warranted for this start.
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
Cam Schlittler (NYY) threw 13 outs, 2 ER = 4.15 ERA against a projected 1.5 ERA (2.65 ERA error)
Bullpen behind him: 0 ER over 6 outs.
The HOME lineup he faced produced 5 runs on 8 hits and 0 HR, against a projected 3 runs / 6 hits (2 runs vs projection).
Who did the damage to him:
Verdict: offense: the lineup scored well below its projection
HOME pitching
Freddy Peralta (TB) threw 14 outs, 1 ER = 1.93 ERA against a projected 6.75 ERA (-4.82 ERA error)
Bullpen behind him: 0 ER over 4 outs.
The AWAY lineup he faced produced 2 runs on 4 hits and 2 HR, against a projected 5 runs / 8 hits (-3 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) |
|---|---|---|---|---|---|---|---|---|---|---|---|
| NYY | Cam Schlittler (Starter) | 13 / 18 | 4.15 / 1.5 | 2 / 1 | 6 / 3 | 0 / 0 | 1 / 4 | 1.63 | 2 / 7 | 8.11 | venue away: 1.16 vs 2.77 ERA (ok) · opp run factor 1 (average) · 34 prior appearances this season |
| NYY | Paul Blackburn (Middle Reliever (High Leverage)) | 3 / 4 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0.5 | 0 / 0 | 0.99 | |
| NYY | David Bednar (Closer) | 1 / 3 | 0 / 9 (-9.00) | 0 / 1 | 1 / 1 | 0 / 0 | 0 / 1 | 0.37 | 0 / 0 | 1.11 | |
| NYY | Brent Headrick (Setup Man) | 2 / 2 | 0 / 0 | 0 / 0 | 1 / 0 | 0 / 0 | 0 / 0 | 0.36 | 1 / 0 | 0.88 | |
| TB | Freddy Peralta (Starter) | 14 / 16 | 1.93 / 6.75 (-4.82) | 1 / 4 | 3 / 7 | 1 / 1 | 1 / 2 | 1.82 | 3 / 4 | 3.68 | venue home: 3.53 vs 5.42 ERA (ok) · opp run factor 1.02 (strong) · 32 prior appearances this season |
| TB | Bryan Baker (Closer) | 3 / 3 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0.29 | 0 / 1 | 0.75 | |
| TB | Cam Booser (Middle Reliever (High Leverage)) | 1 / 3 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 0.12 | 0 / 1 | 0.87 |
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 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Ben Rice (DH) | NYY | 3 / 4 | 2 / 1 | 0 / 0 | 0 / 0 | 2 / 1 | 2 / 1 | 2 / 1 | 1 / 1 | 0 / 1 | 1.4 | 0.378 elite | projection too low |
| Trent Grisham (CF) | NYY | 3 / 3 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | -0.8 | 0.337 above average | bad day |
| Luis García Jr. (1B) | NYY | 4 / 4 | 0 / 1 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 0 / 0 | 2 / 1 | -0.78 | 0.341 elite | bad day |
| Austin Wells (C) | NYY | 3 / 3 | 1 / 0 | 1 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 2 / 1 | 0.78 | 0.302 below average | good day |
| Cody Bellinger (LF) | NYY | 4 / 4 | 1 / 1 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 0 / 1 | 0 / 0 | -0.64 | 0.335 above average | bad day |
| Junior Caminero (3B) | TB | 4 / 4 | 2 / 1 | 1 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 1 / 1 | 0 / 1 | 0 / 1 | -0.48 | 0.364 elite | — |
| Spencer Jones (RF) | NYY | 4 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 0 / 0 | 1 / 1 | -0.47 | 0.328 above average | — |
| George Lombard Jr. (SS) | NYY | 4 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 1 / 1 | -0.47 | 0.298 below average | — |
| Jazz Chisholm Jr. (2B) | NYY | 4 / 3 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 1 / 1 | -0.47 | 0.294 below average | — |
| Liam Hicks (C) | TB | 3 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | -0.47 | 0.319 average | — |
| Richie Palacios (2B) | TB | 4 / 3 | 1 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 2 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 0.47 | 0.306 average | — |
| Yandy Díaz (DH) | TB | 4 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 1 / 1 | 1 / 0 | 1 / 1 | 0.33 | 0.346 elite | — |
| Ryan McMahon (3B) | NYY | 1 / 3 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 0 / 1 | -0.14 | 0.297 below average | — |
| Jonathan Aranda (1B) | TB | 5 / 4 | 2 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 1 / 0 | 0 / 1 | 0 / 1 | 0.14 | 0.343 elite | — |
| Jonny DeLuca (CF) | TB | 4 / 4 | 1 / 1 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 0 / 0 | 0 / 1 | 0 | 0.261 weak | — |
| Taylor Walls (SS) | TB | 4 / 3 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 1 / 1 | 0 | 0.251 weak | — |
| Chandler Simpson (LF) | TB | 4 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 1 / 0 | 0 / 0 | 0 / 0 | 0 | 0.263 weak | — |
| Signal | Home-away edge | Meaning |
|---|---|---|
| Season quality | -0.176 | positive favors home; negative favors away |
| Recent form | -0.182 | positive favors home; negative favors away |
| Starting-pitcher matchup | -0.02 | positive favors home; negative favors away |
| Composite | -0.546 | positive favors home; negative favors away |
| Stage | Away-home runs | Confidence | What changed |
|---|---|---|---|
| historical_ml | 4.87-3 | n/a | Base ML historical model prediction |
| variance_applied | 5-3 | n/a | Deterministic baseline target (variance factor 1.0) |
| enhanced_prediction | 4-3 | 0.54 | Enhanced ML with recent form, H2H, low-score analysis (confidence shrunk by matchup_recency_guardrail) |
| embedded_savant_run_environment | 4-2 | n/a | Target score adjusted by temporal Savant lineup quality versus opposing starter quality |
| fundamental_edge_target_review | 4-2 | n/a | Refreshed score target and win probability after Savant/pitcher/team-strength adjustments |
| capped_target | 4-2 | n/a | Capped at max 12 realistic runs |
| simulation_result | 4-2 | n/a | Final inning-by-inning simulation result |
| Stage | Before | After | Toward final pick | What changed |
|---|---|---|---|---|
| variance_applied | 4.87-3 | 5-3 | 0.132 | Deterministic baseline target (variance factor 1.0) |
| enhanced_prediction | 5-3 | 4-3 | -1 | Enhanced ML with recent form, H2H, low-score analysis (confidence shrunk by matchup_recency_guardrail) |
| embedded_savant_run_environment | 4-3 | 4-2 | 1 | Target score adjusted by temporal Savant lineup quality versus opposing starter quality |
| fundamental_edge_target_review | 4-2 | 4-2 | -0 | Refreshed score target and win probability after Savant/pitcher/team-strength adjustments |
| capped_target | 4-2 | 4-2 | -0 | Capped at max 12 realistic runs |
| simulation_result | 4-2 | 4-2 | -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 |
|---|---|---|---|---|
| NYY | Cam Schlittler | pitcher / Starter | better | predicted_SO 3 |
| NYY | David Bednar | pitcher / Closer | worse | predicted_SO -2 |
| NYY | Ryan McMahon | batter / 3B | worse | predicted_BB 1.754 |
| TB | Liam Hicks | batter / C | worse | predicted_SO 1.615 |
| TB | Yandy Díaz | batter / DH | worse | predicted_RBI 1.36 |
| NYY | Spencer Jones | batter / RF | worse | predicted_SO -1.294 |
| NYY | Austin Wells | batter / C | worse | predicted_AB 1.197 |
| TB | Jonathan Aranda | batter / 1B | worse | predicted_AB -1.12 |
| Severity | Rule | Finding | Subject |
|---|---|---|---|
| error | MATCHUP_RECENCY_GUARDRAIL | Matchup recency guardrail cap was violated: cap=0.540, allowed=0.532, target_confidence=0.540. | |
| info | CURRENT_PITCHER_DUPLICATION | NYY pitcher list appears in both predicted_performance.pitchers and player_predictions_by_position.pitchers; IDs match and were de-duplicated in this audit. | NYY |
| info | CURRENT_PITCHER_DUPLICATION | TB pitcher list appears in both predicted_performance.pitchers and player_predictions_by_position.pitchers; IDs match and were de-duplicated in this audit. | TB |
| info | CURRENT_FINALIZED_MATCH_BOX | NYY model-prediction batting totals differ from final simulation box score (AB: current=32, sim=33; H: current=8, sim=7; 2B: current=2, sim=0; R: current=5, sim=4; BB: current=3, sim=4; SO: current=8, sim=6; SF: current=0, sim=1). | NYY |
| info | CURRENT_PLAYER_MATCH_BOX | NYY current finalized hitter lines are model predictions and differ from the simulation box score: Spencer Jones: RBI current=1 box=0, R current=1 box=0, SO current=1 box=0; Ben Rice: H current=1 box=2, SO current=1 box=0; Luis García Jr.: 2B current=1 box=0, R current=0 box=1; George Lombard Jr.: AB current=4 box=3, H current=1 box=0, RBI current=0 box=1, SO current=1 box=0; Cody Bellinger: AB current=4 box=5, H current=1 box=2, 2B current=1 box=0, BB current=1 box=0; Jazz Chisholm Jr.: AB current=3 box=4, H current=1 box=0, R current=1 box=0, SO current=1 box=2; Trent Grisham: H current=1 box=0; Austin Wells: AB current=3 box=4, H current=0 box=1 | NYY |
| info | CURRENT_FINALIZED_MATCH_BOX | TB model-prediction batting totals differ from final simulation box score (AB: current=34, sim=31; H: current=7, sim=4; 2B: current=1, sim=0; HR: current=1, sim=0; RBI: current=4, sim=2; R: current=4, sim=2; BB: current=2, sim=5; SO: current=8, sim=7). | TB |
| info | CURRENT_PLAYER_MATCH_BOX | TB current finalized hitter lines are model predictions and differ from the simulation box score: Liam Hicks: AB current=4 box=3, H current=1 box=0, RBI current=1 box=0, BB current=0 box=1; Junior Caminero: HR current=1 box=0, RBI current=1 box=0, BB current=1 box=0, SO current=1 box=0; Jonathan Aranda: AB current=4 box=3, H current=1 box=0, RBI current=1 box=0; Yandy Díaz: RBI current=1 box=2, BB current=0 box=1, SO current=1 box=0; Jonny DeLuca: 2B current=1 box=0; Richie Palacios: HBP current=0 box=1; Taylor Walls: R current=1 box=0, BB current=0 box=1; Victor Mesa Jr.: AB current=4 box=3, H current=1 box=0, R current=1 box=0, BB current=0 box=1 | TB |
| 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 20261004. Last recorded change: v15.25.3 (2026-10-06) Publish every KPI, Luna and learning report on the reports host, keep the nightly cycle inside its memory, and share position services across web workers.
| Metric | Prior | Current | Δ | Result |
|---|---|---|---|---|
| brier_score | 0.2445 | 0.2459 | +0.001466 | regressed |
| accuracy | 0.5877 | 0.5789 | -0.0088 | regressed |
| team_run_mae | 2.5263 | 2.4956 | -0.0307 | improved |
| total_run_mae | 3.7193 | 3.693 | -0.0263 | improved |
| calibration_error | 0.0915 | 0.0899 | -0.0016 | improved |
| starter_er_mae | 1.6947 | 1.687 | -0.0077 | improved |
| starter_outs_mae | 4.2522 | 4.2739 | +0.0217 | regressed |
Slate reviewed: 2026-10-05. The diagnosis reports 2 games reviewed, and both are represented in the game-level evidence: CHW@CLE and NYY@TB.
Source manifest — every entry accounted for:
| Source | Status | Stated purpose | Receipt note |
|---|---|---|---|
prediction review — /app/output/reports/prediction_review_20261005.json | Loaded; 53,717 bytes | Official outcomes and scoring errors | Present in manifest. |
forensic deep audit — /app/output/reports/PREDICTION_SYSTEM_DEEP_AUDIT_20261005.json | Loaded; 45,957 bytes | Probability, provenance, starter and decision contracts | Present in manifest. |
continuous learning — /app/output/learning/continuous_learning_daily_20261005.json | Loaded; 347,038 bytes | Pipeline-stage quality, calibration, probability lineage, score distribution, official starter comparisons | Present in manifest. |
detailed report — /app/output/reports/detailed_20261005.html | Loaded; 57,457 bytes | Full game and simulation rendering | Present in manifest. |
ultra detailed player audit — /app/output/reports/20261005_ultra_detailed_player_audit.html | Loaded; 4,406,303 bytes | Player-level prediction trace | Present in manifest. |
structural audit — /app/output/reports/audit_report_20261005.html | Loaded; 253,323 bytes | All invariant findings | Present in manifest. |
integrity revision audit — /app/output/reports/audit_report_20261005_integrity_revision.html | Missing; bytes null | Post-Luna remediation proof for immutable revision artifacts | Missing evidence; cannot confirm remediation or revision integrity from this source. |
Coverage: coverage_matrix reports 2 expected games, 2 canonical artifacts loaded, 2 continuous-learning games, 2 forensic deep-audit games, 2 games with starter comparisons, and 2 structural audits completed. Thus, the diagnosis claims complete coverage of the two-game slate. That does not make the slate clean: NYY@TB has an error-level structural finding, and the source manifest also lacks the integrity revision audit.
Internal contradictions and limitations:
target_confidence=0.540 against allowed=0.532. The published pick probability is lower than calibrated confidence, but the package does not explain how the audited enhanced-prediction target and final published value relate at that point. The explicit contract violation stands; the final lower probability does not erase it.home ≈ 0.460381), not a substantive contradiction.Winner accuracy: 0/2 (0%). Both published selections lost: CLE over CHW and NYY over TB. The historical model’s reported walk-forward accuracy is 0.570149, but that is a historical benchmark, not evidence that this two-game slate should have been accurate. The self-assessment says this slate beat neither coin flip nor validated baseline.
Calibration quality: Both outcomes missed. The reported weighted absolute calibration error is 0.5291 over only 2 settled games; in the one represented 0.50–0.55 bucket, average confidence was 0.5291, observed hit rate was 0/2, and the bucket was labeled overconfident. This is a severe single-slate result and an established cross-slate finding (3 consecutive slates), but it is not a reliable stand-alone calibration curve. The causal register’s single_slate_calibration_instability entry is high severity: preserve its two-game evidence and its guardrail not to infer a stable curve from one slate; because it has persisted, Section 8 recommends a bounded shadow experiment rather than a production change.
Score accuracy: Both exact score forecasts missed. CHW@CLE’s team-run error was 2 and total error was 2; NYY@TB’s were 5 and 1. Pipeline-stage scores say enhanced_prediction improved aggregate run errors versus historical_ml, then embedded_savant_run_environment returned them to the worse-than-base values that persisted through publication. Across the two games, the largest reported team-run regression is at variance_applied (team-run MAE +0.1054 and margin MAE +0.2634 versus historical ML). These are two-game metrics and do not establish broad stage performance.
The run models’ historical holdout R² values are near zero: home 0.002143, away 0.030936, total 0.002415, on 2,415 rows. The causal register calls weak_run_model_signal high severity. It is a material model-validation risk, not proof that any single score miss was avoidable. It has persisted 3 consecutive slates, so the appropriate action is an isolated feature/target backtest, not a nightly score-parameter adjustment.
Starter accuracy: The available game-level comparisons show notable errors, especially Freddy Peralta’s NYY@TB line. However, one CHW@CLE starter’s actual line conflicts with the player-level feed description, so starter accuracy cannot be treated as fully reconciled. The player-level verdicts attribute this slate’s side-level breakdowns to offense on two sides and variance on two sides, with no side classified as a material pitching break. That does not make Peralta’s individual miss immaterial: he allowed 1 ER in 14 outs against a projection of 4 ER in 16 outs.
Artifact integrity: There is one error-level structural audit finding, for NYY@TB, and no critical findings. CHW@CLE’s saved artifact is reported clean. The causal register labels artifact_integrity_failure high severity and instructs that this slate be excluded from parameter learning until the artifact-generation step is fixed. Follow that action: learning eligibility is false. A malformed artifact is a file/contract defect, not proof that the model’s prediction was wrong; the actual NYY@TB pick also missed, but that does not establish the artifact caused the miss.
Causal-register reconciliation:
artifact_integrity_failure — high, artifact integrity. Evidence: 1 error, 0 critical, 0 warnings and 14 informational findings; affected game NYY@TB. Action: exclude this slate from parameter learning until artifact generation is fixed. Guardrail: do not attribute accuracy changes to the malformed artifact.single_slate_calibration_instability — high, calibration. Evidence: weighted absolute calibration error 0.5291 across two games; both games affected. Action in the register: watch rolling confidence buckets before changing a calibration weight. Guardrail: two games cannot establish a stable calibration curve. Cross-slate escalation now makes a shadow test appropriate, not an unguarded production change.weak_run_model_signal — high, model validation. Evidence: home/away/total holdout R² of 0.0021/0.0309/0.0024; both games in the evidence. Action: treat exact run scores as low-confidence estimates and seek stronger features or a better target. Guardrail: small positive R² means only better than predicting the average; it does not make exact scores reliable.complete_slate_audit_coverage — info, coverage. Evidence: 2/2 games structurally audited. Action: retain per-game audit receipts. Guardrail: coverage does not cancel findings inside audited games.simulation_inert_on_slate — info in the causal register. Evidence: zero flip candidates and zero published flips. Action: measure simulation contribution over rolling slates, separating score realization from winner flips. Guardrail: zero flips is not itself a defect and does not mean no score-reconciliation work occurred. Cross-slate persistence has since escalated this to an actionable code/diagnostic issue; it remains inappropriate to force a parameter change.No game had a correct winner. The diagnosis’s published probabilities and confidence edges are not equivalent to a half-scale distance from 50%; the stated system edges are modest to moderate, not near-certain calls.
score_volatility_actions contains only no_change. The aggregate stage audit shows historical ML → variance applied worsened run errors; enhanced prediction recovered them; embedded Savant run environment worsened them again; subsequent stages through publication were unchanged. Per-game numeric scores at every intermediate stage are not supplied, so none are imputed.toss_up_variance; no secondary driver. The evidence supports a narrow CLE miss in a toss-up, plus CLE offensive underperformance; it does not establish an avoidable winner-model defect. This was not a correct-winner/wrong-score game.score_volatility_actions contains only no_change; a large_savant_run_environment_swing diagnostic flag is recorded. The aggregate stage path and limitations are the same as above: enhanced prediction improved run errors versus base, embedded Savant run environment reversed that gain, and published values stayed at that later stage.contributing_factors, while NYY’s lineup was 3 runs below its projection in the matchup breakdown. Ben Rice hit 2-for-3 with 2 HR versus a projection of 1 hit and 1 HR (+1.4 run impact; xwOBA 0.378, elite). Other listed deviations include Trent Grisham (−0.8), Luis García Jr. (−0.78), Austin Wells (+0.78), and Cody Bellinger (−0.64). Peralta’s unexpectedly strong start is separately identified as variance. Player-level side verdicts classify NYY as offense below projection and TB as closer to variance.MATCHUP_RECENCY_GUARDRAIL, stating target confidence 0.540 exceeded the allowed 0.532 cap. This is an artifact/contract failure, not evidence that the model’s pick was wrong because of the file defect. Primary driver: lean_side_miss (“Small edge on the losing side”); no secondary driver. This was not a correct-winner/wrong-score game.Conclusion: The earliest identified wrong selection is the pre-publication CLE side; later confidence controls did not repair it. The direct game-level driver is a toss-up result with CLE’s offense below forecast. No single confirmed upstream bad input is established.
Conclusion: Unlike CHW@CLE, the recorded pregame fundamentals consistently favored the eventual loser. The miss is most plausibly a combination of starter outlier and team-run allocation/offense miss, not a demonstrated bad input. The recency contract defect is an independent process issue.
All reported stages have 2 games and 0/2 winner accuracy. A later score recovery does not erase an earlier regression.
| Stage | Team-run MAE | Total-run MAE | Margin MAE | Change vs historical ML |
|---|---|---|---|---|
historical_ml | 1.6446 | 1.2867 | 3.2366 | Baseline |
variance_applied | 1.75 | 1.5 | 3.5 | Regressed: +0.1054 team-run MAE; +0.2634 margin MAE |
enhanced_prediction | 1.5 | 1.0 | 3.0 | Recovered: −0.1446 team-run MAE; −0.2366 margin MAE |
embedded_savant_run_environment | 1.75 | 1.5 | 3.5 | Regressed again to worse than base |
fundamental_edge_target_review | 1.75 | 1.5 | 3.5 | No measured change |
capped_target | 1.75 | 1.5 | 3.5 | No measured change |
simulation_result | 1.75 | 1.5 | 3.5 | No measured change |
published_final | 1.75 | 1.5 | 3.5 | No measured change |
Transitions report no per-game changed directions, improvement/regression lists, winner flips, or winner-accuracy changes. They do report aggregate run-error changes: historical ML → variance worsened; variance → enhanced improved; enhanced → embedded run environment worsened; all following transitions were unchanged. Therefore, the data establishes aggregate score-error regression and recovery, not an intermediate game-by-game winner-direction regression. The later recovery does not justify ignoring the variance-stage or embedded-environment regressions.
Every lever_tension entry is accounted for:
score.variance_multiplier / score.variance_floor (widen run distributions)cross_slate_bias entry separately says the variance-floor signal is not separable from noise.player.pitcher.v4 form weights / player.pitcher_prior_gamesrecent.* / season.* run-mean weightingTempting fixes to reject:
MATCHUP_RECENCY_GUARDRAIL. Expected the final enhanced-prediction target confidence to be at or below the soft cap. The finding gives cap 0.540, allowed 0.532, target confidence 0.540. This is an error-level contract defect.The causal register separately categorizes the canonical artifact issue as a high-severity artifact-integrity concern because there is one structural error. That does not upgrade it to an audit “critical”: structural counts explicitly show zero critical. The CHW game audit is PASS with no defects; NYY@TB is ERROR. Coverage is 2/2, but completeness of auditing is not clearance of the finding.
| Game | Raw model pick probability | Calibrated/governed | Score coherence | Published pick probability | Recorded transformation / finding |
|---|---|---|---|---|---|
| CHW@CLE, home/CLE | 0.5413 in lineage (0.551861 in game trace) | 0.5256 | 0.525605 | 0.5185 | “Score coherence followed by matchup-recency guardrail”; published-minus-calibrated −0.0071; no unexplained material delta. The raw values differ between the two supplied views and are not reconciled. |
| NYY@TB, away/NYY | 0.5808 | 0.5466 | 0.54661 | 0.539619 | “Score coherence followed by matchup-recency guardrail”; published-minus-calibrated −0.006981; no unexplained material delta. Separate recency cap audit error remains. |
Both lineages record the steps from raw model through calibration/governor, score coherence/recency, and published value; each says the recency guardrail applied and unexplained_material_delta=false. The recency discount factors are null. That missing factor is a traceability gap, but the package does not demonstrate an unrecorded material bypass: both published-minus-calibrated changes are small and a named transformation is recorded. The NYY@TB cap violation is an explicit contract finding even though the final published value is below the calibrated value; the lineage does not explain the mismatch between the intermediate target confidence and final publication.
The probability-reversion audit reports two artifacts checked, zero blend flips, two blend sides surviving to publication, and no overwritten games. Thus, there is no reported probability-side overwrite explaining either miss.
simulation_flip_control, priority P2, diagnostic-only without independent support; 2 games, zero flip candidates, zero published flips. This alone is not proof of a defect, but the persistent pattern below is escalated.| Finding | Consecutive-slate count | Present now? | Evidence/status |
|---|---|---|---|
pipeline_winner_instability | 0 | No | Incidence 3 in an 11-slate window; no current presence. |
score_margin_compression | 0 | No | Incidence 5 in an 11-slate window; no current presence. Targets variance multiplier/floor, but no current finding. |
simulation_inert_on_slate | 11 | Yes | Incidence 11/11; escalated. |
single_slate_calibration_instability | 3 | Yes | Incidence 7 in the window; escalated. |
weak_run_model_signal | 3 | Yes | Incidence 9 in the window; escalated. |
These are established failures under the provided escalation policy, not single-slate noise:
simulation_inert_on_slate — 11 consecutive slates. Target lever recorded as simulation.allow_score; target metrics team-run MAE and total-run MAE. But param_actionable=false and the specified direction is to confirm the module is running rather than silently no-oping. The self-assessment identifies a code-level root cause: target-realization search and win-probability distribution use the same early-exiting draws (about two by default), so the estimated win rate is not a reliable independent probability. Treat this as a code/diagnostic action, not a parameter move.single_slate_calibration_instability — 3 consecutive slates. Target levers: confidence.empirical_max_weight, confidence.base_cap, confidence.moderate_cap; target metrics Brier score and calibration error. The direction is to increase empirical shrinkage. This is persistent and parameter-actionable; use a bounded shadow experiment.weak_run_model_signal — 3 consecutive slates. Target levers list training XGBoost parameters, but the finding is explicitly param_actionable=false. The recommended action is manual, isolated investigation of features/target, not a nightly hyperparameter move. The self-assessment points to adding features such as source-labelled no-vig market probability, park/weather, bullpen rest/fatigue, and platoon-adjusted lineup quality, then retraining and comparing an isolated same-fingerprint backtest. Treat this as a feature/target and training diagnostic/code action, not a parameter adjustment.margin_bias: improving (mean −1.8919).mean_team_run_error_on_losses: improving (mean 3.9667).weighted_calibration_error: regressing (mean 0.34).winner_accuracy: regressing (mean 0.6754).top_confidence_pick loss streak: 1. The 2026-10-05 top pick was a miss, following a hit on 2026-10-04. The listed 11-slate sequence includes two unknown-date/unknown-result slots, so the supplied streak value is the authoritative reported count; do not infer additional consecutive losses through unknown entries.The two registered bias checks are on hold, not persistent enough to move their parameters:
The recent two slates do show large negative lineup deltas (−2.0 on 2026-10-04 and −2.25 on 2026-10-03), but that does not override the supplied 10-slate noise assessment.
These are recommendations for bounded tests or operator action, not changes applied here. The slate is quarantined from learning, and no promotion or file changes have been made.
confidence.empirical_max_weight.confidence.base_cap and confidence.moderate_cap fixed in this experiment so the effect can be attributed to one lever.score.variance_multiplier / score.variance_floor tension entry lists no game-level helps or hurts; no specific game-level tradeoff is established. The two-game calibration result is poor, but the 3-slate escalation, not this one slate alone, supports the shadow test.simulation.allow_score is listed, but the finding is explicitly non-parameter-actionable.training.xgb.n_estimators, training.xgb.max_depth, and training.xgb.learning_rate are listed, but the finding is explicitly param_actionable=false; the prescribed action is not a bounded nightly hyperparameter move.recent.* / season.* run-mean weighting.No production changes are recommended to pitcher form/prior games from this slate: NYY@TB’s Peralta result is characterized as an outlier, and the lever-tension entry says changing pitcher weights helps NYY@TB while risking CHW@CLE.
Known: Both published winners missed; both scores missed; calibration error on this two-game slate was very high; the run-model holdout R² values are near zero; NYY@TB has a concrete recency-cap structural error; simulation inertness and weak run-model signal have persisted long enough to be escalated.
Uncertain: The precise causal contribution of model weighting versus game variance; the reconciled CHW starter line; whether a particular run-mean adjustment improves future performance; and the full details of the 14 informational audit findings. The missing integrity revision audit also prevents verification of any claimed post-remediation proof.
Single safest next action: Keep this slate quarantined from parameter learning, and first have the operator investigate and repair the persistent simulation distribution/early-exit issue with an independent win-probability diagnostic. It is an 11-slate established failure, requires a code-level check rather than speculative tuning, and can be validated without attributing either game’s miss to the artifact defect.