Luna deep analysis — slate 20261008

Coverage receipt: COMPLETE · 9/8 sections; 1/1 games; 5/5 causes; 7/7 sources

1. Evidence receipt and gaps

All seven source_manifest entries are present and marked loaded:

SourceBytesPurpose
prediction review — /app/output/reports/prediction_review_20261008.json17,218Official outcomes and scoring errors
forensic deep audit — /app/output/reports/PREDICTION_SYSTEM_DEEP_AUDIT_20261008.json45,923Probability, provenance, starter and decision contracts
continuous learning — /app/output/learning/continuous_learning_daily_20261008.json245,469Pipeline stages, calibration, probability lineage, score distribution and starter comparisons
detailed report — /app/output/reports/detailed_20261008.html58,372Game and simulation rendering
ultra detailed player audit — /app/output/reports/20261008_ultra_detailed_player_audit.html3,404,020Player-level prediction trace
structural audit — /app/output/reports/audit_report_20261008.html244,042Invariant findings
integrity revision audit — /app/output/reports/audit_report_20261008_integrity_revision.html126,889Structural audit of post-start revisions

Game-level review: one game is supplied in games[]: CLE@CHW. Its official result is CLE 9, CHW 5. The game record says games_reviewed: 1, hits: 1, misses: 0; the continuous-learning summary says one settled game, also one hit and zero misses. Thus the available game-level result is internally consistent.

Coverage-count contradiction: the same evidence reports expected_games: 1, but canonical_artifacts_loaded: 2, continuous_learning_games: 2, forensic_deep_audit_games: 2, structural_audits_completed: 2, and forensic_deep_audit_games: 2. The causal register describes this as “2/1 games structurally audited.” These counts do not reconcile to the single supplied game record. The pipeline transitions also name TB@NYY, which is absent from games[] and has no supplied score, probability, or game-level audit here. I report that transition as evidence of a coverage/provenance gap, not as a second game that can be independently evaluated.

There are no listed starter comparisons for a second game, and the only player-level trace supplied is for CLE@CHW. I do not infer any missing TB@NYY results or player outcomes.

2. Executive diagnosis

Winner accuracy

Calibration quality

Score accuracy

Starter accuracy

Artifact integrity

Causal issue register — every entry reconciled

  1. score_margin_compression — high, score distribution, CLE@CHW. Evidence: 1/1 predicted margins ≤2; 1/1 actual margins ≥4; mean predicted margin 1.00 versus actual 4.00. Action: check tail coverage and margin MAE across recent out-of-sample slates before widening. Guardrail: a single blowout does not justify widening every score prediction.
  2. single_slate_calibration_instability — high, calibration, CLE@CHW. Evidence: weighted absolute calibration error 0.4950 across one game. Action: watch confidence buckets over the rolling window before changing calibration weight. Guardrail: one slate is far too small to establish a stable calibration curve.
  3. weak_run_model_signal — high, model validation, CLE@CHW. Evidence: home/away/total run-model R² = 0.0021/0.0309/0.0024. Action: treat exact runs as low-confidence; investigate features/target rather than tuning score tails. Guardrail: small positive R² only means beating a mean-only reference; it does not make exact scores reliable.
  4. complete_slate_audit_coverage — info, coverage, CLE@CHW. Evidence says “2/1 games structurally audited.” Action: retain a per-game audit receipt in each report. Guardrail: full audit coverage does not cancel game-level findings. The stated coverage count is internally inconsistent with the one supplied game record and must not be taken as proof that the unprovided game was reviewed here.
  5. simulation_inert_on_slate — info, simulation, CLE@CHW. Evidence: 0 flip candidates and 0 published flips. Action: measure simulation contribution across rolling slates, separating score realization from winner flipping. Guardrail: zero winner flips is not itself a defect and does not mean no score-reconciliation work occurred. The cross-slate evidence separately escalates the recurring simulation issue, discussed below.

3. Every game

CLE@CHW — winner hit, score miss

Prediction and result

