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_20261006.json | 19282 |
| forensic deep audit | loaded | probability, provenance, starter and decision contracts | /app/output/reports/PREDICTION_SYSTEM_DEEP_AUDIT_20261006.json | 45953 |
| continuous learning | loaded | pipeline-stage quality, calibration, probability lineage, score distribution, and official starter comparisons | /app/output/learning/continuous_learning_daily_20261006.json | 280749 |
| detailed report | loaded | full game and simulation rendering | /app/output/reports/detailed_20261006.html | 57951 |
| ultra detailed player audit | loaded | player-level prediction trace | /app/output/reports/20261006_ultra_detailed_player_audit.html | 3509264 |
| structural audit | loaded | all invariant findings | /app/output/reports/audit_report_20261006.html | 240335 |
| integrity revision audit | loaded | structural audit of every post-start revision of the slate's games | /app/output/reports/audit_report_20261006_integrity_revision.html | 824693 |
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 |
|---|---|---|---|---|
| CRITICAL | probability_lineage | Published probability differs materially without a recorded transformation 1 game(s) have an unexplained ≥2pp calibrated-to-published delta | MIL@SD | Do thisBlock any promotion until the missing probability transformation is recorded and reconciled. Don't concludeDo not assume the probability governor was bypassed until you have traced the pick-side math. |
| HIGH | calibration | Published confidence buckets were poorly aligned on this slate weighted absolute calibration error 0.4642 across 2 games | LAD@ATL, MIL@SD | 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@ATL, MIL@SD | 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 | LAD@ATL, MIL@SD | 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@ATL, MIL@SD | 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 | 4 consecutive · 8 in window | confidence.empirical_max_weight, confidence.base_cap, confidence.moderate_cap | increase empirical shrinkage | single_slate_calibration_instability has persisted 4 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 | 4 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 4 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 | 4 | 8/11 | yes | param |
| weak_run_model_signal | 4 | 9/11 | yes | code/diagnostic |
| Metric | Direction | Series (old → new) |
|---|---|---|
| winner_accuracy | improving | 0.5385, 0.6429, –, 1.0, 0.75, 1.0, –, 1.0, 0.5, 0.0, 1.0 |
| weighted_calibration_error | regressing | 0.1524, 0.1031, –, 0.4792, 0.2317, 0.4832, –, 0.4705, 0.4806, 0.5291, 0.4642 |
| margin_bias | improving | -3.0, -1.571, –, -4.25, -2.75, -3.0, –, -0.25, 0.0, -0.5, -0.5 |
| team_run_error_on_losses | improving | 6.167, 4.8, –, –, 2.0, –, –, –, 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 | 1/2 | 50% | 1.418 | 2.837 | 1.498 |
| variance_applied | 1/2 | 50% | 1.75 | 3.5 | 1.5 |
| enhanced_prediction | 2/2 | 100% | 1.25 | 2.5 | 0.5 |
| kpi_layer | 2/2 | 100% | 1.25 | 2.5 | 0.5 |
| embedded_savant_run_environment | 2/2 | 100% | 1.25 | 2.5 | 0.5 |
| fundamental_edge_target_review | 2/2 | 100% | 1.25 | 2.5 | 0.5 |
| capped_target | 2/2 | 100% | 1.25 | 2.5 | 0.5 |
| simulation_result | 2/2 | 100% | 1.25 | 2.5 | 0.5 |
| published_final | 2/2 | 100% | 1.25 | 2.5 | 0.5 |
| Transition | Δ accuracy | Δ hits | Δ team-run MAE | Δ margin MAE | Games whose winner/tie changed |
|---|---|---|---|---|---|
| historical_ml → variance_applied | 0 | 0 | 0.3317 | 0.0021 | |
| variance_applied → enhanced_prediction | 0.5 | 1 | -0.5 | -1 | LAD@ATL: ATL → LAD |
| 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 |
|---|---|---|---|---|---|---|---|
| LAD@ATL | hit | 0.5 | 0.5071 | 0.5071 | 0.5071 | 0.5052 | published probability matches the calibrated/governed value |
| MIL@SD | hit | 0.6262 | 0.6142 | 0.6142 | 0.5933 | 0.5664 | no recorded transformation explains the publication delta |
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 | 1 | 0 | 3 | -1.4 | -1.25 |
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 2 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 |
|---|---|---|---|---|---|---|---|
| LAD@ATL | 0.642 | 0.568 | home | 0.495 | away | yes | hit |
Blend side survived on 1 of 2 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.23 over 10 slates (sign shared by 0.50 of them, z = -0.57).
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.23 +/- 0.4 standard error: not separable from noise
lineup runs actual minus projected
Mean -0.45 over 10 slates (sign shared by 0.60 of them, z = -1.39).
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.45 +/- 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 |
|---|---|---|---|---|---|---|
| 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 |
| 20260925 | 17 | 0.647 | 1.13 | 0.50 | 8 | 10 |
| 20260924 | 12 | 0.667 | 1.68 | -0.67 | 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 |
|---|---|---|---|
| LAD@ATL | 1 | 2 | -1 |
| MIL@SD | 1 | 1 | 0 |
| Team | Starter | Projected | Actual | ER err |
|---|---|---|---|---|
| LAD | Yoshinobu Yamamoto | 1 ER / 19 outs | 1 ER / 21 outs | 0 |
| ATL | Chris Sale | 2 ER / 18 outs | 3 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
Yoshinobu Yamamoto (LAD) threw 21 outs, 1 ER = 1.29 ERA against a projected 1.42 ERA (-0.13 ERA error)
Bullpen behind him: 0 ER over 0 outs.
The HOME lineup he faced produced 1 runs on 5 hits and 0 HR, against a projected 3 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
Chris Sale (ATL) threw 15 outs, 3 ER = 5.4 ERA against a projected 3 ERA (2.4 ERA error)
Bullpen behind him: 0 ER over 6 outs.
The AWAY lineup he faced produced 3 runs on 8 hits and 2 HR, against a projected 4 runs / 9 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 | Yoshinobu Yamamoto (Starter) | 21 / 19 | 1.29 / 1.42 | 1 / 1 | 4 / 3 | 0 / 0 | 1 / 1 | 1.35 | 10 / 4 | 6.41 | venue away: 1.77 vs 3.12 ERA (ok) · opp run factor 0.92 (strong) · 28 prior appearances this season |
| ATL | Chris Sale (Starter) | 15 / 18 | 5.4 / 3 | 3 / 2 | 7 / 6 | 2 / 1 | 0 / 1 | 1.13 | 7 / 5 | 7.01 | venue home: 1.83 vs 2.74 ERA (ok) · opp run factor 0.98 (strong) · 29 prior appearances this season |
| ATL | Dylan Dodd (Middle Reliever) | 3 / 3 | 0 / 0 | 0 / 0 | 1 / 1 | 0 / 0 | 0 / 0 | 0.22 | 2 / 0 | 1.02 | |
| ATL | Dylan Lee (Middle Reliever (High Leverage)) | 3 / 6 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 0 / 0 | 0.25 | 1 / 2 | 1.04 |
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 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Freddie Freeman (1B) | LAD | 4 / 5 | 1 / 1 | 0 / 0 | 0 / 0 | 1 / 0 | 1 / 0 | 1 / 0 | 1 / 0 | 1 / 2 | 1.26 | 0.363 elite | projection too low |
| Miguel Rojas (2B) | LAD | 3 / 5 | 0 / 2 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | -1.25 | 0.309 average | no signal |
| Mookie Betts (SS) | LAD | 5 / 5 | 2 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 1 / 0 | 0.94 | 0.339 above average | projection too low |
| Andy Pages (CF) | LAD | 4 / 4 | 2 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 0 / 0 | 1 / 1 | 0.94 | 0.343 elite | projection too low |
| Matt Olson (1B) | ATL | 4 / 5 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 2 | 0 / 1 | 0 / 0 | 2 / 1 | -0.93 | 0.351 elite | bad day |
| Austin Riley (3B) | ATL | 3 / 2 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 2 | 2 / 1 | -0.66 | 0.299 below average | projection too high |
| Kyle Tucker (RF) | LAD | 4 / 3 | 1 / 1 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 0 / 1 | 1 / 0 | -0.64 | 0.331 above average | bad day |
| Teoscar Hernández (LF) | LAD | 4 / 5 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 0 / 1 | -0.47 | 0.332 above average | — |
| Will Smith (C) | LAD | 4 / 5 | 1 / 2 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 3 / 0 | -0.47 | 0.389 elite | — |
| Mauricio Dubón (LF) | ATL | 4 / 4 | 1 / 2 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 0 / 0 | 0 / 0 | -0.47 | 0.304 average | — |
| Lane Thomas (RF) | ATL | 3 / 3 | 1 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 0 / 0 | 2 / 1 | 0.47 | 0.311 average | — |
| Ha-Seong Kim (SS) | ATL | 1 / 3 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 0 / 1 | -0.47 | 0.222 weak | — |
| Ronald Acuña Jr. (DH) | ATL | 3 / 5 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 1 / 1 | 0.33 | 0.366 elite | — |
| Ozzie Albies (2B) | ATL | 4 / 4 | 1 / 1 | 1 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 2 / 1 | 0.31 | 0.273 weak | — |
| Shohei Ohtani (DH) | LAD | 2 / 5 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 1 / 0 | 1 / 1 | -0.14 | 0.397 elite | — |
| Enrique Hernández (3B) | LAD | 4 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 1 / 1 | 2 / 1 | 1 / 1 | 0 / 0 | 2 / 1 | 0 | 0.279 weak | — |
| Drake Baldwin (C) | ATL | 4 / 5 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 0 / 0 | 0 / 0 | 2 / 0 | 0 | 0.37 elite | — |
| Michael Harris II (CF) | ATL | 4 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 0 / 1 | 0 | 0.342 elite | — |
| Signal | Home-away edge | Meaning |
|---|---|---|
| Season quality | -0.61 | positive favors home; negative favors away |
| Recent form | -0.314 | positive favors home; negative favors away |
| Starting-pitcher matchup | -0.061 | positive favors home; negative favors away |
| Composite | -0.728 | positive favors home; negative favors away |
| Stage | Away-home runs | Confidence | What changed |
|---|---|---|---|
| historical_ml | 3.81-4.63 | n/a | Base ML historical model prediction |
| variance_applied | 4-5 | n/a | Deterministic baseline target (variance factor 1.0) |
| enhanced_prediction | 4-3 | 0.505 | Enhanced ML with recent form, H2H, low-score analysis (confidence shrunk by projected_margin_is_one_run, matchup_recency_guardrail) |
| kpi_layer | 4-3 | n/a | Savant KPI blend applied to the model target |
| embedded_savant_run_environment | 4-3 | n/a | Target score adjusted by temporal Savant lineup quality versus opposing starter quality |
| fundamental_edge_target_review | 4-3 | n/a | Refreshed score target and win probability after Savant/pitcher/team-strength adjustments |
| capped_target | 4-3 | n/a | Capped at max 12 realistic runs |
| simulation_result | 4-3 | n/a | Final inning-by-inning simulation result |
| Stage | Before | After | Toward final pick | What changed |
|---|---|---|---|---|
| variance_applied | 3.81-4.63 | 4-5 | -0.173 | Deterministic baseline target (variance factor 1.0) |
| enhanced_prediction | 4-5 | 4-3 | 2 | Enhanced ML with recent form, H2H, low-score analysis (confidence shrunk by projected_margin_is_one_run, matchup_recency_guardrail) |
| kpi_layer | 4-3 | 4-3 | -0 | Savant KPI blend applied to the model target |
| embedded_savant_run_environment | 4-3 | 4-3 | -0 | Target score adjusted by temporal Savant lineup quality versus opposing starter quality |
| fundamental_edge_target_review | 4-3 | 4-3 | -0 | Refreshed score target and win probability after Savant/pitcher/team-strength adjustments |
| capped_target | 4-3 | 4-3 | -0 | Capped at max 12 realistic runs |
| simulation_result | 4-3 | 4-3 | -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 |
|---|---|---|---|---|
| LAD | Yoshinobu Yamamoto | pitcher / Starter | better | predicted_H -3 |
| LAD | Miguel Rojas | batter / 2B | worse | predicted_AB 2.5 |
| ATL | Chris Sale | pitcher / Starter | worse | predicted_H 2 |
| ATL | Austin Riley | batter / 3B | worse | predicted_BB 1.687 |
| LAD | Enrique Hernández | batter / 3B | better | predicted_AB 1.5 |
| ATL | Michael Harris II | batter / CF | worse | predicted_AB -1.44 |
| ATL | Matt Olson | batter / 1B | better | predicted_RBI 1.36 |
| LAD | Alex Vesia | pitcher / Middle Reliever (High Leverage) | worse | predicted_IP 1.333 |
| Severity | Rule | Finding | Subject |
|---|---|---|---|
| info | RECONCILIATION_PROPAGATION | No score_target_reconciliation step was used for this game. |
| Team | Starter | Projected | Actual | ER err |
|---|---|---|---|---|
| MIL | Dustin May | 5 ER / 12 outs | 2 ER / 9 outs | -3 |
| SD | Nick Pivetta | 3 ER / 12 outs | 2 ER / 13 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:
Starter miss: Dustin May (MIL) posted 6.00 ERA vs projected 11.25 (2 ER in 9 outs); he is materially worse pitching away (5.88 ERA there vs 3.94 on the other side), a venue-role weakness the model under-weighted.
What to do: Enable/raise the venue-split weight (context.venue_adjustment_weight) and validate in shadow; the split is credible for this starter.
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
Dustin May (MIL) threw 9 outs, 2 ER = 6 ERA against a projected 11.25 ERA (-5.25 ERA error)
Bullpen behind him: 1 ER over 8 outs.
The HOME lineup he faced produced 4 runs on 6 hits and 1 HR, against a projected 5 runs / 10 hits (-1 runs vs projection).
Who did the damage to him:
Verdict: neither side broke materially - the result is closer to variance
HOME pitching
Nick Pivetta (SD) threw 13 outs, 2 ER = 4.15 ERA against a projected 6.75 ERA (-2.6 ERA error) only 9 prior appearances in the covered season - the projection had little of his own record to stand on
Bullpen behind him: 1 ER over 5 outs.
The AWAY lineup he faced produced 3 runs on 10 hits and 1 HR, against a projected 4 runs / 8 hits (-1 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) |
|---|---|---|---|---|---|---|---|---|---|---|---|
| MIL | Dustin May (Starter) | 9 / 12 | 6 / 11.25 (-5.25) | 2 / 5 | 3 / 8 | 0 / 0 | 2 / 2 | 1.22 | 3 / 4 | 4.46 | venue away: 5.88 vs 3.94 ERA (worse here) · opp run factor 0.99 (average) · 31 prior appearances this season |
| MIL | JoJo Romero (Long Reliever) | 5 / 3 | 5.4 / 0 (+5.40) | 1 / 0 | 1 / 1 | 1 / 0 | 0 / 0 | 0.28 | 2 / 1 | 1.04 | |
| MIL | Antonio Senzatela (Middle Reliever (High Leverage)) | 3 / 9 | 0 / 0 | 0 / 0 | 1 / 1 | 0 / 0 | 0 / 0 | 0.4 | 1 / 2 | 0.74 | |
| SD | Nick Pivetta (Starter) | 13 / 12 | 4.15 / 6.75 | 2 / 3 | 5 / 4 | 1 / 0 | 0 / 1 | 0.91 | 4 / 2 | 4.26 | venue home: 2.96 vs 2.63 ERA (ok) · opp run factor 0.94 (strong) · 9 prior appearances this season |
| SD | Bradgley Rodriguez (Middle Reliever (High Leverage)) | 4 / 4 | 6.75 / 0 (+6.75) | 1 / 0 | 3 / 2 | 0 / 0 | 0 / 1 | 0.5 | 3 / 1 | 1.47 | |
| SD | Jason Adam (Setup Man) | 1 / 3 | 0 / 0 | 0 / 0 | 1 / 0 | 0 / 0 | 1 / 1 | 0.39 | 0 / 1 | 0.51 |
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 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| William Contreras (C) | MIL | 4 / 4 | 3 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 1 / 0 | 2 / 0 | 1 / 1 | 0 / 0 | 2.34 | 0.334 above average | projection too low |
| Dustin Harris (LF) | SD | 2 / 4 | 0 / 2 | 0 / 0 | 0 / 1 | 0 / 0 | 0 / 2 | 0 / 1 | 0 / 0 | 1 / 1 | -1.56 | 0.314 average | no signal |
| Jake Bauers (1B) | MIL | 4 / 4 | 0 / 2 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 0 / 1 | 1 / 0 | 4 / 0 | -1.54 | 0.371 elite | bad day |
| Garrett Mitchell (CF) | MIL | 4 / 3 | 0 / 1 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 2 | 0 / 1 | 0 / 1 | 3 / 0 | -1.11 | 0.353 elite | bad day |
| Jake Cronenworth (2B) | SD | 2 / 3 | 2 / 1 | 0 / 0 | 0 / 0 | 1 / 0 | 1 / 0 | 1 / 1 | 0 / 1 | 0 / 0 | 1.07 | 0.275 weak | good day |
| Cooper Pratt (SS) | MIL | 4 / 4 | 2 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 0 / 0 | 0 / 3 | 0.94 | 0.315 average | no signal |
| Ethan Salas (C) | SD | 3 / 4 | 0 / 2 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 1 / 0 | 1 / 1 | -0.61 | 0.227 weak | projection too high |
| Fernando Tatis Jr. (RF) | SD | 4 / 5 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 0 / 1 | 0 / 0 | 1 / 1 | -0.47 | 0.379 elite | — |
| Manny Machado (3B) | SD | 3 / 2 | 1 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 0 / 0 | 1 / 1 | 0 / 0 | 0.47 | 0.328 above average | — |
| Samad Taylor (DH) | SD | 3 / 4 | 1 / 2 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 0 / 0 | 0 / 0 | -0.47 | 0.309 average | — |
| Christian Yelich (DH) | MIL | 4 / 4 | 2 / 2 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 0 / 1 | 1 / 0 | 0 / 0 | 0.33 | 0.308 average | — |
| Jackson Merrill (CF) | SD | 4 / 4 | 1 / 1 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 1 / 0 | 0 / 0 | 2 / 2 | -0.31 | 0.347 elite | — |
| Jackson Chourio (LF) | MIL | 4 / 5 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 0 / 0 | 0 / 0 | 1 / 2 | 0 | 0.344 elite | — |
| Brice Turang (2B) | MIL | 4 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 1 / 1 | 1 / 0 | 0 | 0.344 elite | — |
| Sal Frelick (RF) | MIL | 4 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 | 0.281 weak | — |
| Joey Ortiz (3B) | MIL | 2 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 | 0.297 below average | — |
| Ty France (1B) | SD | 4 / 4 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 2 | 0 | 0.327 above average | — |
| Xander Bogaerts (SS) | SD | 3 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 0 / 0 | 1 / 0 | 0 | 0.325 above average | — |
| Signal | Home-away edge | Meaning |
|---|---|---|
| Season quality | -0.723 | positive favors home; negative favors away |
| Recent form | 0.334 | positive favors home; negative favors away |
| Starting-pitcher matchup | 0.049 | positive favors home; negative favors away |
| Composite | -0.025 | positive favors home; negative favors away |
| Stage | Away-home runs | Confidence | What changed |
|---|---|---|---|
| historical_ml | 3.53-4.7 | 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.566 | Enhanced ML with recent form, H2H, low-score analysis (confidence shrunk by projected_margin_is_one_run) |
| kpi_layer | 4-5 | n/a | Savant KPI blend applied to the model target |
| 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 | 3.53-4.7 | 4-5 | -0.169 | 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) |
| kpi_layer | 4-5 | 4-5 | 0 | Savant KPI blend applied to the model target |
| 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 |
|---|---|---|---|---|
| SD | Nick Pivetta | pitcher / Starter | worse | predicted_SO -5 |
| MIL | Dustin May | pitcher / Starter | worse | predicted_H 4 |
| MIL | Antonio Senzatela | pitcher / Middle Reliever (High Leverage) | better | predicted_IP 2.9 |
| MIL | Cooper Pratt | batter / SS | worse | predicted_SO 2.333 |
| SD | Adrian Morejon | pitcher / Middle Reliever (High Leverage) | better | predicted_BB -2 |
| SD | Manny Machado | batter / 3B | worse | predicted_AB -1.75 |
| MIL | Garrett Mitchell | batter / CF | better | predicted_RBI 1.68 |
| SD | Dustin Harris | batter / LF | boosted | predicted_RBI 1.58 |
| 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 20261005. Last recorded change: v15.28.1 (2026-10-06) Every pitcher against every opposing hitter, published per game
| Metric | Prior | Current | Δ | Result |
|---|---|---|---|---|
| brier_score | 0.2459 | 0.2456 | -0.000355 | improved |
| accuracy | 0.5789 | 0.5877 | +0.0088 | improved |
| team_run_mae | 2.4956 | 2.4474 | -0.0482 | improved |
| total_run_mae | 3.693 | 3.6316 | -0.0614 | improved |
| calibration_error | 0.0899 | 0.0992 | +0.0093 | regressed |
| starter_er_mae | 1.687 | 1.6795 | -0.0075 | improved |
| starter_outs_mae | 4.2739 | 4.2393 | -0.0346 | improved |
| Parameter | Change | Expected effect | Risk | Evidence |
|---|---|---|---|---|
| confidence.empirical_max_weight | 0.5 → 0.45 | calibration_error decrease | low risk | calibration.weighted_absolute_error, calibration.bucket.0.60-0.65, calibration.bucket.0.65-0.70 |
All 7 source_manifest entries are marked loaded:
The diagnosis says 2 expected, 2 reviewed, and 2 structurally audited games; it also reports 2 continuous-learning games and starter comparisons for both. The coverage matrix is complete on those counts. The per-game audits both pass, and the revision audit is reported as loaded. No source-manifest entry is marked missing.
Important limitations and inconsistencies in the supplied evidence:
Winner accuracy: Both games were called correctly: 2/2 (100%). That is a slate result, not proof of reliable forecasting. The validated historical winner accuracy is 0.600414, with walk-forward accuracy 0.570149.
Calibration quality: The two published picks both won, while their pick-side published probabilities were 0.505154 and 0.56643. The slate-level weighted absolute calibration error is reported as 0.4642. The bucket table labels both observations underconfident because its definition is average published confidence minus observed hit rate; with one hit in each bucket, those two observations cannot establish a stable calibration curve. The MIL publication discrepancy is a separate critical lineage defect. A “lower confidence caps” action in the self-assessment should not be read as an established direction from these two outcomes: the current bucket observations are labelled underconfident, and the persistent calibration finding calls for a shadow experiment, not an untested production change.
Score accuracy: Both predicted totals were too high: LAD@ATL predicted 7, actual 4; MIL@SD predicted 9, actual 7. The supplied team-run absolute-error figures are 3 and 2, respectively. Both games had positive total-run bias, +3 and +2. The validated run models have near-zero holdout explanatory power: home-run R² 0.002143, away-run R² 0.030936, and total-run R² 0.002415 across 2,415 rows. Scores are weak estimates even when the winner is right.
Starter accuracy: All four starter identities matched. The two starters in LAD@ATL had ER errors of 0 and 1; the MIL@SD starters had ER errors of 3 and 1. The slate-level matchup pattern summarizes four starter comparisons as mean ERA error −1.4, with starter projections overall too pessimistic on this slate. Individual starter lines vary substantially, so that aggregate is not a basis for changing a starter lever by itself.
Artifact integrity: Both per-game structural audits pass with zero critical, error, or warning findings; each has one informational item. The overall structural summary is 0 critical, 0 error, 0 warning, and 2 info. The per-game diagnostics call both saved forecast artifacts clean. However, those clean file audits do not resolve the MIL probability-lineage contract failure. Audit coverage is complete, but the slate is not contract-clean.
Causal issue register reconciliation:
unexplained_probability_publication_delta; MIL@SD. Evidence: one game has an unexplained calibrated-to-published change of at least 2 percentage points; the measured change is −4.777 points. Action: block promotion until the missing transformation is recorded and reconciled. Guardrail: do not assume the governor was bypassed before tracing pick-side math.single_slate_calibration_instability; LAD@ATL and MIL@SD. Evidence: weighted absolute calibration error 0.4642 across two games. Action: watch the same buckets across the rolling window before changing calibration weight. Guardrail: this slate is too small to establish a stable calibration curve. Separately, the cross-slate record says this finding has persisted for four consecutive slates; that persistence warrants a bounded shadow experiment, not treating the single-slate estimate as precise.weak_run_model_signal; both games. Evidence: home/away/total R² = 0.0021/0.0309/0.0024. Action: investigate features and target in an isolated training backtest. Guardrail: low positive R² does not make exact scores reliable or justify tuning score tails as a substitute for improving run signal.complete_slate_audit_coverage; both games. Evidence: 2/2 structurally audited. Action: retain per-game audit receipts. Guardrail: complete coverage does not cancel findings inside audited games.simulation_inert_on_slate; both games. Evidence: zero flip candidates and zero published flips. Action: measure simulation contribution across rolling slates, separating score realization from winner flipping. Guardrail: zero winner flips is not itself a defect, nor proof that no score reconciliation occurred. The separately escalated 11-slate pattern and simulation implementation diagnosis make this an actionable diagnostic/code issue.no_change. LAD’s lineup scored 2 home runs with lineup run delta −1; ATL’s lineup scored 0 home runs with lineup run delta −2. Bullpen ER is recorded as 0 for LAD and 0.0 for ATL. The listed player deviations include Freddie Freeman (+1.26 run impact; 1-for-4, 1 HR), Mookie Betts (+0.94; 2-for-5), Andy Pages (+0.94; 2-for-4), Miguel Rojas (−1.25; 0-for-3), and Matt Olson (−0.93; 1-for-4). Contact-quality review marks Freeman, Betts, and Pages as learnable above-average/elite profiles; these individual deviations are not enough to explain the full score miss.no_change. Each lineup had lineup run delta −1; bullpen ER was 1 for each side. The matchup breakdown labels both sides closer to variance. May’s three fewer ER than projected is the registered contributing factor. Listed player deviations include William Contreras (+2.34; 3-for-4, 1 HR), Dustin Harris (−1.56; 0-for-2), Jake Bauers (−1.54; 0-for-4), Garrett Mitchell (−1.11; 0-for-4), and Jake Cronenworth (+1.07; 2-for-2, 1 HR). The learning review identifies Contreras as a strong hitter the projection may have under-rated, but individual events do not establish a general lineup adjustment.There were no final winner losses: both published winners were correct. Therefore there is no final loss for which to identify a wrong-result prediction stage. This must not be substituted for a claim of good score or probability quality.
The measured intermediate winner-direction regression is in LAD@ATL: historical ML and variance-applied stages were 0.5 winner-accurate, and variance-applied had no winner-hit improvement. The transition from variance-applied to enhanced prediction changed LAD@ATL ATL → LAD, improving the winner result; later stages retained that direction. This is a real intermediate direction change, but the diagnosis does not provide numeric per-stage score lines or enough evidence to assign it to a specific bad input, weighting, or player adjustment. Later recovery does not erase it.
Across the two games:
Pipeline stages and transitions, all audited (each stage has 2 games):
| Stage | Winner hits | Margin MAE | Team-run MAE | Total-run MAE |
|---|---|---|---|---|
| historical_ml | 1/2 | 1.4979 | 1.4183 | 2.8366 |
| variance_applied | 1/2 | 1.5000 | 1.7500 | 3.5000 |
| enhanced_prediction | 2/2 | 0.5000 | 1.2500 | 2.5000 |
| kpi_layer | 2/2 | 0.5000 | 1.2500 | 2.5000 |
| embedded_savant_run_environment | 2/2 | 0.5000 | 1.2500 | 2.5000 |
| fundamental_edge_target_review | 2/2 | 0.5000 | 1.2500 | 2.5000 |
| capped_target | 2/2 | 0.5000 | 1.2500 | 2.5000 |
| simulation_result | 2/2 | 0.5000 | 1.2500 | 2.5000 |
| published_final | 2/2 | 0.5000 | 1.2500 | 2.5000 |
Variance application regressed team-run MAE by +0.3317 and total-run MAE by +0.6634 relative to historical ML; margin MAE increased by 0.0021. The later enhanced-prediction transition improved team-run MAE by 0.5 and margin MAE by 1.0 and changed one winner direction. All subsequent score-stage transitions were measured as unchanged. This later recovery does not erase the variance-stage regression. The simulation stage had no measured score-stage improvement on this slate.
Each listed tension entry is accounted for:
score.variance_multiplier / score.variance_floor (widen run distributions): Helps: none recorded. Hurts: none recorded. Net slate evidence: 0 helped, 0 hurt. This entry does not establish that widening improves either game or fix their overprojected run means. The separate stage-quality comparison shows variance-applied run-error regression, so any variance experiment should be a shadow test, not a direct production change.player.pitcher.v4 form weights / player.pitcher_prior_games: Helps: MIL@SD, where the starter ER was off by 3. Hurts: LAD@ATL, where Yamamoto’s ER projection was exact and the starter projection was described as accurate within one ER. Net evidence: one help, one risk; no cross-game case for a global form-weight change.recent.* / season.* run-mean weighting: Helps: none recorded. Hurts: MIL@SD, where team runs were already close (off by 2 total supplied team-run absolute error) and reweighting could disturb them. Net evidence: no slate support for changing these weights.Tempting one-game fixes to avoid: Do not globally raise or lower pitcher form weighting because of May alone; it risks disrupting the more accurate LAD starter estimate. Do not shift recent/season run means to chase LAD@ATL’s three-run overprojection when the tension record marks MIL@SD as a risk and reports no helped game. Do not lower confidence solely because both hits received a high two-game calibration error: the observed buckets are labelled underconfident, and the sample is one observation per bucket. Do not assert a governor bypass or alter its setting to explain MIL; the documented problem is the missing probability transformation. Do not tune player projections to one-game hit/miss deviations unsupported by the player’s own contact quality.
Coverage reconciliation: The coverage matrix reports all expected games loaded and structurally audited: 2 expected, 2 canonical artifacts, 2 forensic audits, 2 continuous-learning games, 2 starter comparisons, and 2 completed structural audits. Both game audits pass. Complete coverage is not a clean bill of health: MIL has a critical lineage finding.
Findings by severity:
Prediction-model defects versus presentation/contract issues:
Complete pick-side probability lineage from supplied records:
The cross-slate record covers 11 slates, with 10 prior slates loaded. Persistent escalations are established failures or patterns under the supplied guardrails; they should not be dismissed as noise from this one slate.
Every finding_streaks entry:
| Finding | Consecutive slates | Present now? | Incidence in window | Target(s) |
|---|---|---|---|---|
pipeline_winner_instability | 0 | No | 3 | None registered; accuracy, Brier |
score_margin_compression | 0 | No | 5 | score.variance_multiplier, score.variance_floor |
simulation_inert_on_slate | 11 | Yes | 11 | simulation.allow_score |
single_slate_calibration_instability | 4 | Yes | 8 | confidence.empirical_max_weight, confidence.base_cap, confidence.moderate_cap |
weak_run_model_signal | 4 | Yes | 9 | training.xgb.n_estimators, training.xgb.max_depth, training.xgb.learning_rate |
Escalated findings and required interpretation:
simulation_inert_on_slate, 11 consecutive slates. Target lever listed: simulation.allow_score; target metrics: team-run MAE and total-run MAE. The escalation explicitly says to confirm the simulation is running and not silently no-oping. The detailed diagnosis says the score-realization loop and winner-probability distribution share draws, and the loop can early-exit after finding a target-realizing play-by-play, leaving a draw set too small to provide a meaningful win-rate. The named response is a code/diagnostic fix, not an arbitrary parameter move.single_slate_calibration_instability, 4 consecutive slates, present now. Target levers: confidence.empirical_max_weight, confidence.base_cap, confidence.moderate_cap; target metrics: Brier and calibration error. Its registered direction is increased empirical shrinkage. This persistence supports a bounded shadow experiment.weak_run_model_signal, 4 consecutive slates, present now. Target levers listed are XGBoost estimator count, depth, and learning rate, but the escalation says this is not parameter-actionable: investigate features/target using an isolated training backtest. Holdout total/home/away run R² are all near zero. The evidence calls for a feature/target code and training-contract investigation rather than nightly parameter tuning.Raw structural blocks:
Cross-slate bias and trends:
cross_slate_bias does not mark either supplied bias as persistent. Starter ERA error is negative on 5 of 10 slates, mean −0.225, z −0.57. Lineup run delta is negative on 6 of 10 slates, mean −0.447, z −1.39. Both are held as not separable from slate-to-slate noise; do not turn them into global mean shifts on this evidence alone.top_confidence_pick loss streak is 0. The current 20261006 top pick is a hit; the prior listed 20261005 top pick is a miss. Other recorded results include a miss on 20260926 and hits on 20260927, 20260929, 20260930, 20261001, 20261003, and 20261004; two dates have unknown results. A latest hit means no current loss streak, not that top-pick performance is proven reliable.Ranked by persistence and severity first, then scope, expected metrics, affected games, and regression risk. These are recommendations for controlled work; no configuration or code is changed here.
Exact parameter: confidence.empirical_max_weight. Direction and magnitude: increase by 0.02 absolute from the current registered value, within its valid range, in a shadow-only comparison; do not promote from this slate alone. Expected metric/direction: reduce rolling Brier score and calibration error if the escalation’s shrinkage diagnosis is causal. Games / tension: apply comparison to LAD@ATL and MIL@SD; neither game is explicitly marked as helped or hurt by this calibration lever in lever_tension. Both were hits, so the immediate regression risk is attenuating otherwise correct pick confidence; evaluate on the rolling window and retain the baseline. The shadow gate and rollback monitor, not this analysis, should determine whether the effect is causal.
Registered target: simulation.allow_score is listed, but the escalation and self-assessment say this is not parameter-actionable and explicitly call for confirming the module is running rather than forcing a parameter move. Action: instrument and repair the simulation distribution path so the win-probability distribution comes from an independent, unsteered draw batch or a supported closed-form distribution, does not early-exit after finding a score realization, and reports its contribution to score and winner outputs. Register any batch-size control if introduced. Expected metrics/direction: make simulation contribution measurable and assess team-run MAE and total-run MAE; no improvement is assumed before measurement. Games / tension: both slate games had zero simulation winner flips and no measured simulation-stage score change. The variance lever tension has no helped or hurt games, so there is no game-level evidence to claim a beneficial simulation adjustment. This is an 11-slate established failure pattern, not single-slate noise.
Target levers listed: training.xgb.n_estimators, training.xgb.max_depth, and training.xgb.learning_rate; the escalation marks this finding non-actionable by parameter and calls for an isolated training investigation. Action: do not change those parameters as a stand-in for missing predictive signal. Test the shared feature contract and target in an isolated same-fingerprint backtest, with the specified candidate data such as properly source-labelled no-vig market probability, park/weather environment, bullpen rest/fatigue, and platoon-adjusted lineup quality; bump the model schema version if semantics change. Expected metric/direction: seek better holdout home/away/total run R² and team-run/total-run MAE; require measured improvement before use. Games / tension: the affected slate games are LAD@ATL and MIL@SD, both with total overprojection; the run-mean tension has no recorded helpful game and marks MIL@SD as a risk. Do not tune a feature from a single player or game.
Parameter: none is registered for the unexplained probability delta; forcing a confidence or governor adjustment would conceal rather than resolve the contract defect. Action: reconcile and record every pick-side transformation between calibrated/governed, score-coherence, starter-experience/other controls, and published probability, including the trace-versus-lineage raw values; add a reconciliation check that blocks publication or promotion when a material delta is unexplained. Expected metric/direction: eliminate unexplained material lineage deltas and restore auditable published probability, rather than claiming an immediate accuracy gain. Game / tension: MIL@SD is the affected game. No listed lever-tension entry supports changing a model weight for this defect. This is the safest immediate intervention because it addresses a critical evidence/contract failure.
Known: both published winners were correct, both predicted scores were too high, all starter identities matched, and the structural audit coverage is complete. The run models have near-zero holdout signal, variance application worsened run MAE relative to the historical stage before later stages recovered, and a material MIL@SD probability publication delta is not documented. Simulation inactivity and weak run-model signal are persistent escalations; calibration instability has persisted for four slates and merits a bounded shadow test.
Uncertain: two games cannot establish calibration direction or a stable run-environment bias; the listed per-game player deviations do not isolate a generalizable lineup or starter adjustment; and the supplied probability records do not fully reconcile several raw and intermediate values. Clean artifact checks do not resolve those uncertainties.
Single safest next action for the very next slate: block promotion until the MIL-style published-probability lineage has a complete, auditable transformation record and a check that rejects unexplained material deltas.