# Luna deep analysis — slate 20261002

> Coverage receipt: **COMPLETE** · 9/8 sections; 0/0 games; 2/2 causes; 3/3 sources

# 1. Evidence receipt and gaps

## Source manifest

All manifest entries were checked against the supplied JSON:

| Source | Status | Purpose | Assessment |
|---|---:|---|---|
| `/app/output/reports/prediction_review_20261002.json` | Loaded, 4,003 bytes | Official outcomes and scoring errors | Present in manifest, but no game records were propagated into this diagnosis |
| `/app/output/reports/PREDICTION_SYSTEM_DEEP_AUDIT_20261002.json` | Loaded, 15,888 bytes | Probability, provenance, starter, and decision contracts | Present in manifest, but no per-game audit rows are present here |
| `/app/output/learning/continuous_learning_daily_20261002.json` | Loaded, 6,809 bytes | Pipeline-stage quality, calibration, probability lineage, score distribution, and starter comparisons | Present, but all current-slate game-dependent structures are empty |
| `/app/output/reports/detailed_20261002.html` | Missing | Full game and simulation rendering | Gap |
| `/app/output/reports/20261002_ultra_detailed_player_audit.html` | Missing | Player-level prediction trace | Gap |
| `/app/output/reports/audit_report_20261002.html` | Missing | All invariant findings | Gap |
| `/app/output/reports/audit_report_20261002_integrity_revision.html` | Missing | Post-remediation immutable revision proof | Gap |

## Games reviewed

- `date` is empty.
- `games` is an empty array.
- `games_reviewed: 0`.
- `hits: 0`, `misses: 0`.
- `continuous_learning_evidence.summary`: `settled: 0`, `games: 0`, `hits: 0`, `misses: 0`.
- `coverage_matrix`: `expected_games: 0`, `canonical_artifacts_loaded: 0`, `forensic_deep_audit_games: 0`, `structural_audits_completed: 0`, `games_with_starter_comparisons: 0`, `continuous_learning_games: 0`.
- Therefore, no individual game can be confirmed as reviewed, settled, a hit, or a miss.

## Material gaps and contradictions

1. **The slate is not auditable despite the learning eligibility flag.**  
   `learning_eligibility.eligible` is `true` with the reason `"all game artifacts passed critical/error structural gates"`, but the causal register states `"0/0 games structurally audited"` and explicitly identifies `incomplete_slate_audit_coverage` as critical.

2. **The audit summary understates the registered critical issue.**  
   `structural_audit_summary.critical` is `0`, while `causal_issue_register` contains a critical issue: `incomplete_slate_audit_coverage`. This is an internal reporting inconsistency.

3. **The expected slate size is zero, but the report is framed as a daily slate diagnosis.**  
   This may reflect a missing or malformed date/game payload, but the evidence does not establish which.

4. **No probability lineage was supplied.**  
   `probability_lineage: []`; `probability_reversions.available: false` because no game artifacts were supplied.

5. **No pipeline stages or transitions were supplied.**  
   `pipeline_stage_quality.stages: []` and `transitions: []`, with status `not_measurable`.

6. **No current-slate calibration or score metrics are measurable.**  
   Calibration buckets are empty; settled games are zero; weighted absolute calibration error is null.

7. **No player or matchup evidence is available.**  
   `slate_player_metrics.available: false`; matchup patterns are unavailable because no game carried a matchup breakdown.

8. **Missing HTML artifacts prevent independent presentation and revision checks.**  
   The detailed, player audit, structural audit, and integrity-revision reports are all missing.

---

# 2. Executive diagnosis

## Winner accuracy

Current-slate winner accuracy is **unknown**, not zero and not perfect:

- The JSON reports `winner_accuracy: null`.
- `summary.accuracy: null`.
- No games were settled or reviewed.

The historical cross-slate series reports a mean winner accuracy of `0.6828` and an improving direction, but that is not evidence of current-slate accuracy.

## Calibration quality

Current-slate calibration is **not measurable**:

