Deep slate report —

Generated 2026-10-03T05:07:57.650609-04:00 · schema deep_slate_diagnosis_v3 · fuses prediction review + forensic deep audit + official starter lines, with a Luna post-mortem.

Process, end to end

1. Settle review
complete
0 games vs official finals
2. Forensic deep audit
incomplete
per-game probability + pitcher impact
3. Deep diagnosis
built
0 losses attributed to a root cause
4. Luna post-mortem
received
9/8 sections; 0/0 games; 2/2 causes; 3/3 sources
5. Adjustment
skipped_open_rollback_monitor
6. Gating
shadow, manual + gated
production champion unchanged

Slate summary

Games
0
Hits
0
Misses
0
Winner accuracy
0%
Mean Brier (losses)
n/a
Mean total-run bias (losses)
n/a

Source coverage receipt

Which reports actually fed the diagnosis. A source shown as missing was not silently assumed.

SourceStatusEvidence suppliedPathBytes
prediction reviewloadedofficial outcomes and scoring errors/app/output/reports/prediction_review_20261002.json4003
forensic deep auditloadedprobability, provenance, starter and decision contracts/app/output/reports/PREDICTION_SYSTEM_DEEP_AUDIT_20261002.json15888
continuous learningloadedpipeline-stage quality, calibration, probability lineage, score distribution, and official starter comparisons/app/output/learning/continuous_learning_daily_20261002.json6809
detailed reportmissingfull game and simulation rendering/app/output/reports/detailed_20261002.htmln/a
ultra detailed player auditmissingplayer-level prediction trace/app/output/reports/20261002_ultra_detailed_player_audit.htmln/a
structural auditmissingall invariant findings/app/output/reports/audit_report_20261002.htmln/a
integrity revision auditmissingpost-Luna remediation proof for immutable revision artifacts/app/output/reports/audit_report_20261002_integrity_revision.htmln/a

High-level causal issue register