Errors

Starter comparison

Pregame edges, confidence and controls

Score path

Important player-level evidence

Audit and cause

4. Miss reconstruction

Game losses: none in the supplied game list. Thus there is no losing pick for which to assign a wrong-winner cause. CLE@CHW is a winner hit and a score miss, not a winner loss. The unexplained TB@NYY transition cannot be reconstructed as a game result from this evidence.

For the score miss in CLE@CHW, the earliest relevant evidence and distinctions are:

Pipeline-stage quality and transitions

All listed stages have one game of measurement; interpret the metrics as one-game observations.

StageWinner hits / accuracyMargin MAETeam-run MAETotal-run MAE
historical_ml0 / 0.05.4292.71455.1472
variance_applied0 / 0.05.0002.5005.000
enhanced_prediction1 / 1.03.0002.5005.000
kpi_layer1 / 1.03.0002.5005.000
embedded_savant_run_environment1 / 1.03.0002.5005.000
fundamental_edge_target_review1 / 1.03.0002.5005.000
capped_target1 / 1.03.0002.5005.000
simulation_result1 / 1.03.0002.5005.000
published_final1 / 1.03.0002.5005.000

5. Cross-game counterfactuals

The supplied lever_tension contains three entries; with only one game, its listed benefits and costs are limited to that game.

  1. score.variance_multiplier / score.variance_floor — widen run distributions
  2. Helps: none listed.
  3. Hurts: none listed.
  4. Net listed evidence: 0 helped, 0 hurt. The target field lists Brier score and calibration error, although the causal margin-compression finding is about score-distribution tails.
  5. Decision: no production-wide widening is supported by this one result. The actual margin exceeded the predicted margin, but the register explicitly cautions against widening every score after one blowout. A bounded shadow test can be considered because margin compression recurs in the cross-slate streaks.
  1. player.pitcher.v4 form weights / player.pitcher_prior_games
  2. Helps: none.
  3. Hurts: CLE@CHW—listed as a hit where the starter projection was “accurate (ER off 1),” so reweighting could disturb it.
  4. Net: 0 helped versus 1 hurt.
  5. Decision: do not change pitcher weights on this slate. The projection was not wholly accurate: ERA and outs differ materially, and Smith’s per-player line is missing. That limits the strength of the “accurate” characterization, but still gives no evidence for a broad pitcher-weight change.
  1. recent.* / season.* run-mean weighting
  2. Helps: CLE@CHW, whose team runs were off by 5.
  3. Hurts: none listed.
  4. Net: 1 helped, 0 hurt.
  5. Decision: this is a plausible diagnostic lead, not a validated adjustment. The supplied lever name is a wildcard rather than an exact parameter, and the present slate is one game. Do not pick an arbitrary underlying parameter value.

Tempting one-game fixes to avoid: widening every score after the 9–5 result; changing pitcher-form weights based on this single starter comparison; fitting individual hitter weights to the deviations of Lowe or Bazzana without supporting cross-slate evidence; and treating the 0.505 winner probability as proof that confidence should be lowered or raised. Each would overfit sparse evidence or conflict with the supplied lever-tension/guardrail evidence.

6. Data and contract defects

Findings by reported audit severity

Coverage reconciliation

The matrix says the expected game count is 1 while several loaded/audited counts are 2. The supplied game array and games_reviewed are both 1. The “2/1” causal-issue evidence therefore cannot be reconciled from this payload. The extra TB@NYY pipeline transition reinforces, but does not resolve, the discrepancy. Do not call coverage clean solely because all_games_structurally_audited is true.

Probability-lineage audit for the pick side

