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_20260930.json | n/a |
| forensic deep audit | loaded | probability, provenance, starter and decision contracts | /app/output/reports/PREDICTION_SYSTEM_DEEP_AUDIT_20260930.json | n/a |
| continuous learning | loaded | pipeline-stage quality, calibration, probability lineage | /app/output/learning/continuous_learning_daily_20260930.json | n/a |
| game artifacts | loaded | per-game model trace and structural audit source | /app/output/games | 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 | pipeline_stages | An intermediate stage materially degraded winner direction historical_ml → variance_applied changed winner accuracy by -0.2500 (-1 hits) | PHI@ATL | Do thisList the exact games whose winner flipped at this stage, and keep both the before-stage and after-stage picks in the trace. Don't concludeEven if a later stage recovers the pick, this unstable step is still a risk; do not treat it as harmless. |
| HIGH | score_distribution | Published margins are compressed relative to realized margins 4/4 predictions were ≤2 runs; 2/4 actual margins were ≥4; mean predicted margin 1.00 vs actual 3.75 | BOS@NYY, CHW@HOU | Do thisCheck whether predicted margins are too narrow across several recent out-of-sample slates (measuring tail coverage and margin MAE) before widening the score spread. Don't concludeA single blowout game is not a reason to widen every score prediction. |
| HIGH | calibration | Published confidence buckets were poorly aligned on this slate weighted absolute calibration error 0.2317 across 4 games | BOS@NYY, CHC@SD, CHW@HOU, PHI@ATL | 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 | BOS@NYY, CHC@SD, CHW@HOU, PHI@ATL | 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 4/4 games structurally audited | BOS@NYY, CHC@SD, CHW@HOU, PHI@ATL | 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 | probability_lineage | Material calibrated-to-published movements have recorded lineage 1 material movement(s), all explained by named score-coherence and/or recency transformations | BOS@NYY | Do thisKeep showing every probability layer and the named transformation between them. Don't concludeA published probability above the calibrated one is not a governor bypass when a recorded transformation explains it. |
| INFO | simulation | Simulation produced no winner-direction intervention on this slate flip candidates 0; published flips 0 | BOS@NYY, CHC@SD, CHW@HOU, PHI@ATL | 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 |
|---|---|---|---|---|
| high_raw_probability_cluster | 0 | 1/11 | no | param |
| pipeline_winner_instability | 2 | 6/11 | yes | code/diagnostic |
| score_margin_compression | 2 | 4/11 | yes | 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 | 10/11 | yes | code/diagnostic |
| Metric | Direction | Series (old → new) |
|---|---|---|
| winner_accuracy | improving | [0.6, 0.3333, 0.4, 0.5, 0.6667, 0.6471, 0.5385, 0.6429, None, 1.0, 0.75] |
| weighted_calibration_error | regressing | [0.3184, 0.2028, 0.1881, 0.1108, 0.1701, 0.1302, 0.1524, 0.1031, None, 0.4792, 0.2317] |
| margin_bias | regressing | [-1.533, -2.667, -1.867, -1.188, -1.083, -1.706, -3.0, -1.571, None, -4.25, -2.75] |
| team_run_error_on_losses | improving | [6.5, 3.0, 6.222, 5.75, 3.5, 5.333, 6.167, 4.8, 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 | 3/4 | 75% | 1.783 | 1.853 | 3.113 |
| variance_applied | 2/4 | 50% | 1.875 | 1.75 | 3.25 |
| enhanced_prediction | 3/4 | 75% | 1.875 | 2.25 | 3.25 |
| embedded_savant_run_environment | 3/4 | 75% | 1.875 | 2.25 | 3.25 |
| fundamental_edge_target_review | 3/4 | 75% | 1.875 | 2.25 | 3.25 |
| capped_target | 3/4 | 75% | 1.875 | 2.25 | 3.25 |
| simulation_result | 3/4 | 75% | 1.875 | 2.25 | 3.25 |
| published_final | 3/4 | 75% | 1.875 | 2.25 | 3.25 |
| Transition | Δ accuracy | Δ hits | Δ team-run MAE | Δ margin MAE | Games whose winner/tie changed |
|---|---|---|---|---|---|
| historical_ml → variance_applied | -0.25 | -1 | 0.0916 | 0.1374 | PHI@ATL: PHI → TIE |
| variance_applied → enhanced_prediction | 0.25 | 1 | 0 | 0 | CHW@HOU: HOU → CHW; PHI@ATL: TIE → ATL |
| 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 |
|---|---|---|---|---|---|---|---|
| BOS@NYY | hit | 0.6103 | 0.5622 | 0.5622 | 0.5622 | 0.54 | score coherence followed by matchup-recency guardrail |
| CHC@SD | hit | 0.5437 | 0.5269 | 0.5269 | 0.5269 | 0.5152 | score coherence followed by matchup-recency guardrail |
| CHW@HOU | hit | 0.5 | 0.505 | 0.505 | 0.505 | 0.505 | published probability matches the calibrated/governed value |
| PHI@ATL | miss | 0.5268 | 0.5177 | 0.5177 | 0.5178 | 0.5128 | published probability matches the calibrated/governed value |
One blown start is noise. The same failure repeating across the slate is a model problem. These are the repeats.
| Sides analyzed | Broke on pitching | Broke on offense | Both | Variance | Mean starter ERA error | Mean lineup runs vs proj |
|---|---|---|---|---|---|---|
| 8 | 0 | 1 | 0 | 7 | 0.78 | 0.12 |
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 4 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 |
|---|---|---|---|---|---|---|---|
| CHW@HOU | 0.544 | 0.519 | home | 0.495 | away | yes | hit |
Blend side survived on 3 of 4 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.14 over 11 slates (sign shared by 0.55 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
6 of 11 slates share the sign, mean -0.14 +/- 0.33 standard error: not separable from noise
lineup runs actual minus projected
Mean -0.27 over 11 slates (sign shared by 0.64 of them, z = -1.41).
lineups scored below projection: the run environment is set too high.
Hold: no change: this bias is not separable from slate-to-slate noise yet
7 of 11 slates share the sign, mean -0.27 +/- 0.19 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 |
|---|---|---|---|---|---|---|
| 20261001 | 1 | 1.000 | 0.00 | 0.50 | ||
| 20260930 | 4 | 0.750 | 0.78 | 0.00 | 1 | |
| 20260929 | 4 | 1.000 | -0.76 | -0.50 | 3 | |
| 20260928 | — | — | — | |||
| 20260927 | 14 | 0.643 | -2.16 | -0.06 | 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 |
| 20260921 | 3 | 0.333 | -1.08 | -0.50 | ||
| 20260920 | 15 | 0.600 | -0.89 | -1.00 | 2 | 10 |
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 |
|---|---|---|---|
| BOS@NYY | 1 | 7 | -6 |
| CHC@SD | 1 | 3 | -2 |
| CHW@HOU | 1 | 4 | -3 |
| PHI@ATL | 1 | 1 | 0 |
| Team | Starter | Projected | Actual | ER err |
|---|---|---|---|---|
| BOS | Sonny Gray | 3 ER / 18 outs | 2 ER / 14 outs | -1 |
| NYY | Max Fried | 0 ER / 18 outs | 1 ER / 18 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 Sonny Gray (BOS) at a projected 4.5 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 9 runs on 14 hits and 2 HR, against a projected 6 runs / 8 hits (3 runs vs projection).
Who did the damage to him:
Verdict: neither side broke materially - the result is closer to variance
HOME pitching
Max Fried (NYY) threw 18 outs, 1 ER = 1.5 ERA against a projected 0 ERA (1.5 ERA error)
Bullpen behind him: 0 ER over 4 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: 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 | Max Fried (Starter) | 18 / 18 | 1.5 / 0 | 1 / 0 | 3 / 2 | 1 / 0 | 1 / 1 | 1.43 | 6 / 5 | 5.41 | venue home: 3.66 vs 2.34 ERA (worse here) · opp run factor 0.98 (average) · 20 prior appearances this season |
| NYY | Brent Headrick (Setup Man) | 1 / 3 | 0 / 18 (-18.00) | 0 / 2 | 0 / 2 | 0 / 1 | 0 / 0 | 0.44 | 0 / 0 | 1.4 | |
| NYY | David Bednar (Closer) | 3 / 3 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 1 / 0 | 0.32 | 1 / 0 | 1.11 |
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 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Cody Bellinger (LF) | NYY | 5 / 4 | 2 / 1 | 0 / 0 | 0 / 0 | 1 / 0 | 4 / 1 | 1 / 1 | 0 / 1 | 1 / 1 | 1.07 | 0.335 above average | projection too low |
| Luis García Jr. (1B) | NYY | 5 / 4 | 3 / 1 | 0 / 0 | 0 / 0 | 1 / 1 | 1 / 1 | 1 / 1 | 0 / 0 | 1 / 1 | 0.94 | 0.341 elite | projection too low |
| Ben Rice (DH) | NYY | 4 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 1 / 1 | 1 / 1 | 1 / 1 | -0.93 | 0.378 elite | bad day |
| Jazz Chisholm Jr. (2B) | NYY | 3 / 3 | 2 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 2 / 0 | 1 / 0 | 0 / 1 | 0.8 | 0.294 below average | good day |
| Trent Grisham (CF) | NYY | 3 / 3 | 2 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 1 / 1 | 0 / 1 | 0.47 | 0.337 above average | — |
| Austin Wells (C) | NYY | 3 / 3 | 1 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 2 / 0 | 1 / 0 | 0 / 0 | 0 / 1 | 0.47 | 0.3 below average | — |
| Spencer Jones (RF) | NYY | 5 / 4 | 1 / 1 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 1 / 1 | 0 / 0 | 4 / 1 | -0.31 | 0.328 above average | — |
| George Lombard Jr. (SS) | NYY | 4 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 1 / 1 | 0 / 0 | 2 / 1 | 0 | 0.298 below average | — |
| Ryan McMahon (3B) | NYY | 3 / 3 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 0 | 0.297 below average | — |
| Signal | Home-away edge | Meaning |
|---|---|---|
| Season quality | 0.34 | positive favors home; negative favors away |
| Recent form | 0.23 | positive favors home; negative favors away |
| Starting-pitcher matchup | -0.054 | positive favors home; negative favors away |
| Composite | 0.306 | positive favors home; negative favors away |
| Stage | Away-home runs | Confidence | What changed |
|---|---|---|---|
| historical_ml | 3.83-5.68 | n/a | Base ML historical model prediction |
| variance_applied | 4-6 | n/a | Deterministic baseline target (variance factor 1.0) |
| enhanced_prediction | 3-4 | 0.54 | Enhanced ML with recent form, H2H, low-score analysis (confidence shrunk by 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.83-5.68 | 4-6 | 0.145 | Deterministic baseline target (variance factor 1.0) |
| enhanced_prediction | 4-6 | 3-4 | -1 | Enhanced ML with recent form, H2H, low-score analysis (confidence shrunk by 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 |
|---|---|---|---|---|
| NYY | Luis García Jr. | batter / 1B | better | predicted_RBI 2.72 |
| BOS | Wilyer Abreu | batter / RF | worse | predicted_H 2.1 |
| BOS | Jahmai Jones | batter / DH | worse | predicted_RBI 1.93 |
| NYY | Ben Rice | batter / DH | worse | predicted_H -1.77 |
| NYY | Ryan McMahon | batter / 3B | worse | predicted_H 1.74 |
| BOS | Trevor Story | batter / SS | worse | predicted_SO -1.338 |
| NYY | Spencer Jones | batter / RF | worse | predicted_SO -1.253 |
| NYY | Trent Grisham | batter / CF | worse | predicted_SO 1.235 |
| Severity | Rule | Finding | Subject |
|---|---|---|---|
| info | CURRENT_PITCHER_DUPLICATION | BOS pitcher list appears in both predicted_performance.pitchers and player_predictions_by_position.pitchers; IDs match and were de-duplicated in this audit. | BOS |
| 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_FINALIZED_MATCH_BOX | BOS model-prediction batting totals differ from final simulation box score (AB: current=32, sim=33; 2B: current=2, sim=3; RBI: current=4, sim=3; BB: current=3, sim=1; SO: current=9, sim=5; SF: current=0, sim=1). | BOS |
| info | CURRENT_PLAYER_MATCH_BOX | BOS current finalized hitter lines are model predictions and differ from the simulation box score: Willson Contreras: H current=1 box=0, HR current=1 box=0, RBI current=1 box=0, R current=1 box=0; Adley Rutschman: H current=1 box=0, 2B current=1 box=0, RBI current=1 box=0, BB current=1 box=0; Jahmai Jones: AB current=3 box=4, HR current=0 box=1, RBI current=0 box=2, R current=0 box=1; Wilyer Abreu: H current=1 box=3, 2B current=0 box=2, RBI current=1 box=0, SO current=1 box=0; Ceddanne Rafaela: 2B current=1 box=0, SO current=1 box=0; Nick Sogard: AB current=4 box=3, RBI current=0 box=1, R current=0 box=1, BB current=1 box=0; Caleb Durbin: AB current=3 box=4, R current=1 box=0; Trevor Story: AB current=3 box=4, H current=1 box=0, RBI current=1 box=0, SO current=1 box=0 | BOS |
| info | CURRENT_FINALIZED_MATCH_BOX | NYY model-prediction batting totals differ from final simulation box score (AB: current=32, sim=35; H: current=8, sim=11; 2B: current=1, sim=0; R: current=6, sim=4; BB: current=3, sim=0; SO: current=9, sim=4). | NYY |
| info | CURRENT_PLAYER_MATCH_BOX | NYY current finalized hitter lines are model predictions and differ from the simulation box score: Spencer Jones: H current=1 box=2, 2B current=1 box=0, RBI current=1 box=0, SO current=1 box=0; George Lombard Jr.: R current=1 box=0, SO current=1 box=0; Ben Rice: H current=1 box=0, HR current=1 box=0, RBI current=1 box=0, R current=1 box=0; Luis García Jr.: H current=1 box=2, RBI current=1 box=3, SO current=1 box=0; Cody Bellinger: RBI current=1 box=0, R current=1 box=0, BB current=1 box=0, SO current=1 box=0; Jazz Chisholm Jr.: AB current=3 box=4; Trent Grisham: AB current=3 box=4, HR current=0 box=1, RBI current=0 box=1, BB current=1 box=0; Austin Wells: AB current=3 box=4, H current=0 box=1, SO current=1 box=0 | NYY |
| info | RECONCILIATION_PROPAGATION | No score_target_reconciliation step was used for this game. |
| Team | Starter | Projected | Actual | ER err |
|---|---|---|---|---|
| CHC | Kevin Gausman | 4 ER / 17 outs | 3 ER / 10 outs | -1 |
| SD | Nick Pivetta | 2 ER / 15 outs | 1 ER / 10 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 Kevin Gausman (CHC) at a projected 6.35 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 7 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
Nick Pivetta (SD) threw 10 outs, 1 ER = 2.7 ERA against a projected 3.6 ERA (-0.9 ERA error) only 8 prior appearances in the covered season - the projection had little of his own record to stand on
Bullpen behind him: 0 ER over 17 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) |
|---|---|---|---|---|---|---|---|---|---|---|---|
| SD | Nick Pivetta (Starter) | 10 / 15 | 2.7 / 3.6 | 1 / 2 | 3 / 5 | 0 / 1 | 2 / 4 | 0.64 | 4 / 5 | 4.5 | venue home: 3 vs 2.63 ERA (ok) · opp run factor 0.95 (strong) · 8 prior appearances this season |
| SD | Bradgley Rodriguez (Middle Reliever (High Leverage)) | 5 / 4 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 0.34 | 2 / 2 | 1.31 | |
| SD | Adrian Morejon (Setup Man) | 6 / 3 | 0 / 9 (-9.00) | 0 / 1 | 1 / 1 | 0 / 1 | 0 / 0 | 0.42 | 0 / 2 | 1.24 | |
| SD | Mason Miller (Closer) | 3 / 3 | 0 / 0 | 0 / 0 | 1 / 0 | 0 / 0 | 0 / 0 | 0.39 | 2 / 1 | 1.71 | |
| SD | Jason Adam (Middle Reliever (High Leverage)) | 3 / 2 | 0 / 13.5 (-13.50) | 0 / 1 | 0 / 1 | 0 / 0 | 0 / 0 | 0.3 | 0 / 1 | 0.55 |
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 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Manny Machado (3B) | SD | 4 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 0 / 1 | 0 / 1 | 1 / 1 | -1.26 | 0.328 above average | bad day |
| Fernando Tatis Jr. (RF) | SD | 4 / 4 | 0 / 1 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 0 / 1 | 1 / 1 | -1.11 | 0.379 elite | bad day |
| Jackson Merrill (CF) | SD | 3 / 4 | 2 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 1 / 1 | 1 / 0 | 1 / 1 | 0.8 | 0.347 elite | projection too low |
| Ty France (1B) | SD | 4 / 4 | 2 / 1 | 1 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 1 / 0 | 0 / 0 | 1 / 1 | 0.78 | 0.327 above average | projection too low |
| Dustin Harris (LF) | SD | 4 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 0 / 0 | -0.47 | 0.314 average | — |
| Ethan Salas (C) | SD | 1 / 3 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | -0.47 | 0.227 weak | — |
| Austin Hays (DH) | SD | 1 / 3 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | -0.47 | 0.295 below average | — |
| Xander Bogaerts (SS) | SD | 4 / 3 | 2 / 1 | 1 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 1 / 1 | 0 / 1 | 0 / 1 | 0.45 | 0.325 above average | — |
| Jake Cronenworth (2B) | SD | 2 / 3 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 | 0.275 weak | — |
| Signal | Home-away edge | Meaning |
|---|---|---|
| Season quality | -0.235 | positive favors home; negative favors away |
| Recent form | 0.158 | positive favors home; negative favors away |
| Starting-pitcher matchup | 0.024 | positive favors home; negative favors away |
| Composite | 0.143 | positive favors home; negative favors away |
| Stage | Away-home runs | Confidence | What changed |
|---|---|---|---|
| historical_ml | 3.88-4.54 | 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.515 | 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 | 3.88-4.54 | 4-5 | 0.337 | 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 |
|---|---|---|---|---|
| CHC | Dansby Swanson | batter / SS | worse | predicted_SO 3.081 |
| SD | Manny Machado | batter / 3B | worse | predicted_RBI 3.08 |
| CHC | Kevin Gausman | pitcher / Starter | neutral | predicted_SO 3 |
| SD | Fernando Tatis Jr. | batter / RF | worse | predicted_SO 2.171 |
| SD | Nick Pivetta | pitcher / Starter | better | predicted_ER -2 |
| CHC | Pete Crow-Armstrong | batter / CF | worse | predicted_SO 1.851 |
| CHC | Carson Kelly | batter / C | better | predicted_RBI 1.6 |
| SD | Dustin Harris | batter / LF | worse | predicted_SO 1.512 |
| Severity | Rule | Finding | Subject |
|---|---|---|---|
| info | CURRENT_PITCHER_DUPLICATION | CHC pitcher list appears in both predicted_performance.pitchers and player_predictions_by_position.pitchers; IDs match and were de-duplicated in this audit. | CHC |
| 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 | CHC model pitcher projections differ from final simulation pitching box score (BB: current=1, sim=2; HR: current=2, sim=3). | CHC |
| info | CURRENT_FINALIZED_MATCH_BOX | CHC model-prediction batting totals differ from final simulation box score (AB: current=33, sim=34; HR: current=1, sim=2; R: current=5, sim=4; BB: current=4, sim=5; SO: current=8, sim=11). | CHC |
| info | CURRENT_PLAYER_MATCH_BOX | CHC current finalized hitter lines are model predictions and differ from the simulation box score: Alex Bregman: AB current=4 box=5, H current=1 box=2, 2B current=0 box=1, HR current=0 box=1; Pete Crow-Armstrong: AB current=4 box=5, HR current=1 box=0, BB current=1 box=0, SO current=1 box=3; Ian Happ: AB current=4 box=3, H current=0 box=1, R current=1 box=0; Matt Shaw: H current=1 box=0, BB current=0 box=1; Nico Hoerner: AB current=4 box=3, H current=1 box=0, BB current=0 box=1; Seiya Suzuki: AB current=4 box=3, 2B current=1 box=0, RBI current=1 box=0; Michael Busch: H current=1 box=0, SO current=1 box=0; Carson Kelly: AB current=3 box=4, H current=1 box=2, HR current=0 box=1, RBI current=1 box=2 | CHC |
| info | CURRENT_FINALIZED_MATCH_BOX | SD model-prediction batting totals differ from final simulation box score (AB: current=32, sim=33; H: current=8, sim=9; 3B: current=0, sim=1; HR: current=1, sim=3; RBI: current=4, sim=5; BB: current=3, sim=2; SO: current=8, sim=10). | SD |
| info | CURRENT_PLAYER_MATCH_BOX | SD current finalized hitter lines are model predictions and differ from the simulation box score: Dustin Harris: AB current=4 box=3, 3B current=0 box=1, BB current=0 box=1, SO current=0 box=2; Ty France: RBI current=1 box=0; Fernando Tatis Jr.: RBI current=1 box=0, BB current=1 box=0, SO current=1 box=3; Manny Machado: H current=1 box=2, HR current=1 box=2, RBI current=1 box=4, BB current=1 box=0; Ethan Salas: AB current=3 box=4, H current=1 box=0, SO current=1 box=0; Xander Bogaerts: AB current=3 box=4, H current=1 box=2, BB current=1 box=0; Jackson Merrill: H current=1 box=0, RBI current=1 box=0, R current=1 box=0; Austin Hays: HR current=0 box=1, RBI current=0 box=1, R current=0 box=1, BB current=0 box=1 | SD |
| info | RECONCILIATION_PROPAGATION | No score_target_reconciliation step was used for this game. |
No large single-factor errors.
| Team | Starter | Projected | Actual | ER err |
|---|---|---|---|---|
| CHW | Sean Burke | 2 ER / 15 outs | 3 ER / 12 outs | 1 |
| HOU | Hunter Brown | 3 ER / 17 outs | 3 ER / 2 outs | 0 |
Every value is actual / projected. Run impact approximates how far each hitter's real line moved run expectancy from its projection; it orders the movers and is not a published stat.
Top deviations that drove the game:
Pitcher versus batter: what actually broke this game
Per-pitch matchup fields are not populated in the current feeds, so this is reconstructed from the settled box: each starter's workload-adjusted ERA, the bullpen share behind him, and the opposing lineup's real production against its projection, with the hitters who beat that projection named.
AWAY pitching
No settled pitching line for this club. The forecast named Sean Burke (CHW) at a projected 3.6 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 0 runs on 0 hits and 0 HR, against a projected 0 runs / 0 hits (0 runs vs projection).
No individual hitter beat his projection by a meaningful margin.
Verdict: neither side broke materially - the result is closer to variance
HOME pitching
No settled pitching line for this club. The forecast named Hunter Brown (HOU) at a projected 4.76 ERA, but the per-player feed carries no pitching row for him in this game, so the actual-versus-projected comparison cannot be made on this side. That is a source-coverage gap in the settled box, not a forecasting failure.
Bullpen behind him: 0 ER over 0 outs.
The AWAY lineup he faced produced 6 runs on 7 hits and 1 HR, against a projected 5 runs / 7 hits (1 runs vs projection).
Who did the damage to him:
Verdict: neither side broke materially - the result is closer to variance
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 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Munetaka Murakami (1B) | CHW | 5 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 0 / 1 | 0 / 1 | 3 / 2 | -1.73 | 0.351 elite | bad day |
| Chase Meidroth (2B) | CHW | 3 / 3 | 2 / 1 | 0 / 0 | 0 / 0 | 1 / 0 | 3 / 0 | 1 / 1 | 1 / 0 | 0 / 1 | 1.73 | 0.301 below average | good day |
| Miguel Vargas (3B) | CHW | 5 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 1 / 1 | 0 / 1 | 2 / 1 | -0.8 | 0.378 elite | bad day |
| Braden Montgomery (RF) | CHW | 4 / 3 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 1 / 1 | -0.8 | 0.325 above average | bad day |
| Andrew Benintendi (DH) | CHW | 2 / 3 | 1 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 1 / 0 | 1 / 0 | 0 / 1 | 0.8 | 0.307 average | no signal |
| Colson Montgomery (SS) | CHW | 3 / 3 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 2 / 1 | 0.33 | 0.294 below average | — |
| Kyle Teel (C) | CHW | 5 / 4 | 2 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 1 / 1 | 0 / 1 | 3 / 1 | 0.14 | 0.321 above average | — |
| Sam Antonacci (LF) | CHW | 4 / 4 | 1 / 1 | 1 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 0 / 1 | 1 / 1 | -0.02 | 0.348 elite | — |
| Tristan Peters (CF) | CHW | 3 / 3 | 1 / 1 | 0 / 1 | 0 / 0 | 0 / 0 | 1 / 0 | 1 / 0 | 1 / 0 | 1 / 1 | 0.02 | 0.314 average | — |
| Signal | Home-away edge | Meaning |
|---|---|---|
| Season quality | -0.45 | positive favors home; negative favors away |
| Recent form | -0.154 | positive favors home; negative favors away |
| Starting-pitcher matchup | -0.03 | positive favors home; negative favors away |
| Composite | -0.533 | positive favors home; negative favors away |
| Stage | Away-home runs | Confidence | What changed |
|---|---|---|---|
| historical_ml | 4.39-4.6 | n/a | Base ML historical model prediction |
| variance_applied | 4-5 | n/a | Deterministic baseline target (variance factor 1.0) |
| enhanced_prediction | 6-5 | 0.505 | Enhanced ML with recent form, H2H, low-score analysis (confidence shrunk by projected_margin_is_one_run, matchup_recency_guardrail) |
| embedded_savant_run_environment | 6-5 | n/a | Target score adjusted by temporal Savant lineup quality versus opposing starter quality |
| fundamental_edge_target_review | 6-5 | n/a | Refreshed score target and win probability after Savant/pitcher/team-strength adjustments |
| capped_target | 6-5 | n/a | Capped at max 12 realistic runs |
| simulation_result | 6-5 | n/a | Final inning-by-inning simulation result |
| Stage | Before | After | Toward final pick | What changed |
|---|---|---|---|---|
| variance_applied | 4.39-4.6 | 4-5 | -0.787 | Deterministic baseline target (variance factor 1.0) |
| enhanced_prediction | 4-5 | 6-5 | 2 | Enhanced ML with recent form, H2H, low-score analysis (confidence shrunk by projected_margin_is_one_run, matchup_recency_guardrail) |
| embedded_savant_run_environment | 6-5 | 6-5 | -0 | Target score adjusted by temporal Savant lineup quality versus opposing starter quality |
| fundamental_edge_target_review | 6-5 | 6-5 | -0 | Refreshed score target and win probability after Savant/pitcher/team-strength adjustments |
| capped_target | 6-5 | 6-5 | -0 | Capped at max 12 realistic runs |
| simulation_result | 6-5 | 6-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 |
|---|---|---|---|---|
| HOU | Hunter Brown | pitcher / Starter | neutral | predicted_SO 5 |
| CHW | Chase Meidroth | batter / 2B | better | predicted_RBI 2.32 |
| HOU | Jeremy Peña | batter / SS | worse | predicted_RBI 2.32 |
| CHW | Braden Montgomery | batter / RF | better | predicted_H 2.194 |
| HOU | Cam Smith | batter / RF | worse | predicted_SO 2 |
| HOU | Logan VanWey | pitcher / Setup Man | worse | predicted_SO -2 |
| CHW | Munetaka Murakami | batter / 1B | better | predicted_AB -1.57 |
| CHW | Sam Antonacci | batter / LF | worse | predicted_AB 1.55 |
| 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 | HOU pitcher list appears in both predicted_performance.pitchers and player_predictions_by_position.pitchers; IDs match and were de-duplicated in this audit. | HOU |
| info | CURRENT_FINALIZED_MATCH_BOX | CHW model-prediction batting totals differ from final simulation box score (AB: current=31, sim=35; H: current=7, sim=9; 2B: current=1, sim=3; RBI: current=4, sim=6; R: current=5, sim=6; BB: current=5, sim=3; SO: current=10, sim=7; SF: current=0, sim=1). | 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=0, R current=1 box=0, BB current=1 box=0; Munetaka Murakami: AB current=4 box=2, H current=1 box=0, HR current=1 box=0, SO current=2 box=1; Miguel Vargas: RBI current=1 box=0, SO current=1 box=0; Kyle Teel: AB current=4 box=5, BB current=1 box=0; Braden Montgomery: AB current=3 box=4, H current=1 box=3, 2B current=0 box=2, RBI current=0 box=1; Andrew Benintendi: AB current=3 box=4, H current=0 box=1, RBI current=1 box=0, R current=0 box=1; Tristan Peters: H current=1 box=0, 2B current=1 box=0, SO current=1 box=0, HBP current=0 box=1; Chase Meidroth: AB current=3 box=4, H current=1 box=2, 2B current=0 box=1, HR current=0 box=1 | CHW |
| info | CURRENT_FINALIZED_MATCH_BOX | HOU model-prediction batting totals differ from final simulation box score (AB: current=32, sim=39; H: current=7, sim=12; HR: current=2, sim=3; RBI: current=4, sim=5; SO: current=9, sim=11). | HOU |
| info | CURRENT_PLAYER_MATCH_BOX | HOU current finalized hitter lines are model predictions and differ from the simulation box score: Jose Altuve: H current=1 box=2, 2B current=1 box=0, R current=0 box=1, BB current=0 box=1; Jeremy Peña: AB current=4 box=5, H current=1 box=3, RBI current=1 box=3; Yordan Alvarez: AB current=4 box=5, H current=1 box=2, 2B current=0 box=1, HR current=1 box=0; Isaac Paredes: AB current=4 box=5, H current=1 box=2, HR current=0 box=1, R current=0 box=1; Lucas Spence: H current=1 box=0, R current=1 box=0; Yainer Diaz: AB current=4 box=5, SO current=1 box=2; Taylor Trammell: AB current=3 box=4, H current=0 box=1; Cam Smith: R current=1 box=0, BB current=0 box=1, SO current=1 box=3 | HOU |
| info | RECONCILIATION_PROPAGATION | No score_target_reconciliation step was used for this game. |
No large single-factor errors.
| Team | Starter | Projected | Actual | ER err |
|---|---|---|---|---|
| PHI | Cristopher Sánchez | 2 ER / 19 outs | 3 ER / 20 outs | 1 |
| ATL | Tyler Mahle | 0 ER / 18 outs | 1 ER / 21 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
Cristopher Sánchez (PHI) threw 20 outs, 3 ER = 4.05 ERA against a projected 2.84 ERA (1.21 ERA error)
Bullpen behind him: 0 ER over 0 outs.
The HOME lineup he faced produced 3 runs on 9 hits and 0 HR, against a projected 4 runs / 9 hits (-1 runs vs projection).
Who did the damage to him:
Verdict: neither side broke materially - the result is closer to variance
HOME pitching
Tyler Mahle (ATL) threw 21 outs, 1 ER = 1.29 ERA against a projected 0 ERA (1.29 ERA error)
Bullpen behind him: 3 ER over 9 outs.
The AWAY lineup he faced produced 4 runs on 11 hits and 3 HR, against a projected 4 runs / 8 hits (0 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) |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PHI | Cristopher Sánchez (Starter) | 20 / 19 | 4.05 / 2.84 | 3 / 2 | 6 / 5 | 0 / 0 | 5 / 1 | 1.3 | 6 / 5 | 5.98 | venue away: 3.87 vs 2.23 ERA (worse here) · opp run factor 1.11 (strong) · 33 prior appearances this season |
| ATL | Tyler Mahle (Starter) | 21 / 18 | 1.29 / 0 | 1 / 0 | 6 / 2 | 0 / 0 | 1 / 2 | 1.09 | 6 / 8 | 5.11 | venue home: 2.74 vs 5.28 ERA (ok) · opp run factor 1.01 (average) · 27 prior appearances this season |
| ATL | Didier Fuentes (Middle Reliever (High Leverage)) | 4 / 6 | 6.75 / 4.5 | 1 / 1 | 3 / 1 | 1 / 1 | 0 / 2 | 0.29 | 2 / 0 | 1.48 | |
| ATL | Dylan Lee (Setup Man) | 2 / 3 | 27 / 18 (+9.00) | 2 / 2 | 2 / 2 | 2 / 1 | 0 / 0 | 0.21 | 1 / 1 | 1.04 | |
| ATL | Raisel Iglesias (Closer) | 3 / 0 | 0 / n/a | 0 / 0 | 1 / 1 | 0 / 0 | 0 / 0 | 0.2 | 0 / 2 | 1.12 |
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 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Alec Bohm (1B) | PHI | 4 / 4 | 2 / 1 | 0 / 0 | 0 / 0 | 1 / 0 | 1 / 1 | 1 / 0 | 1 / 0 | 0 / 0 | 1.73 | 0.327 above average | projection too low |
| Matt Olson (1B) | ATL | 4 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 2 / 1 | 0 / 1 | 0 / 0 | 2 / 1 | -0.93 | 0.351 elite | bad day |
| Bryce Harper (RF) | PHI | 5 / 4 | 2 / 1 | 0 / 1 | 0 / 0 | 1 / 0 | 2 / 1 | 1 / 1 | 0 / 1 | 1 / 1 | 0.76 | 0.379 elite | projection too low |
| Sean Murphy (C) | ATL | 3 / 3 | 1 / 1 | 1 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 1 / 0 | 0 / 1 | 0.64 | 0.273 weak | good day |
| Justin Crawford (CF) | PHI | 4 / 3 | 1 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0.47 | 0.284 below average | — |
| Mauricio Dubón (LF) | ATL | 5 / 4 | 2 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0.47 | 0.304 average | — |
| Drake Baldwin (DH) | ATL | 5 / 4 | 2 / 1 | 1 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 0 / 1 | 0 / 1 | 2 / 1 | 0.45 | 0.37 elite | — |
| Bryson Stott (2B) | PHI | 5 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 1 / 1 | -0.33 | 0.33 above average | — |
| Kyle Schwarber (DH) | PHI | 5 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 1 / 1 | 1 / 1 | 1 / 1 | 0 / 1 | 3 / 1 | -0.33 | 0.364 elite | — |
| Austin Riley (3B) | ATL | 4 / 3 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 1 / 0 | 1 / 1 | 0.33 | 0.299 below average | — |
| Trea Turner (SS) | PHI | 5 / 4 | 1 / 1 | 1 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 0 / 0 | 1 / 1 | 0.31 | 0.293 below average | — |
| Ronald Acuña Jr. (RF) | ATL | 3 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 2 / 1 | 2 / 1 | -0.14 | 0.366 elite | — |
| Ha-Seong Kim (SS) | ATL | 1 / 3 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 1 / 0 | 0 / 1 | -0.14 | 0.222 weak | — |
| Ozzie Albies (2B) | ATL | 4 / 4 | 1 / 1 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 0 / 1 | 0.02 | 0.273 weak | — |
| Edmundo Sosa (3B) | PHI | 4 / 3 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 0 | 0.328 above average | — |
| Brandon Marsh (LF) | PHI | 3 / 3 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 0 | 0.301 below average | — |
| J.T. Realmuto (C) | PHI | 4 / 3 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 0 | 0.317 average | — |
| Michael Harris II (CF) | ATL | 5 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 0 / 0 | 1 / 1 | 0 | 0.342 elite | — |
| Signal | Home-away edge | Meaning |
|---|---|---|
| Season quality | 0.559 | positive favors home; negative favors away |
| Recent form | 0.406 | positive favors home; negative favors away |
| Starting-pitcher matchup | 0.099 | positive favors home; negative favors away |
| Composite | 0.806 | positive favors home; negative favors away |
| Stage | Away-home runs | Confidence | What changed |
|---|---|---|---|
| historical_ml | 4.36-4.12 | n/a | Base ML historical model prediction |
| variance_applied | 4-4 | n/a | Deterministic baseline target (variance factor 1.0) |
| enhanced_prediction | 3-4 | 0.513 | Enhanced ML with recent form, H2H, low-score analysis (confidence shrunk by 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 | 4.36-4.12 | 4-4 | 0.243 | Deterministic baseline target (variance factor 1.0) |
| enhanced_prediction | 4-4 | 3-4 | 1 | Enhanced ML with recent form, H2H, low-score analysis (confidence shrunk by 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 |
|---|---|---|---|---|
| PHI | Cristopher Sánchez | pitcher / Starter | neutral | predicted_SO 3 |
| ATL | Ozzie Albies | batter / 2B | better | predicted_H 2.21 |
| PHI | Trea Turner | batter / SS | worse | predicted_SO 2.065 |
| ATL | Ha-Seong Kim | batter / SS | better | predicted_RBI 1.85 |
| PHI | Edmundo Sosa | batter / 3B | worse | predicted_SO 1.337 |
| ATL | Austin Riley | batter / 3B | better | predicted_H 1.3 |
| PHI | Alec Bohm | batter / 1B | worse | predicted_AB 1.268 |
| ATL | Michael Harris II | batter / CF | worse | predicted_SO 1.232 |
| 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 | PHI pitcher list appears in both predicted_performance.pitchers and player_predictions_by_position.pitchers; IDs match and were de-duplicated in this audit. | PHI |
| info | CURRENT_FINALIZED_MATCH_BOX | ATL model-prediction batting totals differ from final simulation box score (AB: current=33, sim=40; H: current=9, sim=12; 2B: current=1, sim=3; BB: current=2, sim=1; SO: current=9, sim=5; SF: current=0, sim=2; HBP: current=0, sim=1). | ATL |
| info | CURRENT_PLAYER_MATCH_BOX | ATL current finalized hitter lines are model predictions and differ from the simulation box score: Drake Baldwin: AB current=4 box=5, RBI current=1 box=0, R current=1 box=0, BB current=1 box=0; Ozzie Albies: H current=1 box=3, 2B current=1 box=2, R current=0 box=1, BB current=0 box=1; Ronald Acuña Jr.: AB current=4 box=5, H current=1 box=0, R current=1 box=0, BB current=1 box=0; Matt Olson: AB current=4 box=5, HR current=1 box=0, RBI current=1 box=0, R current=1 box=0; Mauricio Dubón: AB current=4 box=5; Austin Riley: AB current=3 box=4, H current=1 box=2, HR current=0 box=1, R current=0 box=1; Michael Harris II: AB current=4 box=5, RBI current=1 box=0, R current=1 box=0, SO current=1 box=2; Sean Murphy: AB current=3 box=4, RBI current=0 box=1, R current=0 box=1, SO current=1 box=0 | ATL |
| info | CURRENT_FINALIZED_MATCH_BOX | PHI model pitcher projections differ from final simulation pitching box score (H: current=11, sim=12; HR: current=0, sim=1). | PHI |
| info | CURRENT_FINALIZED_MATCH_BOX | PHI model-prediction batting totals differ from final simulation box score (AB: current=32, sim=36; H: current=8, sim=6; HR: current=1, sim=2; RBI: current=4, sim=3; R: current=4, sim=3; BB: current=3, sim=4; SO: current=7, sim=11). | PHI |
| info | CURRENT_PLAYER_MATCH_BOX | PHI current finalized hitter lines are model predictions and differ from the simulation box score: Bryce Harper: H current=1 box=0, 2B current=1 box=0, RBI current=1 box=0, R current=1 box=0; Alec Bohm: AB current=4 box=5, H current=1 box=2, RBI current=1 box=0, R current=0 box=1; Bryson Stott: AB current=4 box=3, 2B current=0 box=1, R current=1 box=0; Edmundo Sosa: H current=1 box=0, RBI current=1 box=0, BB current=0 box=1, SO current=1 box=2; Brandon Marsh: AB current=3 box=4, HR current=0 box=1, RBI current=0 box=1, R current=0 box=1; Kyle Schwarber: AB current=4 box=5, H current=1 box=0, HR current=1 box=0, RBI current=1 box=0; Trea Turner: HR current=0 box=1, RBI current=0 box=2, BB current=0 box=1, SO current=1 box=3; Justin Crawford: AB current=3 box=4 | PHI |
| 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.
> Coverage receipt: COMPLETE · 9/8 sections; 4/4 games; 7/7 causes; 5/6 sources
All seven manifest entries were reviewed:
| Source | Status | Purpose | Assessment |
|---|---|---|---|
prediction_review_20260930.json | Loaded | Official outcomes and scoring errors | Received |
PREDICTION_SYSTEM_DEEP_AUDIT_20260930.json | Loaded | Probability, provenance, starter, and decision contracts | Received |
continuous_learning_daily_20260930.json | Loaded | Stage quality, calibration, probability lineage, score distribution, starter comparisons | Received |
detailed_20260930.html | Loaded | Full game and simulation rendering | Received |
20260930_ultra_detailed_player_audit.html | Loaded | Player-level prediction trace | Received |
audit_report_20260930.html | Loaded | Invariant findings | Received |
audit_report_20260930_integrity_revision.html | Missing | Post-Luna remediation proof for immutable revision artifacts | Gap |
The missing integrity-revision audit is an artifact-verification gap, not evidence that the prediction artifacts themselves were corrupted. The game-level forecast files were reported clean, and all four structural audits passed.
All four expected and settled games were reviewed:
Coverage reconciles as follows:
Overall result: 3 winner hits, 1 winner miss, 75% winner accuracy.
starter_lines record contained a comparison.0.544092, but the complete named transformation from that value to the published 0.495 is not shown in the lineage table. This is a provenance coverage issue, but not automatically a bypass: the raw-to-published path itself is recorded.starter_lines reports extremely high actual ERA values where the pitcher recorded very few outs. Those values are mathematically consistent with the recorded earned runs and outs, but they should not be interpreted as ordinary full-start ERA performance.0 critical, 0 error, 0 warning, and 30 info.---
Winner performance was good on this four-game slate but not decisive:
0.2116, 0.2350, 0.2450, 0.2630The slate beat the historical walk-forward baseline, but the sample was only four games. The three hits included two toss-up selections, and the single miss was also a toss-up. Correct winner selection therefore does not establish strong directional confidence.
The top-confidence-pick streak was 0 losses over the listed valid slates, with the unknown-date entry excluded from interpretation. The top pick hit on 2026-09-30.
Calibration was poor on this slate:
0.50–0.550.51830.75-0.2317The system was underconfident by the supplied definition on this specific bucket: average published confidence was 51.83%, while observed hit rate was 75%. This does not mean the system is reliably underconfident; four games are insufficient to establish a calibration curve. Across the cross-slate trend, weighted calibration error is marked regressing, with a mean of 0.2087.
The self-assessment headline calls the system “confidence_overconfident,” but that label conflicts with this slate’s bucket definition, which shows underconfidence. The safer conclusion is: calibration is unstable and materially misaligned, but the direction of correction should not be inferred from this slate alone.
Score accuracy was materially weak:
1.003.75variance_applied stage and 2.25 at final published stages.The high-severity score_margin_compression finding is supported: every published prediction had a margin of two runs or less, while two actual margins were at least four runs. This is not a reason to widen every forecast indiscriminately. It supports a bounded, rolling-window test of the registered variance controls.
The weak_run_model_signal finding is also supported by holdout validation:
0.0021430.0309360.002415These values explain almost none of the holdout run variance. Exact score estimates should therefore be treated as low-confidence outputs.
Starter accuracy was not the main slate failure:
0.781.0.The appropriate diagnosis is that the starter earned-run projections were not the principal cause of the winner miss, but the extreme Hunter Brown workload/outcome mismatch remains a run-model risk. The data do not justify broadly reweighting pitcher form from this slate.
Artifact integrity was strong within the available audit set:
PASSThe missing integrity-revision audit remains a documentation and artifact-receipt gap. It does not overturn the clean game-level audit results.
pipeline_winner_instabilityhistorical_ml → variance_applied changed winner accuracy by -0.2500, or one hit lost.PHI → TIEThis is a real process/model risk. Historical ML was correct on PHI @ ATL in winner direction; variance application moved it to a tie; enhanced prediction later moved it from tie to ATL, which was still wrong. The later recovery restored the published winner count but did not erase the regression.
score_margin_compression1.00 vs actual 3.75.The cross-slate trend now supplies more than one-slate evidence: margin bias is marked regressing, with mean -2.1615, and the finding has a two-slate consecutive streak.
single_slate_calibration_instability0.2317The cross-slate finding has a two-slate consecutive streak and incidence in 7 of 11 loaded slates, so this is no longer merely a one-slate observation. However, the exact direction of a calibration-cap change still requires controlled shadow testing.
weak_run_model_signal0.0021/0.0309/0.0024This is a persistent structural problem: incidence 10 of 11 slates. It is primarily a feature/target and training issue, not a nightly variance-tuning issue.
---
0.5400.08 home-minus-away0.21166-4; total predicted 7 versus actual 11This is explicitly a correct-winner/wrong-score game.
Pregame evidence favored NYY:
+0.340 home+0.230 home-0.054 home+0.306+0.3398+0.16Run factors were modestly suppressive:
0.97880.9251| Starter | Projected | Actual | Error |
|---|---|---|---|
| Sonny Gray, BOS | 3 ER, 18 outs, ERA 4.50 | 2 ER, 14 outs, ERA 3.86 | ER -1; outs -4; ERA -0.64 |
| Max Fried, NYY | 0 ER, 18 outs, ERA 0.00 | 1 ER, 18 outs, ERA 1.50 | ER +1; outs 0; ERA +1.50 |
The player-level forensic feed lacked a settled pitching line for Sonny Gray, despite the separate game-level starter comparison. The audit therefore supports the game-level comparison but not a complete player-level starter reconstruction.
The supplied score path was not expanded for this game, but the final prediction was 3–4. The main observed run miss was NYY offense:
+1.07.+0.94.+0.80.-0.93.The pitcher attribution did not identify a material break: the forensic verdict characterized both sides as closer to variance.
large_savant_run_environment_swingno_change---
0.5152450.0305 home-minus-away0.2349874+4; total predicted 9 versus actual 5This is also a correct-winner/wrong-score game.
The evidence conflicted:
-0.2355 home+0.158 home+0.0243 home+0.1434-0.2355+0.508The starter-experience control was applied:
0.526938 to 0.521101.| Starter | Projected | Actual | Error |
|---|---|---|---|
| Kevin Gausman, CHC | 4 ER, 17 outs, ERA 6.35 | 3 ER, 10 outs, ERA 8.10 | ER -1; outs -7; ERA +1.75 |
| Nick Pivetta, SD | 2 ER, 15 outs, ERA 3.60 | 1 ER, 10 outs, ERA 2.70 | ER -1; outs -5; ERA -0.90 |
The player-level forensic feed had no settled pitching line for Kevin Gausman. Nick Pivetta’s line was available and showed eight prior feed appearances.
-2.-1.26 run impact versus projection.-1.11.+0.80.+0.78.The forensic verdict identified SD offense as the main side that deviated, but characterized the overall result as closer to variance than a decisive model failure.
no_change---
0.495; away pick probability 0.505-0.01 home-minus-away, equivalent to a 0.01 away edge0.2450253+1; total predicted 11 versus actual 10This is a correct-winner/wrong-score game.
Evidence strongly favored CHW in the underlying edges, although the final probability was nearly even:
-0.4495 home-0.154 home-0.0304 home-0.5326-0.4495-0.224Run factors:
1.02250.9921| Starter | Projected | Actual | Error |
|---|---|---|---|
| Sean Burke, CHW | 2 ER, 15 outs, ERA 3.60 | 3 ER, 12 outs, ERA 6.75 | ER +1; outs -3; ERA +3.15 |
| Hunter Brown, HOU | 3 ER, 17 outs, ERA 4.76 | 3 ER, 2 outs, ERA 40.50 | ER 0; outs -15; derived ERA +35.74 |
Hunter Brown’s actual two-out appearance is the largest starter workload anomaly on the slate. Earned runs were projected correctly, but expected duration was not.
No player-level actuals were joined to this game:
The model nevertheless got the winner correct and the total close, while missing the final margin.
no_change---
0.5128240.0256 home-minus-away0.26298820; predicted and actual total both 7This was the only winner miss. It was not a score-total failure: the total was exact, but the one-run direction was reversed.
The pregame evidence favored ATL:
+0.559 home+0.406+0.099+0.806+0.559+0.336-16+1The five supplied head-to-head results were mixed, including both PHI and ATL blowouts. That history supported uncertainty rather than a strong directional conclusion.
| Starter | Projected | Actual | Error |
|---|---|---|---|
| Cristopher Sánchez, PHI | 2 ER, 19 outs, ERA 2.84 | 3 ER, 20 outs, ERA 4.05 | ER +1; outs +1; ERA +1.21 |
| Tyler Mahle, ATL | 0 ER, 18 outs, ERA 0.00 | 1 ER, 21 outs, ERA 1.29 | ER +1; outs +3; ERA +1.29 |
Both starters were one earned run away from projection. Starter error did not clearly explain the loss.
The score path shows the crucial direction regression:
The Savant step itself changed the target numerically by +0.2203 PHI and -0.1362 ATL, but the listed winner direction remained ATL after the earlier enhanced stage. Final publication did not change the winner.
There were 23 material player-level changes. Important listed adjustments included:
+1.73; classified as a learnable under-rated strong hitter, xwOBA 0.327.+0.76; elite xwOBA 0.379.-0.93.+0.64.+2.21.The player evidence indicates some offense was under-rated, but only half of the 12 material player deviations were supported by the players’ own contact-quality profiles. This limits how much should be learned from the individual outcomes.
no_changetoss_up_variancevariance_applied, where PHI moved from a historical-ML win direction to a tie.enhanced_prediction, where the tie became an ATL pick.---
The miss reconstruction must distinguish intermediate model regression from final outcome variance.
| Stage | Direction | Assessment |
|---|---|---|
| Historical ML | PHI | Correct direction relative to actual |
| Variance applied | Tie | First deterioration; PHI win signal was removed |
| Enhanced prediction | ATL | Explicit winner-direction regression |
| Savant run environment | ATL | No reported winner change |
| Fundamental edge review | ATL | No reported winner change |
| Capped target | ATL | No reported winner change |
| Simulation result | ATL | No reported winner change |
| Published final | ATL | Miss preserved |
The causal register is therefore correct: historical_ml → variance_applied degraded winner accuracy by one hit. The later transition from variance-applied to enhanced prediction improved slate winner accuracy from 0.50 to 0.75 because CHW @ HOU moved from HOU to CHW, but it also moved PHI @ ATL from a tie to ATL. A later numerical recovery does not erase the intermediate regression.
0.0256; calibration quality is globally unstable, but no game-specific calibration defect is proven.toss_up_variance, and the published edge was only 0.0256.A home-away confidence edge of 0.12, if encountered, should be treated as moderate—not as a near coin flip. The current slate did not contain a 0.12 edge; its largest edge was 0.08 in BOS @ NYY. The near-zero edges in CHW @ HOU and PHI @ ATL were genuine toss-up territory.
| Stage | Winner accuracy | Team-run MAE | Total-run MAE | Margin MAE |
|---|---|---|---|---|
| historical_ml | 0.75, 3/4 | 1.7834 | 1.8527 | 3.1126 |
| variance_applied | 0.50, 2/4 | 1.8750 | 1.7500 | 3.2500 |
| enhanced_prediction | 0.75, 3/4 | 1.8750 | 2.2500 | 3.2500 |
| embedded_savant_run_environment | 0.75 | 1.8750 | 2.2500 | 3.2500 |
| fundamental_edge_target_review | 0.75 | 1.8750 | 2.2500 | 3.2500 |
| capped_target | 0.75 | 1.8750 | 2.2500 | 3.2500 |
| simulation_result | 0.75 | 1.8750 | 2.2500 | 3.2500 |
| published_final | 0.75 | 1.8750 | 2.2500 | 3.2500 |
Transitions:
The critical interpretation is that the later recovery of the slate’s aggregate winner accuracy does not erase the intermediate winner-direction regression on PHI @ ATL.
---
score.variance_multiplier / score.variance_floorThe slate supports investigating margin compression, but it does not show that a variance change would have improved any particular game. BOS @ NYY and CHW @ HOU had under-wide margins, but widening distributions would not necessarily have produced their exact scores or changed winner probabilities.
player.pitcher.v4 form weights / player.pitcher_prior_gamesDo not reweight pitcher form based on this slate.
recent.* / season.* run-mean weightingThis is suggestive but not sufficient for an unconstrained global change. A small shadow experiment is defensible.
---
Across structural audits:
No critical or error-level model-contract failure was reported.
0.0024150.0021430.0309360.4330.3680.3010.5740.61030.56220.510450.56220.5621760.5400.54370.52690.5300.52690.5269380.5152450.5000.5050.5259950.5050.5050.505 away / 0.495 home0.544092, blend-favored home probability 0.519185, but publication ultimately favored away.0.52680.51770.5300.51770.517750.512824The lineage is substantially complete, but CHW @ HOU needs explicit blend-stage provenance to eliminate ambiguity.
---
A single slate is noisy, but the supplied cross-slate evidence contains several persistent patterns.
| Finding | Consecutive-slate count | Present now? | Interpretation |
|---|---|---|---|
high_raw_probability_cluster | 0 | No | Not active now; incidence 1/11 does not support action |
pipeline_winner_instability | 2 | Yes | Persistent short streak; material winner-direction risk |
score_margin_compression | 2 | Yes | Persistent short streak; margin tails too narrow |
simulation_inert_on_slate | 11 | Yes | Established failure, not single-slate noise |
single_slate_calibration_instability | 2 | Yes | Persistent short streak; calibration misalignment requires monitoring |
weak_run_model_signal | 2 | Yes | Incidence 10/11; persistent model-capability problem |
The source reports an escalation streak of 3 and separately marks simulation inertness as an established 11-slate failure.
simulation.allow_scoreteam_run_mae, total_run_maeThe self-assessment identifies the likely root cause: the same target-seeking draws are used to create the score distribution, and the loop can exit after approximately two selected draws. The resulting win rate is not a valid probability distribution.
The required directions are:
-2.1615; predicted margins are increasingly too narrow.4.808, although still large.0.2087.0.6079; current slate 0.75.0. The latest top pick hit.The improving winner-accuracy trend must not be used to excuse the regressing calibration, score-margin, and simulation patterns.
---
Recommendations are ranked by persistence, scope, expected metric effect, and regression risk.
simulation.allow_scoreteam_run_mae and total_run_mae; winner-flip diagnostics should become nonzero when justified.simulation.allow_score is listed as a lever.training.xgb.n_estimators, training.xgb.max_depth, training.xgb.learning_ratescore_margin_compression, two consecutive slates and regressing margin trendscore.variance_multiplierconfidence.base_cap and confidence.moderate_caphistorical_ml → variance_applied → enhanced_prediction.player.pitcher.v4 form weights: the slate-level lever tension is 0 helps versus 4 hurts.score.variance_floor simultaneously with score.variance_multiplier; use one bounded shadow lever at a time for attribution.---
historical_ml → variance_applied for PHI @ ATL.Run the simulation-inertness diagnostic/code fix in shadow mode before changing model weights: independently generate an unsteered win-probability distribution with a registered draw count, preserve the target-realization search separately, and monitor rolling team-run MAE, total-run MAE, winner Brier score, and actual winner-flip contribution.
That action addresses the longest established failure, does not force an unsupported one-game correction, and creates the evidence needed for safer score and confidence adjustments on the next slate.