- `calibration_monitoring.buckets: []`.
- `settled_games: 0`.
- `weighted_absolute_calibration_error: null`.
- No published probabilities are attached to games.

The cross-slate metric is nevertheless marked **regressing**, with mean weighted calibration error `0.2276`; the series includes `0.4792` and `0.4832`. That is a historical trend, not a current-slate result.

## Score accuracy

Current-slate score accuracy is **not measurable**:

- No actual scores, predicted scores, team-run errors, total-run errors, or run margins are present.
- `margin_distribution` contains zero rows.
- `pipeline_stage_quality` is `not_measurable`.

The cross-slate `margin_bias` trend is marked **regressing**, with mean `-2.2683`. This indicates a persistent historical margin-direction concern, but no current game can be assigned that error.

## Starter accuracy

Starter accuracy is **not measurable**:

- No starter comparisons are present.
- `games_with_starter_comparisons: 0`.
- No projected or actual starter lines are supplied.
- The cross-slate `starter_era_error` finding is explicitly held: mean `-0.142`, same-sign share `6/11`, z-score `-0.42`, and `persistent: false`.

## Artifact integrity

Artifact integrity is the most serious current issue.

The causal register contains:

### Critical: `incomplete_slate_audit_coverage`

- **Evidence:** `"0/0 games structurally audited"`.
- **Affected games:** none listed, because no canonical games were loaded.
- **Severity:** critical.
- **Action:** do not call the slate clean; perform per-game QA on every canonical artifact first.
- **Do-not-infer guardrail:** a clean subset—or, here, an empty subset—cannot certify games that were never audited.

This is a critical evidence/contract failure, not a model-quality finding.

### Informational: `simulation_inert_on_slate`

- **Evidence:** `flip candidates 0; published flips 0`.
- **Affected games:** none.
- **Severity:** info.
- **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 that no score-reconciliation work occurred.

However, cross-slate evidence escalates this issue to an established operational pattern; see Sections 7 and 8.

## Overall diagnosis

The current slate cannot support a winner, calibration, score, starter, or player-level diagnosis. The primary known failure is **missing or unpropagated evidence coverage**, not demonstrated predictive failure on particular games. Separately, the simulation-inert behavior is an established cross-slate code/diagnostic concern.

A correct winner, if one had been reported, would not by itself establish a good prediction. No such current-slate winner result exists here.

---

# 3. Every game

There are **no game records to enumerate**.

Accordingly, the requested per-game fields are unavailable for every game:

- Predicted score: unavailable.
- Actual score: unavailable.
- Predicted winner: unavailable.
- Actual winner: unavailable.
- Published probability: unavailable.
- System confidence edge: unavailable.
- Conviction bucket: unavailable.
- Brier score: unavailable.
- Team-run error: unavailable.
- Total-run error: unavailable.
- Starter projected-versus-actual 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.

There are therefore:

- No identifiable hits.
- No identifiable misses.
- No correct-winner/wrong-score games.
- No loss reconstruction candidates.
- No evidence that any published prediction was made.

The absence of game rows must not be interpreted as a perfect slate, a failed slate, or a slate with no games. It is an evidence-coverage failure.

---

# 4. Miss reconstruction

## Per-loss reconstruction

No loss can be reconstructed because `games` is empty and `misses: 0` reflects absence of reviewed misses, not verified predictive success.

It is impossible to identify, for any game, whether the earliest wrong-direction movement came from:

- Bad input.
- Bad weighting.
- Calibration.
- Starter error.
- Offense or bullpen error.
- Run-environment error.
- Irreducible variance.

No current-slate primary or secondary loss drivers are recorded: `loss_primary_drivers: {}`.

The confidence guardrail remains important: a `0.12` home-away confidence edge would be moderate, not a near-coin-flip or near-certainty signal. No such current-slate edge is supplied.

## Pipeline-stage quality audit

All required stages and transitions are absent:

