# Luna deep analysis — slate 20260831 > Coverage receipt: **COMPLETE** · 9/8 sections; 12/12 games; 7/7 causes; 6/6 sources # 1. Evidence receipt and gaps ## Source manifest 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 | ## Coverage All 12 expected games were reviewed: - Canonical artifacts loaded: **12** - Continuous-learning games: **12** - Forensic deep-audit games: **12** - Games with starter comparisons: **12** - Structural audits completed: **12** - Games structurally audited: **12/12** - Settled games: **12** - Winner hits/misses: **8/4** The data marks learning eligibility as true because all game artifacts passed critical/error structural gates. ## Gaps and contradictions 1. **Missing integrity revision audit.** The manifest explicitly reports `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. 2. **Per-game audit contradiction.** Each game has `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. 3. **BAL@COL probability-path naming inconsistency.** The game-level trace records `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. 4. **Confidence-edge convention.** The listed `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%. 5. **No source data for actual player box-score detail beyond starter ER/outs and listed adjustment observations.** No unprovided player performance should be inferred. --- # 2. Executive diagnosis ## Overall result - Winner accuracy: **8/12 = 66.67%** - Misses: **4** - Mean team-run error: not directly supplied as a slate aggregate, but the pipeline reports published team-run MAE of **3.4167** - Published margin mean: **1.42** - Actual margin mean: **4.92** - Predicted margins ≤2 runs: **11/12** - Actual margins ≥4 runs: **6/12** - Published margin compression: **material** - Published weighted absolute calibration error: **0.1661** - Validated run-model holdout R²: - Away runs: **0.027504** - Home runs: **0.037781** - Total runs: **0.02717** - Simulation winner interventions: **0 flips in 12 games** 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. ## Separate diagnoses ### Winner accuracy Winner accuracy was acceptable on this slate at **66.7%**, but not uniformly reliable: - Historical ML: **8/12** - Variance-applied: **6/12** - Enhanced prediction and all later stages: **8/12** 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@COL: `BAL → TIE` - NYY@LAA: `LAA → TIE` - PHI@ARI: `ARI → TIE` The later recovery does not erase the intermediate regression. ### Calibration quality Calibration was poor on this 12-game slate: - Weighted absolute calibration error: **0.1661** - 0.50–0.55 bucket: average confidence **0.5296**, observed hit rate **0.7143**, error **−0.1847** — underconfident - 0.55–0.60 bucket: confidence **0.5555**, observed hit rate **0.50**, error **+0.0555** — overconfident - 0.65–0.70 bucket: confidence **0.6695**, observed hit rate **0.50**, error **+0.1695** — overconfident - 0.70–0.80 bucket: confidence **0.7492**, observed hit rate **1.00**, error **−0.2508** — underconfident 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 Score accuracy was the weakest prediction dimension: - Published margin MAE: **4.6667** - Published team-run MAE: **3.4167** - Published total-run MAE: **4.3333** - Mean predicted margin: **1.42** - Mean actual margin: **4.92** - Actual margin ≥4: **6/12** - Predicted margin ≤2: **11/12** - Validated run-model R² was near zero for away, home, and total runs. 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 accuracy Starter projections were a major contributor to the four losses: - `starter_projection`: **3 primary loss drivers** - Starter-line identity matched in all 12 games. - The worst starter ER errors included: - Kyle Harrison: **+6 ER error** - Robert Stock: **−4** - Ian Seymour: **+3** - Bryce Elder: **+4** - Gage Jump: **+5** - Payton Tolle: **+4** The 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. ### Artifact integrity Structural coverage was complete and the aggregate structural audit reports: - Critical: **0** - Error: **0** - Warning: **0** - Info: **87** However: - The integrity revision audit is missing. - Underlying per-game info findings are absent despite observations claiming 7–8 non-pass findings per game. - The BAL probability trace contains a field-label discrepancy. Therefore, artifact integrity is broadly passing at the critical/error gate but not fully clean as a forensic evidence package. ## Causal issue register reconciliation | 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 | --- # 3. Every game 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. ## BAL@COL — hit, correct winner/wrong score - Predicted: BAL **7**, COL **4**; winner BAL - Actual: BAL **2**, COL **1**; winner BAL - Published pick probability: BAL **0.749242**; home COL probability approximately **0.250758** - System edge: home-minus-away **−0.4985**, described as a strong away edge - Conviction: **Strong** - Brier: **0.06288** - Team-run absolute error: **8** - Total-run bias: **+8**; predicted total 11 vs actual 3 - Starter projections: - Cade Povich: projected 2 ER/14 outs; actual 1 ER/15 outs; ER error **−1** - Tanner Gordon: projected 2 ER/15 outs; actual 1 ER/15 outs; ER error **−1** - Edges: - Season home-minus-away: **−1.0438** - Recent: **−0.976** - Pitcher: **−0.0247** - Composite: **−1.4124** - Controls: - Governor applied - Governed probability: **0.7435** - Score coherence brought publication to **0.749242** - No recency guardrail - Score action: `supported_blowout_margin_expansion` - Score path: - Historical ML initially selected BAL. - Variance application changed direction to `TIE`. - Enhanced prediction restored `BAL`. - Later stages preserved BAL. - Player/run adjustments: - Away runs factor: **1.0376** - Home runs factor: **1.0129** - Savant adjustment applied - Season quality moved score toward BAL by a margin adjustment of **−0.4384** - Audit: status PASS; 0 critical/error/warning; 101 good and 7 info in summary, but detailed findings are absent. - Primary cause: **Score/run-environment miss**, despite accurate starters and correct winner. - Secondary cause: **Intermediate variance-stage winner instability**; it temporarily moved the winner to a tie. ## CHW@HOU — hit, solid correct call - Predicted: CHW **4**, HOU **5**; winner HOU - Actual: CHW **3**, HOU **6**; winner HOU - Published HOU probability: **0.530** - System edge: home-minus-away **+0.06** - Conviction: **Lean** - Brier: **0.2209** - Team-run absolute error: **2** - Total-run bias: **0** - Starter projections: - Anthony Kay: projected 3 ER/16 outs; actual 5 ER/14 outs; ER error **+2** - Peter Lambert: projected 1 ER/16 outs; actual 2 ER/14 outs; ER error **+1** - Edges: - Season: **−0.5164** - Recent: **−0.1033** - Pitcher: **+0.0587** - Composite: **−0.0007** - Controls: - Governor applied: 0.52085 input to 0.5082 governed probability - Score coherence plus matchup-recency guardrail - Published probability rose to 0.530 - Score action: `no_change` - Score path: No reported final-stage winner change; winner remained HOU. - Player/run adjustments: - Away factor **0.9817** - Home factor **1.0404** - Savant adjustment applied - Audit: PASS; 0 critical/error/warning; 100 good, 8 info. - Primary cause: None material. - Secondary cause: Mild starter projection error, but it did not damage the winner or score substantially. ## DET@MIN — hit, correct winner/wrong score - Predicted: DET **4**, MIN **5**; winner MIN - Actual: DET **1**, MIN **11**; winner MIN - Published MIN probability: **0.530** - System edge: **+0.06 home** - Conviction: **Lean** - Brier: **0.2209** - Team-run absolute error: **9** - Total-run bias: **−3**; predicted total 9 vs actual 12 - Starter projections: - Jackson Jobe: projected 3 ER/14 outs; actual 4 ER/15 outs; error **+1** - Taj Bradley: projected 4 ER/16 outs; actual 1 ER/21 outs; error **−3** - Edges: - Season: **−0.4842** - Recent: **+0.302** - Pitcher: **−0.0063** - Composite: **−0.0247** - Controls: - Governor: 0.52085 input → 0.5082 governed - Recency guardrail and score coherence - Published: 0.530 - Score action: `no_change` - Score path: Winner remained MIN after historical ML and all later stages. - Player/run adjustments: - Away factor **1.0322** - Home factor **1.0259** - Bradley allowed 1 ER vs 4 projected - Audit: PASS; 0 critical/error/warning; 102 good, 7 info. - Primary cause: **Run distribution/margin compression**. - Secondary cause: **Starter projection error**, especially Bradley’s three-ER overprojection. ## MIA@WAS — hit, solid correct call - Predicted: MIA **3**, WAS **4**; winner WAS - Actual: MIA **3**, WAS **6**; winner WAS - Published WAS probability: **0.530** - System edge: **+0.06 home** - Conviction: **Lean** - Brier: **0.2209** - Team-run error: **2** - Total-run bias: **−2** - Starter projections: - Ryan Gusto: projected 4 ER/14 outs; actual 1 ER/13 outs; error **−3** - Will Dion: projected 1 ER/15 outs; actual 0 ER/9 outs; error **−1** - Edges: - Season: **−0.0497** - Recent: **−0.122** - Pitcher: **−0.0621** - Composite: **−0.0145** - Controls: - Governor: 0.49585 input → 0.5082 governed - Recency guardrail plus score coherence - Published: 0.530 - Score action: `no_change` - Diagnostic flag: `large_savant_run_environment_swing` - Score path: Winner stayed WAS. - Player/run adjustments: - Away factor **1.0000** - Home factor **0.9379** - Gusto allowed one ER versus four projected. - Audit: PASS; 0 critical/error/warning; 101 good, 8 info. - Primary cause: None material. - Secondary cause: Starter ER overprojection, offset by a reasonably close team-run result. ## MIL@CHC — miss - Predicted: MIL **6**, CHC **5**; winner MIL - Actual: MIL **3**, CHC **17**; winner CHC - Published pick probability: MIL **0.530**, CHC **0.470** - System edge: home-minus-away **−0.06**, a lean MIL edge - Conviction: **Lean** - Brier: **0.2809** - Team-run absolute error: **15** - Total-run bias: **−9**; predicted total 11 vs actual 20 - Starter projections: - Kyle Harrison: projected 3 ER/17 outs; actual 9 ER/11 outs; error **+6** - Clay Holmes: projected 2 ER/18 outs; actual 0 ER/18 outs; error **−2** - Edges: - Season: **−0.3922** - Recent: **−0.350** - Pitcher: **−0.1125** - Composite: **−0.7307** - Controls: - Governor: 0.530 input → 0.5082 governed - Recency guardrail plus score coherence - Published pick remained MIL at 0.530 - Score action: `no_change` - Diagnostic flag: `large_savant_run_environment_swing` - Score path: The final winner remained MIL; no later-stage winner recovery occurred. - Player/run adjustments: - Away factor **1.0498** - Home factor **0.9373** - Harrison’s six-ER miss was the largest starter error on the slate. - Audit: PASS; 0 critical/error/warning; 101 good, 7 info. - Primary cause: **Starter projection failure**, especially Harrison. - Secondary cause: **Run-environment under-dispersion**; CHC scored 12 more runs than projected and the total was nine runs too low. ## NYM@TB — miss - Predicted: NYM **3**, TB **5**; winner TB - Actual: NYM **3**, TB **2**; winner NYM - Published TB probability: **0.6655** - System edge: **+0.331 home** - Conviction: **Strong** - Brier: **0.44289**, worst on the slate - Team-run absolute error: **3** - Total-run bias: **+3** - Starter projections: - Robert Stock: projected 4 ER/12 outs; actual 0 ER/16 outs; error **−4** - Ian Seymour: projected 0 ER/15 outs; actual 3 ER/19 outs; error **+3** - Edges: - Season: **+0.7963** - Recent: **+0.380** - Pitcher: **−0.0457** - Composite: **+0.7924** - Controls: - Governor: 0.666292 input → 0.661 governed - No recency guardrail - Score coherence produced published 0.6655 - Score action: `no_change` - Score path: Winner stayed TB through publication; simulation did not intervene. - Player/run adjustments: - Away factor **1.0042** - Home factor **0.9585** - Audit: PASS; 0 critical/error/warning; 100 good, 8 info. - Primary cause: **Starter projection failure**, with both starters materially misestimated. - Secondary cause: **Wrong conviction side**; the system backed TB with a genuine 0.33 edge and lost. - Additional classification: This was a high-confidence calibration failure, not merely a close-game miss. ## NYY@LAA — miss - Predicted: NYY **5**, LAA **4**; winner NYY - Actual: NYY **1**, LAA **10**; winner LAA - Published NYY probability: **0.550872**; LAA approximately **0.449128** - System edge: home-minus-away **−0.1017** - Conviction: **Moderate** - Brier: **0.30346** - Team-run absolute error: **10** - Total-run bias: **−2** - Starter projections: - Elmer Rodríguez: projected 2 ER/14 outs; actual 4 ER/11 outs; error **+2** - Walbert Ureña: projected 2 ER/17 outs; actual 1 ER/21 outs; error **−1** - Edges: - Season: **−1.3728** - Recent: **−0.696** - Pitcher: **+0.0456** - Composite: **−1.0087** - Controls: - Governor: 0.570 input → 0.591 governed - Recency guardrail applied - Score coherence probability 0.588013 - Published NYY probability reduced to 0.550872 - Score action: `supported_blowout_margin_expansion` - Score path: - Historical ML: `LAA → TIE` - Variance stage was an intermediate regression. - Enhanced prediction: `TIE → NYY` - Later stages retained NYY. - Player/run adjustments: - Away factor **0.9521** - Home factor **0.9977** - Yankees offense was four runs overprojected; LAA offense six underprojected. - Audit: PASS; 0 critical/error/warning; 101 good, 7 info. - Primary cause: **Wrong conviction side**, though the edge was moderate rather than strong. - Secondary cause: **Lean-side miss and score compression**; actual margin was 9 while predicted margin was 1. - Required interpretation: a **0.12 home-away confidence edge is moderate**, not a near coin flip; the system’s moderate NYY edge was nevertheless on the wrong side. ## OAK@TEX — hit, correct winner/wrong score - Predicted: OAK **3**, TEX **5**; winner TEX - Actual: OAK **1**, TEX **8**; winner TEX - Published TEX probability: **0.530** - System edge: **+0.06 home** - Conviction: **Lean** - Brier: **0.2209** - Team-run absolute error: **5** - Total-run bias: **−1** - Starter projections: - Gage Jump: projected 2 ER/15 outs; actual 7 ER/13 outs; error **+5** - Jacob deGrom: projected 1 ER/15 outs; actual 0 ER/21 outs; error **−1** - Edges: - Season: **+0.8297** - Recent: **+0.118** - Pitcher: **+0.0056** - Composite: **+0.8582** - Controls: - Governor: 0.52085 → 0.5082 - Recency guardrail and score coherence - Published: 0.530 - Score action: `no_change` - Diagnostic flag: `large_savant_run_environment_swing` - Score path: Winner remained TEX. - Player/run adjustments: - Away factor **0.9634** - Home factor **0.9690** - Jump’s five-ER error was material. - Audit: PASS; 0 critical/error/warning; 101 good, 7 info. - Primary cause: **Starter projection error**, although it did not reverse the winner. - Secondary cause: **Margin compression**. ## PHI@ARI — hit, correct winner/wrong score - Predicted: PHI **5**, ARI **4**; winner PHI - Actual: PHI **2**, ARI **1**; winner PHI - Published PHI probability: **0.526943** - System edge: **−0.0539 home**, favoring PHI - Conviction: **Lean** - Brier: **0.223783** - Team-run absolute error: **6** - Total-run bias: **+6** - Starter projections: - Aaron Nola: projected 4 ER/16 outs; actual 1 ER/15 outs; error **−3** - Brandon Pfaadt: projected 1 ER/19 outs; actual 2 ER/18 outs; error **+1** - Edges: - Season: **−0.3008** - Recent: **−0.3113** - Pitcher: **−0.1097** - Composite: **−0.6646** - Controls: - Governor: 0.530 → 0.5082 - Recency guardrail and score coherence - Published: 0.526943 - Score action: `no_change` - Score path: - Historical ML: `ARI → TIE` - Variance stage: remained tie. - Enhanced prediction: `TIE → PHI` - Later stages preserved PHI. - Player/run adjustments: - Away factor **1.0373** - Home factor **0.9276** - Nola’s three-ER overprojection contributed to the six-run total error. - Audit: PASS; 0 critical/error/warning; 101 good, 7 info. - Primary cause: **Score/run-environment miss**. - Secondary cause: **Intermediate variance-stage direction change**, later correctly recovered. ## SD@CIN — hit, correct winner/wrong score - Predicted: SD **6**, CIN **4**; winner SD - Actual: SD **5**, CIN **0**; winner SD - Published SD probability: **0.673503** - System edge: **−0.347 home**, favoring SD - Conviction: **Strong** - Brier: **0.1066** - Team-run absolute error: **5** - Total-run bias: **+5** - Starter projections: - Michael King: projected 3 ER/18 outs; actual 0 ER/18 outs; error **−3** - Brady Singer: projected 4 ER/15 outs; actual 4 ER/13 outs; error **0** - Edges: - Season: **−0.6951** - Recent: **−0.3607** - Pitcher: **−0.0053** - Composite: **−0.8441** - Controls: - Governor: 0.691798 → 0.677 - No recency guardrail - Score coherence led to published 0.673503 - Score action: `supported_blowout_margin_expansion` - Score path: Winner remained SD. - Player/run adjustments: - Away factor **1.0072** - Home factor **1.0019** - King allowed zero ER rather than three. - Audit: PASS; 0 critical/error/warning; 101 good, 7 info. - Primary cause: **Score/run-environment miss**, especially CIN’s zero runs. - Secondary cause: Starter error from King’s three-ER overprojection. - This was a correct strong call with an incorrect exact score. ## SEA@BOS — hit, correct winner/wrong score - Predicted: SEA **2**, BOS **3**; winner BOS - Actual: SEA **8**, BOS **9**; winner BOS - Published BOS probability: **0.560186** - System edge: **+0.1204 home** - Conviction: **Moderate** - Brier: **0.193436** - Team-run absolute error: **12** - Total-run bias: **−12**; predicted total 5 vs actual 17 - Starter projections: - George Kirby: projected 2 ER/17 outs; actual 5 ER/15 outs; error **+3** - Payton Tolle: projected 0 ER/18 outs; actual 4 ER/17 outs; error **+4** - Edges: - Season: **+0.9569** - Recent: **+0.5327** - Pitcher: **+0.0158** - Composite: **+0.8742** - Controls: - Governor: 0.58865 → 0.5816 - Recency guardrail plus score coherence - Published: 0.560186 - Score action: `no_change` - Score path: Winner remained BOS. - Player/run adjustments: - Away factor **0.9593** - Home factor **0.9751** - Both starters underperformed projections. - Audit: PASS; 0 critical/error/warning; 102 good, 7 info. - Primary cause: **Run-environment miss/under-dispersion**. - Secondary cause: **Two-sided starter underestimation**. - The 0.1204 edge was moderate, not a near coin flip, and the winner was correct despite an extremely poor score forecast. ## SF@ATL — miss - Predicted: SF **4**, ATL **5**; winner ATL - Actual: SF **7**, ATL **3**; winner SF - Published ATL probability: **0.530** - System edge: **+0.06 home** - Conviction: **Lean** - Brier: **0.2809** - Team-run absolute error: **5** - Total-run bias: **−1** - Starter projections: - Anthony Molina: projected 4 ER/9 outs; actual 3 ER/15 outs; error **−1** - Bryce Elder: projected 1 ER/18 outs; actual 5 ER/16 outs; error **+4** - Edges: - Season: **+1.2284** - Recent: **+0.182** - Pitcher: **−0.0832** - Composite: **+0.7181** - Controls: - Governor: 0.507202 → 0.5082 - Recency guardrail and score coherence - Published: 0.530 - Score action: `no_change` - Diagnostic flag: `large_savant_run_environment_swing` - Score path: Winner remained ATL; no recovery. - Player/run adjustments: - Away factor **1.0832** - Home factor **1.0000** - Elder allowed five ER rather than one. - Audit: PASS; 0 critical/error/warning; 102 good, 7 info. - Primary cause: **Starter projection error**, specifically Elder. - Secondary cause: **Lean-side miss** and margin compression. ### Correct-winner/wrong-score games The six explicit `right_winner_wrong_score` games were: - BAL@COL - DET@MIN - OAK@TEX - PHI@ARI - SD@CIN - SEA@BOS CHW@HOU and MIA@WAS were classified as solid correct calls. MIL@CHC, NYM@TB, NYY@LAA, and SF@ATL were winner misses. --- # 4. Miss reconstruction ## MIL@CHC ### Earliest wrong-direction stage 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. ### Cause classification - Bad input: **Not established.** Starter identities matched and no contract error was reported. - Bad weighting: **Possible**, given the strong composite edge favoring MIL despite the outcome, but not proven. - Calibration: **Secondary.** Published probability was only 0.530, so the confidence was not extreme. - Starter error: **Major.** Harrison projected 3 ER/17 outs, actual 9 ER/11 outs. - Offense/bullpen miss: **Material but not isolated.** CHC scored 17 versus 5 projected; MIL scored 3 versus 6 projected. - Run-environment miss: **Major.** Total was underprojected by 9. - Irreducible variance: **Present**, especially the extreme 17–3 result, but the six-ER starter error is a modelable component. ## NYM@TB ### Earliest wrong-direction stage 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**: - Season edge: **+0.7963 home** - Recent edge: **+0.380** - Composite: **+0.7924** The pitcher edge slightly favored NYM at **−0.0457**, but it did not overcome the broader TB signal. ### Cause classification - Bad input: **Not established.** - Bad weighting: **Plausible.** Season/recent offense-quality evidence outweighed the pitcher signal in a way that failed this matchup. - Calibration: **Material.** TB was published at **0.6655**, but lost; Brier was **0.44289**. - Starter error: **Major and two-sided.** Stock allowed 0 instead of 4 projected; Seymour allowed 3 instead of 0. - Offense/bullpen miss: **TB scored 2 versus 5 projected**, contributing to the miss. - Run-environment miss: **Moderate.** Total was overprojected by 3. - Irreducible variance: **Material**, because both starters deviated substantially. ## NYY@LAA ### Earliest wrong-direction stage There was a documented intermediate regression: - Historical ML: `LAA → TIE` - Variance application: tie state - Enhanced prediction: `TIE → NYY` The 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: - Season: **−1.3728** - Recent: **−0.696** - Composite: **−1.0087** ### Cause classification - Bad input: **Not established.** - Bad weighting: **Possible**, because the large season/recent NYY advantage did not survive the realized matchup. - Calibration: **Moderate concern.** Published NYY probability was 0.550872, not high, but it was still on the losing side. - Starter error: **Moderate.** Rodríguez allowed 4 versus 2 projected; Ureña allowed 1 versus 2. - Offense/bullpen miss: **Major.** NYY scored 1 versus 5 projected; LAA scored 10 versus 4 projected. - Run-environment miss: **Major.** Actual margin was 9 versus predicted margin 1. - Irreducible variance: **Present**, but the six-run combined offensive miss and nine-run margin miss indicate more than ordinary winner variance. ## SF@ATL ### Earliest wrong-direction stage The historical/base direction favored ATL and no later stage corrected it. The earliest wrong-direction evidence was the combination of: - Season edge: **+1.2284 home** - Recent edge: **+0.182** - Composite: **+0.7181** The pitcher edge favored SF at **−0.0832**, but was insufficiently weighted to reverse the call. ### Cause classification - Bad input: **Not established.** - Bad weighting: **Plausible.** The model materially favored ATL’s season/quality evidence while the pitcher edge favored SF. - Calibration: **Limited concern**, because publication was only 0.530. - Starter error: **Primary.** Elder allowed 5 versus 1 projected. - Offense/bullpen miss: SF scored 7 versus 4 projected; ATL scored 3 versus 5 projected. - Run-environment miss: Moderate; margin was 4 versus 1 predicted. - Irreducible variance: Present, especially Elder’s four-ER projection error. ## Pipeline-stage quality across all stages | 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: - Historical ML → variance: - Winner accuracy **−0.1667** - Winner hits **−2** - Margin MAE **+0.0477** - Regressed: BAL@COL, NYY@LAA - Also changed PHI@ARI from ARI to tie - Variance → enhanced: - Winner accuracy **+0.1667** - Winner hits **+2** - BAL@COL and PHI@ARI improved - Team-run MAE worsened by **0.3333** - Enhanced → Savant: - No winner-direction changes - Margin MAE improved **0.0833** - Team-run MAE improved **0.0416** - All subsequent transitions: - No winner changes - No metric changes The intermediate winner regression remains a genuine process risk even though enhanced prediction later recovered the final winner count. --- # 5. Cross-game counterfactuals ## Lever tension: widen run distributions **Lever:** `score.variance_multiplier / score.variance_floor` Helps: - NYM@TB: lost a 0.33-confidence pick; wider tails could reduce overconfidence. - NYY@LAA: lost a 0.10-confidence pick; wider tails could reduce overconfidence. Hurts: - BAL@COL: strong correct call at 0.50; widening could soften a good edge. - SD@CIN: strong correct call at 0.35; widening could soften a good edge. 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 tension: pitcher form/prior weighting **Lever:** `player.pitcher.v4 form weights / player.pitcher_prior_games` Helps: - DET@MIN - MIA@WAS - MIL@CHC - NYM@TB - OAK@TEX - PHI@ARI - SD@CIN - SEA@BOS - SF@ATL Hurts: - BAL@COL, where both starter projections were accurate within one ER. 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 tension: recent/season run-mean weighting **Lever:** `recent.* / season.* run-mean weighting` Helps: - BAL@COL - DET@MIN - MIL@CHC - NYY@LAA - OAK@TEX - PHI@ARI - SD@CIN - SEA@BOS - SF@ATL Hurts: - CHW@HOU, where team-run error was only 2. - MIA@WAS, where team-run error was only 2. 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. ## One-game fixes that must not be made - Do not widen every prediction merely because MIL@CHC and SEA@BOS were blowouts. - Do not globally downgrade strong confidence because NYM@TB lost; BAL@COL and SD@CIN were strong correct calls. - Do not remove or sharply reduce all season-quality weighting because NYY@LAA and SF@ATL missed; it supported several correct winners. - Do not treat the 0.1204 SEA@BOS edge as a near coin flip; it is moderate. - Do not force a simulation parameter move solely because simulation produced zero winner flips. - Do not alter calibration weights from this slate alone; the bucket sample sizes are small and inconsistent. - Do not conclude that a later enhanced-stage recovery makes the variance transition safe. --- # 6. Data and contract defects ## Critical findings 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. ## Error findings - Structural audit summary: **0 errors**. - No per-game error finding details are supplied. ## Warning findings - Structural audit summary: **0 warnings**. - No per-game warning details are supplied. ## Info findings - Structural audit summary: **87 info findings** across the slate. - Per-game summaries report 7 or 8 info findings each. - The actual info-finding text is missing from the JSON, so the 87 findings cannot be individually enumerated. - Registered informational findings include: - Complete slate audit coverage - Explained probability-publication movements - Simulation inertness on this slate ## Prediction-model defects versus presentation/artifact defects ### Prediction-model/process defects 1. Intermediate winner instability at `historical_ml → variance_applied`. 2. Compressed score margins and under-dispersed run distributions. 3. Very weak run-model holdout signal. 4. Starter projection errors materially affecting three misses. 5. Calibration misalignment on the current slate. 6. Simulation producing no winner-direction interventions over four consecutive slates, requiring execution diagnosis. ### Presentation/artifact defects 1. Missing integrity revision audit artifact. 2. BAL raw probability field appears inconsistently named or populated between game trace and lineage. 3. Per-game audit observations claim 7–8 non-pass findings while the embedded findings arrays are empty. This prevents independent audit of those findings. 4. “PASS” status should not be interpreted as absence of all info-level or non-pass observations; the report itself says complete coverage does not erase findings. ## Probability-lineage audit 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: - CHW@HOU, DET@MIN, MIA@WAS, MIL@CHC, OAK@TEX, PHI@ARI, SEA@BOS, SF@ATL: recency guardrail and/or score coherence are named. - BAL@COL, NYM@TB, and SD@CIN: score coherence is named; no recency guardrail. - NYY@LAA: score coherence followed by matchup-recency guardrail; publication decreased from calibrated 0.591 to 0.550872. 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. --- # 7. Cross-slate persistence 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. ## Raw structural evidence ### Margin distribution Current slate: - Actual margins: 1, 1, 1, 1, 3, 3, 4, 5, 7, 9, 10, 14 - Predicted margins: 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 3 - Actual margin ≥4: **6/12** - Predicted margin ≤2: **11/12** - Current mean signed margin error, based on listed rows, is strongly negative for the model’s absolute margin representation: the model systematically undercalled realized separation in most large-margin games. ### Pipeline transitions The raw transition block shows a current winner-direction regression at `historical_ml → variance_applied`: - BAL@COL and NYY@LAA regressed. - PHI@ARI also changed direction but was later recovered. - Accuracy fell from 8/12 to 6/12 and recovered to 8/12 at enhanced prediction. This finding has a **two-slate consecutive streak** and is present now. ### Calibration monitoring Current WACE is **0.1661**. Bucket errors alternate between underconfidence and overconfidence, confirming instability rather than a simple universal overconfidence bias. ### High-raw cluster Current high-raw cluster: - 3 games - 2 hits - Threshold: 0.65 - Calibrated probabilities: 0.661, 0.677, 0.7435 - Empirical hit rates attached to those rows: 0.5567, 0.5766, 0.5519 The finding streak reports `high_raw_probability_cluster` at **0 consecutive slates**, present current slate **false**. It is therefore not a current persistent finding. ### Simulation control Current slate: - Observed games: 12 - Flip candidates: 0 - Published flips: 0 - Status: diagnostic only without independent support Across slates, simulation inertness is established, not noise. ## Finding streaks | 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 | ## Escalated findings ### `simulation_inert_on_slate` - Consecutive slates: **4** - Present now: **Yes** - Target lever listed: `simulation.allow_score` - Parameter actionable: **No** - Metric harmed: `team_run_mae`, `total_run_mae` - Direction: confirm simulation module is running and not silently no-oping. - Required interpretation: established code/diagnostic failure, not single-slate noise. ### `weak_run_model_signal` - Consecutive slates: **4** - Present now: **Yes** - Listed training levers: - `training.xgb.n_estimators` - `training.xgb.max_depth` - `training.xgb.learning_rate` - Parameter actionable: **No** - Metrics harmed: `team_run_mae`, `total_run_mae` - Direction: investigate features and target through an isolated training backtest. - Required interpretation: established run-model weakness, not a reason to force a parameter move. ## Metric trends - `margin_bias`: **Regressing** - Series: **−1.333, −1.882, −2.786, −3.5** - Mean: **−2.3752** - This is consistent with increasing margin underprediction. - `mean_team_run_error_on_losses`: **Regressing** - Series: **5.0, 3.0, 7.0, 8.25** - Mean: **5.8125** - `weighted_calibration_error`: **Improving** - Series: **0.2179, 0.3961, 0.0693, 0.1661** - Improvement is directionally favorable over the window, but the current value remains poor and bucket behavior is unstable. - `winner_accuracy`: **Flat** - Series: **0.4667, 0.9412, 0.5, 0.6667** - Mean: **0.6437** - Large variation, no reliable directional improvement. ## Top-confidence-pick loss streak - Loss streak: **0** - Per-slate results: - 20260828: hit - 20260829: hit - 20260830: miss - 20260831: hit There is no current top-confidence-pick loss streak. --- # 8. Adjustments for today Recommendations are ranked by persistence and evidence strength first, then scope and regression risk. ## 1. Diagnose and repair simulation execution — highest persistence - Pattern: `simulation_inert_on_slate` - Persistence: **4 consecutive slates** - Exact registered lever: `simulation.allow_score` - Parameter change: **None initially; do not force a parameter move because the finding is explicitly non-parameter-actionable.** - Concrete action: run a code-level execution diagnostic confirming that `simulation.allow_score` is read, the simulation loop executes, score outcomes are generated, and flip candidates are recorded. - Expected metric: team-run MAE and total-run MAE should become measurable at the simulation stage; direction should be improvement or at minimum non-identical behavior when score simulation is enabled. - Helps: all games with score/run errors, particularly MIL@CHC, NYY@LAA, SEA@BOS, BAL@COL, and PHI@ARI. - Hurts/regression risk: an improperly broad simulation could alter strong correct calls such as BAL@COL and SD@CIN. - Gate: shadow execution with stage-by-stage before/after trace; rollback if winner accuracy or Brier worsens without run-error improvement. ## 2. Isolate the weak run model before tuning training parameters - Pattern: `weak_run_model_signal` - Persistence: **4 consecutive slates** - Exact registered levers: `training.xgb.n_estimators`, `training.xgb.max_depth`, `training.xgb.learning_rate` - Parameter change: **No immediate production move.** The finding is marked `param_actionable: false`. - Concrete action: perform the registered isolated training backtest, testing the feature set and target definition before selecting a bounded hyperparameter shadow. - Expected metric: improve away/home/total run-model holdout R² and reduce team-run MAE and total-run MAE. - Helps: the entire slate, especially MIL@CHC, SEA@BOS, NYY@LAA, BAL@COL, and PHI@ARI. - Hurts/regression risk: overfitting could damage close, well-calibrated games such as CHW@HOU and MIA@WAS. - Gate: rolling out-of-sample improvement in MAE and tail coverage, not in-sample fit. ## 3. Run a bounded shadow increase to score-distribution width - Pattern: `score_margin_compression` - Persistence: **1 consecutive slate; present now** - Exact parameter: `score.variance_multiplier` - Proposed change: **increase by 5% in shadow only**. Do not simultaneously change `score.variance_floor`, so the effect is attributable. - Expected metric: lower margin MAE and total-run MAE; reduce underconfidence/overconfidence distortion caused by compressed score distributions. Winner Brier should be monitored, not assumed to improve. - Helps: - NYM@TB - NYY@LAA - MIL@CHC - SEA@BOS - BAL@COL - SD@CIN - Hurts: - BAL@COL and SD@CIN are explicitly identified as good strong calls that may be softened. - More generally, widening can reduce exact-score sharpness in CHW@HOU and MIA@WAS, although those games are not listed in this lever’s direct tension set. - Evidence strength: moderate for the current slate, weaker than the two four-slate escalations. - Gate: retain only if rolling margin MAE or tail coverage improves without unacceptable Brier or winner-accuracy regression. ## 4. Do not move calibration caps today; use shadow monitoring - Pattern: `single_slate_calibration_instability` - Current persistence: **1 consecutive slate**, incidence 3 in the four-slate window - Registered parameters: `confidence.empirical_max_weight`, `confidence.base_cap`, `confidence.moderate_cap` - Proposed change: **no production parameter move** because the issue register explicitly says to monitor the same buckets over the registered rolling window and warns that seven games cannot establish a curve. - Expected metric: future Brier and calibration error should be monitored by bucket. - Helps if later supported: especially high-raw losses such as NYM@TB and NYY@LAA. - Hurts if overcorrected: strong correct calls BAL@COL and SD@CIN. - This is a bounded abstention based on the registered guardrail, not a deferral of diagnosis. ## 5. Starter model diagnostic, not an immediate global reweight - Single-slate driver: starter projection was the primary driver in **3/4 losses**. - Lever tension: `player.pitcher.v4 form weights / player.pitcher_prior_games` - The supplied causal issue register has no registered target lever for starter projection, so no parameter should be invented or forcibly changed here. - Concrete action: compare form-weight and prior-game variants in a shadow backtest, focusing on Harrison, Stock/Seymour, Rodríguez/Ureña, and Elder-type errors. - Expected metric: lower starter ER MAE and starter outs MAE. - Helps: 9 games in the lever-tension record. - Hurts: BAL@COL, where starter projections were accurate. - Regression control: do not promote unless rolling starter ER MAE improves while winner Brier and team-run MAE do not materially worsen. --- # 9. Bottom line ## Known - The system correctly picked **8 of 12 winners**. - Six of those winner hits had materially wrong scores; winner accuracy therefore overstates prediction quality. - Score margins were systematically compressed: predicted mean margin **1.42** versus actual **4.92**, with 11/12 predictions at two runs or fewer and 6/12 actual margins at four runs or more. - Starter projection error was the primary labeled cause in three of four losses. - The historical-to-variance transition caused a real intermediate winner-direction regression of two hits, even though enhanced prediction later recovered them. - The run model has weak persistent holdout signal across four slates. - Simulation has been inert across four consecutive slates and requires code/diagnostic verification. - All 12 games were structurally covered; no critical, error, or warning findings are reported. - The integrity revision artifact is missing, and per-game info findings are not embedded despite being referenced. - Pick-side probability lineage is materially explained; no governor bypass is evidenced. ## Uncertain - Whether widened score distributions would improve future Brier/calibration without harming strong calls. - Whether pitcher-form weighting would improve out-of-sample starter accuracy rather than merely explain this slate. - Whether season/recent run weighting should move in a particular direction. - Whether the run-model weakness is caused by features, target construction, hyperparameters, or an upstream execution problem. - Whether simulation is genuinely inert by design on these games or silently failing. ## Single safest next action **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.