The published side was away/CLE at 0.505.

  1. Raw model: model_trace reports raw pick probability 0.526027. probability_lineage instead reports raw model pick probability 0.500. These values conflict; the payload does not explain whether they have different definitions.
  2. Calibrated: probability lineage reports calibrated pick probability 0.505, calibration sample size 571, empirical hit rate 0.5499.
  3. Governor: lineage reports governor input 0.526027 and output 0.505. The model trace also says governor applied and governed pick probability 0.505.
  4. Score coherence: reported as 0.505.
  5. Recency: guardrail applied, but discount factor is null. No numerical recency transformation can be verified or inferred.
  6. Published: pick probability 0.505, equal to calibrated, governed and score-coherence values; published_minus_calibrated is 0 and the lineage marks the published probability transformation as matching the calibrated/governed value.

The lineage does not label an unexplained material delta between calibrated/governed probability and published probability. However, the 0.500 versus 0.526027 raw-value conflict is unresolved, and the displayed raw-to-governor-input path has no explicit transformation description in the lineage. This is an observability/contract gap; the JSON does not establish that the final published probability bypassed a recorded calibration or governor transformation.

A separate probability_reversions record reports trained home-win probability 0.653438, blended home probability 0.575938, a blend-stage side change to home, and a published away side at home-win probability 0.495; it says the blend side did not survive publication (overwritten: 1). That material event is recorded in the separate reversions block, but it is not represented as a step in the pick-side probability_lineage. Treat this as an incomplete cross-block trace, not proof of an unrecorded bypass.

Model/process defects versus presentation/artifact concerns

7. Cross-slate persistence

Required structural blocks

Finding streaks — every entry

Escalated findings — established failures, not single-slate noise

  1. Simulation inertness, 11 consecutive slates. Target lever listed: simulation.allow_score; target metrics: team-run MAE and total-run MAE; stated direction: confirm the simulation module is running rather than silently no-oping. This has a concrete code/diagnostic action, not a supported parameter adjustment. The self-assessment identifies a likely structural cause: the same draws are used both to search for a target-realizing play-by-play and estimate the win distribution; early exit can leave only about two selected draws. It recommends an independent, unsteered distribution batch that does not early-exit, feeding the resulting win rate to the distribution-agreement policy. This root-cause description is supplied as a self-assessment, not independently demonstrated by the game receipt.
  2. Calibration instability, 6 consecutive slates. Target levers: confidence.empirical_max_weight, confidence.base_cap, confidence.moderate_cap; metrics: Brier and calibration error; recommended direction: increase empirical shrinkage. Its persistence warrants a bounded shadow experiment. The current one-game bucket is underconfident, while the self-assessment proposes lower caps; this directional conflict argues for shadow comparison and monitoring rather than automatic application.
  3. Weak run-model signal, 6 consecutive slates. Target levers are listed as training.xgb.n_estimators, training.xgb.max_depth, and training.xgb.learning_rate, but param_actionable is false. Target metrics: team-run and total-run MAE. The stated action is to investigate features/target by isolated training backtest, not to force a nightly parameter change. Holdout R² is 0.002415 total, 0.002143 home, 0.030936 away.

Trend directions, stated explicitly

Top-confidence-pick loss streak

Cross-slate bias context

The separate 10-slate bias record does not establish an actionable starter or lineup-run bias:

These are not grounds for changing context.opponent_strength_weight or score.variance_floor on their own.

8. Adjustments for today

