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_20260902.json | n/a |
| forensic deep audit | loaded | probability, provenance, starter and decision contracts | /app/output/reports/PREDICTION_SYSTEM_DEEP_AUDIT_20260902.json | n/a |
| continuous learning | loaded | pipeline-stage quality, calibration, probability lineage | /app/output/learning/continuous_learning_daily_20260902.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 1 game(s) have an unexplained ≥2pp calibrated-to-published delta | SF@PIT | 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 | artifact_integrity | Canonical artifact warning requires reconciliation structural audit totals: {'critical': 0, 'error': 0, 'warning': 2, 'info': 110} | slate-wide | Do thisFix the flagged stat or presentation contract before treating this slate as clean evidence. Don't concludeA warning flags a display or contract issue; it does not prove the model picked the wrong side. |
| HIGH | pipeline_stages | An intermediate stage materially degraded winner direction variance_applied → enhanced_prediction changed winner accuracy by -0.2667 (-4 hits) | DET@MIN, OAK@TEX, PHI@ARI, SEA@BOS, TOR@CLE | Do thisList the exact games whose winner flipped at this stage, and keep both the before-stage and after-stage picks in the trace. Don't concludeEven if a later stage recovers the pick, this unstable step is still a risk; do not treat it as harmless. |
| HIGH | score_distribution | Published margins are compressed relative to realized margins 15/15 predictions were ≤2 runs; 8/15 actual margins were ≥4; mean predicted margin 1.20 vs actual 4.27 | ATL@WAS, DET@MIN, NYM@TB, OAK@TEX, SD@CIN, SEA@BOS, TOR@CLE | 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.2100 across 15 games | ATL@WAS, BAL@COL, CHW@HOU, DET@MIN, MIA@KC, MIL@CHC, NYM@TB, NYY@LAA, OAK@TEX, PHI@ARI, SD@CIN, SEA@BOS, SF@PIT, STL@LAD, TOR@CLE | 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.0300/0.0214/0.0287 | ATL@WAS, BAL@COL, CHW@HOU, DET@MIN, MIA@KC, MIL@CHC, NYM@TB, NYY@LAA, OAK@TEX, PHI@ARI, SD@CIN, SEA@BOS, SF@PIT, STL@LAD, TOR@CLE | 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 | ATL@WAS, BAL@COL, CHW@HOU, DET@MIN, MIA@KC, MIL@CHC, NYM@TB, NYY@LAA, OAK@TEX, PHI@ARI, SD@CIN, SEA@BOS, SF@PIT, STL@LAD, TOR@CLE | Do thisKeep the per-game audit receipt in every report. Don't concludeFull audit coverage does not cancel the findings raised inside the audited games. |
| INFO | simulation | Simulation produced no winner-direction intervention on this slate flip candidates 0; published flips 0 | ATL@WAS, BAL@COL, CHW@HOU, DET@MIN, MIA@KC, MIL@CHC, NYM@TB, NYY@LAA, OAK@TEX, PHI@ARI, SD@CIN, SEA@BOS, SF@PIT, STL@LAD, TOR@CLE | 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 |
|---|---|---|---|---|
| score_margin_compression | 3 consecutive · 3 in window | score.variance_multiplier, score.variance_floor | widen run distributions | score_margin_compression has persisted 3 consecutive slates; this is no longer single-slate noise. Treat it as an actionable pattern and propose a bounded shadow experiment against a target lever. |
| simulation_inert_on_slate | 6 consecutive · 6 in window | simulation.allow_score | confirm the simulation module is running, not silently no-oping | simulation_inert_on_slate has persisted 6 consecutive slates; this is no longer single-slate noise. Treat it as an actionable pattern and raise the code/diagnostic action named; do not force a parameter move. |
| single_slate_calibration_instability | 3 consecutive · 5 in window | confidence.empirical_max_weight, confidence.base_cap, confidence.moderate_cap | increase empirical shrinkage | single_slate_calibration_instability has persisted 3 consecutive slates; this is no longer single-slate noise. Treat it as an actionable pattern and propose a bounded shadow experiment against a target lever. |
| weak_run_model_signal | 6 consecutive · 6 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 6 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 | 2/6 | no | param |
| pipeline_winner_instability | 1 | 3/6 | yes | code/diagnostic |
| score_margin_compression | 3 | 3/6 | yes | param |
| simulation_inert_on_slate | 6 | 6/6 | yes | code/diagnostic |
| single_slate_calibration_instability | 3 | 5/6 | yes | param |
| weak_run_model_signal | 6 | 6/6 | yes | code/diagnostic |
| Metric | Direction | Series (old → new) |
|---|---|---|
| winner_accuracy | regressing | [0.4667, 0.9412, 0.5, 0.6667, 0.4667, 0.3333] |
| weighted_calibration_error | flat | [0.2179, 0.3961, 0.0693, 0.1661, 0.2476, 0.21] |
| margin_bias | regressing | [-1.333, -1.882, -2.786, -3.5, -2.533, -3.067] |
| team_run_error_on_losses | regressing | [5.0, 3.0, 7.0, 8.25, 7.125, 6.4] |
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 | 11/15 | 73.3% | 2.939 | 4.011 | 3.878 |
| variance_applied | 9/15 | 60% | 2.933 | 4.133 | 3.733 |
| enhanced_prediction | 5/15 | 33.3% | 3.067 | 4 | 4.667 |
| embedded_savant_run_environment | 5/15 | 33.3% | 3.133 | 4.267 | 4.533 |
| fundamental_edge_target_review | 5/15 | 33.3% | 3.133 | 4.267 | 4.533 |
| capped_target | 5/15 | 33.3% | 3.133 | 4.267 | 4.533 |
| simulation_result | 5/15 | 33.3% | 3.133 | 4.267 | 4.533 |
| published_final | 5/15 | 33.3% | 3.133 | 4.267 | 4.533 |
| Transition | Δ accuracy | Δ hits | Δ team-run MAE | Δ margin MAE | Games whose winner/tie changed |
|---|---|---|---|---|---|
| historical_ml → variance_applied | -0.1333 | -2 | -0.0061 | -0.1444 | ATL@WAS: ATL → TIE; NYM@TB: TB → TIE; SF@PIT: SF → TIE; STL@LAD: LAD → TIE |
| variance_applied → enhanced_prediction | -0.2667 | -4 | 0.1334 | 0.9334 | ATL@WAS: TIE → ATL; DET@MIN: DET → MIN; NYM@TB: TIE → TB; OAK@TEX: OAK → TEX; PHI@ARI: ARI → PHI; SEA@BOS: SEA → BOS; SF@PIT: TIE → PIT; STL@LAD: TIE → LAD; TOR@CLE: TOR → CLE |
| enhanced_prediction → embedded_savant_run_environment | 0 | 0 | 0.0666 | -0.1334 | |
| embedded_savant_run_environment → fundamental_edge_target_review | 0 | 0 | 0 | 0 | |
| fundamental_edge_target_review → capped_target | 0 | 0 | 0 | 0 | |
| capped_target → simulation_result | 0 | 0 | 0 | 0 | |
| simulation_result → published_final | 0 | 0 | 0 | 0 |
All columns are pick-side probabilities, so away favorites are not accidentally compared using home-side semantics.
| Game | Outcome | Raw model | Calibrated | Governor | Score coherence | Published | Explanation |
|---|---|---|---|---|---|---|---|
| ATL@WAS | hit | 0.5085 | 0.5082 | 0.5082 | 0.5466 | 0.53 | score coherence followed by matchup-recency guardrail |
| BAL@COL | miss | 0.551 | 0.5499 | 0.5499 | 0.5675 | 0.5573 | score coherence followed by matchup-recency guardrail |
| CHW@HOU | hit | 0.5085 | 0.5082 | 0.5082 | 0.5466 | 0.53 | score coherence followed by matchup-recency guardrail |
| DET@MIN | miss | 0.6241 | 0.6196 | 0.6196 | 0.6023 | 0.5591 | score coherence followed by matchup-recency guardrail |
| MIA@KC | hit | 0.5469 | 0.5458 | 0.5458 | 0.5654 | 0.5556 | no recorded transformation explains the publication delta |
| MIL@CHC | hit | 0.5085 | 0.5082 | 0.5082 | 0.5466 | 0.5396 | score coherence followed by matchup-recency guardrail |
| NYM@TB | miss | 0.551 | 0.5499 | 0.5499 | 0.5675 | 0.5487 | published probability matches the calibrated/governed value |
| NYY@LAA | hit | 0.5803 | 0.5773 | 0.5773 | 0.5812 | 0.53 | score coherence followed by matchup-recency guardrail |
| OAK@TEX | miss | 0.628 | 0.6233 | 0.6233 | 0.6041 | 0.56 | score coherence followed by matchup-recency guardrail |
| PHI@ARI | miss | 0.5552 | 0.554 | 0.554 | 0.5695 | 0.5301 | score coherence followed by matchup-recency guardrail |
| SD@CIN | miss | 0.5714 | 0.5696 | 0.5696 | 0.5773 | 0.53 | score coherence followed by matchup-recency guardrail |
| SEA@BOS | miss | 0.5061 | 0.5059 | 0.5059 | 0.5454 | 0.5197 | score coherence followed by matchup-recency guardrail |
| SF@PIT | miss | 0.5228 | 0.5223 | 0.5223 | 0.5536 | 0.5456 | no recorded transformation explains the publication delta |
| STL@LAD | miss | 0.5943 | 0.591 | 0.591 | 0.588 | 0.53 | score coherence followed by matchup-recency guardrail |
| TOR@CLE | miss | 0.6456 | 0.6394 | 0.6394 | 0.6547 | 0.5838 | 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 | 7 | 6 | 2 | 15 | 0.72 | 0.3 |
no artifact on this slate records an applied trained winner blend (regenerate the slate to populate it)
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.39 over 3 slates (sign shared by 0.67 of them, z = -0.93).
starters beat their projection: the run model credits opposing offenses with more than they produced.
Hold: no change: this bias is not separable from slate-to-slate noise yet
2 of 3 slates share the sign, mean -0.39 +/- 0.41 standard error: not separable from noise
lineup runs actual minus projected
Mean -0.45 over 3 slates (sign shared by 1.00 of them, z = -2.04).
lineups scored below projection: the run environment is set too high.
Actionable: the total-runs projection is running hot; check the run environment before touching variance, and treat score.variance_floor only as the spread lever
Lever: score.variance_floor (default 2.75); watch total_run_mae, team_run_mae.
3 of 3 slates share the sign and the mean is 2.0 standard errors from zero
| Slate | Games | Winner acc | Mean starter ERA error | Mean lineup runs vs proj | Sides broke on pitching | Sides broke on offense |
|---|---|---|---|---|---|---|
| 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 | — | — | ||
| 20260901 | 15 | 0.467 | — | — | ||
| 20260831 | 12 | 0.667 | — | — | ||
| 20260830 | 14 | 0.500 | — | — | ||
| 20260829 | 17 | 0.941 | — | — | ||
| 20260828 | 15 | 0.467 | — | — |
Narrow predicted margins next to wide actual margins is the signature the score-variance tail is too tight.
| Game | Pred margin | Actual margin | Pred − actual |
|---|---|---|---|
| ATL@WAS | 1 | 9 | -8 |
| BAL@COL | 2 | 1 | 1 |
| CHW@HOU | 1 | 2 | -1 |
| DET@MIN | 1 | 5 | -4 |
| MIA@KC | 1 | 3 | -2 |
| MIL@CHC | 2 | 4 | -2 |
| NYM@TB | 1 | 6 | -5 |
| NYY@LAA | 2 | 3 | -1 |
| OAK@TEX | 1 | 7 | -6 |
| PHI@ARI | 1 | 1 | 0 |
| SD@CIN | 1 | 4 | -3 |
| SEA@BOS | 1 | 5 | -4 |
| SF@PIT | 1 | 1 | 0 |
| STL@LAD | 1 | 2 | -1 |
| TOR@CLE | 1 | 11 | -10 |
| Team | Starter | Projected | Actual | ER err |
|---|---|---|---|---|
| ATL | Grant Holmes | 2 ER / 15 outs | 0 ER / 9 outs | -2 |
| WAS | Brad Lord | 3 ER / 15 outs | 0 ER / 10 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: Brad Lord (WAS) posted 0.00 ERA vs projected 5.40 (0 ER in 10 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
Grant Holmes (ATL) threw 9 outs, 0 ER = 0 ERA against a projected 3.6 ERA (-3.6 ERA error)
Bullpen behind him: 0 ER over 3 outs.
The HOME lineup he faced produced 0 runs on 2 hits and 0 HR, against a projected 6 runs / 8 hits (-6 runs vs projection).
No individual hitter beat his projection by a meaningful margin.
Verdict: neither side broke materially - the result is closer to variance
HOME pitching
Brad Lord (WAS) threw 10 outs, 0 ER = 0 ERA against a projected 5.4 ERA (-5.4 ERA error)
Bullpen behind him: 0 ER over 0 outs.
The AWAY lineup he faced produced 9 runs on 11 hits and 2 HR, against a projected 4 runs / 9 hits (5 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)
| Team | Pitcher | Outs | ERA | ER | H | HR | BB | SO | Context (as-of) |
|---|---|---|---|---|---|---|---|---|---|
| ATL | Grant Holmes (Starter) | 9 / 15 | 0 / 3.6 (-3.60) | 0 / 2 | 0 / 2 | 0 / 2 | 0 / 1 | 1 / 4 | venue away: 2.98 vs 4.8 ERA (ok) · opp run factor 0.98 (strong) · 27 prior appearances this season |
| ATL | Didier Fuentes (Middle Reliever (High Leverage)) | 3 / 4 | 0 / 13.5 (-13.50) | 0 / 2 | 1 / 2 | 0 / 0 | 0 / 1 | 2 / 3 | |
| WAS | Brad Lord (Starter) | 10 / 15 | 0 / 5.4 (-5.40) | 0 / 3 | 2 / 4 | 0 / 0 | 1 / 1 | 6 / 5 | venue home: 3.38 vs 3.18 ERA (ok) · opp run factor 0.99 (strong) · 33 prior appearances this season |
Hitters: actual / projected (sorted by run impact vs projection)
| Team | Batter | AB | H | 2B | 3B | HR | RBI | R | BB | SO | Run impact | Season xwOBA | Signal |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ATL | Ronald Acuña Jr. (RF) | 5 / 5 | 3 / 1 | 0 / 0 | 0 / 0 | 1 / 0 | 3 / 1 | 2 / 1 | 0 / 1 | 1 / 1 | 1.54 | 0.362 elite | projection too low |
| ATL | Sean Murphy (C) | 4 / 4 | 2 / 1 | 0 / 1 | 0 / 0 | 1 / 0 | 4 / 0 | 2 / 0 | 1 / 0 | 1 / 1 | 1.42 | 0.275 weak | good day |
| WAS | James Wood (RF) | 4 / 5 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 0 / 1 | 0 / 1 | 1 / 1 | -1.26 | 0.417 elite | bad day |
| ATL | Matt Olson (1B) | 5 / 4 | 0 / 1 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 0 / 1 | 4 / 1 | -1.11 | 0.355 elite | bad day |
| WAS | Daylen Lile (LF) | 3 / 4 | 0 / 1 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 0 / 1 | 0 / 1 | -1.11 | 0.329 above average | bad day |
| ATL | Michael Harris II (CF) | 3 / 5 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 1 / 1 | 1 / 0 | 1 / 1 | -1.07 | 0.341 elite | bad day |
| WAS | Yohandy Morales (1B) | 3 / 5 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 0 / 2 | 0 / 0 | 1 / 2 | -0.93 | 0.398 elite | bad day |
| WAS | CJ Abrams (2B) | 4 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 0 / 1 | 1 / 1 | -0.8 | 0.328 above average | bad day |
| ATL | Mike Yastrzemski (LF) | 5 / 3 | 2 / 1 | 1 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 0 / 0 | 1 / 1 | 0.78 | 0.308 average | no signal |
| WAS | Keibert Ruiz (C) | 1 / 4 | 0 / 1 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | -0.78 | 0.286 below average | projection too high |
| ATL | Ha-Seong Kim (SS) | 3 / 3 | 1 / 1 | 1 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 1 / 0 | 0 / 1 | 0.64 | 0.216 weak | good day |
| ATL | Drake Baldwin (DH) | 4 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 1 / 1 | 1 / 1 | 1 / 1 | -0.47 | 0.367 elite | — |
| ATL | Austin Riley (3B) | 4 / 4 | 2 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 2 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0.47 | 0.298 below average | — |
| WAS | Abimelec Ortiz (DH) | 4 / 3 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | -0.47 | 0.294 below average | — |
| ATL | Ozzie Albies (2B) | 4 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 1 / 0 | 2 / 1 | 0.33 | 0.284 below average | — |
| WAS | Dylan Crews (CF) | 3 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 1 / 0 | 0 / 1 | -0.14 | 0.307 average | — |
| WAS | Andrés Chaparro (3B) | 2 / 3 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 1 / 0 | 1 / 1 | -0.14 | 0.354 elite | — |
| WAS | Nasim Nuñez (SS) | 3 / 3 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 0 | 0.267 weak | — |
| Signal | Home-away edge | Meaning |
|---|---|---|
| Season quality | -0.476 | positive favors home; negative favors away |
| Recent form | -0.098 | positive favors home; negative favors away |
| Starting-pitcher matchup | -0.013 | positive favors home; negative favors away |
| Composite | -0.494 | positive favors home; negative favors away |
| Stage | Away-home runs | Confidence | What changed |
|---|---|---|---|
| historical_ml | 5.18-4.52 | n/a | Base ML historical model prediction |
| variance_applied | 5-5 | n/a | Deterministic baseline target (variance factor 1.0) |
| enhanced_prediction | 5-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 | 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 | 5.18-4.52 | 5-5 | -0.66 | Deterministic baseline target (variance factor 1.0) |
| enhanced_prediction | 5-5 | 5-4 | 1 | Enhanced ML with recent form, H2H, low-score analysis (confidence shrunk by projected_margin_is_one_run, matchup_recency_guardrail) |
| embedded_savant_run_environment | 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 |
|---|---|---|---|---|
| ATL | Sean Murphy | batter / C | better | predicted_RBI 2.63 |
| ATL | Drake Baldwin | batter / DH | better | predicted_SO 2.07 |
| WAS | Yohandy Morales | batter / 1B | worse | predicted_R -2 |
| ATL | Michael Harris II | batter / CF | worse | predicted_AB -1.89 |
| WAS | James Wood | batter / RF | worse | predicted_SO 1.658 |
| ATL | Mike Yastrzemski | batter / LF | worse | predicted_AB 1.36 |
| WAS | Daylen Lile | batter / LF | worse | predicted_SO 1.209 |
| ATL | Matt Olson | batter / 1B | better | predicted_SO -1.087 |
| 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 | 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 | ATL model-prediction batting totals differ from final simulation box score (AB: current=36, sim=37; H: current=9, sim=10; 2B: current=2, sim=1; RBI: current=4, sim=5; R: current=4, sim=5; BB: current=3, sim=2; SO: current=9, sim=7; HBP: current=0, sim=1). | ATL |
| info | CURRENT_PLAYER_MATCH_BOX | ATL current finalized hitter lines are model predictions and differ from the simulation box score: Drake Baldwin: AB current=4 box=5, BB current=1 box=0, SO current=1 box=3; Ronald Acuña Jr.: H current=1 box=0, RBI current=1 box=0, R current=1 box=0, BB current=1 box=0; Ozzie Albies: H current=1 box=2, HR current=0 box=1, RBI current=0 box=1, R current=0 box=1; Matt Olson: H current=1 box=2, 2B current=1 box=0, RBI current=1 box=0, SO current=1 box=0; Michael Harris II: AB current=5 box=3, H current=1 box=2, HR current=1 box=0, RBI current=1 box=0; Sean Murphy: RBI current=0 box=3, R current=0 box=1, SO current=1 box=0; Mike Yastrzemski: AB current=3 box=4, H current=1 box=0, SO current=1 box=2; Ha-Seong Kim: AB current=3 box=4 | ATL |
| info | CURRENT_FINALIZED_MATCH_BOX | WAS model-prediction batting totals differ from final simulation box score (AB: current=35, sim=32; H: current=8, sim=5; 2B: current=2, sim=1; RBI: current=5, sim=4; R: current=6, sim=4; BB: current=3, sim=4; SO: current=9, sim=10). | WAS |
| info | CURRENT_PLAYER_MATCH_BOX | WAS current finalized hitter lines are model predictions and differ from the simulation box score: Dylan Crews: H current=1 box=0, R current=1 box=0, SO current=1 box=0; Abimelec Ortiz: HR current=0 box=1, RBI current=0 box=1, R current=0 box=1, BB current=0 box=1; CJ Abrams: AB current=4 box=3, RBI current=1 box=0, R current=1 box=0; Andrés Chaparro: 2B current=0 box=1, R current=0 box=1, BB current=0 box=1, SO current=1 box=0; Yohandy Morales: AB current=5 box=4, H current=1 box=0, HR current=1 box=0, RBI current=1 box=0; Keibert Ruiz: 2B current=1 box=0, RBI current=0 box=1, R current=0 box=1, SO current=0 box=1; Daylen Lile: H current=1 box=0, 2B current=1 box=0, RBI current=1 box=0, R current=1 box=0; Nasim Nuñez: BB current=0 box=1 | WAS |
| info | RECONCILIATION_PROPAGATION | No score_target_reconciliation step was used for this game. |
| Team | Starter | Projected | Actual | ER err |
|---|---|---|---|---|
| BAL | Trevor Rogers | 5 ER / 17 outs | 2 ER / 20 outs | -3 |
| COL | Tomoyuki Sugano | 3 ER / 14 outs | 3 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:
Starter miss: Trevor Rogers (BAL) posted 2.70 ERA vs projected 7.94 (2 ER in 20 outs); he faced a strong offense (opponent run factor 1.06, 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
Trevor Rogers (BAL) threw 20 outs, 2 ER = 2.7 ERA against a projected 7.94 ERA (-5.24 ERA error)
Bullpen behind him: 1 ER over 6 outs.
The HOME lineup he faced produced 6 runs on 10 hits and 0 HR, against a projected 4 runs / 8 hits (2 runs vs projection).
Who did the damage to him:
Verdict: offense: the lineup scored well below its projection
HOME pitching
Tomoyuki Sugano (COL) threw 18 outs, 3 ER = 4.5 ERA against a projected 5.79 ERA (-1.29 ERA error)
Bullpen behind him: 0 ER over 4 outs.
The AWAY lineup he faced produced 4 runs on 10 hits and 0 HR, against a projected 6 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)
| Team | Pitcher | Outs | ERA | ER | H | HR | BB | SO | Context (as-of) |
|---|---|---|---|---|---|---|---|---|---|
| BAL | Trevor Rogers (Starter) | 20 / 17 | 2.7 / 7.94 (-5.24) | 2 / 5 | 6 / 5 | 0 / 4 | 0 / 1 | 11 / 4 | venue away: 4.53 vs 4.05 ERA (ok) · opp run factor 1.06 (average) · 25 prior appearances this season |
| BAL | Andrew Kittredge (Closer) | 2 / 3 | 13.5 / 0 (+13.50) | 1 / 0 | 2 / 1 | 0 / 0 | 0 / 0 | 1 / 1 | |
| BAL | Rico Garcia (Middle Reliever (High Leverage)) | 3 / 5 | 0 / 0 | 0 / 0 | 1 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | |
| BAL | Yennier Cano (Setup Man) | 1 / 2 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | |
| COL | Tomoyuki Sugano (Starter) | 18 / 14 | 4.5 / 5.79 | 3 / 3 | 6 / 4 | 0 / 2 | 1 / 1 | 4 / 3 | venue home: 5 vs 5.46 ERA (ok) · opp run factor 0.98 (average) · 24 prior appearances this season |
| COL | Jimmy Herget (Middle Reliever (High Leverage)) | 4 / 7 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 2 | 1 / 0 |
Hitters: actual / projected (sorted by run impact vs projection)
| Team | Batter | AB | H | 2B | 3B | HR | RBI | R | BB | SO | Run impact | Season xwOBA | Signal |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| COL | Jake McCarthy (LF) | 4 / 5 | 2 / 1 | 1 / 1 | 1 / 0 | 0 / 0 | 1 / 1 | 0 / 1 | 1 / 0 | 1 / 1 | 1.42 | 0.319 average | no signal |
| BAL | Luis Robert Jr. (LF) | 5 / 5 | 1 / 1 | 1 / 0 | 0 / 0 | 0 / 1 | 2 / 1 | 1 / 1 | 0 / 1 | 1 / 1 | -0.95 | 0.321 above average | bad day |
| BAL | Blaze Alexander (2B) | 5 / 3 | 3 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 1 / 1 | 0 / 0 | 0 / 1 | 0.94 | 0.356 elite | projection too low |
| BAL | Samuel Basallo (C) | 4 / 3 | 1 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 0 / 0 | 1 / 0 | 0 / 1 | 0.8 | 0.322 above average | projection too low |
| COL | Cole Carrigg (CF) | 5 / 4 | 3 / 1 | 1 / 1 | 0 / 0 | 0 / 0 | 1 / 1 | 1 / 1 | 0 / 1 | 1 / 1 | 0.61 | 0.323 above average | projection too low |
| BAL | Jackson Holliday (DH) | 6 / 3 | 2 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 0 / 0 | 2 / 1 | 0.47 | 0.303 below average | — |
| BAL | Gunnar Henderson (SS) | 4 / 5 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 1 / 1 | 2 / 1 | -0.47 | 0.316 average | — |
| BAL | Colton Cowser (CF) | 5 / 3 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 2 / 1 | -0.47 | 0.321 above average | — |
| COL | Connor Norby (3B) | 5 / 3 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 0 / 0 | 2 / 1 | -0.47 | 0.301 below average | — |
| COL | Jordan Beck (RF) | 3 / 3 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 2 / 1 | -0.47 | 0.243 weak | — |
| COL | Ryan Ritter (2B) | 2 / 3 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 2 / 1 | -0.47 | 0.21 weak | — |
| BAL | Dylan Beavers (RF) | 5 / 3 | 1 / 1 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | -0.31 | 0.304 below average | — |
| COL | Hunter Goodman (C) | 5 / 5 | 1 / 1 | 1 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 1 / 1 | 0 / 0 | 3 / 1 | 0.31 | 0.324 above average | — |
| COL | Adael Amador (DH) | 4 / 3 | 2 / 1 | 1 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 2 / 1 | 1 / 1 | 0 / 1 | -0.15 | 0.261 weak | — |
| COL | TJ Rumfield (1B) | 5 / 4 | 2 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 1 / 0 | 0 / 1 | 1 / 1 | 0.14 | 0.334 above average | — |
| BAL | Coby Mayo (3B) | 3 / 3 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 0 / 0 | 0 / 1 | 0 | 0.319 average | — |
| BAL | Pete Alonso (1B) | 4 / 5 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 1 / 1 | 1 / 1 | 0 / 1 | 0 | 0.392 elite | — |
| COL | Ezequiel Tovar (SS) | 2 / 3 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 2 / 1 | 0 | 0.278 weak | — |
| Signal | Home-away edge | Meaning |
|---|---|---|
| Season quality | -0.952 | positive favors home; negative favors away |
| Recent form | -0.768 | positive favors home; negative favors away |
| Starting-pitcher matchup | 0.085 | positive favors home; negative favors away |
| Composite | -0.888 | positive favors home; negative favors away |
| Stage | Away-home runs | Confidence | What changed |
|---|---|---|---|
| historical_ml | 5.84-3.65 | n/a | Base ML historical model prediction |
| variance_applied | 6-4 | n/a | Deterministic baseline target (variance factor 1.0) |
| enhanced_prediction | 6-5 | 0.557 | Enhanced ML with recent form, H2H, low-score analysis (confidence shrunk by matchup_recency_guardrail) |
| embedded_savant_run_environment | 7-5 | n/a | Target score adjusted by temporal Savant lineup quality versus opposing starter quality |
| fundamental_edge_target_review | 7-5 | n/a | Refreshed score target and win probability after Savant/pitcher/team-strength adjustments |
| capped_target | 7-5 | n/a | Capped at max 12 realistic runs |
| simulation_result | 7-5 | n/a | Final inning-by-inning simulation result |
| Stage | Before | After | Toward final pick | What changed |
|---|---|---|---|---|
| variance_applied | 5.84-3.65 | 6-4 | -0.192 | Deterministic baseline target (variance factor 1.0) |
| enhanced_prediction | 6-4 | 6-5 | -1 | Enhanced ML with recent form, H2H, low-score analysis (confidence shrunk by matchup_recency_guardrail) |
| embedded_savant_run_environment | 6-5 | 7-5 | 1 | Target score adjusted by temporal Savant lineup quality versus opposing starter quality |
| fundamental_edge_target_review | 7-5 | 7-5 | -0 | Refreshed score target and win probability after Savant/pitcher/team-strength adjustments |
| capped_target | 7-5 | 7-5 | -0 | Capped at max 12 realistic runs |
| simulation_result | 7-5 | 7-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 |
|---|---|---|---|---|
| BAL | Coby Mayo | batter / 3B | better | predicted_RBI 2.36 |
| BAL | Luis Robert Jr. | batter / LF | better | predicted_BB 1.618 |
| COL | Jake McCarthy | batter / LF | worse | predicted_AB -1.57 |
| BAL | Samuel Basallo | batter / C | better | predicted_RBI 1.51 |
| COL | Adael Amador | batter / DH | worse | predicted_AB 1.5 |
| COL | Jimmy Herget | pitcher / Middle Reliever (High Leverage) | better | predicted_IP 1.1 |
| BAL | Colton Cowser | batter / CF | worse | predicted_AB 1.09 |
| COL | TJ Rumfield | batter / 1B | better | predicted_H 1.08 |
| 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 | 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_FINALIZED_MATCH_BOX | BAL model-prediction batting totals differ from final simulation box score (AB: current=33, sim=34; H: current=8, sim=7; 2B: current=1, sim=2; HR: current=1, sim=2; RBI: current=5, sim=7; R: current=6, sim=7; BB: current=3, sim=5; SO: current=9, sim=4). | BAL |
| info | CURRENT_PLAYER_MATCH_BOX | BAL current finalized hitter lines are model predictions and differ from the simulation box score: Jackson Holliday: AB current=3 box=4, BB current=0 box=1, SO current=1 box=0; Luis Robert Jr.: AB current=5 box=2, BB current=1 box=2; Samuel Basallo: H current=0 box=1, HR current=0 box=1, RBI current=1 box=2, R current=0 box=1; Coby Mayo: AB current=3 box=4, 2B current=0 box=1, RBI current=1 box=3; Blaze Alexander: AB current=3 box=4, SO current=1 box=0; Gunnar Henderson: BB current=1 box=0, SO current=1 box=0; Pete Alonso: AB current=5 box=4, 2B current=0 box=1, RBI current=1 box=0; Dylan Beavers: AB current=3 box=4, H current=1 box=0, 2B current=1 box=0, SO current=1 box=0 | BAL |
| info | CURRENT_FINALIZED_MATCH_BOX | COL model-prediction batting totals differ from final simulation box score (H: current=8, sim=6; 2B: current=2, sim=1; HR: current=1, sim=4; R: current=4, sim=5; BB: current=3, sim=1; SO: current=9, sim=6). | 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=3 box=4, H current=1 box=0; Cole Carrigg: H current=1 box=0, 2B current=1 box=0, RBI current=1 box=0, R current=1 box=0; Jordan Beck: H current=1 box=0, BB current=0 box=1; Adael Amador: AB current=3 box=4, RBI current=1 box=2, BB current=1 box=0; Ryan Ritter: R current=0 box=1, SO current=1 box=0; Hunter Goodman: AB current=5 box=4, HR current=0 box=1; Jake McCarthy: AB current=5 box=4, 2B current=1 box=0, HR current=0 box=1; TJ Rumfield: H current=1 box=2, 2B current=0 box=1, HR current=0 box=1, R current=0 box=1 | COL |
| info | RECONCILIATION_PROPAGATION | No score_target_reconciliation step was used for this game. |
| Team | Starter | Projected | Actual | ER err |
|---|---|---|---|---|
| CHW | Davis Martin | 5 ER / 15 outs | 0 ER / 17 outs | -5 |
| HOU | Hayden Wesneski | 3 ER / 16 outs | 0 ER / 21 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: Davis Martin (CHW) posted 0.00 ERA vs projected 9.00 (0 ER in 17 outs); he is materially worse pitching away (5.32 ERA there vs 3.20 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
Davis Martin (CHW) threw 17 outs, 0 ER = 0 ERA against a projected 9 ERA (-9 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 4 runs / 7 hits (-2 runs vs projection).
Who did the damage to him:
Verdict: offense: the lineup scored well below its projection
HOME pitching
Hayden Wesneski (HOU) threw 21 outs, 0 ER = 0 ERA against a projected 5.06 ERA (-5.06 ERA error) only 6 prior appearances in the covered season - the projection had little of his own record to stand on
Bullpen behind him: 0 ER over 3 outs.
The AWAY lineup he faced produced 0 runs on 3 hits and 0 HR, against a projected 5 runs / 8 hits (-5 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)
| Team | Pitcher | Outs | ERA | ER | H | HR | BB | SO | Context (as-of) |
|---|---|---|---|---|---|---|---|---|---|
| CHW | Davis Martin (Starter) | 17 / 15 | 0 / 9 (-9.00) | 0 / 5 | 5 / 4 | 0 / 1 | 1 / 3 | 3 / 7 | venue away: 5.32 vs 3.2 ERA (worse here) · opp run factor 1.09 (average) · 24 prior appearances this season |
| HOU | Hayden Wesneski (Starter) | 21 / 16 | 0 / 5.06 (-5.06) | 0 / 3 | 1 / 5 | 0 / 1 | 2 / 1 | 5 / 3 | venue home: 4.2 vs 3.57 ERA (worse here) · opp run factor 0.99 (average) · 6 prior appearances this season |
| HOU | Josh Hader (Closer) | 3 / 3 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 |
Hitters: actual / projected (sorted by run impact vs projection)
| Team | Batter | AB | H | 2B | 3B | HR | RBI | R | BB | SO | Run impact | Season xwOBA | Signal |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| CHW | Munetaka Murakami (1B) | 4 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 0 / 1 | 0 / 1 | 1 / 2 | -1.26 | 0.35 elite | bad day |
| CHW | Chase Meidroth (2B) | 3 / 4 | 0 / 1 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 0 / 1 | -1.11 | 0.292 below average | projection too high |
| CHW | Tristan Peters (CF) | 3 / 3 | 2 / 1 | 0 / 0 | 1 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 1.09 | 0.319 average | no signal |
| CHW | Miguel Vargas (3B) | 4 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 0 / 1 | 1 / 1 | -0.8 | 0.386 elite | bad day |
| CHW | Andrew Benintendi (DH) | 3 / 4 | 0 / 1 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | -0.78 | 0.31 average | no signal |
| HOU | Yordan Alvarez (DH) | 4 / 4 | 2 / 1 | 1 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 0 / 1 | 0 / 1 | 0 / 1 | -0.48 | 0.45 elite | — |
| CHW | Braden Montgomery (RF) | 2 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 1 / 1 | 0 / 1 | -0.47 | 0.329 above average | — |
| CHW | Colson Montgomery (SS) | 3 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 0 / 0 | 1 / 1 | -0.47 | 0.307 average | — |
| HOU | Taylor Trammell (LF) | 2 / 3 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | -0.47 | 0.285 below average | — |
| HOU | Jose Altuve (2B) | 3 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 0 / 0 | 0 / 1 | -0.47 | 0.272 weak | — |
| CHW | Drew Romo (C) | 2 / 3 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 1 / 1 | 0.33 | 0.262 weak | — |
| HOU | LaMonte Wade Jr. (1B) | 2 / 3 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 0 / 1 | 0 / 1 | -0.33 | 0.278 weak | — |
| HOU | Daulton Varsho (CF) | 3 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 1 / 1 | 0.33 | 0.292 below average | — |
| HOU | Cam Smith (RF) | 3 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 2 / 1 | 0.33 | 0.319 average | — |
| HOU | Jeremy Peña (SS) | 4 / 4 | 1 / 1 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 0 / 0 | 0 / 1 | -0.31 | 0.326 above average | — |
| CHW | Sam Antonacci (LF) | 3 / 3 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 1 / 0 | 0 / 0 | -0.14 | 0.342 elite | — |
| HOU | Isaac Paredes (3B) | 3 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 1 / 1 | 1 / 1 | 0 / 0 | 0 | 0.32 average | — |
| HOU | Christian Vázquez (C) | 3 / 3 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 | 0.238 weak | — |
| Signal | Home-away edge | Meaning |
|---|---|---|
| Season quality | -0.484 | positive favors home; negative favors away |
| Recent form | -0.05 | positive favors home; negative favors away |
| Starting-pitcher matchup | 0.103 | positive favors home; negative favors away |
| Composite | 0.127 | positive favors home; negative favors away |
| Stage | Away-home runs | Confidence | What changed |
|---|---|---|---|
| historical_ml | 4.01-5.14 | 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.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 | 5-6 | n/a | Target score adjusted by temporal Savant lineup quality versus opposing starter quality |
| fundamental_edge_target_review | 5-6 | n/a | Refreshed score target and win probability after Savant/pitcher/team-strength adjustments |
| capped_target | 5-6 | n/a | Capped at max 12 realistic runs |
| simulation_result | 5-6 | n/a | Final inning-by-inning simulation result |
| Stage | Before | After | Toward final pick | What changed |
|---|---|---|---|---|
| variance_applied | 4.01-5.14 | 4-5 | -0.13 | Deterministic baseline target (variance factor 1.0) |
| enhanced_prediction | 4-5 | 5-6 | 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 | 5-6 | 5-6 | 0 | Target score adjusted by temporal Savant lineup quality versus opposing starter quality |
| fundamental_edge_target_review | 5-6 | 5-6 | 0 | Refreshed score target and win probability after Savant/pitcher/team-strength adjustments |
| capped_target | 5-6 | 5-6 | 0 | Capped at max 12 realistic runs |
| simulation_result | 5-6 | 5-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 |
|---|---|---|---|---|
| HOU | Yordan Alvarez | batter / DH | better | predicted_RBI 2.36 |
| HOU | Jeremy Peña | batter / SS | worse | predicted_SO 2.034 |
| HOU | LaMonte Wade Jr. | batter / 1B | better | predicted_BB 1.59 |
| CHW | Sam Antonacci | batter / LF | better | predicted_AB 1.538 |
| CHW | Munetaka Murakami | batter / 1B | better | predicted_SO -1.485 |
| CHW | Andrew Benintendi | batter / DH | worse | predicted_AB 1.35 |
| HOU | Jose Altuve | batter / 2B | worse | predicted_AB -1.28 |
| HOU | Daulton Varsho | batter / CF | worse | predicted_AB -1.24 |
| Severity | Rule | Finding | Subject |
|---|---|---|---|
| info | CURRENT_PITCHER_DUPLICATION | CHW pitcher list appears in both predicted_performance.pitchers and player_predictions_by_position.pitchers; IDs match and were de-duplicated in this audit. | CHW |
| info | CURRENT_PITCHER_DUPLICATION | HOU pitcher list appears in both predicted_performance.pitchers and player_predictions_by_position.pitchers; IDs match and were de-duplicated in this audit. | HOU |
| info | CURRENT_FINALIZED_MATCH_BOX | CHW model pitcher projections differ from final simulation pitching box score (H: current=7, sim=9). | CHW |
| info | CURRENT_FINALIZED_MATCH_BOX | CHW model-prediction batting totals differ from final simulation box score (AB: current=33, sim=35; H: current=8, sim=9; HR: current=1, sim=2; SO: current=8, sim=5; SF: current=0, sim=1). | CHW |
| info | CURRENT_PLAYER_MATCH_BOX | CHW current finalized hitter lines are model predictions and differ from the simulation box score: Sam Antonacci: AB current=3 box=5, H current=1 box=2, RBI current=0 box=1; Munetaka Murakami: AB current=4 box=3, 2B current=0 box=1, HR current=1 box=0, SO current=2 box=0; Braden Montgomery: BB current=1 box=0; Miguel Vargas: H current=1 box=0, RBI current=1 box=0, R current=1 box=0; Andrew Benintendi: AB current=4 box=5, 2B current=1 box=0, RBI current=1 box=0, SO current=1 box=0; Chase Meidroth: AB current=4 box=3, H current=1 box=0, 2B current=1 box=0, R current=1 box=0; Colson Montgomery: H current=1 box=2, HR current=0 box=1, R current=0 box=1; Drew Romo: H current=0 box=1, 2B current=0 box=1, BB current=0 box=1 | CHW |
| info | CURRENT_FINALIZED_MATCH_BOX | HOU model-prediction batting totals differ from final simulation box score (H: current=7, sim=9; 2B: current=1, sim=6; RBI: current=4, sim=6; R: current=4, sim=6; BB: current=3, sim=5; SO: current=8, sim=11; 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: Jeremy Peña: H current=1 box=0, 2B current=1 box=0, RBI current=1 box=0, R current=1 box=0; Isaac Paredes: H current=1 box=2, 2B current=0 box=1; Taylor Trammell: AB current=3 box=4, 2B current=0 box=1, R current=0 box=1, SO current=1 box=2; Jose Altuve: AB current=4 box=3, 2B current=0 box=1, SO current=1 box=2, HBP current=0 box=1; Yordan Alvarez: AB current=4 box=5, H current=1 box=2, 2B current=0 box=1, RBI current=1 box=3; LaMonte Wade Jr.: AB current=3 box=2, H current=0 box=1, 2B current=0 box=1, R current=0 box=1; Daulton Varsho: AB current=4 box=3, RBI current=0 box=1, R current=0 box=1, BB current=0 box=1; Christian Vázquez: AB current=3 box=4 | HOU |
| info | RECONCILIATION_PROPAGATION | No score_target_reconciliation step was used for this game. |
| Team | Starter | Projected | Actual | ER err |
|---|---|---|---|---|
| DET | Drew Anderson | 4 ER / 13 outs | 1 ER / 17 outs | -3 |
| MIN | Dean Kremer | 2 ER / 15 outs | 4 ER / 12 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: Drew Anderson (DET) posted 1.59 ERA vs projected 8.31 (1 ER in 17 outs); he is materially worse pitching away (3.18 ERA there vs 1.96 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
Drew Anderson (DET) threw 17 outs, 1 ER = 1.59 ERA against a projected 8.31 ERA (-6.72 ERA error)
Bullpen behind him: 0 ER over 14 outs.
The HOME lineup he faced produced 5 runs on 9 hits and 0 HR, against a projected 5 runs / 9 hits (0 runs vs projection).
Who did the damage to him:
Verdict: neither side broke materially - the result is closer to variance
HOME pitching
Dean Kremer (MIN) threw 12 outs, 4 ER = 9 ERA against a projected 3.6 ERA (5.4 ERA error)
Bullpen behind him: 0 ER over 12 outs.
The AWAY lineup he faced produced 8 runs on 10 hits and 0 HR, against a projected 4 runs / 7 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
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)
| Team | Pitcher | Outs | ERA | ER | H | HR | BB | SO | Context (as-of) |
|---|---|---|---|---|---|---|---|---|---|
| DET | Drew Anderson (Starter) | 17 / 13 | 1.59 / 8.31 (-6.72) | 1 / 4 | 3 / 6 | 0 / 2 | 2 / 3 | 5 / 2 | venue away: 3.18 vs 1.96 ERA (worse here) · opp run factor 1.01 (average) · 45 prior appearances this season |
| DET | Jacob Waguespack (Middle Reliever (High Leverage)) | 4 / 3 | 0 / 9 (-9.00) | 0 / 1 | 0 / 3 | 0 / 0 | 1 / 0 | 1 / 0 | |
| DET | Kyle Finnegan (Middle Reliever (High Leverage)) | 6 / 3 | 0 / 0 | 0 / 0 | 2 / 0 | 0 / 0 | 0 / 0 | 3 / 0 | |
| DET | Tyler Holton (Setup Man) | 3 / 3 | 0 / 0 | 0 / 0 | 1 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | |
| DET | Kenley Jansen (Closer) | 1 / 2 | 0 / 0 | 0 / 0 | 1 / 0 | 0 / 0 | 1 / 0 | 1 / 1 | |
| MIN | Dean Kremer (Starter) | 12 / 15 | 9 / 3.6 (+5.40) | 4 / 2 | 6 / 7 | 0 / 0 | 2 / 2 | 5 / 5 | venue home: 4.73 vs 6.53 ERA (ok) · opp run factor 1.04 (average) · 12 prior appearances this season |
| MIN | A.J. Minter (Middle Reliever (High Leverage)) | 4 / 3 | 0 / 0 | 0 / 0 | 1 / 0 | 0 / 0 | 0 / 1 | 1 / 0 | |
| MIN | Yoendrys Gómez (Closer) | 5 / 3 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 1 / 1 | |
| MIN | Jeff Hoffman (Setup Man) | 3 / 3 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 3 / 1 |
Hitters: actual / projected (sorted by run impact vs projection)
| Team | Batter | AB | H | 2B | 3B | HR | RBI | R | BB | SO | Run impact | Season xwOBA | Signal |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| DET | Max Clark (CF) | 4 / 4 | 3 / 1 | 3 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 3 / 0 | 2 / 0 | 0 / 1 | 2.53 | 0.321 above average | projection too low |
| DET | Eduardo Valencia (C) | 6 / 3 | 2 / 0 | 1 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 0 / 0 | 2 / 1 | 1.25 | 0.318 average | no signal |
| DET | John Peck (SS) | 5 / 4 | 2 / 0 | 1 / 0 | 0 / 0 | 0 / 0 | 3 / 0 | 1 / 0 | 0 / 0 | 1 / 1 | 1.25 | 0.379 elite | projection too low |
| MIN | Kody Clemens (2B) | 4 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 2 / 1 | 1 / 0 | 1 / 1 | -1.07 | 0.341 elite | bad day |
| MIN | Ryan Jeffers (C) | 6 / 4 | 1 / 1 | 1 / 0 | 0 / 0 | 0 / 1 | 1 / 1 | 1 / 1 | 0 / 1 | 1 / 0 | -0.95 | 0.356 elite | bad day |
| MIN | Brooks Lee (3B) | 6 / 4 | 3 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 1 / 0 | 0 / 0 | 0 / 1 | 0.94 | 0.274 weak | good day |
| DET | Kevin McGonigle (3B) | 6 / 4 | 0 / 1 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 1 / 1 | 1 / 1 | 1 / 1 | -0.78 | 0.35 elite | bad day |
| MIN | Walker Jenkins (CF) | 4 / 4 | 0 / 1 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 1 / 1 | 3 / 0 | -0.78 | 0.253 weak | projection too high |
| MIN | Luke Keaschall (RF) | 4 / 4 | 1 / 1 | 0 / 1 | 0 / 0 | 0 / 0 | 1 / 0 | 0 / 1 | 0 / 1 | 1 / 1 | -0.64 | 0.315 average | no signal |
| DET | Hao-Yu Lee (2B) | 5 / 3 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 1 / 1 | 2 / 1 | 1 / 0 | 2 / 1 | -0.6 | 0.301 below average | projection too high |
| DET | Brett Callahan (LF) | 2 / 3 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 2 / 1 | -0.47 | 0.342 elite | — |
| DET | Zach McKinstry (RF) | 4 / 3 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | -0.47 | 0.282 weak | — |
| MIN | Josh Bell (DH) | 4 / 4 | 2 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 1 / 1 | 0.47 | 0.333 above average | — |
| MIN | Kaelen Culpepper (SS) | 5 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 1 / 0 | 0 / 0 | 2 / 1 | -0.47 | 0.32 average | — |
| DET | Colt Keith (1B) | 2 / 3 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | -0.33 | 0.335 above average | — |
| DET | Riley Greene (DH) | 6 / 4 | 1 / 1 | 1 / 1 | 0 / 0 | 0 / 0 | 1 / 1 | 0 / 1 | 0 / 1 | 3 / 1 | -0.33 | 0.367 elite | — |
| MIN | Trevor Larnach (LF) | 3 / 3 | 1 / 1 | 1 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0.31 | 0.329 above average | — |
| MIN | Royce Lewis (1B) | 6 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 2 / 1 | 0 / 0 | 0 / 0 | 3 / 1 | 0 | 0.316 average | — |
| Signal | Home-away edge | Meaning |
|---|---|---|
| Season quality | 0.002 | positive favors home; negative favors away |
| Recent form | 1.01 | positive favors home; negative favors away |
| Starting-pitcher matchup | -0.033 | positive favors home; negative favors away |
| Composite | 0.362 | positive favors home; negative favors away |
| Stage | Away-home runs | Confidence | What changed |
|---|---|---|---|
| historical_ml | 5.43-3.35 | n/a | Base ML historical model prediction |
| variance_applied | 5-3 | 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 winner_starter_is_below_average, 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 | 5.43-3.35 | 5-3 | 0.077 | Deterministic baseline target (variance factor 1.0) |
| enhanced_prediction | 5-3 | 4-5 | 3 | Enhanced ML with recent form, H2H, low-score analysis (confidence shrunk by winner_starter_is_below_average, 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 |
|---|---|---|---|---|
| MIN | Kody Clemens | batter / 2B | better | predicted_RBI 3.421 |
| DET | Eduardo Valencia | batter / C | boosted | predicted_H 2.64 |
| DET | Hao-Yu Lee | batter / 2B | worse | predicted_AB 1.69 |
| DET | Riley Greene | batter / DH | worse | predicted_BB 1.474 |
| DET | John Peck | batter / SS | worse | predicted_H 1.47 |
| MIN | Ryan Jeffers | batter / C | worse | predicted_AB -1.46 |
| MIN | Kaelen Culpepper | batter / SS | worse | predicted_H -1.25 |
| DET | Colt Keith | batter / 1B | worse | predicted_AB 1.138 |
| Severity | Rule | Finding | Subject |
|---|---|---|---|
| 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_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 | DET model-prediction batting totals differ from final simulation box score (AB: current=31, sim=35; H: current=7, sim=8; 2B: current=2, sim=0; 3B: current=0, sim=1; RBI: current=3, sim=4; BB: current=3, sim=4; SO: current=8, sim=10; 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: 2B current=1 box=0, RBI current=1 box=0; Colt Keith: AB current=3 box=4, H current=1 box=0; Riley Greene: AB current=4 box=3, H current=1 box=0, 2B current=1 box=0, RBI current=1 box=0; Eduardo Valencia: AB current=3 box=4, H current=0 box=3, HR current=0 box=1, RBI current=0 box=2; Brett Callahan: H current=1 box=0, HBP current=0 box=1; John Peck: H current=0 box=2, RBI current=0 box=1, R current=0 box=1; Zach McKinstry: AB current=3 box=4, H current=1 box=0, SO current=0 box=1; Max Clark: 3B current=0 box=1, RBI current=0 box=1, R current=0 box=1, SO current=1 box=2 | DET |
| info | CURRENT_FINALIZED_MATCH_BOX | MIN model-prediction batting totals differ from final simulation box score (AB: current=35, sim=34; SO: current=6, sim=4). | MIN |
| info | CURRENT_PLAYER_MATCH_BOX | MIN current finalized hitter lines are model predictions and differ from the simulation box score: Luke Keaschall: 2B current=1 box=0, RBI current=0 box=1; Kody Clemens: H current=1 box=2, HR current=1 box=2, RBI current=1 box=4, SO current=1 box=0; Ryan Jeffers: AB current=4 box=3, H current=1 box=0, HR current=1 box=0, RBI current=1 box=0; Brooks Lee: H current=1 box=2, RBI current=1 box=0, R current=0 box=1, SO current=1 box=0; Trevor Larnach: H current=1 box=0, BB current=0 box=1, SO current=0 box=1; Josh Bell: 2B current=0 box=1, SO current=1 box=0; Kaelen Culpepper: H current=1 box=0, RBI current=1 box=0, SO current=1 box=0; Royce Lewis: H current=1 box=2, 2B current=0 box=1, RBI current=1 box=0, R current=0 box=1 | MIN |
| info | RECONCILIATION_PROPAGATION | No score_target_reconciliation step was used for this game. |
| Team | Starter | Projected | Actual | ER err |
|---|---|---|---|---|
| MIA | Eury Pérez | 2 ER / 16 outs | 6 ER / 14 outs | 4 |
| KC | Noah Cameron | 0 ER / 19 outs | 4 ER / 15 outs | 4 |
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: Eury Pérez (MIA) posted 11.57 ERA vs projected 3.38 (6 ER in 14 outs); he is materially worse pitching away (4.05 ERA there vs 2.81 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
Eury Pérez (MIA) threw 14 outs, 6 ER = 11.57 ERA against a projected 3.38 ERA (8.19 ERA error)
Bullpen behind him: 0 ER over 6 outs.
The HOME lineup he faced produced 6 runs on 9 hits and 3 HR, against a projected 4 runs / 9 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
Noah Cameron (KC) threw 15 outs, 4 ER = 7.2 ERA against a projected 0 ERA (7.2 ERA error)
Bullpen behind him: 2 ER over 6 outs.
The AWAY lineup he faced produced 8 runs on 11 hits and 3 HR, against a projected 5 runs / 7 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)
| Team | Pitcher | Outs | ERA | ER | H | HR | BB | SO | Context (as-of) |
|---|---|---|---|---|---|---|---|---|---|
| MIA | Eury Pérez (Starter) | 14 / 16 | 11.57 / 3.38 (+8.19) | 6 / 2 | 9 / 2 | 3 / 2 | 3 / 0 | 3 / 7 | venue away: 4.05 vs 2.81 ERA (worse here) · opp run factor 0.93 (weak) · 24 prior appearances this season |
| MIA | Calvin Faucher (Closer) | 3 / 3 | 0 / 9 (-9.00) | 0 / 1 | 0 / 1 | 0 / 1 | 0 / 0 | 0 / 0 | |
| MIA | Michael Petersen (Middle Reliever (High Leverage)) | 3 / 3 | 0 / 9 (-9.00) | 0 / 1 | 0 / 3 | 0 / 0 | 0 / 0 | 1 / 2 | |
| KC | Noah Cameron (Starter) | 15 / 19 | 7.2 / 0 (+7.20) | 4 / 0 | 5 / 3 | 1 / 0 | 1 / 4 | 7 / 11 | venue home: 4.79 vs 3.62 ERA (worse here) · opp run factor 1.05 (average) · 26 prior appearances this season |
| KC | Nate Pearson (Setup Man) | 3 / 3 | 0 / 0 | 0 / 0 | 2 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | |
| KC | Alex Lange (Middle Reliever (High Leverage)) | 3 / 2 | 18 / 27 (-9.00) | 2 / 2 | 2 / 3 | 2 / 0 | 0 / 0 | 1 / 1 |
Hitters: actual / projected (sorted by run impact vs projection)
| Team | Batter | AB | H | 2B | 3B | HR | RBI | R | BB | SO | Run impact | Season xwOBA | Signal |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| MIA | Javier Sanoja (3B) | 5 / 4 | 3 / 1 | 0 / 1 | 0 / 0 | 1 / 0 | 1 / 1 | 2 / 0 | 0 / 0 | 1 / 0 | 1.56 | 0.287 below average | good day |
| KC | Carter Jensen (C) | 4 / 5 | 2 / 1 | 0 / 0 | 0 / 0 | 2 / 1 | 2 / 1 | 2 / 1 | 1 / 1 | 1 / 1 | 1.4 | 0.304 below average | good day |
| KC | Salvador Perez (DH) | 4 / 5 | 1 / 1 | 0 / 0 | 0 / 0 | 1 / 0 | 2 / 1 | 1 / 0 | 1 / 0 | 1 / 1 | 1.26 | 0.308 average | no signal |
| MIA | Kyle Stowers (1B) | 5 / 4 | 2 / 1 | 0 / 0 | 0 / 0 | 1 / 0 | 2 / 1 | 1 / 1 | 0 / 1 | 1 / 1 | 1.07 | 0.335 above average | projection too low |
| MIA | Jakob Marsee (CF) | 4 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 1 / 0 | 1 / 0 | 2 / 1 | 1 / 1 | 1 / 1 | 0.93 | 0.305 average | no signal |
| MIA | Jared Serna (2B) | 2 / 3 | 1 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 1 / 0 | 1 / 0 | 0 / 1 | 0.8 | 0.294 below average | good day |
| KC | Vinnie Pasquantino (1B) | 5 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | -0.8 | 0.325 above average | bad day |
| MIA | Otto Lopez (SS) | 5 / 5 | 1 / 1 | 0 / 0 | 1 / 0 | 0 / 0 | 1 / 1 | 1 / 1 | 0 / 0 | 2 / 1 | 0.62 | 0.324 above average | projection too low |
| MIA | Agustín Ramírez (DH) | 5 / 3 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 3 / 1 | -0.47 | 0.275 weak | — |
| KC | Kyle Isbel (CF) | 4 / 3 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | -0.47 | 0.264 weak | — |
| KC | Michael Massey (2B) | 4 / 4 | 2 / 1 | 1 / 1 | 0 / 0 | 0 / 0 | 1 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0.47 | 0.306 average | — |
| KC | Nick Loftin (3B) | 3 / 4 | 1 / 1 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 1 / 0 | 2 / 0 | 0 / 1 | 0.35 | 0.297 below average | — |
| KC | John Rave (LF) | 3 / 3 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 1 / 0 | 1 / 0 | 0.33 | 0.324 above average | — |
| KC | Jac Caglianone (RF) | 5 / 4 | 1 / 1 | 1 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 1 / 1 | 0 / 0 | 2 / 1 | 0.31 | 0.357 elite | — |
| MIA | Heriberto Hernández (LF) | 4 / 4 | 2 / 1 | 2 / 0 | 0 / 0 | 0 / 1 | 2 / 1 | 1 / 1 | 0 / 1 | 0 / 1 | -0.17 | 0.353 elite | — |
| MIA | Joe Mack (C) | 4 / 3 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 0 | 0.289 below average | — |
| MIA | Esteury Ruiz (RF) | 2 / 3 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 0 | 0.292 below average | — |
| KC | Bobby Witt Jr. (SS) | 4 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 1 / 1 | 0 / 1 | 0 | 0.383 elite | — |
| Signal | Home-away edge | Meaning |
|---|---|---|
| Season quality | -0.383 | positive favors home; negative favors away |
| Recent form | 0.066 | positive favors home; negative favors away |
| Starting-pitcher matchup | -0.119 | positive favors home; negative favors away |
| Composite | -0.636 | positive favors home; negative favors away |
| Stage | Away-home runs | Confidence | What changed |
|---|---|---|---|
| historical_ml | 4.63-4.2 | n/a | Base ML historical model prediction |
| variance_applied | 5-4 | n/a | Deterministic baseline target (variance factor 1.0) |
| enhanced_prediction | 5-4 | 0.556 | Enhanced ML with recent form, H2H, low-score analysis (confidence shrunk by projected_margin_is_one_run) |
| 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.63-4.2 | 5-4 | 0.569 | Deterministic baseline target (variance factor 1.0) |
| enhanced_prediction | 5-4 | 5-4 | -0 | Enhanced ML with recent form, H2H, low-score analysis (confidence shrunk by projected_margin_is_one_run) |
| 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 |
|---|---|---|---|---|
| MIA | Jakob Marsee | batter / CF | better | predicted_SO 2.138 |
| MIA | Jared Serna | batter / 2B | better | predicted_H 2 |
| KC | Noah Cameron | pitcher / Starter | neutral | predicted_SO 2 |
| MIA | Otto Lopez | batter / SS | worse | predicted_AB -1.92 |
| MIA | Agustín Ramírez | batter / DH | worse | predicted_AB 1.7 |
| KC | Vinnie Pasquantino | batter / 1B | better | predicted_RBI 1.57 |
| KC | Nick Loftin | batter / 3B | worse | predicted_SO 1.402 |
| KC | Bobby Witt Jr. | batter / SS | worse | predicted_SO 1.227 |
| Severity | Rule | Finding | Subject |
|---|---|---|---|
| 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_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 | KC model pitcher projections differ from final simulation pitching box score (H: current=8, sim=11). | KC |
| info | CURRENT_FINALIZED_MATCH_BOX | KC model-prediction batting totals differ from final simulation box score (AB: current=36, sim=33; H: current=9, sim=6; 2B: current=2, sim=0; HR: current=1, sim=3; BB: current=3, sim=0; SO: current=7, sim=9). | KC |
| info | CURRENT_PLAYER_MATCH_BOX | KC current finalized hitter lines are model predictions and differ from the simulation box score: Carter Jensen: AB current=5 box=4, HR current=1 box=0, RBI current=1 box=0, BB current=1 box=0; Salvador Perez: AB current=5 box=4, HR current=0 box=1, R current=0 box=1, SO current=1 box=2; Jac Caglianone: H current=1 box=2, HR current=0 box=1, SO current=1 box=0; Bobby Witt Jr.: H current=1 box=0, R current=1 box=0, BB current=1 box=0, SO current=1 box=2; John Rave: H current=1 box=0, R current=1 box=0; Vinnie Pasquantino: H current=1 box=2, HR current=0 box=1, RBI current=0 box=2, R current=0 box=1; Nick Loftin: H current=1 box=0, 2B current=1 box=0, RBI current=1 box=0, SO current=1 box=2; Kyle Isbel: H current=1 box=0, SO current=1 box=0 | KC |
| info | CURRENT_FINALIZED_MATCH_BOX | MIA model-prediction batting totals differ from final simulation box score (AB: current=33, sim=38; H: current=7, sim=11; 2B: current=1, sim=2; 3B: current=0, sim=2; RBI: current=4, sim=5; BB: current=3, sim=4; SO: current=8, sim=13). | MIA |
| info | CURRENT_PLAYER_MATCH_BOX | MIA current finalized hitter lines are model predictions and differ from the simulation box score: Agustín Ramírez: AB current=3 box=5, RBI current=0 box=1, SO current=1 box=2; Kyle Stowers: 3B current=0 box=1, SO current=1 box=2; Heriberto Hernández: AB current=4 box=5, H current=1 box=2, 3B current=0 box=1, HR current=1 box=0; Otto Lopez: AB current=5 box=3, H current=1 box=0, RBI current=1 box=0, R current=1 box=0; Jared Serna: AB current=3 box=4, H current=0 box=2, 2B current=0 box=1; Javier Sanoja: AB current=4 box=5, H current=1 box=2, RBI current=1 box=0, SO current=0 box=1; Joe Mack: AB current=3 box=4, SO current=1 box=0; Jakob Marsee: AB current=4 box=5, HR current=0 box=1, RBI current=0 box=2, BB current=1 box=0 | MIA |
| info | RECONCILIATION_PROPAGATION | No score_target_reconciliation step was used for this game. |
| Team | Starter | Projected | Actual | ER err |
|---|---|---|---|---|
| MIL | Jacob Misiorowski | 2 ER / 18 outs | 5 ER / 12 outs | 3 |
| CHC | David Peterson | 6 ER / 12 outs | 6 ER / 11 outs | 0 |
Every value is actual / projected. Run impact approximates how far each hitter's real line moved run expectancy from its projection; it orders the movers and is not a published stat.
Top deviations that drove the game:
Starter miss: Jacob Misiorowski (MIL) posted 11.25 ERA vs projected 3.00 (5 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
Jacob Misiorowski (MIL) threw 12 outs, 5 ER = 11.25 ERA against a projected 3 ERA (8.25 ERA error)
Bullpen behind him: 0 ER over 6 outs.
The HOME lineup he faced produced 5 runs on 6 hits and 1 HR, against a projected 5 runs / 8 hits (0 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
David Peterson (CHC) threw 11 outs, 6 ER = 14.73 ERA against a projected 13.5 ERA (1.23 ERA error)
Bullpen behind him: 2 ER over 3 outs.
The AWAY lineup he faced produced 7 runs on 12 hits and 1 HR, against a projected 5 runs / 9 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)
| Team | Pitcher | Outs | ERA | ER | H | HR | BB | SO | Context (as-of) |
|---|---|---|---|---|---|---|---|---|---|
| MIL | Jacob Misiorowski (Starter) | 12 / 18 | 11.25 / 3 (+8.25) | 5 / 2 | 5 / 7 | 1 / 0 | 4 / 1 | 5 / 8 | venue away: 1.86 vs 1.62 ERA (ok) · opp run factor 0.95 (strong) · 25 prior appearances this season |
| MIL | Aaron Ashby (Setup Man) | 3 / 3 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | |
| MIL | Trevor Megill (Closer) | 3 / 3 | 0 / 18 (-18.00) | 0 / 2 | 1 / 1 | 0 / 1 | 0 / 1 | 2 / 1 | |
| CHC | David Peterson (Starter) | 11 / 12 | 14.73 / 13.5 | 6 / 6 | 7 / 11 | 1 / 1 | 4 / 2 | 4 / 7 | venue home: 6.31 vs 4.73 ERA (worse here) · opp run factor 1.01 (strong) · 27 prior appearances this season |
| CHC | Jacob Webb (Closer) | 1 / 6 | 54 / 0 (+54.00) | 2 / 0 | 1 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | |
| CHC | Trent Thornton (Setup Man) | 2 / 5 | 0 / 0 | 0 / 0 | 2 / 1 | 0 / 0 | 1 / 0 | 2 / 1 |
Hitters: actual / projected (sorted by run impact vs projection)
| Team | Batter | AB | H | 2B | 3B | HR | RBI | R | BB | SO | Run impact | Season xwOBA | Signal |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| MIL | Jackson Chourio (LF) | 6 / 6 | 4 / 1 | 1 / 0 | 0 / 0 | 1 / 1 | 1 / 1 | 2 / 1 | 0 / 0 | 0 / 1 | 1.72 | 0.334 above average | projection too low |
| MIL | Brice Turang (2B) | 4 / 5 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 1 / 1 | 0 / 1 | 2 / 1 | -0.8 | 0.335 above average | bad day |
| MIL | Cooper Pratt (SS) | 4 / 3 | 2 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 1 / 0 | 1 / 0 | 1 / 1 | 0.8 | 0.313 average | no signal |
| CHC | Michael Busch (1B) | 4 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 2 / 1 | -0.8 | 0.328 above average | bad day |
| CHC | Matt Shaw (2B) | 4 / 3 | 1 / 1 | 0 / 0 | 1 / 0 | 0 / 0 | 0 / 1 | 1 / 0 | 0 / 0 | 0 / 1 | 0.62 | 0.307 average | no signal |
| MIL | Andrew Vaughn (1B) | 3 / 3 | 2 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 1 / 0 | 0 / 0 | 1 / 0 | 0.47 | 0.336 above average | — |
| MIL | Jake Bauers (RF) | 4 / 3 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 1 / 1 | 2 / 1 | -0.47 | 0.373 elite | — |
| MIL | Gary Sánchez (DH) | 1 / 3 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 0 / 0 | 1 / 1 | 0 / 1 | -0.47 | 0.344 elite | — |
| CHC | Nico Hoerner (SS) | 4 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | -0.47 | 0.324 above average | — |
| CHC | Seiya Suzuki (DH) | 3 / 4 | 0 / 1 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 2 / 1 | 0 / 1 | -0.45 | 0.339 above average | — |
| MIL | Joey Ortiz (3B) | 4 / 3 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 2 / 0 | 0 / 0 | 1 / 0 | 0 / 0 | 0.33 | 0.295 below average | — |
| MIL | Luis Lara (CF) | 3 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 1 / 1 | 1 / 0 | 1 / 1 | 0.33 | 0.313 average | — |
| CHC | Tyrone Taylor (RF) | 3 / 3 | 1 / 1 | 0 / 1 | 0 / 0 | 0 / 0 | 1 / 1 | 1 / 0 | 0 / 0 | 0 / 1 | -0.31 | 0.319 average | — |
| CHC | Pete Crow-Armstrong (CF) | 3 / 5 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 2 / 1 | 2 / 0 | 1 / 1 | -0.27 | 0.369 elite | — |
| MIL | William Contreras (C) | 5 / 5 | 2 / 1 | 0 / 1 | 0 / 0 | 0 / 0 | 1 / 1 | 1 / 1 | 0 / 1 | 1 / 1 | -0.17 | 0.333 above average | — |
| CHC | Alex Bregman (3B) | 4 / 5 | 2 / 1 | 0 / 0 | 0 / 0 | 1 / 1 | 4 / 1 | 1 / 1 | 0 / 1 | 0 / 1 | 0.14 | 0.318 average | — |
| CHC | Ian Happ (LF) | 4 / 4 | 1 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 1 / 1 | 0.14 | 0.313 average | — |
| CHC | Miguel Amaya (C) | 2 / 3 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 1 / 0 | 2 / 1 | -0.14 | 0.289 below average | — |
| Signal | Home-away edge | Meaning |
|---|---|---|
| Season quality | -0.106 | positive favors home; negative favors away |
| Recent form | 0.354 | positive favors home; negative favors away |
| Starting-pitcher matchup | -0.062 | positive favors home; negative favors away |
| Composite | -0.466 | positive favors home; negative favors away |
| Stage | Away-home runs | Confidence | What changed |
|---|---|---|---|
| historical_ml | 5.4-2.15 | n/a | Base ML historical model prediction |
| variance_applied | 5-2 | n/a | Deterministic baseline target (variance factor 1.0) |
| enhanced_prediction | 6-5 | 0.54 | 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.4-2.15 | 5-2 | -0.256 | Deterministic baseline target (variance factor 1.0) |
| enhanced_prediction | 5-2 | 6-5 | -2 | 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 |
|---|---|---|---|---|
| MIL | Joey Ortiz | batter / 3B | better | predicted_RBI 2.606 |
| MIL | William Contreras | batter / C | worse | predicted_H 2.32 |
| CHC | Alex Bregman | batter / 3B | better | predicted_SO 2.281 |
| CHC | Pete Crow-Armstrong | batter / CF | worse | predicted_AB -2.2 |
| MIL | Andrew Vaughn | batter / 1B | better | predicted_AB 2.092 |
| MIL | Jacob Misiorowski | pitcher / Starter | better | predicted_SO 2 |
| MIL | Chad Patrick | pitcher / Middle Reliever (High Leverage) | worse | predicted_SO -2 |
| CHC | Seiya Suzuki | batter / DH | better | predicted_SO 1.917 |
| 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 | 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 | CHC model-prediction batting totals differ from final simulation box score (AB: current=35, sim=36; H: current=8, sim=10; 2B: current=2, sim=3; HR: current=2, sim=1; RBI: current=5, sim=4; R: current=5, sim=4; BB: current=4, sim=2; SO: current=8, sim=9). | CHC |
| info | CURRENT_PLAYER_MATCH_BOX | CHC current finalized hitter lines are model predictions and differ from the simulation box score: Seiya Suzuki: AB current=4 box=5, H current=1 box=2, 2B current=1 box=0, RBI current=1 box=0; Nico Hoerner: H current=1 box=2, SO current=0 box=1; Alex Bregman: H current=1 box=2, RBI current=1 box=2, BB current=1 box=0, SO current=1 box=3; Matt Shaw: AB current=3 box=4, 2B current=0 box=1, R current=0 box=1, SO current=1 box=0; Tyrone Taylor: AB current=3 box=4, H current=1 box=0, 2B current=1 box=0, RBI current=1 box=0; Ian Happ: H current=0 box=1, R current=1 box=0, BB current=1 box=0; Michael Busch: AB current=4 box=3, 2B current=0 box=1, RBI current=0 box=1, R current=0 box=1; Pete Crow-Armstrong: AB current=5 box=3, 2B current=0 box=1, HR current=1 box=0, RBI current=1 box=0 | CHC |
| info | CURRENT_FINALIZED_MATCH_BOX | MIL model-prediction batting totals differ from final simulation box score (AB: current=35, sim=40; H: current=9, sim=13; 2B: current=1, sim=3; RBI: current=5, sim=6; R: current=5, sim=6; BB: current=4, sim=2; SO: current=7, sim=10). | MIL |
| info | CURRENT_PLAYER_MATCH_BOX | MIL current finalized hitter lines are model predictions and differ from the simulation box score: Andrew Vaughn: AB current=3 box=5, HR current=0 box=1, RBI current=0 box=2, R current=0 box=1; Jackson Chourio: AB current=6 box=5, H current=1 box=3, HR current=1 box=0, RBI current=1 box=0; Jake Bauers: AB current=3 box=5, H current=1 box=0, R current=1 box=0, BB current=1 box=0; Gary Sánchez: H current=1 box=0, RBI current=1 box=0, SO current=1 box=0; Joey Ortiz: AB current=3 box=4, H current=1 box=2, 2B current=0 box=1, RBI current=0 box=3; Brice Turang: 2B current=0 box=1, RBI current=1 box=0, BB current=1 box=0; William Contreras: H current=1 box=4, 2B current=1 box=0, RBI current=1 box=0, BB current=1 box=0; Luis Lara: H current=1 box=0, R current=1 box=0, BB current=0 box=1, SO current=1 box=2 | MIL |
| info | RECONCILIATION_PROPAGATION | No score_target_reconciliation step was used for this game. |
| Team | Starter | Projected | Actual | ER err |
|---|---|---|---|---|
| NYM | Justin Hagenman | 1 ER / 9 outs | 1 ER / 9 outs | 0 |
| TB | Griffin Jax | 2 ER / 15 outs | 3 ER / 8 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: Griffin Jax (TB) posted 10.12 ERA vs projected 3.60 (3 ER in 8 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
Justin Hagenman (NYM) threw 9 outs, 1 ER = 3 ERA against a projected 3 ERA (0 ERA error)
Bullpen behind him: 0 ER over 4 outs.
The HOME lineup he faced produced 4 runs on 7 hits and 1 HR, against a projected 5 runs / 9 hits (-1 runs vs projection).
Who did the damage to him:
Verdict: neither side broke materially - the result is closer to variance
HOME pitching
Griffin Jax (TB) threw 8 outs, 3 ER = 10.12 ERA against a projected 3.6 ERA (6.52 ERA error)
Bullpen behind him: 0 ER over 3 outs.
The AWAY lineup he faced produced 8 runs on 10 hits and 1 HR, against a projected 3 runs / 6 hits (5 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)
| Team | Pitcher | Outs | ERA | ER | H | HR | BB | SO | Context (as-of) |
|---|---|---|---|---|---|---|---|---|---|
| NYM | Justin Hagenman (Starter) | 9 / 9 | 3 / 3 | 1 / 1 | 2 / 3 | 0 / 1 | 1 / 2 | 2 / 3 | opp run factor 1 (average) |
| NYM | Daniel Duarte (Setup Man) | 4 / 5 | 0 / 10.8 (-10.80) | 0 / 2 | 0 / 4 | 0 / 0 | 0 / 1 | 1 / 1 | |
| TB | Griffin Jax (Starter) | 8 / 15 | 10.12 / 3.6 (+6.52) | 3 / 2 | 7 / 1 | 0 / 0 | 2 / 0 | 1 / 10 | venue home: 3.02 vs 3.32 ERA (ok) · opp run factor 0.93 (weak) · 29 prior appearances this season |
| TB | Bryan Baker (Closer) | 3 / 5 | 0 / 5.4 (-5.40) | 0 / 1 | 1 / 1 | 0 / 1 | 1 / 0 | 0 / 1 |
Hitters: actual / projected (sorted by run impact vs projection)
| Team | Batter | AB | H | 2B | 3B | HR | RBI | R | BB | SO | Run impact | Season xwOBA | Signal |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| TB | Junior Caminero (3B) | 4 / 5 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 0 / 1 | 0 / 1 | 2 / 1 | -1.73 | 0.363 elite | bad day |
| NYM | Marcus Semien (2B) | 3 / 4 | 1 / 0 | 1 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 2 / 0 | 1 / 0 | 0 / 1 | 1.11 | 0.305 average | no signal |
| TB | Richie Palacios (2B) | 4 / 3 | 1 / 1 | 0 / 0 | 0 / 0 | 1 / 0 | 2 / 0 | 1 / 0 | 0 / 0 | 0 / 0 | 0.93 | 0.305 average | no signal |
| NYM | Carson Benge (RF) | 4 / 4 | 2 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 2 / 1 | 1 / 0 | 0 / 1 | 0.8 | 0.336 above average | projection too low |
| NYM | Bo Bichette (3B) | 4 / 5 | 2 / 1 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 2 / 0 | 1 / 0 | 0 / 1 | 0.8 | 0.325 above average | projection too low |
| TB | Taylor Walls (SS) | 3 / 3 | 1 / 1 | 1 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 1 / 0 | 1 / 1 | 0.64 | 0.249 weak | good day |
| TB | Liam Hicks (C) | 4 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 0 / 0 | 2 / 0 | -0.47 | 0.316 average | — |
| TB | Chandler Simpson (LF) | 4 / 4 | 2 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 0 / 0 | 0 / 0 | 0.47 | 0.261 weak | — |
| TB | Victor Mesa Jr. (RF) | 4 / 3 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 0 / 1 | -0.47 | 0.311 average | — |
| NYM | Francisco Lindor (SS) | 6 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 0 / 1 | 1 / 1 | -0.33 | 0.338 above average | — |
| NYM | A.J. Ewing (CF) | 5 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 0 / 1 | 1 / 1 | -0.33 | 0.317 average | — |
| TB | Jonathan Aranda (1B) | 4 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 0 / 1 | 0 / 1 | 1 / 1 | -0.33 | 0.35 elite | — |
| TB | Cedric Mullins (CF) | 2 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 1 / 0 | 0 / 1 | 0 / 1 | -0.33 | 0.267 weak | — |
| NYM | Juan Soto (LF) | 5 / 4 | 2 / 1 | 0 / 0 | 0 / 0 | 1 / 1 | 1 / 1 | 1 / 1 | 0 / 1 | 1 / 1 | 0.14 | 0.416 elite | — |
| TB | Yandy Díaz (DH) | 3 / 5 | 1 / 1 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 1 / 0 | 0 / 1 | 0.02 | 0.355 elite | — |
| NYM | Mark Vientos (DH) | 1 / 3 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 | 0.314 average | — |
| Signal | Home-away edge | Meaning |
|---|---|---|
| Season quality | 0.91 | positive favors home; negative favors away |
| Recent form | 0.652 | positive favors home; negative favors away |
| Starting-pitcher matchup | 0.067 | positive favors home; negative favors away |
| Composite | 0.99 | positive favors home; negative favors away |
| Stage | Away-home runs | Confidence | What changed |
|---|---|---|---|
| historical_ml | 3.53-4.46 | n/a | Base ML historical model prediction |
| variance_applied | 4-4 | n/a | Deterministic baseline target (variance factor 1.0) |
| enhanced_prediction | 3-4 | 0.549 | 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.53-4.46 | 4-4 | -0.931 | Deterministic baseline target (variance factor 1.0) |
| enhanced_prediction | 4-4 | 3-4 | 1 | Enhanced ML with recent form, H2H, low-score analysis (confidence shrunk by projected_margin_is_one_run, matchup_recency_guardrail) |
| embedded_savant_run_environment | 3-4 | 3-4 | 0 | Target score adjusted by temporal Savant lineup quality versus opposing starter quality |
| fundamental_edge_target_review | 3-4 | 3-4 | 0 | Refreshed score target and win probability after Savant/pitcher/team-strength adjustments |
| capped_target | 3-4 | 3-4 | 0 | Capped at max 12 realistic runs |
| simulation_result | 3-4 | 3-4 | 0 | Final inning-by-inning simulation result |
These are pregame model adjustments, not claims about actual postgame player error.
| Team | Player | Role | Net effect | Largest change |
|---|---|---|---|---|
| NYM | Francisco Lindor | batter / SS | worse | predicted_SO 3.15 |
| NYM | Justin Hagenman | pitcher / Starter | better | predicted_IP 2.9 |
| NYM | Juan Soto | batter / LF | boosted | predicted_RBI 2.45 |
| NYM | Kodai Senga | pitcher / Closer | better | predicted_IP 2.1 |
| TB | Richie Palacios | batter / 2B | better | predicted_2B 1.88 |
| NYM | Bo Bichette | batter / 3B | worse | predicted_AB -1.72 |
| TB | Yandy Díaz | batter / DH | worse | predicted_H -1.45 |
| TB | Liam Hicks | batter / C | worse | predicted_AB -1.35 |
| 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 | 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 | NYM model-prediction batting totals differ from final simulation box score (AB: current=35, sim=28; H: current=7, sim=1; 2B: current=1, sim=0; BB: current=3, sim=0; SO: current=9, sim=14). | NYM |
| info | CURRENT_PLAYER_MATCH_BOX | NYM current finalized hitter lines are model predictions and differ from the simulation box score: Carson Benge: AB current=4 box=3, H current=1 box=0, R current=1 box=0; Mark Vientos: H current=1 box=0, SO current=1 box=0; Christopher Morel: SO current=1 box=2; Francisco Lindor: H current=1 box=0, RBI current=1 box=0, BB current=1 box=0, SO current=1 box=4; A.J. Ewing: AB current=4 box=3, H current=1 box=0, BB current=1 box=0; Juan Soto: AB current=4 box=3, RBI current=1 box=3, BB current=1 box=0; Bo Bichette: AB current=5 box=3, H current=1 box=0, 2B current=1 box=0, R current=0 box=1; Francisco Alvarez: AB current=4 box=3, H current=1 box=0, RBI current=1 box=0, SO current=1 box=2 | NYM |
| info | CURRENT_FINALIZED_MATCH_BOX | TB model pitcher projections differ from final simulation pitching box score (H: current=2, sim=1). | TB |
| info | CURRENT_FINALIZED_MATCH_BOX | TB model-prediction batting totals differ from final simulation box score (AB: current=35, sim=32; H: current=9, sim=8; 2B: current=1, sim=3; R: current=5, sim=4; BB: current=3, sim=4; HBP: current=0, sim=2). | 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=5 box=4, BB current=1 box=0; Liam Hicks: AB current=4 box=3, H current=1 box=0, RBI current=1 box=0, SO current=0 box=1; Jonathan Aranda: AB current=4 box=5, 2B current=0 box=1, BB current=1 box=0; Yandy Díaz: AB current=5 box=4, H current=1 box=0, 2B current=1 box=0, RBI current=1 box=0; Chandler Simpson: AB current=4 box=3, HBP current=0 box=1; Victor Mesa Jr.: H current=1 box=2, R current=1 box=0, BB current=0 box=1, SO current=1 box=0; Cedric Mullins: RBI current=0 box=1, R current=0 box=1, BB current=1 box=0; Richie Palacios: H current=1 box=2, 2B current=0 box=2, RBI current=0 box=1, R current=0 box=1 | TB |
| info | RECONCILIATION_PROPAGATION | No score_target_reconciliation step was used for this game. |
| Team | Starter | Projected | Actual | ER err |
|---|---|---|---|---|
| NYY | Cam Schlittler | 0 ER / 19 outs | 1 ER / 24 outs | 1 |
| LAA | Reid Detmers | 2 ER / 18 outs | 1 ER / 21 outs | -1 |
Every value is actual / projected. Run impact approximates how far each hitter's real line moved run expectancy from its projection; it orders the movers and is not a published stat.
Top deviations that drove the game:
Pitcher versus batter: what actually broke this game
Per-pitch matchup fields are not populated in the current feeds, so this is reconstructed from the settled box: each starter's workload-adjusted ERA, the bullpen share behind him, and the opposing lineup's real production against its projection, with the hitters who beat that projection named.
AWAY pitching
Cam Schlittler (NYY) threw 24 outs, 1 ER = 1.12 ERA against a projected 0 ERA (1.12 ERA error)
Bullpen behind him: 0 ER over 3 outs.
The HOME lineup he faced produced 3 runs on 4 hits and 2 HR, against a projected 3 runs / 7 hits (0 runs vs projection).
Who did the damage to him:
Verdict: neither side broke materially - the result is closer to variance
HOME pitching
Reid Detmers (LAA) threw 21 outs, 1 ER = 1.29 ERA against a projected 3 ERA (-1.71 ERA error)
Bullpen behind him: 0 ER over 6 outs.
The AWAY lineup he faced produced 5 runs on 9 hits and 0 HR, against a projected 4 runs / 8 hits (1 runs vs projection).
Who did the damage to him:
Verdict: neither side broke materially - the result is closer to variance
Starting pitchers & relievers: actual / projected + context (ERA is workload-aware: ER over 9 innings, so a short blow-up is not read like a quality start; ERA error in parentheses when material)
| Team | Pitcher | Outs | ERA | ER | H | HR | BB | SO | Context (as-of) |
|---|---|---|---|---|---|---|---|---|---|
| NYY | Cam Schlittler (Starter) | 24 / 19 | 1.12 / 0 | 1 / 0 | 2 / 0 | 1 / 0 | 0 / 0 | 9 / 6 | venue away: 1.14 vs 3.41 ERA (ok) · opp run factor 0.93 (weak) · 28 prior appearances this season |
| NYY | David Bednar (Closer) | 3 / 3 | 0 / 9 (-9.00) | 0 / 1 | 1 / 2 | 0 / 0 | 0 / 1 | 3 / 0 | |
| LAA | Reid Detmers (Starter) | 21 / 18 | 1.29 / 3 | 1 / 2 | 6 / 6 | 0 / 0 | 0 / 1 | 8 / 6 | venue home: 3.36 vs 3.8 ERA (ok) · opp run factor 0.95 (average) · 27 prior appearances this season |
| LAA | Ben Joyce (Closer) | 3 / 3 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | |
| LAA | Ryan Watson (Setup Man) | 3 / 3 | 0 / 9 (-9.00) | 0 / 1 | 1 / 2 | 0 / 0 | 0 / 0 | 1 / 0 |
Hitters: actual / projected (sorted by run impact vs projection)
| Team | Batter | AB | H | 2B | 3B | HR | RBI | R | BB | SO | Run impact | Season xwOBA | Signal |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| LAA | Zach Neto (SS) | 4 / 5 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 0 / 1 | 0 / 1 | 2 / 1 | -1.73 | 0.305 average | no signal |
| NYY | Spencer Jones (CF) | 4 / 3 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 0 / 1 | 0 / 0 | 4 / 1 | -1.4 | 0.329 above average | bad day |
| NYY | Heliot Ramos (RF) | 3 / 4 | 0 / 1 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 0 / 1 | 0 / 1 | -1.11 | 0.326 above average | bad day |
| LAA | Vaughn Grissom (1B) | 4 / 4 | 2 / 1 | 0 / 1 | 0 / 0 | 1 / 0 | 1 / 1 | 1 / 0 | 0 / 0 | 0 / 1 | 1.09 | 0.316 average | no signal |
| NYY | Cody Bellinger (LF) | 5 / 5 | 3 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 2 / 1 | 0 / 0 | 1 / 1 | 0.94 | 0.342 elite | projection too low |
| LAA | Moisés Ballesteros (DH) | 4 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 1 / 0 | 2 / 0 | 1 / 0 | 0 / 0 | 2 / 1 | 0.93 | 0.291 below average | good day |
| LAA | Wade Meckler (RF) | 4 / 3 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 0 / 1 | 1 / 1 | -0.8 | 0.312 average | no signal |
| NYY | Paul Goldschmidt (1B) | 3 / 4 | 2 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 0.47 | 0.313 average | — |
| NYY | Jazz Chisholm Jr. (2B) | 3 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 1 / 1 | 1 / 1 | 1 / 1 | -0.47 | 0.294 below average | — |
| LAA | Oswald Peraza (3B) | 3 / 3 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | -0.47 | 0.271 weak | — |
| LAA | Christian Moore (2B) | 4 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 0 / 0 | 1 / 1 | -0.47 | 0.238 weak | — |
| LAA | Mike Trout (CF) | 4 / 5 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 0 / 1 | 2 / 1 | -0.33 | 0.376 elite | — |
| NYY | Amed Rosario (3B) | 5 / 3 | 1 / 1 | 1 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 1 / 0 | 0 / 0 | 1 / 1 | 0.31 | 0.312 average | — |
| NYY | Ben Rice (DH) | 5 / 5 | 2 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 0 / 1 | 0 / 1 | 0 / 1 | 0.14 | 0.378 elite | — |
| NYY | José Caballero (SS) | 4 / 3 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 0 / 0 | 2 / 1 | 0 | 0.28 weak | — |
| NYY | Ali Sánchez (C) | 2 / 3 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 2 / 1 | 0 | 0.246 weak | — |
| LAA | Jose Siri (LF) | 4 / 3 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 2 / 1 | 0 | 0.307 average | — |
| LAA | Travis d'Arnaud (C) | 2 / 3 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 0 | 0.253 weak | — |
| Signal | Home-away edge | Meaning |
|---|---|---|
| Season quality | -1.334 | positive favors home; negative favors away |
| Recent form | -0.694 | positive favors home; negative favors away |
| Starting-pitcher matchup | -0.021 | positive favors home; negative favors away |
| Composite | -1.312 | positive favors home; negative favors away |
| Stage | Away-home runs | Confidence | What changed |
|---|---|---|---|
| historical_ml | 4.67-3.3 | n/a | Base ML historical model prediction |
| variance_applied | 5-3 | n/a | Deterministic baseline target (variance factor 1.0) |
| enhanced_prediction | 4-3 | 0.53 | Enhanced ML with recent form, H2H, low-score analysis (confidence shrunk by matchup_recency_guardrail) |
| embedded_savant_run_environment | 4-2 | n/a | Target score adjusted by temporal Savant lineup quality versus opposing starter quality |
| fundamental_edge_target_review | 4-2 | n/a | Refreshed score target and win probability after Savant/pitcher/team-strength adjustments |
| capped_target | 4-2 | n/a | Capped at max 12 realistic runs |
| simulation_result | 4-2 | n/a | Final inning-by-inning simulation result |
| Stage | Before | After | Toward final pick | What changed |
|---|---|---|---|---|
| variance_applied | 4.67-3.3 | 5-3 | 0.636 | Deterministic baseline target (variance factor 1.0) |
| enhanced_prediction | 5-3 | 4-3 | -1 | Enhanced ML with recent form, H2H, low-score analysis (confidence shrunk by matchup_recency_guardrail) |
| embedded_savant_run_environment | 4-3 | 4-2 | 1 | Target score adjusted by temporal Savant lineup quality versus opposing starter quality |
| fundamental_edge_target_review | 4-2 | 4-2 | -0 | Refreshed score target and win probability after Savant/pitcher/team-strength adjustments |
| capped_target | 4-2 | 4-2 | -0 | Capped at max 12 realistic runs |
| simulation_result | 4-2 | 4-2 | -0 | Final inning-by-inning simulation result |
These are pregame model adjustments, not claims about actual postgame player error.
| Team | Player | Role | Net effect | Largest change |
|---|---|---|---|---|
| NYY | Cam Schlittler | pitcher / Starter | neutral | predicted_SO 4 |
| LAA | Reid Detmers | pitcher / Starter | better | predicted_SO 3 |
| NYY | José Caballero | batter / SS | better | predicted_RBI 2.57 |
| NYY | David Bednar | pitcher / Closer | worse | predicted_SO -2 |
| NYY | Spencer Jones | batter / CF | worse | predicted_SO 1.857 |
| LAA | Jose Siri | batter / LF | worse | predicted_AB 1.5 |
| NYY | Heliot Ramos | batter / RF | better | predicted_AB 1.33 |
| LAA | Vaughn Grissom | batter / 1B | worse | predicted_SO 1.269 |
| 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 | 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 | LAA model-prediction batting totals differ from final simulation box score (AB: current=34, sim=32; H: current=7, sim=5; 2B: current=1, sim=2; HR: current=1, sim=0; RBI: current=4, sim=2; R: current=3, sim=2; BB: current=3, sim=2; SO: current=9, sim=6). | LAA |
| info | CURRENT_PLAYER_MATCH_BOX | LAA current finalized hitter lines are model predictions and differ from the simulation box score: Wade Meckler: R current=1 box=0, SO current=1 box=0; Vaughn Grissom: 2B current=1 box=0, RBI current=1 box=0, SO current=1 box=2; Moisés Ballesteros: RBI current=0 box=1, R current=0 box=1, SO current=1 box=0; Jose Siri: AB current=3 box=4, SO current=1 box=0; Oswald Peraza: 2B current=0 box=1, SO current=1 box=0; Christian Moore: AB current=4 box=3, H current=1 box=0, RBI current=1 box=0, BB current=0 box=1; Zach Neto: AB current=5 box=4, 2B current=0 box=1, HR current=1 box=0, BB current=1 box=0; Mike Trout: AB current=5 box=4, H current=1 box=0, RBI current=1 box=0, R current=1 box=0 | LAA |
| info | CURRENT_FINALIZED_MATCH_BOX | NYY model-prediction batting totals differ from final simulation box score (AB: current=34, sim=35; H: current=8, sim=9; 2B: current=1, sim=4; 3B: current=0, sim=1; HR: current=1, sim=0; RBI: current=5, sim=4; SO: current=9, sim=6; SF: current=0, sim=1). | NYY |
| info | CURRENT_PLAYER_MATCH_BOX | NYY current finalized hitter lines are model predictions and differ from the simulation box score: Heliot Ramos: AB current=4 box=5, H current=1 box=2, R current=0 box=1, BB current=1 box=0; Amed Rosario: 3B current=0 box=1, R current=0 box=1, BB current=0 box=1, SO current=1 box=0; Paul Goldschmidt: RBI current=1 box=0, R current=0 box=1, BB current=0 box=1, SO current=1 box=2; Ben Rice: RBI current=1 box=0, R current=1 box=0, BB current=1 box=0, SO current=1 box=0; Cody Bellinger: AB current=5 box=4, 2B current=0 box=1, R current=1 box=0, SO current=1 box=0; Spencer Jones: AB current=3 box=4, 2B current=0 box=1, HR current=1 box=0, RBI current=1 box=0; José Caballero: AB current=3 box=4, H current=1 box=2, 2B current=0 box=1, RBI current=0 box=3; Jazz Chisholm Jr.: AB current=4 box=3, H current=1 box=0, RBI current=1 box=0, R current=1 box=0 | NYY |
| info | RECONCILIATION_PROPAGATION | No score_target_reconciliation step was used for this game. |
| Team | Starter | Projected | Actual | ER err |
|---|---|---|---|---|
| OAK | Jacob Lopez | 1 ER / 15 outs | 2 ER / 18 outs | 1 |
| TEX | Cody Bradford | 3 ER / 15 outs | 5 ER / 12 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: Cody Bradford (TEX) posted 11.25 ERA vs projected 5.40 (5 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
Jacob Lopez (OAK) threw 18 outs, 2 ER = 3 ERA against a projected 1.8 ERA (1.2 ERA error)
Bullpen behind him: 0 ER over 3 outs.
The HOME lineup he faced produced 2 runs on 8 hits and 2 HR, against a projected 5 runs / 9 hits (-3 runs vs projection).
Who did the damage to him:
Verdict: neither side broke materially - the result is closer to variance
HOME pitching
Cody Bradford (TEX) threw 12 outs, 5 ER = 11.25 ERA against a projected 5.4 ERA (5.85 ERA error) only 5 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 AWAY lineup he faced produced 9 runs on 14 hits and 5 HR, against a projected 4 runs / 9 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)
| Team | Pitcher | Outs | ERA | ER | H | HR | BB | SO | Context (as-of) |
|---|---|---|---|---|---|---|---|---|---|
| OAK | Jacob Lopez (Starter) | 18 / 15 | 3 / 1.8 | 2 / 1 | 6 / 4 | 2 / 1 | 2 / 3 | 7 / 5 | venue away: 4.17 vs 5.11 ERA (ok) · opp run factor 1.04 (weak) · 22 prior appearances this season |
| OAK | Hogan Harris (Closer) | 3 / 4 | 0 / 20.25 (-20.25) | 0 / 3 | 0 / 3 | 0 / 1 | 0 / 1 | 2 / 0 | |
| TEX | Cody Bradford (Starter) | 12 / 15 | 11.25 / 5.4 (+5.85) | 5 / 3 | 7 / 3 | 3 / 2 | 1 / 1 | 3 / 8 | venue home: 1.86 vs 4.32 ERA (ok) · opp run factor 0.98 (weak) · 5 prior appearances this season |
Hitters: actual / projected (sorted by run impact vs projection)
| Team | Batter | AB | H | 2B | 3B | HR | RBI | R | BB | SO | Run impact | Season xwOBA | Signal |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| OAK | Henry Bolte (RF) | 4 / 5 | 3 / 1 | 0 / 0 | 0 / 0 | 2 / 0 | 4 / 0 | 2 / 1 | 1 / 0 | 0 / 1 | 3.13 | 0.311 average | no signal |
| OAK | Alika Williams (SS) | 4 / 3 | 2 / 1 | 1 / 1 | 0 / 0 | 1 / 0 | 3 / 0 | 1 / 0 | 1 / 0 | 1 / 1 | 1.73 | 0.245 weak | good day |
| TEX | Ezequiel Duran (CF) | 4 / 4 | 3 / 1 | 0 / 0 | 0 / 0 | 1 / 0 | 1 / 1 | 1 / 1 | 0 / 1 | 0 / 1 | 1.54 | 0.306 average | no signal |
| TEX | Jake Burger (1B) | 4 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 0 / 1 | 0 / 0 | 2 / 1 | -1.4 | 0.312 average | no signal |
| OAK | Zack Gelof (LF) | 5 / 4 | 2 / 1 | 1 / 0 | 0 / 0 | 1 / 0 | 1 / 0 | 1 / 1 | 0 / 1 | 2 / 1 | 1.38 | 0.316 average | no signal |
| OAK | Jonah Heim (1B) | 5 / 3 | 1 / 1 | 0 / 0 | 0 / 0 | 1 / 0 | 1 / 0 | 1 / 0 | 0 / 0 | 2 / 1 | 0.93 | 0.292 below average | good day |
| TEX | Justin Foscue (2B) | 4 / 3 | 1 / 1 | 0 / 0 | 0 / 0 | 1 / 0 | 1 / 0 | 1 / 0 | 0 / 0 | 2 / 1 | 0.93 | 0.331 above average | projection too low |
| TEX | Corey Seager (SS) | 4 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 0 / 1 | 0 / 1 | -0.8 | 0.351 elite | bad day |
| OAK | Michael Stefanic (3B) | 5 / 3 | 1 / 1 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 0 / 1 | 1 / 1 | -0.64 | 0.372 elite | bad day |
| OAK | Jeff McNeil (2B) | 5 / 4 | 2 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 2 / 0 | 0 / 0 | 0 / 0 | 0.47 | 0.307 average | — |
| TEX | Wyatt Langford (LF) | 3 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 1 / 1 | 0 / 1 | -0.47 | 0.313 average | — |
| TEX | Danny Jansen (C) | 3 / 3 | 1 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 0.47 | 0.25 weak | — |
| TEX | Brandon Nimmo (RF) | 2 / 5 | 1 / 2 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 1 / 0 | 1 / 1 | -0.45 | 0.353 elite | — |
| OAK | Denzel Clarke (CF) | 4 / 3 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 1 / 0 | 0 / 1 | 0.33 | 0.2 weak | — |
| TEX | Elias Díaz (DH) | 4 / 3 | 1 / 1 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 3 / 1 | -0.31 | 0.278 weak | — |
| OAK | Brian Serven (C) | 4 / 3 | 1 / 1 | 1 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 1 / 1 | 1 / 0 | 0 / 1 | -0.29 | 0.308 average | — |
| OAK | Lawrence Butler (DH) | 4 / 3 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 1 / 1 | 2 / 1 | 0 | 0.324 above average | — |
| TEX | Cody Freeman (3B) | 4 / 3 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 0 / 0 | 1 / 0 | 0 | 0.231 weak | — |
| Signal | Home-away edge | Meaning |
|---|---|---|
| Season quality | 0.975 | positive favors home; negative favors away |
| Recent form | 0.398 | positive favors home; negative favors away |
| Starting-pitcher matchup | 0.057 | positive favors home; negative favors away |
| Composite | 0.942 | positive favors home; negative favors away |
| Stage | Away-home runs | Confidence | What changed |
|---|---|---|---|
| historical_ml | 4.63-4.07 | 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.56 | Enhanced ML with recent form, H2H, low-score analysis (confidence shrunk by winner_starter_is_below_average, 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.63-4.07 | 5-4 | -0.438 | 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 winner_starter_is_below_average, 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 |
|---|---|---|---|---|
| TEX | Corey Seager | batter / SS | worse | predicted_BB 2.462 |
| OAK | Jeff McNeil | batter / 2B | worse | predicted_AB -1.89 |
| OAK | Henry Bolte | batter / RF | worse | predicted_AB -1.86 |
| TEX | Brandon Nimmo | batter / RF | worse | predicted_H -1.62 |
| OAK | Michael Stefanic | batter / 3B | worse | predicted_SO 1.545 |
| TEX | Danny Jansen | batter / C | better | predicted_H 1.54 |
| TEX | Justin Foscue | batter / 2B | worse | predicted_AB 1.5 |
| TEX | Ezequiel Duran | batter / CF | better | predicted_AB 1.461 |
| Severity | Rule | Finding | Subject |
|---|---|---|---|
| warning | PITCH_COUNT_PITCHER_MATCH | TEX pitch_count row for Cody Bradford differs from pitching box score: hits_allowed/H: summary=3, box=2; batters_faced/BF: summary=19, box=18. | TEX Cody Bradford |
| 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 | 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 | OAK model-prediction batting totals differ from final simulation box score (AB: current=31, sim=30; H: current=9, sim=3; 2B: current=2, sim=0; HR: current=1, sim=3; SO: current=8, sim=10). | OAK |
| info | CURRENT_PLAYER_MATCH_BOX | OAK current finalized hitter lines are model predictions and differ from the simulation box score: Lawrence Butler: AB current=3 box=4, HR current=0 box=1, R current=0 box=1, BB current=1 box=0; Zack Gelof: H current=1 box=0, R current=1 box=0, BB current=1 box=0; Jonah Heim: AB current=3 box=4, H current=1 box=0, SO current=1 box=2; Michael Stefanic: AB current=3 box=4, H current=1 box=0, 2B current=1 box=0, RBI current=1 box=0; Alika Williams: 2B current=1 box=0, HR current=0 box=1, RBI current=0 box=1, R current=0 box=1; Brian Serven: RBI current=1 box=2, SO current=1 box=0; Denzel Clarke: H current=1 box=0, SO current=1 box=2; Jeff McNeil: AB current=4 box=2, H current=1 box=0, RBI current=1 box=0, R current=0 box=1 | OAK |
| info | CURRENT_FINALIZED_MATCH_BOX | TEX model pitcher projections differ from final simulation pitching box score (H: current=4, sim=3). | TEX |
| info | CURRENT_FINALIZED_MATCH_BOX | TEX model-prediction batting totals differ from final simulation box score (AB: current=33, sim=34; 2B: current=2, sim=1; HR: current=1, sim=2; BB: current=3, sim=5; SO: current=8, sim=7). | 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=5, H current=1 box=2, HR current=0 box=1, RBI current=1 box=2; Wyatt Langford: RBI current=0 box=1, SO current=1 box=0; Brandon Nimmo: AB current=5 box=4, H current=2 box=0, 2B current=1 box=0, RBI current=1 box=0; Elias Díaz: H current=1 box=0, 2B current=1 box=0, BB current=0 box=1, SO current=1 box=0; Corey Seager: AB current=4 box=2, H current=1 box=0, RBI current=1 box=0, R current=1 box=0; Jake Burger: HR current=1 box=0, RBI current=1 box=0, R current=1 box=0; Cody Freeman: AB current=3 box=4, H current=1 box=2, RBI current=1 box=0, R current=0 box=1; Justin Foscue: AB current=3 box=4, HR current=0 box=1, RBI current=0 box=1, R current=0 box=1 | TEX |
| info | RECONCILIATION_PROPAGATION | No score_target_reconciliation step was used for this game. |
| Team | Starter | Projected | Actual | ER err |
|---|---|---|---|---|
| PHI | Andrew Painter | 4 ER / 15 outs | 0 ER / 21 outs | -4 |
| ARI | Taylor Clarke | 2 ER / 18 outs | 0 ER / 5 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: Andrew Painter (PHI) posted 0.00 ERA vs projected 7.20 (0 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
Andrew Painter (PHI) threw 21 outs, 0 ER = 0 ERA against a projected 7.2 ERA (-7.2 ERA error)
Bullpen behind him: 1 ER over 3 outs.
The HOME lineup he faced produced 0 runs on 2 hits and 0 HR, against a projected 3 runs / 5 hits (-3 runs vs projection).
No individual hitter beat his projection by a meaningful margin.
Verdict: offense: the lineup scored well below its projection
HOME pitching
No settled pitching line for this club. The forecast named Taylor Clarke (ARI) at a projected 3 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 0 runs on 3 hits and 0 HR, against a projected 5 runs / 8 hits (-5 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)
| Team | Pitcher | Outs | ERA | ER | H | HR | BB | SO | Context (as-of) |
|---|---|---|---|---|---|---|---|---|---|
| PHI | Andrew Painter (Starter) | 21 / 15 | 0 / 7.2 (-7.20) | 0 / 4 | 2 / 4 | 0 / 1 | 0 / 2 | 6 / 7 | venue away: 5.76 vs 6.28 ERA (ok) · opp run factor 1.02 (average) · 20 prior appearances this season |
| PHI | Jonathan Bowlan (Setup Man) | 3 / 4 | 9 / 0 (+9.00) | 1 / 0 | 1 / 0 | 1 / 0 | 0 / 0 | 2 / 1 |
Hitters: actual / projected (sorted by run impact vs projection)
| Team | Batter | AB | H | 2B | 3B | HR | RBI | R | BB | SO | Run impact | Season xwOBA | Signal |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| PHI | Kyle Schwarber (1B) | 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 |
| ARI | Corbin Carroll (RF) | 3 / 5 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 0 / 1 | 0 / 1 | 0 / 1 | -1.73 | 0.342 elite | bad day |
| ARI | Gabriel Moreno (DH) | 3 / 4 | 0 / 1 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 0 / 1 | 1 / 1 | -1.11 | 0.366 elite | bad day |
| PHI | Bryson Stott (3B) | 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 |
| PHI | Bryan De La Cruz (RF) | 3 / 3 | 2 / 1 | 1 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 0.78 | 0.281 weak | good day |
| PHI | Luis Arraez (2B) | 4 / 5 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | -0.47 | 0.307 average | — |
| PHI | J.T. Realmuto (C) | 3 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 0 / 1 | -0.47 | 0.323 above average | — |
| PHI | Trea Turner (SS) | 4 / 5 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 0 / 0 | 3 / 1 | -0.47 | 0.294 below average | — |
| PHI | Brandon Marsh (LF) | 3 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | -0.47 | 0.306 average | — |
| ARI | Nolan Arenado (3B) | 3 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 0 / 1 | -0.47 | 0.282 weak | — |
| ARI | Geraldo Perdomo (SS) | 3 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | -0.33 | 0.327 above average | — |
| PHI | Bryce Harper (DH) | 2 / 4 | 1 / 1 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 2 / 1 | 1 / 1 | 0.02 | 0.393 elite | — |
| PHI | Justin Crawford (CF) | 3 / 3 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 0 | 0.281 weak | — |
| ARI | Lars Nootbaar (LF) | 4 / 3 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 0 | 0.346 elite | — |
| ARI | Tim Tawa (1B) | 3 / 3 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 2 / 1 | 0 | 0.304 below average | — |
| Signal | Home-away edge | Meaning |
|---|---|---|
| Season quality | -0.481 | positive favors home; negative favors away |
| Recent form | -0.794 | positive favors home; negative favors away |
| Starting-pitcher matchup | 0.018 | positive favors home; negative favors away |
| Composite | -0.604 | positive favors home; negative favors away |
| Stage | Away-home runs | Confidence | What changed |
|---|---|---|---|
| historical_ml | 3.57-5.65 | n/a | Base ML historical model prediction |
| variance_applied | 4-6 | n/a | Deterministic baseline target (variance factor 1.0) |
| enhanced_prediction | 5-4 | 0.53 | Enhanced ML with recent form, H2H, low-score analysis (confidence shrunk by winner_starter_is_below_average, 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 | 3.57-5.65 | 4-6 | 0.083 | Deterministic baseline target (variance factor 1.0) |
| enhanced_prediction | 4-6 | 5-4 | 3 | Enhanced ML with recent form, H2H, low-score analysis (confidence shrunk by winner_starter_is_below_average, 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 |
|---|---|---|---|---|
| PHI | Luis Arraez | batter / 2B | worse | predicted_AB -2.11 |
| PHI | Andrew Painter | pitcher / Starter | worse | predicted_H 2 |
| PHI | Bryan De La Cruz | batter / RF | better | predicted_AB 1.5 |
| ARI | James McCann | batter / C | worse | predicted_RBI 1.49 |
| ARI | Geraldo Perdomo | batter / SS | worse | predicted_SO 1.459 |
| PHI | Justin Crawford | batter / CF | boosted | predicted_SO 1.431 |
| PHI | Bryson Stott | batter / 3B | worse | predicted_SO 1.341 |
| PHI | Trea Turner | batter / SS | worse | predicted_AB -1.29 |
| Severity | Rule | Finding | Subject |
|---|---|---|---|
| warning | PITCH_COUNT_PITCHER_MATCH | PHI pitch_count row for Andrew Painter differs from pitching box score: hits_allowed/H: summary=4, box=3; batters_faced/BF: summary=21, box=20. | PHI Andrew Painter |
| 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 | 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 | ARI model-prediction batting totals differ from final simulation box score (AB: current=34, sim=30; H: current=8, sim=3; BB: current=3, sim=2; SO: current=7, sim=10). | ARI |
| info | CURRENT_PLAYER_MATCH_BOX | ARI current finalized hitter lines are model predictions and differ from the simulation box score: Lars Nootbaar: AB current=3 box=4, H current=1 box=0, SO current=1 box=2; Gabriel Moreno: AB current=4 box=3, 2B current=1 box=0; Corbin Carroll: AB current=5 box=4, H current=1 box=0, HR current=1 box=0, RBI current=1 box=0; Tim Tawa: AB current=3 box=2, R current=0 box=1, BB current=0 box=1, SO current=1 box=0; Ildemaro Vargas: AB current=4 box=3, H current=1 box=0, RBI current=1 box=0, SO current=0 box=1; Geraldo Perdomo: 2B current=0 box=1, RBI current=0 box=1, R current=0 box=1, BB current=1 box=0; Nolan Arenado: H current=1 box=0, R current=1 box=0, SO current=1 box=2; James McCann: AB current=4 box=3, HR current=0 box=1, RBI current=1 box=2, R current=0 box=1 | ARI |
| info | CURRENT_FINALIZED_MATCH_BOX | PHI model pitcher projections differ from final simulation pitching box score (H: current=4, sim=3). | PHI |
| info | CURRENT_FINALIZED_MATCH_BOX | PHI model-prediction batting totals differ from final simulation box score (AB: current=35, sim=33; H: current=8, sim=6; RBI: current=4, sim=5; SO: current=8, sim=11). | PHI |
| info | CURRENT_PLAYER_MATCH_BOX | PHI current finalized hitter lines are model predictions and differ from the simulation box score: Kyle Schwarber: H current=1 box=0, HR current=1 box=0, RBI current=1 box=0, R current=1 box=0; Bryce Harper: AB current=4 box=3, H current=1 box=0, 2B current=1 box=0, RBI current=1 box=0; Bryson Stott: AB current=3 box=4, R current=1 box=0, BB current=1 box=0, SO current=1 box=2; Luis Arraez: AB current=5 box=3, RBI current=0 box=1, R current=0 box=1, BB current=0 box=1; J.T. Realmuto: H current=1 box=0, RBI current=0 box=1, SO current=1 box=2; Trea Turner: AB current=5 box=4, H current=1 box=0, RBI current=1 box=0, R current=1 box=0; Brandon Marsh: AB current=4 box=3, RBI current=0 box=1, R current=0 box=1, BB current=0 box=1; Justin Crawford: AB current=3 box=4, H current=0 box=1, 2B current=0 box=1, RBI current=0 box=1 | PHI |
| info | RECONCILIATION_PROPAGATION | No score_target_reconciliation step was used for this game. |
| Team | Starter | Projected | Actual | ER err |
|---|---|---|---|---|
| SD | Casey Mize | 3 ER / 15 outs | 4 ER / 12 outs | 1 |
| CIN | Brandon Williamson | 3 ER / 13 outs | 3 ER / 16 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: Casey Mize (SD) posted 9.00 ERA vs projected 5.40 (4 ER in 12 outs); he is materially worse pitching away (3.90 ERA there vs 2.98 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
Casey Mize (SD) threw 12 outs, 4 ER = 9 ERA against a projected 5.4 ERA (3.6 ERA error)
Bullpen behind him: 0 ER over 0 outs.
The HOME lineup he faced produced 7 runs on 10 hits and 3 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
Brandon Williamson (CIN) threw 16 outs, 3 ER = 5.06 ERA against a projected 6.23 ERA (-1.17 ERA error) only 6 prior appearances in the covered season - the projection had little of his own record to stand on
Bullpen behind him: 0 ER over 8 outs.
The AWAY lineup he faced produced 3 runs on 7 hits and 1 HR, against a projected 4 runs / 8 hits (-1 runs vs projection).
Who did the damage to him:
Verdict: neither side broke materially - the result is closer to variance
Starting pitchers & relievers: actual / projected + context (ERA is workload-aware: ER over 9 innings, so a short blow-up is not read like a quality start; ERA error in parentheses when material)
| Team | Pitcher | Outs | ERA | ER | H | HR | BB | SO | Context (as-of) |
|---|---|---|---|---|---|---|---|---|---|
| SD | Casey Mize (Starter) | 12 / 15 | 9 / 5.4 (+3.60) | 4 / 3 | 5 / 3 | 2 / 0 | 1 / 2 | 4 / 5 | venue away: 3.9 vs 2.98 ERA (worse here) · opp run factor 0.93 (weak) · 21 prior appearances this season |
| CIN | Brandon Williamson (Starter) | 16 / 13 | 5.06 / 6.23 | 3 / 3 | 7 / 4 | 1 / 1 | 2 / 5 | 5 / 3 | venue home: 10.03 vs 3.31 ERA (worse here) · opp run factor 0.98 (average) · 6 prior appearances this season |
| CIN | Emilio Pagán (Closer) | 3 / 3 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 1 / 0 | |
| CIN | Pierce Johnson (Middle Reliever (High Leverage)) | 2 / 3 | 0 / 18 (-18.00) | 0 / 2 | 0 / 2 | 0 / 0 | 0 / 0 | 1 / 1 | |
| CIN | Tejay Antone (Setup Man) | 3 / 4 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 2 / 1 |
Hitters: actual / projected (sorted by run impact vs projection)
| Team | Batter | AB | H | 2B | 3B | HR | RBI | R | BB | SO | Run impact | Season xwOBA | Signal |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| CIN | JJ Bleday (LF) | 4 / 4 | 3 / 1 | 1 / 0 | 0 / 0 | 1 / 0 | 2 / 1 | 2 / 1 | 0 / 1 | 0 / 1 | 1.85 | 0.349 elite | projection too low |
| SD | Ty France (1B) | 3 / 4 | 2 / 1 | 0 / 0 | 0 / 0 | 1 / 0 | 2 / 1 | 1 / 1 | 1 / 0 | 0 / 1 | 1.73 | 0.331 above average | projection too low |
| CIN | Juan Brito (2B) | 3 / 3 | 1 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 3 / 0 | 1 / 0 | 1 / 0 | 1 / 1 | 1.73 | 0.242 weak | good day |
| SD | Jackson Merrill (CF) | 4 / 5 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 0 / 1 | 0 / 0 | 0 / 1 | -1.4 | 0.336 above average | bad day |
| CIN | Sal Stewart (1B) | 4 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 0 / 1 | 0 / 0 | 0 / 1 | -1.4 | 0.351 elite | bad day |
| SD | Xander Bogaerts (SS) | 3 / 3 | 2 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 1 / 1 | 0 / 0 | 0.94 | 0.321 above average | projection too low |
| CIN | Héctor Rodríguez (RF) | 5 / 3 | 1 / 1 | 0 / 0 | 0 / 0 | 1 / 0 | 1 / 0 | 1 / 1 | 0 / 0 | 1 / 1 | 0.93 | 0.275 weak | good day |
| SD | Luis Campusano (DH) | 4 / 3 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 2 / 1 | -0.8 | 0.335 above average | bad day |
| CIN | Tyler Stephenson (C) | 3 / 4 | 0 / 1 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 1 / 0 | 1 / 1 | 1 / 1 | -0.78 | 0.335 above average | bad day |
| CIN | Dane Myers (CF) | 4 / 3 | 3 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 0 / 1 | 1 / 1 | 0.61 | 0.311 average | no signal |
| SD | Ethan Salas (C) | 4 / 3 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 2 / 1 | -0.47 | 0.199 weak | — |
| SD | Jake Cronenworth (3B) | 3 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 1 / 1 | -0.47 | 0.272 weak | — |
| CIN | Matt McLain (SS) | 3 / 3 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 0 / 1 | 0 / 0 | 2 / 1 | -0.47 | 0.307 average | — |
| CIN | Edwin Arroyo (3B) | 4 / 3 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | -0.47 | 0.291 below average | — |
| SD | Austin Hays (RF) | 2 / 3 | 1 / 1 | 1 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 0 / 0 | 1 / 1 | 0.31 | 0.27 weak | — |
| CIN | Elly De La Cruz (DH) | 4 / 4 | 2 / 1 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 1 / 1 | 0 / 1 | 1 / 1 | -0.17 | 0.364 elite | — |
| SD | Fernando Tatis Jr. (2B) | 4 / 4 | 2 / 1 | 0 / 1 | 0 / 0 | 0 / 0 | 1 / 1 | 1 / 1 | 0 / 0 | 2 / 1 | 0.16 | 0.374 elite | — |
| SD | Samad Taylor (LF) | 3 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 1 / 0 | 1 / 1 | -0.14 | 0.309 average | — |
| Signal | Home-away edge | Meaning |
|---|---|---|
| Season quality | -0.679 | positive favors home; negative favors away |
| Recent form | -0.186 | positive favors home; negative favors away |
| Starting-pitcher matchup | -0.043 | positive favors home; negative favors away |
| Composite | -0.695 | positive favors home; negative favors away |
| Stage | Away-home runs | Confidence | What changed |
|---|---|---|---|
| historical_ml | 4.94-3.01 | n/a | Base ML historical model prediction |
| variance_applied | 5-3 | n/a | Deterministic baseline target (variance factor 1.0) |
| enhanced_prediction | 5-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 | 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.94-3.01 | 5-3 | 0.072 | Deterministic baseline target (variance factor 1.0) |
| enhanced_prediction | 5-3 | 5-4 | -1 | Enhanced ML with recent form, H2H, low-score analysis (confidence shrunk by projected_margin_is_one_run, matchup_recency_guardrail) |
| embedded_savant_run_environment | 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 |
|---|---|---|---|---|
| CIN | Héctor Rodríguez | batter / RF | better | predicted_RBI 2.524 |
| SD | Ty France | batter / 1B | better | predicted_RBI 2.44 |
| SD | Jackson Merrill | batter / CF | worse | predicted_AB -2.15 |
| SD | Samad Taylor | batter / LF | better | predicted_RBI 1.68 |
| CIN | Juan Brito | batter / 2B | better | predicted_H 1.438 |
| SD | Luis Campusano | batter / DH | worse | predicted_SO 1.245 |
| CIN | Edwin Arroyo | batter / 3B | worse | predicted_SO 1.159 |
| CIN | Elly De La Cruz | batter / DH | deboosted | predicted_H -1.077 |
| 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 | SD pitcher list appears in both predicted_performance.pitchers and player_predictions_by_position.pitchers; IDs match and were de-duplicated in this audit. | SD |
| info | CURRENT_FINALIZED_MATCH_BOX | CIN model-prediction batting totals differ from final simulation box score (AB: current=31, sim=36; H: current=8, sim=9; 2B: current=2, sim=3; HR: current=1, sim=0; R: current=5, sim=4; BB: current=4, sim=3; SO: current=9, sim=10). | CIN |
| info | CURRENT_PLAYER_MATCH_BOX | CIN current finalized hitter lines are model predictions and differ from the simulation box score: Héctor Rodríguez: AB current=3 box=5, H current=1 box=3, 2B current=0 box=1, RBI current=0 box=3; Elly De La Cruz: H current=1 box=0, 2B current=1 box=0, RBI current=1 box=0, R current=1 box=0; Sal Stewart: AB current=4 box=5, HR current=1 box=0, RBI current=1 box=0, R current=1 box=0; Juan Brito: AB current=3 box=4, H current=0 box=2, R current=0 box=1; Dane Myers: 2B current=0 box=1, RBI current=0 box=1, R current=0 box=1; Tyler Stephenson: AB current=4 box=3, RBI current=1 box=0, R current=0 box=1, SO current=1 box=2; Matt McLain: AB current=3 box=4, H current=1 box=0, R current=1 box=0; Edwin Arroyo: AB current=3 box=4, H current=1 box=0, SO current=1 box=2 | CIN |
| info | CURRENT_FINALIZED_MATCH_BOX | SD model-prediction batting totals differ from final simulation box score (AB: current=33, sim=32; H: current=8, sim=6; 3B: current=0, sim=1; RBI: current=4, sim=5; R: current=4, sim=5; BB: current=3, sim=6; SO: current=8, sim=7; SF: current=0, sim=1). | SD |
| info | CURRENT_PLAYER_MATCH_BOX | SD current finalized hitter lines are model predictions and differ from the simulation box score: Fernando Tatis Jr.: H current=1 box=2, RBI current=1 box=0, BB current=0 box=1, SO current=1 box=0; Xander Bogaerts: RBI current=1 box=0, BB current=1 box=0, SO current=0 box=1, HBP current=0 box=1; Ethan Salas: AB current=3 box=4, H current=1 box=0; Austin Hays: AB current=3 box=4, H current=1 box=0, SO current=1 box=2; Luis Campusano: H current=1 box=0, SO current=1 box=2; Jake Cronenworth: AB current=4 box=3, R current=0 box=1, SO current=1 box=0; Samad Taylor: H current=1 box=2, 3B current=0 box=1, RBI current=0 box=2, BB current=0 box=1; Jackson Merrill: AB current=5 box=3, H current=1 box=0, HR current=1 box=0, RBI current=1 box=0 | SD |
| info | RECONCILIATION_PROPAGATION | No score_target_reconciliation step was used for this game. |
| Team | Starter | Projected | Actual | ER err |
|---|---|---|---|---|
| SEA | Bryce Miller | 2 ER / 16 outs | 1 ER / 14 outs | -1 |
| BOS | Patrick Sandoval | 4 ER / 15 outs | 3 ER / 12 outs | -1 |
Every value is actual / projected. Run impact approximates how far each hitter's real line moved run expectancy from its projection; it orders the movers and is not a published stat.
Top deviations that drove the game:
Pitcher versus batter: what actually broke this game
Per-pitch matchup fields are not populated in the current feeds, so this is reconstructed from the settled box: each starter's workload-adjusted ERA, the bullpen share behind him, and the opposing lineup's real production against its projection, with the hitters who beat that projection named.
AWAY pitching
Bryce Miller (SEA) threw 14 outs, 1 ER = 1.93 ERA against a projected 3.38 ERA (-1.45 ERA error)
Bullpen behind him: 0 ER over 1 outs.
The HOME lineup he faced produced 3 runs on 11 hits and 1 HR, against a projected 4 runs / 9 hits (-1 runs vs projection).
Who did the damage to him:
Verdict: neither side broke materially - the result is closer to variance
HOME pitching
Patrick Sandoval (BOS) threw 12 outs, 3 ER = 6.75 ERA against a projected 7.2 ERA (-0.45 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 AWAY lineup he faced produced 8 runs on 12 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
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)
| Team | Pitcher | Outs | ERA | ER | H | HR | BB | SO | Context (as-of) |
|---|---|---|---|---|---|---|---|---|---|
| SEA | Bryce Miller (Starter) | 14 / 16 | 1.93 / 3.38 | 1 / 2 | 7 / 3 | 0 / 0 | 1 / 2 | 3 / 8 | venue away: 5.09 vs 3.14 ERA (worse here) · opp run factor 0.97 (average) · 17 prior appearances this season |
| SEA | José A. Ferrer (Setup Man) | 1 / 3 | 0 / 9 (-9.00) | 0 / 1 | 1 / 2 | 0 / 0 | 0 / 0 | 0 / 1 | |
| BOS | Patrick Sandoval (Starter) | 12 / 15 | 6.75 / 7.2 | 3 / 4 | 5 / 6 | 0 / 2 | 3 / 2 | 2 / 2 | venue home: 3.54 vs 4.74 ERA (ok) · opp run factor 0.93 (weak) · 9 prior appearances this season |
Hitters: actual / projected (sorted by run impact vs projection)
| Team | Batter | AB | H | 2B | 3B | HR | RBI | R | BB | SO | Run impact | Season xwOBA | Signal |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| BOS | Roman Anthony (DH) | 5 / 4 | 3 / 1 | 0 / 0 | 0 / 0 | 1 / 0 | 1 / 0 | 1 / 1 | 0 / 1 | 1 / 1 | 1.54 | 0.361 elite | projection too low |
| SEA | Weston Wilson (3B) | 4 / 3 | 2 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 2 / 0 | 1 / 0 | 1 / 1 | 1.27 | 0.26 weak | good day |
| BOS | Wilyer Abreu (RF) | 4 / 5 | 3 / 1 | 2 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 0 / 1 | 0 / 1 | 1.23 | 0.347 elite | projection too low |
| BOS | Nick Sogard (2B) | 4 / 4 | 0 / 1 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 1 / 1 | -1.11 | 0.327 above average | bad day |
| SEA | J.P. Crawford (SS) | 3 / 4 | 3 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 2 / 0 | 1 / 1 | 0 / 1 | 0.94 | 0.327 above average | projection too low |
| SEA | Taylor Ward (RF) | 5 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 1 / 1 | -0.8 | 0.333 above average | bad day |
| SEA | Jhonny Pereda (C) | 3 / 3 | 2 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 2 / 0 | 1 / 0 | 1 / 0 | 0 / 1 | 0.8 | 0.343 elite | projection too low |
| SEA | Randy Arozarena (LF) | 5 / 4 | 1 / 1 | 0 / 1 | 0 / 0 | 0 / 0 | 1 / 1 | 0 / 1 | 0 / 1 | 0 / 1 | -0.64 | 0.349 elite | bad day |
| SEA | Julio Rodríguez (CF) | 5 / 5 | 2 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 1 / 1 | 0 / 0 | 2 / 1 | 0.47 | 0.336 above average | — |
| SEA | Cole Young (2B) | 4 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 0 / 0 | 1 / 0 | -0.47 | 0.316 average | — |
| BOS | Jarren Duran (LF) | 4 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | -0.47 | 0.296 below average | — |
| BOS | Connor Wong (C) | 4 / 3 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | -0.47 | 0.286 below average | — |
| BOS | Caleb Durbin (3B) | 3 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 0 / 1 | 0.33 | 0.288 below average | — |
| BOS | Mickey Gasper (1B) | 5 / 3 | 2 / 1 | 1 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 1 / 1 | 0 / 0 | 1 / 0 | -0.15 | 0.372 elite | — |
| SEA | Dominic Canzone (DH) | 3 / 5 | 1 / 1 | 1 / 0 | 0 / 0 | 0 / 1 | 1 / 1 | 1 / 1 | 2 / 0 | 0 / 1 | 0.04 | 0.356 elite | — |
| SEA | Josh Naylor (1B) | 5 / 5 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 | 0.313 average | — |
| BOS | Ceddanne Rafaela (CF) | 3 / 5 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 0 | 0.282 weak | — |
| BOS | Trevor Story (SS) | 4 / 5 | 1 / 1 | 1 / 1 | 0 / 0 | 0 / 0 | 1 / 1 | 0 / 0 | 0 / 0 | 1 / 1 | 0 | 0.251 weak | — |
| Signal | Home-away edge | Meaning |
|---|---|---|
| Season quality | 0.852 | positive favors home; negative favors away |
| Recent form | 0.274 | positive favors home; negative favors away |
| Starting-pitcher matchup | 0.035 | positive favors home; negative favors away |
| Composite | 0.795 | positive favors home; negative favors away |
| Stage | Away-home runs | Confidence | What changed |
|---|---|---|---|
| historical_ml | 4.58-4.14 | 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.52 | Enhanced ML with recent form, H2H, low-score analysis (confidence shrunk by winner_starter_is_below_average, starter_quality_favours_the_other_side, 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.58-4.14 | 5-4 | -0.559 | 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 winner_starter_is_below_average, starter_quality_favours_the_other_side, 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 |
|---|---|---|---|---|
| BOS | Roman Anthony | batter / DH | better | predicted_RBI 2.848 |
| SEA | Julio Rodríguez | batter / CF | worse | predicted_AB -2.23 |
| BOS | Nick Sogard | batter / 2B | worse | predicted_SO 2.186 |
| SEA | Randy Arozarena | batter / LF | better | predicted_RBI 2.01 |
| BOS | Wilyer Abreu | batter / RF | worse | predicted_AB -1.94 |
| SEA | Josh Naylor | batter / 1B | worse | predicted_AB -1.82 |
| SEA | Weston Wilson | batter / 3B | worse | predicted_AB 1.5 |
| SEA | Dominic Canzone | batter / DH | worse | predicted_H -1.23 |
| 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 | 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 | BOS model-prediction batting totals differ from final simulation box score (AB: current=37, sim=35; H: current=9, sim=8; 2B: current=2, sim=3; HR: current=1, sim=0; RBI: current=4, sim=5; R: current=4, sim=5; BB: current=3, sim=2; SO: current=8, sim=10). | BOS |
| info | CURRENT_PLAYER_MATCH_BOX | BOS current finalized hitter lines are model predictions and differ from the simulation box score: Roman Anthony: H current=1 box=2, 2B current=0 box=1, RBI current=0 box=3; Mickey Gasper: AB current=3 box=4, H current=1 box=0, HR current=1 box=0, RBI current=1 box=0; Wilyer Abreu: AB current=5 box=3, RBI current=0 box=1; Nick Sogard: H current=1 box=0, 2B current=1 box=0, R current=1 box=0, BB current=1 box=0; Caleb Durbin: R current=0 box=1, SO current=1 box=0; Ceddanne Rafaela: AB current=5 box=4, H current=1 box=2, 2B current=0 box=1, R current=0 box=1; Trevor Story: AB current=5 box=4, 2B current=1 box=0, RBI current=1 box=0, R current=0 box=1; Jarren Duran: H current=1 box=0, RBI current=1 box=0 | BOS |
| info | CURRENT_FINALIZED_MATCH_BOX | SEA model-prediction batting totals differ from final simulation box score (AB: current=37, sim=34; H: current=8, sim=7; 2B: current=1, sim=0; HR: current=1, sim=2; RBI: current=3, sim=4; R: current=5, sim=4; SO: current=8, sim=6; HBP: current=0, sim=1). | SEA |
| info | CURRENT_PLAYER_MATCH_BOX | SEA current finalized hitter lines are model predictions and differ from the simulation box score: Randy Arozarena: AB current=4 box=5, H current=1 box=2, 2B current=1 box=0, HR current=0 box=1; Taylor Ward: H current=1 box=2, HR current=0 box=1, RBI current=0 box=1, BB current=1 box=0; Julio Rodríguez: AB current=5 box=3, RBI current=1 box=0, BB current=0 box=1, SO current=1 box=0; Cole Young: R current=1 box=0, SO current=0 box=1; Josh Naylor: AB current=5 box=3, H current=1 box=0, SO current=1 box=0, HBP current=0 box=1; Weston Wilson: AB current=3 box=4, SO current=1 box=2; Dominic Canzone: H current=1 box=0, HR current=1 box=0, RBI current=1 box=0, R current=1 box=0; Jhonny Pereda: H current=1 box=0, BB current=0 box=1, SO current=1 box=0 | SEA |
| info | RECONCILIATION_PROPAGATION | No score_target_reconciliation step was used for this game. |
No large single-factor errors.
| Team | Starter | Projected | Actual | ER err |
|---|---|---|---|---|
| SF | Landen Roupp | 1 ER / 16 outs | 1 ER / 15 outs | 0 |
| PIT | Bubba Chandler | 4 ER / 15 outs | 3 ER / 15 outs | -1 |
Every value is actual / projected. Run impact approximates how far each hitter's real line moved run expectancy from its projection; it orders the movers and is not a published stat.
Top deviations that drove the game:
Pitcher versus batter: what actually broke this game
Per-pitch matchup fields are not populated in the current feeds, so this is reconstructed from the settled box: each starter's workload-adjusted ERA, the bullpen share behind him, and the opposing lineup's real production against its projection, with the hitters who beat that projection named.
AWAY pitching
Landen Roupp (SF) threw 15 outs, 1 ER = 1.8 ERA against a projected 1.69 ERA (0.11 ERA error)
Bullpen behind him: 0 ER over 6 outs.
The HOME lineup he faced produced 4 runs on 7 hits and 0 HR, against a projected 5 runs / 10 hits (-1 runs vs projection).
Who did the damage to him:
Verdict: neither side broke materially - the result is closer to variance
HOME pitching
Bubba Chandler (PIT) threw 15 outs, 3 ER = 5.4 ERA against a projected 7.2 ERA (-1.8 ERA error)
Bullpen behind him: 0 ER over 0 outs.
The AWAY lineup he faced produced 5 runs on 7 hits and 1 HR, against a projected 4 runs / 8 hits (1 runs vs projection).
Who did the damage to him:
Verdict: neither side broke materially - the result is closer to variance
Starting pitchers & relievers: actual / projected + context (ERA is workload-aware: ER over 9 innings, so a short blow-up is not read like a quality start; ERA error in parentheses when material)
| Team | Pitcher | Outs | ERA | ER | H | HR | BB | SO | Context (as-of) |
|---|---|---|---|---|---|---|---|---|---|
| SF | Landen Roupp (Starter) | 15 / 16 | 1.8 / 1.69 | 1 / 1 | 2 / 6 | 0 / 0 | 2 / 2 | 4 / 6 | venue away: 4.44 vs 4.04 ERA (ok) · opp run factor 1.1 (strong) · 26 prior appearances this season |
| SF | Dylan Smith (Closer) | 3 / 3 | 0 / 0 | 0 / 0 | 1 / 0 | 0 / 0 | 0 / 0 | 2 / 2 | |
| SF | Jason Foley (Setup Man) | 3 / 1 | 0 / 54 (-54.00) | 0 / 2 | 1 / 3 | 0 / 0 | 1 / 1 | 0 / 1 | |
| PIT | Bubba Chandler (Starter) | 15 / 15 | 5.4 / 7.2 | 3 / 4 | 5 / 8 | 1 / 0 | 3 / 0 | 4 / 4 | venue home: 4.2 vs 4.39 ERA (ok) · opp run factor 0.95 (weak) · 26 prior appearances this season |
Hitters: actual / projected (sorted by run impact vs projection)
| Team | Batter | AB | H | 2B | 3B | HR | RBI | R | BB | SO | Run impact | Season xwOBA | Signal |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| PIT | Brandon Lowe (2B) | 4 / 6 | 1 / 2 | 1 / 1 | 0 / 0 | 0 / 1 | 0 / 1 | 0 / 1 | 1 / 1 | 0 / 1 | -1.4 | 0.322 above average | bad day |
| SF | Rafael Devers (1B) | 3 / 4 | 2 / 1 | 0 / 0 | 0 / 0 | 1 / 1 | 1 / 1 | 2 / 1 | 2 / 1 | 0 / 1 | 0.8 | 0.34 elite | projection too low |
| SF | Jung Hoo Lee (RF) | 5 / 5 | 0 / 1 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 0 / 0 | 2 / 0 | -0.78 | 0.315 average | no signal |
| SF | Turner Hill (LF) | 4 / 3 | 1 / 1 | 0 / 1 | 0 / 0 | 0 / 0 | 2 / 1 | 0 / 1 | 0 / 1 | 0 / 1 | -0.64 | 0.346 elite | bad day |
| PIT | Oneil Cruz (CF) | 4 / 6 | 1 / 2 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 0 / 1 | 1 / 1 | 2 / 1 | -0.47 | 0.352 elite | — |
| PIT | Jared Triolo (SS) | 2 / 3 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | -0.47 | 0.289 below average | — |
| PIT | Bryan Reynolds (DH) | 5 / 4 | 2 / 1 | 1 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 2 / 1 | 0 / 1 | 0 / 1 | 0.45 | 0.36 elite | — |
| PIT | Nick Gonzales (3B) | 4 / 5 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 0 / 1 | 1 / 0 | 0 / 1 | 0.33 | 0.327 above average | — |
| PIT | Spencer Horwitz (1B) | 5 / 5 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 1 / 0 | 0 / 1 | 1 / 1 | -0.33 | 0.312 average | — |
| PIT | Rafael Flores Jr. (C) | 4 / 3 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 1 / 0 | 1 / 1 | 0.33 | 0.339 above average | — |
| SF | Bryce Eldridge (DH) | 3 / 4 | 1 / 1 | 1 / 0 | 0 / 0 | 0 / 0 | 2 / 1 | 0 / 1 | 1 / 1 | 1 / 1 | 0.31 | 0.357 elite | — |
| SF | Shay Whitcomb (3B) | 4 / 3 | 1 / 1 | 1 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 0.31 | 0.251 weak | — |
| SF | Drew Gilbert (CF) | 3 / 3 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 1 / 0 | 1 / 0 | 0 / 1 | -0.14 | 0.328 above average | — |
| PIT | Esmerlyn Valdez (RF) | 4 / 3 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 0 / 1 | 1 / 0 | 3 / 1 | -0.14 | 0.331 above average | — |
| SF | Christian Koss (SS) | 4 / 3 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 2 / 0 | 0 / 0 | 0 / 1 | 0 | 0.24 weak | — |
| SF | Drew Cavanaugh (C) | 4 / 3 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 2 / 1 | 0 | 0.324 above average | — |
| SF | Nate Furman (2B) | 2 / 3 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 | 0.213 weak | — |
| PIT | Jake Mangum (LF) | 4 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 0 | 0.283 weak | — |
| Signal | Home-away edge | Meaning |
|---|---|---|
| Season quality | 0.451 | positive favors home; negative favors away |
| Recent form | -0.24 | positive favors home; negative favors away |
| Starting-pitcher matchup | 0.146 | positive favors home; negative favors away |
| Composite | 0.69 | positive favors home; negative favors away |
| Stage | Away-home runs | Confidence | What changed |
|---|---|---|---|
| historical_ml | 5.48-4.58 | n/a | Base ML historical model prediction |
| variance_applied | 5-5 | n/a | Deterministic baseline target (variance factor 1.0) |
| enhanced_prediction | 5-6 | 0.546 | Enhanced ML with recent form, H2H, low-score analysis (confidence shrunk by projected_margin_is_one_run) |
| embedded_savant_run_environment | 5-6 | n/a | Target score adjusted by temporal Savant lineup quality versus opposing starter quality |
| fundamental_edge_target_review | 5-6 | n/a | Refreshed score target and win probability after Savant/pitcher/team-strength adjustments |
| capped_target | 5-6 | n/a | Capped at max 12 realistic runs |
| simulation_result | 5-6 | n/a | Final inning-by-inning simulation result |
| Stage | Before | After | Toward final pick | What changed |
|---|---|---|---|---|
| variance_applied | 5.48-4.58 | 5-5 | 0.901 | Deterministic baseline target (variance factor 1.0) |
| enhanced_prediction | 5-5 | 5-6 | 1 | Enhanced ML with recent form, H2H, low-score analysis (confidence shrunk by projected_margin_is_one_run) |
| embedded_savant_run_environment | 5-6 | 5-6 | 0 | Target score adjusted by temporal Savant lineup quality versus opposing starter quality |
| fundamental_edge_target_review | 5-6 | 5-6 | 0 | Refreshed score target and win probability after Savant/pitcher/team-strength adjustments |
| capped_target | 5-6 | 5-6 | 0 | Capped at max 12 realistic runs |
| simulation_result | 5-6 | 5-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 |
|---|---|---|---|---|
| SF | Rafael Devers | batter / 1B | better | predicted_H 1.92 |
| SF | Nate Furman | batter / 2B | boosted | predicted_H 1.78 |
| PIT | Brandon Lowe | batter / 2B | worse | predicted_AB -1.74 |
| PIT | Oneil Cruz | batter / CF | deboosted | predicted_RBI 1.64 |
| SF | Turner Hill | batter / LF | worse | predicted_SO 1.538 |
| SF | Shay Whitcomb | batter / 3B | worse | predicted_AB 1.5 |
| SF | Drew Gilbert | batter / CF | worse | predicted_SO 1.433 |
| PIT | Spencer Horwitz | batter / 1B | worse | predicted_SO 1.365 |
| Severity | Rule | Finding | Subject |
|---|---|---|---|
| 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_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 | PIT model-prediction batting totals differ from final simulation box score (AB: current=39, sim=37; H: current=10, sim=11; RBI: current=5, sim=6; R: current=5, sim=6; BB: current=4, sim=3; SO: current=9, sim=10; HBP: 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: Bryan Reynolds: AB current=4 box=5, R current=1 box=0, BB current=1 box=0; Brandon Lowe: AB current=6 box=4, 2B current=1 box=0, HR current=1 box=0, RBI current=1 box=0; Esmerlyn Valdez: H current=1 box=0, RBI current=1 box=0, R current=1 box=0, BB current=0 box=1; Oneil Cruz: AB current=6 box=5, HR current=0 box=1, RBI current=1 box=3, BB current=1 box=0; Jake Mangum: RBI current=0 box=1, R current=0 box=1, SO current=1 box=0; Nick Gonzales: H current=1 box=2, 2B current=0 box=1; Spencer Horwitz: H current=1 box=2, RBI current=1 box=0, R current=0 box=1, BB current=1 box=0; Rafael Flores Jr.: H current=0 box=1, RBI current=0 box=1, R current=0 box=1, BB current=0 box=1 | PIT |
| info | CURRENT_FINALIZED_MATCH_BOX | SF model-prediction batting totals differ from final simulation box score (AB: current=31, sim=37; H: current=8, sim=10; 2B: current=2, sim=3; HR: current=1, sim=0; R: current=4, sim=5; BB: current=3, sim=1; SO: current=8, sim=12). | SF |
| info | CURRENT_PLAYER_MATCH_BOX | SF current finalized hitter lines are model predictions and differ from the simulation box score: Turner Hill: AB current=3 box=4, H current=1 box=0, 2B current=1 box=0, RBI current=1 box=0; Rafael Devers: AB current=4 box=5, H current=1 box=3, 2B current=0 box=1, HR current=1 box=0; Jung Hoo Lee: AB current=5 box=4, H current=1 box=2, 2B current=1 box=0, RBI current=1 box=0; Bryce Eldridge: 2B current=0 box=1, RBI current=1 box=2, BB current=1 box=0; Drew Gilbert: AB current=3 box=4, H current=1 box=0, RBI current=1 box=0, BB current=0 box=1; Christian Koss: AB current=3 box=4, SO current=1 box=2; Drew Cavanaugh: AB current=3 box=4, H current=1 box=0, SO current=1 box=2; Shay Whitcomb: AB current=3 box=4, 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 |
|---|---|---|---|---|
| STL | Brycen Mautz | 2 ER / 9 outs | 3 ER / 3 outs | 1 |
| LAD | Yoshinobu Yamamoto | 3 ER / 20 outs | 4 ER / 21 outs | 1 |
Every value is actual / projected. Run impact approximates how far each hitter's real line moved run expectancy from its projection; it orders the movers and is not a published stat.
Top deviations that drove the game:
Starter miss: Brycen Mautz (STL) posted 27.00 ERA vs projected 6.00 (3 ER in 3 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
Brycen Mautz (STL) threw 3 outs, 3 ER = 27 ERA against a projected 6 ERA (21 ERA error) only 2 prior appearances in the covered season - the projection had little of his own record to stand on
Bullpen behind him: 2 ER over 12 outs.
The HOME lineup he faced produced 5 runs on 11 hits and 2 HR, against a projected 5 runs / 8 hits (0 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
Yoshinobu Yamamoto (LAD) threw 21 outs, 4 ER = 5.14 ERA against a projected 4.05 ERA (1.09 ERA error)
Bullpen behind him: 3 ER over 6 outs.
The AWAY lineup he faced produced 7 runs on 7 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)
| Team | Pitcher | Outs | ERA | ER | H | HR | BB | SO | Context (as-of) |
|---|---|---|---|---|---|---|---|---|---|
| STL | Brycen Mautz (Starter) | 3 / 9 | 27 / 6 (+21.00) | 3 / 2 | 2 / 3 | 1 / 0 | 3 / 2 | 0 / 1 | opp run factor 1 (strong) · thin sample: 2 prior appearances this season (high uncertainty) |
| STL | Justin Bruihl (Middle Reliever (High Leverage)) | 3 / 5 | 0 / 16.2 (-16.20) | 0 / 3 | 1 / 4 | 0 / 1 | 0 / 1 | 1 / 0 | |
| STL | Riley O'Brien (Closer) | 3 / 4 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 2 | |
| STL | George Soriano (Setup Man) | 3 / 3 | 18 / 0 (+18.00) | 2 / 0 | 3 / 1 | 1 / 0 | 0 / 0 | 1 / 0 | |
| STL | Ryne Stanek (Middle Reliever (High Leverage)) | 3 / 3 | 0 / 0 | 0 / 0 | 2 / 0 | 0 / 0 | 0 / 1 | 1 / 1 | |
| LAD | Yoshinobu Yamamoto (Starter) | 21 / 20 | 5.14 / 4.05 | 4 / 3 | 5 / 4 | 2 / 1 | 2 / 0 | 8 / 7 | venue home: 3.12 vs 1.94 ERA (worse here) · opp run factor 0.98 (average) · 24 prior appearances this season |
| LAD | Tanner Scott (Closer) | 3 / 3 | 9 / 0 (+9.00) | 1 / 0 | 1 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | |
| LAD | Brock Stewart (Middle Reliever (High Leverage)) | 3 / 1 | 18 / 0 (+18.00) | 2 / 0 | 3 / 1 | 0 / 0 | 0 / 0 | 1 / 1 |
Hitters: actual / projected (sorted by run impact vs projection)
| Team | Batter | AB | H | 2B | 3B | HR | RBI | R | BB | SO | Run impact | Season xwOBA | Signal |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| LAD | Freddie Freeman (1B) | 2 / 4 | 2 / 1 | 0 / 1 | 0 / 0 | 1 / 0 | 3 / 0 | 1 / 1 | 3 / 1 | 0 / 1 | 1.75 | 0.374 elite | projection too low |
| STL | Thomas Saggese (SS) | 4 / 3 | 2 / 1 | 0 / 0 | 0 / 0 | 1 / 0 | 3 / 0 | 2 / 0 | 0 / 0 | 1 / 1 | 1.4 | 0.311 average | no signal |
| LAD | Shohei Ohtani (DH) | 4 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 1 / 1 | 1 / 1 | 4 / 1 | -1.4 | 0.401 elite | bad day |
| LAD | Mookie Betts (SS) | 6 / 4 | 2 / 1 | 1 / 1 | 0 / 0 | 1 / 0 | 2 / 1 | 1 / 1 | 0 / 0 | 2 / 0 | 1.4 | 0.329 above average | projection too low |
| LAD | Teoscar Hernández (LF) | 5 / 4 | 3 / 1 | 1 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 0 / 1 | 1.25 | 0.323 above average | projection too low |
| LAD | Miguel Rojas (2B) | 3 / 3 | 1 / 0 | 1 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 0.78 | 0.312 average | no signal |
| STL | Leonardo Bernal (DH) | 4 / 5 | 1 / 1 | 0 / 1 | 0 / 0 | 1 / 0 | 2 / 2 | 1 / 1 | 0 / 0 | 0 / 2 | 0.62 | 0.377 elite | projection too low |
| STL | Jordan Walker (RF) | 5 / 5 | 1 / 1 | 1 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 1 / 1 | 0 / 0 | 3 / 1 | -0.62 | 0.349 elite | bad day |
| STL | Bryan Torres (LF) | 3 / 3 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | -0.47 | 0.301 below average | — |
| STL | Iván Herrera (C) | 4 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 1 / 1 | 0 / 1 | -0.47 | 0.333 above average | — |
| STL | Nathan Church (CF) | 4 / 3 | 2 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 2 / 0 | 0 / 0 | 0 / 0 | 0.47 | 0.283 weak | — |
| STL | Alec Burleson (1B) | 4 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 0 / 1 | 0 / 0 | 1 / 1 | -0.47 | 0.37 elite | — |
| LAD | Max Muncy (3B) | 3 / 3 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 2 / 1 | -0.47 | 0.348 elite | — |
| STL | José Fermín (2B) | 3 / 3 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 1 / 0 | 0 / 0 | 0.33 | 0.291 below average | — |
| STL | Nolan Gorman (3B) | 3 / 3 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 3 / 1 | -0.33 | 0.275 weak | — |
| LAD | Tommy Edman (CF) | 5 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 2 / 0 | 0 / 0 | 1 / 1 | 0 | 0.316 average | — |
| LAD | Kyle Tucker (RF) | 4 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 1 / 1 | 0 / 1 | 0 | 0.327 above average | — |
| LAD | Hunter Feduccia (C) | 4 / 3 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 2 / 1 | 0 | 0.319 average | — |
| Signal | Home-away edge | Meaning |
|---|---|---|
| Season quality | 0.988 | positive favors home; negative favors away |
| Recent form | 0.249 | positive favors home; negative favors away |
| Starting-pitcher matchup | 0.016 | positive favors home; negative favors away |
| Composite | 0.82 | positive favors home; negative favors away |
| Stage | Away-home runs | Confidence | What changed |
|---|---|---|---|
| historical_ml | 4.58-5.48 | n/a | Base ML historical model prediction |
| variance_applied | 5-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 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.58-5.48 | 5-5 | -0.894 | Deterministic baseline target (variance factor 1.0) |
| enhanced_prediction | 5-5 | 4-5 | 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-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 |
|---|---|---|---|---|
| LAD | Hunter Feduccia | batter / C | better | predicted_H 2.76 |
| LAD | Freddie Freeman | batter / 1B | worse | predicted_SO 2.301 |
| STL | Leonardo Bernal | batter / DH | worse | predicted_RBI -2 |
| LAD | Teoscar Hernández | batter / LF | better | predicted_RBI 1.6 |
| STL | Bryan Torres | batter / LF | worse | predicted_AB 1.5 |
| LAD | Miguel Rojas | batter / 2B | worse | predicted_AB 1.5 |
| LAD | Tommy Edman | batter / CF | better | predicted_AB 1.404 |
| LAD | Shohei Ohtani | batter / DH | worse | predicted_RBI 1.386 |
| 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 | 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 | LAD model-prediction batting totals differ from final simulation box score (AB: current=33, sim=34; 2B: current=2, sim=1; 3B: current=0, sim=2; RBI: current=4, sim=5; SO: current=7, sim=4). | LAD |
| info | CURRENT_PLAYER_MATCH_BOX | LAD current finalized hitter lines are model predictions and differ from the simulation box score: Shohei Ohtani: HR current=1 box=0, RBI current=1 box=2, SO current=1 box=0; Tommy Edman: AB current=4 box=5, R current=0 box=1, SO current=1 box=0; Miguel Rojas: AB current=3 box=4; Kyle Tucker: AB current=4 box=3, 3B current=0 box=1, RBI current=1 box=0, SO current=1 box=0; Mookie Betts: H current=1 box=0, 2B current=1 box=0, RBI current=1 box=0, R current=1 box=0; Freddie Freeman: AB current=4 box=3, H current=1 box=0, 2B current=1 box=0, R current=1 box=0; Teoscar Hernández: HR current=0 box=1, RBI current=0 box=2, SO current=1 box=0; Hunter Feduccia: AB current=3 box=4, H current=1 box=3, 2B current=0 box=1, 3B current=0 box=1 | LAD |
| info | CURRENT_FINALIZED_MATCH_BOX | STL model-prediction batting totals differ from final simulation box score (H: current=8, sim=6; HR: current=1, sim=2; RBI: current=5, sim=4; BB: current=2, sim=0; SO: current=8, sim=9). | STL |
| info | CURRENT_PLAYER_MATCH_BOX | STL current finalized hitter lines are model predictions and differ from the simulation box score: Bryan Torres: AB current=3 box=4, H current=1 box=0, SO 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=0; Leonardo Bernal: AB current=5 box=4, H current=1 box=0, 2B current=1 box=0, RBI current=2 box=0; José Fermín: H current=1 box=0, SO current=0 box=1; Nathan Church: HR current=0 box=1, R current=0 box=1; Thomas Saggese: R current=0 box=1, SO current=1 box=2; Alec Burleson: H current=1 box=2, 2B current=0 box=1; Jordan Walker: AB current=5 box=4, H current=1 box=2, RBI current=1 box=2 | STL |
| info | RECONCILIATION_PROPAGATION | No score_target_reconciliation step was used for this game. |
| Team | Starter | Projected | Actual | ER err |
|---|---|---|---|---|
| TOR | Dylan Cease | 2 ER / 18 outs | 0 ER / 18 outs | -2 |
| CLE | Joey Cantillo | 2 ER / 15 outs | 4 ER / 16 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: Joey Cantillo (CLE) posted 6.75 ERA vs projected 3.60 (4 ER in 16 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
Dylan Cease (TOR) threw 18 outs, 0 ER = 0 ERA against a projected 3 ERA (-3 ERA error)
Bullpen behind him: 0 ER over 0 outs.
The HOME lineup he faced produced 0 runs on 5 hits and 0 HR, against a projected 4 runs / 9 hits (-4 runs vs projection).
Who did the damage to him:
Verdict: neither side broke materially - the result is closer to variance
HOME pitching
Joey Cantillo (CLE) threw 16 outs, 4 ER = 6.75 ERA against a projected 3.6 ERA (3.15 ERA error)
Bullpen behind him: 0 ER over 0 outs.
The AWAY lineup he faced produced 9 runs on 12 hits and 1 HR, against a projected 4 runs / 8 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)
| Team | Pitcher | Outs | ERA | ER | H | HR | BB | SO | Context (as-of) |
|---|---|---|---|---|---|---|---|---|---|
| TOR | Dylan Cease (Starter) | 18 / 18 | 0 / 3 (-3.00) | 0 / 2 | 4 / 6 | 0 / 0 | 0 / 1 | 4 / 3 | venue away: 1.67 vs 2.91 ERA (ok) · opp run factor 0.92 (weak) · 25 prior appearances this season |
| CLE | Joey Cantillo (Starter) | 16 / 15 | 6.75 / 3.6 (+3.15) | 4 / 2 | 9 / 4 | 1 / 1 | 2 / 2 | 6 / 2 | venue home: 3.56 vs 3.81 ERA (ok) · opp run factor 1 (weak) · 28 prior appearances this season |
Hitters: actual / projected (sorted by run impact vs projection)
| Team | Batter | AB | H | 2B | 3B | HR | RBI | R | BB | SO | Run impact | Season xwOBA | Signal |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| TOR | Vladimir Guerrero Jr. (1B) | 4 / 4 | 3 / 1 | 1 / 0 | 0 / 0 | 1 / 0 | 5 / 0 | 1 / 1 | 0 / 0 | 0 / 0 | 2.18 | 0.333 above average | projection too low |
| TOR | Kazuma Okamoto (3B) | 4 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 0 / 1 | 0 / 1 | 3 / 1 | -1.73 | 0.319 average | no signal |
| CLE | Angel Martínez (LF) | 3 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 0 / 1 | 0 / 0 | 2 / 1 | -1.4 | 0.304 below average | projection too high |
| TOR | Andrés Giménez (SS) | 3 / 3 | 2 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 0 / 0 | 1 / 1 | 0.94 | 0.269 weak | good day |
| TOR | Alejandro Kirk (C) | 5 / 5 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 0 / 1 | 2 / 1 | -0.8 | 0.302 below average | projection too high |
| TOR | Myles Straw (LF) | 3 / 3 | 2 / 1 | 1 / 1 | 0 / 0 | 0 / 0 | 1 / 0 | 2 / 0 | 1 / 0 | 0 / 0 | 0.8 | 0.296 below average | good day |
| CLE | Steven Kwan (CF) | 3 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 0 / 0 | -0.8 | 0.321 above average | bad day |
| CLE | Travis Bazzana (2B) | 3 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 1 / 1 | -0.8 | 0.299 below average | projection too high |
| CLE | José Ramírez (3B) | 3 / 4 | 0 / 1 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 0 / 0 | 0 / 1 | -0.78 | 0.335 above average | bad day |
| CLE | Chase DeLauter (DH) | 4 / 4 | 3 / 1 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 0 / 1 | 0.61 | 0.343 elite | projection too low |
| TOR | Nathan Lukes (RF) | 5 / 4 | 2 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 0 / 0 | 0 / 0 | 1 / 1 | 0.47 | 0.287 below average | — |
| CLE | Nathaniel Lowe (1B) | 4 / 3 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 0 / 0 | 2 / 1 | -0.47 | 0.335 above average | — |
| CLE | Jo Adell (RF) | 3 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | -0.47 | 0.325 above average | — |
| CLE | Angel Genao (SS) | 3 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 2 / 0 | -0.47 | 0.297 below average | — |
| CLE | Patrick Bailey (C) | 3 / 3 | 2 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 0 / 0 | 1 / 1 | 0.47 | 0.309 average | — |
| TOR | Brett Bateman (CF) | 4 / 5 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 3 / 1 | 1 / 1 | 0 / 1 | 0 | 0.282 weak | — |
| TOR | George Springer (DH) | 4 / 4 | 1 / 1 | 1 / 1 | 0 / 0 | 0 / 0 | 1 / 1 | 1 / 1 | 0 / 0 | 1 / 1 | 0 | 0.306 average | — |
| TOR | Ernie Clement (2B) | 5 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 0 / 0 | 0 / 0 | 0 | 0.266 weak | — |
| Signal | Home-away edge | Meaning |
|---|---|---|
| Season quality | 0.556 | positive favors home; negative favors away |
| Recent form | 0.764 | positive favors home; negative favors away |
| Starting-pitcher matchup | -0.079 | positive favors home; negative favors away |
| Composite | 0.504 | positive favors home; negative favors away |
| Stage | Away-home runs | Confidence | What changed |
|---|---|---|---|
| historical_ml | 4.48-3.44 | n/a | Base ML historical model prediction |
| variance_applied | 4-3 | n/a | Deterministic baseline target (variance factor 1.0) |
| enhanced_prediction | 2-4 | 0.584 | Enhanced ML with recent form, H2H, low-score analysis (confidence shrunk by starter_quality_favours_the_other_side, projected_margin_is_one_run, matchup_recency_guardrail) |
| embedded_savant_run_environment | 2-3 | n/a | Target score adjusted by temporal Savant lineup quality versus opposing starter quality |
| fundamental_edge_target_review | 2-3 | n/a | Refreshed score target and win probability after Savant/pitcher/team-strength adjustments |
| capped_target | 2-3 | n/a | Capped at max 12 realistic runs |
| simulation_result | 2-3 | n/a | Final inning-by-inning simulation result |
| Stage | Before | After | Toward final pick | What changed |
|---|---|---|---|---|
| variance_applied | 4.48-3.44 | 4-3 | 0.04 | Deterministic baseline target (variance factor 1.0) |
| enhanced_prediction | 4-3 | 2-4 | 3 | Enhanced ML with recent form, H2H, low-score analysis (confidence shrunk by starter_quality_favours_the_other_side, projected_margin_is_one_run, matchup_recency_guardrail) |
| embedded_savant_run_environment | 2-4 | 2-3 | -1 | Target score adjusted by temporal Savant lineup quality versus opposing starter quality |
| fundamental_edge_target_review | 2-3 | 2-3 | 0 | Refreshed score target and win probability after Savant/pitcher/team-strength adjustments |
| capped_target | 2-3 | 2-3 | 0 | Capped at max 12 realistic runs |
| simulation_result | 2-3 | 2-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 |
|---|---|---|---|---|
| CLE | José Ramírez | batter / 3B | better | predicted_H 1.97 |
| CLE | Steven Kwan | batter / CF | better | predicted_2B 1.862 |
| TOR | Brett Bateman | batter / CF | worse | predicted_AB -1.78 |
| TOR | Alejandro Kirk | batter / C | worse | predicted_AB -1.65 |
| CLE | Jo Adell | batter / RF | worse | predicted_H -1.21 |
| CLE | Patrick Bailey | batter / C | worse | predicted_SO 1.169 |
| TOR | Ernie Clement | batter / 2B | worse | predicted_AB -1.06 |
| CLE | Angel Martínez | batter / LF | worse | predicted_H -1.01 |
| 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 | 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 | CLE model-prediction batting totals differ from final simulation box score (AB: current=34, sim=31; H: current=9, sim=7; 2B: current=2, sim=5; HR: current=1, sim=0; RBI: current=5, sim=3; R: current=4, sim=3; SO: current=7, sim=3). | CLE |
| info | CURRENT_PLAYER_MATCH_BOX | CLE current finalized hitter lines are model predictions and differ from the simulation box score: Steven Kwan: AB current=4 box=3, H current=1 box=2, 2B current=0 box=2; Chase DeLauter: AB current=4 box=3, R current=1 box=0, SO current=1 box=0; José Ramírez: H current=1 box=3, RBI current=1 box=2, SO current=1 box=0; Nathaniel Lowe: AB current=3 box=4, 2B current=0 box=1, R current=0 box=1, SO current=1 box=0; Jo Adell: H current=1 box=0, RBI current=1 box=0, SO current=1 box=0; Angel Genao: AB current=4 box=3, H current=1 box=0; Angel Martínez: H current=1 box=0, HR current=1 box=0, RBI current=1 box=0, R current=1 box=0; Travis Bazzana: AB current=4 box=3, H current=1 box=0, SO current=1 box=0 | CLE |
| info | CURRENT_FINALIZED_MATCH_BOX | TOR model-prediction batting totals differ from final simulation box score (AB: current=36, sim=31; H: current=8, sim=4; 2B: current=2, sim=1; RBI: current=4, sim=2; R: current=4, sim=2; BB: current=3, sim=2). | TOR |
| info | CURRENT_PLAYER_MATCH_BOX | TOR current finalized hitter lines are model predictions and differ from the simulation box score: Vladimir Guerrero Jr.: H current=1 box=0, R current=1 box=0; Brett Bateman: AB current=5 box=3, 2B current=0 box=1, R current=1 box=0; Alejandro Kirk: AB current=5 box=3, H current=1 box=0, RBI current=1 box=0; George Springer: 2B current=1 box=0, SO current=1 box=0; Nathan Lukes: HR current=0 box=1, R current=0 box=1; Myles Straw: H current=1 box=0, 2B current=1 box=0, SO current=0 box=1; Kazuma Okamoto: H current=1 box=0, HR current=1 box=0, RBI current=1 box=0, R current=1 box=0; Ernie Clement: AB current=4 box=3, H current=1 box=0 | TOR |
| 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; 8/8 causes; 6/6 sources
All seven manifest entries were reviewed as evidence records:
| Source | Status | Size | Purpose |
|---|---|---|---|
prediction review — /app/output/reports/prediction_review_20260902.json | Loaded | 372,146 bytes | Official outcomes and scoring errors |
forensic deep audit — /app/output/reports/PREDICTION_SYSTEM_DEEP_AUDIT_20260902.json | Loaded | 240,269 bytes | Probability, provenance, starter, and decision contracts |
continuous learning — /app/output/learning/continuous_learning_daily_20260902.json | Loaded | 1,925,532 bytes | Pipeline-stage quality, calibration, probability lineage, score distribution, starter comparisons |
detailed report — /app/output/reports/detailed_20260902.html | Loaded | 352,626 bytes | Full game and simulation rendering |
ultra detailed player audit — /app/output/reports/20260902_ultra_detailed_player_audit.html | Loaded | 30,625,934 bytes | Player-level prediction trace |
structural audit — /app/output/reports/audit_report_20260902.html | Loaded | 1,878,790 bytes | Invariant findings |
integrity revision audit — /app/output/reports/audit_report_20260902_integrity_revision.html | Missing | Not supplied | Post-Luna remediation proof for immutable revision artifacts |
The missing integrity-revision audit is a genuine evidence gap. It prevents independent confirmation that any post-generation remediation or immutable revision process was correctly recorded.
All 15 expected games were reviewed:
Coverage is complete according to the matrix:
The slate was therefore fully covered, but it was not defect-free.
unexplained_material_delta: true.unexplained_material_delta: false. The delta is only +0.9808 percentage points, below the material threshold, so this is a traceability warning rather than the critical SF-type defect.variance_applied → enhanced_prediction reduced winner accuracy from 9/15 to 5/15, a four-hit regression. The transition lists nine direction changes, of which one improved ATL@WAS and five are explicitly classified as regressions; three additional changes were recoveries or non-loss changes. The causal register correctly focuses on the net four-hit degradation, but the full flip list must remain in the trace.player_level_forensics.available is false. Player adjustments are recorded, but post-game player-level attribution cannot be independently verified for those games.---
This was not merely a bad-score slate. The published winner layer also failed materially, and an intermediate model stage degraded winner direction.
The published system correctly selected five winners:
It missed ten.
The historical ML stage would have selected 11/15 correctly. After variance_applied, accuracy fell to 9/15. After enhanced_prediction, it fell further to 5/15. All later stages remained at 5/15.
That makes the most important winner-direction finding the high-severity pipeline instability at variance_applied → enhanced_prediction. This is a material model/process risk, not an artifact issue.
Published confidence was materially overconfident:
The two moderate-confidence buckets performed especially poorly. The evidence supports bounded empirical shrinkage experiments, but the causal register correctly warns against treating one slate as a stable calibration curve. Cross-slate evidence later establishes this as a persistent pattern.
No high-raw-probability cluster was present: threshold 0.65, games 0, hits 0.
Score accuracy was the weakest broad model dimension.
The score-margin compression finding is high severity because it is broad, repeated, and persistent across six prior slates in the trend record. It is not a justification for indiscriminately widening every forecast; it supports a bounded shadow experiment on registered variance parameters.
The low run-model R² confirms that exact scores are weakly supported by the current features. Winner and score systems should not be treated as equally reliable outputs.
Starter projections were mixed rather than uniformly defective.
Several games had meaningful starter ER errors:
Other games had relatively accurate starter ER projections, with worst error only one run:
The lever tension was nearly balanced: pitcher-form reweighting helped seven games and risked hurting six. The evidence does not justify a broad pitcher-weight change today.
Artifact integrity was mostly sound but not clean:
The causal register must therefore be reconciled as follows:
variance_applied → enhanced_prediction changed winner accuracy by −0.2667, or four hits---
Notation: edge is the absolute home-minus-away confidence distance; signed edge is home probability direction. “Path” lists the meaningful published score stages.
solid_correct_call label, although exact score was not exact---
| Game | Earliest stage moving toward wrong result | Diagnosis |
|---|---|---|
| BAL@COL | Historical ML already favored BAL | Bad weighting/input balance or irreducible close-game variance; starter projection also overstated Rogers’ ER |
| DET@MIN | enhanced_prediction: DET → MIN | Bad weighting/process regression; recent/H2H/low-score logic overrode the prior direction. The 0.12 edge was moderate, not near coin-flip |
| NYM@TB | Historical ML already favored TB | Bad winner weighting or irreducible variance; score model severely underpredicted NYM offense |
| OAK@TEX | Historical ML slightly favored OAK, then variance_applied made it TEX and enhanced_prediction retained TEX | Earliest wrong direction: variance stage. Later enhancement preserved the error. The 0.12 edge was moderate |
| PHI@ARI | Historical ML favored ARI, then variance_applied moved to PHI and enhanced_prediction retained PHI | Earliest wrong direction: variance stage. Starter and low-run-environment errors worsened the miss |
| SD@CIN | Historical ML, variance, and enhanced stages all favored SD | Lean-side miss with modest starter and Cincinnati-offense error; likely variance/weighting plus irreducible outcome noise |
| SEA@BOS | Historical ML slightly favored SEA; variance_applied remained close, enhanced_prediction moved to BOS | Earliest clear wrong-direction stage: enhanced prediction. Toss-up variance was important; winner confidence was only 0.04 |
| SF@PIT | Historical ML favored SF; variance produced a tie; enhancement moved to PIT | Earliest directional degradation began at variance through SF → tie, then enhancement completed the wrong-side move |
| STL@LAD | Historical ML favored LAD; variance produced a tie; enhancement restored LAD | Earliest movement away from the actual winner began at historical ML itself; variance did not create the final wrong side but did remove a correct historical direction |
| TOR@CLE | Historical ML favored TOR; variance preserved TOR; enhancement moved to CLE | Earliest wrong-direction stage: enhanced prediction. The later score environment did not recover it |
variance_applied → enhanced_prediction, with a net four-hit winner regression. DET@MIN, OAK@TEX, PHI@ARI, SEA@BOS, and TOR@CLE are explicitly registered; the full transition also moved ATL, NYM, SF, and STL.| Stage | Winner accuracy | Winner hits | Team-run MAE | Margin MAE | Total-run MAE |
|---|---|---|---|---|---|
| historical_ml | 73.33% | 11 | 2.9394 | 3.8777 | 4.0109 |
| variance_applied | 60.00% | 9 | 2.9333 | 3.7333 | 4.1333 |
| enhanced_prediction | 33.33% | 5 | 3.0667 | 4.6667 | 4.0000 |
| embedded_savant_run_environment | 33.33% | 5 | 3.1333 | 4.5333 | 4.2667 |
| fundamental_edge_target_review | 33.33% | 5 | 3.1333 | 4.5333 | 4.2667 |
| capped_target | 33.33% | 5 | 3.1333 | 4.5333 | 4.2667 |
| simulation_result | 33.33% | 5 | 3.1333 | 4.5333 | 4.2667 |
| published_final | 33.33% | 5 | 3.1333 | 4.5333 | 4.2667 |
Transitions:
A later unchanged or recovered stage does not erase the enhanced-stage regression.
---
Lever: score.variance_multiplier / score.variance_floor
Proposed direction: widen run distributions
Targets: Brier score and calibration error
Helps:
Hurts: none listed in the slate-level tension record.
Net evidence: 4 helps, 0 hurts. This is favorable, but the counterfactual is mainly about distribution and calibration, not guaranteed winner improvement. It should be tested as a bounded shadow experiment.
Lever: player.pitcher.v4 form weights / player.pitcher_prior_games
Helps:
Hurts or creates risk:
Net evidence: 7 helps versus 6 hurts. No broad move is supported. The lever risks disturbing several games where starter projection was already within one ER.
Lever: recent.* / season.* run-mean weighting
Helps or could reduce error in:
Hurts or risks disturbing:
Net evidence: 12 helps versus 1 hurts. This is favorable for run MAE and total-run MAE, but the cross-slate weak-R² finding argues for isolated training/backtesting rather than an immediate production weighting change.
---
No structural audit file reports a critical finding. However, the causal register contains one critical contract failure:
PITCH_COUNT_PITCHER_MATCHPITCH_COUNT_PITCHER_MATCHThese are artifact/stat-contract defects, not demonstrated prediction causes.
The evidence does not support blaming the two pitch-count warnings for the misses.
The available lineage records contain the following fields:
Most games have a recorded transformation such as “score coherence followed by matchup-recency guardrail,” and the governor is marked applied.
Material bypass:
Non-material traceability issue:
No other material unexplained publication delta is recorded.
---
The trend window covers six slates, with five prior slates loaded.
These are established failures, not single-slate noise.
score.variance_multiplier, score.variance_floorteam_run_mae, total_run_maesimulation.allow_scoreteam_run_mae, total_run_maeconfidence.empirical_max_weight, confidence.base_cap, confidence.moderate_captraining.xgb.n_estimators, training.xgb.max_depth, training.xgb.learning_ratehigh_raw_probability_cluster: consecutive count 0; present now false; incidence 2/6pipeline_winner_instability: consecutive count 1; present now true; incidence 3/6score_margin_compression: consecutive count 3; present now true; incidence 3/6simulation_inert_on_slate: consecutive count 6; present now true; incidence 6/6single_slate_calibration_instability: consecutive count 3; present now true; incidence 5/6weak_run_model_signal: consecutive count 6; present now true; incidence 6/6Current buckets remain overconfident:
The trend direction is marked flat, but at a poor level rather than a healthy level.
The top-confidence pick has a current loss streak of 2:
---
Recommendations are ranked by persistence, scope, expected metric effect, and regression risk.
score.variance_multiplierscore.variance_floor could be tested separately, not simultaneously, to preserve causal interpretability.
confidence.empirical_max_weightDo not simultaneously change confidence.base_cap or confidence.moderate_cap; those are alternative shadow levers.
simulation.allow_scoresimulation_result and published_finaltraining.xgb.n_estimators, training.xgb.max_depth, training.xgb.learning_ratevariance_applied → enhanced_prediction winner regression---
Known:
variance_applied → enhanced_prediction caused a material four-hit winner regression.Uncertain:
The single safest next action is:
> Block promotion and trace the complete probability lineage for SF@PIT while simultaneously preserving before/after winner picks at every pipeline stage, especially the variance_applied → enhanced_prediction transition.
That action addresses the only critical contract failure and the strongest single-slate process risk without making an unvalidated production tuning change.