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_20260912.json | n/a |
| forensic deep audit | loaded | probability, provenance, starter and decision contracts | /app/output/reports/PREDICTION_SYSTEM_DEEP_AUDIT_20260912.json | n/a |
| continuous learning | loaded | pipeline-stage quality, calibration, probability lineage | /app/output/learning/continuous_learning_daily_20260912.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 |
|---|---|---|---|---|
| CRITICAL | probability_lineage | Published probability differs materially without a recorded transformation 2 game(s) have an unexplained ≥2pp calibrated-to-published delta | CHW@STL, COL@DET | 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 | score_distribution | Published margins are compressed relative to realized margins 12/15 predictions were ≤2 runs; 8/15 actual margins were ≥4; mean predicted margin 1.67 vs actual 4.33 | BAL@TOR, NYM@NYY, PHI@ATL, SEA@OAK, TEX@ARI | 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.1711 across 15 games | BAL@TOR, CHW@STL, CIN@MIL, CLE@MIN, COL@DET, HOU@TB, KC@BOS, LAA@WAS, LAD@MIA, NYM@NYY, PHI@ATL, PIT@CHC, SD@SF, SEA@OAK, TEX@ARI | 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.0118/0.0210/0.0207 | BAL@TOR, CHW@STL, CIN@MIL, CLE@MIN, COL@DET, HOU@TB, KC@BOS, LAA@WAS, LAD@MIA, NYM@NYY, PHI@ATL, PIT@CHC, SD@SF, SEA@OAK, TEX@ARI | 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 15/15 games structurally audited | BAL@TOR, CHW@STL, CIN@MIL, CLE@MIN, COL@DET, HOU@TB, KC@BOS, LAA@WAS, LAD@MIA, NYM@NYY, PHI@ATL, PIT@CHC, SD@SF, SEA@OAK, TEX@ARI | 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 | BAL@TOR, CHW@STL, CIN@MIL, CLE@MIN, COL@DET, HOU@TB, KC@BOS, LAA@WAS, LAD@MIA, NYM@NYY, PHI@ATL, PIT@CHC, SD@SF, SEA@OAK, TEX@ARI | 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. |
| weak_run_model_signal | 11 consecutive · 11 in window | training.xgb.n_estimators, training.xgb.max_depth, training.xgb.learning_rate | investigate features/target via isolated training backtest (manual) | weak_run_model_signal has persisted 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 | 0 | 3/11 | no | code/diagnostic |
| score_margin_compression | 1 | 2/11 | yes | param |
| simulation_inert_on_slate | 11 | 11/11 | yes | code/diagnostic |
| single_slate_calibration_instability | 2 | 5/11 | yes | param |
| weak_run_model_signal | 11 | 11/11 | yes | code/diagnostic |
| Metric | Direction | Series (old → new) |
|---|---|---|
| winner_accuracy | regressing | [0.3333, 0.5556, 0.625, 0.5333, 0.6, 0.5455, 0.7333, 0.6667, 0.6, 0.6667, 0.5333] |
| weighted_calibration_error | regressing | [0.21, 0.1474, 0.1316, 0.1, 0.0937, 0.2611, 0.1825, 0.1069, 0.1171, 0.2091, 0.1711] |
| margin_bias | regressing | [-3.067, -1.778, -0.688, -1.467, -1.467, -0.182, -0.867, -2.133, -1.0, -2.933, -2.667] |
| team_run_error_on_losses | regressing | [6.4, 6.75, 6.0, 5.286, 5.333, 3.8, 6.75, 5.6, 6.5, 5.0, 6.143] |
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 | 8/15 | 53.3% | 2.884 | 4.112 | 4.202 |
| variance_applied | 7/15 | 46.7% | 2.833 | 3.933 | 4.2 |
| enhanced_prediction | 8/15 | 53.3% | 3.033 | 4.467 | 4.2 |
| embedded_savant_run_environment | 8/15 | 53.3% | 3 | 4.267 | 4.133 |
| fundamental_edge_target_review | 8/15 | 53.3% | 3 | 4.267 | 4.133 |
| capped_target | 8/15 | 53.3% | 3 | 4.267 | 4.133 |
| simulation_result | 8/15 | 53.3% | 3 | 4.267 | 4.133 |
| published_final | 8/15 | 53.3% | 3 | 4.267 | 4.133 |
| Transition | Δ accuracy | Δ hits | Δ team-run MAE | Δ margin MAE | Games whose winner/tie changed |
|---|---|---|---|---|---|
| historical_ml → variance_applied | -0.0666 | -1 | -0.0503 | -0.002 | LAA@WAS: WAS → TIE |
| variance_applied → enhanced_prediction | 0.0666 | 1 | 0.2 | 0 | LAA@WAS: TIE → LAA; PHI@ATL: ATL → PHI; PIT@CHC: PIT → CHC; SD@SF: SF → SD |
| enhanced_prediction → embedded_savant_run_environment | 0 | 0 | -0.0333 | -0.0667 | |
| 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 |
|---|---|---|---|---|---|---|---|
| BAL@TOR | hit | 0.646 | 0.5871 | 0.5871 | 0.5834 | 0.53 | score coherence followed by matchup-recency guardrail |
| CHW@STL | miss | 0.6585 | 0.6339 | 0.6339 | 0.6068 | 0.5908 | no recorded transformation explains the publication delta |
| CIN@MIL | hit | 0.7249 | 0.7235 | 0.7235 | 0.7235 | 0.54 | score coherence followed by matchup-recency guardrail |
| CLE@MIN | miss | 0.5951 | 0.5578 | 0.5578 | 0.5578 | 0.5412 | score coherence followed by matchup-recency guardrail |
| COL@DET | hit | 0.7568 | 0.7296 | 0.7296 | 0.693 | 0.5989 | no recorded transformation explains the publication delta |
| HOU@TB | hit | 0.5702 | 0.5437 | 0.5437 | 0.5437 | 0.5315 | score coherence followed by matchup-recency guardrail |
| KC@BOS | hit | 0.5915 | 0.5523 | 0.5523 | 0.5523 | 0.53 | score coherence followed by matchup-recency guardrail |
| LAA@WAS | miss | 0.5 | 0.5078 | 0.5078 | 0.5078 | 0.5056 | published probability matches the calibrated/governed value |
| LAD@MIA | miss | 0.6979 | 0.6956 | 0.6956 | 0.6956 | 0.6 | score coherence followed by matchup-recency guardrail |
| NYM@NYY | miss | 0.5478 | 0.5392 | 0.5392 | 0.5392 | 0.5392 | published probability matches the calibrated/governed value |
| PHI@ATL | miss | 0.5 | 0.5065 | 0.5065 | 0.5065 | 0.505 | published probability matches the calibrated/governed value |
| PIT@CHC | hit | 0.5 | 0.5547 | 0.5547 | 0.5547 | 0.53 | score coherence followed by matchup-recency guardrail |
| SD@SF | hit | 0.5 | 0.5078 | 0.5078 | 0.5078 | 0.505 | published probability matches the calibrated/governed value |
| SEA@OAK | hit | 0.5574 | 0.5346 | 0.5346 | 0.5346 | 0.525 | score coherence followed by matchup-recency guardrail |
| TEX@ARI | miss | 0.5911 | 0.5834 | 0.5834 | 0.5816 | 0.5589 | score coherence followed by matchup-recency guardrail |
One blown start is noise. The same failure repeating across the slate is a model problem. These are the repeats.
| Sides analyzed | Broke on pitching | Broke on offense | Both | Variance | Mean starter ERA error | Mean lineup runs vs proj |
|---|---|---|---|---|---|---|
| 30 | 6 | 7 | 4 | 13 | 1.35 | 0.57 |
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.
4 of 15 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 |
|---|---|---|---|---|---|---|---|
| LAA@WAS | 0.538 | 0.515 | home | 0.494 | away | yes | miss |
| PHI@ATL | 0.65 | 0.573 | home | 0.495 | away | yes | miss |
| PIT@CHC | 0.415 | 0.487 | away | 0.53 | home | yes | hit |
| SD@SF | 0.558 | 0.525 | home | 0.495 | away | yes | hit |
Blend side survived on 11 of 15 games; the blend flagged a winner change on 4.
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.17 over 11 slates (sign shared by 0.55 of them, z = 0.35).
starters were hit harder than projected: the run model under-credits opposing offenses.
Hold: no change: this bias is not separable from slate-to-slate noise yet
6 of 11 slates share the sign, mean 0.18 +/- 0.5 standard error: not separable from noise
lineup runs actual minus projected
Mean -0.14 over 11 slates (sign shared by 0.64 of them, z = -0.57).
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.14 +/- 0.24 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 |
|---|---|---|---|---|---|---|
| 20260912 | 15 | 0.533 | — | — | ||
| 20260911 | 15 | 0.667 | 0.99 | 0.00 | 4 | 9 |
| 20260910 | 5 | 0.600 | -3.19 | -1.70 | 8 | |
| 20260909 | 15 | 0.667 | 3.36 | 1.07 | 8 | 7 |
| 20260908 | 15 | 0.733 | -0.15 | -0.23 | 7 | 15 |
| 20260907 | 11 | 0.545 | -0.86 | -0.36 | 5 | 4 |
| 20260906 | 15 | 0.600 | 0.74 | -0.30 | 6 | 10 |
| 20260905 | 15 | 0.533 | -1.17 | -0.07 | 2 | 6 |
| 20260904 | 16 | 0.625 | -0.23 | -0.44 | 5 | 12 |
| 20260903 | 9 | 0.556 | 0.24 | -0.83 | 4 | 6 |
| 20260902 | 15 | 0.333 | 0.72 | 0.30 | 7 | 6 |
| 20260901 | 15 | 0.467 | 1.48 | 1.07 | 9 | 3 |
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 |
|---|---|---|---|
| BAL@TOR | 1 | 4 | -3 |
| CHW@STL | 1 | 1 | 0 |
| CIN@MIL | 4 | 4 | 0 |
| CLE@MIN | 2 | 1 | 1 |
| COL@DET | 3 | 4 | -1 |
| HOU@TB | 1 | 1 | 0 |
| KC@BOS | 2 | 4 | -2 |
| LAA@WAS | 1 | 1 | 0 |
| LAD@MIA | 3 | 1 | 2 |
| NYM@NYY | 2 | 10 | -8 |
| PHI@ATL | 1 | 10 | -9 |
| PIT@CHC | 1 | 1 | 0 |
| SD@SF | 1 | 1 | 0 |
| SEA@OAK | 1 | 18 | -17 |
| TEX@ARI | 1 | 4 | -3 |
| Team | Starter | Projected | Actual | ER err |
|---|---|---|---|---|
| BAL | Kyle Bradish | 4 ER / 16 outs | 5 ER / 9 outs | 1 |
| TOR | Spencer Miles | 2 ER / 15 outs | 0 ER / 6 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:
Starter miss: Kyle Bradish (BAL) posted 15.00 ERA vs projected 6.75 (5 ER in 9 outs); he is materially worse pitching away (4.45 ERA there vs 3.26 on the other side), a venue-role weakness the model under-weighted.
What to do: Enable/raise the venue-split weight (context.venue_adjustment_weight) and validate in shadow; the split is credible for this starter.
Pitcher versus batter: what actually broke this game
Per-pitch matchup fields are not populated in the current feeds, so this is reconstructed from the settled box: each starter's workload-adjusted ERA, the bullpen share behind him, and the opposing lineup's real production against its projection, with the hitters who beat that projection named.
AWAY pitching
Kyle Bradish (BAL) threw 9 outs, 5 ER = 15 ERA against a projected 6.75 ERA (8.25 ERA error)
Bullpen behind him: 0 ER over 0 outs.
The HOME lineup he faced produced 6 runs on 10 hits and 2 HR, against a projected 4 runs / 8 hits (2 runs vs projection).
Who did the damage to him:
Verdict: both: the starter was hit hard AND the lineup underproduced
HOME pitching
Spencer Miles (TOR) threw 6 outs, 0 ER = 0 ERA against a projected 3.6 ERA (-3.6 ERA error)
Bullpen behind him: 1 ER over 8 outs.
The AWAY lineup he faced produced 2 runs on 4 hits and 1 HR, against a projected 4 runs / 8 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) |
|---|---|---|---|---|---|---|---|---|---|---|---|
| BAL | Kyle Bradish (Starter) | 9 / 16 | 15 / 6.75 (+8.25) | 5 / 4 | 8 / 6 | 2 / 0 | 2 / 2 | 2.74 | 2 / 6 | 5.17 | venue away: 4.45 vs 3.26 ERA (worse here) · opp run factor 0.93 (weak) · 28 prior appearances this season |
| TOR | Spencer Miles (Starter) | 6 / 15 | 0 / 3.6 (-3.60) | 0 / 2 | 1 / 1 | 0 / 1 | 2 / 0 | 0.65 | 5 / 4 | 1.86 | venue home: 6 vs 9 ERA (ok) · opp run factor 1.07 (average) · 45 prior appearances this season |
| TOR | Louis Varland (Closer) | 3 / 5 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 0 / 0 | 0.3 | 2 / 1 | 1 | |
| TOR | Tyler Rogers (Setup Man) | 3 / 3 | 0 / 9 (-9.00) | 0 / 1 | 0 / 2 | 0 / 0 | 0 / 0 | 0.3 | 1 / 2 | 0.46 | |
| TOR | Mason Fluharty (Middle Reliever (High Leverage)) | 2 / 4 | 13.5 / 0 (+13.50) | 1 / 0 | 2 / 2 | 0 / 0 | 0 / 1 | 0.26 | 1 / 2 | 0.61 |
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 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Jackson Holliday (2B) | BAL | 4 / 4 | 0 / 1 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 1 / 1 | -1.11 | 0.293 below average | projection too high |
| Alejandro Kirk (C) | TOR | 4 / 4 | 2 / 1 | 0 / 0 | 0 / 0 | 1 / 0 | 3 / 1 | 1 / 0 | 0 / 1 | 1 / 1 | 1.07 | 0.308 average | no signal |
| Brett Bateman (CF) | TOR | 4 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 1 / 0 | 1 / 0 | 2 / 1 | 1 / 1 | 2 / 1 | 0.93 | 0.312 average | no signal |
| Andrés Giménez (SS) | TOR | 4 / 3 | 2 / 1 | 1 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 0.78 | 0.274 weak | good day |
| Gunnar Henderson (SS) | BAL | 3 / 4 | 1 / 1 | 1 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 1 / 0 | 0 / 1 | 0.64 | 0.318 average | no signal |
| Samuel Basallo (C) | BAL | 1 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 0 / 0 | 1 / 1 | -0.47 | 0.321 above average | — |
| Leody Taveras (RF) | BAL | 1 / 3 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | -0.47 | 0.27 weak | — |
| Dylan Beavers (LF) | BAL | 5 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 2 / 1 | -0.47 | 0.301 below average | — |
| Ernie Clement (2B) | TOR | 0 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | -0.47 | 0.261 weak | — |
| Pete Alonso (1B) | BAL | 3 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 1 / 1 | 2 / 1 | 1 / 1 | 2 / 1 | 0 / 1 | 0.33 | 0.395 elite | — |
| Myles Straw (LF) | TOR | 0 / 3 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 0 / 0 | 0.33 | 0.297 below average | — |
| Vladimir Guerrero Jr. (1B) | TOR | 4 / 4 | 1 / 1 | 1 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 2 / 1 | 0 / 0 | 2 / 0 | 0.31 | 0.334 above average | — |
| Kazuma Okamoto (3B) | TOR | 2 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 0 / 1 | 2 / 0 | 0 / 1 | -0.27 | 0.329 above average | — |
| George Springer (DH) | TOR | 5 / 4 | 2 / 1 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 1 / 1 | 0 / 1 | 1 / 1 | -0.17 | 0.306 average | — |
| Christian Encarnacion-Strand (3B) | BAL | 3 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 1 / 0 | 0 / 1 | -0.14 | 0.345 elite | — |
| Colton Cowser (CF) | BAL | 2 / 3 | 1 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 1 / 1 | 0.14 | 0.316 average | — |
| Coby Mayo (DH) | BAL | 4 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 0 / 0 | 0 / 2 | 0 | 0.327 above average | — |
| Nathan Lukes (RF) | TOR | 4 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 0 | 0.287 below average | — |
| Signal | Home-away edge | Meaning |
|---|---|---|
| Season quality | 0.068 | positive favors home; negative favors away |
| Recent form | 0.33 | positive favors home; negative favors away |
| Starting-pitcher matchup | -0.143 | positive favors home; negative favors away |
| Composite | -0.015 | positive favors home; negative favors away |
| Stage | Away-home runs | Confidence | What changed |
|---|---|---|---|
| historical_ml | 3.23-5.51 | n/a | Base ML historical model prediction |
| variance_applied | 3-6 | n/a | Deterministic baseline target (variance factor 1.0) |
| enhanced_prediction | 3-4 | 0.53 | 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.23-5.51 | 3-6 | 0.727 | Deterministic baseline target (variance factor 1.0) |
| enhanced_prediction | 3-6 | 3-4 | -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 | 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 |
|---|---|---|---|---|
| BAL | Jackson Holliday | batter / 2B | worse | predicted_SO 2.089 |
| TOR | Brett Bateman | batter / CF | worse | predicted_AB -2.07 |
| TOR | Ernie Clement | batter / 2B | worse | predicted_SO 1.618 |
| TOR | Alejandro Kirk | batter / C | better | predicted_RBI 1.44 |
| TOR | Andrés Giménez | batter / SS | worse | predicted_SO 1.331 |
| TOR | Vladimir Guerrero Jr. | batter / 1B | worse | predicted_H -1.15 |
| TOR | Nathan Lukes | batter / RF | worse | predicted_H -1.15 |
| TOR | Kazuma Okamoto | batter / 3B | worse | predicted_AB -1.13 |
| Severity | Rule | Finding | Subject |
|---|---|---|---|
| info | CURRENT_PITCHER_DUPLICATION | BAL pitcher list appears in both predicted_performance.pitchers and player_predictions_by_position.pitchers; IDs match and were de-duplicated in this audit. | BAL |
| info | CURRENT_PITCHER_DUPLICATION | TOR pitcher list appears in both predicted_performance.pitchers and player_predictions_by_position.pitchers; IDs match and were de-duplicated in this audit. | TOR |
| info | CURRENT_FINALIZED_MATCH_BOX | BAL model-prediction batting totals differ from final simulation box score (AB: current=34, sim=33; H: current=8, sim=6; 3B: current=0, sim=1; RBI: current=4, sim=3; R: current=4, sim=3; BB: current=3, sim=1; SO: current=10, sim=9). | BAL |
| info | CURRENT_PLAYER_MATCH_BOX | BAL current finalized hitter lines are model predictions and differ from the simulation box score: Coby Mayo: RBI current=1 box=0, R current=1 box=0, SO current=2 box=0; Jackson Holliday: H current=1 box=0, 2B current=1 box=0, R current=1 box=0, BB current=1 box=0; Samuel Basallo: H current=1 box=0, RBI current=1 box=0, SO current=1 box=0; Gunnar Henderson: H current=1 box=2, HR current=0 box=1, RBI current=0 box=1, SO current=1 box=2; Pete Alonso: HR current=1 box=0, BB current=1 box=0; Leody Taveras: 3B current=0 box=1, RBI current=0 box=1, R current=0 box=1, SO current=1 box=0; Christian Encarnacion-Strand: AB current=4 box=3, H current=1 box=0, RBI current=1 box=0, BB current=0 box=1; Dylan Beavers: H current=1 box=0, SO current=1 box=2 | BAL |
| info | CURRENT_FINALIZED_MATCH_BOX | TOR model-prediction batting totals differ from final simulation box score (AB: current=34, sim=30; H: current=8, sim=6; 2B: current=1, sim=2; 3B: current=0, sim=1; HR: current=1, sim=0; BB: current=3, sim=2; SO: current=6, sim=9; HBP: current=0, sim=1). | TOR |
| info | CURRENT_PLAYER_MATCH_BOX | TOR current finalized hitter lines are model predictions and differ from the simulation box score: Alejandro Kirk: H current=1 box=2, 2B current=0 box=1, RBI current=1 box=2, R current=0 box=1; Brett Bateman: BB current=1 box=0, SO current=1 box=2; Vladimir Guerrero Jr.: H current=1 box=0, RBI current=1 box=0, R current=1 box=0; George Springer: H current=1 box=2, BB current=1 box=0; Nathan Lukes: AB current=4 box=3, H current=1 box=0, HBP current=0 box=1; Myles Straw: AB current=3 box=2, BB current=0 box=1; Kazuma Okamoto: AB current=4 box=3, H current=1 box=0, HR current=1 box=0, RBI current=1 box=0; Ernie Clement: AB current=4 box=3, H current=1 box=0, SO current=0 box=2 | TOR |
| info | RECONCILIATION_PROPAGATION | No score_target_reconciliation step was used for this game. |
| Team | Starter | Projected | Actual | ER err |
|---|---|---|---|---|
| CHW | Sean Newcomb | 2 ER / 15 outs | 1 ER / 4 outs | -1 |
| STL | Kyle Leahy | 0 ER / 15 outs | 0 ER / 9 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:
Starter miss: Sean Newcomb (CHW) posted 6.75 ERA vs projected 3.60 (1 ER in 4 outs); no credible venue, opponent-strength or experience signal explains it — an outlier start (variance).
What to do: Variance — no model change is warranted for this start.
Pitcher versus batter: what actually broke this game
Per-pitch matchup fields are not populated in the current feeds, so this is reconstructed from the settled box: each starter's workload-adjusted ERA, the bullpen share behind him, and the opposing lineup's real production against its projection, with the hitters who beat that projection named.
AWAY pitching
Sean Newcomb (CHW) threw 4 outs, 1 ER = 6.75 ERA against a projected 3.6 ERA (3.15 ERA error)
Bullpen behind him: 0 ER over 0 outs.
The HOME lineup he faced produced 3 runs on 4 hits and 1 HR, against a projected 5 runs / 8 hits (-2 runs vs projection).
Who did the damage to him:
Verdict: pitching: the starter gave up runs at a far worse rate than projected
HOME pitching
Kyle Leahy (STL) threw 9 outs, 0 ER = 0 ERA against a projected 0 ERA (0 ERA error)
Bullpen behind him: 2 ER over 11 outs.
The AWAY lineup he faced produced 4 runs on 5 hits and 0 HR, against a projected 5 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) |
|---|---|---|---|---|---|---|---|---|---|---|---|
| CHW | Sean Newcomb (Starter) | 4 / 15 | 6.75 / 3.6 (+3.15) | 1 / 2 | 1 / 3 | 0 / 1 | 1 / 1 | 1.67 | 4 / 7 | 4.66 | venue away: 0 vs 0 ERA (ok) · opp run factor 0.99 (average) · 53 prior appearances this season |
| STL | Kyle Leahy (Starter) | 9 / 15 | 0 / 0 | 0 / 0 | 2 / 2 | 0 / 0 | 0 / 5 | 1.04 | 4 / 3 | 4.85 | venue home: 2.91 vs 3.94 ERA (ok) · opp run factor 1.03 (average) · 27 prior appearances this season |
| STL | Justin Bruihl (Middle Reliever (High Leverage)) | 2 / 3 | 0 / 27 (-27.00) | 0 / 3 | 0 / 3 | 0 / 0 | 0 / 1 | 0.34 | 1 / 1 | 0.75 | |
| STL | Riley O'Brien (Closer) | 3 / 4 | 18 / 0 (+18.00) | 2 / 0 | 1 / 1 | 1 / 0 | 1 / 0 | 0.5 | 2 / 0 | 0.91 | |
| STL | Ryne Stanek (Middle Reliever (High Leverage)) | 3 / 3 | 0 / 0 | 0 / 0 | 0 / 2 | 0 / 0 | 0 / 0 | 0.44 | 1 / 1 | 0.99 | |
| STL | George Soriano (Setup Man) | 3 / 2 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 2 / 0 | 0.38 | 1 / 2 | 0.65 |
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 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Joshua Baez (LF) | STL | 4 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 0 / 1 | 0 / 0 | 1 / 1 | -1.4 | 0.316 average | no signal |
| Munetaka Murakami (1B) | CHW | 4 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 1 / 1 | 1 / 1 | 1 / 1 | 2 / 1 | -0.93 | 0.342 elite | bad day |
| Jordan Walker (RF) | STL | 1 / 4 | 0 / 1 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 0 / 0 | 1 / 1 | -0.78 | 0.343 elite | bad day |
| Masyn Winn (SS) | STL | 4 / 4 | 2 / 1 | 1 / 0 | 0 / 0 | 0 / 0 | 2 / 0 | 1 / 0 | 0 / 0 | 2 / 1 | 0.78 | 0.298 below average | good day |
| Kyle Teel (C) | CHW | 3 / 3 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 1 / 0 | 2 / 0 | 2 / 1 | 0.66 | 0.315 average | no signal |
| Leonardo Bernal (C) | STL | 5 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 1 / 0 | 1 / 1 | 1 / 1 | 0 / 1 | 1 / 1 | 0.6 | 0.372 elite | projection too low |
| Braden Montgomery (RF) | CHW | 3 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 1 / 1 | 1 / 1 | -0.47 | 0.331 above average | — |
| Andrew Benintendi (DH) | CHW | 1 / 3 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | -0.47 | 0.309 average | — |
| José Fermín (CF) | STL | 2 / 4 | 0 / 1 | 0 / 1 | 0 / 0 | 0 / 0 | 1 / 0 | 0 / 0 | 2 / 1 | 2 / 0 | -0.45 | 0.289 below average | — |
| Miguel Vargas (3B) | CHW | 5 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 0 / 1 | 3 / 1 | -0.33 | 0.379 elite | — |
| Tristan Peters (CF) | CHW | 4 / 3 | 1 / 1 | 0 / 1 | 0 / 0 | 0 / 0 | 1 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | -0.31 | 0.317 average | — |
| Colson Montgomery (SS) | CHW | 1 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 0 / 0 | 2 / 0 | 0 / 1 | 0.19 | 0.304 average | — |
| Sam Antonacci (LF) | CHW | 4 / 4 | 2 / 1 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 0 / 0 | 0 / 1 | 0.16 | 0.342 elite | — |
| Chase Meidroth (2B) | CHW | 3 / 3 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 1 / 0 | 1 / 1 | -0.14 | 0.296 below average | — |
| Alec Burleson (1B) | STL | 4 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 1 / 0 | 2 / 1 | -0.14 | 0.375 elite | — |
| Iván Herrera (DH) | STL | 3 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 2 / 1 | 1 / 1 | -0.14 | 0.331 above average | — |
| Thomas Saggese (2B) | STL | 4 / 3 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 0 / 0 | 1 / 1 | 0 | 0.314 average | — |
| Ramón Urías (3B) | STL | 0 / 3 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 | 0.303 below average | — |
| Signal | Home-away edge | Meaning |
|---|---|---|
| Season quality | -0.037 | positive favors home; negative favors away |
| Recent form | 0.834 | positive favors home; negative favors away |
| Starting-pitcher matchup | -0.034 | positive favors home; negative favors away |
| Composite | 0.294 | positive favors home; negative favors away |
| Stage | Away-home runs | Confidence | What changed |
|---|---|---|---|
| historical_ml | 3.62-4.68 | 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.591 | Enhanced ML with recent form, H2H, low-score analysis (confidence shrunk by projected_margin_is_one_run) |
| 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.62-4.68 | 4-5 | -0.06 | 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 projected_margin_is_one_run) |
| 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 |
|---|---|---|---|---|
| STL | Leonardo Bernal | batter / C | worse | predicted_AB -2.18 |
| CHW | Miguel Vargas | batter / 3B | worse | predicted_AB -2.05 |
| CHW | Andrew Benintendi | batter / DH | better | predicted_AB 1.977 |
| STL | Jordan Walker | batter / RF | deboosted | predicted_AB -1.8 |
| STL | José Fermín | batter / CF | worse | predicted_SO 1.592 |
| STL | Alec Burleson | batter / 1B | worse | predicted_SO 1.28 |
| CHW | Kyle Teel | batter / C | worse | predicted_SO -1.269 |
| CHW | Colson Montgomery | batter / SS | deboosted | predicted_H 1.26 |
| 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 | STL pitcher list appears in both predicted_performance.pitchers and player_predictions_by_position.pitchers; IDs match and were de-duplicated in this audit. | STL |
| info | CURRENT_FINALIZED_MATCH_BOX | CHW model-prediction batting totals differ from final simulation box score (AB: current=32, sim=35; 2B: current=2, sim=1; HR: current=1, sim=0; RBI: current=4, sim=3; R: current=5, sim=3; BB: current=3, sim=6; SO: current=8, sim=7). | CHW |
| info | CURRENT_PLAYER_MATCH_BOX | CHW current finalized hitter lines are model predictions and differ from the simulation box score: Sam Antonacci: H current=1 box=0, 2B current=1 box=0, R current=1 box=0, BB current=0 box=1; Munetaka Murakami: HR current=1 box=0, RBI current=1 box=0, R current=1 box=0, SO current=1 box=2; Braden Montgomery: H current=1 box=0, R current=1 box=0, BB current=1 box=0; Tristan Peters: AB current=3 box=4, 2B current=1 box=0, SO current=0 box=1; Miguel Vargas: AB current=4 box=3, H current=1 box=0, RBI current=0 box=1, BB current=1 box=2; Colson Montgomery: H current=1 box=2, RBI current=1 box=0, R current=0 box=1, BB current=0 box=1; Andrew Benintendi: AB current=3 box=5, H current=1 box=2, 2B current=0 box=1, RBI current=1 box=2; Kyle Teel: H current=0 box=1, RBI current=1 box=0, BB current=0 box=1, SO current=1 box=0 | CHW |
| info | CURRENT_FINALIZED_MATCH_BOX | STL model-prediction batting totals differ from final simulation box score (AB: current=34, sim=29; H: current=8, sim=5; 2B: current=2, sim=1; HR: current=1, sim=3; R: current=5, sim=4; BB: current=3, sim=2; SO: current=7, sim=10; HBP: current=0, sim=2). | STL |
| info | CURRENT_PLAYER_MATCH_BOX | STL current finalized hitter lines are model predictions and differ from the simulation box score: José Fermín: AB current=4 box=3, H current=1 box=0, 2B current=1 box=0, BB current=1 box=0; Joshua Baez: H current=1 box=0, HR current=1 box=0, RBI current=1 box=0, R current=1 box=0; Leonardo Bernal: AB current=4 box=3, HR current=0 box=1, BB current=1 box=0, SO current=1 box=0; Alec Burleson: H current=1 box=0, RBI current=1 box=0, R current=1 box=0, SO current=1 box=2; Jordan Walker: AB current=4 box=3, 2B current=1 box=0, HR current=0 box=1, RBI current=1 box=2; Iván Herrera: H current=1 box=0, R current=1 box=0, BB current=1 box=0, SO current=1 box=2; Ramón Urías: AB current=3 box=2, H current=0 box=1, HR current=0 box=1, RBI current=0 box=1; Masyn Winn: AB current=4 box=3, 2B current=0 box=1, R current=0 box=1 | STL |
| info | RECONCILIATION_PROPAGATION | No score_target_reconciliation step was used for this game. |
| Team | Starter | Projected | Actual | ER err |
|---|---|---|---|---|
| CIN | Brady Singer | 6 ER / 15 outs | 8 ER / 12 outs | 2 |
| MIL | Shane Drohan | 2 ER / 15 outs | 5 ER / 11 outs | 3 |
Every value is actual / projected. Run impact approximates how far each hitter's real line moved run expectancy from its projection; it orders the movers and is not a published stat.
Top deviations that drove the game:
Starter miss: Shane Drohan (MIL) posted 12.27 ERA vs projected 3.60 (5 ER in 11 outs); no credible venue, opponent-strength or experience signal explains it — an outlier start (variance).
What to do: Variance — no model change is warranted for this start.
Pitcher versus batter: what actually broke this game
Per-pitch matchup fields are not populated in the current feeds, so this is reconstructed from the settled box: each starter's workload-adjusted ERA, the bullpen share behind him, and the opposing lineup's real production against its projection, with the hitters who beat that projection named.
AWAY pitching
Brady Singer (CIN) threw 12 outs, 8 ER = 18 ERA against a projected 10.8 ERA (7.2 ERA error)
Bullpen behind him: 5 ER over 4 outs.
The HOME lineup he faced produced 13 runs on 14 hits and 3 HR, against a projected 6 runs / 8 hits (7 runs vs projection).
Who did the damage to him:
Verdict: pitching: the starter gave up runs at a far worse rate than projected
HOME pitching
Shane Drohan (MIL) threw 11 outs, 5 ER = 12.27 ERA against a projected 3.6 ERA (8.67 ERA error)
Bullpen behind him: 0 ER over 9 outs.
The AWAY lineup he faced produced 8 runs on 14 hits and 2 HR, against a projected 5 runs / 8 hits (3 runs vs projection).
Who did the damage to him:
Verdict: pitching: the starter gave up runs at a far worse rate than projected
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) |
|---|---|---|---|---|---|---|---|---|---|---|---|
| CIN | Brady Singer (Starter) | 12 / 15 | 18 / 10.8 (+7.20) | 8 / 6 | 8 / 8 | 3 / 0 | 5 / 1 | 2.56 | 5 / 4 | 4.63 | venue away: 5.67 vs 4.5 ERA (worse here) · opp run factor 1.02 (strong) · 28 prior appearances this season |
| CIN | Emilio Pagán (Closer) | 3 / 4 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0.33 | 1 / 1 | 1.07 | |
| CIN | Graham Ashcraft (Reliever) | 1 / 0 | 135 / n/a | 5 / 3 | 6 / 2 | 0 / 1 | 1 / 0 | n/a | 1 / 2 | n/a | |
| MIL | Shane Drohan (Starter) | 11 / 15 | 12.27 / 3.6 (+8.67) | 5 / 2 | 5 / 4 | 2 / 0 | 2 / 1 | 2.5 | 4 / 5 | 5.13 | venue home: 5.01 vs 4.61 ERA (ok) · opp run factor 0.96 (weak) · 28 prior appearances this season |
| MIL | Aaron Ashby (Middle Reliever (High Leverage)) | 3 / 3 | 0 / 9 (-9.00) | 0 / 1 | 2 / 2 | 0 / 1 | 0 / 0 | 0.53 | 0 / 0 | 1.27 | |
| MIL | Abner Uribe (Setup Man) | 3 / 3 | 0 / 0 | 0 / 0 | 1 / 1 | 0 / 0 | 1 / 0 | 0.3 | 2 / 1 | 1.07 | |
| MIL | Antonio Senzatela (Middle Reliever (High Leverage)) | 3 / 6 | 0 / 13.5 (-13.50) | 0 / 3 | 0 / 4 | 0 / 1 | 0 / 0 | 0.54 | 1 / 1 | 0.7 |
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 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Garrett Mitchell (CF) | MIL | 5 / 3 | 4 / 1 | 1 / 0 | 0 / 0 | 1 / 0 | 4 / 0 | 2 / 1 | 0 / 1 | 0 / 1 | 2.32 | 0.356 elite | projection too low |
| Eugenio Suárez (DH) | CIN | 4 / 3 | 3 / 1 | 0 / 0 | 0 / 0 | 1 / 0 | 2 / 1 | 3 / 0 | 1 / 0 | 0 / 2 | 2.2 | 0.299 below average | good day |
| Juan Brito (3B) | CIN | 4 / 3 | 3 / 1 | 0 / 0 | 0 / 0 | 1 / 0 | 3 / 0 | 1 / 1 | 0 / 0 | 0 / 1 | 1.87 | 0.292 below average | good day |
| Cooper Pratt (SS) | MIL | 5 / 3 | 3 / 0 | 1 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 1 / 0 | 0 / 0 | 1 / 1 | 1.72 | 0.313 average | no signal |
| William Contreras (C) | MIL | 3 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 1 / 0 | 3 / 1 | 2 / 1 | 2 / 0 | 0 / 1 | 1.59 | 0.336 above average | projection too low |
| Brice Turang (2B) | MIL | 4 / 4 | 2 / 1 | 0 / 1 | 0 / 0 | 1 / 0 | 2 / 1 | 2 / 1 | 1 / 1 | 0 / 1 | 1.09 | 0.345 elite | projection too low |
| Jake Bauers (1B) | MIL | 4 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 2 / 1 | 2 / 1 | 1 / 1 | 2 / 1 | -0.93 | 0.38 elite | bad day |
| Elly De La Cruz (SS) | CIN | 5 / 4 | 2 / 1 | 2 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 0 / 1 | 0 / 1 | 2 / 2 | 0.76 | 0.373 elite | projection too low |
| Dane Myers (CF) | CIN | 5 / 4 | 1 / 1 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 0 / 1 | 2 / 1 | -0.64 | 0.31 average | no signal |
| Sal Stewart (1B) | CIN | 4 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 1 / 1 | 1 / 0 | 3 / 1 | -0.6 | 0.35 elite | bad day |
| Sal Frelick (RF) | MIL | 5 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | -0.47 | 0.281 weak | — |
| David Hamilton (3B) | MIL | 4 / 3 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 2 / 1 | -0.47 | 0.274 weak | — |
| JJ Bleday (LF) | CIN | 5 / 4 | 2 / 1 | 1 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 2 / 0 | 0 / 1 | 1 / 1 | 0.45 | 0.342 elite | — |
| Jackson Chourio (LF) | MIL | 3 / 4 | 1 / 1 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 2 / 1 | 2 / 0 | 1 / 1 | 0.35 | 0.342 elite | — |
| Christian Yelich (DH) | MIL | 5 / 4 | 2 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 2 / 1 | 0 / 1 | 1 / 1 | 0.14 | 0.312 average | — |
| Tyler Stephenson (C) | CIN | 4 / 4 | 1 / 1 | 1 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 0 / 1 | 2 / 1 | -0.02 | 0.333 above average | — |
| Héctor Rodríguez (RF) | CIN | 4 / 3 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 0 / 1 | 0 | 0.266 weak | — |
| Signal | Home-away edge | Meaning |
|---|---|---|
| Season quality | 2.038 | positive favors home; negative favors away |
| Recent form | 1.126 | positive favors home; negative favors away |
| Starting-pitcher matchup | 0.057 | positive favors home; negative favors away |
| Composite | 2.247 | positive favors home; negative favors away |
| Stage | Away-home runs | Confidence | What changed |
|---|---|---|---|
| historical_ml | 4-5.55 | n/a | Base ML historical model prediction |
| variance_applied | 4-6 | n/a | Deterministic baseline target (variance factor 1.0) |
| enhanced_prediction | 6-9 | 0.54 | Enhanced ML with recent form, H2H, low-score analysis (confidence shrunk by matchup_recency_guardrail) |
| embedded_savant_run_environment | 6-10 | n/a | Target score adjusted by temporal Savant lineup quality versus opposing starter quality |
| fundamental_edge_target_review | 6-10 | n/a | Refreshed score target and win probability after Savant/pitcher/team-strength adjustments |
| capped_target | 6-10 | n/a | Capped at max 12 realistic runs |
| simulation_result | 6-10 | n/a | Final inning-by-inning simulation result |
| Stage | Before | After | Toward final pick | What changed |
|---|---|---|---|---|
| variance_applied | 4-5.55 | 4-6 | 0.446 | Deterministic baseline target (variance factor 1.0) |
| enhanced_prediction | 4-6 | 6-9 | 1 | Enhanced ML with recent form, H2H, low-score analysis (confidence shrunk by matchup_recency_guardrail) |
| embedded_savant_run_environment | 6-9 | 6-10 | 1 | Target score adjusted by temporal Savant lineup quality versus opposing starter quality |
| fundamental_edge_target_review | 6-10 | 6-10 | 0 | Refreshed score target and win probability after Savant/pitcher/team-strength adjustments |
| capped_target | 6-10 | 6-10 | 0 | Capped at max 12 realistic runs |
| simulation_result | 6-10 | 6-10 | 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 | Sal Frelick | batter / RF | better | predicted_RBI 6.67 |
| CIN | Graham Ashcraft | pitcher / Reliever | worse | predicted_ER 3 |
| MIL | Jake Bauers | batter / 1B | better | predicted_AB 2.39 |
| MIL | Christian Yelich | batter / DH | better | predicted_AB 2.243 |
| MIL | William Contreras | batter / C | worse | predicted_RBI -2.22 |
| CIN | Tyler Stephenson | batter / C | worse | predicted_AB 2.1 |
| CIN | JJ Bleday | batter / LF | worse | predicted_SO 2.052 |
| MIL | Garrett Mitchell | batter / CF | better | predicted_H 1.84 |
| Severity | Rule | Finding | Subject |
|---|---|---|---|
| info | CURRENT_PITCHER_DUPLICATION | CIN pitcher list appears in both predicted_performance.pitchers and player_predictions_by_position.pitchers; IDs match and were de-duplicated in this audit. | CIN |
| 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_FINALIZED_MATCH_BOX | CIN model pitcher projections differ from final simulation pitching box score (ER: current=9, sim=10). | CIN |
| info | CURRENT_FINALIZED_MATCH_BOX | CIN model-prediction batting totals differ from final simulation box score (AB: current=32, sim=47; H: current=8, sim=11; 2B: current=1, sim=3; HR: current=1, sim=2; RBI: current=4, sim=6; R: current=5, sim=6; BB: current=4, sim=2; SO: current=11, sim=10). | CIN |
| info | CURRENT_PLAYER_MATCH_BOX | CIN current finalized hitter lines are model predictions and differ from the simulation box score: Sal Stewart: AB current=4 box=6, H current=1 box=3, 2B current=0 box=1, RBI current=1 box=2; Dane Myers: AB current=4 box=5, H current=1 box=0, 2B current=1 box=0, R current=1 box=0; Elly De La Cruz: AB current=4 box=5, H current=1 box=2, 2B current=0 box=1, RBI current=1 box=2; Tyler Stephenson: AB current=4 box=6, H current=1 box=2, 2B current=0 box=1, RBI current=1 box=0; Juan Brito: AB current=3 box=5, SO current=1 box=2; Héctor Rodríguez: AB current=3 box=5, HR current=0 box=1, RBI current=0 box=2; Eugenio Suárez: AB current=3 box=5, H current=1 box=0, RBI current=1 box=0, SO current=2 box=1; JJ Bleday: AB current=4 box=5, H current=1 box=0, BB current=1 box=0, SO current=1 box=3 | CIN |
| info | CURRENT_FINALIZED_MATCH_BOX | MIL model-prediction batting totals differ from final simulation box score (AB: current=33, sim=48; H: current=8, sim=12; 2B: current=2, sim=1; RBI: current=4, sim=10; R: current=6, sim=10; BB: current=4, sim=1; SO: current=8, sim=9). | MIL |
| info | CURRENT_PLAYER_MATCH_BOX | MIL current finalized hitter lines are model predictions and differ from the simulation box score: Christian Yelich: AB current=4 box=6, RBI current=0 box=1, BB current=1 box=0; Sal Frelick: AB current=4 box=6, H current=1 box=2, HR current=0 box=1, RBI current=0 box=7; Jackson Chourio: AB current=4 box=6, 2B current=1 box=0, RBI current=1 box=0; Jake Bauers: AB current=4 box=6, HR current=1 box=0, BB current=1 box=0, SO current=1 box=0; William Contreras: AB current=4 box=5, RBI current=1 box=0; Brice Turang: AB current=4 box=5, 2B current=1 box=0, RBI current=1 box=0, BB current=1 box=0; Cooper Pratt: AB current=3 box=5, H current=0 box=1, R current=0 box=1; Garrett Mitchell: AB current=3 box=5, H current=1 box=3, 2B current=0 box=1, BB current=1 box=0 | MIL |
| info | RECONCILIATION_PROPAGATION | No score_target_reconciliation step was used for this game. |
| Team | Starter | Projected | Actual | ER err |
|---|---|---|---|---|
| CLE | Daniel Espino | 3 ER / 9 outs | 0 ER / 6 outs | -3 |
| MIN | Connor Prielipp | 4 ER / 15 outs | 3 ER / 16 outs | -1 |
Every value is actual / projected. Run impact approximates how far each hitter's real line moved run expectancy from its projection; it orders the movers and is not a published stat.
Top deviations that drove the game:
Starter miss: Daniel Espino (CLE) posted 0.00 ERA vs projected 9.00 (0 ER in 6 outs); no credible venue, opponent-strength or experience signal explains it — an outlier start (variance).
What to do: Variance — no model change is warranted for this start.
Pitcher versus batter: what actually broke this game
Per-pitch matchup fields are not populated in the current feeds, so this is reconstructed from the settled box: each starter's workload-adjusted ERA, the bullpen share behind him, and the opposing lineup's real production against its projection, with the hitters who beat that projection named.
AWAY pitching
Daniel Espino (CLE) threw 6 outs, 0 ER = 0 ERA against a projected 9 ERA (-9 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 0 outs.
The HOME lineup he faced produced 3 runs on 5 hits and 0 HR, against a projected 3 runs / 6 hits (0 runs vs projection).
Who did the damage to him:
Verdict: offense: the lineup scored well below its projection
HOME pitching
Connor Prielipp (MIN) threw 16 outs, 3 ER = 5.06 ERA against a projected 7.2 ERA (-2.14 ERA error)
Bullpen behind him: 0 ER over 11 outs.
The AWAY lineup he faced produced 1 runs on 3 hits and 0 HR, against a projected 4 runs / 7 hits (-3 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) |
|---|---|---|---|---|---|---|---|---|---|---|---|
| CLE | Daniel Espino (Starter) | 6 / 9 | 0 / 9 (-9.00) | 0 / 3 | 1 / 5 | 0 / 1 | 0 / 2 | 1.25 | 2 / 4 | 4.92 | opp run factor 1 (average) · 9 prior appearances this season |
| MIN | Connor Prielipp (Starter) | 16 / 15 | 5.06 / 7.2 | 3 / 4 | 5 / 7 | 0 / 2 | 0 / 3 | 2.33 | 1 / 0 | 5.27 | venue home: 4.83 vs 6.4 ERA (ok) · opp run factor 0.93 (weak) · 21 prior appearances this season |
| MIN | A.J. Minter (Middle Reliever (High Leverage)) | 3 / 3 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0.25 | 2 / 0 | 0.82 | |
| MIN | Jeff Hoffman (Setup Man) | 3 / 3 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 0.32 | 3 / 0 | 1.37 | |
| MIN | Andrew Morris (Middle Reliever (High Leverage)) | 3 / 2 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 0 / 0 | 0.37 | 0 / 0 | 0.86 | |
| MIN | Kody Funderburk (Middle Reliever) | 2 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 0.51 | 3 / 1 | 0.92 |
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 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| José Ramírez (DH) | CLE | 4 / 4 | 0 / 1 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 0 / 1 | 1 / 1 | -1.11 | 0.326 above average | bad day |
| Jo Adell (LF) | CLE | 4 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 1 / 1 | 0 / 0 | 1 / 1 | -0.93 | 0.325 above average | bad day |
| Kody Clemens (2B) | MIN | 4 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 1 / 1 | 1 / 1 | 0 / 0 | 2 / 1 | -0.93 | 0.337 above average | bad day |
| Chase DeLauter (RF) | CLE | 3 / 4 | 0 / 1 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 1 / 1 | 1 / 1 | -0.78 | 0.344 elite | bad day |
| Luke Keaschall (RF) | MIN | 4 / 4 | 1 / 1 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 0 / 1 | 1 / 0 | -0.64 | 0.315 average | no signal |
| Nathaniel Lowe (1B) | CLE | 2 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | -0.47 | 0.338 above average | — |
| Brayan Rocchio (SS) | CLE | 3 / 3 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | -0.47 | 0.293 below average | — |
| Kaelen Culpepper (SS) | MIN | 1 / 3 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 1 / 1 | -0.47 | 0.304 average | — |
| Steven Kwan (CF) | CLE | 4 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 0 / 1 | 0 / 1 | 1 / 0 | -0.33 | 0.322 above average | — |
| Royce Lewis (1B) | MIN | 3 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 0 / 0 | 1 / 0 | 1 / 1 | 0.33 | 0.312 average | — |
| Brooks Lee (3B) | MIN | 3 / 4 | 2 / 1 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 1 / 0 | 0 / 0 | 1 / 1 | 0.16 | 0.275 weak | — |
| Josh Bell (DH) | MIN | 3 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 1 / 0 | 3 / 1 | -0.14 | 0.333 above average | — |
| Travis Bazzana (2B) | CLE | 4 / 3 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 0 / 1 | 0 / 0 | 2 / 1 | 0 | 0.307 average | — |
| Signal | Home-away edge | Meaning |
|---|---|---|
| Season quality | -0.179 | positive favors home; negative favors away |
| Recent form | 0.066 | positive favors home; negative favors away |
| Starting-pitcher matchup | 0.067 | positive favors home; negative favors away |
| Composite | -0.295 | positive favors home; negative favors away |
| Stage | Away-home runs | Confidence | What changed |
|---|---|---|---|
| historical_ml | 5.29-3.01 | n/a | Base ML historical model prediction |
| variance_applied | 5-3 | n/a | Deterministic baseline target (variance factor 1.0) |
| enhanced_prediction | 6-5 | 0.541 | Enhanced ML with recent form, H2H, low-score analysis (confidence shrunk by matchup_recency_guardrail) |
| embedded_savant_run_environment | 6-4 | n/a | Target score adjusted by temporal Savant lineup quality versus opposing starter quality |
| fundamental_edge_target_review | 6-4 | n/a | Refreshed score target and win probability after Savant/pitcher/team-strength adjustments |
| capped_target | 6-4 | n/a | Capped at max 12 realistic runs |
| simulation_result | 6-4 | n/a | Final inning-by-inning simulation result |
| Stage | Before | After | Toward final pick | What changed |
|---|---|---|---|---|
| variance_applied | 5.29-3.01 | 5-3 | -0.276 | Deterministic baseline target (variance factor 1.0) |
| enhanced_prediction | 5-3 | 6-5 | -1 | Enhanced ML with recent form, H2H, low-score analysis (confidence shrunk by matchup_recency_guardrail) |
| embedded_savant_run_environment | 6-5 | 6-4 | 1 | Target score adjusted by temporal Savant lineup quality versus opposing starter quality |
| fundamental_edge_target_review | 6-4 | 6-4 | -0 | Refreshed score target and win probability after Savant/pitcher/team-strength adjustments |
| capped_target | 6-4 | 6-4 | -0 | Capped at max 12 realistic runs |
| simulation_result | 6-4 | 6-4 | -0 | Final inning-by-inning simulation result |
These are pregame model adjustments, not claims about actual postgame player error.
| Team | Player | Role | Net effect | Largest change |
|---|---|---|---|---|
| CLE | Brayan Rocchio | batter / SS | better | predicted_RBI 4.43 |
| MIN | Luke Keaschall | batter / RF | better | predicted_2B 1.818 |
| CLE | Angel Genao | batter / 3B | deboosted | predicted_H 1.63 |
| MIN | Brooks Lee | batter / 3B | better | predicted_RBI 1.46 |
| MIN | Kody Clemens | batter / 2B | worse | predicted_AB -1.45 |
| CLE | Steven Kwan | batter / CF | better | predicted_AB 1.371 |
| CLE | Jo Adell | batter / LF | worse | predicted_AB 1.215 |
| CLE | Daniel Espino | pitcher / Starter | worse | predicted_IP -1 |
| Severity | Rule | Finding | Subject |
|---|---|---|---|
| info | CURRENT_PITCHER_DUPLICATION | CLE pitcher list appears in both predicted_performance.pitchers and player_predictions_by_position.pitchers; IDs match and were de-duplicated in this audit. | CLE |
| info | CURRENT_PITCHER_DUPLICATION | MIN pitcher list appears in both predicted_performance.pitchers and player_predictions_by_position.pitchers; IDs match and were de-duplicated in this audit. | MIN |
| info | CURRENT_FINALIZED_MATCH_BOX | CLE model-prediction batting totals differ from final simulation box score (AB: current=33, sim=36; H: current=8, sim=10; 3B: current=0, sim=1; HR: current=1, sim=2; RBI: current=4, sim=6; R: current=5, sim=6; SO: current=7, sim=1; SF: current=0, sim=1). | CLE |
| info | CURRENT_PLAYER_MATCH_BOX | CLE current finalized hitter lines are model predictions and differ from the simulation box score: José Ramírez: H current=1 box=0, 2B current=1 box=0, RBI current=1 box=0, R current=1 box=0; Steven Kwan: AB current=4 box=5, HR current=0 box=1, RBI current=0 box=1, BB current=1 box=0; Jo Adell: AB current=4 box=5, H current=1 box=0, HR current=1 box=0, RBI current=1 box=0; Angel Genao: H current=1 box=2, 2B current=0 box=1, SO current=1 box=0; Chase DeLauter: 2B current=1 box=0, 3B current=0 box=1, RBI current=1 box=0, R current=0 box=1; Nathaniel Lowe: RBI current=1 box=0, R current=0 box=1, HBP current=0 box=1; Travis Bazzana: R current=1 box=0, SO current=1 box=0, SF current=0 box=1; Patrick Bailey: H current=0 box=1, 2B current=0 box=1, R current=0 box=1, BB current=0 box=1 | CLE |
| info | CURRENT_FINALIZED_MATCH_BOX | MIN model-prediction batting totals differ from final simulation box score (AB: current=33, sim=34; H: current=8, sim=7; 2B: current=2, sim=5; SO: current=8, sim=7). | MIN |
| info | CURRENT_PLAYER_MATCH_BOX | MIN current finalized hitter lines are model predictions and differ from the simulation box score: Luke Keaschall: H current=1 box=2, 2B current=1 box=2, RBI current=0 box=1, SO current=0 box=1; Kody Clemens: AB current=4 box=3, H current=1 box=0, HR current=1 box=0, RBI current=1 box=0; Ryan Jeffers: BB current=1 box=0; Brooks Lee: H current=1 box=2, HR current=0 box=1, RBI current=1 box=2, R current=0 box=1; Josh Bell: H current=1 box=0, RBI current=1 box=0; Kaelen Culpepper: AB current=3 box=4, 2B current=0 box=1, R current=1 box=0, SO current=1 box=0; Royce Lewis: H current=1 box=0; Walker Jenkins: BB current=0 box=1, SO current=1 box=2 | MIN |
| info | RECONCILIATION_PROPAGATION | No score_target_reconciliation step was used for this game. |
| Team | Starter | Projected | Actual | ER err |
|---|---|---|---|---|
| COL | Tanner Gordon | 3 ER / 15 outs | 4 ER / 12 outs | 1 |
| DET | Andrew Sears | 3 ER / 12 outs | 4 ER / 13 outs | 1 |
Every value is actual / projected. Run impact approximates how far each hitter's real line moved run expectancy from its projection; it orders the movers and is not a published stat.
Top deviations that drove the game:
Starter miss: Tanner Gordon (COL) posted 9.00 ERA vs projected 5.40 (4 ER in 12 outs); no credible venue, opponent-strength or experience signal explains it — an outlier start (variance).
What to do: Variance — no model change is warranted for this start.
Pitcher versus batter: what actually broke this game
Per-pitch matchup fields are not populated in the current feeds, so this is reconstructed from the settled box: each starter's workload-adjusted ERA, the bullpen share behind him, and the opposing lineup's real production against its projection, with the hitters who beat that projection named.
AWAY pitching
Tanner Gordon (COL) threw 12 outs, 4 ER = 9 ERA against a projected 5.4 ERA (3.6 ERA error)
Bullpen behind him: 2 ER over 9 outs.
The HOME lineup he faced produced 8 runs on 17 hits and 1 HR, against a projected 4 runs / 8 hits (4 runs vs projection).
Who did the damage to him:
Verdict: pitching: the starter gave up runs at a far worse rate than projected
HOME pitching
Andrew Sears (DET) threw 13 outs, 4 ER = 8.31 ERA against a projected 6.75 ERA (1.56 ERA error) only 3 prior appearances in the covered season - the projection had little of his own record to stand on
Bullpen behind him: 0 ER over 6 outs.
The AWAY lineup he faced produced 7 runs on 12 hits and 2 HR, against a projected 4 runs / 8 hits (3 runs vs projection).
Who did the damage to him:
Verdict: neither side broke materially - the result is closer to variance
Starting pitchers & relievers: actual / projected + context (ERA is workload-aware: ER over 9 innings, so a short blow-up is not read like a quality start; ERA error in parentheses when material. exp BB and exp SO are the continuous rate expectations. The integer beside each is a simulation draw reconciled to the opposing simulated batting box, so it is not the line that ranks pitchers: on the 2026-09-07 slate the integers published 39 walks and 121 strikeouts against 51 and 130 real, while these expectations landed on 50.4 and 132.6.)
| Pitcher | Team | Outs | ERA | ER | H | HR | BB | exp BB | SO | exp SO | Context (as-of) |
|---|---|---|---|---|---|---|---|---|---|---|---|
| COL | Tanner Gordon (Starter) | 12 / 15 | 9 / 5.4 (+3.60) | 4 / 3 | 10 / 5 | 1 / 1 | 1 / 1 | 1.06 | 5 / 10 | 3.33 | venue away: 1.59 vs 8.04 ERA (ok) · opp run factor 1.05 (average) · 21 prior appearances this season |
| COL | Jordan Romano (Closer) | 3 / 5 | 18 / 16.2 | 2 / 3 | 1 / 2 | 0 / 0 | 2 / 2 | 0.45 | 0 / 0 | 1.13 | |
| COL | Brennan Bernardino (Setup Man) | 6 / 4 | 0 / 0 | 0 / 0 | 2 / 0 | 0 / 0 | 0 / 0 | 0.13 | 2 / 1 | 0.41 | |
| DET | Andrew Sears (Starter) | 13 / 12 | 8.31 / 6.75 | 4 / 3 | 7 / 2 | 1 / 0 | 1 / 5 | 1.77 | 5 / 7 | 3.81 | opp run factor 1 (average) · thin sample: 3 prior appearances this season (high uncertainty) |
| DET | Kenley Jansen (Closer) | 3 / 3 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0.51 | 2 / 0 | 1.17 | |
| DET | Drew Sommers (Middle Reliever (High Leverage)) | 3 / 5 | 0 / 5.4 (-5.40) | 0 / 1 | 3 / 1 | 0 / 1 | 0 / 0 | 0.32 | 0 / 0 | 1.64 |
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 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Hao-Yu Lee (2B) | DET | 5 / 4 | 3 / 1 | 2 / 0 | 1 / 0 | 0 / 0 | 3 / 1 | 2 / 0 | 1 / 0 | 1 / 1 | 2.51 | 0.298 below average | good day |
| Max Clark (CF) | DET | 4 / 3 | 3 / 1 | 1 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 1 / 1 | 1 / 0 | 0 / 1 | 1.58 | 0.323 above average | projection too low |
| Ezequiel Tovar (SS) | COL | 3 / 3 | 1 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 1 / 0 | 1 / 0 | 0 / 0 | 1 / 1 | 1.4 | 0.279 weak | good day |
| Kevin McGonigle (3B) | DET | 5 / 4 | 2 / 1 | 0 / 0 | 0 / 0 | 1 / 0 | 1 / 0 | 1 / 1 | 1 / 1 | 1 / 0 | 1.4 | 0.354 elite | projection too low |
| Brett Callahan (RF) | DET | 2 / 3 | 1 / 0 | 1 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 1 / 0 | 1 / 1 | 1.11 | 0.299 below average | good day |
| Connor Norby (2B) | COL | 5 / 4 | 3 / 1 | 1 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 0 / 1 | 1 / 1 | 0.92 | 0.305 average | no signal |
| TJ Rumfield (1B) | COL | 5 / 4 | 3 / 1 | 1 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 1 / 0 | 0.92 | 0.335 above average | projection too low |
| Eduardo Valencia (C) | DET | 4 / 4 | 3 / 1 | 1 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 1 / 1 | 1 / 0 | 0 / 1 | 0.65 | 0.329 above average | projection too low |
| Cole Carrigg (CF) | COL | 4 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 0 / 0 | 1 / 1 | -0.47 | 0.311 average | — |
| Jordan Beck (RF) | COL | 4 / 3 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 2 / 0 | 1 / 0 | 3 / 1 | 0.33 | 0.245 weak | — |
| Hunter Goodman (C) | COL | 4 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 1 / 1 | 3 / 1 | 1 / 1 | 1 / 0 | 1 / 1 | 0.33 | 0.318 average | — |
| Kyle Karros (3B) | COL | 4 / 3 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 1 / 1 | -0.33 | 0.337 above average | — |
| Jake McCarthy (LF) | COL | 4 / 4 | 1 / 1 | 0 / 1 | 0 / 0 | 0 / 0 | 2 / 1 | 1 / 1 | 0 / 0 | 0 / 1 | -0.31 | 0.321 above average | — |
| Adael Amador (DH) | COL | 3 / 3 | 1 / 1 | 1 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 1 / 1 | 0 / 0 | 0 / 1 | 0.31 | 0.281 weak | — |
| Riley Greene (LF) | DET | 5 / 4 | 2 / 1 | 0 / 1 | 0 / 0 | 0 / 0 | 1 / 1 | 1 / 1 | 0 / 1 | 2 / 1 | -0.17 | 0.372 elite | — |
| Colt Keith (DH) | DET | 3 / 3 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 | 0.335 above average | — |
| John Peck (SS) | DET | 4 / 3 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 0 | 0.355 elite | — |
| Spencer Torkelson (1B) | DET | 4 / 3 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 1 / 0 | 1 / 1 | 0 / 1 | 0 | 0.309 average | — |
| Signal | Home-away edge | Meaning |
|---|---|---|
| Season quality | 1.208 | positive favors home; negative favors away |
| Recent form | 0.814 | positive favors home; negative favors away |
| Starting-pitcher matchup | 0.057 | positive favors home; negative favors away |
| Composite | 1.534 | positive favors home; negative favors away |
| Stage | Away-home runs | Confidence | What changed |
|---|---|---|---|
| historical_ml | 3.8-5.88 | n/a | Base ML historical model prediction |
| variance_applied | 4-6 | n/a | Deterministic baseline target (variance factor 1.0) |
| enhanced_prediction | 4-6 | 0.599 | Enhanced ML with recent form, H2H, low-score analysis |
| embedded_savant_run_environment | 4-7 | n/a | Target score adjusted by temporal Savant lineup quality versus opposing starter quality |
| fundamental_edge_target_review | 4-7 | n/a | Refreshed score target and win probability after Savant/pitcher/team-strength adjustments |
| capped_target | 4-7 | n/a | Capped at max 12 realistic runs |
| simulation_result | 4-7 | n/a | Final inning-by-inning simulation result |
| Stage | Before | After | Toward final pick | What changed |
|---|---|---|---|---|
| variance_applied | 3.8-5.88 | 4-6 | -0.083 | Deterministic baseline target (variance factor 1.0) |
| enhanced_prediction | 4-6 | 4-6 | 0 | Enhanced ML with recent form, H2H, low-score analysis |
| embedded_savant_run_environment | 4-6 | 4-7 | 1 | Target score adjusted by temporal Savant lineup quality versus opposing starter quality |
| fundamental_edge_target_review | 4-7 | 4-7 | 0 | Refreshed score target and win probability after Savant/pitcher/team-strength adjustments |
| capped_target | 4-7 | 4-7 | 0 | Capped at max 12 realistic runs |
| simulation_result | 4-7 | 4-7 | 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 |
|---|---|---|---|---|
| COL | Jake McCarthy | batter / LF | worse | predicted_AB -2.67 |
| DET | Kevin McGonigle | batter / 3B | better | predicted_RBI 2.557 |
| COL | TJ Rumfield | batter / 1B | worse | predicted_SO 2.432 |
| COL | Hunter Goodman | batter / C | worse | predicted_AB -2.13 |
| DET | Max Clark | batter / CF | worse | predicted_SO 2.111 |
| DET | Riley Greene | batter / LF | worse | predicted_SO 1.863 |
| DET | Hao-Yu Lee | batter / 2B | worse | predicted_RBI 1.65 |
| DET | John Peck | batter / SS | worse | predicted_AB -1.375 |
| Severity | Rule | Finding | Subject |
|---|---|---|---|
| info | CURRENT_PITCHER_DUPLICATION | COL pitcher list appears in both predicted_performance.pitchers and player_predictions_by_position.pitchers; IDs match and were de-duplicated in this audit. | COL |
| info | CURRENT_PITCHER_DUPLICATION | DET pitcher list appears in both predicted_performance.pitchers and player_predictions_by_position.pitchers; IDs match and were de-duplicated in this audit. | DET |
| info | CURRENT_FINALIZED_MATCH_BOX | COL model pitcher projections differ from final simulation pitching box score (ER: current=6, sim=7). | COL |
| info | CURRENT_FINALIZED_MATCH_BOX | COL model-prediction batting totals differ from final simulation box score (AB: current=32, sim=30; H: current=8, sim=3; BB: current=3, sim=5; SO: current=8, sim=10). | COL |
| info | CURRENT_PLAYER_MATCH_BOX | COL current finalized hitter lines are model predictions and differ from the simulation box score: Connor Norby: AB current=4 box=3, H current=1 box=0, SO current=1 box=0; Cole Carrigg: HR current=0 box=1, SO current=1 box=2; TJ Rumfield: H current=1 box=0, BB current=1 box=0, SO current=0 box=3; Jordan Beck: H current=1 box=0, BB current=0 box=1, SO current=1 box=0; Jake McCarthy: AB current=4 box=3, H current=1 box=0, 2B current=1 box=0, RBI current=1 box=0; Adael Amador: AB current=3 box=4, 2B current=0 box=1, RBI current=1 box=2, SO current=1 box=0; Hunter Goodman: AB current=4 box=3, HR current=1 box=0, BB current=0 box=1; Kyle Karros: H current=1 box=0, SO current=1 box=0 | COL |
| info | CURRENT_FINALIZED_MATCH_BOX | DET model-prediction batting totals differ from final simulation box score (AB: current=31, sim=30; H: current=8, sim=7; 2B: current=1, sim=0; RBI: current=4, sim=7; R: current=4, sim=7; SO: current=8, sim=11; SF: current=0, sim=1; HBP: current=0, sim=1). | DET |
| info | CURRENT_PLAYER_MATCH_BOX | DET current finalized hitter lines are model predictions and differ from the simulation box score: Kevin McGonigle: H current=1 box=3, RBI current=0 box=3, BB current=1 box=0; Colt Keith: AB current=3 box=2, H current=1 box=0, RBI current=0 box=1, R current=0 box=1; Hao-Yu Lee: H current=1 box=2, RBI current=1 box=2, R current=0 box=1; Riley Greene: H current=1 box=0, 2B current=1 box=0, RBI current=1 box=0, BB current=1 box=0; Brett Callahan: HBP current=0 box=1; Eduardo Valencia: SO current=1 box=2; Max Clark: AB current=3 box=4, H current=1 box=0, R current=1 box=0, SO current=1 box=3; John Peck: AB current=3 box=2, H current=1 box=0, R current=0 box=1, BB current=0 box=1 | DET |
| info | RECONCILIATION_PROPAGATION | No score_target_reconciliation step was used for this game. |
| Team | Starter | Projected | Actual | ER err |
|---|---|---|---|---|
| HOU | Peter Lambert | 1 ER / 16 outs | 3 ER / 18 outs | 2 |
| TB | Ian Seymour | 2 ER / 15 outs | 2 ER / 18 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
Peter Lambert (HOU) threw 18 outs, 3 ER = 4.5 ERA against a projected 1.69 ERA (2.81 ERA error)
Bullpen behind him: 0 ER over 0 outs.
The HOME lineup he faced produced 2 runs on 6 hits and 0 HR, against a projected 5 runs / 8 hits (-3 runs vs projection).
Who did the damage to him:
Verdict: neither side broke materially - the result is closer to variance
HOME pitching
Ian Seymour (TB) threw 18 outs, 2 ER = 3 ERA against a projected 3.6 ERA (-0.6 ERA error)
Bullpen behind him: 0 ER over 7 outs.
The AWAY lineup he faced produced 2 runs on 5 hits and 1 HR, against a projected 3 runs / 6 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) |
|---|---|---|---|---|---|---|---|---|---|---|---|
| HOU | Peter Lambert (Starter) | 18 / 16 | 4.5 / 1.69 | 3 / 1 | 6 / 2 | 0 / 1 | 0 / 0 | 2.32 | 4 / 3 | 4.97 | venue away: 3 vs 4.03 ERA (ok) · opp run factor 0.99 (average) · 25 prior appearances this season |
| TB | Ian Seymour (Starter) | 18 / 15 | 3 / 3.6 | 2 / 2 | 4 / 2 | 1 / 0 | 1 / 3 | 0.95 | 10 / 6 | 5.54 | venue home: 5.35 vs 3.75 ERA (worse here) · opp run factor 1.01 (average) · 43 prior appearances this season |
| TB | Tyler Wells (Middle Reliever (High Leverage)) | 3 / 4 | 0 / 13.5 (-13.50) | 0 / 2 | 0 / 2 | 0 / 1 | 1 / 0 | 0.28 | 2 / 0 | 1.07 | |
| TB | Bryan Baker (Closer) | 4 / 3 | 0 / 0 | 0 / 0 | 1 / 2 | 0 / 0 | 0 / 1 | 0.38 | 1 / 1 | 0.79 |
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 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Junior Caminero (3B) | TB | 4 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 0 / 1 | 0 / 1 | 0 / 1 | -1.26 | 0.362 elite | bad day |
| Yainer Diaz (C) | HOU | 4 / 3 | 3 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0.94 | 0.299 below average | good day |
| Victor Mesa Jr. (RF) | TB | 2 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 2 / 0 | 1 / 1 | 0.66 | 0.334 above average | projection too low |
| Isaac Paredes (3B) | HOU | 4 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 1 / 0 | 1 / 1 | 1 / 0 | 0 / 1 | 1 / 0 | 0.6 | 0.322 above average | projection too low |
| Christian Walker (1B) | HOU | 4 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 0 / 0 | 1 / 1 | -0.47 | 0.304 average | — |
| Daulton Varsho (CF) | HOU | 4 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 3 / 1 | -0.47 | 0.287 below average | — |
| Yandy Díaz (DH) | TB | 4 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 0 / 0 | 1 / 1 | -0.47 | 0.35 elite | — |
| Jorge Mateo (SS) | TB | 3 / 3 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 2 / 1 | -0.47 | 0.29 below average | — |
| Jeremy Peña (SS) | HOU | 3 / 4 | 0 / 1 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 1 / 0 | 2 / 1 | -0.45 | 0.321 above average | — |
| Jose Altuve (2B) | HOU | 3 / 4 | 1 / 1 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 1 / 0 | 1 / 1 | 0.33 | 0.273 weak | — |
| Richie Palacios (2B) | TB | 2 / 3 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 2 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | -0.33 | 0.309 average | — |
| Liam Hicks (C) | TB | 3 / 4 | 1 / 1 | 1 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0.31 | 0.317 average | — |
| Jonathan Aranda (1B) | TB | 3 / 4 | 1 / 1 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 1 / 1 | 0 / 1 | -0.31 | 0.348 elite | — |
| Cam Smith (RF) | HOU | 4 / 3 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 2 / 1 | 0 | 0.32 average | — |
| Chandler Simpson (LF) | TB | 4 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 0 / 0 | 0 / 0 | 0 | 0.264 weak | — |
| Cedric Mullins (CF) | TB | 1 / 3 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 | 0.266 weak | — |
| Signal | Home-away edge | Meaning |
|---|---|---|
| Season quality | 0.615 | positive favors home; negative favors away |
| Recent form | 0.24 | positive favors home; negative favors away |
| Starting-pitcher matchup | -0.022 | positive favors home; negative favors away |
| Composite | 0.528 | positive favors home; negative favors away |
| Stage | Away-home runs | Confidence | What changed |
|---|---|---|---|
| historical_ml | 3.84-4.71 | 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.532 | 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.84-4.71 | 4-5 | 0.134 | 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 |
|---|---|---|---|---|
| HOU | Yainer Diaz | batter / C | worse | predicted_SO 2.385 |
| TB | Liam Hicks | batter / C | better | predicted_AB -1.9 |
| HOU | Daulton Varsho | batter / CF | boosted | predicted_RBI 1.68 |
| TB | Junior Caminero | batter / 3B | worse | predicted_AB -1.6 |
| HOU | Nelson Velázquez | batter / LF | better | predicted_RBI 1.57 |
| TB | Yandy Díaz | batter / DH | worse | predicted_H -1.41 |
| TB | Jonathan Aranda | batter / 1B | worse | predicted_AB -1.32 |
| TB | Victor Mesa Jr. | batter / RF | worse | predicted_SO 1.288 |
| Severity | Rule | Finding | Subject |
|---|---|---|---|
| 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_PITCHER_DUPLICATION | TB pitcher list appears in both predicted_performance.pitchers and player_predictions_by_position.pitchers; IDs match and were de-duplicated in this audit. | TB |
| info | CURRENT_FINALIZED_MATCH_BOX | HOU model-prediction batting totals differ from final simulation box score (H: current=8, sim=6; 2B: current=2, sim=1; BB: current=2, sim=4; SO: current=8, sim=9; HBP: current=0, sim=1). | HOU |
| info | CURRENT_PLAYER_MATCH_BOX | HOU current finalized hitter lines are model predictions and differ from the simulation box score: Jose Altuve: 2B current=1 box=0; Jeremy Peña: AB current=4 box=5, 2B current=1 box=0, RBI current=1 box=0; Nelson Velázquez: HR current=0 box=1, RBI current=0 box=2, R current=0 box=1, BB current=0 box=1; Isaac Paredes: AB current=4 box=3, H current=1 box=0, RBI current=1 box=0, SO current=0 box=1; Yordan Alvarez: AB current=4 box=3, H current=1 box=0, HR current=1 box=0, RBI current=1 box=0; Christian Walker: AB current=4 box=3, H current=1 box=0, RBI current=1 box=0, BB current=0 box=1; Daulton Varsho: H current=1 box=2, 2B current=0 box=1, RBI current=0 box=2, R current=0 box=1; Yainer Diaz: AB current=3 box=4, H current=1 box=0, SO current=1 box=3 | HOU |
| info | CURRENT_FINALIZED_MATCH_BOX | TB model-prediction batting totals differ from final simulation box score (AB: current=33, sim=29; H: current=8, sim=5; HR: current=1, sim=2; RBI: current=4, sim=5; BB: current=3, sim=4; SO: current=6, sim=5). | TB |
| info | CURRENT_PLAYER_MATCH_BOX | TB current finalized hitter lines are model predictions and differ from the simulation box score: Junior Caminero: AB current=4 box=3; Liam Hicks: AB current=4 box=2, H current=1 box=0, R current=0 box=1, BB current=0 box=2; Jonathan Aranda: AB current=4 box=3, 2B current=1 box=0, RBI current=1 box=0, SO current=1 box=0; Yandy Díaz: H current=1 box=0, RBI current=1 box=0, R current=1 box=0; Chandler Simpson: H current=1 box=0, RBI current=0 box=1; Richie Palacios: H current=1 box=2, HR current=0 box=1, RBI current=0 box=1, R current=0 box=1; Victor Mesa Jr.: H current=1 box=0, R current=1 box=0, SO current=1 box=2; Cedric Mullins: SO current=1 box=0 | TB |
| info | RECONCILIATION_PROPAGATION | No score_target_reconciliation step was used for this game. |
| Team | Starter | Projected | Actual | ER err |
|---|---|---|---|---|
| KC | Randy Dobnak | 3 ER / 18 outs | 3 ER / 17 outs | 0 |
| BOS | Ranger Suarez | 3 ER / 16 outs | 1 ER / 21 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:
Starter miss: Ranger Suarez (BOS) posted 1.29 ERA vs projected 5.06 (1 ER in 21 outs); he is materially worse pitching home (4.14 ERA there vs 2.95 on the other side), a venue-role weakness the model under-weighted.
What to do: Enable/raise the venue-split weight (context.venue_adjustment_weight) and validate in shadow; the split is credible for this starter.
Pitcher versus batter: what actually broke this game
Per-pitch matchup fields are not populated in the current feeds, so this is reconstructed from the settled box: each starter's workload-adjusted ERA, the bullpen share behind him, and the opposing lineup's real production against its projection, with the hitters who beat that projection named.
AWAY pitching
Randy Dobnak (KC) threw 17 outs, 3 ER = 4.76 ERA against a projected 4.5 ERA (0.26 ERA error)
Bullpen behind him: 0 ER over 0 outs.
The HOME lineup he faced produced 5 runs on 10 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
HOME pitching
Ranger Suarez (BOS) threw 21 outs, 1 ER = 1.29 ERA against a projected 5.06 ERA (-3.77 ERA error)
Bullpen behind him: 0 ER over 6 outs.
The AWAY lineup he faced produced 1 runs on 4 hits and 1 HR, against a projected 3 runs / 8 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) |
|---|---|---|---|---|---|---|---|---|---|---|---|
| KC | Randy Dobnak (Starter) | 17 / 18 | 4.76 / 4.5 | 3 / 3 | 4 / 4 | 0 / 1 | 0 / 1 | 1.83 | 4 / 5 | 4.15 | venue away: 1.14 vs 3.86 ERA (ok) · opp run factor 0.97 (average) · 12 prior appearances this season |
| BOS | Ranger Suarez (Starter) | 21 / 16 | 1.29 / 5.06 (-3.77) | 1 / 3 | 5 / 5 | 1 / 0 | 0 / 1 | 1.89 | 8 / 7 | 3.62 | venue home: 4.14 vs 2.95 ERA (worse here) · opp run factor 0.93 (weak) · 25 prior appearances this season |
| BOS | Aroldis Chapman (Closer) | 3 / 5 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 0.34 | 0 / 1 | 1.4 | |
| BOS | Garrett Whitlock (Middle Reliever (High Leverage)) | 3 / 3 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0.12 | 3 / 1 | 1.24 |
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 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Jac Caglianone (RF) | KC | 1 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 0 / 1 | 0 / 0 | 1 / 1 | -1.4 | 0.355 elite | bad day |
| Wilyer Abreu (RF) | BOS | 4 / 4 | 1 / 1 | 1 / 0 | 0 / 0 | 0 / 1 | 2 / 1 | 0 / 1 | 0 / 1 | 0 / 1 | -0.95 | 0.352 elite | bad day |
| Isaac Collins (2B) | KC | 1 / 3 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | -0.8 | 0.297 below average | projection too high |
| Nick Loftin (3B) | KC | 4 / 4 | 0 / 1 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 3 / 1 | -0.78 | 0.29 below average | projection too high |
| Nick Sogard (2B) | BOS | 3 / 4 | 2 / 1 | 2 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 1 / 1 | 0 / 1 | 0 / 1 | 0.76 | 0.316 average | no signal |
| Bobby Witt Jr. (SS) | KC | 4 / 4 | 1 / 1 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 1 / 1 | -0.64 | 0.381 elite | bad day |
| Carter Jensen (DH) | KC | 4 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 1 / 0 | 1 / 1 | 1 / 1 | 0 / 1 | 2 / 1 | 0.6 | 0.315 average | no signal |
| Kyle Isbel (CF) | KC | 2 / 3 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | -0.47 | 0.261 weak | — |
| Jarren Duran (LF) | BOS | 4 / 3 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 1 / 1 | -0.47 | 0.298 below average | — |
| Salvador Perez (C) | KC | 3 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 1 / 0 | 0 / 1 | 0.33 | 0.311 average | — |
| Vinnie Pasquantino (1B) | KC | 4 / 4 | 1 / 1 | 1 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 0 / 0 | 1 / 1 | 0.31 | 0.329 above average | — |
| Trevor Story (SS) | BOS | 4 / 4 | 1 / 1 | 1 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 1 / 0 | 0 / 0 | 2 / 1 | 0.31 | 0.251 weak | — |
| Roman Anthony (DH) | BOS | 4 / 4 | 2 / 1 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 0 / 1 | 1 / 1 | -0.17 | 0.349 elite | — |
| Adley Rutschman (C) | BOS | 4 / 4 | 2 / 1 | 0 / 1 | 0 / 0 | 0 / 0 | 1 / 1 | 1 / 1 | 0 / 0 | 1 / 1 | 0.16 | 0.335 above average | — |
| Mickey Gasper (1B) | BOS | 4 / 3 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 1 / 0 | 0 / 0 | 0 / 0 | 0 | 0.371 elite | — |
| Caleb Durbin (3B) | BOS | 3 / 3 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 | 0.292 below average | — |
| Signal | Home-away edge | Meaning |
|---|---|---|
| Season quality | 0.857 | positive favors home; negative favors away |
| Recent form | 0.251 | positive favors home; negative favors away |
| Starting-pitcher matchup | 0.041 | positive favors home; negative favors away |
| Composite | 0.984 | positive favors home; negative favors away |
| Stage | Away-home runs | Confidence | What changed |
|---|---|---|---|
| historical_ml | 3.81-5.26 | 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.53 | Enhanced ML with recent form, H2H, low-score analysis (confidence shrunk by matchup_recency_guardrail) |
| embedded_savant_run_environment | 4-6 | n/a | Target score adjusted by temporal Savant lineup quality versus opposing starter quality |
| fundamental_edge_target_review | 4-6 | n/a | Refreshed score target and win probability after Savant/pitcher/team-strength adjustments |
| capped_target | 4-6 | n/a | Capped at max 12 realistic runs |
| simulation_result | 4-6 | n/a | Final inning-by-inning simulation result |
| Stage | Before | After | Toward final pick | What changed |
|---|---|---|---|---|
| variance_applied | 3.81-5.26 | 4-5 | -0.452 | 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 matchup_recency_guardrail) |
| embedded_savant_run_environment | 4-5 | 4-6 | 1 | Target score adjusted by temporal Savant lineup quality versus opposing starter quality |
| fundamental_edge_target_review | 4-6 | 4-6 | 0 | Refreshed score target and win probability after Savant/pitcher/team-strength adjustments |
| capped_target | 4-6 | 4-6 | 0 | Capped at max 12 realistic runs |
| simulation_result | 4-6 | 4-6 | 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 |
|---|---|---|---|---|
| BOS | Roman Anthony | batter / DH | better | predicted_RBI 3.786 |
| BOS | Nick Sogard | batter / 2B | better | predicted_2B 1.8 |
| BOS | Jarren Duran | batter / LF | better | predicted_RBI 1.58 |
| BOS | Caleb Durbin | batter / 3B | worse | predicted_AB -1.53 |
| KC | Bobby Witt Jr. | batter / SS | worse | predicted_RBI 1.5 |
| KC | Vinnie Pasquantino | batter / 1B | worse | predicted_SO 1.34 |
| KC | Isaac Collins | batter / 2B | worse | predicted_SO 1.185 |
| BOS | Adley Rutschman | batter / C | worse | predicted_AB -1.14 |
| 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 | KC pitcher list appears in both predicted_performance.pitchers and player_predictions_by_position.pitchers; IDs match and were de-duplicated in this audit. | KC |
| info | CURRENT_FINALIZED_MATCH_BOX | BOS model-prediction batting totals differ from final simulation box score (AB: current=32, sim=31; H: current=8, sim=7; 2B: current=2, sim=3; HR: current=1, sim=2; RBI: current=4, sim=6; R: current=4, sim=6; BB: current=3, sim=2; SO: current=7, sim=6). | BOS |
| info | CURRENT_PLAYER_MATCH_BOX | BOS current finalized hitter lines are model predictions and differ from the simulation box score: Roman Anthony: 2B current=1 box=0, HR current=0 box=1, RBI current=0 box=4, R current=0 box=1; Mickey Gasper: AB current=3 box=4, 2B current=0 box=1, RBI current=1 box=0, R current=0 box=1; Adley Rutschman: AB current=4 box=3, 2B current=1 box=0, RBI current=1 box=0, BB current=0 box=1; Trevor Story: H current=1 box=0, RBI current=1 box=0, SO current=1 box=2; Wilyer Abreu: HR current=1 box=0, RBI current=1 box=0, BB current=1 box=0, SO current=1 box=0; Nate Eaton: SO current=1 box=0; Nick Sogard: H current=1 box=2, 2B current=0 box=2, BB current=1 box=0, SO current=1 box=0; Jarren Duran: HR current=0 box=1, RBI current=0 box=2, SO current=1 box=2 | BOS |
| info | CURRENT_FINALIZED_MATCH_BOX | KC model-prediction batting totals differ from final simulation box score (H: current=8, sim=6; 2B: current=2, sim=1; BB: current=3, sim=1; SO: current=8, sim=11). | KC |
| info | CURRENT_PLAYER_MATCH_BOX | KC current finalized hitter lines are model predictions and differ from the simulation box score: Carter Jensen: H current=1 box=0, RBI current=1 box=0, R current=1 box=0, BB current=1 box=0; Salvador Perez: RBI current=1 box=0, R current=0 box=1; Nick Loftin: H current=1 box=0, 2B current=1 box=0, RBI current=0 box=1, R current=0 box=1; Isaac Collins: AB current=3 box=4, H current=1 box=0, BB current=1 box=0, SO current=1 box=2; Tyler Tolbert: H current=0 box=1, 2B current=0 box=1, R current=1 box=0, SO current=0 box=1; Vinnie Pasquantino: RBI current=1 box=0, SO current=1 box=2; Jac Caglianone: AB current=4 box=3, BB current=0 box=1; Bobby Witt Jr.: H current=1 box=2, 2B current=1 box=0, RBI current=0 box=2, BB current=1 box=0 | KC |
| info | RECONCILIATION_PROPAGATION | No score_target_reconciliation step was used for this game. |
| Team | Starter | Projected | Actual | ER err |
|---|---|---|---|---|
| LAA | Walbert Ureña | 1 ER / 18 outs | 4 ER / 18 outs | 3 |
| WAS | Andrew Alvarez | 0 ER / 15 outs | 0 ER / 21 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:
Starter miss: Walbert Ureña (LAA) posted 6.00 ERA vs projected 1.50 (4 ER in 18 outs); he is materially worse pitching away (3.31 ERA there vs 2.42 on the other side), a venue-role weakness the model under-weighted.
What to do: Enable/raise the venue-split weight (context.venue_adjustment_weight) and validate in shadow; the split is credible for this starter.
Pitcher versus batter: what actually broke this game
Per-pitch matchup fields are not populated in the current feeds, so this is reconstructed from the settled box: each starter's workload-adjusted ERA, the bullpen share behind him, and the opposing lineup's real production against its projection, with the hitters who beat that projection named.
AWAY pitching
Walbert Ureña (LAA) threw 18 outs, 4 ER = 6 ERA against a projected 1.5 ERA (4.5 ERA error)
Bullpen behind him: 1 ER over 3 outs.
The HOME lineup he faced produced 5 runs on 10 hits and 0 HR, against a projected 4 runs / 7 hits (1 runs vs projection).
Who did the damage to him:
Verdict: pitching: the starter gave up runs at a far worse rate than projected
HOME pitching
Andrew Alvarez (WAS) threw 21 outs, 0 ER = 0 ERA against a projected 0 ERA (0 ERA error)
Bullpen behind him: 3 ER over 3 outs.
The AWAY lineup he faced produced 4 runs on 4 hits and 1 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) |
|---|---|---|---|---|---|---|---|---|---|---|---|
| LAA | Walbert Ureña (Starter) | 18 / 18 | 6 / 1.5 (+4.50) | 4 / 1 | 9 / 2 | 0 / 0 | 2 / 1 | 2.3 | 7 / 6 | 5.91 | venue away: 3.31 vs 2.42 ERA (worse here) · opp run factor 0.92 (strong) · 26 prior appearances this season |
| LAA | Ben Joyce (Closer) | 3 / 3 | 9 / 9 | 1 / 1 | 1 / 3 | 0 / 0 | 1 / 0 | 0.62 | 1 / 0 | 1.36 | |
| WAS | Andrew Alvarez (Starter) | 21 / 15 | 0 / 0 | 0 / 0 | 1 / 0 | 0 / 0 | 4 / 0 | 2.19 | 8 / 8 | 4.79 | venue home: 3.26 vs 3.79 ERA (ok) · opp run factor 0.96 (weak) · 22 prior appearances this season |
| WAS | Brad Lord (Middle Reliever (High Leverage)) | 3 / 4 | 27 / 13.5 (+13.50) | 3 / 2 | 2 / 2 | 1 / 0 | 1 / 2 | 0.65 | 1 / 2 | 1.57 |
Hitters: actual / projected (sorted by run impact vs projection)
| Batter | Team | AB | H | 2B | 3B | HR | RBI | R | BB | SO | Run impact | Season xwOBA | Signal |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Zach Neto (SS) | LAA | 5 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 0 / 1 | 0 / 1 | 1 / 1 | -1.73 | 0.31 average | no signal |
| Abimelec Ortiz (1B) | WAS | 2 / 4 | 2 / 1 | 1 / 0 | 0 / 0 | 0 / 0 | 2 / 0 | 1 / 0 | 1 / 0 | 0 / 1 | 1.11 | 0.29 below average | good day |
| Keibert Ruiz (C) | WAS | 4 / 3 | 3 / 1 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 1 / 0 | 0 / 0 | 0 / 0 | 0.94 | 0.289 below average | good day |
| James Wood (DH) | WAS | 4 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 1 / 1 | 1 / 1 | 3 / 1 | -0.93 | 0.413 elite | bad day |
| Moisés Ballesteros (DH) | LAA | 1 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 0 / 0 | 0 / 1 | 1 / 1 | -0.8 | 0.293 below average | projection too high |
| Dylan Crews (RF) | WAS | 5 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 1 / 1 | -0.8 | 0.311 average | no signal |
| Jose Siri (LF) | LAA | 2 / 3 | 1 / 1 | 1 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 1 / 0 | 0 / 1 | 0.64 | 0.305 average | no signal |
| Denzer Guzman (3B) | LAA | 3 / 3 | 1 / 1 | 1 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 1 / 1 | 1 / 0 | 0 / 1 | 0.64 | 0.267 weak | good day |
| Vaughn Grissom (1B) | LAA | 5 / 4 | 1 / 1 | 0 / 1 | 0 / 0 | 1 / 0 | 2 / 1 | 1 / 0 | 0 / 0 | 3 / 1 | 0.62 | 0.305 average | no signal |
| Christian Moore (2B) | LAA | 4 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 0 / 1 | -0.47 | 0.245 weak | — |
| Brady House (3B) | WAS | 5 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | -0.47 | 0.338 above average | — |
| Jacob Young (CF) | WAS | 3 / 3 | 1 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 1 / 0 | 0 / 0 | 1 / 1 | 0.47 | 0.314 average | — |
| Mike Trout (CF) | LAA | 3 / 4 | 0 / 1 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 2 / 1 | 2 / 1 | -0.45 | 0.377 elite | — |
| Jorbit Vivas (2B) | WAS | 4 / 3 | 1 / 0 | 1 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 3 / 0 | 0.45 | 0.295 below average | — |
| Wade Meckler (RF) | LAA | 2 / 3 | 1 / 1 | 1 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 1 / 1 | 0 / 0 | 0 / 1 | 0.31 | 0.314 average | — |
| CJ Abrams (SS) | WAS | 5 / 4 | 2 / 1 | 1 / 1 | 0 / 0 | 0 / 0 | 1 / 1 | 1 / 1 | 0 / 1 | 0 / 1 | 0.14 | 0.33 above average | — |
| Daylen Lile (LF) | WAS | 4 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 1 / 0 | 1 / 1 | -0.14 | 0.326 above average | — |
| Signal | Home-away edge | Meaning |
|---|---|---|
| Season quality | 0.275 | positive favors home; negative favors away |
| Recent form | -0.022 | positive favors home; negative favors away |
| Starting-pitcher matchup | -0.035 | positive favors home; negative favors away |
| Composite | -0.111 | positive favors home; negative favors away |
| Stage | Away-home runs | Confidence | What changed |
|---|---|---|---|
| historical_ml | 4.84-4.93 | n/a | Base ML historical model prediction |
| variance_applied | 5-5 | n/a | Deterministic baseline target (variance factor 1.0) |
| enhanced_prediction | 4-3 | 0.506 | 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-3 | n/a | Target score adjusted by temporal Savant lineup quality versus opposing starter quality |
| fundamental_edge_target_review | 4-3 | n/a | Refreshed score target and win probability after Savant/pitcher/team-strength adjustments |
| capped_target | 4-3 | n/a | Capped at max 12 realistic runs |
| simulation_result | 4-3 | n/a | Final inning-by-inning simulation result |
| Stage | Before | After | Toward final pick | What changed |
|---|---|---|---|---|
| variance_applied | 4.84-4.93 | 5-5 | 0.086 | Deterministic baseline target (variance factor 1.0) |
| enhanced_prediction | 5-5 | 4-3 | 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 | 4-3 | 4-3 | -0 | Target score adjusted by temporal Savant lineup quality versus opposing starter quality |
| fundamental_edge_target_review | 4-3 | 4-3 | -0 | Refreshed score target and win probability after Savant/pitcher/team-strength adjustments |
| capped_target | 4-3 | 4-3 | -0 | Capped at max 12 realistic runs |
| simulation_result | 4-3 | 4-3 | -0 | Final inning-by-inning simulation result |
These are pregame model adjustments, not claims about actual postgame player error.
| Team | Player | Role | Net effect | Largest change |
|---|---|---|---|---|
| LAA | Travis d'Arnaud | batter / C | worse | predicted_RBI 2.86 |
| WAS | CJ Abrams | batter / SS | worse | predicted_SO 1.929 |
| LAA | Mike Trout | batter / CF | worse | predicted_AB -1.73 |
| WAS | Keibert Ruiz | batter / C | better | predicted_H 1.66 |
| LAA | Jose Siri | batter / LF | worse | predicted_AB 1.493 |
| LAA | Moisés Ballesteros | batter / DH | worse | predicted_SO 1.222 |
| WAS | Brady House | batter / 3B | worse | predicted_H 1.13 |
| WAS | James Wood | batter / DH | worse | predicted_H -1.016 |
| Severity | Rule | Finding | Subject |
|---|---|---|---|
| info | CURRENT_PITCHER_DUPLICATION | LAA pitcher list appears in both predicted_performance.pitchers and player_predictions_by_position.pitchers; IDs match and were de-duplicated in this audit. | LAA |
| info | CURRENT_PITCHER_DUPLICATION | WAS pitcher list appears in both predicted_performance.pitchers and player_predictions_by_position.pitchers; IDs match and were de-duplicated in this audit. | WAS |
| info | CURRENT_FINALIZED_MATCH_BOX | LAA model-prediction batting totals differ from final simulation box score (H: current=8, sim=5; 2B: current=2, sim=1; BB: current=4, sim=2; SO: current=9, sim=10). | LAA |
| info | CURRENT_PLAYER_MATCH_BOX | LAA current finalized hitter lines are model predictions and differ from the simulation box score: Vaughn Grissom: AB current=4 box=3, H current=1 box=0, 2B current=1 box=0, RBI current=1 box=0; Christian Moore: 2B current=0 box=1, RBI current=0 box=1, R current=0 box=1, BB current=1 box=0; Jose Siri: AB current=3 box=4, RBI current=1 box=0; Moisés Ballesteros: RBI current=1 box=0, R current=0 box=1, BB current=1 box=0, SO current=1 box=2; Zach Neto: HR current=1 box=0, RBI current=1 box=0, BB current=1 box=0; Wade Meckler: H current=1 box=0, R current=1 box=0, SO current=1 box=0; Mike Trout: AB current=4 box=3, H current=1 box=0, 2B current=1 box=0, R current=1 box=0; Denzer Guzman: AB current=3 box=4, H current=1 box=0, R current=1 box=0, SO current=1 box=2 | LAA |
| info | CURRENT_FINALIZED_MATCH_BOX | WAS model-prediction batting totals differ from final simulation box score (AB: current=33, sim=32; H: current=7, sim=6; 2B: current=2, sim=1; RBI: current=5, sim=3; R: current=4, sim=3; BB: current=4, sim=2; SF: current=0, sim=1). | WAS |
| info | CURRENT_PLAYER_MATCH_BOX | WAS current finalized hitter lines are model predictions and differ from the simulation box score: James Wood: AB current=4 box=3, H current=1 box=0, HR current=1 box=0, RBI current=1 box=0; Brady House: H current=1 box=2, RBI current=1 box=0; Abimelec Ortiz: AB current=4 box=3, H current=1 box=0, BB current=0 box=1, SO current=1 box=0; CJ Abrams: H current=1 box=0, 2B current=1 box=0, RBI current=1 box=0, R current=1 box=0; Dylan Crews: HR current=0 box=1, RBI current=0 box=1, BB current=1 box=0; Jorbit Vivas: BB current=1 box=0; Daylen Lile: RBI current=1 box=0, R current=1 box=0, SO current=1 box=0; Keibert Ruiz: AB current=3 box=4, H current=1 box=2, R current=0 box=1 | WAS |
| info | RECONCILIATION_PROPAGATION | No score_target_reconciliation step was used for this game. |
| Team | Starter | Projected | Actual | ER err |
|---|---|---|---|---|
| LAD | Tyler Glasnow | 0 ER / 18 outs | 4 ER / 12 outs | 4 |
| MIA | Tyler Phillips | 3 ER / 15 outs | 2 ER / 11 outs | -1 |
Every value is actual / projected. Run impact approximates how far each hitter's real line moved run expectancy from its projection; it orders the movers and is not a published stat.
Top deviations that drove the game:
Starter miss: Tyler Glasnow (LAD) posted 9.00 ERA vs projected 0.00 (4 ER in 12 outs); no credible venue, opponent-strength or experience signal explains it — an outlier start (variance).
What to do: Variance — no model change is warranted for this start.
Pitcher versus batter: what actually broke this game
Per-pitch matchup fields are not populated in the current feeds, so this is reconstructed from the settled box: each starter's workload-adjusted ERA, the bullpen share behind him, and the opposing lineup's real production against its projection, with the hitters who beat that projection named.
AWAY pitching
Tyler Glasnow (LAD) threw 12 outs, 4 ER = 9 ERA against a projected 0 ERA (9 ERA error) only 10 prior appearances in the covered season - the projection had little of his own record to stand on
Bullpen behind him: 0 ER over 0 outs.
The HOME lineup he faced produced 4 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: both: the starter was hit hard AND the lineup underproduced
HOME pitching
Tyler Phillips (MIA) threw 11 outs, 2 ER = 4.91 ERA against a projected 5.4 ERA (-0.49 ERA error)
Bullpen behind him: 0 ER over 9 outs.
The AWAY lineup he faced produced 3 runs on 3 hits and 2 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
Starting pitchers & relievers: actual / projected + context (ERA is workload-aware: ER over 9 innings, so a short blow-up is not read like a quality start; ERA error in parentheses when material. exp BB and exp SO are the continuous rate expectations. The integer beside each is a simulation draw reconciled to the opposing simulated batting box, so it is not the line that ranks pitchers: on the 2026-09-07 slate the integers published 39 walks and 121 strikeouts against 51 and 130 real, while these expectations landed on 50.4 and 132.6.)
| Pitcher | Team | Outs | ERA | ER | H | HR | BB | exp BB | SO | exp SO | Context (as-of) |
|---|---|---|---|---|---|---|---|---|---|---|---|
| LAD | Tyler Glasnow (Starter) | 12 / 18 | 9 / 0 (+9.00) | 4 / 0 | 5 / 2 | 1 / 0 | 4 / 1 | 2.01 | 7 / 6 | 6.25 | venue away: 2.12 vs 4.56 ERA (ok) · opp run factor 0.98 (average) · 10 prior appearances this season |
| MIA | Tyler Phillips (Starter) | 11 / 15 | 4.91 / 5.4 | 2 / 3 | 2 / 4 | 2 / 0 | 3 / 5 | 1.57 | 3 / 2 | 4.33 | venue home: 3.02 vs 5.82 ERA (ok) · opp run factor 1.03 (strong) · 34 prior appearances this season |
| MIA | Calvin Faucher (Closer) | 3 / 3 | 0 / 18 (-18.00) | 0 / 2 | 1 / 1 | 0 / 0 | 0 / 0 | 0.52 | 0 / 2 | 1.06 | |
| MIA | Michael Petersen (Middle Reliever (High Leverage)) | 3 / 3 | 0 / 0 | 0 / 0 | 0 / 2 | 0 / 0 | 0 / 0 | 0.48 | 1 / 1 | 1.14 | |
| MIA | Tyler Zuber (Setup Man) | 3 / 3 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 1 / 0 | 0.35 | 1 / 2 | 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 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Graham Pauley (3B) | MIA | 2 / 3 | 1 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 2 / 0 | 1 / 0 | 0 / 0 | 1 / 1 | 1.4 | 0.247 weak | good day |
| Mookie Betts (SS) | LAD | 3 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 1 / 0 | 1 / 1 | 1 / 1 | 1 / 0 | 1 / 0 | 1.26 | 0.335 above average | projection too low |
| Griffin Conine (1B) | MIA | 3 / 4 | 3 / 1 | 1 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 1 / 1 | 0 / 1 | 1.25 | 0.368 elite | projection too low |
| Freddie Freeman (1B) | LAD | 4 / 4 | 0 / 1 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | -1.11 | 0.368 elite | bad day |
| Kyle Stowers (DH) | MIA | 5 / 4 | 0 / 1 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 0 / 1 | 2 / 2 | -1.11 | 0.328 above average | bad day |
| Heriberto Hernández (LF) | MIA | 5 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 1 / 1 | 0 / 0 | 2 / 1 | -0.93 | 0.352 elite | bad day |
| Will Smith (C) | LAD | 1 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | -0.8 | 0.382 elite | bad day |
| Kyle Tucker (RF) | LAD | 4 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 1 / 1 | -0.8 | 0.327 above average | bad day |
| Otto Lopez (SS) | MIA | 2 / 4 | 2 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 0 / 1 | 1 / 0 | 0 / 1 | 0.8 | 0.327 above average | projection too low |
| Tommy Edman (CF) | LAD | 4 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 0 / 0 | 1 / 1 | -0.47 | 0.311 average | — |
| Alex Freeland (2B) | LAD | 3 / 3 | 1 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0.47 | 0.288 below average | — |
| Jakob Marsee (CF) | MIA | 1 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 1 / 1 | 0 / 1 | -0.47 | 0.308 average | — |
| Joe Mack (C) | MIA | 4 / 3 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 2 / 1 | -0.47 | 0.289 below average | — |
| Max Muncy (3B) | LAD | 4 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 1 / 1 | 1 / 1 | 1 / 1 | 0 / 1 | 1 / 1 | -0.33 | 0.35 elite | — |
| Owen Caissie (RF) | MIA | 0 / 3 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 1 / 0 | 1 / 0 | 0 / 1 | 0.33 | 0.302 below average | — |
| Josue De Paula (DH) | LAD | 2 / 3 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 2 / 0 | 0 / 1 | 0.19 | 0.542 elite | — |
| Teoscar Hernández (LF) | LAD | 3 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 1 / 0 | 1 / 1 | -0.14 | 0.331 above average | — |
| Javier Sanoja (2B) | MIA | 3 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 0 / 1 | 1 / 0 | 0 / 1 | -0.14 | 0.292 below average | — |
| Signal | Home-away edge | Meaning |
|---|---|---|
| Season quality | -1.178 | positive favors home; negative favors away |
| Recent form | -0.868 | positive favors home; negative favors away |
| Starting-pitcher matchup | -0.056 | positive favors home; negative favors away |
| Composite | -1.528 | positive favors home; negative favors away |
| Stage | Away-home runs | Confidence | What changed |
|---|---|---|---|
| historical_ml | 5.08-2.92 | n/a | Base ML historical model prediction |
| variance_applied | 5-3 | n/a | Deterministic baseline target (variance factor 1.0) |
| enhanced_prediction | 7-4 | 0.6 | Enhanced ML with recent form, H2H, low-score analysis (confidence shrunk by matchup_recency_guardrail) |
| embedded_savant_run_environment | 7-4 | n/a | Target score adjusted by temporal Savant lineup quality versus opposing starter quality |
| fundamental_edge_target_review | 7-4 | n/a | Refreshed score target and win probability after Savant/pitcher/team-strength adjustments |
| capped_target | 7-4 | n/a | Capped at max 12 realistic runs |
| simulation_result | 7-4 | n/a | Final inning-by-inning simulation result |
| Stage | Before | After | Toward final pick | What changed |
|---|---|---|---|---|
| variance_applied | 5.08-2.92 | 5-3 | -0.166 | Deterministic baseline target (variance factor 1.0) |
| enhanced_prediction | 5-3 | 7-4 | 1 | Enhanced ML with recent form, H2H, low-score analysis (confidence shrunk by matchup_recency_guardrail) |
| embedded_savant_run_environment | 7-4 | 7-4 | -0 | Target score adjusted by temporal Savant lineup quality versus opposing starter quality |
| fundamental_edge_target_review | 7-4 | 7-4 | -0 | Refreshed score target and win probability after Savant/pitcher/team-strength adjustments |
| capped_target | 7-4 | 7-4 | -0 | Capped at max 12 realistic runs |
| simulation_result | 7-4 | 7-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 |
|---|---|---|---|---|
| MIA | Heriberto Hernández | batter / LF | worse | predicted_RBI 2.42 |
| LAD | Mookie Betts | batter / SS | better | predicted_RBI 2.25 |
| LAD | Josue De Paula | batter / DH | better | predicted_H 2 |
| LAD | Teoscar Hernández | batter / LF | worse | predicted_SO 1.945 |
| MIA | Otto Lopez | batter / SS | worse | predicted_H -1.84 |
| LAD | Alex Freeland | batter / 2B | deboosted | predicted_RBI 1.78 |
| MIA | Owen Caissie | batter / RF | worse | predicted_H 1.69 |
| LAD | Freddie Freeman | batter / 1B | worse | predicted_RBI 1.57 |
| Severity | Rule | Finding | Subject |
|---|---|---|---|
| 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_PITCHER_DUPLICATION | MIA pitcher list appears in both predicted_performance.pitchers and player_predictions_by_position.pitchers; IDs match and were de-duplicated in this audit. | MIA |
| info | CURRENT_FINALIZED_MATCH_BOX | LAD model-prediction batting totals differ from final simulation box score (AB: current=34, sim=36; H: current=8, sim=9; 2B: current=1, sim=2; RBI: current=4, sim=7; R: current=5, sim=7; BB: current=4, sim=5; SO: current=7, sim=9; HBP: current=0, sim=1). | LAD |
| info | CURRENT_PLAYER_MATCH_BOX | LAD current finalized hitter lines are model predictions and differ from the simulation box score: Tommy Edman: H current=1 box=0, RBI current=1 box=0, R current=1 box=0, HBP current=0 box=1; Will Smith: R current=0 box=1; Max Muncy: H current=1 box=0, HR current=1 box=0, RBI current=1 box=0, SO current=1 box=2; Freddie Freeman: 2B current=1 box=0, RBI current=0 box=2, R current=0 box=1; Josue De Paula: AB current=3 box=4, H current=1 box=2, R current=0 box=1; Mookie Betts: H current=1 box=2, 2B current=0 box=1, HR current=0 box=1, RBI current=1 box=3; Teoscar Hernández: AB current=4 box=5, 2B current=0 box=1, RBI current=1 box=0, SO current=1 box=3; Kyle Tucker: AB current=4 box=3, H current=1 box=0, R current=1 box=0, SO current=1 box=0 | LAD |
| info | CURRENT_FINALIZED_MATCH_BOX | MIA model pitcher projections differ from final simulation pitching box score (H: current=10, sim=9; ER: current=6, sim=7). | MIA |
| info | CURRENT_FINALIZED_MATCH_BOX | MIA model-prediction batting totals differ from final simulation box score (AB: current=33, sim=34; 2B: current=1, sim=2; 3B: current=0, sim=1; HR: current=1, sim=0; R: current=5, sim=4; BB: current=3, sim=1; SO: current=10, sim=9; HBP: current=0, sim=1). | MIA |
| info | CURRENT_PLAYER_MATCH_BOX | MIA current finalized hitter lines are model predictions and differ from the simulation box score: Kyle Stowers: 2B current=1 box=0, RBI current=1 box=0, R current=0 box=1, BB current=1 box=0; Griffin Conine: H current=1 box=0, R current=1 box=0, BB current=1 box=0, SO current=1 box=2; Javier Sanoja: 3B current=0 box=1, RBI current=1 box=0, R current=1 box=0, SO current=1 box=0; Heriberto Hernández: AB current=4 box=3, 2B current=0 box=1, HR current=1 box=0, RBI current=1 box=3; Jakob Marsee: BB current=1 box=0, SO current=1 box=0; Otto Lopez: H current=1 box=0, R current=1 box=0, SO current=1 box=0; Owen Caissie: AB current=3 box=4, H current=0 box=2, R current=0 box=1; Graham Pauley: AB current=3 box=4, H current=0 box=1, 2B current=0 box=1 | MIA |
| info | RECONCILIATION_PROPAGATION | No score_target_reconciliation step was used for this game. |
| Team | Starter | Projected | Actual | ER err |
|---|---|---|---|---|
| NYM | Zac Thornton | 0 ER / 16 outs | 2 ER / 21 outs | 2 |
| NYY | Gerrit Cole | 3 ER / 18 outs | 5 ER / 13 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:
Starter miss: Gerrit Cole (NYY) posted 10.38 ERA vs projected 4.50 (5 ER in 13 outs); no credible venue, opponent-strength or experience signal explains it — an outlier start (variance).
What to do: Variance — no model change is warranted for this start.
Pitcher versus batter: what actually broke this game
Per-pitch matchup fields are not populated in the current feeds, so this is reconstructed from the settled box: each starter's workload-adjusted ERA, the bullpen share behind him, and the opposing lineup's real production against its projection, with the hitters who beat that projection named.
AWAY pitching
Zac Thornton (NYM) threw 21 outs, 2 ER = 2.57 ERA against a projected 0 ERA (2.57 ERA error)
Bullpen behind him: 0 ER over 0 outs.
The HOME lineup he faced produced 2 runs on 6 hits and 1 HR, against a projected 4 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
Gerrit Cole (NYY) threw 13 outs, 5 ER = 10.38 ERA against a projected 4.5 ERA (5.88 ERA error)
Bullpen behind him: 0 ER over 0 outs.
The AWAY lineup he faced produced 9 runs on 11 hits and 5 HR, against a projected 4 runs / 7 hits (5 runs vs projection).
Who did the damage to him:
Verdict: both: the starter was hit hard AND the lineup underproduced
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) |
|---|---|---|---|---|---|---|---|---|---|---|---|
| NYM | Zac Thornton (Starter) | 21 / 16 | 2.57 / 0 | 2 / 0 | 5 / 2 | 1 / 0 | 1 / 6 | 0.89 | 4 / 7 | 4.29 | venue away: 2.95 vs 3.8 ERA (ok) · opp run factor 0.98 (strong) · 12 prior appearances this season |
| NYY | Gerrit Cole (Starter) | 13 / 18 | 10.38 / 4.5 (+5.88) | 5 / 3 | 9 / 6 | 3 / 1 | 0 / 1 | 1.1 | 4 / 3 | 6.33 | venue home: 3.35 vs 3.45 ERA (ok) · opp run factor 1 (average) · 19 prior appearances this season |
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 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Francisco Lindor (SS) | NYM | 5 / 4 | 3 / 1 | 0 / 1 | 0 / 0 | 2 / 0 | 5 / 1 | 2 / 1 | 0 / 1 | 1 / 1 | 2.16 | 0.333 above average | projection too low |
| Aaron Judge (DH) | NYY | 4 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 0 / 1 | 0 / 1 | 1 / 1 | -1.73 | 0.403 elite | bad day |
| Jared Young (1B) | NYM | 5 / 4 | 3 / 1 | 0 / 1 | 0 / 0 | 1 / 0 | 1 / 1 | 2 / 1 | 0 / 0 | 0 / 1 | 1.56 | 0.314 average | no signal |
| Carson Benge (RF) | NYM | 5 / 4 | 2 / 1 | 0 / 0 | 0 / 0 | 1 / 0 | 2 / 0 | 1 / 1 | 0 / 0 | 1 / 1 | 1.4 | 0.334 above average | projection too low |
| Cody Bellinger (LF) | NYY | 4 / 4 | 2 / 1 | 0 / 0 | 0 / 0 | 1 / 0 | 2 / 1 | 1 / 1 | 0 / 1 | 0 / 1 | 1.07 | 0.338 above average | projection too low |
| Anthony Volpe (2B) | NYY | 3 / 3 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | -0.8 | 0.289 below average | projection too high |
| A.J. Ewing (CF) | NYM | 3 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 1 / 1 | 2 / 1 | -0.47 | 0.322 above average | — |
| Bo Bichette (3B) | NYM | 5 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 0 / 0 | 1 / 1 | -0.47 | 0.329 above average | — |
| Amed Rosario (3B) | NYY | 4 / 3 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | -0.47 | 0.312 average | — |
| Spencer Jones (CF) | NYY | 4 / 3 | 2 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 0 / 0 | 2 / 1 | 0.47 | 0.331 above average | — |
| Juan Soto (DH) | NYM | 5 / 4 | 2 / 1 | 1 / 0 | 0 / 0 | 1 / 1 | 1 / 1 | 2 / 1 | 0 / 1 | 1 / 1 | 0.45 | 0.413 elite | — |
| George Lombard Jr. (SS) | NYY | 3 / 3 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 1 / 0 | 1 / 1 | -0.14 | 0.265 weak | — |
| Marcus Semien (2B) | NYM | 5 / 3 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 0 / 0 | 0 / 1 | 0 | 0.305 average | — |
| Heliot Ramos (RF) | NYY | 4 / 3 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 2 / 1 | 0 | 0.327 above average | — |
| Paul Goldschmidt (1B) | NYY | 4 / 4 | 1 / 1 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 1 / 0 | 0 / 0 | 0 / 1 | 0 | 0.315 average | — |
| Austin Wells (C) | NYY | 2 / 3 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 | 0.288 below average | — |
| Signal | Home-away edge | Meaning |
|---|---|---|
| Season quality | 0.882 | positive favors home; negative favors away |
| Recent form | -0.012 | positive favors home; negative favors away |
| Starting-pitcher matchup | -0.014 | positive favors home; negative favors away |
| Composite | 0.811 | positive favors home; negative favors away |
| Stage | Away-home runs | Confidence | What changed |
|---|---|---|---|
| historical_ml | 4.27-4.92 | n/a | Base ML historical model prediction |
| variance_applied | 4-5 | n/a | Deterministic baseline target (variance factor 1.0) |
| enhanced_prediction | 5-6 | 0.539 | Enhanced ML with recent form, H2H, low-score analysis |
| embedded_savant_run_environment | 5-7 | n/a | Target score adjusted by temporal Savant lineup quality versus opposing starter quality |
| fundamental_edge_target_review | 5-7 | n/a | Refreshed score target and win probability after Savant/pitcher/team-strength adjustments |
| capped_target | 5-7 | n/a | Capped at max 12 realistic runs |
| simulation_result | 5-7 | n/a | Final inning-by-inning simulation result |
| Stage | Before | After | Toward final pick | What changed |
|---|---|---|---|---|
| variance_applied | 4.27-4.92 | 4-5 | 0.35 | Deterministic baseline target (variance factor 1.0) |
| enhanced_prediction | 4-5 | 5-6 | 0 | Enhanced ML with recent form, H2H, low-score analysis |
| embedded_savant_run_environment | 5-6 | 5-7 | 1 | Target score adjusted by temporal Savant lineup quality versus opposing starter quality |
| fundamental_edge_target_review | 5-7 | 5-7 | 0 | Refreshed score target and win probability after Savant/pitcher/team-strength adjustments |
| capped_target | 5-7 | 5-7 | 0 | Capped at max 12 realistic runs |
| simulation_result | 5-7 | 5-7 | 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 | Amed Rosario | batter / 3B | worse | predicted_AB 2.289 |
| NYM | Zac Thornton | pitcher / Starter | neutral | predicted_SO 2 |
| NYY | Gerrit Cole | pitcher / Starter | better | predicted_ER -2 |
| NYY | Spencer Jones | batter / CF | better | predicted_H 1.93 |
| NYY | Heliot Ramos | batter / RF | worse | predicted_SO 1.918 |
| NYM | Kodai Senga | pitcher / Closer | better | predicted_IP 1.767 |
| NYM | Jared Young | batter / 1B | worse | predicted_RBI 1.76 |
| NYY | Austin Wells | batter / C | worse | predicted_BB 1.633 |
| Severity | Rule | Finding | Subject |
|---|---|---|---|
| info | CURRENT_PITCHER_DUPLICATION | NYM pitcher list appears in both predicted_performance.pitchers and player_predictions_by_position.pitchers; IDs match and were de-duplicated in this audit. | NYM |
| 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 | NYM model pitcher projections differ from final simulation pitching box score (H: current=6, sim=11; ER: current=6, sim=7). | NYM |
| info | CURRENT_FINALIZED_MATCH_BOX | NYM model-prediction batting totals differ from final simulation box score (AB: current=33, sim=38; 2B: current=2, sim=0; HR: current=1, sim=2; RBI: current=4, sim=5; R: current=4, sim=5; BB: current=3, sim=1; SO: current=9, sim=3; HBP: current=0, sim=3). | NYM |
| info | CURRENT_PLAYER_MATCH_BOX | NYM current finalized hitter lines are model predictions and differ from the simulation box score: Juan Soto: AB current=4 box=5, HR current=1 box=0, RBI current=1 box=0, BB current=1 box=0; Carson Benge: AB current=4 box=5, H current=1 box=0, R current=1 box=0, SO current=1 box=0; Francisco Lindor: AB current=4 box=5, H current=1 box=2, 2B current=1 box=0, RBI current=1 box=2; A.J. Ewing: HR current=0 box=1, RBI current=0 box=1, R current=0 box=1, BB current=1 box=0; Brett Baty: AB current=3 box=4, H current=0 box=1, SO current=1 box=0; Marcus Semien: AB current=3 box=4, R current=0 box=1, SO current=1 box=0, HBP current=0 box=1; Jared Young: 2B current=1 box=0, HR current=0 box=1, RBI current=1 box=2, SO current=1 box=2; Bo Bichette: H current=1 box=0, RBI current=1 box=0, BB current=0 box=1, SO current=1 box=0 | NYM |
| info | CURRENT_FINALIZED_MATCH_BOX | NYY model-prediction batting totals differ from final simulation box score (AB: current=30, sim=41; H: current=8, sim=11; HR: current=1, sim=3; RBI: current=4, sim=7; R: current=4, sim=7; BB: current=3, sim=6; SO: current=9, sim=10). | NYY |
| info | CURRENT_PLAYER_MATCH_BOX | NYY current finalized hitter lines are model predictions and differ from the simulation box score: Aaron Judge: AB current=4 box=5, SO current=1 box=0; Heliot Ramos: AB current=3 box=5, H current=1 box=0, SO current=1 box=3; Amed Rosario: AB current=3 box=5, H current=1 box=0, SO current=1 box=0; Spencer Jones: AB current=3 box=4, H current=1 box=3, HR current=0 box=1, RBI current=1 box=2; Anthony Volpe: AB current=3 box=4, H current=1 box=2, HR current=0 box=1, RBI current=0 box=2; Paul Goldschmidt: AB current=4 box=5, H current=1 box=2, R current=0 box=1, BB current=0 box=1; Cody Bellinger: AB current=4 box=5, BB current=1 box=0, SO current=1 box=2; George Lombard Jr.: AB current=3 box=5, H current=1 box=2 | NYY |
| info | RECONCILIATION_PROPAGATION | No score_target_reconciliation step was used for this game. |
| Team | Starter | Projected | Actual | ER err |
|---|---|---|---|---|
| PHI | Tim Mayza | 1 ER / 15 outs | 0 ER / 9 outs | -1 |
| ATL | Tyler Mahle | 3 ER / 17 outs | 1 ER / 21 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:
Starter miss: Tyler Mahle (ATL) posted 1.29 ERA vs projected 4.76 (1 ER in 21 outs); no credible venue, opponent-strength or experience signal explains it — an outlier start (variance).
What to do: Variance — no model change is warranted for this start.
Pitcher versus batter: what actually broke this game
Per-pitch matchup fields are not populated in the current feeds, so this is reconstructed from the settled box: each starter's workload-adjusted ERA, the bullpen share behind him, and the opposing lineup's real production against its projection, with the hitters who beat that projection named.
AWAY pitching
Tim Mayza (PHI) threw 9 outs, 0 ER = 0 ERA against a projected 1.8 ERA (-1.8 ERA error)
Bullpen behind him: 0 ER over 4 outs.
The HOME lineup he faced produced 10 runs on 11 hits and 2 HR, against a projected 4 runs / 8 hits (6 runs vs projection).
Who did the damage to him:
Verdict: offense: the lineup scored well below its projection
HOME pitching
Tyler Mahle (ATL) threw 21 outs, 1 ER = 1.29 ERA against a projected 4.76 ERA (-3.47 ERA error)
Bullpen behind him: 0 ER over 0 outs.
The AWAY lineup he faced produced 2 runs on 7 hits and 2 HR, against a projected 4 runs / 8 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) |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PHI | Tim Mayza (Starter) | 9 / 15 | 0 / 1.8 | 0 / 1 | 2 / 2 | 0 / 0 | 0 / 1 | 0.7 | 4 / 6 | 3.61 | venue away: 3.86 vs 0 ERA (ok) · opp run factor 1 (strong) · 54 prior appearances this season |
| PHI | Orion Kerkering (Middle Reliever (High Leverage)) | 4 / 3 | 0 / 0 | 0 / 0 | 1 / 0 | 0 / 0 | 3 / 0 | 0.56 | 2 / 0 | 0.83 | |
| ATL | Tyler Mahle (Starter) | 21 / 17 | 1.29 / 4.76 (-3.47) | 1 / 3 | 6 / 9 | 1 / 0 | 0 / 2 | 1.09 | 3 / 3 | 5.05 | venue home: 2.4 vs 5.61 ERA (ok) · opp run factor 1.02 (average) · 24 prior appearances this season |
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 | 4 / 1 | 0 / 0 | 0 / 0 | 1 / 0 | 3 / 1 | 2 / 0 | 0 / 0 | 0 / 1 | 2.34 | 0.34 elite | projection too low |
| Ronald Acuña Jr. (DH) | ATL | 3 / 4 | 3 / 1 | 0 / 0 | 0 / 0 | 1 / 0 | 2 / 0 | 2 / 1 | 1 / 1 | 0 / 1 | 1.87 | 0.362 elite | projection too low |
| Kyle Schwarber (DH) | PHI | 4 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 0 / 1 | 0 / 1 | 2 / 1 | -1.73 | 0.365 elite | bad day |
| Justin Crawford (CF) | PHI | 3 / 3 | 1 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 1 / 0 | 1 / 0 | 0 / 0 | 0 / 0 | 1.4 | 0.286 below average | good day |
| Matt Olson (1B) | ATL | 5 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 0 / 1 | 0 / 0 | 1 / 1 | -1.4 | 0.355 elite | bad day |
| Bryson Stott (3B) | PHI | 3 / 3 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 0 / 1 | -0.8 | 0.327 above average | bad day |
| Brewer Hicklen (RF) | ATL | 0 / 3 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 0 / 1 | -0.8 | 0.346 elite | bad day |
| Luis Arraez (2B) | PHI | 4 / 4 | 0 / 1 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | -0.78 | 0.303 below average | projection too high |
| Bryce Harper (RF) | PHI | 3 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 1 / 0 | 1 / 1 | 1 / 1 | 0 / 1 | 1 / 1 | 0.6 | 0.389 elite | projection too low |
| Alec Bohm (1B) | PHI | 4 / 4 | 2 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 0.47 | 0.324 above average | — |
| Brandon Marsh (LF) | PHI | 3 / 3 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | -0.47 | 0.304 average | — |
| J.T. Realmuto (C) | PHI | 2 / 3 | 2 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0.47 | 0.323 above average | — |
| Ozzie Albies (2B) | ATL | 3 / 4 | 1 / 1 | 1 / 1 | 0 / 0 | 0 / 0 | 1 / 0 | 2 / 0 | 1 / 0 | 1 / 1 | 0.33 | 0.281 weak | — |
| Austin Riley (3B) | ATL | 3 / 3 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 1 / 0 | 1 / 1 | 0.33 | 0.3 below average | — |
| Ha-Seong Kim (SS) | ATL | 3 / 3 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 1 / 0 | 1 / 1 | 0.33 | 0.229 weak | — |
| Drake Baldwin (C) | ATL | 5 / 4 | 1 / 1 | 1 / 0 | 0 / 0 | 0 / 0 | 2 / 1 | 1 / 1 | 0 / 0 | 2 / 1 | 0.31 | 0.362 elite | — |
| Trea Turner (SS) | PHI | 3 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 1 / 1 | 0 | 0.291 below average | — |
| Mauricio Dubón (LF) | ATL | 4 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 2 / 1 | 1 / 0 | 0 / 0 | 1 / 0 | 0 | 0.305 average | — |
| Signal | Home-away edge | Meaning |
|---|---|---|
| Season quality | 0.365 | positive favors home; negative favors away |
| Recent form | 0.078 | positive favors home; negative favors away |
| Starting-pitcher matchup | -0.012 | positive favors home; negative favors away |
| Composite | 0.013 | positive favors home; negative favors away |
| Stage | Away-home runs | Confidence | What changed |
|---|---|---|---|
| historical_ml | 3.77-4.67 | n/a | Base ML historical model prediction |
| variance_applied | 4-5 | n/a | Deterministic baseline target (variance factor 1.0) |
| enhanced_prediction | 4-3 | 0.505 | Enhanced ML with recent form, H2H, low-score analysis (confidence shrunk by projected_margin_is_one_run, matchup_recency_guardrail) |
| embedded_savant_run_environment | 4-3 | n/a | Target score adjusted by temporal Savant lineup quality versus opposing starter quality |
| fundamental_edge_target_review | 4-3 | n/a | Refreshed score target and win probability after Savant/pitcher/team-strength adjustments |
| capped_target | 4-3 | n/a | Capped at max 12 realistic runs |
| simulation_result | 4-3 | n/a | Final inning-by-inning simulation result |
| Stage | Before | After | Toward final pick | What changed |
|---|---|---|---|---|
| variance_applied | 3.77-4.67 | 4-5 | -0.1 | Deterministic baseline target (variance factor 1.0) |
| enhanced_prediction | 4-5 | 4-3 | 2 | Enhanced ML with recent form, H2H, low-score analysis (confidence shrunk by projected_margin_is_one_run, matchup_recency_guardrail) |
| embedded_savant_run_environment | 4-3 | 4-3 | -0 | Target score adjusted by temporal Savant lineup quality versus opposing starter quality |
| fundamental_edge_target_review | 4-3 | 4-3 | -0 | Refreshed score target and win probability after Savant/pitcher/team-strength adjustments |
| capped_target | 4-3 | 4-3 | -0 | Capped at max 12 realistic runs |
| simulation_result | 4-3 | 4-3 | -0 | Final inning-by-inning simulation result |
These are pregame model adjustments, not claims about actual postgame player error.
| Team | Player | Role | Net effect | Largest change |
|---|---|---|---|---|
| PHI | Luis Arraez | batter / 2B | better | predicted_RBI 2.47 |
| PHI | Justin Crawford | batter / CF | worse | predicted_SO 2.427 |
| PHI | J.T. Realmuto | batter / C | worse | predicted_H 2.26 |
| ATL | Brewer Hicklen | batter / RF | worse | predicted_H 1.77 |
| ATL | Ronald Acuña Jr. | batter / DH | worse | predicted_RBI 1.521 |
| ATL | Drake Baldwin | batter / C | worse | predicted_H -1.35 |
| PHI | Kyle Schwarber | batter / DH | worse | predicted_AB -1.3 |
| ATL | Austin Riley | batter / 3B | worse | predicted_SO -1.234 |
| 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 (H: current=8, sim=6; RBI: current=4, sim=3; R: current=4, sim=3; BB: current=2, sim=1). | 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, RBI current=0 box=2; Drake Baldwin: H current=1 box=0, RBI current=1 box=0, R current=1 box=0, SO current=1 box=2; Ozzie Albies: 2B current=1 box=0; Matt Olson: H current=1 box=0, HR current=1 box=0, RBI current=1 box=0, R current=1 box=0; Mauricio Dubón: HR current=0 box=1, R current=0 box=1; Brewer Hicklen: H current=1 box=2, 2B current=0 box=1, BB current=1 box=0, SO current=1 box=0; Austin Riley: AB current=3 box=4, H current=1 box=0, SO current=1 box=0; Ha-Seong Kim: H current=0 box=1, SO current=1 box=2 | ATL |
| info | CURRENT_FINALIZED_MATCH_BOX | PHI model-prediction batting totals differ from final simulation box score (AB: current=32, sim=37; H: current=8, sim=10; 2B: current=1, sim=2; BB: current=3, sim=2; HBP: current=0, sim=1). | 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=2, 2B current=0 box=1, RBI current=1 box=0; Alec Bohm: AB current=4 box=3, H current=1 box=0, RBI current=1 box=0, SO current=1 box=0; Bryson Stott: AB current=3 box=4, H current=1 box=0, R current=1 box=0, BB current=1 box=0; Kyle Schwarber: HR current=1 box=0, RBI current=1 box=0, R current=1 box=0; Trea Turner: AB current=4 box=5, HR current=0 box=1, RBI current=0 box=1, SO current=1 box=0; Brandon Marsh: AB current=3 box=4; Luis Arraez: AB current=4 box=5, H current=1 box=2, RBI current=1 box=3, R current=0 box=1; J.T. Realmuto: AB current=3 box=4, H current=1 box=3, R current=0 box=1 | PHI |
| info | RECONCILIATION_PROPAGATION | No score_target_reconciliation step was used for this game. |
No large single-factor errors.
| Team | Starter | Projected | Actual | ER err |
|---|---|---|---|---|
| PIT | Paul Skenes | 3 ER / 16 outs | 2 ER / 21 outs | -1 |
| CHC | Clay Holmes | 2 ER / 17 outs | 2 ER / 17 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
Paul Skenes (PIT) threw 21 outs, 2 ER = 2.57 ERA against a projected 5.06 ERA (-2.49 ERA error)
Bullpen behind him: 2 ER over 3 outs.
The HOME lineup he faced produced 4 runs on 5 hits and 2 HR, against a projected 5 runs / 8 hits (-1 runs vs projection).
Who did the damage to him:
Verdict: offense: the lineup scored well below its projection
HOME pitching
Clay Holmes (CHC) threw 17 outs, 2 ER = 3.18 ERA against a projected 3.18 ERA (0 ERA error)
Bullpen behind him: 0 ER over 5 outs.
The AWAY lineup he faced produced 3 runs on 5 hits and 1 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) |
|---|---|---|---|---|---|---|---|---|---|---|---|
| PIT | Paul Skenes (Starter) | 21 / 16 | 2.57 / 5.06 | 2 / 3 | 4 / 5 | 2 / 0 | 1 / 1 | 2.01 | 4 / 1 | 5.4 | venue away: 4.01 vs 3.7 ERA (ok) · opp run factor 0.98 (strong) · 29 prior appearances this season |
| PIT | Gregory Soto (Middle Reliever (High Leverage)) | 3 / 2 | 18 / 13.5 (+4.50) | 2 / 1 | 1 / 2 | 0 / 0 | 2 / 0 | 0.35 | 2 / 0 | 1.17 | |
| CHC | Clay Holmes (Starter) | 17 / 17 | 3.18 / 3.18 | 2 / 2 | 5 / 5 | 1 / 0 | 4 / 3 | 2.29 | 6 / 5 | 3.65 | venue home: 1.77 vs 3.77 ERA (ok) · opp run factor 1 (average) · 15 prior appearances this season |
| CHC | Jacob Webb (Closer) | 4 / 3 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 0.45 | 1 / 1 | 0.96 | |
| CHC | Ryan Zeferjahn (Middle Reliever (High Leverage)) | 1 / 3 | 0 / 18 (-18.00) | 0 / 2 | 0 / 2 | 0 / 1 | 0 / 0 | 0.64 | 1 / 0 | 1.24 |
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 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Oneil Cruz (CF) | PIT | 5 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 0 / 1 | 0 / 1 | 1 / 1 | -1.73 | 0.358 elite | bad day |
| Pete Crow-Armstrong (CF) | CHC | 4 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 0 / 1 | 0 / 1 | 2 / 1 | -1.73 | 0.374 elite | bad day |
| Pedro Ramirez (2B) | CHC | 3 / 4 | 2 / 1 | 1 / 0 | 0 / 0 | 1 / 0 | 1 / 1 | 2 / 1 | 0 / 0 | 0 / 1 | 1.71 | 0.29 below average | good day |
| Seiya Suzuki (RF) | CHC | 0 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 0 / 1 | 1 / 1 | 0 / 1 | -1.4 | 0.341 elite | bad day |
| Ryan O'Hearn (DH) | PIT | 4 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 1 / 0 | 3 / 1 | 1 / 1 | 0 / 0 | 1 / 1 | 0.93 | 0.315 average | no signal |
| Bryan Reynolds (LF) | PIT | 5 / 4 | 1 / 1 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 0 / 1 | 2 / 1 | -0.64 | 0.359 elite | bad day |
| Brandon Lowe (2B) | PIT | 4 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 1 / 1 | 1 / 0 | 1 / 1 | -0.6 | 0.321 above average | bad day |
| Konnor Griffin (SS) | PIT | 4 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 1 / 1 | -0.47 | 0.303 below average | — |
| Ian Happ (LF) | CHC | 2 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 1 / 1 | 0 / 1 | -0.47 | 0.316 average | — |
| Carson Kelly (C) | CHC | 3 / 3 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | -0.47 | 0.31 average | — |
| Michael Busch (1B) | CHC | 3 / 4 | 1 / 1 | 0 / 1 | 0 / 0 | 1 / 0 | 1 / 0 | 1 / 0 | 0 / 1 | 1 / 1 | 0.29 | 0.33 above average | — |
| Spencer Horwitz (1B) | PIT | 3 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 1 / 1 | 0 | 0.311 average | — |
| Rafael Flores Jr. (C) | PIT | 1 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 0 | 0.335 above average | — |
| Nico Hoerner (SS) | CHC | 3 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 | 0.324 above average | — |
| Alex Bregman (3B) | CHC | 2 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 1 / 1 | 0 / 0 | 0 / 1 | 0 | 0.321 above average | — |
| Michael Conforto (DH) | CHC | 4 / 3 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 2 / 1 | 0 | 0.33 above average | — |
| Signal | Home-away edge | Meaning |
|---|---|---|
| Season quality | 0.438 | positive favors home; negative favors away |
| Recent form | -0.094 | positive favors home; negative favors away |
| Starting-pitcher matchup | -0.02 | positive favors home; negative favors away |
| Composite | 0.353 | positive favors home; negative favors away |
| Stage | Away-home runs | Confidence | What changed |
|---|---|---|---|
| historical_ml | 5.02-4.06 | n/a | Base ML historical model prediction |
| variance_applied | 5-4 | n/a | Deterministic baseline target (variance factor 1.0) |
| enhanced_prediction | 4-5 | 0.53 | Enhanced ML with recent form, H2H, low-score analysis (confidence shrunk by projected_margin_is_one_run, matchup_recency_guardrail, 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 | 5.02-4.06 | 5-4 | -0.042 | Deterministic baseline target (variance factor 1.0) |
| enhanced_prediction | 5-4 | 4-5 | 2 | Enhanced ML with recent form, H2H, low-score analysis (confidence shrunk by projected_margin_is_one_run, matchup_recency_guardrail, 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 |
|---|---|---|---|---|
| CHC | Seiya Suzuki | batter / RF | better | predicted_AB -2.44 |
| PIT | Konnor Griffin | batter / SS | worse | predicted_SO 1.877 |
| CHC | Pedro Ramirez | batter / 2B | better | predicted_RBI 1.61 |
| CHC | Michael Conforto | batter / DH | worse | predicted_AB 1.5 |
| PIT | Oneil Cruz | batter / CF | worse | predicted_SO -1.488 |
| PIT | Esmerlyn Valdez | batter / RF | better | predicted_SO -1.478 |
| CHC | Pete Crow-Armstrong | batter / CF | worse | predicted_AB -1.33 |
| CHC | Ian Happ | batter / LF | worse | predicted_SO -1.268 |
| 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 | PIT pitcher list appears in both predicted_performance.pitchers and player_predictions_by_position.pitchers; IDs match and were de-duplicated in this audit. | PIT |
| info | CURRENT_FINALIZED_MATCH_BOX | CHC model-prediction batting totals differ from final simulation box score (H: current=8, sim=9; 2B: current=1, sim=3; 3B: current=0, sim=1; HR: current=2, sim=0; BB: current=4, sim=1; SO: current=9, sim=4; HBP: current=0, sim=1). | CHC |
| info | CURRENT_PLAYER_MATCH_BOX | CHC current finalized hitter lines are model predictions and differ from the simulation box score: Michael Busch: 2B current=1 box=0, RBI current=0 box=1, R current=0 box=1, BB current=1 box=0; Pete Crow-Armstrong: HR current=1 box=0, RBI current=1 box=0, BB current=1 box=0; Nico Hoerner: H current=1 box=0, SO current=1 box=0; Alex Bregman: RBI current=1 box=0, R current=1 box=0; Seiya Suzuki: AB current=4 box=3, H current=1 box=2, 2B current=0 box=2, HR current=1 box=0; Pedro Ramirez: H current=1 box=2, 2B current=0 box=1, 3B current=0 box=1, RBI current=1 box=2; Ian Happ: AB current=4 box=3, H current=1 box=0, R current=1 box=0, SO current=1 box=0; Carson Kelly: AB current=3 box=4, H current=1 box=2, R current=0 box=1, SO current=1 box=0 | CHC |
| info | CURRENT_FINALIZED_MATCH_BOX | PIT model-prediction batting totals differ from final simulation box score (AB: current=35, sim=34; HR: current=2, sim=1; RBI: current=5, sim=4; R: current=5, sim=4; BB: current=4, sim=3; SO: current=8, sim=9; SF: current=0, sim=1). | PIT |
| info | CURRENT_PLAYER_MATCH_BOX | PIT current finalized hitter lines are model predictions and differ from the simulation box score: Ryan O'Hearn: H current=1 box=2, RBI current=1 box=0, SO current=1 box=2; Konnor Griffin: AB current=4 box=5, H current=1 box=0, R current=1 box=0, SO current=1 box=3; Esmerlyn Valdez: H current=0 box=1, HR current=0 box=1, RBI current=1 box=2, R current=0 box=1; Oneil Cruz: AB current=4 box=3, HR current=1 box=0, RBI current=1 box=0, R current=1 box=0; Brandon Lowe: HR current=1 box=0, RBI current=1 box=0, R current=1 box=0, BB current=0 box=1; Bryan Reynolds: H current=1 box=0, 2B current=1 box=0, R current=1 box=0, BB current=1 box=0; Spencer Horwitz: RBI current=0 box=1, R current=0 box=1, BB current=1 box=0; Rafael Flores Jr.: AB current=4 box=3, H current=1 box=0, RBI current=1 box=0, BB current=0 box=1 | PIT |
| info | RECONCILIATION_PROPAGATION | No score_target_reconciliation step was used for this game. |
| Team | Starter | Projected | Actual | ER err |
|---|---|---|---|---|
| SD | Michael King | 3 ER / 18 outs | 3 ER / 21 outs | 0 |
| SF | Cesar Perdomo | 2 ER / 15 outs | 5 ER / 14 outs | 3 |
Every value is actual / projected. Run impact approximates how far each hitter's real line moved run expectancy from its projection; it orders the movers and is not a published stat.
Top deviations that drove the game:
Starter miss: Cesar Perdomo (SF) posted 9.64 ERA vs projected 3.60 (5 ER in 14 outs). Thin prior record (2 prior appearances this season): high projection uncertainty.
What to do: Reduce game confidence for starters the feed has little on (scale by prior appearances); prefer priors and validate any run-param change in shadow.
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 21 outs, 3 ER = 3.86 ERA against a projected 4.5 ERA (-0.64 ERA error)
Bullpen behind him: 3 ER over 6 outs.
The HOME lineup he faced produced 6 runs on 7 hits and 4 HR, against a projected 3 runs / 6 hits (3 runs vs projection).
Who did the damage to him:
Verdict: neither side broke materially - the result is closer to variance
HOME pitching
Cesar Perdomo (SF) threw 14 outs, 5 ER = 9.64 ERA against a projected 3.6 ERA (6.04 ERA error) only 2 prior appearances in the covered season - the projection had little of his own record to stand on
Bullpen behind him: 0 ER over 10 outs.
The AWAY lineup he faced produced 7 runs on 12 hits and 2 HR, against a projected 4 runs / 8 hits (3 runs vs projection).
Who did the damage to him:
Verdict: pitching: the starter gave up runs at a far worse rate than projected
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) | 21 / 18 | 3.86 / 4.5 | 3 / 3 | 5 / 4 | 2 / 0 | 0 / 2 | 2.3 | 4 / 9 | 4.89 | venue away: 3.29 vs 2.74 ERA (worse here) · opp run factor 0.97 (weak) · 29 prior appearances this season |
| SD | Adrian Morejon (Setup Man) | 3 / 3 | 0 / 9 (-9.00) | 0 / 1 | 0 / 2 | 0 / 0 | 0 / 0 | 0.29 | 2 / 0 | 1.34 | |
| SD | Bradgley Rodriguez (Middle Reliever (High Leverage)) | 0 / 3 | n/a / 0 | 3 / 0 | 3 / 1 | 2 / 0 | 0 / 0 | 0.22 | 0 / 1 | 1.28 | |
| SD | Mason Miller (Closer) | 3 / 3 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0.42 | 2 / 1 | 1.97 | |
| SF | Cesar Perdomo (Starter) | 14 / 15 | 9.64 / 3.6 (+6.04) | 5 / 2 | 10 / 5 | 1 / 0 | 2 / 1 | 0.86 | 3 / 5 | 3.46 | opp run factor 0.99 (average) · thin sample: 2 prior appearances this season (high uncertainty) |
| SF | Carson Seymour (Middle Reliever (High Leverage)) | 3 / 3 | 0 / 18 (-18.00) | 0 / 2 | 1 / 1 | 0 / 1 | 1 / 1 | 0.62 | 1 / 1 | 0.72 | |
| SF | Dylan Smith (Closer) | 3 / 3 | 0 / 9 (-9.00) | 0 / 1 | 0 / 1 | 0 / 1 | 1 / 0 | 0.45 | 0 / 2 | 1.15 | |
| SF | Jason Foley (Middle Reliever (High Leverage)) | 3 / 2 | 0 / 0 | 0 / 0 | 1 / 0 | 0 / 0 | 1 / 0 | 0.42 | 0 / 0 | 0.53 | |
| SF | Reiver Sanmartin (Middle Reliever) | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0.31 | 0 / 0 | 0.69 |
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 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Fernando Tatis Jr. (2B) | SD | 3 / 4 | 2 / 1 | 0 / 1 | 0 / 0 | 1 / 0 | 1 / 1 | 1 / 1 | 3 / 0 | 0 / 1 | 2.08 | 0.376 elite | projection too low |
| Manny Machado (3B) | SD | 4 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 0 / 1 | 1 / 1 | 0 / 1 | -1.4 | 0.337 above average | bad day |
| Shay Whitcomb (3B) | SF | 3 / 3 | 1 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 1 / 1 | 1 / 0 | 0 / 0 | 0 / 1 | 1.4 | 0.27 weak | good day |
| Drew Gilbert (CF) | SF | 4 / 4 | 2 / 1 | 0 / 0 | 0 / 0 | 1 / 0 | 2 / 0 | 2 / 0 | 0 / 0 | 1 / 1 | 1.4 | 0.328 above average | projection too low |
| Xander Bogaerts (SS) | SD | 5 / 4 | 4 / 1 | 1 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 2 / 0 | 0 / 1 | 0 / 0 | 1.39 | 0.318 average | no signal |
| Jackson Merrill (CF) | SD | 4 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 1 / 0 | 1 / 1 | 1 / 1 | 1 / 0 | 1 / 1 | 1.26 | 0.347 elite | projection too low |
| Bryce Eldridge (1B) | SF | 4 / 4 | 0 / 1 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 0 / 1 | 2 / 1 | -1.11 | 0.354 elite | bad day |
| Drew Cavanaugh (C) | SF | 3 / 3 | 1 / 1 | 0 / 0 | 0 / 0 | 1 / 0 | 1 / 0 | 1 / 0 | 0 / 0 | 0 / 1 | 0.93 | 0.314 average | no signal |
| Turner Hill (LF) | SF | 4 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 0 / 1 | 2 / 0 | -0.8 | 0.316 average | no signal |
| Austin Hays (RF) | SD | 3 / 4 | 2 / 1 | 1 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 2 / 0 | 0 / 0 | 1 / 1 | 0.78 | 0.289 below average | good day |
| Christian Koss (SS) | SF | 3 / 3 | 1 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 0 / 0 | 0 / 1 | 0.47 | 0.255 weak | — |
| Luis Campusano (DH) | SD | 5 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 0 / 1 | 1 / 1 | -0.33 | 0.337 above average | — |
| Samad Taylor (LF) | SD | 3 / 3 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 1 / 0 | 0 / 1 | 0.33 | 0.303 below average | — |
| Rafael Devers (DH) | SF | 4 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 1 / 1 | 2 / 1 | 1 / 1 | 0 / 1 | 1 / 1 | -0.33 | 0.342 elite | — |
| Jake Cronenworth (1B) | SD | 4 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 | 0.268 weak | — |
| Freddy Fermin (C) | SD | 0 / 3 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 | 0.275 weak | — |
| Jung Hoo Lee (RF) | SF | 4 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 0 | 0.316 average | — |
| Signal | Home-away edge | Meaning |
|---|---|---|
| Season quality | -0.632 | positive favors home; negative favors away |
| Recent form | -0.518 | positive favors home; negative favors away |
| Starting-pitcher matchup | -0.016 | positive favors home; negative favors away |
| Composite | -0.693 | positive favors home; negative favors away |
| Stage | Away-home runs | Confidence | What changed |
|---|---|---|---|
| historical_ml | 4.41-4.97 | n/a | Base ML historical model prediction |
| variance_applied | 4-5 | n/a | Deterministic baseline target (variance factor 1.0) |
| enhanced_prediction | 5-4 | 0.505 | Enhanced ML with recent form, H2H, low-score analysis (confidence shrunk by opposing_starter_is_elite, starter_quality_favours_the_other_side, projected_margin_is_one_run, matchup_recency_guardrail) |
| embedded_savant_run_environment | 5-4 | n/a | Target score adjusted by temporal Savant lineup quality versus opposing starter quality |
| fundamental_edge_target_review | 5-4 | n/a | Refreshed score target and win probability after Savant/pitcher/team-strength adjustments |
| capped_target | 5-4 | n/a | Capped at max 12 realistic runs |
| simulation_result | 5-4 | n/a | Final inning-by-inning simulation result |
| Stage | Before | After | Toward final pick | What changed |
|---|---|---|---|---|
| variance_applied | 4.41-4.97 | 4-5 | -0.433 | Deterministic baseline target (variance factor 1.0) |
| enhanced_prediction | 4-5 | 5-4 | 2 | Enhanced ML with recent form, H2H, low-score analysis (confidence shrunk by opposing_starter_is_elite, starter_quality_favours_the_other_side, projected_margin_is_one_run, matchup_recency_guardrail) |
| embedded_savant_run_environment | 5-4 | 5-4 | -0 | Target score adjusted by temporal Savant lineup quality versus opposing starter quality |
| fundamental_edge_target_review | 5-4 | 5-4 | -0 | Refreshed score target and win probability after Savant/pitcher/team-strength adjustments |
| capped_target | 5-4 | 5-4 | -0 | Capped at max 12 realistic runs |
| simulation_result | 5-4 | 5-4 | -0 | Final inning-by-inning simulation result |
These are pregame model adjustments, not claims about actual postgame player error.
| Team | Player | Role | Net effect | Largest change |
|---|---|---|---|---|
| SF | Shay Whitcomb | batter / 3B | worse | predicted_SO 2.214 |
| SD | Jackson Merrill | batter / CF | worse | predicted_SO 2 |
| SD | Jake Cronenworth | batter / 1B | worse | predicted_BB 1.634 |
| SD | Luis Campusano | batter / DH | better | predicted_RBI 1.541 |
| SF | Drew Gilbert | batter / CF | worse | predicted_SO 1.418 |
| SD | Xander Bogaerts | batter / SS | worse | predicted_SO 1.293 |
| SF | Rafael Devers | batter / DH | better | predicted_AB 1.255 |
| SF | Drew Cavanaugh | batter / C | worse | predicted_SO 1.152 |
| Severity | Rule | Finding | Subject |
|---|---|---|---|
| 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_PITCHER_DUPLICATION | SF pitcher list appears in both predicted_performance.pitchers and player_predictions_by_position.pitchers; IDs match and were de-duplicated in this audit. | SF |
| info | CURRENT_FINALIZED_MATCH_BOX | SD model-prediction batting totals differ from final simulation box score (H: current=8, sim=7; HR: current=1, sim=2; RBI: current=4, sim=5; R: current=4, sim=5; HBP: current=0, sim=2). | SD |
| info | CURRENT_PLAYER_MATCH_BOX | SD current finalized hitter lines are model predictions and differ from the simulation box score: Fernando Tatis Jr.: 2B current=1 box=0, RBI current=1 box=0, R current=1 box=0, BB current=0 box=1; Luis Campusano: HR current=0 box=1, RBI current=1 box=2, R current=0 box=1, BB current=1 box=0; Austin Hays: H current=1 box=0; Jake Cronenworth: AB current=4 box=2, R current=0 box=1, BB current=0 box=2, SO current=1 box=0; Samad Taylor: RBI current=0 box=1, SO current=1 box=0, HBP current=0 box=1; Xander Bogaerts: H current=1 box=0, BB current=1 box=0, SO current=0 box=2, HBP current=0 box=1; Jackson Merrill: 2B current=0 box=1, RBI current=1 box=0, R current=1 box=0, SO current=1 box=3; Manny Machado: AB current=4 box=5, BB current=1 box=0 | SD |
| info | CURRENT_FINALIZED_MATCH_BOX | SF model-prediction batting totals differ from final simulation box score (AB: current=32, sim=34; 2B: current=1, sim=2; HR: current=1, sim=0; R: current=3, sim=4; SO: current=7, sim=11; HBP: current=0, sim=1). | SF |
| info | CURRENT_PLAYER_MATCH_BOX | SF current finalized hitter lines are model predictions and differ from the simulation box score: Rafael Devers: AB current=4 box=5, HR current=1 box=0, BB current=1 box=0, SO current=1 box=2; Turner Hill: 2B current=0 box=1, BB current=1 box=0; Bryce Eldridge: 2B current=1 box=0, R current=0 box=1, BB current=1 box=0, SO current=1 box=2; Osleivis Basabe: BB current=0 box=1, SO current=1 box=0; Shay Whitcomb: AB current=3 box=4, RBI current=1 box=0, SO current=1 box=3; Drew Cavanaugh: H current=1 box=0, BB current=0 box=1, SO current=1 box=2; Drew Gilbert: AB current=4 box=3, H current=1 box=0, BB current=0 box=1, SO current=1 box=2; Jung Hoo Lee: H current=1 box=2, 2B current=0 box=1, RBI current=0 box=1, R current=0 box=1 | SF |
| info | RECONCILIATION_PROPAGATION | No score_target_reconciliation step was used for this game. |
| Team | Starter | Projected | Actual | ER err |
|---|---|---|---|---|
| SEA | Bryan Woo | 2 ER / 17 outs | 0 ER / 18 outs | -2 |
| OAK | Gage Jump | 4 ER / 13 outs | 5 ER / 6 outs | 1 |
Every value is actual / projected. Run impact approximates how far each hitter's real line moved run expectancy from its projection; it orders the movers and is not a published stat.
Top deviations that drove the game:
Starter miss: Gage Jump (OAK) posted 22.50 ERA vs projected 8.31 (5 ER in 6 outs); he is materially worse pitching home (5.62 ERA there vs 4.60 on the other side), a venue-role weakness the model under-weighted.
What to do: Enable/raise the venue-split weight (context.venue_adjustment_weight) and validate in shadow; the split is credible for this starter.
Pitcher versus batter: what actually broke this game
Per-pitch matchup fields are not populated in the current feeds, so this is reconstructed from the settled box: each starter's workload-adjusted ERA, the bullpen share behind him, and the opposing lineup's real production against its projection, with the hitters who beat that projection named.
AWAY pitching
Bryan Woo (SEA) threw 18 outs, 0 ER = 0 ERA against a projected 3.18 ERA (-3.18 ERA error)
Bullpen behind him: 0 ER over 0 outs.
The HOME lineup he faced produced 1 runs on 4 hits and 0 HR, against a projected 4 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
Gage Jump (OAK) threw 6 outs, 5 ER = 22.5 ERA against a projected 8.31 ERA (14.19 ERA error)
Bullpen behind him: 0 ER over 0 outs.
The AWAY lineup he faced produced 13 runs on 18 hits and 5 HR, against a projected 5 runs / 8 hits (8 runs vs projection).
Who did the damage to him:
Verdict: both: the starter was hit hard AND the lineup underproduced
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) |
|---|---|---|---|---|---|---|---|---|---|---|---|
| SEA | Bryan Woo (Starter) | 18 / 17 | 0 / 3.18 (-3.18) | 0 / 2 | 3 / 5 | 0 / 0 | 2 / 0 | 1.31 | 5 / 5 | 5.83 | venue away: 5.62 vs 2.36 ERA (worse here) · opp run factor 0.96 (weak) · 27 prior appearances this season |
| OAK | Gage Jump (Starter) | 6 / 13 | 22.5 / 8.31 (+14.19) | 5 / 4 | 5 / 5 | 2 / 2 | 1 / 1 | 2.05 | 2 / 7 | 4.95 | venue home: 5.62 vs 4.6 ERA (worse here) · opp run factor 0.94 (weak) · 19 prior appearances this season |
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 Arroyo (2B) | SEA | 4 / 3 | 3 / 1 | 1 / 0 | 0 / 0 | 1 / 0 | 3 / 0 | 2 / 0 | 1 / 0 | 0 / 1 | 2.51 | 0.447 elite | projection too low |
| Cole Young (SS) | SEA | 6 / 3 | 3 / 1 | 0 / 0 | 0 / 0 | 1 / 0 | 5 / 0 | 2 / 1 | 0 / 0 | 0 / 1 | 1.87 | 0.317 average | no signal |
| Zack Gelof (3B) | OAK | 3 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 0 / 1 | 0 / 0 | 2 / 1 | -1.4 | 0.313 average | no signal |
| Julio Rodríguez (CF) | SEA | 5 / 4 | 3 / 1 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 2 / 1 | 1 / 0 | 0 / 1 | 1.27 | 0.335 above average | projection too low |
| Josh Naylor (1B) | SEA | 5 / 4 | 3 / 1 | 1 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 1 / 1 | 0 / 0 | 0 / 0 | 1.25 | 0.316 average | no signal |
| J.P. Crawford (3B) | SEA | 6 / 3 | 2 / 1 | 0 / 0 | 0 / 0 | 1 / 0 | 2 / 0 | 3 / 0 | 0 / 1 | 0 / 1 | 1.07 | 0.322 above average | projection too low |
| Jeff McNeil (2B) | OAK | 3 / 4 | 0 / 1 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 0 / 0 | 0 / 0 | -0.78 | 0.304 average | no signal |
| Randy Arozarena (LF) | SEA | 5 / 4 | 2 / 1 | 0 / 1 | 0 / 0 | 1 / 0 | 4 / 1 | 1 / 1 | 0 / 1 | 1 / 1 | 0.76 | 0.347 elite | projection too low |
| Dominic Canzone (DH) | SEA | 4 / 4 | 2 / 1 | 0 / 0 | 0 / 0 | 1 / 1 | 2 / 1 | 1 / 1 | 0 / 0 | 1 / 1 | 0.47 | 0.352 elite | — |
| Tommy White (1B) | OAK | 1 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 0 / 1 | -0.47 | 0.297 below average | — |
| Alika Williams (SS) | OAK | 4 / 3 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | -0.47 | 0.243 weak | — |
| Lawrence Butler (RF) | OAK | 3 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 1 / 1 | 1 / 1 | -0.47 | 0.325 above average | — |
| Jonah Heim (C) | OAK | 4 / 3 | 1 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 0 / 0 | 1 / 1 | 0.47 | 0.29 below average | — |
| Henry Bolte (CF) | OAK | 2 / 4 | 1 / 1 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 1 / 1 | 1 / 1 | -0.31 | 0.317 average | — |
| Cal Raleigh (C) | SEA | 4 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 1 / 0 | 2 / 1 | 1 / 1 | -0.14 | 0.312 average | — |
| Carlos Cortes (LF) | OAK | 4 / 3 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 0 | 0.305 average | — |
| Max Muncy (DH) | OAK | 1 / 3 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 | 0.29 below average | — |
| Signal | Home-away edge | Meaning |
|---|---|---|
| Season quality | -0.415 | positive favors home; negative favors away |
| Recent form | 0.586 | positive favors home; negative favors away |
| Starting-pitcher matchup | 0.021 | positive favors home; negative favors away |
| Composite | -0.215 | positive favors home; negative favors away |
| Stage | Away-home runs | Confidence | What changed |
|---|---|---|---|
| historical_ml | 5.54-4.58 | n/a | Base ML historical model prediction |
| variance_applied | 6-5 | n/a | Deterministic baseline target (variance factor 1.0) |
| enhanced_prediction | 6-5 | 0.525 | 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 | 5.54-4.58 | 6-5 | 0.042 | Deterministic baseline target (variance factor 1.0) |
| enhanced_prediction | 6-5 | 6-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 | 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 |
|---|---|---|---|---|
| SEA | Bryan Woo | pitcher / Starter | neutral | predicted_SO 2 |
| OAK | Gage Jump | pitcher / Starter | worse | predicted_ER 2 |
| OAK | Scott Blewett | pitcher / Middle Reliever (High Leverage) | better | predicted_ER -2 |
| SEA | Taylor Ward | batter / RF | worse | predicted_HR 1.947 |
| OAK | Jeff McNeil | batter / 2B | deboosted | predicted_H 1.84 |
| SEA | Michael Arroyo | batter / 2B | better | predicted_AB 1.5 |
| SEA | Josh Naylor | batter / 1B | worse | predicted_SO 1.449 |
| SEA | Dominic Canzone | batter / DH | worse | predicted_RBI 1.39 |
| Severity | Rule | Finding | Subject |
|---|---|---|---|
| info | CURRENT_PITCHER_DUPLICATION | OAK pitcher list appears in both predicted_performance.pitchers and player_predictions_by_position.pitchers; IDs match and were de-duplicated in this audit. | OAK |
| info | CURRENT_PITCHER_DUPLICATION | SEA pitcher list appears in both predicted_performance.pitchers and player_predictions_by_position.pitchers; IDs match and were de-duplicated in this audit. | SEA |
| info | CURRENT_FINALIZED_MATCH_BOX | OAK model-prediction batting totals differ from final simulation box score (AB: current=32, sim=39; H: current=8, sim=12; 2B: current=2, sim=3; 3B: current=0, sim=1; HR: current=1, sim=0; R: current=4, sim=5; SO: current=8, sim=5; HBP: current=0, sim=1). | OAK |
| info | CURRENT_PLAYER_MATCH_BOX | OAK current finalized hitter lines are model predictions and differ from the simulation box score: Henry Bolte: 2B current=1 box=0, RBI current=0 box=1, SO current=1 box=0; Carlos Cortes: AB current=3 box=4, 3B current=0 box=1, R current=0 box=1, SO current=1 box=0; Tommy White: AB current=4 box=5, H current=1 box=2, RBI current=0 box=1; Max Muncy: AB current=3 box=4, H current=1 box=0; Alika Williams: AB current=3 box=4, H current=1 box=2, 2B current=0 box=1; Lawrence Butler: H current=1 box=2, 2B current=0 box=1, RBI current=1 box=0, SO current=1 box=0; Zack Gelof: AB current=4 box=5, H current=1 box=0, HR current=1 box=0, RBI current=1 box=0; Jonah Heim: AB current=3 box=4, H current=0 box=1, 2B current=0 box=1, R current=0 box=1 | OAK |
| info | CURRENT_FINALIZED_MATCH_BOX | SEA model-prediction batting totals differ from final simulation box score (AB: current=32, sim=36; 2B: current=2, sim=0; 3B: current=0, sim=1; HR: current=1, sim=3; RBI: current=4, sim=6; R: current=5, sim=6; BB: current=4, sim=2; SO: current=8, sim=14). | SEA |
| info | CURRENT_PLAYER_MATCH_BOX | SEA current finalized hitter lines are model predictions and differ from the simulation box score: Dominic Canzone: AB current=4 box=5, RBI current=1 box=2, SO current=1 box=2; Cal Raleigh: AB current=4 box=3, H current=1 box=0, RBI current=1 box=0, SO current=1 box=2; J.P. Crawford: AB current=3 box=4, H current=1 box=0, BB current=1 box=0, SO current=1 box=2; Taylor Ward: H current=1 box=2, HR current=0 box=2, RBI current=0 box=2, R current=0 box=1; Cole Young: AB current=3 box=4, H current=1 box=2, 3B current=0 box=1, SO current=1 box=2; Michael Arroyo: AB current=3 box=4, H current=1 box=0, RBI current=0 box=1, R current=0 box=1; Randy Arozarena: 2B current=1 box=0, RBI current=1 box=0, BB current=1 box=0, HBP current=0 box=1; Julio Rodríguez: AB current=4 box=5, 2B current=1 box=0, RBI current=1 box=0, R current=1 box=0 | SEA |
| info | RECONCILIATION_PROPAGATION | No score_target_reconciliation step was used for this game. |
| Team | Starter | Projected | Actual | ER err |
|---|---|---|---|---|
| TEX | Kumar Rocker | 5 ER / 14 outs | 1 ER / 12 outs | -4 |
| ARI | Brandon Pfaadt | 4 ER / 19 outs | 6 ER / 20 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:
Starter miss: Kumar Rocker (TEX) posted 2.25 ERA vs projected 9.64 (1 ER in 12 outs); he faced a strong offense (opponent run factor 1.07, bucket average).
What to do: Consider raising context.opponent_strength_weight; validate across the rolling window before promotion.
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
Kumar Rocker (TEX) threw 12 outs, 1 ER = 2.25 ERA against a projected 9.64 ERA (-7.39 ERA error)
Bullpen behind him: 0 ER over 4 outs.
The HOME lineup he faced produced 2 runs on 4 hits and 0 HR, against a projected 4 runs / 6 hits (-2 runs vs projection).
Who did the damage to him:
Verdict: neither side broke materially - the result is closer to variance
HOME pitching
No settled pitching line for this club. The forecast named Brandon Pfaadt (ARI) at a projected 5.68 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 5 runs on 11 hits and 1 HR, against a projected 5 runs / 8 hits (0 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) |
|---|---|---|---|---|---|---|---|---|---|---|---|
| TEX | Kumar Rocker (Starter) | 12 / 14 | 2.25 / 9.64 (-7.39) | 1 / 5 | 2 / 7 | 0 / 0 | 2 / 4 | 2.69 | 5 / 4 | 5.19 | venue away: 4.79 vs 4.76 ERA (ok) · opp run factor 1.07 (average) · 27 prior appearances this season |
| TEX | Jacob Latz (Closer) | 4 / 3 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0.36 | 2 / 1 | 1.21 |
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 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Joc Pederson (DH) | TEX | 2 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 0 / 1 | 0 / 1 | 1 / 1 | -1.73 | 0.343 elite | bad day |
| Wyatt Langford (LF) | TEX | 4 / 4 | 2 / 1 | 1 / 0 | 0 / 0 | 1 / 0 | 1 / 0 | 1 / 1 | 0 / 0 | 2 / 0 | 1.71 | 0.316 average | no signal |
| Corbin Carroll (RF) | ARI | 3 / 4 | 0 / 1 | 0 / 1 | 0 / 0 | 0 / 0 | 1 / 0 | 0 / 1 | 0 / 1 | 3 / 1 | -1.11 | 0.341 elite | bad day |
| Nolan Arenado (3B) | ARI | 2 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 0 / 1 | 1 / 0 | 2 / 1 | -1.07 | 0.293 below average | projection too high |
| Tim Tawa (1B) | ARI | 3 / 3 | 1 / 1 | 0 / 0 | 1 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 1 / 0 | 0 / 1 | 0.95 | 0.314 average | no signal |
| Elias Díaz (C) | TEX | 4 / 3 | 3 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 1 / 0 | 0 / 0 | 1 / 0 | 0.94 | 0.272 weak | good day |
| Brandon Nimmo (RF) | TEX | 5 / 4 | 2 / 1 | 2 / 1 | 0 / 0 | 0 / 0 | 1 / 0 | 1 / 0 | 0 / 0 | 2 / 1 | 0.78 | 0.346 elite | projection too low |
| Nicky Lopez (2B) | TEX | 2 / 3 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | -0.47 | 0.257 weak | — |
| Ketel Marte (DH) | ARI | 4 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 0 / 0 | 0 / 0 | -0.47 | 0.346 elite | — |
| Geraldo Perdomo (SS) | ARI | 4 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | -0.33 | 0.326 above average | — |
| Corey Seager (SS) | TEX | 4 / 4 | 1 / 1 | 1 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 1 / 1 | 1 / 1 | 0 / 1 | 0.31 | 0.353 elite | — |
| Gabriel Moreno (C) | ARI | 4 / 4 | 2 / 1 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 1 / 1 | 0 / 1 | 1 / 1 | -0.17 | 0.359 elite | — |
| Evan Carter (CF) | TEX | 1 / 3 | 1 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 0.14 | 0.279 weak | — |
| Ezequiel Duran (3B) | TEX | 5 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 2 / 1 | 0 / 1 | 0 / 0 | 0 / 1 | 0 | 0.306 average | — |
| Jake Burger (1B) | TEX | 4 / 3 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 1 / 1 | 0 / 0 | 1 / 1 | 0 | 0.315 average | — |
| Jordan Lawlar (CF) | ARI | 2 / 3 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 0 | 0.328 above average | — |
| Signal | Home-away edge | Meaning |
|---|---|---|
| Season quality | 0.368 | positive favors home; negative favors away |
| Recent form | 0.216 | positive favors home; negative favors away |
| Starting-pitcher matchup | 0.071 | positive favors home; negative favors away |
| Composite | 0.593 | positive favors home; negative favors away |
| Stage | Away-home runs | Confidence | What changed |
|---|---|---|---|
| historical_ml | 4.17-4.7 | n/a | Base ML historical model prediction |
| variance_applied | 4-5 | n/a | Deterministic baseline target (variance factor 1.0) |
| enhanced_prediction | 4-5 | 0.559 | Enhanced ML with recent form, H2H, low-score analysis (confidence shrunk by projected_margin_is_one_run, matchup_recency_guardrail) |
| embedded_savant_run_environment | 4-5 | n/a | Target score adjusted by temporal Savant lineup quality versus opposing starter quality |
| fundamental_edge_target_review | 4-5 | n/a | Refreshed score target and win probability after Savant/pitcher/team-strength adjustments |
| capped_target | 4-5 | n/a | Capped at max 12 realistic runs |
| simulation_result | 4-5 | n/a | Final inning-by-inning simulation result |
| Stage | Before | After | Toward final pick | What changed |
|---|---|---|---|---|
| variance_applied | 4.17-4.7 | 4-5 | 0.476 | 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 |
|---|---|---|---|---|
| ARI | Gabriel Moreno | batter / C | worse | predicted_RBI 2.26 |
| TEX | Kumar Rocker | pitcher / Starter | neutral | predicted_SO 2 |
| TEX | Joc Pederson | batter / DH | worse | predicted_AB 1.92 |
| ARI | Lourdes Gurriel Jr. | batter / LF | worse | predicted_BB 1.804 |
| TEX | Evan Carter | batter / CF | better | predicted_RBI 1.75 |
| TEX | Brandon Nimmo | batter / RF | worse | predicted_AB -1.5 |
| ARI | Corbin Carroll | batter / RF | worse | predicted_RBI 1.5 |
| ARI | Geraldo Perdomo | batter / SS | worse | predicted_SO 1.472 |
| Severity | Rule | Finding | Subject |
|---|---|---|---|
| info | CURRENT_PITCHER_DUPLICATION | ARI pitcher list appears in both predicted_performance.pitchers and player_predictions_by_position.pitchers; IDs match and were de-duplicated in this audit. | ARI |
| info | CURRENT_PITCHER_DUPLICATION | TEX pitcher list appears in both predicted_performance.pitchers and player_predictions_by_position.pitchers; IDs match and were de-duplicated in this audit. | TEX |
| info | CURRENT_FINALIZED_MATCH_BOX | ARI model-prediction batting totals differ from final simulation box score (AB: current=34, sim=31; H: current=8, sim=7; 3B: current=0, sim=1; HR: current=1, sim=0; RBI: current=4, sim=5; R: current=4, sim=5; BB: current=3, sim=6; SO: current=6, sim=9). | ARI |
| info | CURRENT_PLAYER_MATCH_BOX | ARI current finalized hitter lines are model predictions and differ from the simulation box score: Ketel Marte: AB current=4 box=3, RBI current=1 box=0, BB current=0 box=1; Gabriel Moreno: H current=1 box=2, 2B current=1 box=2, RBI current=1 box=3, BB current=1 box=0; Geraldo Perdomo: 3B current=0 box=1, R current=0 box=1, SO current=0 box=2; Ildemaro Vargas: H current=1 box=0, RBI current=1 box=0; Nolan Arenado: AB current=4 box=3, HR current=1 box=0, RBI current=1 box=0, BB current=0 box=1; Corbin Carroll: AB current=4 box=3, 2B current=1 box=0, RBI current=0 box=2; Lourdes Gurriel Jr.: AB current=4 box=2, H current=1 box=0, BB current=0 box=2; Jordan Lawlar: AB current=3 box=4, H current=0 box=1, SO current=1 box=2 | ARI |
| info | CURRENT_FINALIZED_MATCH_BOX | TEX model pitcher projections differ from final simulation pitching box score (BB: current=4, sim=6). | TEX |
| info | CURRENT_FINALIZED_MATCH_BOX | TEX model-prediction batting totals differ from final simulation box score (AB: current=32, sim=34; H: current=8, sim=7; R: current=5, sim=4; BB: current=3, sim=1; HBP: current=0, sim=2). | TEX |
| info | CURRENT_PLAYER_MATCH_BOX | TEX current finalized hitter lines are model predictions and differ from the simulation box score: Ezequiel Duran: AB current=4 box=3, H current=1 box=0, RBI current=1 box=0, R current=1 box=0; Wyatt Langford: 2B current=0 box=1, R current=1 box=0, SO current=0 box=1; Joc Pederson: AB current=4 box=5, H current=1 box=0, HR current=1 box=0, R current=1 box=0; Corey Seager: RBI current=1 box=0, BB current=1 box=0, SO current=1 box=2; Brandon Nimmo: AB current=4 box=3, 2B current=1 box=0, R current=0 box=1, SO current=1 box=0; Nicky Lopez: AB current=3 box=4, H current=1 box=0, SO current=0 box=1; Jake Burger: H current=1 box=2, RBI current=1 box=2, BB current=0 box=1, SO current=1 box=0; Evan Carter: AB current=3 box=4, H current=0 box=1, HR current=0 box=1, RBI current=0 box=2 | TEX |
| 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; 15/15 games; 6/6 causes; 6/6 sources
Six of seven manifest entries were loaded:
/app/output/reports/prediction_review_20260912.json, 377,165 bytes; official outcomes and scoring errors./app/output/reports/PREDICTION_SYSTEM_DEEP_AUDIT_20260912.json, 240,873 bytes; probability, provenance, starter, and decision contracts./app/output/learning/continuous_learning_daily_20260912.json, 2,581,062 bytes; pipeline-stage quality, calibration, probability lineage, score distribution, and starter comparisons./app/output/reports/detailed_20260912.html, 354,592 bytes; full game and simulation rendering./app/output/reports/20260912_ultra_detailed_player_audit.html, 34,118,143 bytes; player-level prediction trace./app/output/reports/audit_report_20260912.html, 1,868,598 bytes; invariant findings.The following manifest item is missing:
/app/output/reports/audit_report_20260912_integrity_revision.html; intended purpose: post-Luna remediation proof for immutable revision artifacts.This missing artifact is a receipt gap, but it is not itself evidence that the forecasts were altered. The game-level integrity audits report zero critical and error findings.
All 15 expected games were reviewed:
BAL@TOR, CHW@STL, CIN@MIL, CLE@MIN, COL@DET, HOU@TB, KC@BOS, LAA@WAS, LAD@MIA, NYM@NYY, PHI@ATL, PIT@CHC, SD@SF, SEA@OAK, TEX@ARI.
Coverage is complete at the structural level:
variance_applied to enhanced_prediction, but that recovery does not erase the intermediate winner-direction regressions.---
The slate was weak as a prediction product:
The headline is therefore: winner accuracy was barely above chance and below the validated baseline; calibration was poor and anti-predictive at high conviction; score accuracy was materially poor; starter projections were mixed; artifact integrity was mostly clean except for two unresolved probability-publication lineage failures and one missing revision-audit artifact.
A correct winner does not make the prediction good. Several correct calls had very large score errors, including:
The system selected the correct winner in 8 of 15 games. Four of seven losses were low-edge or toss-up decisions, but three were materially dangerous confidence failures:
The published confidence did not rank outcomes reliably. The four high-conviction games had only one winner hit: COL@DET was correct; LAD@MIA, CHW@STL, and TEX@ARI were misses.
Calibration was poor:
The register correctly labels this as a high model/process risk, not a critical contract failure. One slate is too small to redesign calibration confidently, but the cross-slate evidence has escalated the run-model and simulation findings; calibration instability itself has persisted for two consecutive slates and five occurrences in the 11-slate window.
Score prediction was the largest performance problem:
The validated run models explain very little holdout variance:
This is an established run-model weakness, not a one-game anomaly.
Starter performance was mixed and contributed directly to several misses:
The lever-tension evidence says pitcher reweighting would help six games and risk three, but the cross-slate register does not establish a persistent separable starter bias. The correct posture is bounded investigation, not an unrestricted pitcher-weight increase.
Artifact quality is mostly good:
However:
unexplained_probability_publication_deltascore_margin_compressionsingle_slate_calibration_instabilityweak_run_model_signalcomplete_slate_audit_coveragesimulation_inert_on_slate---
Notation: p is the published probability of the selected side; edge is the published home-minus-away confidence edge. Starter format is projected ER/ERA/outs → actual ER/ERA/outs. “Controls” includes governor, recency, and experience handling. Player actuals were unavailable on the entire slate.
variance_applied favored ATL, but enhanced prediction flipped to PHI. This intermediate winner-direction regression is not erased by the final score path.---
| Game | Earliest evidence/stage moving toward wrong result | Classification |
|---|---|---|
| CHW@STL | Historical/variance/enhanced path retained STL; final probability remained materially committed to STL | Bad weighting / winner-direction judgment; offense miss secondary |
| CLE@MIN | Enhanced prediction moved to CLE 6–5; Savant reduced MIN further and preserved CLE | Bad weighting plus starter/run-environment miss |
| LAA@WAS | Historical ML moved WAS to a tie, then variance/enhanced moved to LAA | Winner-direction regression at variance/enhanced stage; starter miss and variance |
| LAD@MIA | Historical/fundamental edges supported LAD; 0-ER Glasnow projection produced a large LAD score and probability advantage | Starter error, then wrong conviction |
| NYM@NYY | Season-quality adjustment maintained NYY; enhanced/Savant kept NYY 7–5 | Bad weighting and offense/bullpen/run miss |
| PHI@ATL | Variance stage favored ATL, then enhanced prediction flipped to PHI | Intermediate winner-direction regression; run-environment miss |
| TEX@ARI | Composite/season/pitcher evidence supported ARI, but Rocker/Pfaadt projections reinforced ARI | Starter projection error and wrong conviction |
The 0.12 home-away confidence edge in TEX@ARI is moderate, not a near coin flip and not a strong call. It should not be treated as equivalent to the 0.20 strong LAD@MIA edge, nor as evidence that the outcome was almost random.
| Stage | Winner accuracy | Team-run MAE | Total-run MAE | Interpretation |
|---|---|---|---|---|
| historical_ml | 8/15, 53.33% | 2.8836 | 4.1122 | Baseline |
| variance_applied | 7/15, 46.67% | 2.8333 | 3.9333 | Run MAE improved slightly, but winner direction regressed |
| enhanced_prediction | 8/15, 53.33% | 3.0333 | 4.4667 | Team-run MAE regressed +0.1497 versus baseline |
| embedded_savant_run_environment | 8/15 | 3.0000 | 4.2667 | Partial recovery in run MAE, no winner recovery |
| fundamental_edge_target_review | 8/15 | 3.0000 | 4.2667 | No additional change |
| capped_target | 8/15 | 3.0000 | 4.2667 | No additional change |
| simulation_result | 8/15 | 3.0000 | 4.2667 | No additional change |
| published_final | 8/15 | 3.0000 | 4.2667 | Same as simulation result |
historical_ml → variance_applied: LAA@WAS moved WAS → TIE; winner accuracy fell by one game. This is a regression even though total-run MAE improved.variance_applied → enhanced_prediction: LAA@WAS moved TIE → LAA and PHI@ATL moved ATL → PHI; PIT@CHC and SD@SF improved. Net winner accuracy recovered by one, but PHI@ATL was a direct regression.enhanced_prediction → embedded_savant_run_environment: no winner changes; run MAE improved modestly.The simulation did not intervene in winner direction on this slate. A later recovery in aggregate metrics does not erase LAA@WAS and PHI@ATL's intermediate winner regressions.
---
Lever: score.variance_multiplier / score.variance_floor
Lever: player.pitcher.v4 form weights / player.pitcher_prior_games
Lever: recent.* / season.* run-mean weighting
---
These artifact issues should not be conflated with the model's poor predictive performance. The available evidence says the forecast files themselves were structurally clean, while the probability lineage contract was incomplete.
The intended path is:
raw model → calibrated → governor → score coherence/recency → published.
A material bypass-like gap is present only where the recorded transformation is absent:
These are not yet proven governor bypasses. They are unexplained transformations requiring code-level lineage tracing.
The coverage matrix is complete, but the slate is not “clean”:
---
A single slate is noise; escalated findings are established patterns in this evidence.
high_raw_probability_cluster: consecutive-slate count 0; present now false. It occurred once in the 11-slate window and should not drive a persistent calibration change by itself.pipeline_winner_instability: consecutive-slate count 0; present now false. Incidence 3/11, but not currently streaking.score_margin_compression: consecutive-slate count 1; present now true; incidence 2/11. This is emerging and supported by the current slate.simulation_inert_on_slate: consecutive-slate count 11; present now true. Established failure pattern.single_slate_calibration_instability: consecutive-slate count 2; present now true; incidence 5/11. Persistent enough for a bounded shadow experiment, not a wholesale calibration redesign.weak_run_model_signal: consecutive-slate count 11; present now true. Established failure pattern.simulation.allow_score, with code/diagnostic action rather than a parameter move.training.xgb.n_estimators, training.xgb.max_depth, training.xgb.learning_rate are registered, but the finding is explicitly non-parameter-actionable.Every supplied trend is regressing:
The escalated simulation and run-model failures should not be dismissed as single-slate noise.
---
Recommendations are ranked by persistence, scope, expected metric benefit, and regression risk.
simulation.allow_score; however, the evidence says this is a code/diagnostic issue, not a safe parameter change.confidence.base_cap and confidence.moderate_cap.player.pitcher.v4 form weights or player.pitcher_prior_games.---
Do not promote the current slate or tune broad model weights. First run a diagnostic code fix/shadow for the simulation distribution and independently reconcile the two missing probability transformations. This is the safest next action because it addresses the strongest persistent process failure and the critical contract gap without making an unsupported live parameter change.