# Luna deep analysis — slate 20260921 > Coverage receipt: **COMPLETE** · 9/8 sections; 3/3 games; 7/7 causes; 6/6 sources # 1. Evidence receipt and gaps ## Sources received All manifest entries were checked against the supplied evidence: | Source | Status | Purpose | |---|---:|---| | `prediction review` — `/app/output/reports/prediction_review_20260921.json` | Loaded, 79,110 bytes | Official outcomes and scoring errors | | `forensic deep audit` — `/app/output/reports/PREDICTION_SYSTEM_DEEP_AUDIT_20260921.json` | Loaded, 60,154 bytes | Probability, provenance, starter, and decision contracts | | `continuous learning` — `/app/output/learning/continuous_learning_daily_20260921.json` | Loaded, 473,280 bytes | Stage quality, calibration, lineage, score distribution, and starter comparisons | | `detailed report` — `/app/output/reports/detailed_20260921.html` | Loaded, 76,436 bytes | Full game and simulation rendering | | `ultra detailed player audit` — `/app/output/reports/20260921_ultra_detailed_player_audit.html` | Loaded, 6,405,727 bytes | Player-level prediction trace | | `structural audit` — `/app/output/reports/audit_report_20260921.html` | Loaded, 362,566 bytes | Invariant findings | | `integrity revision audit` — `/app/output/reports/audit_report_20260921_integrity_revision.html` | **Missing** | Post-Luna remediation proof for immutable revision artifacts | The missing integrity-revision audit is a material evidence gap for remediation verification. It does not prevent review of the game outcomes or the supplied structural findings, but it prevents confirming that a corrected immutable artifact was generated and validated. ## Games reviewed Coverage is complete for the three-game slate: - `MIN@SF` - `TOR@BAL` - `WAS@DET` The coverage matrix reports: - Expected games: 3 - Continuous-learning games: 3 - Canonical artifacts loaded: 3 - Forensic deep-audit games: 3 - Starter comparisons: 3 - Structural audits completed: 3 - All games structurally audited: `true` The slate was therefore game-complete, although not artifact-complete because the integrity-revision audit is missing. ## Internal contradictions and limitations 1. **Published probability lineage is not uniformly reconciled.** - `WAS@DET` has a calibrated-to-published difference of `-0.041591`, with `unexplained_material_delta: true`. - The causal register correctly labels this a critical probability-lineage failure. - `MIN@SF` also says `"transformation":"no recorded transformation explains the publication delta"`, although its delta is only `-0.017297` and is marked non-material. - `TOR@BAL` has a small published-minus-calibrated difference of `-0.002043`, while the record says the published value matches the calibrated/governed value. The numerical values are not identical, but the difference is small and not material under the stated threshold. 2. **Starter-line data are internally unusual in `WAS@DET`.** - River Ryan is recorded as a starter with `0.2 IP`, nine outs, and a projected `0.2 IP`; the structural audit flags this as an implausible starter workload. - This is an artifact/data-contract defect, not proof that the winner prediction was wrong. The game winner was correctly predicted. 3. **The confidence terminology is potentially misleading.** - The `MIN@SF` record calls the home-minus-away edge `-0.135`, while the diagnostic describes a `0.14-confidence` away commitment. This is directionally consistent: the away probability was approximately `0.568`, but the edge is not close to certainty. - A `0.12` home-away confidence edge must be treated as moderate, not near-even and not high conviction. 4. **No market cross-check was available.** - Moneyline source coverage: zero games. - Therefore, no conclusion about model-versus-market disagreement can be made. 5. **The provided data do not include the exact text of all 22 informational audit findings.** - Their count is available, and the per-game audit summaries report 8, 7, and 7 informational findings, but their individual messages are not supplied. --- # 2. Executive diagnosis ## Outcome summary The slate finished: - Winner accuracy: `1/3 = 33.33%` - Misses: `MIN@SF`, `TOR@BAL` - Hit: `WAS@DET` - Walk-forward baseline accuracy: `57.018%` - Model holdout winner accuracy: `59.188%` - Slate performance: below both the walk-forward baseline and the historical model validation result - Learning eligibility: `false`; the slate is quarantined from new parameter proposals because of critical/error artifact findings This is a poor slate, but the causes differ by game. ## Winner accuracy Winner accuracy was poor: `33.3%`, with only `WAS@DET` correct. The quality of the winner path was not stable: - `historical_ml`: 1/3 winners - `variance_applied`: 0/3 - `enhanced_prediction`: 1/3 - All later stages through `published_final`: 1/3 The variance stage caused a measurable winner-direction regression: - Winner accuracy fell by `0.3333` - One hit was lost - `WAS@DET` changed from Detroit to tie at that stage - `TOR@BAL` changed from Toronto to tie The enhanced stage later recovered the `WAS@DET` direction, but that recovery does not erase the intermediate regression. ## Calibration quality Calibration was weak and overconfident on this slate: - Weighted absolute calibration error: `0.2028` - `0.50–0.55` bucket: average confidence `0.5205`, observed hit rate `0.5000`, two games, one hit - `0.55–0.60` bucket: average confidence `0.5675`, observed hit rate `0.0000`, one game, zero hits The second bucket is especially unstable, but it contains only one game. The correct conclusion is that the slate exhibited poor calibration, not that a stable calibration curve has been proven. `MIN@SF` was the clearest confidence problem: - Published away probability: `0.567503` - Away pick lost - Brier score: `0.32206` - Moderate conviction bucket `TOR@BAL` was essentially a toss-up: - Published Toronto probability: `0.505257` - Brier score: `0.255285` - The error is not evidence of meaningful overconfidence in that particular game. `WAS@DET` was a correct lean: - Published Detroit probability: `0.535809` - Brier score: `0.215473` A correct winner does not make the probability well calibrated; it only records that the selected side won. ## Score accuracy Score accuracy was materially poor: - Predicted margins: `1, 1, 1` - Actual margins: `3, 1, 7` - Margin MAE: `4.0` - Signed margin bias: `-4.0` - Actual margins at least four: 1 - Predicted margins no greater than two: all 3 The run models have almost no validated holdout signal: - Away-runs R²: `0.031681` - Home-runs R²: `0.018735` - Total-runs R²: `0.008918` The model therefore should not be treated as an exact-score system. The `weak_run_model_signal` finding is appropriately high severity, not critical: it is a serious modeling limitation, but not itself an evidence-contract failure. ## Starter accuracy Starter projection was the primary cause of `MIN@SF`: - Zebby Matthews: projected `1 ER`, actual `5 ER`; projected ERA `1.59`, actual ERA `9.00` - Error: `+4 ER`, `+7.41 ERA points` - He also recorded 15 outs versus 17 projected - The forensic record identifies a credible away-venue split: `6.93 ERA` on the relevant side versus `2.57` on the other side Starter projection contributed materially to `WAS@DET` as well: - DJ Herz: projected `1 ER`, actual `4 ER` - Projected ERA `3.86`, actual ERA `9.00` - Error: `+3 ER`, `+5.14 ERA points` However, Detroit still won, and the extreme River Ryan line was favorable to the pick: - River Ryan: projected `1 ER`, actual `0 ER` - Projected ERA `13.50`, actual ERA `0.00` - The record explicitly calls this an outlier with no credible explanatory venue, opponent, or experience signal. `TOR@BAL` did not show a decisive starter failure: - Toronto starter: projected 3 ER, actual 1 ER - Baltimore starter: projected 4 ER, actual 3 ER - Both were better than projected, and the forensic verdict calls the result a toss-up/variance outcome. ## Artifact integrity Artifact integrity is not clean: - Structural audit total: 2 errors, 0 critical, 0 warnings, 22 informational findings - Both errors concern the Detroit starter line: - Current artifact: River Ryan `0.2 IP` starter outing - Simulation artifact: River Ryan `0.2 IP` starter outing - `WAS@DET` audit risk score: `80`, status `ERROR` - `MIN@SF` and `TOR@BAL`: structural status `PASS`, zero defects This is a high-severity process/artifact issue, not proof that the model’s Detroit winner was wrong. The causal register correctly says not to attribute accuracy changes to the malformed file. ## Causal issue register reconciliation ### Critical: unexplained published probability delta - **ID:** `unexplained_probability_publication_delta` - **Severity:** Critical - **Affected game:** `WAS@DET` - **Evidence:** one game with an unexplained calibrated-to-published delta of at least two percentage points - **Observed facts:** governed probability `0.5774`; published probability `0.535809`; difference `-0.041591` - **Action:** block promotion until the missing transformation is recorded and reconciled - **Guardrail:** do not assume governor bypass until the pick-side math is traced This is the only critical finding and is correctly classified as an evidence/contract failure. ### High: artifact integrity failure - **ID:** `artifact_integrity_failure` - **Severity:** High - **Affected artifact/game:** `20260921_WAS@DET` - **Evidence:** two structural errors, no criticals - **Action:** exclude slate from parameter learning until artifact generation is fixed - **Guardrail:** malformed artifact is not proof that the prediction model was wrong ### High: pipeline winner instability - **ID:** `pipeline_winner_instability` - **Severity:** High - **Affected game:** `WAS@DET` - **Evidence:** `historical_ml → variance_applied` reduced winner accuracy by one hit, or `-0.3333` - **Action:** preserve pre-rounding base winner and record before/after stage picks - **Guardrail:** later recovery does not make the unstable intermediate step harmless ### High: calibration instability - **ID:** `single_slate_calibration_instability` - **Severity:** High - **Affected games:** all three - **Evidence:** weighted calibration error `0.2028` over three settled games - **Action:** monitor the same buckets over the rolling window before changing calibration weights - **Guardrail:** this one slate alone is too small for a stable calibration curve Because this finding has since escalated to a three-slate streak, it now supports a bounded shadow experiment, discussed below. ### High: weak run-model signal - **ID:** `weak_run_model_signal` - **Severity:** High - **Affected games:** all three - **Evidence:** holdout R² of `0.0187/0.0317/0.0089` - **Action:** improve features or target; treat exact scores as low confidence - **Guardrail:** do not infer exact-score reliability from small positive R² ### Informational: complete audit coverage - **ID:** `complete_slate_audit_coverage` - **Severity:** Info - **Evidence:** 3/3 games structurally audited - **Action:** retain per-game audit receipts - **Guardrail:** coverage does not cancel findings inside audited games ### Informational: simulation inertness - **ID:** `simulation_inert_on_slate` - **Severity:** Info on this single-slate record, but escalated across slates - **Evidence:** zero flip candidates and zero published flips - **Action:** measure simulation contribution over rolling slates - **Guardrail:** zero winner flips is not itself a defect --- # 3. Every game ## `MIN@SF` — wrong winner and wrong score ### Prediction versus outcome - Predicted score: MIN 5, SF 4 - Predicted winner: MIN - Published away probability: `0.567503` - Published home probability: `0.432497` - Home-minus-away confidence edge: `-0.135` - System confidence edge: approximately `0.14` toward Minnesota - Conviction bucket: moderate - Actual score: MIN 2, SF 5 - Actual winner: SF - Winner: incorrect - Correct-winner/wrong-score classification: **not applicable; both winner and score were wrong** ### Errors - Brier score: `0.32206` - Team-run absolute error: `4` - Total-run bias: `+2` - Predicted margin: MIN by 1 - Actual margin: SF by 3 - Model margin error: `4` - Score path margin was materially too compressed ### Starter projection versus actual | Starter | Projected | Actual | Error | |---|---:|---:|---:| | Zebby Matthews, MIN | 1 ER, 17 outs, ERA 1.59 | 5 ER, 15 outs, ERA 9.00 | +4 ER, -2 outs, +7.41 ERA | | Blade Tidwell, SF | 3 ER, 16 outs, ERA 5.06 | 1 ER, 10 outs, ERA 2.70 | -2 ER, -6 outs, -2.36 ERA | The principal starter failure was Matthews. The audit specifically identifies his venue weakness as credible and says the model underweighted it. ### Pregame edges - Season home-minus-away edge: `-0.162` - Recent edge: `-0.064` - Pitcher edge: `-0.053` - Composite edge: `-0.4015` / approximately `-0.402` - Recent form: - MIN: 4–6, run differential `-11`, 3.7 runs scored, 4.8 allowed - SF: 3–7, run differential `-11`, 4.6 runs scored, 5.7 allowed The directional evidence favored Minnesota, but the edge was not large enough to justify treating the 0.14 confidence difference as near-certainty. ### Controls - Starter-experience shrinkage: not applied; minimum starter-games rule was satisfied - Recency discount factor: none - Recency guardrail: not applied - Pitcher adjustment: applied - Minnesota offense versus home pitching factor: `0.9809` - San Francisco offense versus away pitching factor: `0.928` - Savant adjustment: applied - Score-volatility action: no change - Low-score probability: `0.5206` - Large Savant run-environment swing diagnostic: present The no-change volatility decision did not protect against the eventual wide outcome. This is consistent with the broader finding that the score model’s tails are too compressed. ### Score path 1. Historical ML: MIN `4.697`, SF `4.343` 2. Variance-applied deterministic target: MIN `5`, SF `4` 3. Enhanced prediction: MIN `5`, SF `4` 4. Embedded Savant environment: MIN `5`, SF `4` - Away delta: `+0.1928` - Home delta: `-0.2595` 5. Fundamental edge review: unchanged 6. Capped target: unchanged 7. Simulation result: unchanged The simulation did not provide an independent correction; it merely preserved the narrow target. ### Player-level adjustments and outcome There were 25 material player changes. Important listed adjustments included: - Alan Roden: better, predicted-AB delta `2.429` - Christian Koss: worse, predicted-SO delta `2.237` - Ryan Kreidler: worse, predicted-AB delta `2.214` - Jonah Cox: worse, predicted-AB delta `2.178` - Walker Jenkins: worse, predicted-SO delta `2.056` - Marcelo Mayer: better, predicted-AB delta `1.985` - Brett Harris: better, predicted-H delta `1.630` - Kody Clemens: worse, predicted-RBI delta `1.490` Important realized deviations: - Kody Clemens: 0-for-4 versus projected 1 hit; run impact `-1.4` - Ryan Jeffers: 0-for-4 versus projected hit/production; run impact `-1.11` - Drew Gilbert: 3-for-4, HR, 3 RBI versus projected 1 hit, no HR; run impact `+1.23` for SF - Brett Harris: 2-for-4, 2 RBI versus projected no hit; run impact `+0.94` - Emmanuel Rodriguez: HR versus projected no HR; run impact `+0.93` The matchup verdict was: - MIN: starter hit hard **and** lineup underproduced - SF: neither side broke materially; the result was closer to variance from the SF perspective ### Audit findings - Structural status: `PASS` - Risk score: `0` - Critical: 0 - Error: 0 - Warning: 0 - Info: 8 - Artifact was explicitly reported clean and not the reason for the miss. ### Causes - **Primary:** starter projection error - **Secondary:** wrong conviction side - Additional contributors: - MIN offense over-projected by 3 - Matthews’ credible away-venue weakness underweighted - SF’s offense, especially Gilbert and Harris, exceeded individual expectations - Compressed score distribution underrepresented a three-run outcome --- ## `TOR@BAL` — toss-up miss and wrong score ### Prediction versus outcome - Predicted score: TOR 5, BAL 4 - Predicted winner: TOR - Published Toronto probability: `0.505257` - Published Baltimore probability: `0.494743` - Home-minus-away edge: `-0.0105` - System confidence edge: approximately `0.01` toward Toronto - Conviction bucket: toss-up - Actual score: TOR 3, BAL 4 - Actual winner: BAL - Winner: incorrect - Correct-winner/wrong-score classification: **not applicable; both winner and score were wrong** ### Errors - Brier score: `0.255285` - Team-run absolute error: `2` - Total-run bias: `+2` - Predicted margin: TOR by 1 - Actual margin: BAL by 1 - Margin error: `2` This was a close, low-conviction game. It should not be grouped with the moderate-confidence `MIN@SF` miss. ### Starter projection versus actual | Starter | Projected | Actual | Error | |---|---:|---:|---:| | Trey Yesavage, TOR | 3 ER, 15 outs, ERA 5.40 | 1 ER, 6 outs, ERA 4.50 | -2 ER, -9 outs, -0.90 ERA | | Shane Baz, BAL | 4 ER, 17 outs, ERA 6.35 | 3 ER, 20 outs, ERA 4.05 | -1 ER, +3 outs, -2.30 ERA | Both starters allowed fewer earned runs than projected. No decisive starter-direction failure is identified. ### Pregame edges - Season home-minus-away edge: `+0.0907` - Recent edge: `-0.046` - Pitcher edge: `-0.0531` - Composite edge: `-0.2584` - Recent quality edge: `+0.164` - Season quality edge: `+0.0513` The inputs conflicted: season quality favored Baltimore, while recent and pitcher edges leaned Toronto. The composite favored Toronto, but only weakly. Recent form: - TOR: 4–6, run differential `-5`, 4.0 runs scored, 4.5 allowed - BAL: 5–5, run differential `0`, 4.1 runs scored, 4.1 allowed ### Controls - Starter-experience shrinkage: not applied - Recency discount factor: none - Recency guardrail: applied - Pitcher adjustment: applied - Toronto offense factor: `1.0558` - Baltimore offense factor: `1.0027` - Savant adjustment: applied - Score-volatility action: no change - Low-score probability: `0.5206` - Matchup-recency guardrail: present in the enhanced stage ### Score path 1. Historical ML: TOR `4.297`, BAL `4.059` 2. Variance-applied: TOR `4`, BAL `4` 3. Enhanced prediction: TOR `5`, BAL `4` 4. Embedded Savant environment: TOR `5`, BAL `4` - Away delta: `-0.2485` - Home delta: `+0.0277` 5. Fundamental review: unchanged 6. Capped target: unchanged 7. Simulation result: unchanged The model promoted Toronto from a near-even historical projection to a five-run target while maintaining a one-run margin. The actual game remained close but favored Baltimore. ### Probability reversion This game contains the only recorded blend-stage side reversal: - Trained home probability: `0.522078` - Blended home probability: `0.506795` - Published home probability: `0.494743` - The blend favored home and flagged a winner change - The published side was away - The blend-side change did not survive to publication This is not automatically a defect, but it is a decision-path instability worth tracing alongside the broader winner-instability finding. ### Player-level adjustments and outcome There were 23 material player changes. Notable adjustments included: - Gunnar Henderson: worse, predicted-SO delta `2.02` - Brett Bateman: worse, predicted-RBI delta `1.68` - Ernie Clement: worse, predicted-SO delta `1.629` - Rece Hinds: worse, predicted-AB delta `1.5` - Coby Mayo: better, predicted-RBI delta `1.475` - José Barrero: deboosted, predicted-AB delta `-1.369` - Sean Keys: worse, predicted-AB delta `1.333` - Andrés Giménez: worse, predicted-H delta `1.3` Important realized contributions: - Gunnar Henderson: 3-for-4, HR, RBI; run impact `+2.16` - Pete Alonso: 2-for-4, 2 HR, 3 RBI; run impact `+2.0` - Coby Mayo: 0-for-4 versus projected hit/HR; run impact `-1.4` - Dylan Beavers: 0-for-4 versus projected hit/walk; run impact `-1.11` - Kazuma Okamoto: below projection; run impact `-0.93` The forensic conclusion was a genuine toss-up, with no starter or one-sided team breakdown. ### Audit findings - Structural status: `PASS` - Risk score: `0` - Critical: 0 - Error: 0 - Warning: 0 - Info: 7 - Artifact was reported clean. ### Causes - **Primary:** toss-up variance - **Secondary:** none recorded - Contributing factors: - Conflicting season/recent/pitcher evidence - Baltimore’s high-impact player outcomes, particularly Henderson and Alonso - Small probability edge that did not justify a strong directional interpretation --- ## `WAS@DET` — correct winner, wrong score ### Prediction versus outcome - Predicted score: WAS 4, DET 5 - Predicted winner: DET - Published Detroit probability: `0.535809` - Published home-minus-away confidence edge: `+0.0716` - System confidence edge: approximately `0.07` - Conviction bucket: lean - Actual score: WAS 2, DET 9 - Actual winner: DET - Winner: correct - Classification: **correct winner / wrong score** This is the required example showing that winner correctness does not imply a good prediction. The winner was right, but the six-run team-score error and seven-run actual margin were badly missed. ### Errors - Brier score: `0.215473` - Team-run absolute error: `6` - Total-run bias: `-2` - Predicted margin: DET by 1 - Actual margin: DET by 7 - Margin error: `6` - `win_quality`: `right_winner_wrong_score` ### Starter projection versus actual | Starter | Projected | Actual | Error | |---|---:|---:|---:| | DJ Herz, WAS | 1 ER, 7 outs, ERA 3.86 | 4 ER, 12 outs, ERA 9.00 | +3 ER, +5 outs, +5.14 ERA | | River Ryan, DET | 1 ER, 2 outs, ERA 13.50 | 0 ER, 9 outs, ERA 0.00 | -1 ER, +7 outs, -13.50 ERA | The Herz projection understated Detroit’s scoring opportunity. River Ryan’s actual performance was unusually good relative to the very low projected workload, but the record explicitly classifies this as an outlier and says no model change is warranted from this one start. ### Pregame edges - Season edge: `+0.2823` - Recent edge: `+0.140` - Pitcher edge: `0.000` - Composite edge: `+0.3703` - Season quality edge: `+0.359` The directional evidence consistently favored Detroit, albeit not with a large enough probability to support a blowout score. Recent form details were not separately included in this game’s trace, but the model had a coherent positive home-side composite. ### Controls - Starter-experience information: unavailable - Venue context: unavailable - Pitcher adjustment: not applied; both run factors were `1.0` - Savant adjustment: applied - Score-volatility action: no change - Season quality adjustment: zero; edge below action threshold The unavailable starter experience and venue fields are important data gaps for this matchup, particularly because the actual starter outcomes were extreme. ### Score path 1. Historical ML: WAS `4.697`, DET `4.343` 2. Variance-applied: WAS `4`, DET `5` 3. Enhanced prediction: unchanged 4. Embedded Savant environment: unchanged 5. Fundamental review: unchanged 6. Capped target: unchanged 7. Simulation result: unchanged 8. Published final: unchanged The final score path never represented the possibility of Detroit winning by a wide margin. ### Player-level adjustments and outcome Important realized contributors: - CJ Abrams: 0-for-3 versus projected hit/HR; run impact `-1.73` - Hao-Yu Lee: 3-for-5 versus projected 1 hit; run impact `+1.56` - Spencer Torkelson: HR versus projected no HR; run impact `+0.93` - Nasim Núñez: below projection; run impact `-0.80` - Jacob Young: above projection; run impact `+0.78` The slate-level player audit also identifies Keibert Ruiz as a below-average hitter who was over-projected, with run impact `-0.78`. ### Audit findings Two structural errors were recorded: 1. Current artifact: - `DET` River Ryan has an implausible `0.2 IP` starter outing - Rule: `PITCHING_REALISM` - Severity: error 2. Simulation artifact: - Same implausible `0.2 IP` starter outing - Rule: `PITCHING_REALISM` - Severity: error Summary: - Critical: 0 - Error: 2 - Warning: 0 - Info: 7 - Risk score: `80` - Status: `ERROR` The errors are presentation/data-contract defects. They should not be treated as proof that the Detroit winner was incorrectly modeled. ### Causes - Winner direction: correct, driven by consistent Detroit edges - Score failure: Detroit offense under-projected by 4, plus a poor DJ Herz projection - River Ryan’s strong result was an irreducible/outlier component - Artifact integrity failure is separate from the outcome error --- # 4. Miss reconstruction ## `MIN@SF` ### Earliest wrong-direction stage The earliest evidence that moved the model toward the wrong result was already present in the pregame directional inputs: - Season edge favored Minnesota: `-0.162` - Recent edge favored Minnesota: `-0.064` - Pitcher edge favored Minnesota: `-0.053` - Composite edge favored Minnesota: `-0.4015` Those inputs led to the away pick. The critical model error was not a later score-stage reversal; it was insufficiently discounting Minnesota’s vulnerable starter profile, especially Matthews’ credible away split. The score pipeline then reinforced the wrong side: - Historical ML already predicted MIN 4.697 to SF 4.343. - Variance applied a narrow MIN 5–SF 4 target. - Later stages did not correct the winner or broaden the margin meaningfully. ### Cause classification - **Bad input:** No structural identity error; starter identity matched. However, venue-split evidence was available and apparently underweighted. - **Bad weighting:** Yes. The forensic recommendation is to raise `context.venue_adjustment_weight` in shadow testing. - **Calibration:** Contributing. A `0.5675` away probability was too strong for a miss, though the primary error was not solely calibration. - **Starter error:** Primary. Matthews projected 1 ER and allowed 5. - **Offense/bullpen miss:** Yes. Minnesota’s lineup produced 2 runs versus the model’s 5-run target; San Francisco received positive contributions from Gilbert and Harris. SF bullpen allowed only 1 ER. - **Run-environment miss:** Yes. The final one-run margin and narrow score distribution missed a three-run SF result. - **Irreducible variance:** Present, particularly individual player outcomes, but not sufficient to explain away the credible starter-split miss. The `0.14` edge is moderate. It does not mean Minnesota was a near-certain selection; it means the published probability was about 56.8%, which still implies a substantial loss probability. ## `TOR@BAL` ### Earliest wrong-direction stage The historical stage favored Toronto slightly: - TOR 4.297, BAL 4.059 - The historical winner was Toronto At `variance_applied`, the winner direction regressed to a tie: - Historical direction: TOR - Variance direction: TIE The enhanced stage then restored Toronto: - TIE → TOR The model therefore never found a strong evidence-based Baltimore direction. It ended as a one-run Toronto pick with a probability of only `0.505257`. ### Cause classification - **Bad input:** No structural defect; both starters were correctly identified. - **Bad weighting:** Possible but not established. Season quality favored Baltimore while recent and pitcher edges favored Toronto. - **Calibration:** Minor. This was effectively a toss-up, and the Brier score `0.255285` is much less concerning than the MIN miss. - **Starter error:** Not primary. Both starters allowed fewer earned runs than projected. - **Offense/bullpen miss:** Some contribution. Baltimore’s individual offensive outcomes, especially Henderson and Alonso, exceeded projections. Toronto’s lineup produced only 3 runs. - **Run-environment miss:** Yes, by two team runs and two total runs of positive bias. - **Irreducible variance:** Primary. The audit labels the game a genuine toss-up. The blend-stage reversal is a pipeline-quality concern: - The blend favored Baltimore at `0.506795` - Publication reverted to Toronto at `0.505257` - The published side was therefore not the side favored by the blend stage This should be traced, but it is not evidence that Baltimore should simply have been selected. ## Pipeline-stage quality across all stages and transitions | Stage | Winner accuracy | Winner hits | Team-run MAE | Total-run MAE | Margin MAE | |---|---:|---:|---:|---:|---:| | Historical ML | 33.33% | 1/3 | 1.9153 | 1.8757 | 3.7913 | | Variance applied | 0% | 0/3 | 2.0000 | 2.0000 | 4.0000 | | Enhanced prediction | 33.33% | 1/3 | 2.0000 | 2.0000 | 4.0000 | | Embedded Savant environment | 33.33% | 1/3 | 2.0000 | 2.0000 | 4.0000 | | Fundamental edge review | 33.33% | 1/3 | 2.0000 | 2.0000 | 4.0000 | | Capped target | 33.33% | 1/3 | 2.0000 | 2.0000 | 4.0000 | | Simulation result | 33.33% | 1/3 | 2.0000 | 2.0000 | 4.0000 | | Published final | 33.33% | 1/3 | 2.0000 | 2.0000 | 4.0000 | Transitions: 1. **Historical ML → variance applied** - Changed `TOR → TIE` - Changed `DET → TIE` - `WAS@DET` is recorded as the regression - Winner accuracy: `-0.3333` - Winner hits: `-1` - Team-run MAE: `+0.0847` - Margin MAE: `+0.2087` 2. **Variance applied → enhanced prediction** - `TOR@BAL`: `TIE → TOR` - `WAS@DET`: `TIE → DET` - Recovered one winner hit, including the Detroit pick - No remaining regression relative to variance stage 3. **All later transitions** - No winner changes - No run-error changes - No score improvement The simulation did not materially intervene. Its zero-flip behavior is not automatically a single-slate defect, but it is an established cross-slate diagnostic failure. --- # 5. Cross-game counterfactuals ## Lever tension entries ### `score.variance_multiplier / score.variance_floor` - **Helps:** `MIN@SF` - Lost a moderate-confidence pick - Wider score tails could reduce overconfidence and better represent a three-run outcome - **Hurts:** none identified on this slate - **Net evidence:** supports a bounded widening experiment, but not an unrestricted change - **Caution:** the run model has near-zero holdout R², so variance widening may improve calibration or tail representation without improving exact-score skill ### `player.pitcher.v4 form weights / player.pitcher_prior_games` - **Helps:** - `MIN@SF`: Matthews was four ER worse than projected - `WAS@DET`: Herz was three ER worse than projected - **Hurts:** none identified on this slate - **Net evidence:** two apparent benefits, but they are not independently persistent across slates - **Caution:** the cross-slate starter-ERA signal is currently held because only 7 of 12 slates share the sign and the z-score is `1.26` ### `recent.* / season.* run-mean weighting` - **Helps:** - `MIN@SF`: team-run error of 4 - `WAS@DET`: team-run error of 6 - **Hurts:** - `TOR@BAL`: team-run error was only 2; reweighting could disturb this close game - **Net evidence:** two helps versus one hurt, but the cross-slate lineup-run bias is not persistent: - Mean `-0.182` - Same-sign share `7/12 = 0.583` - z-score `-0.87` - **Decision:** do not change this lever from this slate alone. ## Tempting one-game fixes that must not be made 1. **Do not force Baltimore in future games merely because it won `TOR@BAL`.** - The game was a toss-up with a `0.505` Toronto probability and no decisive starter breakdown. 2. **Do not increase Detroit confidence simply because Detroit won by seven.** - The score was wrong by six runs, the artifact had two errors, and the large margin was not forecast. 3. **Do not tune directly to River Ryan’s result.** - The audit calls it an outlier with no credible explanatory signal. 4. **Do not globally increase starter pessimism or decrease starter projections.** - The slate-level starter mean suggests the opposite direction, but the 12-slate persistence test does not support a change. 5. **Do not use player-level deviations as broad training targets.** - Only 7 of 22 material deviations, or `31.8%`, were supported by the hitter’s own season contact quality. 6. **Do not interpret zero simulation flips as proof that simulation is unnecessary.** - The cross-slate diagnosis says the simulation may be silently no-oping. 7. **Do not promote the slate or learn parameters from it while the critical probability-lineage and error-level artifact findings remain unresolved.** --- # 6. Data and contract defects ## Critical findings ### Unexplained probability publication delta - Affected game: `WAS@DET` - Governor input: `0.593031` - Governed output: `0.5774` - Published probability: `0.535809` - Calibrated probability: `0.5774` - Published-minus-calibrated: `-0.041591` - No recorded transformation explains the difference - Required action: block promotion and trace the complete pick-side math The data do not establish a governor bypass. They establish an unexplained material transformation. ## Error findings Two error-level findings, both in `WAS@DET`: 1. Current artifact flags River Ryan’s `0.2 IP` starter outing as implausible. 2. Simulation artifact flags the same `0.2 IP` starter outing. These are artifact/presentation or data-contract defects. They are not direct evidence of an incorrect Detroit winner. ## Warning findings - Structural audit warning count: `0` - No warning-level findings were supplied. ## Informational findings - Structural audit informational count: `22` total - `MIN@SF`: 8 - `TOR@BAL`: 7 - `WAS@DET`: 7 - The supplied JSON does not include all 22 individual informational messages, so they cannot be enumerated verbatim without invention. - Named informational causal findings: - Complete slate audit coverage - Simulation inert on slate ## Coverage reconciliation The slate is not “clean” merely because coverage is complete. Positive coverage facts: - All 3 games received structural audits. - All 3 have starter comparisons. - All 3 have continuous-learning records. - All 3 canonical artifacts were loaded. Negative integrity facts: - `WAS@DET` contains two structural errors. - The revision-integrity audit is missing. - The slate is correctly marked ineligible for learning. ## Probability-lineage audit ### `MIN@SF` - Raw model pick probability: `0.5702` - Governor input: `0.599607` - Calibrated probability: `0.5848` - Governor output: `0.5848` - Score-coherence probability: `0.579415` - Published probability: `0.567503` - Published-minus-calibrated: `-0.017297` - Recency guardrail: not applied - Transformation text: no recorded transformation explains the publication delta - Material unexplained delta: false This is not a material bypass under the registered threshold, but the transformation record is incomplete. ### `TOR@BAL` - Raw model probability: `0.5000` - Governor input: `0.5013` - Calibrated probability: `0.5073` - Governor output: `0.5073` - Score-coherence probability: `0.507276` - Published probability: `0.505257` - Published-minus-calibrated: `-0.002043` - Recency guardrail: applied - Transformation: recorded as matching calibrated/governed value - Material unexplained delta: false The numerical difference is small, but the record should still state whether the score-coherence value or another final-stage transformation produced `0.505257`. ### `WAS@DET` - Raw model probability: `0.5720` - Governor input: `0.593031` - Calibrated probability: `0.5774` - Governor output: `0.5774` - Score-coherence probability: `0.576597` - Published probability: `0.535809` - Published-minus-calibrated: `-0.041591` - Recency guardrail: not applied - Transformation: no recorded explanation - Material unexplained delta: true This is the only clear material lineage bypass/gap in the supplied evidence. ## Presentation/artifact defects versus model defects ### Model/process defects - Weak run-model signal: total R² `0.008918` - Pipeline winner instability at variance application - Confidence calibration instability - Simulation inertness across 11 slates - Potential underweighting of credible venue splits for starters ### Artifact/presentation defects - River Ryan implausible workload line in current and simulation artifacts - Missing integrity-revision audit - Unexplained material published probability transformation for `WAS@DET` These categories must remain separate. --- # 7. Cross-slate persistence A single slate is insufficient for many inferences, but the escalated findings are explicitly established failures and must not be dismissed as single-slate noise. ## Raw structural blocks ### Margin distribution Current slate: - Actual margins: `1, 3, 7` - Predicted margins: `1, 1, 1` - All predicted margins were two runs or fewer - One actual margin was at least four - `WAS@DET` signed margin error: `-6` - `MIN@SF` signed margin error: `-2` - `TOR@BAL` signed margin error: `0` This is consistent with margin compression. ### Pipeline-stage quality and transitions The current slate shows a material intermediate regression: - Historical ML → variance applied - Winner accuracy fell from `33.3%` to `0%` - One winner hit was lost - Later enhancement recovered the Detroit direction This confirms that the pipeline instability finding is present now. ### Calibration monitoring Current slate: - Weighted absolute calibration error: `0.2028` - Two settled games in the `0.50–0.55` bucket, one hit - One settled game in the `0.55–0.60` bucket, zero hits - Both buckets are overconfident by the defined metric ### High-raw cluster - Threshold: `0.65` - Games: `0` - Hits: `0` - Current finding: not present - Finding streak: 0 consecutive slates, incidence 2 in the 11-slate window ### Simulation control - Observed games: 3 - Flip candidates: 0 - Published flips: 0 - Status: diagnostic-only without independent support - Current finding: present ## Finding streaks | Finding | Consecutive-slate count | Present now? | Interpretation | |---|---:|---:|---| | `high_raw_probability_cluster` | 0 | No | Not persistent now; do not tune from this slate | | `pipeline_winner_instability` | 4 | Yes | Established recurring winner-direction regression | | `score_margin_compression` | 0 | No | Current slate shows compression, but the registered streak is not active | | `simulation_inert_on_slate` | 11 | Yes | Established recurring simulation failure | | `single_slate_calibration_instability` | 3 | Yes | Persistent enough for a bounded shadow experiment | | `weak_run_model_signal` | 11 | Yes | Established structural modeling failure | ## Escalated findings ### Pipeline winner instability - Streak: 4 consecutive slates - Incidence: 5 in the 11-slate window - Target metrics: accuracy, Brier score - Target lever: none - Direction: preserve base ML winner before integer rounding - Required response: code/diagnostic action, not parameter tuning ### Simulation inertness - Streak: 11 consecutive slates - Incidence: 11 of 11 - Target lever: `simulation.allow_score` - Target metrics: team-run MAE, total-run MAE - Direction: confirm the module runs and does not silently no-op - The supplied self-assessment identifies a likely root cause: the simulation uses target-search draws, early exits after finding a target realization, and estimates win rates from approximately two selected draws. This is a code issue, not a reason to make a large nightly parameter change. ### Calibration instability - Streak: 3 consecutive slates - Incidence: 8 in the 11-slate window - Target levers: - `confidence.empirical_max_weight` - `confidence.base_cap` - `confidence.moderate_cap` - Target metrics: Brier score, calibration error - Direction: increase empirical shrinkage / lower confidence caps ### Weak run-model signal - Streak: 11 consecutive slates - Incidence: 11 of 11 - Registered training parameters listed: - `training.xgb.n_estimators` - `training.xgb.max_depth` - `training.xgb.learning_rate` - But the recommended direction is not to tune these nightly. The action is an isolated feature/target backtest because no bounded nightly knob is expected to solve near-zero R². ## Metric trends Each supplied trend direction: - Margin bias: **regressing** - Mean: `-1.7798` - Mean team-run error on losses: **improving** - Mean: `5.3847` - Weighted calibration error: **flat** - Mean: `0.2075` - Winner accuracy: **regressing** - Mean: `0.5768` The top-confidence-pick loss streak is: - Current loss streak: `1` - Most recent slate, `20260921`: miss - Prior sequence includes misses on `20260911`, `20260912`, `20260914`, and `20260919`, but the streak is not currently longer than one. --- # 8. Adjustments for today Recommendations are ranked by persistence, scope, expected metric impact, affected games, and regression risk. ## 1. Fix winner-stage instability — highest priority - **Pattern:** `pipeline_winner_instability` - **Persistence:** 4 consecutive slates - **Exact parameter:** none; target lever is empty - **Change:** code/diagnostic fix, not a parameter move - **Action:** preserve the base ML winner before integer rounding and record both pre-variance and post-variance winners for every game - **Expected metrics:** improve winner accuracy stability and Brier score; reduce intermediate winner regressions - **Helps:** current `WAS@DET`-type cases where variance changed a correct directional base pick to a tie - **Hurts/risk:** possible reduction in variance-driven corrections; rollback monitor should compare pre/post winner accuracy over a shadow window - **Gate:** do not promote until the intermediate stage trace is present ## 2. Repair or isolate the simulation module - **Pattern:** `simulation_inert_on_slate` - **Persistence:** 11 consecutive slates - **Exact registered lever:** `simulation.allow_score` - **Recommended action:** diagnostic/code repair rather than simply toggling the parameter - **Change:** separate target-realization search from independent win-probability estimation; use an independent batch or closed-form run-difference calculation, and prevent early exit from making win-rate estimates depend on roughly two selected draws - **Expected metrics:** improve team-run MAE and total-run MAE diagnostics; restore meaningful simulation contribution - **Helps:** all games where simulation currently makes no independent score or probability correction, especially `MIN@SF` and `WAS@DET` - **Hurts/risk:** computation cost and possible score-distribution changes; use a shadow comparison and rollback if MAE worsens - **Do not infer:** zero flips on this slate alone is not proof of failure; the 11-slate streak is the evidence for action ## 3. Run a bounded calibration shadow experiment - **Pattern:** `single_slate_calibration_instability` - **Persistence:** 3 consecutive slates - **Exact registered parameter:** `confidence.moderate_cap` - **Change:** lower the moderate cap by a small bounded amount, for example `0.02`, in shadow only - **Expected metrics:** lower weighted calibration error and Brier score; reduce overconfidence in the `0.55–0.60` bucket - **Helps:** `MIN@SF`, the moderate-confidence miss - **Potentially hurts:** `WAS@DET`, where the correct lean could be slightly underconfident; `TOR@BAL` should be minimally affected because it is a toss-up - **Regression monitor:** bucket calibration error, Brier score, and directional accuracy over the rolling window - **Rollback:** revert if calibration error or Brier score worsens materially, or if low-confidence directional accuracy deteriorates A larger simultaneous change to `confidence.empirical_max_weight`, `confidence.base_cap`, and `confidence.moderate_cap` is not recommended; use one bounded shadow lever first. ## 4. Address weak run-model signal through isolated training work - **Pattern:** `weak_run_model_signal` - **Persistence:** 11 consecutive slates - **Registered training levers:** `training.xgb.n_estimators`, `training.xgb.max_depth`, `training.xgb.learning_rate` - **Change:** no nightly parameter move is recommended - **Action:** isolated same-fingerprint backtest with feature-contract changes: - source-labelled no-vig market probability where available - park/weather run environment - bullpen rest/fatigue - platoon-adjusted lineup quality - **Expected metrics:** increase home-, away-, and total-run holdout R²; reduce team-run and total-run MAE - **Helps:** all games, especially compressed-margin cases such as `WAS@DET` and `MIN@SF` - **Hurts/risk:** feature leakage, schema drift, and overfitting; require a new model schema version and holdout validation - **Status:** manual/operator action, not a same-day tuning change ## 5. Shadow-test starter venue/form weighting as the strongest single-slate driver - **Single-slate driver:** starter projection error, principally Matthews in `MIN@SF` - **Exact registered parameter:** `player.pitcher.v4 form weights` - **Change:** increase the form-weight contribution by a small bounded amount, for example `+0.05` relative to its current registered weight, shadow only - **Expected metrics:** reduce starter ER MAE and starter outs MAE; possibly improve team-run MAE - **Helps:** `MIN@SF` and `WAS@DET`, where starters were materially worse than projected - **Potentially hurts:** `TOR@BAL`, where both starters were better than projected and the result was a toss-up - **Important limitation:** the cross-slate starter-ERA finding remains on hold: - 7 of 12 slates share the sign - mean error `0.754` - z-score `1.26` - **Rollback:** revert if starter ER MAE or total-run MAE deteriorates across the shadow window This is a bounded experiment, not a conclusion that all starter projections are systematically wrong. ## Parameter abstentions - Abstain from changing `recent.* / season.* run-mean weighting` today: - Current slate tension is mixed, 2 helps versus 1 hurt. - Cross-slate lineup-run bias is not persistent. - Abstain from tuning score-margin compression directly via `score.variance_floor` or `score.variance_multiplier` until the simulation and run-model diagnostics are repaired. The slate supports wider tails, but the persistent run-model signal failure means a variance change could mask rather than solve the underlying problem. - Abstain from high-raw-cluster tuning because the cluster is absent this slate and has zero consecutive-slate persistence. --- # 9. Bottom line ## Known - The slate went 1–2 on winners and 33.3% overall. - `WAS@DET` was a **correct-winner/wrong-score** game, not a good exact prediction. - `MIN@SF` was the clearest substantive miss: a moderate-confidence Minnesota pick was undermined by a badly under-projected Zebby Matthews start, an underperforming Minnesota lineup, and compressed score tails. - `TOR@BAL` was a genuine toss-up, not a strong-model failure. - Winner instability occurred at `historical_ml → variance_applied` and has persisted four slates. - Simulation inertness has persisted 11 slates. - Weak run-model signal has persisted 11 slates. - Calibration instability has persisted three slates and is now actionable through a bounded shadow test. - `WAS@DET` has a critical unexplained published-probability transformation. - The saved Detroit artifact has two structural errors. - The slate is correctly quarantined from parameter learning. ## Uncertain - Whether the starter venue/form weighting should be changed broadly; the current slate supports a shadow test, but the 12-slate persistence evidence is not statistically decisive. - Whether wider score variance will improve calibration without worsening team-run MAE. - Whether the Detroit probability delta resulted from a governor bypass, score-coherence transformation, recency control, or a publication bug; the supplied lineage does not identify the transformation. - Whether individual player deviations represent learnable signal; only 7 of 22 material deviations were supported by season contact quality. ## Single safest next action **Do not promote or learn from this slate. First repair and trace the artifact and probability contracts: preserve pre/post winner picks, reconcile the `WAS@DET` published probability transformation, and correct the River Ryan workload artifact.** Then run the calibration-cap and simulation fixes in shadow mode with rollback monitors before changing production parameters.