Nightly self-improvement · slate 2026-10-01

Generated 2026-10-02T05:00:00.004611-04:00 ET from official finals (mlb-api). Every learning stage is listed with what it did. "Blocked" means it wanted to act and a safety rule stopped it; "nothing to learn" means it had no eligible evidence.

Slate
2026-10-01
status completed
Winners
1/1
Brier 0.2335
Learned or changed
0
of 5 stages
Blocked
0
wanted to act and could not
Release
v4.31.0
DRIFT
AuditDetailedKPI ExecutiveDeep Slate ReviewLuna Post-mortemDaily LearningAdaptive Status

What each learning stage did

StageOutcomeDetail
KPI settlementfaileddid not run
Bullpen usage modelnothing to learnNo pregame bullpen forecasts to settle. Refit: not attempted.
Adaptive parameter proposal (Luna)nothing to learnskipped_open_rollback_monitor:
Auto-applynothing to learnno_promotable_candidate
Code agentnothing to learndisabled_by_config: code changes are made on the development host, never in the container.

Games

GamePredictedActualHome win probResultMain driverStarters
PHI@ATL3-42-60.517hitAaron Nola: 16 proj / 5 real outs; Ray Kerr: 14 proj / 10 real outs

Day over day

Rolling evidence window against the prior night. Associations, not causal proof.

MetricPriorCurrentChangeResult
brier_score0.24440.2435-0.0009improved
accuracy0.58970.5877-0.0020regressed
team_run_mae2.53852.5351-0.0034improved
total_run_mae3.69233.6316-0.0607improved
calibration_error0.08890.08960.0007regressed
starter_er_mae1.74381.7243-0.0195improved
starter_outs_mae4.09094.21030.1194regressed

Calibration produced for the next slate

MetricScale usedMeasuredRowsStatus
No calibration produced.

Luna KPI candidates and their promotion gate

Promotion needs 400+ prospective rows over 5+ slates after the proposal, with a gain interval above zero. Only verified pregame forecasts count; local replays never do.

KPIStatusTargetProposedRowsSlatesGain intervalProgress
luna_pitcher_release_speed_vs_righthanded_startersshadowSO20260923330/4005/5[-0.0007, 0.0007]
luna_pitcher_barrel_rate_vs_rhh_righthanded_startersshadowHR20260923330/4005/5[-0.0004, 0.0049]
luna_batter_contact_rate_vs_breaking_righthanded_startersshadowH20260923330/4005/5[-0.0045, 0.0044]
luna_batter_contact_rate_vs_breaking_left_handed_starters_for_strikeoutsshadowSO20260924122/4004/5[-0.0027, 0.0021]
luna_pitcher_contact_xwoba_allowed_vs_righthanded_starters_for_strikeoutsshadowSO20260924122/4004/5[-0.0001, 0.0000]
luna_pitcher_whiff_rate_breaking_vs_left_handed_hitters_for_hitsshadowH20260924122/4004/5[-0.0056, -0.0011]
luna_pitcher_home_run_rate_vs_righthanded_startersshadowHR20260925122/4004/5[-0.0010, 0.0056]
luna_batter_ground_ball_rate_vs_fastball_vs_lhp_for_home_runsshadowHR2026092686/4003/5[-0.0001, -0.0000]
luna_pitcher_whiff_rate_vs_right_handed_starters_for_batter_strikeoutsshadowSO2026092951/4002/5[–, –]
luna_batter_whiff_rate_vs_breaking_right_handed_starters_for_hitsshadowH2026092951/4002/5[–, –]
luna_batter_walk_rate_vs_righthanded_pitchers_for_home_runsretiredHR202609240/4000/5[–, –]

Operator actions the cycle asked for (0)

Changes to code or a model recipe are never made by the nightly cycle. These are the measured findings that need one.

PriorityOwnerFindingAction
No operator actions requested.

Luna post-mortem

Luna (gpt-5.6-luna) post-mortem, status received. Full analysis.

# 1. Evidence receipt and gaps

## Source manifest

All six listed source artifacts marked `loaded` were received and represented in the evidence:

1. **Prediction review** — `/app/output/reports/prediction_review_20261001.json`, 101,990 bytes  
   Purpose: official outcomes and scoring errors.
2. **Forensic deep audit** — `/app/output/reports/PREDICTION_SYSTEM_DEEP_AUDIT_20261001.json`, 75,617 bytes  
   Purpose: probability, provenance, starter, and decision contracts.
3. **Continuous learning** — `/app/output/learning/continuous_learning_daily_20261001.json`, 454,850 bytes  
   Purpose: pipeline-stage quality, calibration, probability lineage, score distribution, and starter comparisons.
4. **Detailed report** — `/app/output/reports/detailed_20261001.html`, 98,628 bytes  
   Purpose: full game and simulation rendering.
5. **Ultra-detailed player audit** — `/app/output/reports/20261001_ultra_detailed_player_audit.html`, 8,732,780 bytes  
   Purpose: player-level prediction trace.
6. **Structural audit** — `/app/output/reports/audit_report_20261001.html`, 520,200 bytes  
   Purpose: invariant findings.

One manifest entry is explicitly missing:

7. **Integrity revision audit** — `/app/output/reports/audit_report_20261001_integrity_revision.html`  
   Status: `missing`; byte count `null`  
   Purpose: post-Luna remediation proof for immutable revision artifacts.

The missing integrity-revision audit is an evidence gap and an artifact-contract limitation. It is not, by itself,