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_20260831.json | n/a |
| forensic deep audit | loaded | probability, provenance, starter and decision contracts | /app/output/reports/PREDICTION_SYSTEM_DEEP_AUDIT_20260831.json | n/a |
| continuous learning | loaded | pipeline-stage quality, calibration, probability lineage | /app/output/learning/continuous_learning_daily_20260831.json | n/a |
| game artifacts | loaded | per-game model trace and structural audit source | /app/output/games | n/a |
Deterministic findings across data integrity, model validation, calibration, score distribution, pipeline stages, simulation, and coverage. Critical is reserved for broken evidence or an unexplained contract violation; high marks material model/process risk. Each row pairs the action to take (Do this) with the wrong conclusion to avoid (Don't conclude).
| Severity | Domain | Finding and evidence | Affected | Action & guardrail |
|---|---|---|---|---|
| HIGH | pipeline_stages | An intermediate stage materially degraded winner direction historical_ml → variance_applied changed winner accuracy by -0.1667 (-2 hits) | BAL@COL, NYY@LAA | 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 11/12 predictions were ≤2 runs; 6/12 actual margins were ≥4; mean predicted margin 1.42 vs actual 4.92 | DET@MIN, MIL@CHC, NYY@LAA, OAK@TEX, SD@CIN, SF@ATL | 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.1661 across 12 games | BAL@COL, CHW@HOU, DET@MIN, MIA@WAS, MIL@CHC, NYM@TB, NYY@LAA, OAK@TEX, PHI@ARI, SD@CIN, SEA@BOS, SF@ATL | Do thisWatch the same confidence buckets over the full rolling window before changing any calibration weight. Don't concludeA single slate has far too few games to establish a stable calibration curve. |
| HIGH | model_validation | Validated run models explain very little holdout variance home/away/total R² = 0.0378/0.0275/0.0272 | BAL@COL, CHW@HOU, DET@MIN, MIA@WAS, MIL@CHC, NYM@TB, NYY@LAA, OAK@TEX, PHI@ARI, SD@CIN, SEA@BOS, SF@ATL | Do thisTreat exact run scores as low-confidence estimates, and look for stronger features or a better target before tuning the score tails. Don't concludeA small positive R² only means the model beats guessing the average; it does not make the exact scores reliable. |
| INFO | coverage | Every settled game received structural QA 12/12 games structurally audited | BAL@COL, CHW@HOU, DET@MIN, MIA@WAS, MIL@CHC, NYM@TB, NYY@LAA, OAK@TEX, PHI@ARI, SD@CIN, SEA@BOS, SF@ATL | Do thisKeep the per-game audit receipt in every report. Don't concludeFull audit coverage does not cancel the findings raised inside the audited games. |
| INFO | probability_lineage | Material calibrated-to-published movements have recorded lineage 8 material movement(s), all explained by named score-coherence and/or recency transformations | CHW@HOU, DET@MIN, MIA@WAS, MIL@CHC, NYY@LAA, OAK@TEX, SEA@BOS, SF@ATL | Do thisKeep showing every probability layer and the named transformation between them. Don't concludeA published probability above the calibrated one is not a governor bypass when a recorded transformation explains it. |
| INFO | simulation | Simulation produced no winner-direction intervention on this slate flip candidates 0; published flips 0 | BAL@COL, CHW@HOU, DET@MIN, MIA@WAS, MIL@CHC, NYM@TB, NYY@LAA, OAK@TEX, PHI@ARI, SD@CIN, SEA@BOS, SF@ATL | Do thisMeasure the simulation's contribution across rolling slates, separating score realization from winner flipping. Don't concludeZero winner flips is not a defect and does not mean the simulation did no score-reconciliation work. |
A finding that has repeated at or beyond the escalation streak is no longer single-slate noise. It carries its target registered lever and an action-oriented guardrail.
| Finding | Persistence | Target lever(s) | Direction | Guardrail |
|---|---|---|---|---|
| simulation_inert_on_slate | 4 consecutive · 4 in window | simulation.allow_score | confirm the simulation module is running, not silently no-oping | simulation_inert_on_slate has persisted 4 consecutive slates; this is no longer single-slate noise. Treat it as an actionable pattern and raise the code/diagnostic action named; do not force a parameter move. |
| weak_run_model_signal | 4 consecutive · 4 in window | training.xgb.n_estimators, training.xgb.max_depth, training.xgb.learning_rate | investigate features/target via isolated training backtest (manual) | weak_run_model_signal has persisted 4 consecutive slates; this is no longer single-slate noise. Treat it as an actionable pattern and raise the code/diagnostic action named; do not force a parameter move. |
| Finding | Consecutive slates | Incidence | Present now | Fix type |
|---|---|---|---|---|
| high_raw_probability_cluster | 0 | 1/4 | no | param |
| pipeline_winner_instability | 2 | 2/4 | yes | code/diagnostic |
| score_margin_compression | 1 | 1/4 | yes | param |
| simulation_inert_on_slate | 4 | 4/4 | yes | code/diagnostic |
| single_slate_calibration_instability | 1 | 3/4 | yes | param |
| weak_run_model_signal | 4 | 4/4 | yes | code/diagnostic |
| Metric | Direction | Series (old → new) |
|---|---|---|
| winner_accuracy | flat | [0.4667, 0.9412, 0.5, 0.6667] |
| weighted_calibration_error | improving | [0.2179, 0.3961, 0.0693, 0.1661] |
| margin_bias | regressing | [-1.333, -1.882, -2.786, -3.5] |
| team_run_error_on_losses | regressing | [5.0, 3.0, 7.0, 8.25] |
Every stored stage is scored against the same official finals. A later recovery remains visible; it does not erase an unstable intermediate flip.
| Stage | Winner hits | Accuracy | Team-run MAE | Total-run MAE | Margin MAE |
|---|---|---|---|---|---|
| historical_ml | 8/12 | 66.7% | 3.128 | 3.991 | 4.702 |
| variance_applied | 6/12 | 50% | 3.125 | 3.917 | 4.75 |
| enhanced_prediction | 8/12 | 66.7% | 3.458 | 4.25 | 4.75 |
| embedded_savant_run_environment | 8/12 | 66.7% | 3.417 | 4.333 | 4.667 |
| fundamental_edge_target_review | 8/12 | 66.7% | 3.417 | 4.333 | 4.667 |
| capped_target | 8/12 | 66.7% | 3.417 | 4.333 | 4.667 |
| simulation_result | 8/12 | 66.7% | 3.417 | 4.333 | 4.667 |
| published_final | 8/12 | 66.7% | 3.417 | 4.333 | 4.667 |
| Transition | Δ accuracy | Δ hits | Δ team-run MAE | Δ margin MAE | Games whose winner/tie changed |
|---|---|---|---|---|---|
| historical_ml → variance_applied | -0.1667 | -2 | -0.0033 | 0.0477 | BAL@COL: BAL → TIE; NYY@LAA: LAA → TIE; PHI@ARI: ARI → TIE |
| variance_applied → enhanced_prediction | 0.1667 | 2 | 0.3333 | 0 | BAL@COL: TIE → BAL; NYY@LAA: TIE → NYY; PHI@ARI: TIE → PHI |
| enhanced_prediction → embedded_savant_run_environment | 0 | 0 | -0.0416 | -0.0833 | |
| embedded_savant_run_environment → fundamental_edge_target_review | 0 | 0 | 0 | 0 | |
| fundamental_edge_target_review → capped_target | 0 | 0 | 0 | 0 | |
| capped_target → simulation_result | 0 | 0 | 0 | 0 | |
| simulation_result → published_final | 0 | 0 | 0 | 0 |
All columns are pick-side probabilities, so away favorites are not accidentally compared using home-side semantics.
| Game | Outcome | Raw model | Calibrated | Governor | Score coherence | Published | Explanation |
|---|---|---|---|---|---|---|---|
| BAL@COL | hit | 0.7585 | 0.7435 | 0.7435 | 0.7492 | 0.7492 | score_coherence aligned probability to the published score margin |
| CHW@HOU | hit | 0.5085 | 0.5082 | 0.5082 | 0.5466 | 0.53 | score coherence followed by matchup-recency guardrail |
| DET@MIN | hit | 0.5085 | 0.5082 | 0.5082 | 0.5466 | 0.53 | score coherence followed by matchup-recency guardrail |
| MIA@WAS | hit | 0.5085 | 0.5082 | 0.5082 | 0.5466 | 0.53 | score coherence followed by matchup-recency guardrail |
| MIL@CHC | miss | 0.5085 | 0.5082 | 0.5082 | 0.5466 | 0.53 | score coherence followed by matchup-recency guardrail |
| NYM@TB | miss | 0.67 | 0.661 | 0.661 | 0.6655 | 0.6655 | score_coherence aligned probability to the published score margin |
| NYY@LAA | miss | 0.5943 | 0.591 | 0.591 | 0.588 | 0.5509 | score coherence followed by matchup-recency guardrail |
| OAK@TEX | hit | 0.5085 | 0.5082 | 0.5082 | 0.5466 | 0.53 | score coherence followed by matchup-recency guardrail |
| PHI@ARI | hit | 0.5085 | 0.5082 | 0.5082 | 0.5466 | 0.5269 | score coherence followed by matchup-recency guardrail |
| SD@CIN | hit | 0.6947 | 0.677 | 0.677 | 0.6735 | 0.6735 | score_coherence aligned probability to the published score margin |
| SEA@BOS | hit | 0.585 | 0.5816 | 0.5816 | 0.5833 | 0.5602 | score coherence followed by matchup-recency guardrail |
| SF@ATL | miss | 0.5085 | 0.5082 | 0.5082 | 0.5466 | 0.53 | 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 |
|---|---|---|---|---|---|---|
| 24 | 2 | 7 | 6 | 9 | 0.83 | 0.08 |
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.21 over 5 slates (sign shared by 0.60 of them, z = 0.47).
starters were hit harder than projected: the run model under-credits opposing offenses.
Hold: no change: this bias is not separable from slate-to-slate noise yet
3 of 5 slates share the sign, mean 0.21 +/- 0.45 standard error: not separable from noise
lineup runs actual minus projected
Mean 0.01 over 5 slates (sign shared by 0.40 of them, z = 0.02).
lineups scored above projection: the run environment is set too low.
Hold: no change: this bias is not separable from slate-to-slate noise yet
2 of 5 slates share the sign, mean 0.01 +/- 0.33 standard error: not separable from noise
| Slate | Games | Winner acc | Mean starter ERA error | Mean lineup runs vs proj | Sides broke on pitching | Sides broke on offense |
|---|---|---|---|---|---|---|
| 20260905 | 15 | 0.533 | -1.17 | -0.07 | 2 | 6 |
| 20260904 | 16 | 0.625 | -0.23 | -0.44 | 5 | 12 |
| 20260903 | 9 | 0.556 | 0.24 | -0.83 | 4 | 6 |
| 20260902 | 15 | 0.333 | 0.72 | 0.30 | 7 | 6 |
| 20260901 | 15 | 0.467 | 1.48 | 1.07 | 9 | 3 |
| 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 |
|---|---|---|---|
| BAL@COL | 3 | 1 | 2 |
| CHW@HOU | 1 | 3 | -2 |
| DET@MIN | 1 | 10 | -9 |
| MIA@WAS | 1 | 3 | -2 |
| MIL@CHC | 1 | 14 | -13 |
| NYM@TB | 2 | 1 | 1 |
| NYY@LAA | 1 | 9 | -8 |
| OAK@TEX | 2 | 7 | -5 |
| PHI@ARI | 1 | 1 | 0 |
| SD@CIN | 2 | 5 | -3 |
| SEA@BOS | 1 | 1 | 0 |
| SF@ATL | 1 | 4 | -3 |
| Team | Starter | Projected | Actual | ER err |
|---|---|---|---|---|
| BAL | Cade Povich | 2 ER / 14 outs | 1 ER / 15 outs | -1 |
| COL | Tanner Gordon | 2 ER / 15 outs | 1 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
Cade Povich (BAL) threw 15 outs, 1 ER = 1.8 ERA against a projected 3.86 ERA (-2.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 5 outs.
The HOME lineup he faced produced 1 runs on 8 hits and 0 HR, against a projected 4 runs / 8 hits (-3 runs vs projection).
Who did the damage to him:
Verdict: offense: the lineup scored well below its projection
HOME pitching
Tanner Gordon (COL) threw 15 outs, 1 ER = 1.8 ERA against a projected 3.6 ERA (-1.8 ERA error)
Bullpen behind him: 0 ER over 6 outs.
The AWAY lineup he faced produced 2 runs on 4 hits and 0 HR, against a projected 5 runs / 8 hits (-3 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) |
|---|---|---|---|---|---|---|---|---|---|
| BAL | Cade Povich (Starter) | 15 / 14 | 1.8 / 3.86 | 1 / 2 | 5 / 1 | 0 / 0 | 3 / 3 | 4 / 6 | venue away: 9.9 vs 0.71 ERA (ok) · opp run factor 1.01 (average) · 6 prior appearances this season |
| BAL | Andrew Kittredge (Closer) | 3 / 4 | 0 / 0 | 0 / 0 | 1 / 0 | 0 / 0 | 0 / 2 | 1 / 2 | |
| BAL | Rico Garcia (Middle Reliever (High Leverage)) | 2 / 4 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 0 / 0 | 1 / 0 | |
| COL | Tanner Gordon (Starter) | 15 / 15 | 1.8 / 3.6 | 1 / 2 | 3 / 2 | 0 / 1 | 1 / 4 | 3 / 6 | venue home: 9.33 vs 1.59 ERA (worse here) · opp run factor 1.04 (average) · 19 prior appearances this season |
| COL | Brennan Bernardino (Setup Man) | 3 / 3 | 0 / 18 (-18.00) | 0 / 2 | 1 / 3 | 0 / 1 | 0 / 1 | 0 / 0 | |
| COL | Jordan Romano (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 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| BAL | Pete Alonso (1B) | 3 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 0 / 1 | 1 / 1 | 1 / 1 | -1.4 | 0.392 elite | bad day |
| BAL | Gunnar Henderson (SS) | 4 / 5 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 0 / 1 | 0 / 1 | 0 / 1 | -1.26 | 0.316 average | no signal |
| BAL | Samuel Basallo (C) | 3 / 4 | 1 / 1 | 1 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 0 / 0 | 1 / 0 | 1 / 1 | 0.64 | 0.322 above average | projection too low |
| BAL | Colton Cowser (CF) | 4 / 3 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 0 / 0 | 0 / 0 | 2 / 1 | -0.47 | 0.321 above average | — |
| BAL | Coby Mayo (DH) | 3 / 3 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 1 / 1 | 1 / 0 | 0 / 1 | 0.33 | 0.319 average | — |
| BAL | Dylan Beavers (LF) | 3 / 3 | 1 / 1 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 1 / 0 | 0 / 1 | 0 / 1 | -0.33 | 0.304 below average | — |
| COL | Willi Castro (3B) | 4 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 3 / 1 | -0.33 | 0.309 average | — |
| COL | Troy Johnston (DH) | 3 / 3 | 1 / 1 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 1 / 1 | 0.33 | 0.329 above average | — |
| COL | TJ Rumfield (1B) | 2 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 2 / 1 | 0 / 1 | 0.33 | 0.334 above average | — |
| COL | Connor Norby (2B) | 4 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 0 / 1 | 0 / 1 | -0.33 | 0.301 below average | — |
| COL | Jake McCarthy (CF) | 5 / 4 | 1 / 1 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 0 / 0 | 0 / 1 | -0.31 | 0.319 average | — |
| COL | Hunter Goodman (C) | 3 / 5 | 1 / 1 | 1 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 1 / 1 | 1 / 0 | 1 / 1 | -0.29 | 0.324 above average | — |
| BAL | Leody Taveras (RF) | 1 / 3 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 2 / 0 | 0 / 1 | 0.19 | 0.273 weak | — |
| BAL | Blaze Alexander (3B) | 3 / 3 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 1 / 0 | 0 / 1 | -0.14 | 0.356 elite | — |
| BAL | Jackson Holliday (2B) | 4 / 3 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 1 / 1 | 0 | 0.303 below average | — |
| COL | Mickey Moniak (RF) | 4 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 0 / 0 | 0 / 1 | 0 | 0.281 weak | — |
| COL | Jordan Beck (LF) | 3 / 3 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 0 | 0.243 weak | — |
| COL | Ezequiel Tovar (SS) | 3 / 3 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 0 | 0.278 weak | — |
| Signal | Home-away edge | Meaning |
|---|---|---|
| Season quality | -1.044 | positive favors home; negative favors away |
| Recent form | -0.976 | positive favors home; negative favors away |
| Starting-pitcher matchup | -0.025 | positive favors home; negative favors away |
| Composite | -1.412 | positive favors home; negative favors away |
| Stage | Away-home runs | Confidence | What changed |
|---|---|---|---|
| historical_ml | 5.03-4.67 | n/a | Base ML historical model prediction |
| variance_applied | 5-5 | n/a | Deterministic baseline target (variance factor 1.0) |
| enhanced_prediction | 7-4 | 0.749 | Enhanced ML with recent form, H2H, low-score analysis |
| embedded_savant_run_environment | 7-4 | n/a | Target score adjusted by temporal Savant lineup quality versus opposing starter quality |
| fundamental_edge_target_review | 7-4 | n/a | Refreshed score target and win probability after Savant/pitcher/team-strength adjustments |
| capped_target | 7-4 | n/a | Capped at max 12 realistic runs |
| simulation_result | 7-4 | n/a | Final inning-by-inning simulation result |
| Stage | Before | After | Toward final pick | What changed |
|---|---|---|---|---|
| variance_applied | 5.03-4.67 | 5-5 | -0.354 | Deterministic baseline target (variance factor 1.0) |
| enhanced_prediction | 5-5 | 7-4 | 3 | Enhanced ML with recent form, H2H, low-score analysis |
| embedded_savant_run_environment | 7-4 | 7-4 | -0 | Target score adjusted by temporal Savant lineup quality versus opposing starter quality |
| fundamental_edge_target_review | 7-4 | 7-4 | -0 | Refreshed score target and win probability after Savant/pitcher/team-strength adjustments |
| capped_target | 7-4 | 7-4 | -0 | Capped at max 12 realistic runs |
| simulation_result | 7-4 | 7-4 | -0 | Final inning-by-inning simulation result |
These are pregame model adjustments, not claims about actual postgame player error.
| Team | Player | Role | Net effect | Largest change |
|---|---|---|---|---|
| COL | Connor Norby | batter / 2B | better | predicted_RBI 2.52 |
| BAL | Dylan Beavers | batter / LF | worse | predicted_AB 1.948 |
| BAL | Jackson Holliday | batter / 2B | boosted | predicted_AB 1.8 |
| COL | Hunter Goodman | batter / C | worse | predicted_AB -1.73 |
| COL | Willi Castro | batter / 3B | worse | predicted_BB 1.653 |
| BAL | Gunnar Henderson | batter / SS | worse | predicted_BB 1.576 |
| BAL | Leody Taveras | batter / RF | better | predicted_RBI 1.544 |
| BAL | Coby Mayo | batter / DH | better | predicted_RBI 1.466 |
| 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=31, sim=37; H: current=8, sim=10; 3B: current=0, sim=1; HR: current=2, sim=4; RBI: current=5, sim=7; R: current=5, sim=7; BB: current=3, sim=6; SO: current=9, sim=6). | BAL |
| info | CURRENT_PLAYER_MATCH_BOX | BAL current finalized hitter lines are model predictions and differ from the simulation box score: Coby Mayo: AB current=3 box=4, H current=1 box=2, HR current=0 box=1, RBI current=1 box=2; Dylan Beavers: AB current=3 box=5, H current=1 box=0, 2B current=1 box=0, RBI current=1 box=0; Gunnar Henderson: AB current=5 box=3, HR current=1 box=0, RBI current=1 box=0, BB current=1 box=2; Samuel Basallo: HR current=0 box=1, RBI current=0 box=1, R current=0 box=1, BB current=0 box=1; Jackson Holliday: AB current=3 box=5, H current=0 box=1, 3B current=0 box=1, RBI current=0 box=1; Pete Alonso: SO current=1 box=0; Leody Taveras: AB current=3 box=4, HR current=0 box=1, RBI current=1 box=2, R current=0 box=1; Blaze Alexander: AB current=3 box=4, H current=1 box=2, 2B current=0 box=1, BB current=0 box=1 | BAL |
| info | CURRENT_FINALIZED_MATCH_BOX | COL model-prediction batting totals differ from final simulation box score (AB: current=34, sim=32; H: current=8, sim=5; HR: current=1, sim=0; BB: current=3, sim=5). | COL |
| info | CURRENT_PLAYER_MATCH_BOX | COL current finalized hitter lines are model predictions and differ from the simulation box score: Jake McCarthy: AB current=4 box=5, H current=1 box=0, 2B current=1 box=0, RBI current=1 box=0; Willi Castro: AB current=4 box=2, H current=1 box=0, R current=1 box=0, BB current=1 box=2; Mickey Moniak: H current=1 box=0, RBI current=1 box=0, R current=1 box=0; Hunter Goodman: AB current=5 box=3, H current=1 box=0, HR current=1 box=0, RBI current=1 box=0; Troy Johnston: AB current=3 box=4, H current=1 box=2, RBI current=0 box=1, R current=0 box=1; TJ Rumfield: AB current=4 box=3, R current=0 box=1; Connor Norby: AB current=4 box=3, 2B current=0 box=1, RBI current=1 box=3, R current=0 box=1; Jordan Beck: AB current=3 box=4, R current=0 box=1, SO current=1 box=2 | COL |
| info | RECONCILIATION_PROPAGATION | No score_target_reconciliation step was used for this game. |
No large single-factor errors.
| Team | Starter | Projected | Actual | ER err |
|---|---|---|---|---|
| CHW | Anthony Kay | 3 ER / 16 outs | 5 ER / 14 outs | 2 |
| HOU | Peter Lambert | 1 ER / 16 outs | 2 ER / 14 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: Anthony Kay (CHW) posted 9.64 ERA vs projected 5.06 (5 ER in 14 outs); he is materially worse pitching away (4.89 ERA there vs 3.44 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
Anthony Kay (CHW) threw 14 outs, 5 ER = 9.64 ERA against a projected 5.06 ERA (4.58 ERA error)
Bullpen behind him: 0 ER over 0 outs.
The HOME lineup he faced produced 6 runs on 8 hits and 1 HR, against a projected 4 runs / 7 hits (2 runs vs projection).
Who did the damage to him:
Verdict: both: the starter was hit hard AND the lineup underproduced
HOME pitching
Peter Lambert (HOU) threw 14 outs, 2 ER = 3.86 ERA against a projected 1.69 ERA (2.17 ERA error)
Bullpen behind him: 0 ER over 6 outs.
The AWAY lineup he faced produced 3 runs on 5 hits and 1 HR, against a projected 5 runs / 8 hits (-2 runs vs projection).
Who did the damage to him:
Verdict: neither side broke materially - the result is closer to variance
Starting pitchers & relievers: actual / projected + context (ERA is workload-aware: ER over 9 innings, so a short blow-up is not read like a quality start; ERA error in parentheses when material)
| Team | Pitcher | Outs | ERA | ER | H | HR | BB | SO | Context (as-of) |
|---|---|---|---|---|---|---|---|---|---|
| CHW | Anthony Kay (Starter) | 14 / 16 | 9.64 / 5.06 (+4.58) | 5 / 3 | 6 / 4 | 1 / 0 | 2 / 0 | 5 / 4 | venue away: 4.89 vs 3.44 ERA (worse here) · opp run factor 1.04 (average) · 27 prior appearances this season |
| HOU | Peter Lambert (Starter) | 14 / 16 | 3.86 / 1.69 | 2 / 1 | 3 / 3 | 0 / 1 | 5 / 3 | 6 / 7 | venue home: 4.05 vs 3 ERA (worse here) · opp run factor 0.98 (average) · 23 prior appearances this season |
| HOU | Bryan Abreu (Middle Reliever (High Leverage)) | 3 / 3 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 2 / 1 | |
| HOU | Steven Okert (Setup Man) | 3 / 3 | 0 / 27 (-27.00) | 0 / 3 | 1 / 4 | 0 / 1 | 0 / 1 | 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 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| CHW | Colson Montgomery (SS) | 3 / 4 | 2 / 1 | 1 / 0 | 0 / 0 | 1 / 0 | 1 / 1 | 2 / 0 | 2 / 0 | 1 / 1 | 2.37 | 0.307 average | no signal |
| HOU | Cam Smith (RF) | 4 / 3 | 2 / 0 | 1 / 0 | 1 / 0 | 0 / 0 | 2 / 0 | 1 / 0 | 0 / 0 | 1 / 1 | 1.87 | 0.319 average | no signal |
| HOU | Jeremy Peña (SS) | 4 / 5 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 0 / 1 | 0 / 0 | 1 / 1 | -0.93 | 0.326 above average | bad day |
| HOU | Nelson Velázquez (LF) | 3 / 3 | 1 / 1 | 0 / 0 | 0 / 0 | 1 / 0 | 2 / 0 | 1 / 0 | 0 / 0 | 2 / 1 | 0.93 | 0.348 elite | projection too low |
| CHW | Braden Montgomery (RF) | 5 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 0 / 1 | 0 / 1 | -0.8 | 0.329 above average | bad day |
| HOU | Christian Vázquez (C) | 3 / 3 | 1 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 1 / 0 | 1 / 1 | 0.8 | 0.238 weak | good day |
| CHW | Tristan Peters (CF) | 2 / 4 | 0 / 1 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 0 / 0 | 1 / 1 | -0.78 | 0.319 average | no signal |
| HOU | Christian Walker (1B) | 3 / 4 | 0 / 1 | 0 / 1 | 0 / 0 | 0 / 0 | 1 / 1 | 0 / 1 | 1 / 1 | 0 / 1 | -0.78 | 0.3 below average | projection too high |
| CHW | Munetaka Murakami (1B) | 2 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 1 / 1 | 0 / 1 | 3 / 1 | 1 / 2 | -0.74 | 0.35 elite | bad day |
| CHW | Andrew Benintendi (DH) | 3 / 3 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 0 / 0 | 2 / 1 | -0.47 | 0.31 average | — |
| HOU | Daulton Varsho (CF) | 4 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 2 / 1 | -0.47 | 0.292 below average | — |
| CHW | Chase Meidroth (2B) | 3 / 4 | 1 / 1 | 0 / 1 | 0 / 0 | 0 / 0 | 1 / 0 | 1 / 1 | 2 / 0 | 0 / 1 | 0.35 | 0.292 below average | — |
| CHW | Sam Antonacci (LF) | 4 / 3 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 1 / 0 | 1 / 0 | 0.33 | 0.342 elite | — |
| HOU | Isaac Paredes (3B) | 4 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 1 / 1 | 0 / 1 | 0 / 0 | -0.33 | 0.32 average | — |
| CHW | Miguel Vargas (3B) | 4 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 1 / 1 | 1 / 1 | 0 | 0.386 elite | — |
| HOU | Yordan Alvarez (DH) | 3 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 1 / 1 | 1 / 1 | 0 / 1 | 0 | 0.45 elite | — |
| HOU | Nick Allen (2B) | 4 / 3 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 0 / 0 | 1 / 1 | 0 | 0.252 weak | — |
| Signal | Home-away edge | Meaning |
|---|---|---|
| Season quality | -0.516 | positive favors home; negative favors away |
| Recent form | -0.103 | positive favors home; negative favors away |
| Starting-pitcher matchup | 0.059 | positive favors home; negative favors away |
| Composite | -0.001 | positive favors home; negative favors away |
| Stage | Away-home runs | Confidence | What changed |
|---|---|---|---|
| historical_ml | 4.13-5.15 | n/a | Base ML historical model prediction |
| variance_applied | 4-5 | n/a | Deterministic baseline target (variance factor 1.0) |
| enhanced_prediction | 4-5 | 0.53 | Enhanced ML with recent form, H2H, low-score analysis (confidence shrunk by 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.13-5.15 | 4-5 | -0.022 | Deterministic baseline target (variance factor 1.0) |
| enhanced_prediction | 4-5 | 4-5 | 0 | Enhanced ML with recent form, H2H, low-score analysis (confidence shrunk by projected_margin_is_one_run, matchup_recency_guardrail) |
| embedded_savant_run_environment | 4-5 | 4-5 | 0 | Target score adjusted by temporal Savant lineup quality versus opposing starter quality |
| fundamental_edge_target_review | 4-5 | 4-5 | 0 | Refreshed score target and win probability after Savant/pitcher/team-strength adjustments |
| capped_target | 4-5 | 4-5 | 0 | Capped at max 12 realistic runs |
| simulation_result | 4-5 | 4-5 | 0 | Final inning-by-inning simulation result |
These are pregame model adjustments, not claims about actual postgame player error.
| Team | Player | Role | Net effect | Largest change |
|---|---|---|---|---|
| CHW | Colson Montgomery | batter / SS | worse | predicted_AB -2.46 |
| HOU | Cam Smith | batter / RF | boosted | predicted_RBI 1.74 |
| CHW | Sam Antonacci | batter / LF | better | predicted_AB 1.539 |
| CHW | Braden Montgomery | batter / RF | better | predicted_RBI 1.485 |
| CHW | Munetaka Murakami | batter / 1B | worse | predicted_SO -1.475 |
| HOU | Christian Walker | batter / 1B | better | predicted_RBI 1.47 |
| HOU | Isaac Paredes | batter / 3B | worse | predicted_SO 1.434 |
| HOU | Yordan Alvarez | batter / DH | worse | predicted_SO 1.246 |
| 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=6, sim=7; BB: current=0, sim=1; HR: current=1, sim=2). | CHW |
| info | CURRENT_FINALIZED_MATCH_BOX | CHW model-prediction batting totals differ from final simulation box score (AB: current=33, sim=34; H: current=8, sim=7; HR: current=1, sim=2; RBI: current=5, sim=4; R: current=5, sim=4; BB: current=4, sim=6). | 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, 2B current=0 box=1, HR current=0 box=1; Munetaka Murakami: AB current=4 box=5, H current=1 box=0, HR current=1 box=0, RBI current=1 box=0; Braden Montgomery: AB current=4 box=3, HR current=0 box=1, RBI current=1 box=2, SO current=1 box=2; Andrew Benintendi: AB current=3 box=4, H current=1 box=2, 2B current=0 box=1, R current=0 box=1; Miguel Vargas: AB current=4 box=5, R current=1 box=0, BB current=1 box=0, SO current=1 box=2; Chase Meidroth: H current=1 box=0, 2B current=1 box=0, R current=1 box=0, SO current=1 box=0; Colson Montgomery: AB current=4 box=2, H current=1 box=0, RBI current=1 box=0, BB current=0 box=2; Tristan Peters: AB current=4 box=3, 2B current=1 box=0, RBI current=1 box=0, R current=0 box=1 | CHW |
| info | CURRENT_FINALIZED_MATCH_BOX | HOU model-prediction batting totals differ from final simulation box score (AB: current=33, sim=32; HR: current=1, sim=2; RBI: current=4, sim=5; R: current=4, sim=5; BB: current=3, sim=1; SO: current=8, sim=7). | HOU |
| info | CURRENT_PLAYER_MATCH_BOX | HOU current finalized hitter lines are model predictions and differ from the simulation box score: Isaac Paredes: 2B current=0 box=1, RBI current=1 box=0, BB current=1 box=0, SO current=0 box=2; Jeremy Peña: AB current=5 box=4, HR current=1 box=0, RBI current=1 box=0, SO current=1 box=0; Yordan Alvarez: H current=1 box=0, RBI current=1 box=0, R current=1 box=0, BB current=1 box=0; Christian Walker: AB current=4 box=3, H current=1 box=2, 2B current=1 box=0, RBI current=1 box=2; Nick Allen: H current=1 box=0, SO current=1 box=0; Christian Vázquez: H current=0 box=1, HR current=0 box=1, RBI current=0 box=1, R current=0 box=1; Cam Smith: AB current=3 box=4, H current=0 box=1, HR current=0 box=1, RBI current=0 box=2; Daulton Varsho: H current=1 box=0, SO current=1 box=0 | HOU |
| info | RECONCILIATION_PROPAGATION | No score_target_reconciliation step was used for this game. |
| Team | Starter | Projected | Actual | ER err |
|---|---|---|---|---|
| DET | Jackson Jobe | 3 ER / 14 outs | 4 ER / 15 outs | 1 |
| MIN | Taj Bradley | 4 ER / 16 outs | 1 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: Taj Bradley (MIN) posted 1.29 ERA vs projected 6.75 (1 ER in 21 outs); no credible venue, opponent-strength or experience signal explains it — an outlier start (variance).
What to do: Variance — no model change is warranted for this start.
Pitcher versus batter: what actually broke this game
Per-pitch matchup fields are not populated in the current feeds, so this is reconstructed from the settled box: each starter's workload-adjusted ERA, the bullpen share behind him, and the opposing lineup's real production against its projection, with the hitters who beat that projection named.
AWAY pitching
Jackson Jobe (DET) threw 15 outs, 4 ER = 7.2 ERA against a projected 5.79 ERA (1.41 ERA error) only 4 prior appearances in the covered season - the projection had little of his own record to stand on
Bullpen behind him: 0 ER over 0 outs.
The HOME lineup he faced produced 11 runs on 9 hits and 4 HR, against a projected 4 runs / 9 hits (7 runs vs projection).
Who did the damage to him:
Verdict: offense: the lineup scored well below its projection
HOME pitching
Taj Bradley (MIN) threw 21 outs, 1 ER = 1.29 ERA against a projected 6.75 ERA (-5.46 ERA error)
Bullpen behind him: 0 ER over 0 outs.
The AWAY lineup he faced produced 1 runs on 5 hits and 1 HR, against a projected 3 runs / 7 hits (-2 runs vs projection).
Who did the damage to him:
Verdict: neither side broke materially - the result is closer to variance
Starting pitchers & relievers: actual / projected + context (ERA is workload-aware: ER over 9 innings, so a short blow-up is not read like a quality start; ERA error in parentheses when material)
| Team | Pitcher | Outs | ERA | ER | H | HR | BB | SO | Context (as-of) |
|---|---|---|---|---|---|---|---|---|---|
| DET | Jackson Jobe (Starter) | 15 / 14 | 7.2 / 5.79 | 4 / 3 | 6 / 3 | 2 / 1 | 2 / 3 | 4 / 6 | venue away: 0.87 vs 7.88 ERA (ok) · opp run factor 1.03 (average) · thin sample: 4 prior appearances this season (high uncertainty) |
| MIN | Taj Bradley (Starter) | 21 / 16 | 1.29 / 6.75 (-5.46) | 1 / 4 | 4 / 4 | 1 / 1 | 3 / 3 | 9 / 6 | venue home: 3.51 vs 4.35 ERA (ok) · opp run factor 1.03 (average) · 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 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| MIN | Ryan Jeffers (C) | 3 / 4 | 2 / 1 | 0 / 0 | 0 / 0 | 2 / 0 | 4 / 0 | 2 / 1 | 1 / 1 | 1 / 0 | 2.33 | 0.356 elite | projection too low |
| DET | Dillon Dingler (C) | 4 / 5 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 0 / 1 | 0 / 0 | 1 / 1 | -1.4 | 0.344 elite | bad day |
| DET | Hao-Yu Lee (3B) | 3 / 3 | 2 / 1 | 0 / 0 | 0 / 0 | 1 / 0 | 1 / 0 | 1 / 0 | 0 / 0 | 1 / 1 | 1.4 | 0.301 below average | good day |
| MIN | Kody Clemens (2B) | 2 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 1 / 0 | 2 / 1 | 2 / 0 | 1 / 0 | 1 / 1 | 1.26 | 0.341 elite | projection too low |
| MIN | Walker Jenkins (CF) | 3 / 3 | 1 / 1 | 0 / 1 | 0 / 0 | 1 / 0 | 2 / 0 | 2 / 0 | 1 / 0 | 0 / 0 | 0.95 | 0.253 weak | good day |
| MIN | Brooks Lee (3B) | 5 / 5 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 3 / 1 | 0 / 1 | 0 / 0 | 0 / 1 | -0.93 | 0.274 weak | projection too high |
| DET | Kevin McGonigle (SS) | 4 / 5 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 0 / 1 | 0 / 1 | -0.8 | 0.35 elite | bad day |
| MIN | Luke Keaschall (RF) | 3 / 4 | 2 / 1 | 1 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 3 / 1 | 1 / 1 | 0 / 1 | 0.78 | 0.315 average | no signal |
| DET | Gleyber Torres (2B) | 4 / 5 | 1 / 1 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 0 / 1 | 1 / 1 | -0.64 | 0.327 above average | bad day |
| MIN | Trevor Larnach (LF) | 4 / 4 | 1 / 1 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 0 / 1 | 2 / 1 | -0.64 | 0.329 above average | bad day |
| MIN | Kaelen Culpepper (SS) | 3 / 4 | 1 / 1 | 1 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 1 / 0 | 0 / 1 | 0.64 | 0.32 average | no signal |
| DET | Zach McKinstry (RF) | 4 / 3 | 1 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 2 / 0 | 0.47 | 0.282 weak | — |
| DET | Max Clark (CF) | 3 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 0 / 0 | 1 / 1 | -0.47 | 0.321 above average | — |
| MIN | Josh Bell (DH) | 5 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 0 / 0 | 0 / 1 | -0.47 | 0.333 above average | — |
| DET | Brett Callahan (LF) | 3 / 3 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 2 / 1 | 0.33 | 0.342 elite | — |
| DET | Colt Keith (DH) | 3 / 3 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 2 / 1 | -0.14 | 0.335 above average | — |
| MIN | Royce Lewis (1B) | 3 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 1 / 0 | 1 / 1 | -0.14 | 0.316 average | — |
| DET | Spencer Torkelson (1B) | 1 / 3 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 0 / 1 | 0 | 0.31 average | — |
| Signal | Home-away edge | Meaning |
|---|---|---|
| Season quality | -0.484 | positive favors home; negative favors away |
| Recent form | 0.302 | positive favors home; negative favors away |
| Starting-pitcher matchup | -0.006 | positive favors home; negative favors away |
| Composite | -0.025 | positive favors home; negative favors away |
| Stage | Away-home runs | Confidence | What changed |
|---|---|---|---|
| historical_ml | 3.93-4.9 | n/a | Base ML historical model prediction |
| variance_applied | 4-5 | n/a | Deterministic baseline target (variance factor 1.0) |
| enhanced_prediction | 4-5 | 0.53 | Enhanced ML with recent form, H2H, low-score analysis (confidence shrunk by projected_margin_is_one_run, matchup_recency_guardrail) |
| embedded_savant_run_environment | 4-5 | n/a | Target score adjusted by temporal Savant lineup quality versus opposing starter quality |
| fundamental_edge_target_review | 4-5 | n/a | Refreshed score target and win probability after Savant/pitcher/team-strength adjustments |
| capped_target | 4-5 | n/a | Capped at max 12 realistic runs |
| simulation_result | 4-5 | n/a | Final inning-by-inning simulation result |
| Stage | Before | After | Toward final pick | What changed |
|---|---|---|---|---|
| variance_applied | 3.93-4.9 | 4-5 | 0.027 | Deterministic baseline target (variance factor 1.0) |
| enhanced_prediction | 4-5 | 4-5 | 0 | Enhanced ML with recent form, H2H, low-score analysis (confidence shrunk by projected_margin_is_one_run, matchup_recency_guardrail) |
| embedded_savant_run_environment | 4-5 | 4-5 | 0 | Target score adjusted by temporal Savant lineup quality versus opposing starter quality |
| fundamental_edge_target_review | 4-5 | 4-5 | 0 | Refreshed score target and win probability after Savant/pitcher/team-strength adjustments |
| capped_target | 4-5 | 4-5 | 0 | Capped at max 12 realistic runs |
| simulation_result | 4-5 | 4-5 | 0 | Final inning-by-inning simulation result |
These are pregame model adjustments, not claims about actual postgame player error.
| Team | Player | Role | Net effect | Largest change |
|---|---|---|---|---|
| MIN | Royce Lewis | batter / 1B | better | predicted_RBI 4.63 |
| DET | Kevin McGonigle | batter / SS | deboosted | predicted_AB -2.7 |
| DET | Gleyber Torres | batter / 2B | worse | predicted_AB -1.63 |
| DET | Dillon Dingler | batter / C | worse | predicted_RBI 1.52 |
| DET | Brett Callahan | batter / LF | worse | predicted_AB 1.5 |
| MIN | Trevor Larnach | batter / LF | better | predicted_AB -1.5 |
| DET | Zach McKinstry | batter / RF | worse | predicted_SO 1.443 |
| MIN | Brooks Lee | batter / 3B | worse | predicted_SO 1.328 |
| 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=34, sim=30; H: current=7, sim=4; 2B: current=1, sim=2; R: current=3, sim=4; SO: current=8, sim=9; SF: current=0, sim=1; HBP: current=0, sim=1). | DET |
| info | CURRENT_PLAYER_MATCH_BOX | DET current finalized hitter lines are model predictions and differ from the simulation box score: Colt Keith: AB current=3 box=4, H current=1 box=0, SO current=1 box=0; Dillon Dingler: AB current=5 box=4, RBI current=1 box=2, SO current=1 box=2; Brett Callahan: AB current=3 box=4, H current=1 box=0; Gleyber Torres: AB current=5 box=3, RBI current=1 box=0; Kevin McGonigle: AB current=5 box=2, 2B current=0 box=1, RBI current=1 box=2, BB current=1 box=0; Hao-Yu Lee: AB current=3 box=2, H current=1 box=0, BB current=0 box=1; Zach McKinstry: AB current=3 box=4, SO current=0 box=2; Spencer Torkelson: H current=0 box=1, R current=0 box=1, SO current=1 box=0 | DET |
| info | CURRENT_FINALIZED_MATCH_BOX | MIN model-prediction batting totals differ from final simulation box score (AB: current=36, sim=29; H: current=9, sim=5; 2B: current=2, sim=1; HR: current=1, sim=2; RBI: current=4, sim=5; R: current=4, sim=5; SO: current=7, sim=6). | MIN |
| info | CURRENT_PLAYER_MATCH_BOX | MIN current finalized hitter lines are model predictions and differ from the simulation box score: Luke Keaschall: H current=1 box=0, R current=1 box=0, BB current=1 box=0; Kody Clemens: H current=1 box=0, RBI current=1 box=0; Trevor Larnach: AB current=4 box=2, RBI current=1 box=0, R current=0 box=1, SO current=1 box=0; Ryan Jeffers: AB current=4 box=3, H current=1 box=0, SO current=0 box=1; Brooks Lee: AB current=5 box=4, H current=1 box=0, HR current=1 box=0, RBI current=1 box=0; Josh Bell: RBI current=1 box=0, SO current=1 box=0; Kaelen Culpepper: AB current=4 box=3, H current=1 box=0; Royce Lewis: AB current=4 box=3, H current=1 box=3, HR current=0 box=2, RBI current=0 box=5 | MIN |
| info | RECONCILIATION_PROPAGATION | No score_target_reconciliation step was used for this game. |
| Team | Starter | Projected | Actual | ER err |
|---|---|---|---|---|
| MIA | Ryan Gusto | 4 ER / 14 outs | 1 ER / 13 outs | -3 |
| WAS | Will Dion | 1 ER / 15 outs | 0 ER / 9 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: Ryan Gusto (MIA) posted 2.08 ERA vs projected 7.71 (1 ER in 13 outs); he is materially worse pitching away (4.57 ERA there vs 3.62 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
Ryan Gusto (MIA) threw 13 outs, 1 ER = 2.08 ERA against a projected 7.71 ERA (-5.63 ERA error)
Bullpen behind him: 1 ER over 4 outs.
The HOME lineup he faced produced 6 runs on 11 hits and 2 HR, against a projected 5 runs / 8 hits (1 runs vs projection).
Who did the damage to him:
Verdict: offense: the lineup scored well below its projection
HOME pitching
Will Dion (WAS) threw 9 outs, 0 ER = 0 ERA against a projected 1.8 ERA (-1.8 ERA error)
Bullpen behind him: 0 ER over 0 outs.
The AWAY lineup he faced produced 3 runs on 10 hits and 0 HR, against a projected 5 runs / 7 hits (-2 runs vs projection).
Who did the damage to him:
Verdict: neither side broke materially - the result is closer to variance
Starting pitchers & relievers: actual / projected + context (ERA is workload-aware: ER over 9 innings, so a short blow-up is not read like a quality start; ERA error in parentheses when material)
| Team | Pitcher | Outs | ERA | ER | H | HR | BB | SO | Context (as-of) |
|---|---|---|---|---|---|---|---|---|---|
| MIA | Ryan Gusto (Starter) | 13 / 14 | 2.08 / 7.71 (-5.63) | 1 / 4 | 4 / 2 | 0 / 2 | 2 / 2 | 4 / 3 | venue away: 4.57 vs 3.62 ERA (worse here) · opp run factor 0.94 (strong) · 18 prior appearances this season |
| MIA | Tyler Zuber (Setup Man) | 4 / 4 | 6.75 / 0 (+6.75) | 1 / 0 | 1 / 0 | 0 / 0 | 0 / 0 | 3 / 0 | |
| WAS | Will Dion (Starter) | 9 / 15 | 0 / 1.8 | 0 / 1 | 2 / 0 | 0 / 0 | 1 / 2 | 1 / 7 | opp run factor 1 (average) · 18 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 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| WAS | Daylen Lile (LF) | 3 / 5 | 3 / 1 | 0 / 0 | 0 / 0 | 2 / 1 | 4 / 1 | 2 / 1 | 1 / 1 | 0 / 1 | 1.87 | 0.329 above average | projection too low |
| WAS | Jorbit Vivas (2B) | 2 / 3 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | -0.8 | 0.298 below average | projection too high |
| MIA | Heriberto Hernández (LF) | 2 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 1 / 1 | 2 / 0 | 0 / 1 | -0.74 | 0.353 elite | bad day |
| MIA | Javier Sanoja (2B) | 4 / 3 | 2 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 0 / 0 | 0 / 0 | 0.47 | 0.287 below average | — |
| MIA | Leo Jiménez (3B) | 4 / 3 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | -0.47 | 0.314 average | — |
| MIA | Esteury Ruiz (RF) | 4 / 3 | 1 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 0.47 | 0.292 below average | — |
| MIA | Brian Navarreto (C) | 4 / 3 | 1 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 2 / 1 | 0.47 | 0.167 weak | — |
| WAS | Nasim Nuñez (SS) | 4 / 3 | 1 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 0 / 0 | 1 / 1 | 0.47 | 0.267 weak | — |
| WAS | Andrew Pinckney (RF) | 4 / 3 | 2 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 0 / 0 | 1 / 1 | 0.47 | 0.338 above average | — |
| MIA | Jakob Marsee (CF) | 4 / 3 | 2 / 1 | 1 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 1 / 1 | 0.45 | 0.305 average | — |
| MIA | Agustín Ramírez (DH) | 2 / 3 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 0 / 1 | 0 / 1 | -0.33 | 0.275 weak | — |
| WAS | Andrés Chaparro (1B) | 4 / 3 | 1 / 1 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 1 / 1 | 0 / 0 | 3 / 1 | -0.31 | 0.354 elite | — |
| MIA | Kyle Stowers (1B) | 4 / 4 | 2 / 1 | 0 / 1 | 0 / 0 | 0 / 0 | 2 / 1 | 0 / 1 | 0 / 1 | 1 / 2 | -0.17 | 0.335 above average | — |
| WAS | Keibert Ruiz (C) | 4 / 5 | 2 / 1 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 0 / 0 | 1 / 0 | 0.16 | 0.286 below average | — |
| WAS | Abimelec Ortiz (DH) | 3 / 3 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 1 / 0 | 1 / 1 | -0.14 | 0.294 below average | — |
| WAS | Brady House (3B) | 4 / 5 | 2 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 0 / 1 | 0 / 1 | 1 / 1 | 0.14 | 0.336 above average | — |
| WAS | Jacob Young (CF) | 3 / 3 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 1 / 0 | 1 / 1 | -0.14 | 0.319 average | — |
| MIA | Otto Lopez (SS) | 4 / 5 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 0 / 0 | 1 / 1 | 0 | 0.324 above average | — |
| Signal | Home-away edge | Meaning |
|---|---|---|
| Season quality | -0.05 | positive favors home; negative favors away |
| Recent form | -0.122 | positive favors home; negative favors away |
| Starting-pitcher matchup | -0.062 | positive favors home; negative favors away |
| Composite | -0.015 | positive favors home; negative favors away |
| Stage | Away-home runs | Confidence | What changed |
|---|---|---|---|
| historical_ml | 4.16-5.84 | n/a | Base ML historical model prediction |
| variance_applied | 4-6 | n/a | Deterministic baseline target (variance factor 1.0) |
| enhanced_prediction | 3-4 | 0.53 | Enhanced ML with recent form, H2H, low-score analysis (confidence shrunk by projected_margin_is_one_run, matchup_recency_guardrail) |
| embedded_savant_run_environment | 3-4 | n/a | Target score adjusted by temporal Savant lineup quality versus opposing starter quality |
| fundamental_edge_target_review | 3-4 | n/a | Refreshed score target and win probability after Savant/pitcher/team-strength adjustments |
| capped_target | 3-4 | n/a | Capped at max 12 realistic runs |
| simulation_result | 3-4 | n/a | Final inning-by-inning simulation result |
| Stage | Before | After | Toward final pick | What changed |
|---|---|---|---|---|
| variance_applied | 4.16-5.84 | 4-6 | 0.322 | Deterministic baseline target (variance factor 1.0) |
| enhanced_prediction | 4-6 | 3-4 | -1 | Enhanced ML with recent form, H2H, low-score analysis (confidence shrunk by projected_margin_is_one_run, matchup_recency_guardrail) |
| embedded_savant_run_environment | 3-4 | 3-4 | 0 | Target score adjusted by temporal Savant lineup quality versus opposing starter quality |
| fundamental_edge_target_review | 3-4 | 3-4 | 0 | Refreshed score target and win probability after Savant/pitcher/team-strength adjustments |
| capped_target | 3-4 | 3-4 | 0 | Capped at max 12 realistic runs |
| simulation_result | 3-4 | 3-4 | 0 | Final inning-by-inning simulation result |
These are pregame model adjustments, not claims about actual postgame player error.
| Team | Player | Role | Net effect | Largest change |
|---|---|---|---|---|
| MIA | Esteury Ruiz | batter / RF | worse | predicted_SO 3.04 |
| WAS | Daylen Lile | batter / LF | better | predicted_RBI 2.33 |
| MIA | Kyle Stowers | batter / 1B | better | predicted_RBI 1.75 |
| MIA | Javier Sanoja | batter / 2B | better | predicted_SO 1.704 |
| WAS | Andrés Chaparro | batter / 1B | worse | predicted_AB 1.5 |
| MIA | Otto Lopez | batter / SS | worse | predicted_H -1.38 |
| WAS | Jacob Young | batter / CF | worse | predicted_AB -1.342 |
| WAS | Nasim Nuñez | batter / SS | worse | predicted_SO 1.24 |
| Severity | Rule | Finding | Subject |
|---|---|---|---|
| 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_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 | MIA model-prediction batting totals differ from final simulation box score (H: current=7, sim=4; 2B: current=1, sim=2; R: current=5, sim=3; SO: current=9, sim=13; HBP: current=0, sim=1). | MIA |
| info | CURRENT_PLAYER_MATCH_BOX | MIA current finalized hitter lines are model predictions and differ from the simulation box score: Agustín Ramírez: AB current=3 box=4, H current=1 box=0, R current=1 box=0, BB current=1 box=0; Javier Sanoja: AB current=3 box=4, RBI current=0 box=1, R current=0 box=1, SO current=0 box=2; Leo Jiménez: 2B current=0 box=1, R current=0 box=1, BB current=0 box=1, SO current=1 box=0; Kyle Stowers: AB current=4 box=3, H current=1 box=2, HR current=0 box=1, RBI current=1 box=2; Heriberto Hernández: H current=1 box=0, HR current=1 box=0, RBI current=1 box=0, R current=1 box=0; Otto Lopez: AB current=5 box=4, H current=1 box=0, RBI current=1 box=0, R current=1 box=0; Esteury Ruiz: AB current=3 box=4, SO current=1 box=4; Jakob Marsee: H current=1 box=0, R current=1 box=0 | MIA |
| info | CURRENT_FINALIZED_MATCH_BOX | WAS model pitcher projections differ from final simulation pitching box score (H: current=5, sim=4). | WAS |
| info | CURRENT_FINALIZED_MATCH_BOX | WAS model-prediction batting totals differ from final simulation box score (AB: current=33, sim=26; H: current=8, sim=2; 2B: current=2, sim=0; HR: current=1, sim=2; R: current=5, sim=4; SO: current=7, sim=4; HBP: current=0, sim=1). | WAS |
| info | CURRENT_PLAYER_MATCH_BOX | WAS current finalized hitter lines are model predictions and differ from the simulation box score: Abimelec Ortiz: AB current=3 box=4, H current=1 box=0, SO current=1 box=0; Andrés Chaparro: AB current=3 box=4, H current=1 box=0, 2B current=1 box=0, RBI current=1 box=0; Jorbit Vivas: AB current=3 box=2, H current=1 box=0, R current=0 box=1; Keibert Ruiz: AB current=5 box=3, H current=1 box=0, 2B current=1 box=0, RBI current=1 box=0; Nasim Nuñez: SO current=1 box=2; Andrew Pinckney: AB current=3 box=2, H current=1 box=0, R current=0 box=1, BB current=0 box=1; Daylen Lile: AB current=5 box=3, RBI current=1 box=3, SO current=1 box=0; Brady House: AB current=5 box=3, HR current=0 box=1, BB current=1 box=0, SO current=1 box=0 | WAS |
| info | RECONCILIATION_PROPAGATION | No score_target_reconciliation step was used for this game. |
| Team | Starter | Projected | Actual | ER err |
|---|---|---|---|---|
| MIL | Kyle Harrison | 3 ER / 17 outs | 9 ER / 11 outs | 6 |
| CHC | Clay Holmes | 2 ER / 18 outs | 0 ER / 18 outs | -2 |
Every value is actual / projected. Run impact approximates how far each hitter's real line moved run expectancy from its projection; it orders the movers and is not a published stat.
Top deviations that drove the game:
Starter miss: Kyle Harrison (MIL) posted 22.09 ERA vs projected 4.76 (9 ER in 11 outs); he is materially worse pitching away (4.66 ERA there vs 1.26 on the other side), a venue-role weakness the model under-weighted.
What to do: Enable/raise the venue-split weight (context.venue_adjustment_weight) and validate in shadow; the split is credible for this starter.
Pitcher versus batter: what actually broke this game
Per-pitch matchup fields are not populated in the current feeds, so this is reconstructed from the settled box: each starter's workload-adjusted ERA, the bullpen share behind him, and the opposing lineup's real production against its projection, with the hitters who beat that projection named.
AWAY pitching
Kyle Harrison (MIL) threw 11 outs, 9 ER = 22.09 ERA against a projected 4.76 ERA (17.33 ERA error)
Bullpen behind him: 0 ER over 4 outs.
The HOME lineup he faced produced 16 runs on 18 hits and 8 HR, against a projected 5 runs / 8 hits (11 runs vs projection).
Who did the damage to him:
Verdict: both: the starter was hit hard AND the lineup underproduced
HOME pitching
Clay Holmes (CHC) threw 18 outs, 0 ER = 0 ERA against a projected 3 ERA (-3 ERA error)
Bullpen behind him: 0 ER over 0 outs.
The AWAY lineup he faced produced 2 runs on 7 hits and 1 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
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 | Kyle Harrison (Starter) | 11 / 17 | 22.09 / 4.76 (+17.33) | 9 / 3 | 10 / 4 | 5 / 1 | 2 / 1 | 3 / 6 | venue away: 4.66 vs 1.26 ERA (worse here) · opp run factor 0.94 (strong) · 21 prior appearances this season |
| MIL | Chad Patrick (Middle Reliever (High Leverage)) | 4 / 3 | 0 / 9 (-9.00) | 0 / 1 | 0 / 2 | 0 / 0 | 2 / 0 | 0 / 0 | |
| CHC | Clay Holmes (Starter) | 18 / 18 | 0 / 3 (-3.00) | 0 / 2 | 5 / 1 | 0 / 0 | 2 / 0 | 8 / 5 | venue home: 2.08 vs 2.42 ERA (ok) · opp run factor 1.05 (strong) · 13 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 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| CHC | Alex Bregman (3B) | 6 / 5 | 3 / 1 | 0 / 0 | 0 / 0 | 3 / 1 | 4 / 1 | 3 / 1 | 0 / 1 | 0 / 1 | 2.47 | 0.318 average | no signal |
| CHC | Carson Kelly (C) | 5 / 4 | 3 / 1 | 0 / 0 | 0 / 0 | 1 / 0 | 2 / 1 | 1 / 1 | 1 / 0 | 0 / 1 | 2.2 | 0.311 average | no signal |
| CHC | Tyrone Taylor (LF) | 6 / 3 | 4 / 1 | 0 / 1 | 0 / 0 | 1 / 0 | 3 / 0 | 2 / 0 | 0 / 0 | 0 / 0 | 2.03 | 0.319 average | no signal |
| CHC | Seiya Suzuki (RF) | 5 / 5 | 3 / 1 | 0 / 1 | 0 / 0 | 1 / 0 | 1 / 1 | 3 / 1 | 1 / 1 | 0 / 1 | 1.56 | 0.339 above average | projection too low |
| MIL | Cooper Pratt (SS) | 4 / 3 | 2 / 1 | 0 / 0 | 0 / 0 | 1 / 0 | 2 / 0 | 1 / 0 | 0 / 0 | 0 / 1 | 1.4 | 0.313 average | no signal |
| CHC | Nico Hoerner (SS) | 3 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 1 / 0 | 1 / 0 | 1 / 0 | 1 / 0 | 0 / 0 | 1.26 | 0.324 above average | projection too low |
| CHC | Matt Shaw (2B) | 4 / 3 | 1 / 1 | 0 / 0 | 0 / 0 | 1 / 0 | 2 / 0 | 2 / 0 | 1 / 0 | 0 / 1 | 1.26 | 0.307 average | no signal |
| MIL | Brice Turang (2B) | 4 / 5 | 0 / 1 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 0 / 1 | 2 / 1 | -1.11 | 0.335 above average | bad day |
| MIL | Christian Yelich (DH) | 3 / 5 | 0 / 1 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 0 / 1 | 2 / 1 | -1.11 | 0.314 average | no signal |
| CHC | Pete Crow-Armstrong (CF) | 5 / 6 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 1 / 1 | 0 / 0 | 1 / 1 | -0.93 | 0.369 elite | bad day |
| CHC | Miguel Amaya (DH) | 3 / 3 | 1 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 2 / 0 | 1 / 0 | 1 / 1 | 0.8 | 0.289 below average | good day |
| MIL | Jackson Chourio (LF) | 4 / 5 | 1 / 1 | 1 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 1 / 1 | 0 / 0 | 2 / 1 | -0.62 | 0.334 above average | bad day |
| MIL | Sal Frelick (RF) | 4 / 3 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 2 / 0 | -0.47 | 0.287 below average | — |
| MIL | William Contreras (C) | 2 / 5 | 1 / 1 | 1 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 1 / 1 | 0 / 1 | 0.31 | 0.333 above average | — |
| CHC | Michael Busch (1B) | 5 / 4 | 1 / 1 | 1 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 1 / 1 | 1 / 1 | 1 / 1 | 0.31 | 0.328 above average | — |
| MIL | Jake Bauers (1B) | 2 / 3 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 1 / 1 | 0 / 1 | 0 | 0.373 elite | — |
| MIL | David Hamilton (3B) | 4 / 3 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 0 | 0.275 weak | — |
| MIL | Garrett Mitchell (CF) | 2 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 0 | 0.346 elite | — |
| Signal | Home-away edge | Meaning |
|---|---|---|
| Season quality | -0.392 | positive favors home; negative favors away |
| Recent form | -0.35 | positive favors home; negative favors away |
| Starting-pitcher matchup | -0.113 | positive favors home; negative favors away |
| Composite | -0.731 | positive favors home; negative favors away |
| Stage | Away-home runs | Confidence | What changed |
|---|---|---|---|
| historical_ml | 5.08-3.94 | n/a | Base ML historical model prediction |
| variance_applied | 5-4 | n/a | Deterministic baseline target (variance factor 1.0) |
| enhanced_prediction | 6-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 | 6-5 | n/a | Target score adjusted by temporal Savant lineup quality versus opposing starter quality |
| fundamental_edge_target_review | 6-5 | n/a | Refreshed score target and win probability after Savant/pitcher/team-strength adjustments |
| capped_target | 6-5 | n/a | Capped at max 12 realistic runs |
| simulation_result | 6-5 | n/a | Final inning-by-inning simulation result |
| Stage | Before | After | Toward final pick | What changed |
|---|---|---|---|---|
| variance_applied | 5.08-3.94 | 5-4 | -0.137 | Deterministic baseline target (variance factor 1.0) |
| enhanced_prediction | 5-4 | 6-5 | -0 | Enhanced ML with recent form, H2H, low-score analysis (confidence shrunk by projected_margin_is_one_run, matchup_recency_guardrail) |
| embedded_savant_run_environment | 6-5 | 6-5 | -0 | Target score adjusted by temporal Savant lineup quality versus opposing starter quality |
| fundamental_edge_target_review | 6-5 | 6-5 | -0 | Refreshed score target and win probability after Savant/pitcher/team-strength adjustments |
| capped_target | 6-5 | 6-5 | -0 | Capped at max 12 realistic runs |
| simulation_result | 6-5 | 6-5 | -0 | Final inning-by-inning simulation result |
These are pregame model adjustments, not claims about actual postgame player error.
| Team | Player | Role | Net effect | Largest change |
|---|---|---|---|---|
| CHC | Pete Crow-Armstrong | batter / CF | worse | predicted_AB -3.29 |
| CHC | Seiya Suzuki | batter / RF | better | predicted_RBI 2.25 |
| MIL | Christian Yelich | batter / DH | better | predicted_AB -1.68 |
| MIL | Cooper Pratt | batter / SS | better | predicted_RBI 1.65 |
| MIL | Sal Frelick | batter / RF | worse | predicted_SO 1.618 |
| MIL | William Contreras | batter / C | worse | predicted_H -1.58 |
| CHC | Tyrone Taylor | batter / LF | better | predicted_AB 1.471 |
| CHC | Matt Shaw | batter / 2B | worse | predicted_AB 1.38 |
| 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=37, sim=35; 2B: current=2, sim=3; HR: current=2, sim=1; BB: current=3, sim=2; HBP: current=0, sim=3). | CHC |
| info | CURRENT_PLAYER_MATCH_BOX | CHC current finalized hitter lines are model predictions and differ from the simulation box score: Tyrone Taylor: AB current=3 box=4, 2B current=1 box=0, HR current=0 box=1, RBI current=0 box=1; Nico Hoerner: AB current=4 box=3, H current=1 box=0, SO current=0 box=1, HBP current=0 box=1; Alex Bregman: H current=1 box=2, HR current=1 box=0, BB current=1 box=0; Pete Crow-Armstrong: AB current=6 box=3, H current=1 box=0, HR current=1 box=0, RBI current=1 box=0; Miguel Amaya: AB current=3 box=4; Matt Shaw: AB current=3 box=4, H current=1 box=2, 2B current=0 box=1, R current=0 box=1; Seiya Suzuki: AB current=5 box=4, H current=1 box=2, RBI current=1 box=3; Carson Kelly: H current=1 box=0, RBI current=1 box=0, R current=1 box=0 | CHC |
| info | CURRENT_FINALIZED_MATCH_BOX | MIL model-prediction batting totals differ from final simulation box score (AB: current=36, sim=31; H: current=9, sim=4; 2B: current=2, sim=1; RBI: current=5, sim=6; R: current=5, sim=6; BB: current=4, sim=2; SO: current=8, sim=10). | MIL |
| info | CURRENT_PLAYER_MATCH_BOX | MIL current finalized hitter lines are model predictions and differ from the simulation box score: Jackson Chourio: AB current=5 box=4, H current=1 box=0, HR current=1 box=0, RBI current=1 box=0; Jake Bauers: AB current=3 box=4, RBI current=1 box=2, BB current=1 box=0, SO current=1 box=2; Brice Turang: AB current=5 box=4, H current=1 box=0, 2B current=1 box=0, RBI current=1 box=0; William Contreras: AB current=5 box=4, H current=1 box=0, RBI current=1 box=0, R current=1 box=0; David Hamilton: H current=1 box=0, SO current=1 box=0; Sal Frelick: H current=1 box=0, SO current=0 box=2; Christian Yelich: AB current=5 box=3, H current=1 box=2, 2B current=1 box=0, HR current=0 box=1; Garrett Mitchell: AB current=4 box=3, H current=1 box=0, R current=0 box=1, BB current=0 box=1 | MIL |
| info | RECONCILIATION_PROPAGATION | No score_target_reconciliation step was used for this game. |
| Team | Starter | Projected | Actual | ER err |
|---|---|---|---|---|
| NYM | Robert Stock | 4 ER / 12 outs | 0 ER / 16 outs | -4 |
| TB | Ian Seymour | 0 ER / 15 outs | 3 ER / 19 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: Robert Stock (NYM) posted 0.00 ERA vs projected 9.00 (0 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
Robert Stock (NYM) threw 16 outs, 0 ER = 0 ERA against a projected 9 ERA (-9 ERA error) only 5 prior appearances in the covered season - the projection had little of his own record to stand on
Bullpen behind him: 2 ER over 7 outs.
The HOME lineup he faced produced 2 runs on 9 hits and 0 HR, against a projected 5 runs / 8 hits (-3 runs vs projection).
Who did the damage to him:
Verdict: neither side broke materially - the result is closer to variance
HOME pitching
Ian Seymour (TB) threw 19 outs, 3 ER = 4.26 ERA against a projected 0 ERA (4.26 ERA error)
Bullpen behind him: 0 ER over 3 outs.
The AWAY lineup he faced produced 2 runs on 9 hits and 1 HR, against a projected 3 runs / 8 hits (-1 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) |
|---|---|---|---|---|---|---|---|---|---|
| NYM | Robert Stock (Starter) | 16 / 12 | 0 / 9 (-9.00) | 0 / 4 | 5 / 5 | 0 / 1 | 0 / 3 | 4 / 5 | venue away: 24 vs 4.58 ERA (ok) · opp run factor 0.96 (average) · 5 prior appearances this season |
| NYM | Daniel Duarte (Setup Man) | 2 / 5 | 27 / 0 (+27.00) | 2 / 0 | 3 / 0 | 0 / 0 | 1 / 0 | 0 / 0 | |
| NYM | Nathan Lavender (Middle Reliever (High Leverage)) | 2 / 3 | 0 / 0 | 0 / 0 | 1 / 1 | 0 / 0 | 0 / 1 | 0 / 1 | |
| NYM | Kodai Senga (Closer) | 3 / 4 | 0 / 6.75 (-6.75) | 0 / 1 | 0 / 1 | 0 / 0 | 1 / 0 | 1 / 1 | |
| TB | Ian Seymour (Starter) | 19 / 15 | 4.26 / 0 (+4.26) | 3 / 0 | 6 / 3 | 1 / 0 | 0 / 3 | 10 / 6 | venue home: 5.58 vs 3 ERA (worse here) · opp run factor 1 (weak) · 41 prior appearances this season |
| TB | Garrett Cleavinger (Middle Reliever (High Leverage)) | 3 / 2 | 0 / 40.5 (-40.50) | 0 / 3 | 0 / 4 | 0 / 1 | 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 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| NYM | Francisco Lindor (SS) | 4 / 5 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 0 / 1 | 0 / 1 | 1 / 1 | -1.73 | 0.338 above average | bad day |
| TB | Junior Caminero (3B) | 4 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 0 / 1 | 0 / 1 | 1 / 1 | -1.26 | 0.363 elite | bad day |
| NYM | Mark Vientos (DH) | 4 / 3 | 1 / 1 | 0 / 0 | 0 / 0 | 1 / 0 | 1 / 1 | 1 / 0 | 0 / 0 | 1 / 1 | 0.93 | 0.314 average | no signal |
| TB | Yandy Díaz (DH) | 5 / 5 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 0 / 1 | 3 / 1 | -0.8 | 0.355 elite | bad day |
| NYM | Francisco Alvarez (C) | 3 / 3 | 1 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 0 / 0 | 0 / 0 | 2 / 1 | 0.47 | 0.326 above average | — |
| TB | Jonathan Aranda (1B) | 3 / 5 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 1 / 1 | 1 / 1 | 0 / 1 | -0.47 | 0.35 elite | — |
| TB | Liam Hicks (C) | 4 / 3 | 2 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 0 / 1 | 0 / 0 | 0 / 0 | 0.47 | 0.316 average | — |
| TB | Chandler Simpson (LF) | 4 / 4 | 2 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0.47 | 0.261 weak | — |
| TB | Richie Palacios (2B) | 4 / 3 | 1 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0.47 | 0.305 average | — |
| NYM | Marcus Semien (2B) | 4 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | -0.33 | 0.305 average | — |
| NYM | Jared Young (1B) | 4 / 3 | 1 / 1 | 1 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 0 / 0 | 1 / 1 | 0.31 | 0.309 average | — |
| NYM | Bo Bichette (3B) | 4 / 4 | 1 / 1 | 1 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 0 / 0 | 1 / 1 | 0.31 | 0.325 above average | — |
| NYM | A.J. Ewing (CF) | 4 / 4 | 2 / 1 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 1 / 1 | -0.17 | 0.317 average | — |
| TB | Jonny DeLuca (RF) | 3 / 4 | 1 / 1 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 1 / 0 | 2 / 1 | 0.02 | 0.265 weak | — |
| NYM | Carson Benge (RF) | 4 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 3 / 1 | 0 | 0.336 above average | — |
| NYM | Christopher Morel (LF) | 3 / 3 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 0 | 0.213 weak | — |
| TB | Cedric Mullins (CF) | 4 / 3 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 | 0.267 weak | — |
| TB | Taylor Walls (SS) | 4 / 3 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 0 / 0 | 0 / 1 | 0 | 0.249 weak | — |
| Signal | Home-away edge | Meaning |
|---|---|---|
| Season quality | 0.796 | positive favors home; negative favors away |
| Recent form | 0.38 | positive favors home; negative favors away |
| Starting-pitcher matchup | -0.046 | positive favors home; negative favors away |
| Composite | 0.792 | positive favors home; negative favors away |
| Stage | Away-home runs | Confidence | What changed |
|---|---|---|---|
| historical_ml | 3.21-5.83 | n/a | Base ML historical model prediction |
| variance_applied | 3-6 | n/a | Deterministic baseline target (variance factor 1.0) |
| enhanced_prediction | 3-5 | 0.665 | Enhanced ML with recent form, H2H, low-score analysis |
| embedded_savant_run_environment | 3-5 | n/a | Target score adjusted by temporal Savant lineup quality versus opposing starter quality |
| fundamental_edge_target_review | 3-5 | n/a | Refreshed score target and win probability after Savant/pitcher/team-strength adjustments |
| capped_target | 3-5 | n/a | Capped at max 12 realistic runs |
| simulation_result | 3-5 | n/a | Final inning-by-inning simulation result |
| Stage | Before | After | Toward final pick | What changed |
|---|---|---|---|---|
| variance_applied | 3.21-5.83 | 3-6 | 0.385 | Deterministic baseline target (variance factor 1.0) |
| enhanced_prediction | 3-6 | 3-5 | -1 | Enhanced ML with recent form, H2H, low-score analysis |
| embedded_savant_run_environment | 3-5 | 3-5 | 0 | Target score adjusted by temporal Savant lineup quality versus opposing starter quality |
| fundamental_edge_target_review | 3-5 | 3-5 | 0 | Refreshed score target and win probability after Savant/pitcher/team-strength adjustments |
| capped_target | 3-5 | 3-5 | 0 | Capped at max 12 realistic runs |
| simulation_result | 3-5 | 3-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 |
|---|---|---|---|---|
| TB | Jonny DeLuca | batter / RF | better | predicted_SO 2.28 |
| TB | Liam Hicks | batter / C | worse | predicted_RBI 1.78 |
| NYM | A.J. Ewing | batter / CF | better | predicted_RBI 1.705 |
| TB | Jonathan Aranda | batter / 1B | worse | predicted_AB -1.69 |
| NYM | Francisco Alvarez | batter / C | worse | predicted_H 1.63 |
| TB | Yandy Díaz | batter / DH | worse | predicted_H -1.38 |
| NYM | Francisco Lindor | batter / SS | worse | predicted_H -1.21 |
| NYM | Bo Bichette | batter / 3B | worse | predicted_SO 1.206 |
| 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 pitcher projections differ from final simulation pitching box score (H: current=7, sim=6). | NYM |
| info | CURRENT_FINALIZED_MATCH_BOX | NYM model-prediction batting totals differ from final simulation box score (AB: current=33, sim=36; H: current=8, sim=9; SO: current=9, sim=7; HBP: current=0, sim=1). | NYM |
| info | CURRENT_PLAYER_MATCH_BOX | NYM current finalized hitter lines are model predictions and differ from the simulation box score: Mark Vientos: AB current=3 box=4, H current=1 box=0, RBI current=1 box=0, HBP current=0 box=1; Carson Benge: AB current=4 box=5, H current=1 box=0, R current=1 box=0, SO current=1 box=2; Christopher Morel: AB current=3 box=4, H current=1 box=0; Francisco Lindor: AB current=5 box=4, H current=1 box=0, HR current=1 box=0, RBI current=1 box=0; A.J. Ewing: 2B current=1 box=0, HR current=0 box=1, RBI current=0 box=2, R current=0 box=1; Francisco Alvarez: H current=0 box=2, BB current=0 box=1, SO current=1 box=0; Marcus Semien: AB current=4 box=3, H current=1 box=2, R current=0 box=1; Jared Young: AB current=3 box=4, H current=1 box=2, RBI current=1 box=0, SO current=1 box=0 | NYM |
| info | CURRENT_FINALIZED_MATCH_BOX | TB model-prediction batting totals differ from final simulation box score (AB: current=34, sim=29; H: current=8, sim=6; RBI: current=4, sim=5; BB: current=3, sim=4; SO: current=6, sim=7; SF: current=0, sim=1). | TB |
| info | CURRENT_PLAYER_MATCH_BOX | TB current finalized hitter lines are model predictions and differ from the simulation box score: Yandy Díaz: AB current=5 box=4, H current=1 box=0, RBI current=1 box=0, R current=1 box=0; Jonathan Aranda: AB current=5 box=3, H current=1 box=0, RBI current=1 box=0, R current=1 box=0; Liam Hicks: H current=1 box=2, HR current=0 box=1, RBI current=0 box=2, BB current=0 box=1; Junior Caminero: AB current=4 box=3, HR current=1 box=0, SO current=1 box=0; Jonny DeLuca: R current=0 box=1, SO current=1 box=3; Cedric Mullins: R current=0 box=1, BB current=0 box=1; Taylor Walls: AB current=3 box=2, H current=1 box=0, RBI current=0 box=1, SF 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 | Elmer Rodríguez | 2 ER / 14 outs | 4 ER / 11 outs | 2 |
| LAA | Walbert Ureña | 2 ER / 17 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:
Starter miss: Elmer Rodríguez (NYY) posted 9.82 ERA vs projected 3.86 (4 ER in 11 outs); no credible venue, opponent-strength or experience signal explains it — an outlier start (variance).
What to do: Variance — no model change is warranted for this start.
Pitcher versus batter: what actually broke this game
Per-pitch matchup fields are not populated in the current feeds, so this is reconstructed from the settled box: each starter's workload-adjusted ERA, the bullpen share behind him, and the opposing lineup's real production against its projection, with the hitters who beat that projection named.
AWAY pitching
Elmer Rodríguez (NYY) threw 11 outs, 4 ER = 9.82 ERA against a projected 3.86 ERA (5.96 ERA error) only 5 prior appearances in the covered season - the projection had little of his own record to stand on
Bullpen behind him: 3 ER over 3 outs.
The HOME lineup he faced produced 9 runs on 12 hits and 0 HR, against a projected 3 runs / 7 hits (6 runs vs projection).
Who did the damage to him:
Verdict: both: the starter was hit hard AND the lineup underproduced
HOME pitching
Walbert Ureña (LAA) threw 21 outs, 1 ER = 1.29 ERA against a projected 3.18 ERA (-1.89 ERA error)
Bullpen behind him: 0 ER over 0 outs.
The AWAY lineup he faced produced 1 runs on 6 hits and 1 HR, against a projected 5 runs / 8 hits (-4 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 | Elmer Rodríguez (Starter) | 11 / 14 | 9.82 / 3.86 (+5.96) | 4 / 2 | 4 / 5 | 0 / 1 | 3 / 2 | 5 / 4 | venue away: 3.24 vs 5.52 ERA (ok) · opp run factor 1 (weak) · 5 prior appearances this season |
| NYY | David Bednar (Closer) | 3 / 3 | 27 / 0 (+27.00) | 3 / 0 | 4 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | |
| LAA | Walbert Ureña (Starter) | 21 / 17 | 1.29 / 3.18 | 1 / 2 | 5 / 5 | 1 / 2 | 0 / 2 | 8 / 8 | venue home: 2.54 vs 3.71 ERA (ok) · opp run factor 0.95 (strong) · 24 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 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| LAA | Vaughn Grissom (1B) | 5 / 4 | 3 / 1 | 2 / 0 | 0 / 0 | 0 / 0 | 4 / 1 | 2 / 0 | 0 / 0 | 0 / 1 | 1.56 | 0.316 average | no signal |
| NYY | Luis García Jr. (1B) | 4 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 0 / 1 | 0 / 0 | 2 / 0 | -1.4 | 0.348 elite | bad day |
| LAA | Wade Meckler (LF) | 3 / 3 | 2 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 2 / 0 | 1 / 1 | 1.13 | 0.312 average | no signal |
| NYY | Spencer Jones (RF) | 3 / 3 | 1 / 1 | 0 / 0 | 0 / 0 | 1 / 0 | 1 / 0 | 1 / 0 | 0 / 0 | 1 / 1 | 0.93 | 0.329 above average | projection too low |
| LAA | Zach Neto (SS) | 4 / 5 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 1 / 1 | 2 / 1 | 1 / 1 | 2 / 1 | -0.93 | 0.305 average | no signal |
| NYY | Ben Rice (DH) | 4 / 5 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 0 / 1 | 0 / 1 | -0.8 | 0.378 elite | bad day |
| NYY | Trent Grisham (CF) | 4 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 0 / 1 | 2 / 1 | -0.8 | 0.337 above average | bad day |
| LAA | Tyler Heineman (C) | 3 / 3 | 1 / 0 | 1 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 2 / 0 | 0 / 0 | 0 / 1 | 0.78 | 0.243 weak | good day |
| NYY | Amed Rosario (3B) | 4 / 3 | 2 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 0.47 | 0.312 average | — |
| NYY | José Caballero (SS) | 3 / 3 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 0 / 0 | 2 / 1 | -0.47 | 0.28 weak | — |
| LAA | Moisés Ballesteros (DH) | 5 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 3 / 1 | -0.47 | 0.291 below average | — |
| LAA | Christian Moore (2B) | 5 / 4 | 2 / 1 | 1 / 0 | 0 / 0 | 0 / 0 | 2 / 0 | 1 / 0 | 0 / 1 | 1 / 1 | 0.45 | 0.238 weak | — |
| LAA | Josh Lowe (RF) | 4 / 3 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 1 / 1 | 0.33 | 0.29 below average | — |
| NYY | Cody Bellinger (LF) | 4 / 5 | 2 / 1 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 0 / 1 | 0 / 1 | -0.17 | 0.342 elite | — |
| LAA | Mike Trout (CF) | 5 / 5 | 2 / 1 | 0 / 1 | 0 / 0 | 0 / 0 | 2 / 1 | 1 / 1 | 0 / 1 | 1 / 1 | -0.17 | 0.376 elite | — |
| NYY | Jazz Chisholm Jr. (2B) | 3 / 3 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 1 / 1 | 0 | 0.294 below average | — |
| NYY | Austin Wells (C) | 3 / 3 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 0 / 0 | 1 / 1 | 0 | 0.291 below average | — |
| LAA | Oswald Peraza (3B) | 3 / 3 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 0 / 0 | 1 / 1 | 0 | 0.271 weak | — |
| Signal | Home-away edge | Meaning |
|---|---|---|
| Season quality | -1.373 | positive favors home; negative favors away |
| Recent form | -0.696 | positive favors home; negative favors away |
| Starting-pitcher matchup | 0.046 | positive favors home; negative favors away |
| Composite | -1.009 | positive favors home; negative favors away |
| Stage | Away-home runs | Confidence | What changed |
|---|---|---|---|
| historical_ml | 3.98-4.44 | n/a | Base ML historical model prediction |
| variance_applied | 4-4 | n/a | Deterministic baseline target (variance factor 1.0) |
| enhanced_prediction | 5-4 | 0.551 | 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 | 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.98-4.44 | 4-4 | 0.454 | Deterministic baseline target (variance factor 1.0) |
| enhanced_prediction | 4-4 | 5-4 | 1 | 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 | 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 |
|---|---|---|---|---|
| NYY | Spencer Jones | batter / RF | better | predicted_H 2.311 |
| NYY | Amed Rosario | batter / 3B | better | predicted_AB 2.301 |
| LAA | Mike Trout | batter / CF | worse | predicted_SO 1.864 |
| LAA | Christian Moore | batter / 2B | better | predicted_RBI 1.64 |
| NYY | Ben Rice | batter / DH | worse | predicted_H 1.54 |
| NYY | Luis García Jr. | batter / 1B | worse | predicted_SO 1.394 |
| NYY | Austin Wells | batter / C | worse | predicted_RBI 1.39 |
| LAA | Tyler Heineman | batter / C | worse | predicted_AB 1.345 |
| 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=35; H: current=7, sim=8; 2B: current=1, sim=2; RBI: current=3, sim=4; R: current=3, sim=4; BB: current=3, sim=2). | LAA |
| info | CURRENT_PLAYER_MATCH_BOX | LAA current finalized hitter lines are model predictions and differ from the simulation box score: Wade Meckler: H current=1 box=0, R current=1 box=0, BB current=0 box=1; Vaughn Grissom: 2B current=0 box=1, RBI current=1 box=0, SO current=1 box=0; Christian Moore: 2B current=0 box=1, RBI current=0 box=2, R current=0 box=1, BB current=1 box=0; Josh Lowe: HR current=0 box=1, RBI current=0 box=1, R current=0 box=1, BB current=0 box=1; Oswald Peraza: AB current=3 box=4, H current=0 box=1, RBI current=0 box=1, R current=0 box=1; Moisés Ballesteros: H current=1 box=2, R current=0 box=1, SO current=1 box=2; Zach Neto: H current=1 box=0, HR current=1 box=0, RBI current=1 box=0, R current=1 box=0; Mike Trout: AB current=5 box=4, 2B 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=33, sim=39; H: current=8, sim=12; 2B: current=1, sim=2; HR: current=1, sim=2; RBI: current=6, sim=5; BB: current=3, sim=2; SO: current=8, sim=12). | NYY |
| info | CURRENT_PLAYER_MATCH_BOX | NYY current finalized hitter lines are model predictions and differ from the simulation box score: Cody Bellinger: AB current=5 box=4, 2B current=1 box=0, RBI current=1 box=0, R current=1 box=0; Amed Rosario: AB current=3 box=5, HR current=0 box=1, RBI current=0 box=2, R current=0 box=1; Ben Rice: H current=1 box=3, RBI current=1 box=0, BB current=1 box=0; Spencer Jones: AB current=3 box=4, H current=1 box=3, 2B current=0 box=1, R current=0 box=1; Luis García Jr.: AB current=4 box=5, HR current=1 box=0, RBI current=1 box=0, R current=1 box=0; Jazz Chisholm Jr.: AB current=3 box=4, HR current=0 box=1, RBI current=0 box=1, SO current=1 box=2; Trent Grisham: AB current=4 box=5, H current=1 box=0, RBI current=1 box=0, R current=1 box=0; Austin Wells: AB current=3 box=4, H current=0 box=1, 2B current=0 box=1, RBI current=1 box=2 | NYY |
| info | RECONCILIATION_PROPAGATION | No score_target_reconciliation step was used for this game. |
| Team | Starter | Projected | Actual | ER err |
|---|---|---|---|---|
| OAK | Gage Jump | 2 ER / 15 outs | 7 ER / 13 outs | 5 |
| TEX | Jacob deGrom | 1 ER / 15 outs | 0 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: Gage Jump (OAK) posted 14.54 ERA vs projected 3.60 (7 ER in 13 outs); no credible venue, opponent-strength or experience signal explains it — an outlier start (variance).
What to do: Variance — no model change is warranted for this start.
Pitcher versus batter: what actually broke this game
Per-pitch matchup fields are not populated in the current feeds, so this is reconstructed from the settled box: each starter's workload-adjusted ERA, the bullpen share behind him, and the opposing lineup's real production against its projection, with the hitters who beat that projection named.
AWAY pitching
Gage Jump (OAK) threw 13 outs, 7 ER = 14.54 ERA against a projected 3.6 ERA (10.94 ERA error)
Bullpen behind him: 0 ER over 0 outs.
The HOME lineup he faced produced 7 runs on 8 hits and 1 HR, against a projected 5 runs / 8 hits (2 runs vs projection).
Who did the damage to him:
Verdict: both: the starter was hit hard AND the lineup underproduced
HOME pitching
Jacob deGrom (TEX) threw 21 outs, 0 ER = 0 ERA against a projected 1.8 ERA (-1.8 ERA error)
Bullpen behind him: 0 ER over 0 outs.
The AWAY lineup he faced produced 1 runs on 3 hits and 0 HR, against a projected 4 runs / 8 hits (-3 runs vs projection).
Who did the damage to him:
Verdict: neither side broke materially - the result is closer to variance
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 | Gage Jump (Starter) | 13 / 15 | 14.54 / 3.6 (+10.94) | 7 / 2 | 6 / 6 | 1 / 1 | 3 / 2 | 2 / 8 | venue away: 3.49 vs 5.62 ERA (ok) · opp run factor 0.97 (weak) · 17 prior appearances this season |
| TEX | Jacob deGrom (Starter) | 21 / 15 | 0 / 1.8 | 0 / 1 | 1 / 3 | 0 / 1 | 0 / 2 | 8 / 8 | venue home: 2.67 vs 5.86 ERA (ok) · opp run factor 0.96 (weak) · 25 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 | Lawrence Butler (RF) | 3 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 0 / 1 | 0 / 1 | 2 / 1 | -1.26 | 0.324 above average | bad day |
| TEX | Justin Foscue (2B) | 2 / 3 | 1 / 1 | 0 / 0 | 0 / 0 | 1 / 0 | 1 / 1 | 1 / 0 | 0 / 0 | 0 / 1 | 0.93 | 0.331 above average | projection too low |
| OAK | Zack Gelof (3B) | 3 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 1 / 1 | -0.8 | 0.316 average | no signal |
| OAK | Darell Hernaiz (SS) | 2 / 3 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 0 / 0 | 0 / 1 | 2 / 1 | -0.8 | 0.262 weak | projection too high |
| OAK | Jonah Heim (C) | 3 / 3 | 1 / 0 | 1 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0.78 | 0.292 below average | good day |
| OAK | Jeff McNeil (2B) | 4 / 4 | 0 / 1 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 0 / 0 | 2 / 0 | -0.78 | 0.307 average | no signal |
| OAK | Henry Bolte (CF) | 4 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 1 / 1 | -0.47 | 0.311 average | — |
| OAK | Tommy White (1B) | 3 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 1 / 1 | -0.47 | 0.298 below average | — |
| OAK | Max Muncy (DH) | 3 / 3 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 2 / 1 | -0.47 | 0.293 below average | — |
| TEX | Elias Díaz (DH) | 2 / 3 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | -0.47 | 0.278 weak | — |
| TEX | Wyatt Langford (LF) | 3 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 1 / 1 | 1 / 1 | -0.47 | 0.313 average | — |
| TEX | Cody Freeman (3B) | 4 / 3 | 2 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 2 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0.47 | 0.231 weak | — |
| TEX | Danny Jansen (C) | 3 / 3 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 1 / 1 | 0.33 | 0.25 weak | — |
| TEX | Brandon Nimmo (RF) | 3 / 5 | 2 / 1 | 0 / 1 | 0 / 0 | 0 / 0 | 2 / 1 | 1 / 1 | 0 / 1 | 0 / 1 | -0.17 | 0.353 elite | — |
| TEX | Jake Burger (1B) | 4 / 4 | 2 / 1 | 1 / 0 | 0 / 0 | 0 / 1 | 1 / 1 | 1 / 1 | 0 / 0 | 0 / 1 | -0.15 | 0.312 average | — |
| TEX | Corey Seager (SS) | 2 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 2 / 1 | 2 / 1 | 0 / 1 | -0.14 | 0.351 elite | — |
| TEX | Ezequiel Duran (CF) | 4 / 4 | 1 / 1 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 1 / 1 | 1 / 0 | 0 / 1 | 0.02 | 0.306 average | — |
| OAK | Carlos Cortes (LF) | 3 / 3 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 1 / 0 | 0 / 0 | 0 / 1 | 0 | 0.306 average | — |
| Signal | Home-away edge | Meaning |
|---|---|---|
| Season quality | 0.83 | positive favors home; negative favors away |
| Recent form | 0.118 | positive favors home; negative favors away |
| Starting-pitcher matchup | 0.006 | positive favors home; negative favors away |
| Composite | 0.858 | positive favors home; negative favors away |
| Stage | Away-home runs | Confidence | What changed |
|---|---|---|---|
| historical_ml | 3.77-5.03 | n/a | Base ML historical model prediction |
| variance_applied | 4-5 | n/a | Deterministic baseline target (variance factor 1.0) |
| enhanced_prediction | 4-5 | 0.53 | Enhanced ML with recent form, H2H, low-score analysis (confidence shrunk by matchup_recency_guardrail) |
| embedded_savant_run_environment | 3-5 | n/a | Target score adjusted by temporal Savant lineup quality versus opposing starter quality |
| fundamental_edge_target_review | 3-5 | n/a | Refreshed score target and win probability after Savant/pitcher/team-strength adjustments |
| capped_target | 3-5 | n/a | Capped at max 12 realistic runs |
| simulation_result | 3-5 | n/a | Final inning-by-inning simulation result |
| Stage | Before | After | Toward final pick | What changed |
|---|---|---|---|---|
| variance_applied | 3.77-5.03 | 4-5 | -0.258 | Deterministic baseline target (variance factor 1.0) |
| enhanced_prediction | 4-5 | 4-5 | 0 | Enhanced ML with recent form, H2H, low-score analysis (confidence shrunk by matchup_recency_guardrail) |
| embedded_savant_run_environment | 4-5 | 3-5 | 1 | Target score adjusted by temporal Savant lineup quality versus opposing starter quality |
| fundamental_edge_target_review | 3-5 | 3-5 | 0 | Refreshed score target and win probability after Savant/pitcher/team-strength adjustments |
| capped_target | 3-5 | 3-5 | 0 | Capped at max 12 realistic runs |
| simulation_result | 3-5 | 3-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 | Wyatt Langford | batter / LF | better | predicted_RBI 2.67 |
| TEX | Danny Jansen | batter / C | better | predicted_H 2.54 |
| OAK | Max Muncy | batter / DH | worse | predicted_SO 1.855 |
| OAK | Henry Bolte | batter / CF | better | predicted_BB 1.733 |
| TEX | Brandon Nimmo | batter / RF | worse | predicted_AB -1.55 |
| TEX | Cody Freeman | batter / 3B | better | predicted_SO 1.524 |
| TEX | Justin Foscue | batter / 2B | worse | predicted_AB 1.5 |
| OAK | Carlos Cortes | batter / LF | worse | predicted_SO 1.475 |
| Severity | Rule | Finding | Subject |
|---|---|---|---|
| info | CURRENT_PITCHER_DUPLICATION | OAK pitcher list appears in both predicted_performance.pitchers and player_predictions_by_position.pitchers; IDs match and were de-duplicated in this audit. | OAK |
| info | CURRENT_PITCHER_DUPLICATION | 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=32, sim=31; H: current=8, sim=4; 2B: current=1, sim=0; HR: current=1, sim=2; R: current=4, sim=3; BB: current=3, sim=4; SO: current=8, sim=11). | OAK |
| info | CURRENT_PLAYER_MATCH_BOX | OAK current finalized hitter lines are model predictions and differ from the simulation box score: Henry Bolte: AB current=4 box=2, HR current=0 box=1, RBI current=0 box=1, BB current=0 box=2; Tommy White: AB current=4 box=3, H current=1 box=0, R current=1 box=0, BB current=0 box=1; Max Muncy: AB current=3 box=4, H current=1 box=0, SO current=1 box=3; Carlos Cortes: AB current=3 box=4, H current=1 box=0, RBI current=1 box=0, SO current=1 box=2; Zack Gelof: AB current=4 box=3, H current=1 box=0, R current=1 box=0; Lawrence Butler: HR current=1 box=0, BB current=1 box=0, SO current=1 box=2; Jonah Heim: AB current=3 box=4; Jeff McNeil: H current=1 box=2, 2B current=1 box=0, HR current=0 box=1, R current=0 box=1 | OAK |
| info | CURRENT_FINALIZED_MATCH_BOX | TEX model-prediction batting totals differ from final simulation box score (H: current=8, sim=9; 2B: current=2, sim=1; HR: current=1, sim=4; RBI: current=4, sim=5; BB: current=3, sim=2; SO: current=8, sim=10). | TEX |
| info | CURRENT_PLAYER_MATCH_BOX | TEX current finalized hitter lines are model predictions and differ from the simulation box score: Ezequiel Duran: H current=1 box=0, 2B current=1 box=0, RBI current=1 box=0, R current=1 box=0; Corey Seager: 2B current=0 box=1, BB current=1 box=0; Jake Burger: AB current=4 box=3, H current=1 box=0, HR current=1 box=0, RBI current=1 box=0; Brandon Nimmo: AB current=5 box=3, H current=1 box=0, 2B current=1 box=0, RBI current=1 box=0; Elias Díaz: AB current=3 box=4, SO current=1 box=0; Wyatt Langford: H current=1 box=2, HR current=0 box=2, RBI current=0 box=3, BB current=1 box=0; Cody Freeman: AB current=3 box=4, HR current=0 box=1, RBI current=0 box=1, R current=0 box=1; Justin Foscue: AB current=3 box=4, RBI current=1 box=0, R current=0 box=1, SO current=1 box=0 | TEX |
| info | RECONCILIATION_PROPAGATION | No score_target_reconciliation step was used for this game. |
| Team | Starter | Projected | Actual | ER err |
|---|---|---|---|---|
| PHI | Aaron Nola | 4 ER / 16 outs | 1 ER / 15 outs | -3 |
| ARI | Brandon Pfaadt | 1 ER / 19 outs | 2 ER / 18 outs | 1 |
Every value is actual / projected. Run impact approximates how far each hitter's real line moved run expectancy from its projection; it orders the movers and is not a published stat.
Top deviations that drove the game:
Starter miss: Aaron Nola (PHI) posted 1.80 ERA vs projected 6.75 (1 ER in 15 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
Aaron Nola (PHI) threw 15 outs, 1 ER = 1.8 ERA against a projected 6.75 ERA (-4.95 ERA error)
Bullpen behind him: 0 ER over 5 outs.
The HOME lineup he faced produced 1 runs on 9 hits and 0 HR, against a projected 4 runs / 8 hits (-3 runs vs projection).
Who did the damage to him:
Verdict: offense: the lineup scored well below its projection
HOME pitching
Brandon Pfaadt (ARI) threw 18 outs, 2 ER = 3 ERA against a projected 1.42 ERA (1.58 ERA error)
Bullpen behind him: 0 ER over 0 outs.
The AWAY lineup he faced produced 2 runs on 6 hits and 1 HR, against a projected 4 runs / 8 hits (-2 runs vs projection).
Who did the damage to him:
Verdict: 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 | Aaron Nola (Starter) | 15 / 16 | 1.8 / 6.75 (-4.95) | 1 / 4 | 5 / 7 | 0 / 0 | 2 / 2 | 4 / 2 | venue away: 4.42 vs 5.72 ERA (ok) · opp run factor 0.93 (average) · 27 prior appearances this season |
| PHI | Jhoan Duran (Closer) | 3 / 4 | 0 / 0 | 0 / 0 | 2 / 0 | 0 / 0 | 0 / 0 | 2 / 1 | |
| PHI | Orion Kerkering (Middle Reliever (High Leverage)) | 2 / 4 | 0 / 0 | 0 / 0 | 1 / 1 | 0 / 0 | 1 / 0 | 1 / 0 | |
| ARI | Brandon Pfaadt (Starter) | 18 / 19 | 3 / 1.42 | 2 / 1 | 5 / 3 | 1 / 0 | 1 / 0 | 1 / 4 | venue home: 3.24 vs 2.57 ERA (worse here) · opp run factor 1.04 (average) · 24 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 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| PHI | Kyle Schwarber (DH) | 3 / 5 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 0 / 1 | 1 / 1 | 0 / 2 | -1.4 | 0.365 elite | bad day |
| ARI | Ryan Waldschmidt (CF) | 4 / 3 | 2 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 0.94 | 0.304 below average | good day |
| ARI | Lars Nootbaar (LF) | 2 / 3 | 0 / 1 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 1 / 1 | 0 / 0 | -0.78 | 0.346 elite | bad day |
| ARI | Ketel Marte (DH) | 3 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 0 / 1 | 1 / 0 | 0 / 1 | -0.6 | 0.349 elite | bad day |
| PHI | Brandon Marsh (LF) | 4 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 1 / 1 | -0.47 | 0.306 average | — |
| PHI | Garrett Stubbs (C) | 4 / 3 | 1 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 0 / 0 | 0 / 1 | 0.47 | 0.221 weak | — |
| ARI | Tim Tawa (1B) | 4 / 3 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 3 / 1 | -0.47 | 0.304 below average | — |
| PHI | Bryson Stott (3B) | 4 / 4 | 1 / 1 | 0 / 1 | 0 / 0 | 1 / 0 | 1 / 0 | 1 / 0 | 0 / 1 | 0 / 1 | 0.29 | 0.327 above average | — |
| PHI | Bryce Harper (RF) | 4 / 4 | 2 / 1 | 1 / 1 | 0 / 0 | 0 / 0 | 1 / 1 | 0 / 1 | 0 / 1 | 0 / 1 | 0.14 | 0.393 elite | — |
| PHI | Alec Bohm (1B) | 3 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 1 / 0 | 0 / 0 | -0.14 | 0.323 above average | — |
| PHI | Trea Turner (SS) | 3 / 5 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 1 / 0 | 1 / 1 | -0.14 | 0.294 below average | — |
| ARI | Gabriel Moreno (C) | 5 / 5 | 2 / 1 | 1 / 1 | 0 / 0 | 0 / 0 | 1 / 1 | 0 / 1 | 0 / 1 | 1 / 1 | 0.14 | 0.366 elite | — |
| PHI | Luis Arraez (2B) | 4 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 | 0.307 average | — |
| PHI | Justin Crawford (CF) | 4 / 3 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 0 | 0.281 weak | — |
| ARI | Nolan Arenado (3B) | 4 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 1 / 1 | 0 | 0.282 weak | — |
| ARI | Ildemaro Vargas (2B) | 4 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 0 / 0 | 1 / 0 | 0 | 0.299 below average | — |
| ARI | Corbin Carroll (RF) | 5 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 0 / 1 | 0 | 0.342 elite | — |
| ARI | Geraldo Perdomo (SS) | 4 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 1 / 1 | 2 / 0 | 0 | 0.327 above average | — |
| Signal | Home-away edge | Meaning |
|---|---|---|
| Season quality | -0.301 | positive favors home; negative favors away |
| Recent form | -0.311 | positive favors home; negative favors away |
| Starting-pitcher matchup | -0.11 | positive favors home; negative favors away |
| Composite | -0.665 | positive favors home; negative favors away |
| Stage | Away-home runs | Confidence | What changed |
|---|---|---|---|
| historical_ml | 4.6-4.85 | 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.527 | 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 | 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.6-4.85 | 5-5 | 0.251 | 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 winner_starter_is_below_average, 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 |
|---|---|---|---|---|
| ARI | Lars Nootbaar | batter / LF | better | predicted_H 2.25 |
| PHI | Brandon Marsh | batter / LF | worse | predicted_SO 2.039 |
| ARI | Gabriel Moreno | batter / C | worse | predicted_AB -1.6 |
| PHI | Trea Turner | batter / SS | worse | predicted_AB -1.15 |
| PHI | Bryson Stott | batter / 3B | worse | predicted_H 1.1 |
| ARI | Geraldo Perdomo | batter / SS | better | predicted_H -1.06 |
| ARI | Ryan Waldschmidt | batter / CF | deboosted | predicted_SO -1.029 |
| PHI | Justin Crawford | batter / CF | better | predicted_AB 1.025 |
| Severity | Rule | Finding | Subject |
|---|---|---|---|
| info | CURRENT_PITCHER_DUPLICATION | ARI pitcher list appears in both predicted_performance.pitchers and player_predictions_by_position.pitchers; IDs match and were de-duplicated in this audit. | ARI |
| info | CURRENT_PITCHER_DUPLICATION | 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 (2B: current=2, sim=3; 3B: current=0, sim=1; HR: current=1, sim=0; SO: current=6, sim=3; SF: current=0, sim=1). | ARI |
| info | CURRENT_PLAYER_MATCH_BOX | ARI current finalized hitter lines are model predictions and differ from the simulation box score: Ketel Marte: H current=1 box=0, HR current=1 box=0, RBI current=1 box=0, R current=1 box=0; Lars Nootbaar: H current=1 box=3, 2B current=1 box=2, R current=0 box=1; Gabriel Moreno: AB current=5 box=3, 2B current=1 box=0, RBI current=1 box=2, BB current=1 box=0; Nolan Arenado: H current=1 box=0, R current=1 box=0, SO current=1 box=0; Ildemaro Vargas: RBI current=1 box=0; Corbin Carroll: AB current=4 box=5, 3B current=0 box=1, R current=1 box=0; Geraldo Perdomo: H current=1 box=0, RBI current=0 box=1, R current=0 box=1; Tim Tawa: AB current=3 box=4 | ARI |
| info | CURRENT_FINALIZED_MATCH_BOX | PHI model-prediction batting totals differ from final simulation box score (AB: current=36, sim=35; 2B: current=2, sim=3; RBI: current=4, sim=5; R: current=4, sim=5; BB: current=3, sim=0; SO: current=8, sim=7). | PHI |
| info | CURRENT_PLAYER_MATCH_BOX | PHI current finalized hitter lines are model predictions and differ from the simulation box score: Bryce Harper: 2B current=1 box=0, HR current=0 box=1, BB current=1 box=0; Alec Bohm: 2B current=0 box=1, R current=0 box=1; Bryson Stott: H current=1 box=2, 2B current=1 box=0, RBI current=0 box=1, R current=0 box=1; Kyle Schwarber: AB current=5 box=4, HR current=1 box=0, RBI current=1 box=0, R current=1 box=0; Luis Arraez: SO current=1 box=0; Brandon Marsh: H current=1 box=0, R current=1 box=0, SO current=1 box=3; Trea Turner: AB current=5 box=4, 2B current=0 box=1; Garrett Stubbs: SO current=1 box=0 | PHI |
| info | RECONCILIATION_PROPAGATION | No score_target_reconciliation step was used for this game. |
| Team | Starter | Projected | Actual | ER err |
|---|---|---|---|---|
| SD | Michael King | 3 ER / 18 outs | 0 ER / 18 outs | -3 |
| CIN | Brady Singer | 4 ER / 15 outs | 4 ER / 13 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: Michael King (SD) posted 0.00 ERA vs projected 4.50 (0 ER in 18 outs); he is materially worse pitching away (3.56 ERA there vs 2.94 on the other side), a venue-role weakness the model under-weighted.
What to do: Enable/raise the venue-split weight (context.venue_adjustment_weight) and validate in shadow; the split is credible for this starter.
Pitcher versus batter: what actually broke this game
Per-pitch matchup fields are not populated in the current feeds, so this is reconstructed from the settled box: each starter's workload-adjusted ERA, the bullpen share behind him, and the opposing lineup's real production against its projection, with the hitters who beat that projection named.
AWAY pitching
Michael King (SD) threw 18 outs, 0 ER = 0 ERA against a projected 4.5 ERA (-4.5 ERA error)
Bullpen behind him: 0 ER over 0 outs.
The HOME lineup he faced produced 0 runs on 4 hits and 0 HR, against a projected 5 runs / 8 hits (-5 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
Brady Singer (CIN) threw 13 outs, 4 ER = 8.31 ERA against a projected 7.2 ERA (1.11 ERA error)
Bullpen behind him: 0 ER over 3 outs.
The AWAY lineup he faced produced 5 runs on 15 hits and 0 HR, against a projected 4 runs / 7 hits (1 runs vs projection).
Who did the damage to him:
Verdict: offense: the lineup scored well below its projection
Starting pitchers & relievers: actual / projected + context (ERA is workload-aware: ER over 9 innings, so a short blow-up is not read like a quality start; ERA error in parentheses when material)
| Team | Pitcher | Outs | ERA | ER | H | HR | BB | SO | Context (as-of) |
|---|---|---|---|---|---|---|---|---|---|
| SD | Michael King (Starter) | 18 / 18 | 0 / 4.5 (-4.50) | 0 / 3 | 4 / 5 | 0 / 0 | 3 / 0 | 6 / 6 | venue away: 3.56 vs 2.94 ERA (worse here) · opp run factor 1 (weak) · 27 prior appearances this season |
| CIN | Brady Singer (Starter) | 13 / 15 | 8.31 / 7.2 | 4 / 4 | 10 / 8 | 0 / 1 | 0 / 1 | 5 / 6 | venue home: 3.82 vs 5.67 ERA (ok) · opp run factor 1.01 (average) · 26 prior appearances this season |
| CIN | Tejay Antone (Setup Man) | 3 / 3 | 0 / 18 (-18.00) | 0 / 2 | 1 / 3 | 0 / 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 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| SD | Manny Machado (3B) | 5 / 4 | 4 / 1 | 1 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 0 / 1 | 0 / 1 | 1.39 | 0.333 above average | projection too low |
| SD | Ty France (1B) | 5 / 3 | 3 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 1 / 0 | 0 / 0 | 0 / 1 | 0.94 | 0.331 above average | projection too low |
| SD | Jake Cronenworth (2B) | 5 / 5 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 0 / 1 | 2 / 1 | -0.8 | 0.272 weak | projection too high |
| CIN | Eugenio Suárez (3B) | 3 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 0 / 1 | 2 / 1 | -0.8 | 0.29 below average | projection too high |
| CIN | Sal Stewart (1B) | 4 / 5 | 1 / 1 | 1 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 0 / 1 | 0 / 0 | 0 / 1 | -0.62 | 0.351 elite | bad day |
| SD | Luis Campusano (C) | 4 / 3 | 2 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 1 / 1 | 0.61 | 0.335 above average | projection too low |
| CIN | Tyler Stephenson (C) | 3 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 0 / 1 | 1 / 0 | 2 / 1 | -0.6 | 0.335 above average | bad day |
| SD | Dustin Harris (LF) | 5 / 3 | 2 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 0 / 1 | 0 / 0 | 1 / 0 | 0.47 | 0.327 above average | — |
| CIN | Edwin Arroyo (2B) | 4 / 3 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 4 / 1 | -0.47 | 0.291 below average | — |
| CIN | JJ Bleday (LF) | 3 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 0 / 1 | -0.47 | 0.349 elite | — |
| SD | Jackson Merrill (CF) | 4 / 5 | 2 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 1 / 1 | 1 / 1 | 0 / 0 | 2 / 1 | -0.46 | 0.336 above average | — |
| CIN | Elly De La Cruz (DH) | 2 / 4 | 0 / 1 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 2 / 1 | 1 / 1 | -0.45 | 0.364 elite | — |
| SD | Xander Bogaerts (DH) | 5 / 3 | 1 / 1 | 1 / 0 | 0 / 0 | 0 / 0 | 2 / 0 | 1 / 0 | 0 / 0 | 3 / 0 | 0.31 | 0.321 above average | — |
| SD | Fernando Tatis Jr. (RF) | 5 / 5 | 1 / 1 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 1 / 1 | 0 / 0 | 0 / 1 | 0 | 0.374 elite | — |
| SD | Sung-Mun Song (SS) | 4 / 3 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 0 | 0.256 weak | — |
| CIN | Héctor Rodríguez (RF) | 5 / 3 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 2 / 1 | 0 | 0.275 weak | — |
| CIN | Matt McLain (SS) | 3 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 0 / 1 | 0 | 0.307 average | — |
| CIN | TJ Friedl (CF) | 3 / 3 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 | 0.248 weak | — |
| Signal | Home-away edge | Meaning |
|---|---|---|
| Season quality | -0.695 | positive favors home; negative favors away |
| Recent form | -0.361 | positive favors home; negative favors away |
| Starting-pitcher matchup | -0.005 | positive favors home; negative favors away |
| Composite | -0.844 | positive favors home; negative favors away |
| Stage | Away-home runs | Confidence | What changed |
|---|---|---|---|
| historical_ml | 4.79-3.34 | n/a | Base ML historical model prediction |
| variance_applied | 5-3 | n/a | Deterministic baseline target (variance factor 1.0) |
| enhanced_prediction | 6-4 | 0.674 | Enhanced ML with recent form, H2H, low-score analysis |
| 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 | 4.79-3.34 | 5-3 | 0.547 | Deterministic baseline target (variance factor 1.0) |
| enhanced_prediction | 5-3 | 6-4 | -0 | Enhanced ML with recent form, H2H, low-score analysis |
| embedded_savant_run_environment | 6-4 | 6-4 | -0 | 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 |
|---|---|---|---|---|
| SD | Sung-Mun Song | batter / SS | worse | predicted_SO 2.457 |
| SD | Dustin Harris | batter / LF | worse | predicted_H 2.25 |
| CIN | Sal Stewart | batter / 1B | worse | predicted_H 1.67 |
| CIN | Héctor Rodríguez | batter / RF | better | predicted_RBI 1.526 |
| SD | Jackson Merrill | batter / CF | better | predicted_AB -1.49 |
| SD | Ty France | batter / 1B | better | predicted_RBI 1.39 |
| SD | Jake Cronenworth | batter / 2B | worse | predicted_SO 1.083 |
| SD | Fernando Tatis Jr. | batter / RF | better | predicted_AB -1.07 |
| 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=34, sim=35; 2B: current=1, sim=0; HR: current=2, sim=1; R: current=5, sim=4; BB: current=3, sim=1; SO: current=9, sim=7). | 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: RBI current=0 box=2, BB current=0 box=1, SO current=1 box=0; Elly De La Cruz: 2B current=1 box=0, RBI current=1 box=0, BB current=1 box=0; Eugenio Suárez: H current=1 box=0, RBI current=1 box=0, BB current=1 box=0; Matt McLain: H current=1 box=0, R current=1 box=0; Tyler Stephenson: H current=1 box=0, HR current=1 box=0, RBI current=1 box=0, R current=1 box=0; Edwin Arroyo: AB current=3 box=4; TJ Friedl: AB current=3 box=4, H current=0 box=1, HR current=0 box=1, RBI current=0 box=1; JJ Bleday: BB current=1 box=0 | CIN |
| info | CURRENT_FINALIZED_MATCH_BOX | SD model-prediction batting totals differ from final simulation box score (AB: current=34, sim=37; H: current=7, sim=11; 2B: current=1, sim=3; RBI: current=4, sim=6; R: current=4, sim=6; BB: current=3, sim=2; SO: current=7, sim=9; 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.: AB current=5 box=4, H current=1 box=2, RBI current=1 box=0, BB current=0 box=1; Manny Machado: AB current=4 box=5, 2B current=0 box=1, BB current=1 box=0; Xander Bogaerts: AB current=3 box=4, 2B current=0 box=1, SO current=0 box=1; Ty France: AB current=3 box=4, RBI current=1 box=2, R current=0 box=1, SO current=1 box=0; Jackson Merrill: AB current=5 box=4, H current=1 box=2, RBI current=1 box=2; Sung-Mun Song: AB current=3 box=4, SO current=1 box=3; Jake Cronenworth: RBI current=1 box=0, R current=0 box=1, BB current=1 box=0, SO current=1 box=2; Dustin Harris: AB current=3 box=4, H current=1 box=3, RBI current=0 box=2 | SD |
| info | RECONCILIATION_PROPAGATION | No score_target_reconciliation step was used for this game. |
| Team | Starter | Projected | Actual | ER err |
|---|---|---|---|---|
| SEA | George Kirby | 2 ER / 17 outs | 5 ER / 15 outs | 3 |
| BOS | Payton Tolle | 0 ER / 18 outs | 4 ER / 17 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: Payton Tolle (BOS) posted 6.35 ERA vs projected 0.00 (4 ER in 17 outs); he is materially worse pitching home (3.64 ERA there vs 2.59 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
George Kirby (SEA) threw 15 outs, 5 ER = 9 ERA against a projected 3.18 ERA (5.82 ERA error)
Bullpen behind him: 1 ER over 4 outs.
The HOME lineup he faced produced 8 runs on 12 hits and 2 HR, against a projected 4 runs / 9 hits (4 runs vs projection).
Who did the damage to him:
Verdict: pitching: the starter gave up runs at a far worse rate than projected
HOME pitching
Payton Tolle (BOS) threw 17 outs, 4 ER = 6.35 ERA against a projected 0 ERA (6.35 ERA error)
Bullpen behind him: 4 ER over 7 outs.
The AWAY lineup he faced produced 8 runs on 11 hits and 2 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) |
|---|---|---|---|---|---|---|---|---|---|
| SEA | George Kirby (Starter) | 15 / 17 | 9 / 3.18 (+5.82) | 5 / 2 | 7 / 5 | 2 / 1 | 2 / 0 | 2 / 5 | venue away: 5.19 vs 3.21 ERA (worse here) · opp run factor 0.98 (average) · 25 prior appearances this season |
| SEA | Andrés Muñoz (Closer) | 4 / 3 | 6.75 / 9 | 1 / 1 | 1 / 1 | 0 / 0 | 0 / 0 | 3 / 0 | |
| BOS | Payton Tolle (Starter) | 17 / 18 | 6.35 / 0 (+6.35) | 4 / 0 | 6 / 2 | 1 / 0 | 2 / 3 | 6 / 7 | venue home: 3.64 vs 2.59 ERA (worse here) · opp run factor 0.96 (weak) · 22 prior appearances this season |
| BOS | Aroldis Chapman (Closer) | 3 / 3 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 2 / 0 | |
| BOS | Erik Miller (Setup Man) | 3 / 3 | 9 / 0 (+9.00) | 1 / 0 | 1 / 1 | 1 / 0 | 0 / 1 | 2 / 0 | |
| BOS | Tyron Guerrero (Middle Reliever (High Leverage)) | 1 / 3 | 81 / 18 (+63.00) | 3 / 2 | 3 / 2 | 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 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| SEA | Randy Arozarena (LF) | 5 / 4 | 4 / 1 | 1 / 1 | 0 / 0 | 1 / 0 | 4 / 0 | 3 / 1 | 0 / 1 | 0 / 1 | 2.01 | 0.349 elite | projection too low |
| SEA | Dominic Canzone (DH) | 5 / 4 | 2 / 1 | 1 / 0 | 1 / 0 | 0 / 0 | 2 / 1 | 0 / 0 | 0 / 0 | 1 / 1 | 1.4 | 0.356 elite | projection too low |
| BOS | Roman Anthony (DH) | 4 / 4 | 2 / 1 | 1 / 0 | 1 / 0 | 0 / 0 | 0 / 0 | 2 / 0 | 1 / 1 | 0 / 1 | 1.4 | 0.361 elite | projection too low |
| BOS | Jarren Duran (LF) | 4 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 1 / 0 | 2 / 1 | 1 / 0 | 1 / 0 | 0 / 1 | 1.26 | 0.296 below average | good day |
| BOS | Mickey Gasper (1B) | 4 / 3 | 1 / 1 | 0 / 0 | 0 / 0 | 1 / 0 | 1 / 1 | 1 / 0 | 1 / 1 | 1 / 0 | 0.93 | 0.372 elite | projection too low |
| SEA | Weston Wilson (3B) | 4 / 3 | 1 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 1 / 0 | 3 / 1 | 0.8 | 0.26 weak | good day |
| BOS | Wilyer Abreu (RF) | 5 / 4 | 0 / 1 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 2 / 1 | -0.78 | 0.347 elite | bad day |
| BOS | Caleb Durbin (3B) | 2 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 2 / 0 | 0 / 1 | 0.66 | 0.288 below average | good day |
| SEA | Cole Young (2B) | 4 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 2 / 1 | 0 / 0 | 1 / 1 | -0.47 | 0.316 average | — |
| SEA | J.P. Crawford (SS) | 2 / 4 | 1 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 1 / 1 | 1 / 1 | 0.47 | 0.327 above average | — |
| BOS | Ceddanne Rafaela (CF) | 4 / 6 | 2 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 3 / 1 | 0 / 0 | 0 / 0 | 1 / 1 | 0.47 | 0.282 weak | — |
| SEA | Cal Raleigh (C) | 5 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 1 / 1 | 1 / 1 | 1 / 1 | 0 / 1 | 1 / 1 | -0.33 | 0.315 average | — |
| SEA | Taylor Ward (RF) | 4 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 1 / 1 | -0.33 | 0.333 above average | — |
| SEA | Julio Rodríguez (CF) | 5 / 5 | 1 / 1 | 1 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 0 / 1 | 0 / 0 | 2 / 1 | 0.31 | 0.336 above average | — |
| BOS | Trevor Story (SS) | 5 / 4 | 2 / 1 | 1 / 0 | 0 / 0 | 0 / 1 | 3 / 0 | 0 / 1 | 0 / 0 | 1 / 1 | -0.15 | 0.251 weak | — |
| SEA | Josh Naylor (1B) | 4 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 1 / 1 | -0.14 | 0.313 average | — |
| BOS | Nick Sogard (2B) | 4 / 4 | 2 / 1 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 1 | 2 / 1 | 0 / 1 | 0 / 1 | 0.14 | 0.327 above average | — |
| BOS | Connor Wong (C) | 4 / 3 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 0 / 0 | 1 / 1 | 0 | 0.286 below average | — |
| Signal | Home-away edge | Meaning |
|---|---|---|
| Season quality | 0.957 | positive favors home; negative favors away |
| Recent form | 0.533 | positive favors home; negative favors away |
| Starting-pitcher matchup | 0.016 | positive favors home; negative favors away |
| Composite | 0.874 | positive favors home; negative favors away |
| Stage | Away-home runs | Confidence | What changed |
|---|---|---|---|
| historical_ml | 3.66-5.52 | n/a | Base ML historical model prediction |
| variance_applied | 4-6 | n/a | Deterministic baseline target (variance factor 1.0) |
| enhanced_prediction | 2-3 | 0.56 | Enhanced ML with recent form, H2H, low-score analysis (confidence shrunk by 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 | 3.66-5.52 | 4-6 | 0.144 | Deterministic baseline target (variance factor 1.0) |
| enhanced_prediction | 4-6 | 2-3 | -1 | Enhanced ML with recent form, H2H, low-score analysis (confidence shrunk by projected_margin_is_one_run, matchup_recency_guardrail) |
| embedded_savant_run_environment | 2-3 | 2-3 | 0 | 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 |
|---|---|---|---|---|
| BOS | Ceddanne Rafaela | batter / CF | deboosted | predicted_AB -2.73 |
| BOS | Trevor Story | batter / SS | worse | predicted_AB -2.16 |
| SEA | Julio Rodríguez | batter / CF | worse | predicted_AB -2.01 |
| BOS | Payton Tolle | pitcher / Starter | better | predicted_SO 2 |
| SEA | J.P. Crawford | batter / SS | worse | predicted_AB -1.65 |
| SEA | Cole Young | batter / 2B | worse | predicted_RBI 1.61 |
| BOS | Wilyer Abreu | batter / RF | worse | predicted_RBI 1.58 |
| SEA | Weston Wilson | batter / 3B | worse | predicted_AB 1.5 |
| 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=36, sim=29; H: current=9, sim=6; 2B: current=2, sim=1; 3B: current=0, sim=1; RBI: current=4, sim=3; R: current=4, sim=3; BB: current=3, sim=1; SO: current=8, sim=5). | 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=0, BB current=1 box=0, SO current=1 box=0; Mickey Gasper: AB current=3 box=4, 2B current=0 box=1, RBI current=1 box=0, BB current=1 box=0; Nick Sogard: AB current=4 box=3, H current=1 box=0, 2B current=1 box=0, RBI current=1 box=0; Caleb Durbin: AB current=4 box=3, H current=1 box=0, R current=1 box=0, SO current=1 box=0; Ceddanne Rafaela: AB current=6 box=3, H current=1 box=2, RBI current=1 box=0, R current=0 box=1; Wilyer Abreu: 2B current=1 box=0, HR current=0 box=1, RBI current=0 box=2, SO current=1 box=0; Connor Wong: SO current=1 box=0; Jarren Duran: AB current=4 box=3, 3B current=0 box=1, RBI current=1 box=0, SO current=1 box=2 | BOS |
| info | CURRENT_FINALIZED_MATCH_BOX | SEA model-prediction batting totals differ from final simulation box score (AB: current=36, sim=32; H: current=7, sim=5; 2B: current=1, sim=2; RBI: current=3, sim=2; R: current=5, sim=2; SO: current=9, sim=8). | SEA |
| info | CURRENT_PLAYER_MATCH_BOX | SEA current finalized hitter lines are model predictions and differ from the simulation box score: Julio Rodríguez: AB current=5 box=3, H current=1 box=0, RBI current=1 box=0, R current=1 box=0; Cal Raleigh: H current=1 box=0, HR current=1 box=0, RBI current=1 box=0, R current=1 box=0; Taylor Ward: H current=1 box=0, R current=1 box=0, BB current=1 box=0, SO current=1 box=2; Randy Arozarena: 2B current=1 box=0, R current=1 box=0, BB current=1 box=0, SO current=1 box=0; Dominic Canzone: AB current=4 box=3, 2B current=0 box=1, RBI current=1 box=0, R current=0 box=1; Josh Naylor: 2B current=0 box=1; Cole Young: HR current=0 box=1, RBI current=0 box=2; Weston Wilson: AB current=3 box=4, H current=0 box=1 | SEA |
| info | RECONCILIATION_PROPAGATION | No score_target_reconciliation step was used for this game. |
| Team | Starter | Projected | Actual | ER err |
|---|---|---|---|---|
| SF | Anthony Molina | 4 ER / 9 outs | 3 ER / 15 outs | -1 |
| ATL | Bryce Elder | 1 ER / 18 outs | 5 ER / 16 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: Bryce Elder (ATL) posted 8.44 ERA vs projected 1.50 (5 ER in 16 outs); he faced a strong offense (opponent run factor 1.08, bucket weak).
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
Anthony Molina (SF) threw 15 outs, 3 ER = 5.4 ERA against a projected 12 ERA (-6.6 ERA error) only 4 prior appearances in the covered season - the projection had little of his own record to stand on
Bullpen behind him: 0 ER over 7 outs.
The HOME lineup he faced produced 3 runs on 9 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
HOME pitching
Bryce Elder (ATL) threw 16 outs, 5 ER = 8.44 ERA against a projected 1.5 ERA (6.94 ERA error)
Bullpen behind him: 1 ER over 1 outs.
The AWAY lineup he faced produced 6 runs on 10 hits and 3 HR, against a projected 3 runs / 7 hits (3 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) |
|---|---|---|---|---|---|---|---|---|---|
| SF | Anthony Molina (Starter) | 15 / 9 | 5.4 / 12 (-6.60) | 3 / 4 | 6 / 4 | 1 / 2 | 0 / 2 | 6 / 2 | opp run factor 1 (strong) · thin sample: 4 prior appearances this season (high uncertainty) |
| SF | Dylan Smith (Closer) | 3 / 3 | 0 / 0 | 0 / 0 | 1 / 0 | 0 / 0 | 1 / 0 | 1 / 2 | |
| SF | Jason Foley (Setup Man) | 4 / 3 | 0 / 0 | 0 / 0 | 2 / 0 | 0 / 0 | 0 / 0 | 1 / 2 | |
| ATL | Bryce Elder (Starter) | 16 / 18 | 8.44 / 1.5 (+6.94) | 5 / 1 | 8 / 1 | 2 / 0 | 3 / 4 | 3 / 6 | venue home: 3.49 vs 4.93 ERA (ok) · opp run factor 1.08 (weak) · 25 prior appearances this season |
| ATL | Dylan Lee (Setup Man) | 1 / 3 | 27 / 0 (+27.00) | 1 / 0 | 2 / 0 | 0 / 0 | 0 / 0 | 0 / 2 |
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 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| SF | Jonah Cox (CF) | 5 / 3 | 2 / 1 | 0 / 0 | 0 / 0 | 1 / 0 | 2 / 0 | 1 / 0 | 0 / 0 | 1 / 1 | 1.4 | 0.274 weak | good day |
| SF | Andrew Knizner (C) | 4 / 3 | 2 / 0 | 1 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 0 / 0 | 0 / 1 | 1.25 | 0.271 weak | good day |
| ATL | Matt Olson (1B) | 4 / 4 | 0 / 1 | 0 / 1 | 0 / 0 | 0 / 0 | 1 / 1 | 0 / 1 | 0 / 1 | 1 / 1 | -1.11 | 0.355 elite | bad day |
| SF | Osleivis Basabe (3B) | 4 / 3 | 1 / 1 | 0 / 0 | 0 / 0 | 1 / 0 | 1 / 0 | 1 / 0 | 0 / 0 | 1 / 1 | 0.93 | 0.283 weak | good day |
| SF | Nate Furman (2B) | 3 / 3 | 2 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 0 / 1 | 1 / 1 | 0.61 | 0.213 weak | good day |
| SF | Drew Gilbert (LF) | 3 / 3 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | -0.47 | 0.328 above average | — |
| SF | Christian Koss (SS) | 3 / 3 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | -0.47 | 0.24 weak | — |
| ATL | Mauricio Dubón (SS) | 4 / 4 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 0 / 0 | 1 / 0 | -0.47 | 0.302 below average | — |
| ATL | Austin Riley (3B) | 4 / 4 | 2 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0.47 | 0.298 below average | — |
| ATL | Drake Baldwin (DH) | 4 / 4 | 2 / 1 | 1 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 1 / 1 | 0 / 1 | 2 / 1 | 0.45 | 0.367 elite | — |
| SF | Rafael Devers (DH) | 3 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 1 / 1 | 1 / 1 | 2 / 1 | 2 / 1 | 1 / 1 | 0.33 | 0.34 elite | — |
| ATL | Ronald Acuña Jr. (RF) | 4 / 5 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 1 / 1 | -0.33 | 0.362 elite | — |
| ATL | Sean Murphy (C) | 3 / 3 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 0 | 1 / 0 | 2 / 1 | 0.33 | 0.275 weak | — |
| ATL | Michael Harris II (CF) | 4 / 5 | 2 / 2 | 0 / 1 | 0 / 0 | 1 / 1 | 1 / 1 | 1 / 1 | 0 / 0 | 2 / 1 | -0.31 | 0.341 elite | — |
| SF | Bryce Eldridge (1B) | 5 / 4 | 2 / 1 | 0 / 1 | 0 / 0 | 0 / 0 | 1 / 1 | 0 / 1 | 0 / 1 | 0 / 1 | -0.17 | 0.357 elite | — |
| SF | Jung Hoo Lee (RF) | 4 / 5 | 0 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 1 | 1 / 0 | 1 / 1 | -0.14 | 0.315 average | — |
| ATL | Ozzie Albies (2B) | 4 / 4 | 1 / 1 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 1 | 0 / 0 | 0 / 1 | 0 | 0.284 below average | — |
| ATL | Mike Yastrzemski (LF) | 4 / 3 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 1 / 1 | 0 | 0.308 average | — |
| Signal | Home-away edge | Meaning |
|---|---|---|
| Season quality | 1.228 | positive favors home; negative favors away |
| Recent form | 0.182 | positive favors home; negative favors away |
| Starting-pitcher matchup | -0.083 | positive favors home; negative favors away |
| Composite | 0.718 | positive favors home; negative favors away |
| Stage | Away-home runs | Confidence | What changed |
|---|---|---|---|
| historical_ml | 3.85-4.61 | n/a | Base ML historical model prediction |
| variance_applied | 4-5 | n/a | Deterministic baseline target (variance factor 1.0) |
| enhanced_prediction | 4-5 | 0.53 | Enhanced ML with recent form, H2H, low-score analysis (confidence shrunk by projected_margin_is_one_run, matchup_recency_guardrail) |
| embedded_savant_run_environment | 4-5 | n/a | Target score adjusted by temporal Savant lineup quality versus opposing starter quality |
| fundamental_edge_target_review | 4-5 | n/a | Refreshed score target and win probability after Savant/pitcher/team-strength adjustments |
| capped_target | 4-5 | n/a | Capped at max 12 realistic runs |
| simulation_result | 4-5 | n/a | Final inning-by-inning simulation result |
| Stage | Before | After | Toward final pick | What changed |
|---|---|---|---|---|
| variance_applied | 3.85-4.61 | 4-5 | 0.24 | Deterministic baseline target (variance factor 1.0) |
| enhanced_prediction | 4-5 | 4-5 | 0 | Enhanced ML with recent form, H2H, low-score analysis (confidence shrunk by projected_margin_is_one_run, matchup_recency_guardrail) |
| embedded_savant_run_environment | 4-5 | 4-5 | 0 | Target score adjusted by temporal Savant lineup quality versus opposing starter quality |
| fundamental_edge_target_review | 4-5 | 4-5 | 0 | Refreshed score target and win probability after Savant/pitcher/team-strength adjustments |
| capped_target | 4-5 | 4-5 | 0 | Capped at max 12 realistic runs |
| simulation_result | 4-5 | 4-5 | 0 | Final inning-by-inning simulation result |
These are pregame model adjustments, not claims about actual postgame player error.
| Team | Player | Role | Net effect | Largest change |
|---|---|---|---|---|
| SF | Osleivis Basabe | batter / 3B | worse | predicted_RBI 2.692 |
| ATL | Drake Baldwin | batter / DH | better | predicted_RBI 2.407 |
| ATL | Michael Harris II | batter / CF | worse | predicted_AB -1.72 |
| ATL | Mauricio Dubón | batter / SS | better | predicted_AB -1.705 |
| SF | Jung Hoo Lee | batter / RF | worse | predicted_SO 1.615 |
| SF | Andrew Knizner | batter / C | worse | predicted_AB 1.5 |
| ATL | Ozzie Albies | batter / 2B | worse | predicted_SO 1.382 |
| SF | Anthony Molina | pitcher / Starter | worse | predicted_IP -1.333 |
| 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 | 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 | ATL model-prediction batting totals differ from final simulation box score (AB: current=36, sim=30; H: current=9, sim=7; 2B: current=2, sim=1; HR: current=1, sim=3; RBI: current=4, sim=5; BB: current=3, sim=4; SO: current=8, sim=6; SF: 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: H current=1 box=2, HR current=0 box=2, RBI current=1 box=3, BB current=1 box=0; Mauricio Dubón: AB current=4 box=2, H current=1 box=0, R current=0 box=1, BB current=0 box=1; Ronald Acuña Jr.: AB current=5 box=4, H current=1 box=2, 2B current=0 box=1, BB current=1 box=0; Ozzie Albies: H current=1 box=0, R current=1 box=0, SO current=1 box=2; Michael Harris II: AB current=5 box=3, H current=2 box=0, 2B current=1 box=0, HR current=1 box=0; Matt Olson: 2B current=1 box=0, RBI current=1 box=0, R current=1 box=0, BB current=1 box=0; Sean Murphy: R current=0 box=1, BB current=0 box=1; Austin Riley: H current=1 box=0, SO current=1 box=0 | ATL |
| info | CURRENT_FINALIZED_MATCH_BOX | SF model-prediction batting totals differ from final simulation box score (AB: current=31, sim=30; H: current=7, sim=3; 2B: current=1, sim=0; HR: current=1, sim=2; RBI: current=3, sim=4; R: current=3, sim=4; BB: current=3, sim=5; SO: current=9, sim=8). | SF |
| info | CURRENT_PLAYER_MATCH_BOX | SF current finalized hitter lines are model predictions and differ from the simulation box score: Rafael Devers: AB current=4 box=3, HR current=1 box=0; Drew Gilbert: AB current=3 box=4, H current=1 box=0, SO current=1 box=0; Osleivis Basabe: AB current=3 box=4, H current=1 box=2, HR current=0 box=2, RBI current=0 box=3; Bryce Eldridge: AB current=4 box=3, H current=1 box=0, 2B current=1 box=0, RBI current=1 box=0; Jonah Cox: H current=1 box=0, R current=0 box=1, BB current=0 box=1; Christian Koss: H current=1 box=0, SO current=1 box=0; Andrew Knizner: AB current=3 box=4; Jung Hoo Lee: AB current=5 box=3, H current=1 box=0, RBI current=1 box=0, R current=1 box=0 | SF |
| 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; 12/12 games; 7/7 causes; 6/6 sources
All seven manifest entries were checked against their recorded status:
| Source | Path | Bytes | Status | Use |
|---|---|---|---|---|
| Prediction review | /app/output/reports/prediction_review_20260831.json | 300,127 | Loaded | Official outcomes and scoring errors |
| Forensic deep audit | /app/output/reports/PREDICTION_SYSTEM_DEEP_AUDIT_20260831.json | 195,470 | Loaded | Probability, provenance, starter, and decision contracts |
| Continuous learning | /app/output/learning/continuous_learning_daily_20260831.json | 1,934,747 | Loaded | Stage quality, calibration, lineage, margins, starter comparisons |
| Detailed report | /app/output/reports/detailed_20260831.html | 284,841 | Loaded | Game and simulation rendering |
| Ultra-detailed player audit | /app/output/reports/20260831_ultra_detailed_player_audit.html | 4,202,742 | Loaded | Player-level prediction trace |
| Structural audit | /app/output/reports/audit_report_20260831.html | 257,116 | Loaded | Invariant findings |
| Integrity revision audit | /app/output/reports/audit_report_20260831_integrity_revision.html | Not supplied | Missing | Post-remediation proof for immutable revision artifacts |
All 12 expected games were reviewed:
The data marks learning eligibility as true because all game artifacts passed critical/error structural gates.
status: "missing" for the immutable-revision audit. This is an evidence gap and an artifact-integrity limitation, although the structural summary reports zero critical and zero error findings.structural_audit.findings: [] and status: "PASS", but the diagnostic observations state that the structural audit exposed 7 or 8 non-pass findings. The summaries count only info findings—87 across the slate—but the underlying individual findings are not present in this JSON. Their content therefore cannot be independently enumerated or evaluated.raw_pick_probability: 0.724282, while the probability-lineage row records raw_model_pick_probability: 0.7585 and governor_input_probability: 0.724282. The lineage is materially more complete; the game-level raw_pick_probability field appears to refer to a post-raw/pre-governor value rather than the true raw model output. This is a trace-labeling defect or schema ambiguity, not an unexplained publication bypass.confidence_home_minus_away is a signed home-minus-away edge, not a probability itself. For example, BAL@COL has -0.4985, corresponding to a published away probability of approximately 0.749 and home probability of approximately 0.251. The reports correctly warn that the “0.50” strong edge is not a half-scale distance from 50%.---
A correct winner was often accompanied by a poor score prediction. The slate produced 8 winner hits, but only two games were classified as solid_correct_call—CHW@HOU and MIA@WAS. The other six winner hits were either materially wrong scores or, in one case, a correct winner despite substantial starter/run error.
Winner accuracy was acceptable on this slate at 66.7%, but not uniformly reliable:
The key process concern is not the final accuracy alone. The historical_ml → variance_applied transition regressed winner accuracy by 2 hits, from 8 to 6, before the enhanced stage recovered those two games. The affected direction changes were:
BAL → TIELAA → TIEARI → TIEThe later recovery does not erase the intermediate regression.
Calibration was poor on this 12-game slate:
The bucket behavior is unstable rather than monotonic. The issue register appropriately warns not to infer a stable calibration curve from seven games or from this one slate. The high-raw cluster also deserves attention: it contained 3 games and 2 hits, while the associated empirical hit rates were only 0.5519, 0.5567, and 0.5766 despite calibrated probabilities from 0.661 to 0.7435.
Score accuracy was the weakest prediction dimension:
The issue register’s score_margin_compression finding is therefore material and high severity. It does not justify mechanically widening every score. The correct response is rolling out-of-sample evaluation of variance width, tail coverage, margin MAE, and total-run MAE.
Starter projections were a major contributor to the four losses:
starter_projection: 3 primary loss driversThe starter lever tension reports that pitcher-form/prior weighting would have helped 9 games and hurt 1, but this is a small slate and does not establish causal superiority.
Structural coverage was complete and the aggregate structural audit reports:
However:
Therefore, artifact integrity is broadly passing at the critical/error gate but not fully clean as a forensic evidence package.
| ID | Severity | Evidence | Affected games | Action | Guardrail |
|---|---|---|---|---|---|
pipeline_winner_instability | High | historical_ml → variance_applied reduced winner accuracy by 0.1667, or 2 hits | BAL@COL, NYY@LAA; PHI@ARI also changed direction but recovered | Identify exact boundary flips and preserve pre/post winners | Later recovery does not make the unstable intermediate transition harmless |
score_margin_compression | High | 11/12 predicted margins ≤2; 6/12 actual margins ≥4; predicted mean 1.42 vs actual 4.92 | Listed six direct affected games: DET@MIN, MIL@CHC, NYY@LAA, OAK@TEX, SD@CIN, SF@ATL | Evaluate distribution width, tail coverage, and margin MAE on rolling OOS slates | One blowout does not justify widening every point estimate |
single_slate_calibration_instability | High | Weighted absolute calibration error 0.1661 | All 12 | Monitor buckets over registered rolling window | This slate cannot establish a stable calibration curve |
weak_run_model_signal | High | Run R² only 0.0275/0.0378/0.0272 | All 12 | Investigate features/target through isolated training backtest | Positive R² only beats the mean baseline; exact scores remain unreliable |
complete_slate_audit_coverage | Info | 12/12 structurally audited | All 12 | Retain per-game receipt | Coverage does not erase internal findings |
probability_publication_delta_explained | Info | 8 material movements, all attributed to score coherence and/or recency | Eight listed games | Continue displaying all probability layers | A higher published value is not automatically a governor bypass |
simulation_inert_on_slate | Info on this slate, escalated persistent pattern across slates | 0 candidates and 0 published flips | All 12 | Measure simulation contribution and verify execution | Zero flips is not itself a defect and does not prove no score work occurred |
---
The pipeline score path for all games was:
historical_ml → variance_applied → enhanced_prediction → embedded_savant_run_environment → fundamental_edge_target_review → capped_target → simulation_result → published_final
Only the first two transitions changed winner direction on this slate. Simulation and later stages produced no winner flips.
supported_blowout_margin_expansionTIE.BAL.no_changeno_changeno_changelarge_savant_run_environment_swingno_changelarge_savant_run_environment_swingno_changesupported_blowout_margin_expansionLAA → TIETIE → NYYno_changelarge_savant_run_environment_swingno_changeARI → TIETIE → PHIsupported_blowout_margin_expansionno_changeno_changelarge_savant_run_environment_swingThe six explicit right_winner_wrong_score games were:
CHW@HOU and MIA@WAS were classified as solid correct calls. MIL@CHC, NYM@TB, NYY@LAA, and SF@ATL were winner misses.
---
The prediction was already on the wrong side in the historical model and stayed wrong through publication. The data does not show a later stage moving the winner toward CHC. The earliest identifiable problem is therefore the base winner/run assessment, not a later transition.
The historical/base model already selected TB, and no later stage corrected it. The earliest evidence moving toward the wrong result was the high composite/season edge for TB:
The pitcher edge slightly favored NYM at −0.0457, but it did not overcome the broader TB signal.
There was a documented intermediate regression:
LAA → TIETIE → NYYThe first clear move toward the wrong final result was the enhanced prediction’s recovery toward NYY, after the variance stage had already removed LAA’s direction. This is exactly the pipeline-instability issue: later recovery does not make the intermediate regression harmless.
The base evidence itself strongly favored NYY on season and recent quality:
The historical/base direction favored ATL and no later stage corrected it. The earliest wrong-direction evidence was the combination of:
The pitcher edge favored SF at −0.0832, but was insufficiently weighted to reverse the call.
| Stage | Winner accuracy | Winner hits | Team-run MAE | Total-run MAE | Margin MAE |
|---|---|---|---|---|---|
| historical_ml | 0.6667 | 8 | 3.1283 | 3.9910 | 4.7023 |
| variance_applied | 0.5000 | 6 | 3.1250 | 3.9167 | 4.7500 |
| enhanced_prediction | 0.6667 | 8 | 3.4583 | 4.2500 | 4.7500 |
| embedded_savant_run_environment | 0.6667 | 8 | 3.4167 | 4.3333 | 4.6667 |
| fundamental_edge_target_review | 0.6667 | 8 | 3.4167 | 4.3333 | 4.6667 |
| capped_target | 0.6667 | 8 | 3.4167 | 4.3333 | 4.6667 |
| simulation_result | 0.6667 | 8 | 3.4167 | 4.3333 | 4.6667 |
| published_final | 0.6667 | 8 | 3.4167 | 4.3333 | 4.6667 |
Transitions:
The intermediate winner regression remains a genuine process risk even though enhanced prediction later recovered the final winner count.
---
Lever: score.variance_multiplier / score.variance_floor
Helps:
Hurts:
Net evidence: 2 helps vs 2 hurts. The pattern supports a bounded shadow experiment, not an unrestricted production increase. It targets Brier score and calibration error, while score-margin compression is also relevant.
Lever: player.pitcher.v4 form weights / player.pitcher_prior_games
Helps:
Hurts:
Net evidence: 9 helps vs 1 hurts, but this is based on starter error observations, not a controlled counterfactual. It supports a diagnostic/backtest, not immediate aggressive reweighting.
Lever: recent.* / season.* run-mean weighting
Helps:
Hurts:
Net evidence: 9 helps vs 2 hurts for team-run and total-run metrics, but the reported “helps” do not prove a particular direction of weight change. The weak run-model R² argues for feature/target investigation before tuning this lever.
---
The structural audit summary reports 0 critical. No critical contract failure is evidenced in the supplied JSON.
The missing integrity revision audit is an evidence gap, but the data does not classify it as critical.
historical_ml → variance_applied.The complete pick-side lineage contains 12 rows. The recorded layers are:
raw model → calibrated → governor input/output → score coherence and/or recency → published
The data identifies 8 material calibrated-to-published movements, and states that all were explained by named score-coherence and/or recency transformations. No material unexplained delta is marked in the lineage rows.
Examples:
There is no demonstrated governor bypass: every material published movement has a recorded transformation and unexplained_material_delta: false. The BAL field-label discrepancy is a trace consistency issue, not a material unexplained publication delta.
---
Three prior slates were loaded, producing a four-slate window from 20260828 through 20260831. A single slate is noise, but the escalated findings are explicitly established patterns and must not be treated as single-slate noise.
Current slate:
The raw transition block shows a current winner-direction regression at historical_ml → variance_applied:
This finding has a two-slate consecutive streak and is present now.
Current WACE is 0.1661. Bucket errors alternate between underconfidence and overconfidence, confirming instability rather than a simple universal overconfidence bias.
Current high-raw cluster:
The finding streak reports high_raw_probability_cluster at 0 consecutive slates, present current slate false. It is therefore not a current persistent finding.
Current slate:
Across slates, simulation inertness is established, not noise.
| Finding | Consecutive slates | Present now? | Interpretation |
|---|---|---|---|
high_raw_probability_cluster | 0 | No | Not persistent/current |
pipeline_winner_instability | 2 | Yes | Recurrent intermediate winner-direction regression |
score_margin_compression | 1 | Yes | Current issue, not yet a multi-slate streak |
simulation_inert_on_slate | 4 | Yes | Established persistent failure |
single_slate_calibration_instability | 1 | Yes; incidence 3 in window | Current calibration problem, but not a four-slate persistence pattern |
weak_run_model_signal | 4 | Yes | Established persistent weak run-model signal |
simulation_inert_on_slatesimulation.allow_scoreteam_run_mae, total_run_maeweak_run_model_signaltraining.xgb.n_estimatorstraining.xgb.max_depthtraining.xgb.learning_rateteam_run_mae, total_run_maemargin_bias: Regressingmean_team_run_error_on_losses: Regressingweighted_calibration_error: Improvingwinner_accuracy: FlatThere is no current top-confidence-pick loss streak.
---
Recommendations are ranked by persistence and evidence strength first, then scope and regression risk.
simulation_inert_on_slatesimulation.allow_scoresimulation.allow_score is read, the simulation loop executes, score outcomes are generated, and flip candidates are recorded.weak_run_model_signaltraining.xgb.n_estimators, training.xgb.max_depth, training.xgb.learning_rateparam_actionable: false.score_margin_compressionscore.variance_multiplierscore.variance_floor, so the effect is attributable.single_slate_calibration_instabilityconfidence.empirical_max_weight, confidence.base_cap, confidence.moderate_capplayer.pitcher.v4 form weights / player.pitcher_prior_games---
Perform the four-slate code-and-lineage diagnostic for simulation.allow_score and the weak run-model execution path before changing model weights. It addresses two established persistent findings, has a reversible shadow-gate path, and avoids making an unsupported one-slate calibration or score-distribution adjustment while also checking the most important artifact/process risk.