# Luna deep analysis — slate 20260928 > Coverage receipt: **COMPLETE** · 9/8 sections; 0/0 games; 2/2 causes; 3/3 sources ## 1. Evidence receipt and gaps ### Source manifest All eight manifest entries were reviewed as untrusted evidence metadata: | Source | Status | Evidence | |---|---|---| | Prediction review | Loaded | 4,003 bytes; intended to contain official outcomes and scoring errors | | Forensic deep audit | Loaded | 15,888 bytes; intended to contain probability, provenance, starter, and decision contracts | | Continuous learning | Loaded | 6,809 bytes; intended to contain stage quality, calibration, lineage, score distribution, and starter comparisons | | Detailed report | Missing | `/app/output/reports/detailed_20260928.html` | | Ultra-detailed player audit | Missing | `/app/output/reports/20260928_ultra_detailed_player_audit.html` | | Structural audit | Missing | `/app/output/reports/audit_report_20260928.html` | | Integrity revision audit | Missing | `/app/output/reports/audit_report_20260928_integrity_revision.html` | ### Game and slate coverage No games were supplied: - `date`: blank - `games_reviewed`: `0` - `hits`: `0` - `misses`: `0` - `continuous_learning_evidence.summary.games`: `0` - `settled`: `0` - `coverage_matrix.expected_games`: `0` - `canonical_artifacts_loaded`: `0` - `structural_audits_completed`: `0` - `forensic_deep_audit_games`: `0` - `continuous_learning_games`: `0` - `games_with_starter_comparisons`: `0` - `all_games_structurally_audited`: `false` Thus, there is no game-level evidence from which to calculate winner accuracy, Brier score, run error, starter error, or score-path accuracy. ### Internal contradictions and gaps 1. **The slate is marked learning-eligible despite no game artifacts.** `learning_eligibility.eligible` is `true` with the reason that all artifacts passed structural gates, but the coverage matrix says zero canonical artifacts were loaded and zero games were audited. This is a contract inconsistency. 2. **The slate is effectively empty but carries a normal-looking diagnosis.** `self_assessment.headline` is `"nominal"`, while `needs_operator_action` is `true`, `operator_action_count` is `1`, and the causal register contains a critical coverage failure. “Nominal” should not be used for an unevaluated slate. 3. **The manifest is incomplete for the required forensic scope.** Four reports are missing, including the structural and integrity-revision audits. The available JSON explicitly says that player-level forensics, matchup breakdowns, probability reversions, and game artifacts are unavailable. 4. **The cross-slate window contains a blank date.** `window_dates` includes `""`, and the final `per_slate` top-pick record also has an empty date with result `"unknown"`. This should be treated as a data-quality defect in the trend window. 5. **Current-slate learning metrics are absent.** Calibration has zero settled games; pipeline stages and transitions are empty; margin distribution is empty; high-raw-cluster count is zero; probability lineage is empty. These zeros mean “not measured,” not “no problem.” --- ## 2. Executive diagnosis ### Winner accuracy No current-slate winner accuracy is measurable: - Current games: `0` - Hits: `0` - Misses: `0` - Accuracy: `null` The cross-slate metric is reported as directionally improving, with mean winner accuracy `0.5729`, and the series includes values from `0.3333` to `0.7333`. That is historical context only; it does not validate this empty slate. ### Calibration quality No current-slate calibration assessment is possible: - Settled games: `0` - Calibration buckets: `[]` - Weighted absolute calibration error: `null` - High-conviction games: `0` - High-conviction miss rate: `null` - Market cross-check: unavailable; zero games checked The cross-slate weighted calibration error is listed as `0.1846` and marked “improving,” but no current-slate probabilities exist. A correct or unavailable winner result cannot be treated as calibrated. ### Score accuracy No score or run accuracy is measurable: - Team-run and total-run errors: unavailable - `margin_distribution`: zero rows - `predicted_margins`: empty - `actual_margins`: empty - `pipeline_stage_quality.status`: `"not_measurable"` - Largest team-run regression versus base: `null` The historical `margin_bias` is marked improving, with mean `-1.7282`, but it remains a cross-slate trend rather than current-slate evidence. ### Starter accuracy No starter comparisons were supplied: - Starter comparison games: `0` - Starter error metrics: unavailable - `slate_player_metrics.available`: `false` - No player-level forensic report was loaded The cross-slate starter ERA-error finding has mean `0.441`, with the same sign on 7 of 12 slates, but it is explicitly marked nonpersistent and held. No parameter change is justified from this slate. ### Artifact and contract integrity Artifact integrity is **not clean** despite `structural_audit_summary` showing zero critical, error, info, and warning findings. That summary reflects no completed structural audit, not a successful audit. The strongest integrity findings are: - **Critical:** `incomplete_slate_audit_coverage` — evidence says `0/0 games structurally audited`; action is to run per-game QA before calling the slate clean. - **Info:** `simulation_inert_on_slate` — zero flip candidates and zero published flips; this is not itself a winner defect, but it is persistent across 11 slates and requires diagnostic action. - **Contract contradiction:** learning is eligible despite zero loaded canonical artifacts and zero audited games. ### Causal issue register reconciliation #### `incomplete_slate_audit_coverage` - **Severity:** Critical - **Domain:** Coverage - **Evidence:** `0/0 games structurally audited` - **Affected games:** none listed because no games were supplied - **Recommended action:** Do not call the slate clean; run per-game QA on every canonical artifact first. - **Do-not-infer guardrail:** A clean subset cannot certify games that were never audited. This is a genuine evidence/contract failure. Critical is appropriate because the system cannot establish what was predicted or whether the artifacts are internally consistent. #### `simulation_inert_on_slate` - **Severity:** Info in the current causal register - **Domain:** Simulation - **Evidence:** zero flip candidates and zero published flips - **Affected games:** none - **Recommended action:** Measure simulation contribution across rolling slates, separating score realization from winner flipping. - **Do-not-infer guardrail:** Zero winner flips is not itself a defect and does not prove the simulation performed no score-reconciliation work. Its current-register severity is only informational, but the cross-slate section escalates it to an established 11-slate pattern requiring operator action. --- ## 3. Every game There are no game records to review. Therefore, there are no hits, misses, or correct-winner/wrong-score cases. The requested game-level fields are all unavailable: - Predicted score and winner: unavailable - Actual score and winner: unavailable - Published probability: unavailable - System confidence edge: unavailable - Conviction bucket: unavailable - Brier score: unavailable - Team-run error: unavailable - Total-run error: unavailable - Projected versus actual starter lines: unavailable - Season, recent, pitcher, and composite edges: unavailable - Confidence and recency controls: unavailable - Score path: unavailable - Player-level adjustments: unavailable - Audit findings: unavailable at game level - Primary and secondary causes: unavailable Accordingly, no game should be labeled a hit, miss, correct-winner/wrong-score result, starter failure, offense failure, bullpen failure, or irreducible-variance event. --- ## 4. Miss reconstruction ### Current-slate losses There are no current-slate losses to reconstruct: - `misses`: `0` - `loss_primary_drivers`: `{}` - `mean_team_run_error_on_losses`: `null` - `mean_total_run_bias_on_losses`: `null` - `games`: `[]` It would be invalid to attribute any loss to bad inputs, weighting, calibration, starter error, offense, bullpen, run environment, or variance. The explicit guardrail concerning a `0.12` home-away confidence edge is also relevant: if such an edge had appeared in a game artifact, it would be moderate—not a near coin flip. No such current-game edge was provided here. ### Earliest wrong-direction stage No earliest wrong-direction stage can be identified because: - `pipeline_stage_quality.stages`: `[]` - `pipeline_stage_quality.transitions`: `[]` - No game-level probability lineage exists - No probability reversions are available - No loss records exist A later recovery cannot erase an intermediate winner-direction regression, but there is no evidence here that any transition occurred. ### Pipeline-stage audit across all stages and transitions The audit result is: - Pipeline status: `"not_measurable"` - Stored stages: none - Transitions: none - Largest team-run regression versus base: `null` Therefore: - No stage can be credited with improvement. - No stage can be blamed for regression. - No transition can be called stable, unstable, corrective, or winner-direction regressive. - No “recovery” can be inferred. The empty stage table is a measurement failure, not proof that the pipeline behaved correctly. --- ## 5. Cross-game counterfactuals All three `lever_tension` entries have zero observed affected games. ### Run-distribution widening - **Lever:** `score.variance_multiplier / score.variance_floor` - **Targets:** Brier score, calibration error - **Helps:** none observed - **Hurts:** none observed - **Net note:** `0 helped vs 0 hurt` - **Conclusion:** No current-slate evidence supports changing this lever. Cross-slate evidence does show a historical `score_margin_compression` finding twice in an 11-slate window, but it is not present on this slate and is not escalated. A bounded shadow test may be reasonable only after restoring measurement, not as a production move based on this empty slate. ### Pitcher form and prior-game weighting - **Lever:** `player.pitcher.v4 form weights / player.pitcher_prior_games` - **Targets:** starter ERA MAE, starter outs MAE - **Helps:** none observed - **Hurts:** none observed - **Conclusion:** No change is supported. The cross-slate starter ERA signal is explicitly held because it is not separable from noise: mean `0.441`, z-score `0.69`, same sign on `7/12` slates. ### Recent versus season run-mean weighting - **Lever:** `recent.* / season.* run-mean weighting` - **Targets:** team-run MAE, total-run MAE, accuracy - **Helps:** none observed - **Hurts:** none observed - **Conclusion:** No change is supported. Cross-slate lineup run delta is negative on `8/12` slates, with mean `-0.245` and z-score `-1.46`, but the register marks it nonpersistent and recommends holding. It should not be converted into a one-game production adjustment. ### Tempting one-game fixes that must not be made Do not: 1. Lower confidence caps based on an empty current slate. 2. Widen score variance based on the historical margin-compression finding alone. 3. Change pitcher-form weights without starter-level evidence. 4. Change recent/season run weighting based on the historical negative lineup delta. 5. Treat zero simulation winner flips as evidence that simulation should force winner changes. 6. Mark the slate clean because structural-audit counts are zero. 7. Treat the blank current date as a valid completed daily observation. --- ## 6. Data and contract defects ### Audit findings by severity #### Critical 1. **Incomplete slate audit coverage** - ID: `incomplete_slate_audit_coverage` - Evidence: `0/0 games structurally audited` - Meaning: no game-level QA occurred. - Required action: restore canonical artifacts and run per-game structural QA. #### Error No findings are reported in `structural_audit_summary`, but this is not evidence that no errors exist. The structural audit report itself is missing, and zero artifacts were loaded. #### Warning No warnings are reported in the summary. Again, the absence is not probative because the audit was not executed over any current-game artifacts. #### Info 1. **Simulation produced no winner-direction intervention** - ID: `simulation_inert_on_slate` - Evidence: zero flip candidates and zero published flips. - Current interpretation: not a winner defect by itself. - Cross-slate interpretation: established 11-slate diagnostic/code pattern. ### Prediction-model defects versus presentation/artifact defects #### Prediction-model or pipeline risks - The simulation module may be effectively inert because its draw distribution is built from target-realization draws and the loop can exit early. - The self-assessment identifies the suspected implementation problem: - The same draws are used to search for a play-by-play realizing the model target. - The loop exits early, with default draw count approximately 2. - `away_win_rate` over approximately two selected draws is not a valid probability. - This makes the flip/agreement signal vacuous. - This is a code/diagnostic issue, not a justified parameter-tuning issue. #### Presentation and artifact defects - Missing detailed, player, structural, and integrity-revision reports. - Empty slate date. - Learning eligibility inconsistent with zero loaded artifacts. - “Nominal” headline inconsistent with critical coverage failure and required operator action. - Zero audit counts presented alongside an apparently completed diagnosis. ### Probability-lineage audit The required lineage is: `raw model → calibrated → governor → score coherence/recency → published` The supplied `probability_lineage` is empty. Therefore: - Raw model probabilities: not supplied - Calibrated probabilities: not supplied - Governor outputs: not supplied - Score-coherence/recency outputs: not supplied - Published probabilities: not supplied - Transformation deltas: not supplied A material bypass cannot be called because there is no lineage to compare. The correct finding is **lineage unavailable**, not “bypass confirmed.” ### Coverage matrix reconciliation The coverage matrix is not slate-clean: - Expected games: `0` - Audited games: `0` - Canonical artifacts: `0` - All games structurally audited: `false` - Starter comparisons: `0` The combination of zero expected games and a blank date appears to represent a missing or uninstantiated slate, not a completed slate with zero defects. The eligibility flag should be blocked until that distinction is resolved. --- ## 7. Cross-slate persistence ### Raw structural blocks #### Margin distribution - Actual margins ≥ 4: `0` - Predicted margins ≤ 2: `0` - Rows: `[]` No current-slate margin evidence exists. #### Pipeline stage quality - Status: `not_measurable` - Stages: empty - Transitions: empty - Largest regression: `null` No cross-stage current-slate conclusion is possible. #### Calibration monitoring - Settled games: `0` - Buckets: empty - Weighted absolute calibration error: `null` No current-slate calibration conclusion is possible. #### High-raw-probability cluster - Games: `0` - Hits: `0` - Rows: `[]` - Threshold: `0.65` No current-slate high-confidence cluster exists in the supplied evidence. #### Simulation control - Observed games: `0` - Flip candidates: `0` - Published flips: `0` - Priority: `P2` - Status: `diagnostic_only_without_independent_support` This current-slate non-observation is reinforced by the persistent cross-slate finding below. ### Finding streaks | Finding | Consecutive-slate count | Present now? | Interpretation | |---|---:|---:|---| | `high_raw_probability_cluster` | 0 | No | Occurred on 2 of 11 window slates; not currently present | | `pipeline_winner_instability` | 0 | No | Occurred on 6 of 11; not currently present | | `score_margin_compression` | 0 | No | Occurred on 2 of 11; not currently present | | `simulation_inert_on_slate` | 11 | Yes | Established persistent failure pattern | | `single_slate_calibration_instability` | 0 | No | Occurred on 6 of 11; not currently present | | `weak_run_model_signal` | 0 | No | Occurred on 10 of 11; not currently present as a streak | The `simulation_inert_on_slate` finding is escalated and must not be treated as single-slate noise. ### Escalated finding #### Simulation inertness - **Streak:** 11 consecutive slates - **Finding:** `simulation_inert_on_slate` - **Target lever listed:** `simulation.allow_score` - **Parameter actionable:** false - **Metric group:** run model - **Metrics at risk:** team-run MAE and total-run MAE - **Fix direction:** confirm the simulation module is running and not silently no-oping - **Important guardrail:** do not force a parameter move; the registered issue requires code/diagnostic work. The self-assessment gives the proposed implementation direction: - Separate target-realization search from independent win-probability estimation. - Use an independent, unsteered batch of roughly 200–500 draws or a closed-form Poisson/Skellam difference. - Do not early-exit the probability batch. - Register the batch size. - Feed the independent win rate into `_distribution_agreement`. - Investigate `routers/team_router.py`, including `_build_simulation_distribution`, the draw-loop early exits, and the simulation constants. ### Metric-trend directions The supplied trend directions are: - **Margin bias:** improving; mean `-1.7282` - **Mean team-run error on losses:** improving; mean `5.2972` - **Weighted calibration error:** improving; mean `0.1846` - **Winner accuracy:** improving; mean `0.5729` These “improving” labels do not overcome the fact that the current slate has no settled games and no measurable current-slate metrics. ### Top-confidence-pick loss streak - Reported loss streak: `0` - Sequence in the provided window: hit, miss, hit, miss, miss, hit, hit, hit, miss, hit, unknown - The blank-date `"unknown"` record is not a valid settled observation. Therefore, the top-confidence pick does not show a current persistent loss streak in the supplied data. Its historical sequence includes misses but does not establish a consecutive loss streak. --- ## 8. Adjustments for today Recommendations are ranked by evidence strength and constrained to registered levers. ### 1. Persistent pattern: repair and instrument simulation before tuning it - **Evidence strength:** Highest; 11 consecutive slates - **Registered target:** `simulation.allow_score` - **Parameter direction:** No production parameter move; this lever is explicitly non-actionable - **Concrete action:** Code/diagnostic repair in the simulation path: - verify the module executes, - separate independent probability sampling from target-realization search, - prevent early exit from the probability batch, - register batch size, - log candidate count, actual draw count, and resulting win-rate distribution. - **Expected metric effect:** Lower team-run MAE and total-run MAE if simulation currently suppresses useful score variation; improved reliability of winner-probability agreement diagnostics. - **Lever-tension games helped:** none identifiable because there are no current games. - **Games potentially hurt:** none identifiable. - **Regression risk:** A code change could alter score distributions or compute cost; require a shadow gate and rollback monitoring. - **Do not do:** Merely set `simulation.allow_score` or force simulation flips without proving the module is operating. ### 2. Strongest current-slate driver: restore evidence coverage There is no valid game-level model driver because the slate contains zero games. The strongest current operational driver is therefore the coverage/contract failure. - **Registered parameter:** none; this is a coverage and artifact-integrity action. - **Concrete action:** block learning eligibility and “nominal” status until canonical game artifacts are loaded and every expected game has: - prediction, - actual outcome, - probability lineage, - starter comparison where applicable, - structural QA result. - **Expected metric effect:** No direct predictive metric change; it should make accuracy, calibration, run error, and starter metrics measurable and prevent contaminated updates. - **Lever-tension games helped:** all future games by improving auditability. - **Games potentially hurt:** none expected, although processing may defer publication. - **Regression risk:** operational latency, but preferable to learning from absent or contradictory evidence. ### 3. Do not tune held cross-slate parameters today No bounded production adjustment is justified for: - `context.opponent_strength_weight` - `score.variance_floor` - `score.variance_multiplier` - pitcher form weights - pitcher prior-game count - recent/season run-mean weights - confidence caps The relevant findings are either nonpersistent, absent on the current slate, or unmeasurable due to missing games. A shadow experiment can be planned after artifact coverage is restored, but no live move is supported today. --- ## 9. Bottom line ### Known - The supplied slate has no game artifacts and no settled games. - Four expected reports are missing. - No current winner, calibration, score, starter, player, or probability-lineage metric can be measured. - The current coverage state contradicts the `learning_eligibility.eligible: true` flag. - Simulation inertness is an established 11-slate pattern, not single-slate noise. - The required response to that pattern is a code/diagnostic investigation, not a forced parameter change. - Historical trend labels for margin bias, loss run error, calibration error, and winner accuracy are all marked improving, but they do not validate this empty slate. - No top-confidence-pick loss streak is present; the supplied sequence contains an invalid blank-date unknown record. ### Uncertain - Whether the slate was genuinely empty or whether game artifacts failed to load. - Whether simulation performed any score work before early exit. - Whether published probabilities underwent the required calibration, governor, score-coherence, and recency transformations. - Whether any individual prediction was correct or incorrect. - Whether any model lever helped or hurt a game on this date. ### Single safest next action **Restore and validate the canonical per-game artifact set, then block learning and “nominal” reporting until every expected game passes structural QA and probability-lineage checks.** In parallel, open the operator-level simulation diagnostic for the persistent 11-slate inertness finding, but do not promote a parameter change without an independently sampled, measurable simulation output.