- `pipeline_stage_quality.status: "not_measurable"`.
- `stages: []`.
- `transitions: []`.
- `largest_team_run_regression_vs_base: null`.

Therefore:

- No stage can be credited with moving toward the correct winner.
- No stage can be blamed for winner-direction regression.
- No later recovery can be claimed.
- No claim can be made that a later stage erased an intermediate error.

The historical self-assessment identifies a specific simulation mechanism: selected draws were reportedly reused for win-probability estimation, with early exit after finding a target-realizing play-by-play. The diagnosis says this can leave `away_win_rate` based on roughly two selected draws, making the flip/agreement signal vacuous. That is a cross-slate implementation hypothesis supported by the stated 11-slate persistence, not a reconstructed event in a current game.

---

# 5. Cross-game counterfactuals

The current `lever_tension` object contains three entries. None has game assignments because there are no current games.

## `score.variance_multiplier / score.variance_floor`

- **Helps:** none identified.
- **Hurts:** none identified.
- **Net evidence:** `0 helped vs 0 hurt`.
- **Targets:** Brier score and calibration error.
- **Conclusion:** no current-slate counterfactual evidence supports changing this lever.

Historical context is mixed: `score_margin_compression` occurred in 5 of 11 window slates, but its current streak is zero and it is not currently escalated.

## `player.pitcher.v4 form weights / player.pitcher_prior_games`

- **Helps:** none identified.
- **Hurts:** none identified.
- **Net evidence:** `0 helped vs 0 hurt`.
- **Targets:** starter ERA MAE and starter outs MAE.
- **Conclusion:** no current-slate evidence supports changing pitcher-form or prior-game weighting.

The cross-slate starter ERA bias is held, not persistent: 6 of 11 slates share the sign, with z `-0.42`.

## `recent.* / season.* run-mean weighting`

- **Helps:** none identified.
- **Hurts:** none identified.
- **Net evidence:** `0 helped vs 0 hurt`.
- **Targets:** team-run MAE, total-run MAE, and accuracy.
- **Conclusion:** no current-slate evidence supports changing recent-versus-season weighting.

## Tempting fixes that should not be made

1. **Do not lower confidence caps based on this slate.**  
   No current probabilities, hits, misses, or Brier outcomes exist.

2. **Do not widen score variance based on a presumed current margin miss.**  
   No current predicted or actual margins exist.

3. **Do not retune pitcher-form weights.**  
   No starter comparisons exist, and the historical starter bias is explicitly nonpersistent.

4. **Do not alter recent/season run weighting.**  
   The lever-tension matrix contains no affected games, and the historical lineup-run bias is held as noise.

5. **Do not infer simulation success or failure from zero published flips alone.**  
   The causal register explicitly says zero winner flips is not itself proof of a defect, although the 11-slate persistence warrants code diagnosis.

---

# 6. Data and contract defects

## Critical findings

### `incomplete_slate_audit_coverage`

- **Type:** Evidence/coverage contract failure.
- **Evidence:** 0 games structurally audited; all coverage counts are zero.
- **Required action:** load the canonical game artifacts and run per-game QA before declaring the slate clean.
- **Model defect or artifact defect:** artifact/coverage defect.
- **Important inconsistency:** this critical finding is not reflected in `structural_audit_summary.critical`, which remains zero.

## Error findings

No findings are listed with severity `error`.

This does not mean the slate is error-free. It means no error-severity rows were supplied.

## Warning findings

No findings are listed with severity `warning`.

Again, this is not evidence of a clean slate because the canonical audit population is empty.

## Informational findings

### `simulation_inert_on_slate`

- **Type:** Simulation diagnostic.
- **Evidence:** zero flip candidates and zero published flips.
- **Current severity:** info.
- **Cross-slate status:** escalated to an established 11-slate pattern.
- **Model versus artifact:** likely code/diagnostic behavior, not a demonstrated prediction miss on this slate.
- **Guardrail:** zero winner flips alone cannot prove no score reconciliation occurred.

## Coverage matrix reconciliation