Deterministic findings across data integrity, model validation, calibration, score distribution, pipeline stages, simulation, and coverage. Critical is reserved for broken evidence or an unexplained contract violation; high marks material model/process risk. Each row pairs the action to take (Do this) with the wrong conclusion to avoid (Don't conclude).

SeverityDomainFinding and evidenceAffectedAction & guardrail
CRITICALcoverageNot every settled game received structural QA
0/0 games structurally audited
slate-wide
Do thisDo not call the slate clean; run per-game QA on every canonical artifact first.
Don't concludeA clean subset of games cannot certify the games that were never audited.
INFOsimulationSimulation produced no winner-direction intervention on this slate
flip candidates 0; published flips 0
slate-wide
Do thisMeasure the simulation's contribution across rolling slates, separating score realization from winner flipping.
Don't concludeZero winner flips is not a defect and does not mean the simulation did no score-reconciliation work.

Cross-slate trends (persistent-pattern memory)

Window: 20260922, 20260923, 20260924, 20260925, 20260926, 20260927, , 20260929, 20260930, 20261001, (10 prior slates loaded). Highest-confidence pick loss streak: 0 slate(s). Actionable pattern detected.

Escalated persistent patterns

A finding that has repeated at or beyond the escalation streak is no longer single-slate noise. It carries its target registered lever and an action-oriented guardrail.

FindingPersistenceTarget lever(s)DirectionGuardrail
simulation_inert_on_slate11 consecutive · 11 in windowsimulation.allow_scoreconfirm the simulation module is running, not silently no-opingsimulation_inert_on_slate has persisted 11 consecutive slates; this is no longer single-slate noise. Treat it as an actionable pattern and raise the code/diagnostic action named; do not force a parameter move.

Finding streaks across the window

FindingConsecutive slatesIncidencePresent nowFix type
high_raw_probability_cluster01/11noparam
pipeline_winner_instability04/11nocode/diagnostic
score_margin_compression05/11noparam
simulation_inert_on_slate1111/11yescode/diagnostic
single_slate_calibration_instability06/11noparam
weak_run_model_signal09/11nocode/diagnostic

Metric direction across the window

MetricDirectionSeries (old → new)
winner_accuracyimproving[0.4, 0.5, 0.6667, 0.6471, 0.5385, 0.6429, None, 1.0, 0.75, 1.0, None]
weighted_calibration_errorregressing[0.1881, 0.1108, 0.1701, 0.1302, 0.1524, 0.1031, None, 0.4792, 0.2317, 0.4832, None]
margin_biasregressing[-1.867, -1.188, -1.083, -1.706, -3.0, -1.571, None, -4.25, -2.75, -3.0, None]
team_run_error_on_lossesimproving[6.222, 5.75, 3.5, 5.333, 6.167, 4.8, None, None, 2.0, None, None]

Pipeline stage regression

Every stored stage is scored against the same official finals. A later recovery remains visible; it does not erase an unstable intermediate flip.

Pitcher versus batter: patterns across the whole slate

Not computed for this slate. no game carried a matchup breakdown. The per-player feed (data/all_players_stats.csv) is refreshed on its own schedule and regularly lands after official finals, so a slate reviewed promptly can be published before its player box exists.

Once the feed carries the slate, rebuild it offline with python -m services.forensics_backfill. The nightly cycle runs the same sweep at the start of every run, so this repairs itself on the next cycle.

Trained winner blend: does it reach the published number?

no game artifacts supplied

Repeated bias across slates, and the lever that moves it

A bias on one slate is noise. The same sign across slates, large relative to how much it moves between them, is a model defect. Only the ones that pass both tests are turned into a named parameter change; the rest are held deliberately.

starter ERA error (actual minus projected)

Mean -0.14 over 11 slates (sign shared by 0.55 of them, z = -0.42).

starters beat their projection: the run model credits opposing offenses with more than they produced.

Hold: no change: this bias is not separable from slate-to-slate noise yet

6 of 11 slates share the sign, mean -0.14 +/- 0.33 standard error: not separable from noise

lineup runs actual minus projected

Mean -0.26 over 11 slates (sign shared by 0.64 of them, z = -1.36).

lineups scored below projection: the run environment is set too high.

Hold: no change: this bias is not separable from slate-to-slate noise yet

7 of 11 slates share the sign, mean -0.26 +/- 0.19 standard error: not separable from noise

SlateGamesWinner accMean starter ERA errorMean lineup runs vs projSides broke on pitchingSides broke on offense
2026100111.0000.000.50
2026093040.7500.780.121
2026092941.000-0.76-0.503
20260928———
20260927140.643-2.16-0.1125
20260926130.5380.550.6934
20260925170.6471.130.50810
20260924120.6671.68-0.67411
20260923160.500-0.49-0.91411
20260922150.400-0.32-0.97311
2026092130.333-1.08-0.50
20260920150.600-0.89-1.00210

Per-game evidence coverage

Expected games
0
Artifacts loaded
0
Structural audits
0
Deep-audit games
0
Learning rows
0
Starter comparisons
0

Every game, in depth (0)

Cross-game lever tension

Each candidate fix, and exactly which games it would help versus hurt. A lever that repairs one game and breaks two is visible here before it is proposed.

score.variance_multiplier / score.variance_floor (widen run distributions)

Targets: brier_score, calibration_error · 0 helped vs 0 hurt
Would help
  • none
Would hurt / risk
  • none

player.pitcher.v4 form weights / player.pitcher_prior_games

Targets: starter_er_mae, starter_outs_mae · 0 helped vs 0 hurt
Would help
  • none
Would hurt / risk
  • none

recent.* / season.* run-mean weighting

Targets: team_run_mae, total_run_mae, accuracy · 0 helped vs 0 hurt
Would help
  • none
Would hurt / risk
  • none

Day over day: did it improve or worsen

Compared against packet 20261001. Last recorded change: v4.30.0 (2026-09-08) Hitter shrinkage is derived from the between-hitter spread rather than fitted to slate error, so an established extreme profile is no longer flattened toward the league.

MetricPriorCurrentΔResult
brier_score0.24350.2435+0flat
accuracy0.58770.5877+0flat
team_run_mae2.53512.5351+0flat
total_run_mae3.63163.6316+0flat
calibration_error0.08960.0896+0flat
starter_er_mae1.72431.7243+0flat
starter_outs_mae4.21034.2103+0flat

The adjustment the system made in response

Status: skipped open rollback monitor.

Luna deep post-mortem (full)

1. Evidence receipt and gaps

Source manifest

All manifest entries were checked against the supplied JSON:

SourceStatusPurposeAssessment
/app/output/reports/prediction_review_20261002.jsonLoaded, 4,003 bytesOfficial outcomes and scoring errorsPresent in manifest, but no game records were propagated into this diagnosis
/app/output/reports/PREDICTION_SYSTEM_DEEP_AUDIT_20261002.jsonLoaded, 15,888 bytesProbability, provenance, starter, and decision contractsPresent in manifest, but no per-game audit rows are present here
/app/output/learning/continuous_learning_daily_20261002.jsonLoaded, 6,809 bytesPipeline-stage quality, calibration, probability lineage, score distribution, and starter comparisonsPresent, but all current-slate game-dependent structures are empty
/app/output/reports/detailed_20261002.htmlMissingFull game and simulation renderingGap
/app/output/reports/20261002_ultra_detailed_player_audit.htmlMissingPlayer-level prediction traceGap
/app/output/reports/audit_report_20261002.htmlMissingAll invariant findingsGap
/app/output/reports/audit_report_20261002_integrity_revision.htmlMissingPost-remediation immutable revision proofGap

Games reviewed

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.

  1. 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.

  1. 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.

  1. No probability lineage was supplied.

probability_lineage: []; probability_reversions.available: false because no game artifacts were supplied.

  1. No pipeline stages or transitions were supplied.

pipeline_stage_quality.stages: [] and transitions: [], with status not_measurable.

  1. No current-slate calibration or score metrics are measurable.

Calibration buckets are empty; settled games are zero; weighted absolute calibration error is null.

  1. No player or matchup evidence is available.

slate_player_metrics.available: false; matchup patterns are unavailable because no game carried a matchup breakdown.

  1. 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 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:

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:

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:

Artifact integrity

Artifact integrity is the most serious current issue.

The causal register contains:

Critical: incomplete_slate_audit_coverage

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

Informational: simulation_inert_on_slate

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:

There are therefore:

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:

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:

Therefore:

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

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

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

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.

  1. Do not widen score variance based on a presumed current margin miss.

No current predicted or actual margins exist.

  1. Do not retune pitcher-form weights.

No starter comparisons exist, and the historical starter bias is explicitly nonpersistent.

  1. 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.

  1. 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

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

Coverage matrix reconciliation

The coverage matrix is not clean:

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:

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

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

Finding streaks

FindingConsecutive slatesPresent nowInterpretation
high_raw_probability_cluster0NoOccurred once in the 11-slate window; not persistent
pipeline_winner_instability0NoIncidence 4/11, but no current streak
score_margin_compression0NoIncidence 5/11, not currently present
simulation_inert_on_slate11YesEstablished persistent failure
single_slate_calibration_instability0NoIncidence 6/11, not currently present
weak_run_model_signal0NoIncidence 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:

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

Top-confidence pick loss streak

Raw structural blocks

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

2. Current-slate evidence coverage restoration

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

Uncertain

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.