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_20261004.json | 54878 |
| forensic deep audit | loaded | probability, provenance, starter and decision contracts | /app/output/reports/PREDICTION_SYSTEM_DEEP_AUDIT_20261004.json | 45853 |
| continuous learning | loaded | pipeline-stage quality, calibration, probability lineage, score distribution, and official starter comparisons | /app/output/learning/continuous_learning_daily_20261004.json | 361824 |
| detailed report | loaded | full game and simulation rendering | /app/output/reports/detailed_20261004.html | 51890 |
| ultra detailed player audit | loaded | player-level prediction trace | /app/output/reports/20261004_ultra_detailed_player_audit.html | 4238122 |
| structural audit | loaded | all invariant findings | /app/output/reports/audit_report_20261004.html | 251944 |
| integrity revision audit | missing | post-Luna remediation proof for immutable revision artifacts | /app/output/reports/audit_report_20261004_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 |
|---|---|---|---|---|
| CRITICAL | probability_lineage | Published probability differs materially without a recorded transformation 1 game(s) have an unexplained ≥2pp calibrated-to-published delta | SD@MIL | 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.4806 across 2 games | ATL@LAD, SD@MIL | Do thisWatch the same confidence buckets over the full rolling window before changing any calibration weight. Don't concludeA single slate has far too few games to establish a stable calibration curve. |
| HIGH | model_validation | Validated run models explain very little holdout variance home/away/total R² = 0.0021/0.0309/0.0024 | ATL@LAD, SD@MIL | Do thisTreat exact run scores as low-confidence estimates, and look for stronger features or a better target before tuning the score tails. Don't concludeA small positive R² only means the model beats guessing the average; it does not make the exact scores reliable. |
| INFO | coverage | Every settled game received structural QA 2/2 games structurally audited | ATL@LAD, SD@MIL | Do thisKeep the per-game audit receipt in every report. Don't concludeFull audit coverage does not cancel the findings raised inside the audited games. |
| INFO | simulation | Simulation produced no winner-direction intervention on this slate flip candidates 0; published flips 0 | ATL@LAD, SD@MIL | Do thisMeasure the simulation's contribution across rolling slates, separating score realization from winner flipping. Don't concludeZero winner flips is not a defect and does not mean the simulation did no score-reconciliation work. |
A finding that has repeated at or beyond the escalation streak is no longer single-slate noise. It carries its target registered lever and an action-oriented guardrail.
| Finding | Persistence | Target lever(s) | Direction | Guardrail |
|---|---|---|---|---|
| simulation_inert_on_slate | 11 consecutive · 11 in window | simulation.allow_score | confirm the simulation module is running, not silently no-oping | simulation_inert_on_slate has persisted 11 consecutive slates; this is no longer single-slate noise. Treat it as an actionable pattern and raise the code/diagnostic action named; do not force a parameter move. |
| Finding | Consecutive slates | Incidence | Present now | Fix type |
|---|---|---|---|---|
| pipeline_winner_instability | 0 | 4/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 | 2 | 7/11 | yes | param |
| weak_run_model_signal | 2 | 9/11 | yes | code/diagnostic |
| Metric | Direction | Series (old → new) |
|---|---|---|
| winner_accuracy | regressing | [0.6667, 0.6471, 0.5385, 0.6429, None, 1.0, 0.75, 1.0, None, 1.0, 0.5] |
| weighted_calibration_error | regressing | [0.1701, 0.1302, 0.1524, 0.1031, None, 0.4792, 0.2317, 0.4832, None, 0.4705, 0.4806] |
| margin_bias | improving | [-1.083, -1.706, -3.0, -1.571, None, -4.25, -2.75, -3.0, None, -0.25, 0.0] |
| team_run_error_on_losses | improving | [3.5, 5.333, 6.167, 4.8, None, None, 2.0, None, None, None, 2.0] |
Every stored stage is scored against the same official finals. A later recovery remains visible; it does not erase an unstable intermediate flip.
| Stage | Winner hits | Accuracy | Team-run MAE | Total-run MAE | Margin MAE |
|---|---|---|---|---|---|
| historical_ml | 1/2 | 50% | 1.437 | 2.874 | 1.192 |
| variance_applied | 1/2 | 50% | 1.5 | 3 | 1 |
| enhanced_prediction | 1/2 | 50% | 1 | 2 | 1 |
| embedded_savant_run_environment | 1/2 | 50% | 1 | 2 | 1 |
| fundamental_edge_target_review | 1/2 | 50% | 1 | 2 | 1 |
| capped_target | 1/2 | 50% | 1 | 2 | 1 |
| simulation_result | 1/2 | 50% | 1 | 2 | 1 |
| published_final | 1/2 | 50% | 1 | 2 | 1 |
| Transition | Δ accuracy | Δ hits | Δ team-run MAE | Δ margin MAE | Games whose winner/tie changed |
|---|---|---|---|---|---|
| historical_ml → variance_applied | 0 | 0 | 0.0629 | -0.1925 | |
| variance_applied → enhanced_prediction | 0 | 0 | -0.5 | 0 | |
| enhanced_prediction → embedded_savant_run_environment | 0 | 0 | 0 | 0 | |
| embedded_savant_run_environment → fundamental_edge_target_review | 0 | 0 | 0 | 0 | |
| fundamental_edge_target_review → capped_target | 0 | 0 | 0 | 0 | |
| capped_target → simulation_result | 0 | 0 | 0 | 0 | |
| simulation_result → published_final | 0 | 0 | 0 | 0 |
All columns are pick-side probabilities, so away favorites are not accidentally compared using home-side semantics.
| Game | Outcome | Raw model | Calibrated | Governor | Score coherence | Published | Explanation |
|---|---|---|---|---|---|---|---|
| ATL@LAD | miss | 0.5816 | 0.547 | 0.547 | 0.547 | 0.5149 | score coherence followed by matchup-recency guardrail |
| SD@MIL | hit | 0.5995 | 0.5765 | 0.5765 | 0.5744 | 0.5538 | 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 | 2 | 0 | 2 | -1.24 | -2 |
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.07 over 10 slates (sign shared by 0.50 of them, z = -0.19).
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.07 +/- 0.37 standard error: not separable from noise
lineup runs actual minus projected
Mean -0.36 over 10 slates (sign shared by 0.60 of them, z = -1.27).
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.36 +/- 0.28 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 |
|---|---|---|---|---|---|---|
| 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 |
| 20260922 | 15 | 0.400 | -0.32 | -0.97 | 3 | 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 |
|---|---|---|---|
| ATL@LAD | 1 | 1 | 0 |
| SD@MIL | 1 | 1 | 0 |
No large single-factor errors.
| Team | Starter | Projected | Actual | ER err |
|---|---|---|---|---|
| ATL | Ray Kerr | 1 ER / 15 outs | 0 ER / 8 outs | -1 |
| LAD | Blake Snell | 1 ER / 16 outs | 1 ER / 11 outs | 0 |
Every value is actual / projected. Run impact approximates how far each hitter's real line moved run expectancy from its projection; it orders the movers and is not a published stat.
Top deviations that drove the game:
Pitcher versus batter: what actually broke this game
Per-pitch matchup fields are not populated in the current feeds, so this is reconstructed from the settled box: each starter's workload-adjusted ERA, the bullpen share behind him, and the opposing lineup's real production against its projection, with the hitters who beat that projection named.
AWAY pitching
Ray Kerr (ATL) threw 8 outs, 0 ER = 0 ERA against a projected 1.8 ERA (-1.8 ERA error) only 10 prior appearances in the covered season - the projection had little of his own record to stand on
Bullpen behind him: 1 ER over 14 outs.
The HOME lineup he faced produced 1 runs on 5 hits and 1 HR, against a projected 5 runs / 7 hits (-4 runs vs projection).
Who did the damage to him:
Verdict: neither side broke materially - the result is closer to variance
HOME pitching
Blake Snell (LAD) threw 11 outs, 1 ER = 2.45 ERA against a projected 1.69 ERA (0.76 ERA error) only 9 prior appearances in the covered season - the projection had little of his own record to stand on
Bullpen behind him: 0 ER over 4 outs.
The AWAY lineup he faced produced 3 runs on 6 hits and 0 HR, against a projected 4 runs / 8 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) |
|---|---|---|---|---|---|---|---|---|---|---|---|
| ATL | Ray Kerr (Starter) | 8 / 15 | 0 / 1.8 | 0 / 1 | 2 / 2 | 0 / 1 | 1 / 0 | 1.32 | 4 / 4 | 1.33 | venue away: 0 vs 0 ERA (ok) · opp run factor 0.99 (strong) · 10 prior appearances this season |
| ATL | Didier Fuentes (Setup Man) | 11 / 3 | 2.45 / 0 | 1 / 0 | 1 / 1 | 1 / 0 | 0 / 0 | 0.2 | 3 / 1 | 1.03 | |
| ATL | Raisel Iglesias (Closer) | 1 / 4 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0.21 | 0 / 1 | 0.95 | |
| ATL | Dylan Lee (Middle Reliever (High Leverage)) | 2 / 2 | 0 / 40.5 (-40.50) | 0 / 3 | 1 / 2 | 0 / 1 | 1 / 2 | 0.22 | 1 / 0 | 1.06 | |
| LAD | Blake Snell (Starter) | 11 / 16 | 2.45 / 1.69 | 1 / 1 | 3 / 2 | 0 / 0 | 5 / 3 | 1.69 | 5 / 9 | 5.25 | venue home: 2.14 vs 1.66 ERA (ok) · opp run factor 1.06 (strong) · 9 prior appearances this season |
| LAD | Edwin Díaz (Middle Reliever (High Leverage)) | 3 / 3 | 0 / 9 (-9.00) | 0 / 1 | 0 / 2 | 0 / 0 | 0 / 0 | 0.48 | 2 / 1 | 1.34 | |
| LAD | Evan Phillips (Setup Man) | 1 / 4 | 0 / 6.75 (-6.75) | 0 / 1 | 0 / 2 | 0 / 0 | 0 / 0 | 0.27 | 0 / 1 | 1.13 |
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 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Michael Harris II (CF) | ATL | 5 / 4 | 3 / 1 | 1 / 1 | 1 / 0 | 0 / 0 | 1 / 1 | 1 / 1 | 0 / 0 | 0 / 1 | 1.56 | 0.342 elite | projection too low |
| Freddie Freeman (1B) | LAD | 4 / 4 | 2 / 1 | 0 / 0 | 0 / 0 | 1 / 0 | 1 / 0 | 1 / 0 | 0 / 0 | 1 / 1 | 1.4 | 0.363 elite | projection too low |
| Shohei Ohtani (DH) | LAD | 4 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 0 / 1 | 0 / 1 | 2 / 1 | -1.26 | 0.397 elite | bad day |
| Will Smith (C) | LAD | 4 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 2 / 1 | -0.8 | 0.389 elite | bad day |
| Miguel Rojas (3B) | LAD | 1 / 3 | 1 / 0 | 1 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0.78 | 0.309 average | no signal |
| Ronald Acuña Jr. (RF) | ATL | 5 / 4 | 1 / 1 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 0 / 1 | 1 / 1 | -0.64 | 0.366 elite | bad day |
| Matt Olson (1B) | ATL | 4 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 1 / 1 | 1 / 0 | 2 / 1 | -0.6 | 0.351 elite | bad day |
| Austin Riley (3B) | ATL | 3 / 3 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 2 | -0.47 | 0.299 below average | — |
| Teoscar Hernández (LF) | LAD | 4 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 0 / 0 | 2 / 1 | -0.47 | 0.332 above average | — |
| Mauricio Dubón (SS) | ATL | 3 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 0 / 0 | 1 / 0 | 2 / 1 | 0.33 | 0.304 average | — |
| Lane Thomas (LF) | ATL | 2 / 3 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 1 / 1 | -0.33 | 0.311 average | — |
| Kyle Tucker (RF) | LAD | 4 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 0 / 1 | -0.33 | 0.331 above average | — |
| Drake Baldwin (C) | ATL | 2 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 3 / 1 | 0 / 1 | 0.19 | 0.37 elite | — |
| Ozzie Albies (2B) | ATL | 4 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 1 / 0 | 1 / 1 | -0.14 | 0.273 weak | — |
| Sean Murphy (DH) | ATL | 1 / 3 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 1 / 1 | -0.14 | 0.273 weak | — |
| Andy Pages (CF) | LAD | 3 / 3 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 1 / 0 | 1 / 1 | -0.14 | 0.343 elite | — |
| Mookie Betts (SS) | LAD | 2 / 4 | 0 / 1 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 2 / 0 | 0 / 0 | -0.12 | 0.339 above average | — |
| Tommy Edman (2B) | LAD | 3 / 3 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 | 0.303 average | — |
| 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.073 | positive favors home; negative favors away |
| Composite | 0.433 | positive favors home; negative favors away |
| Stage | Away-home runs | Confidence | What changed |
|---|---|---|---|
| historical_ml | 3.88-5.06 | n/a | Base ML historical model prediction |
| variance_applied | 4-5 | n/a | Deterministic baseline target (variance factor 1.0) |
| enhanced_prediction | 3-4 | 0.515 | Enhanced ML with recent form, H2H, low-score analysis (confidence shrunk by opposing_starter_is_elite, starter_quality_favours_the_other_side, projected_margin_is_one_run, matchup_recency_guardrail) |
| embedded_savant_run_environment | 3-4 | n/a | Target score adjusted by temporal Savant lineup quality versus opposing starter quality |
| fundamental_edge_target_review | 3-4 | n/a | Refreshed score target and win probability after Savant/pitcher/team-strength adjustments |
| capped_target | 3-4 | n/a | Capped at max 12 realistic runs |
| simulation_result | 3-4 | n/a | Final inning-by-inning simulation result |
| Stage | Before | After | Toward final pick | What changed |
|---|---|---|---|---|
| variance_applied | 3.88-5.06 | 4-5 | -0.182 | Deterministic baseline target (variance factor 1.0) |
| enhanced_prediction | 4-5 | 3-4 | 0 | Enhanced ML with recent form, H2H, low-score analysis (confidence shrunk by opposing_starter_is_elite, starter_quality_favours_the_other_side, projected_margin_is_one_run, matchup_recency_guardrail) |
| embedded_savant_run_environment | 3-4 | 3-4 | 0 | Target score adjusted by temporal Savant lineup quality versus opposing starter quality |
| fundamental_edge_target_review | 3-4 | 3-4 | 0 | Refreshed score target and win probability after Savant/pitcher/team-strength adjustments |
| capped_target | 3-4 | 3-4 | 0 | Capped at max 12 realistic runs |
| simulation_result | 3-4 | 3-4 | 0 | Final inning-by-inning simulation result |
These are pregame model adjustments, not claims about actual postgame player error.
| Team | Player | Role | Net effect | Largest change |
|---|---|---|---|---|
| LAD | Teoscar Hernández | batter / LF | better | predicted_RBI 2.34 |
| ATL | Michael Harris II | batter / CF | worse | predicted_AB -2.05 |
| ATL | Ronald Acuña Jr. | batter / RF | worse | predicted_AB -1.81 |
| ATL | Drake Baldwin | batter / C | worse | predicted_AB -1.75 |
| LAD | Andy Pages | batter / CF | worse | predicted_AB -1.55 |
| ATL | Mauricio Dubón | batter / SS | worse | predicted_SO 1.506 |
| ATL | Ozzie Albies | batter / 2B | worse | predicted_SO 1.358 |
| LAD | Kyle Tucker | batter / RF | worse | predicted_SO 1.298 |
| Severity | Rule | Finding | Subject |
|---|---|---|---|
| info | CURRENT_PITCHER_DUPLICATION | ATL pitcher list appears in both predicted_performance.pitchers and player_predictions_by_position.pitchers; IDs match and were de-duplicated in this audit. | ATL |
| info | CURRENT_PITCHER_DUPLICATION | LAD pitcher list appears in both predicted_performance.pitchers and player_predictions_by_position.pitchers; IDs match and were de-duplicated in this audit. | LAD |
| info | CURRENT_FINALIZED_MATCH_BOX | ATL model-prediction batting totals differ from final simulation box score (AB: current=33, sim=31; H: current=8, sim=6; HR: current=1, sim=0; RBI: current=4, sim=3; R: current=4, sim=3; SO: current=10, sim=13; SF: current=0, sim=2). | ATL |
| info | CURRENT_PLAYER_MATCH_BOX | ATL current finalized hitter lines are model predictions and differ from the simulation box score: Ronald Acuña Jr.: AB current=4 box=3, 2B current=1 box=0, R current=1 box=0; Ozzie Albies: RBI current=1 box=0, R current=1 box=0, SO current=1 box=2; Mauricio Dubón: SO current=1 box=2; Matt Olson: AB current=4 box=3, HR current=1 box=0, BB current=0 box=1, SO current=1 box=2; Drake Baldwin: 2B current=0 box=1, RBI current=1 box=0, BB current=1 box=0, SO current=1 box=2; Sean Murphy: 2B current=0 box=1, BB current=0 box=1, SO current=1 box=0; Michael Harris II: AB current=4 box=3, H current=1 box=0, 2B current=1 box=0, SO current=1 box=2; Lane Thomas: AB current=3 box=4, BB current=1 box=0 | ATL |
| info | CURRENT_FINALIZED_MATCH_BOX | LAD model-prediction batting totals differ from final simulation box score (AB: current=33, sim=30; H: current=7, sim=5; HR: current=1, sim=2; R: current=5, sim=4; BB: current=3, sim=2; SO: current=7, sim=6). | LAD |
| info | CURRENT_PLAYER_MATCH_BOX | LAD current finalized hitter lines are model predictions and differ from the simulation box score: Shohei Ohtani: H current=1 box=0, HR current=1 box=0, RBI current=1 box=0, R current=1 box=0; Teoscar Hernández: HR current=0 box=1, RBI current=1 box=3, SO current=1 box=0; Freddie Freeman: R current=0 box=1, SO current=1 box=2; Will Smith: AB current=4 box=3, H current=1 box=0; Miguel Rojas: H current=0 box=1, 2B current=0 box=1, SO current=0 box=1; Mookie Betts: AB current=4 box=3, 2B current=1 box=0, HR current=0 box=1, BB current=0 box=1; Kyle Tucker: AB current=4 box=3, BB current=1 box=0, SO current=1 box=2; Andy Pages: H current=1 box=0, RBI current=1 box=0, R current=1 box=0, SO current=1 box=0 | LAD |
| info | RECONCILIATION_PROPAGATION | No score_target_reconciliation step was used for this game. |
No large single-factor errors.
| Team | Starter | Projected | Actual | ER err |
|---|---|---|---|---|
| SD | Michael King | 2 ER / 18 outs | 1 ER / 15 outs | -1 |
| MIL | Logan Henderson | 3 ER / 18 outs | 1 ER / 15 outs | -2 |
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
Michael King (SD) threw 15 outs, 1 ER = 1.8 ERA against a projected 3 ERA (-1.2 ERA error)
Bullpen behind him: 2 ER over 5 outs.
The HOME lineup he faced produced 4 runs on 5 hits and 0 HR, against a projected 5 runs / 7 hits (-1 runs vs projection).
Who did the damage to him:
Verdict: offense: the lineup scored well below its projection
HOME pitching
Logan Henderson (MIL) threw 15 outs, 1 ER = 1.8 ERA against a projected 4.5 ERA (-2.7 ERA error)
Bullpen behind him: 0 ER over 10 outs.
The AWAY lineup he faced produced 3 runs on 4 hits and 0 HR, against a projected 5 runs / 7 hits (-2 runs vs projection).
Who did the damage to him:
Verdict: neither side broke materially - the result is closer to variance
Starting pitchers & relievers: actual / projected + context (ERA is workload-aware: ER over 9 innings, so a short blow-up is not read like a quality start; ERA error in parentheses when material. exp BB and exp SO are the continuous rate expectations. The integer beside each is a simulation draw reconciled to the opposing simulated batting box, so it is not the line that ranks pitchers: on the 2026-09-07 slate the integers published 39 walks and 121 strikeouts against 51 and 130 real, while these expectations landed on 50.4 and 132.6.)
| Pitcher | Team | Outs | ERA | ER | H | HR | BB | exp BB | SO | exp SO | Context (as-of) |
|---|---|---|---|---|---|---|---|---|---|---|---|
| SD | Michael King (Starter) | 15 / 18 | 1.8 / 3 | 1 / 2 | 3 / 6 | 0 / 1 | 0 / 0 | 2.15 | 6 / 5 | 4.77 | venue away: 3.64 vs 2.54 ERA (worse here) · opp run factor 0.97 (strong) · 33 prior appearances this season |
| SD | Mason Miller (Closer) | 5 / 5 | 10.8 / 0 (+10.80) | 2 / 0 | 1 / 0 | 0 / 0 | 3 / 0 | 0.43 | 2 / 1 | 1.64 | |
| MIL | Logan Henderson (Starter) | 15 / 18 | 1.8 / 4.5 | 1 / 3 | 2 / 2 | 0 / 1 | 3 / 1 | 1.15 | 4 / 8 | 6.22 | venue home: 1.84 vs 2.98 ERA (ok) · opp run factor 1.01 (average) · 18 prior appearances this season |
| MIL | Aaron Ashby (Middle Reliever (High Leverage)) | 3 / 3 | 0 / 0 | 0 / 0 | 2 / 2 | 0 / 0 | 0 / 0 | 0.54 | 1 / 1 | 1.52 | |
| MIL | Abner Uribe (Setup Man) | 4 / 3 | 0 / 0 | 0 / 0 | 1 / 0 | 0 / 0 | 1 / 0 | 0.29 | 0 / 0 | 1.12 | |
| MIL | Trevor Megill (Closer) | 3 / 3 | 0 / 9 (-9.00) | 0 / 1 | 0 / 1 | 0 / 1 | 0 / 0 | 0.21 | 0 / 2 | 1.14 |
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 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Brice Turang (2B) | MIL | 4 / 4 | 0 / 1 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 0 / 1 | 1 / 1 | -1.11 | 0.344 elite | bad day |
| Manny Machado (3B) | SD | 2 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 1 / 1 | 2 / 1 | 0 / 1 | -1.07 | 0.328 above average | bad day |
| Jackson Chourio (LF) | MIL | 4 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 2 / 1 | 0 / 1 | 0 / 0 | 0 / 1 | -0.93 | 0.344 elite | bad day |
| Jake Bauers (1B) | MIL | 4 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 0 / 1 | 2 / 1 | -0.8 | 0.371 elite | bad day |
| Fernando Tatis Jr. (RF) | SD | 5 / 4 | 0 / 1 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 1 / 1 | 0 / 0 | 1 / 1 | -0.78 | 0.379 elite | bad day |
| Sal Frelick (RF) | MIL | 2 / 3 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 1 / 0 | 2 / 0 | 0 / 1 | 0.66 | 0.281 weak | good day |
| Ty France (1B) | SD | 3 / 4 | 2 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 2 / 1 | 0 / 0 | 0 / 0 | 1 / 1 | 0.47 | 0.327 above average | — |
| Dustin Harris (LF) | SD | 5 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 0 / 1 | 0 / 0 | 1 / 1 | -0.47 | 0.314 average | — |
| Xander Bogaerts (SS) | SD | 3 / 3 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 1 / 1 | 2 / 1 | -0.47 | 0.325 above average | — |
| William Contreras (C) | MIL | 4 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 0 / 0 | 1 / 1 | -0.47 | 0.334 above average | — |
| Cooper Pratt (SS) | MIL | 3 / 3 | 1 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0.47 | 0.315 average | — |
| Garrett Mitchell (CF) | MIL | 4 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 0 / 1 | 2 / 1 | -0.33 | 0.353 elite | — |
| Christian Yelich (DH) | MIL | 3 / 4 | 1 / 1 | 1 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 2 / 1 | 1 / 1 | 1 / 1 | 0.31 | 0.308 average | — |
| Jackson Merrill (CF) | SD | 4 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 0 / 0 | 1 / 1 | 0 | 0.347 elite | — |
| Luis Campusano (C) | SD | 2 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 1 / 1 | 0 / 1 | 0 | 0.327 above average | — |
| Jake Cronenworth (2B) | SD | 4 / 3 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 | 0.275 weak | — |
| David Hamilton (3B) | MIL | 3 / 3 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 0 | 0.276 weak | — |
| 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.033 | positive favors home; negative favors away |
| Composite | 0.421 | positive favors home; negative favors away |
| Stage | Away-home runs | Confidence | What changed |
|---|---|---|---|
| historical_ml | 3.81-5.01 | 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.554 | Enhanced ML with recent form, H2H, low-score analysis (confidence shrunk by projected_margin_is_one_run, season_quality_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 | 3.81-5.01 | 4-5 | -0.203 | 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, season_quality_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 |
|---|---|---|---|---|
| MIL | Christian Yelich | batter / DH | better | predicted_RBI 2.52 |
| MIL | William Contreras | batter / C | worse | predicted_SO 2.363 |
| MIL | Jake Bauers | batter / 1B | better | predicted_H 2.13 |
| SD | Ethan Salas | batter / DH | better | predicted_AB 1.5 |
| SD | Fernando Tatis Jr. | batter / RF | worse | predicted_H -1.36 |
| SD | Jackson Merrill | batter / CF | worse | predicted_RBI 1.34 |
| SD | Xander Bogaerts | batter / SS | worse | predicted_SO 1.295 |
| MIL | David Hamilton | batter / 3B | worse | predicted_SO 1.241 |
| Severity | Rule | Finding | Subject |
|---|---|---|---|
| info | CURRENT_PITCHER_DUPLICATION | MIL pitcher list appears in both predicted_performance.pitchers and player_predictions_by_position.pitchers; IDs match and were de-duplicated in this audit. | MIL |
| info | CURRENT_PITCHER_DUPLICATION | SD pitcher list appears in both predicted_performance.pitchers and player_predictions_by_position.pitchers; IDs match and were de-duplicated in this audit. | SD |
| info | CURRENT_FINALIZED_MATCH_BOX | MIL model-prediction batting totals differ from final simulation box score (AB: current=33, sim=34; H: current=7, sim=10; 2B: current=1, sim=2; 3B: current=0, sim=1; RBI: current=4, sim=5; BB: current=4, sim=0; SO: current=9, sim=7). | MIL |
| info | CURRENT_PLAYER_MATCH_BOX | MIL current finalized hitter lines are model predictions and differ from the simulation box score: Brice Turang: H current=1 box=0, 2B current=1 box=0, RBI current=1 box=0, R current=1 box=0; Jackson Chourio: H current=1 box=2, HR current=1 box=0, RBI current=1 box=0, SO current=1 box=0; William Contreras: 2B current=0 box=1, RBI current=1 box=2, R current=0 box=1, SO current=1 box=3; Jake Bauers: H current=1 box=3, 2B current=0 box=1, 3B current=0 box=1, RBI current=1 box=0; Cooper Pratt: SO current=1 box=0; Garrett Mitchell: BB current=1 box=0; Christian Yelich: H current=1 box=2, HR current=0 box=1, RBI current=0 box=3, BB current=1 box=0; Sal Frelick: AB current=3 box=4 | MIL |
| info | CURRENT_FINALIZED_MATCH_BOX | SD model-prediction batting totals differ from final simulation box score (AB: current=33, sim=32; H: current=7, sim=5; 2B: current=1, sim=0; HR: current=1, sim=2; R: current=5, sim=4; BB: current=3, sim=1; SO: current=9, sim=11). | SD |
| info | CURRENT_PLAYER_MATCH_BOX | SD current finalized hitter lines are model predictions and differ from the simulation box score: Ty France: AB current=4 box=3, RBI current=1 box=0, R current=0 box=1, BB current=0 box=1; Dustin Harris: H current=1 box=2, RBI current=0 box=1; Manny Machado: H current=1 box=0, HR current=1 box=0, RBI current=1 box=0, R current=1 box=0; Ethan Salas: AB current=3 box=4, H current=0 box=1, HR current=0 box=1, RBI current=0 box=1; Fernando Tatis Jr.: H current=1 box=0, 2B current=1 box=0, RBI current=1 box=0, R current=1 box=0; Jackson Merrill: HR current=0 box=1, RBI current=1 box=2, SO current=1 box=2; Xander Bogaerts: H current=1 box=0, R current=1 box=0, BB current=1 box=0, SO current=1 box=2; Luis Campusano: AB current=4 box=3, H current=1 box=0, BB current=1 box=0, SO current=1 box=0 | SD |
| 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 20261003. Last recorded change: v4.30.0 (2026-09-08) Hitter shrinkage is derived from the between-hitter spread rather than fitted to slate error, so an established extreme profile is no longer flattened toward the league.
| Metric | Prior | Current | Δ | Result |
|---|---|---|---|---|
| brier_score | 0.2435 | 0.2445 | +0.000925 | regressed |
| accuracy | 0.5965 | 0.5877 | -0.0088 | regressed |
| team_run_mae | 2.5263 | 2.5263 | +0 | flat |
| total_run_mae | 3.7018 | 3.7193 | +0.0175 | regressed |
| calibration_error | 0.0995 | 0.0915 | -0.008 | improved |
| starter_er_mae | 1.7072 | 1.6947 | -0.0125 | improved |
| starter_outs_mae | 4.2477 | 4.2522 | +0.0045 | regressed |