The coverage matrix is not clean:

- `all_games_structurally_audited: false`.
- `expected_games: 0`.
- `canonical_artifacts_loaded: 0`.
- `forensic_deep_audit_games: 0`.
- `structural_audits_completed: 0`.
- `games_with_starter_comparisons: 0`.
- `continuous_learning_games: 0`.

The false value for `all_games_structurally_audited` is decisive. A zero-denominator audit cannot establish complete coverage.

## Probability-lineage audit

The required lineage is:

1. Raw model probability.
2. Calibrated probability.
3. Governor/cap adjustment.
4. Score-coherence and recency adjustment.
5. Published probability.

The supplied object contains no lineage rows:

- `probability_lineage: []`.
- `probability_reversions.available: false`.
- No raw, calibrated, governed, coherent, recency-adjusted, or published values are available.

Accordingly, no bypass can be formally declared. A bypass requires a material delta between stages with no recorded transformation; there are no stages to compare. The correct finding is **lineage absent**, not “lineage bypass proven.”

---

# 7. Cross-slate persistence

A single slate is absent here, but the supplied historical blocks provide persistence evidence.

## Escalated finding

### `simulation_inert_on_slate`

- **Consecutive-slate count:** 11.
- **Incidence:** 11 slates in the window.
- **Present now:** yes.
- **Target lever:** `simulation.allow_score`.
- **Target metrics:** `team_run_mae`, `total_run_mae`.
- **Parameter actionable:** false.
- **Required direction:** confirm that the simulation runs and is not silently no-oping.
- **Status:** established failure pattern, not single-slate noise.

The registered self-assessment gives the proposed code-level remedy:

- Separate target-realization search from win-probability estimation.
- Use an independent unsteered batch, such as 200–500 draws, or a closed-form Poisson/Skellam difference.
- Do not early-exit the probability batch.
- Make batch size a registered parameter.
- Feed the independent win rate into `final_prediction_policy._distribution_agreement`.
- Relevant locations are identified as `routers/team_router.py`, including `_build_simulation_distribution`, the draw-loop early exit, and `NUM_SIMULATIONS` / `MIN_DRAWS_BEFORE_CLOSE_EXIT`.

## Finding streaks

| Finding | Consecutive slates | Present now | Interpretation |
|---|---:|---:|---|
| `high_raw_probability_cluster` | 0 | No | Occurred once in the 11-slate window; not persistent |
| `pipeline_winner_instability` | 0 | No | Incidence 4/11, but no current streak |
| `score_margin_compression` | 0 | No | Incidence 5/11, not currently present |
| `simulation_inert_on_slate` | 11 | Yes | Established persistent failure |
| `single_slate_calibration_instability` | 0 | No | Incidence 6/11, not currently present |
| `weak_run_model_signal` | 0 | No | Incidence 9/11, but no registered consecutive streak in this object |

The `escalation_streak: 3` is also present, but the explicit finding-level persistence for simulation is 11 consecutive slates.

## Metric trends

Each registered trend is:

- **Margin bias:** `regressing`; mean `-2.2683`.
- **Mean team-run error on losses:** `improving`; mean `4.8246`.
- **Weighted calibration error:** `regressing`; mean `0.2276`.
- **Winner accuracy:** `improving`; mean `0.6828`.

These trends must not be conflated. Improving winner accuracy does not cancel regressing calibration or margin bias.

## Top-confidence pick loss streak

- `loss_streak: 0`.
- The per-slate record includes misses on `20260922` and `20260926`, hits on `20260923`, `20260924`, `20260925`, `20260927`, `20260929`, `20260930`, and `20261001`, plus two unknown-date entries.
- Therefore, there is no current established top-confidence-pick loss streak.
- The unknown-date rows are a data-quality concern but cannot be assigned to a date or treated as losses.

## Raw structural blocks