Recommendations below are bounded proposals or diagnostics; none is promoted or applied here. Persistent patterns receive priority over the one-game signal.

  1. Persistent calibration instability — shadow experiment.
  2. Parameter: confidence.empirical_max_weight.
  3. Direction/magnitude: increase by 0.02 absolute from its current registered value in a shadow arm only; do not change the base or moderate caps in this same experiment.
  4. Expected metrics: test for lower rolling weighted calibration error and Brier score. These are hypotheses to measure, not guaranteed improvements; the current one-game bucket is underconfident, so also check for deterioration on correctly calibrated low-confidence picks.
  5. Games helped/hurt: no specific game-level helps/hurts are recorded for this lever in lever_tension; none can be named from this slate. CLE@CHW was a 0.505-probability hit, so blindly reducing its confidence could hurt calibration for this one observation.
  6. Why this ranks highly: six consecutive slates and nine window incidences, with calibration-error regression in the trend summary. Keep it shadow-only because present-slate direction and self-assessment direction conflict.
  1. Persistent simulation inertness — code/diagnostic action, not a parameter move.
  2. Target named in the finding: simulation.allow_score; do not force a change to it, because the finding is explicitly param_actionable: false.
  3. Action: operator/code review of the simulation draw loop and _build_simulation_distribution; verify whether early exit and target-realization selection are contaminating the win-rate sample. Compare against an independent unsteered, non-early-exiting probability batch as proposed in the supplied self-assessment.
  4. Expected metrics: a non-vacuous simulation contribution, evaluated against team-run and total-run MAE and winner-direction intervention over subsequent slates. No game-level levers are identified in the tension list for this code path.
  5. Why this ranks highly: 11 consecutive slates. The next step is verification and measurement, not asserting that a winner flip should have happened.
  1. Persistent near-zero run-model signal — isolated feature/target backtest, not parameter tuning.
  2. Target list: training.xgb.n_estimators, training.xgb.max_depth, training.xgb.learning_rate; the finding marks this non-actionable by parameter.
  3. Action: follow the supplied operator recommendation: investigate the shared feature contract and run an isolated same-fingerprint training/backtest; consider source-labelled no-vig market prices when available, park/weather, bullpen rest/fatigue and platoon-adjusted lineup quality. Bump the model schema version if feature semantics change.
  4. Expected metrics: improved holdout run-model R² and out-of-sample team-run/total-run MAE, measured before any deployment. No specific lever_tension games map to training changes.
  5. Why this ranks highly: six consecutive slates plus the supplied holdout R² values. Nightly variance tuning cannot repair missing predictive signal.
  1. Strongest single-slate driver: compressed margin and under-projected run total — bounded shadow only.
  2. Parameter: score.variance_multiplier (a named target of score_margin_compression; do not simultaneously alter score.variance_floor).
  3. Direction/magnitude: test a +0.05 absolute change from the current registered multiplier in a shadow arm only.
  4. Expected metrics: improve rolling margin tail coverage and margin MAE; monitor team-run and total-run MAE for regression. One game cannot establish the expected direction or size of a real improvement.
  5. Games helped/hurt: current lever_tension lists no helped or hurt games for score variance. The only directly relevant game is CLE@CHW, where predicted margin 1 and actual margin 4 favor a wider tail; the causal register explicitly warns not to widen every score from one blowout. No other game is supplied to assess collateral effects.
  6. Why lower-ranked: the single-slate compression observation is real, and margin bias is trending regressing, but the single game is too weak for a production change. Use a shadow comparison with a rollback monitor; do not promote on this result.

No production change to pitcher weights or a wildcard recent.* / season.* parameter is recommended: the supplied tension gives no net cross-game evidence, and the latter does not name an exact parameter. The self-assessment’s general “lower caps and widen run variance” recommendation is not taken as a direct production instruction because it conflicts with the current observed calibration direction and the one-game score guardrail.

9. Bottom line

Known: CLE@CHW was a correct-winner, wrong-score prediction. The away win probability was 0.505; the pick hit, but CLE was under-projected by four runs and the total by five. Exact run models have near-zero reported holdout R². The game artifact passed its supplied structural checks, while the starter-feed line for Hagen Smith is missing.

Uncertain or defective: only one supplied game can be fully reviewed despite multiple reported coverage counts and a TB@NYY transition. Raw pick probability is reported as both 0.500 and 0.526027. Calibration’s current single observation is underconfident, despite a persistent calibration-instability finding and a conflicting self-assessment recommendation. The magnitude and causes of the score miss cannot be cleanly separated among run-model signal, offense, starter usage and variance from this game alone.

Safest next action: have the operator verify the simulation’s early-exit/draw-distribution path and measure an independent, unsteered win-probability distribution in shadow. This addresses the longest persistent failure without forcing a parameter move or claiming that the single game proves a particular score or winner adjustment.