- `margin_distribution`: zero games, zero actual margins, zero predicted margins.
- `pipeline_stage_quality`: no stages or transitions; not measurable.
- `calibration_monitoring`: zero settled games and null weighted calibration error.
- `high_raw_cluster`: zero games and zero hits; threshold `0.65`.
- `simulation_control`: observed games `0`, published flips `0`, candidates `0`, status `diagnostic_only_without_independent_support`.

The cross-slate simulation persistence is therefore the only established actionable pattern in the supplied evidence.

---

# 8. Adjustments for today

Recommendations are ranked by evidence strength and operational safety.

## 1. Highest priority: repair and verify simulation execution

- **Pattern:** `simulation_inert_on_slate`, persistent for 11 consecutive slates.
- **Registered target lever:** `simulation.allow_score`.
- **Parameter direction/magnitude:** no parameter move is justified because the finding is explicitly `param_actionable: false`; do not force `simulation.allow_score` upward or downward.
- **Bounded change:** perform the registered code/diagnostic action: verify that `simulation.allow_score` reaches the simulation path, remove the probability-batch early exit, and create an independent fixed-size probability batch.
- **Expected metrics:** reduce `team_run_mae` and `total_run_mae`; improve the validity of winner-probability and score-coherence diagnostics.
- **Shadow/rollback gate:** run the independent batch in shadow mode first; compare simulation contribution, team-run MAE, total-run MAE, and probability stability against the existing path. Roll back if score MAE worsens materially or if runtime/variance becomes uncontrolled.
- **Helps versus hurts:** no current games are available for assignment. The lever-tension record has zero helped and zero hurt games.
- **Evidence strength:** highest, because persistence is 11/11 and the registered action is concrete.

## 2. Current-slate evidence coverage restoration

- **Pattern:** critical `incomplete_slate_audit_coverage`.
- **Registered parameter:** none.
- **Parameter direction/magnitude:** not applicable; this is a contract and artifact problem.
- **Bounded change:** load the canonical prediction and outcome artifacts, populate the expected game count and game rows, then run per-game structural QA before any model tuning.
- **Expected metrics:** increase `canonical_artifacts_loaded`, `forensic_deep_audit_games`, `structural_audits_completed`, `continuous_learning_games`, and `games_with_starter_comparisons` from zero to the actual slate counts; resolve the eligibility/audit-summary contradiction.
- **Helps versus hurts:** all games that are currently missing from analysis; no model lever tension can be assessed until games exist.
- **Evidence strength:** critical operational necessity, although it is not a predictive parameter adjustment.

## 3. Single strongest single-slate driver

No current-slate predictive driver can be established because there are no games, scores, probabilities, or losses. The strongest current-slate driver is therefore **evidence absence**, not offense, pitching, calibration, or variance.

Do not make a confidence-cap, score-variance, pitcher-weight, or recent/season-weight change from this payload. No registered lever is supported by current-slate observations.

---

# 9. Bottom line

## Known

- Three principal source files were loaded; four supporting reports are missing.
- No current game records were supplied.
- No current winner, score, starter, player, calibration, or probability-lineage conclusions are measurable.
- Coverage is not complete: all structural and canonical counts are zero.
- The claim that all artifacts passed critical/error gates conflicts with the critical incomplete-coverage finding.
- Simulation inertness is an established cross-slate pattern lasting 11 consecutive slates.
- Cross-slate winner accuracy is improving, while margin bias and weighted calibration error are regressing.
- The top-confidence-pick loss streak is zero, with two unknown-date records.

## Uncertain

- Whether the slate truly contained zero games or whether game artifacts failed to load.
- Whether any individual prediction was correct or incorrect.
- Whether score, starter, offense, bullpen, calibration, or run-environment errors occurred.
- Whether simulation inertness materially affected this absent current slate.
- Whether any probability-lineage stage bypass occurred.

## Single safest next action

**Restore and validate complete per-game artifact coverage before changing model parameters:** load the canonical game records, run structural QA for every game, and independently verify that the simulation probability path executes rather than early-exiting. Do not promote any confidence, variance, pitcher, or run-weight adjustment until that evidence exists.
