Nightly self-improvement · slate 2026-10-09
Generated 2026-10-10T05:00:00.008112-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-09
status completed
Winners
0/0
Brier –
Learned or changed
2
of 12 stages
Blocked
1
wanted to act and could not
Release
v15.28.3
consistent
KPI LearningKPI FailuresLuna KPI ReviewKPI ExecutiveDeep Slate ReviewLuna Post-mortemDaily LearningAdaptive Status
What each learning stage did
| Stage | Outcome | Detail |
|---|---|---|
| KPI settlement | nothing to learn | 0 games settled, but the KPI layer applied to 0 of 0 club totals (no cause recorded). Forecasts made before the layer was live cannot teach it anything. |
| Hitter matchup calibration | learned | New per-metric scales for SO 0.45, BB 0.25, HR 1.75. Next slate's player effects read them. |
| KPI model refit | changed | New model 20261009T091154Z_803d216f. |
| KPI model rollback | nothing to learn | Kept 20261009T091154Z_803d216f: 0 settled club totals of its own, needs 30. |
| Bullpen usage model | nothing to learn | No pregame bullpen forecasts to settle. Refit: not attempted. |
| Luna KPI review | blocked | Luna was not asked (skipped no pregame evidence): 3176 rows were local replays and none were verified pregame forecasts. |
| Luna KPI promotion | nothing to learn | 10 candidates in shadow; none has enough prospective evidence yet (see below). |
| KPI winner-flip gate | nothing to learn | 0/0 qualified flips over 0 slates; needs 30 flips over 10 slates with an interval above 0.5 |
| Matchup Luna policy | nothing to learn | Settlement: no_matchup_forecasts; 0 prospective games over 0 dates; decision pending. |
| Adaptive parameter proposal (Luna) | nothing to learn | skipped_open_rollback_monitor: |
| Auto-apply | nothing to learn | no_promotable_candidate |
| Code agent | nothing to learn | disabled_by_config: code changes are made on the development host, never in the container. |
Games
| Game | Predicted | Actual | Home win prob | Result | Main driver | Starters |
|---|---|---|---|---|---|---|
| No per-game diagnosis on disk. | ||||||
Day over day
Rolling evidence window against the prior night. Associations, not causal proof.
| Metric | Prior | Current | Change | Result |
|---|---|---|---|---|
| brier_score | 0.2453 | 0.2453 | 0.0000 | flat |
| accuracy | 0.6106 | 0.6106 | 0.0000 | flat |
| team_run_mae | 2.3982 | 2.3982 | 0.0000 | flat |
| total_run_mae | 3.5929 | 3.5929 | 0.0000 | flat |
| calibration_error | 0.1238 | 0.1238 | 0.0000 | flat |
| starter_er_mae | 1.6402 | 1.6402 | 0.0000 | flat |
| starter_outs_mae | 4.2383 | 4.2383 | 0.0000 | flat |
Calibration produced for the next slate
| Metric | Scale used | Measured | Rows | Status |
|---|---|---|---|---|
| H | 1.000 | 1.372 | 1662 | measured scale confirmed: the interval includes 1.0 |
| SO | 0.449 | 0.085 | 1818 | learned: the interval excludes 1.0 |
| BB | 0.250 | -0.260 | 1818 | learned: the interval excludes 1.0 |
| HR | 1.750 | 2.361 | 1818 | learned: the interval excludes 1.0 |
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.
| KPI | Status | Target | Proposed | Rows | Slates | Gain interval | Progress |
|---|---|---|---|---|---|---|---|
| luna_pitcher_release_speed_vs_righthanded_starters | shadow | SO | 20260923 | 330/400 | 5/5 | [-0.0003, 0.0001] | |
| luna_pitcher_barrel_rate_vs_rhh_righthanded_starters | shadow | HR | 20260923 | 330/400 | 5/5 | [-0.0005, 0.0058] | |
| luna_batter_contact_rate_vs_breaking_righthanded_starters | shadow | H | 20260923 | 330/400 | 5/5 | [-0.0045, 0.0044] | |
| luna_batter_contact_rate_vs_breaking_left_handed_starters_for_strikeouts | shadow | SO | 20260924 | 122/400 | 4/5 | [-0.0030, 0.0022] | |
| luna_pitcher_contact_xwoba_allowed_vs_righthanded_starters_for_strikeouts | shadow | SO | 20260924 | 122/400 | 4/5 | [-0.0000, 0.0001] | |
| luna_pitcher_whiff_rate_breaking_vs_left_handed_hitters_for_hits | shadow | H | 20260924 | 122/400 | 4/5 | [-0.0056, -0.0011] | |
| luna_pitcher_home_run_rate_vs_righthanded_starters | shadow | HR | 20260925 | 122/400 | 4/5 | [-0.0015, 0.0079] | |
| luna_batter_ground_ball_rate_vs_fastball_vs_lhp_for_home_runs | shadow | HR | 20260926 | 86/400 | 3/5 | [-0.0001, 0.0000] | |
| luna_pitcher_whiff_rate_vs_right_handed_starters_for_batter_strikeouts | shadow | SO | 20260929 | 51/400 | 2/5 | [–, –] | |
| luna_batter_whiff_rate_vs_breaking_right_handed_starters_for_hits | shadow | H | 20260929 | 51/400 | 2/5 | [–, –] | |
| luna_batter_walk_rate_vs_righthanded_pitchers_for_home_runs | retired | HR | 20260924 | 0/400 | 0/5 | [–, –] |
Operator actions the cycle asked for (51)
Changes to code or a model recipe are never made by the nightly cycle. These are the measured findings that need one.
| Priority | Owner | Finding | Action |
|---|---|---|---|
| medium | model | starter length biased by +2.1 outs over 210 starts | recalibrate the starter workload projection toward real outs per start |
| medium | KPI model recipe | away_x_fastball was beyond ±3 standard deviations of its training range in 7 club totals | the live feature is built differently from the training rows; align the two constructions and retrain |
| medium | KPI model recipe | home_x_fastball was beyond ±3 standard deviations of its training range in 6 club totals | the live feature is built differently from the training rows; align the two constructions and retrain |
| medium | KPI model recipe | away_x_suppress was beyond ±3 standard deviations of its training range in 8 club totals | the live feature is built differently from the training rows; align the two constructions and retrain |
| medium | KPI model recipe | away_off_power_spread was beyond ±3 standard deviations of its training range in 8 club totals | the live feature is built differently from the training rows; align the two constructions and retrain |
| medium | KPI model recipe | away_x_ground was beyond ±3 standard deviations of its training range in 6 club totals | the live feature is built differently from the training rows; align the two constructions and retrain |
| medium | KPI model recipe | away_x_breaking was beyond ±3 standard deviations of its training range in 6 club totals | the live feature is built differently from the training rows; align the two constructions and retrain |
| medium | KPI recipe | pitcher_strikeout_rate (elite) on SO: adjustments made SO worse over 210 hitter-games in 11 days, mean gain -0.0347, interval (-0.05984, -0.00582) | review this KPI's weight in the matchup multiplier; it is an operator change to the recipe |
| medium | KPI recipe | pitcher_home_run_rate_allowed (poor) on HR: adjustments made HR worse over 234 hitter-games in 11 days, mean gain -0.0148, interval (-0.01867, -0.01212) | review this KPI's weight in the matchup multiplier; it is an operator change to the recipe |
| medium | KPI recipe | batter_strikeout_rate (average) on SO: adjustments made SO worse over 922 hitter-games in 13 days, mean gain -0.0095, interval (-0.01697, -0.00262) | review this KPI's weight in the matchup multiplier; it is an operator change to the recipe |
| medium | KPI recipe | pitcher_home_run_rate_allowed (weak) on HR: adjustments made HR worse over 271 hitter-games in 8 days, mean gain -0.0054, interval (-0.0069, -0.00353) | review this KPI's weight in the matchup multiplier; it is an operator change to the recipe |
| medium | KPI recipe | pitcher_strikeout_rate (average) on SO: adjustments made SO worse over 822 hitter-games in 13 days, mean gain -0.0032, interval (-0.00605, -1e-05) | review this KPI's weight in the matchup multiplier; it is an operator change to the recipe |
| medium | KPI recipe | pitcher_walk_rate (average) on BB: adjustments made BB worse over 880 hitter-games in 13 days, mean gain -0.0007, interval (-0.00159, -3e-05) | review this KPI's weight in the matchup multiplier; it is an operator change to the recipe |
| medium | KPI model | ATL: KPI blend worse than the baseline over 11 games (MAE 2.462 vs 2.455, bias +0.299) | check the wrong-way features listed for this club and its data coverage |
| medium | KPI model | HOU: KPI blend worse than the baseline over 8 games (MAE 2.902 vs 1.875, bias -2.073) | check the wrong-way features listed for this club and its data coverage |
| medium | KPI model | MIA: KPI blend worse than the baseline over 8 games (MAE 1.74 vs 1.5, bias +0.134) | check the wrong-way features listed for this club and its data coverage |
| medium | KPI model | ARI: KPI blend worse than the baseline over 8 games (MAE 3.175 vs 3.125, bias -1.975) | check the wrong-way features listed for this club and its data coverage |
| medium | KPI model | COL: KPI blend worse than the baseline over 7 games (MAE 3.165 vs 2.857, bias +0.775) | check the wrong-way features listed for this club and its data coverage |
| medium | KPI model | SF: KPI blend worse than the baseline over 8 games (MAE 1.861 vs 1.75, bias +1.054) | check the wrong-way features listed for this club and its data coverage |
| medium | KPI model | LAD: KPI blend worse than the baseline over 10 games (MAE 2.776 vs 2.3, bias +1.513) | check the wrong-way features listed for this club and its data coverage |
| medium | KPI model | WAS: KPI blend worse than the baseline over 6 games (MAE 2.081 vs 2.0, bias -0.588) | check the wrong-way features listed for this club and its data coverage |
| medium | KPI model | STL: KPI blend worse than the baseline over 7 games (MAE 1.834 vs 1.571, bias +0.569) | check the wrong-way features listed for this club and its data coverage |
| medium | KPI model | BOS: KPI blend worse than the baseline over 7 games (MAE 2.185 vs 1.714, bias +2.185) | check the wrong-way features listed for this club and its data coverage |
| medium | KPI recipe | pitcher_home_run_rate_allowed on HR (pitcher): harm survives leaving 1 worst players out, gain -0.0130, interval (-0.01672, -0.011) | the KPI itself misleads; Luna replacement candidates are scored in shadow |
| low | KPI model recipe | away_off_discipline pushed the KPI forecast away from the result in 69% of 61 scored club totals, net -8.1 runs | candidate for removal or rework in the next kpi_model version |
| low | KPI model recipe | home_platoon_barrel pushed the KPI forecast away from the result in 62% of 69 scored club totals, net -5.8 runs | candidate for removal or rework in the next kpi_model version |
| low | KPI readings | Yuki Matsui (SD): KPI adjustments hurt BB (gain -0.72 over 7 games, bias +0.57), HR (gain -0.01 over 7 games, bias +0.16), H (gain -0.12 over 6 games, bias +0.44) | his KPI reading or its opponent pairing misleads; watch whether it persists before any change |
| low | KPI readings | Jeremiah Jackson (BAL): KPI adjustments hurt SO (gain -0.69 over 5 games, bias -0.29) | his KPI reading or its opponent pairing misleads; watch whether it persists before any change |
| low | KPI readings | Trea Turner (PHI): KPI adjustments hurt SO (gain -0.61 over 8 games, bias +0.34) | his KPI reading or its opponent pairing misleads; watch whether it persists before any change |
| low | KPI readings | Kyle Schwarber (PHI): KPI adjustments hurt SO (gain -0.58 over 8 games, bias +0.91), BB (gain -0.17 over 8 games, bias -0.25) | his KPI reading or its opponent pairing misleads; watch whether it persists before any change |
| low | KPI readings | Shay Whitcomb (SF): KPI adjustments hurt SO (gain -0.57 over 6 games, bias +0.19) | his KPI reading or its opponent pairing misleads; watch whether it persists before any change |
| low | KPI readings | Jonny DeLuca (TB): KPI adjustments hurt SO (gain -0.55 over 6 games, bias +0.06) | his KPI reading or its opponent pairing misleads; watch whether it persists before any change |
| low | KPI readings | Coby Mayo (BAL): KPI adjustments hurt H (gain -0.13 over 5 games, bias -0.20), SO (gain -0.55 over 5 games, bias +0.20), BB (gain -0.05 over 5 games, bias -0.27) | his KPI reading or its opponent pairing misleads; watch whether it persists before any change |
| low | KPI readings | Manny Machado (SD): KPI adjustments hurt SO (gain -0.53 over 11 games, bias +0.14), H (gain -0.13 over 10 games, bias -0.10) | his KPI reading or its opponent pairing misleads; watch whether it persists before any change |
| low | KPI readings | Ty France (SD): KPI adjustments hurt SO (gain -0.52 over 11 games, bias +0.14) | his KPI reading or its opponent pairing misleads; watch whether it persists before any change |
| low | KPI readings | George Lombard Jr. (NYY): KPI adjustments hurt SO (gain -0.48 over 8 games, bias -0.02), H (gain -0.17 over 7 games, bias -0.40) | his KPI reading or its opponent pairing misleads; watch whether it persists before any change |
| low | KPI readings | Jordan Walker (STL): KPI adjustments hurt SO (gain -0.48 over 7 games, bias -0.20) | his KPI reading or its opponent pairing misleads; watch whether it persists before any change |
| low | KPI readings | Christian Walker (HOU): KPI adjustments hurt SO (gain -0.42 over 8 games, bias +0.52) | his KPI reading or its opponent pairing misleads; watch whether it persists before any change |
| low | KPI readings | Tim Tawa (ARI): KPI adjustments hurt H (gain -0.42 over 7 games, bias +0.10) | his KPI reading or its opponent pairing misleads; watch whether it persists before any change |
| low | KPI readings | Mike Trout (LAA): KPI adjustments hurt SO (gain -0.42 over 7 games, bias +0.34), BB (gain -0.25 over 7 games, bias -0.55), HR (gain -0.01 over 7 games, bias +0.03) | his KPI reading or its opponent pairing misleads; watch whether it persists before any change |
| low | KPI readings | Jac Caglianone (KC): KPI adjustments hurt SO (gain -0.41 over 6 games, bias +0.40), H (gain -0.13 over 5 games, bias -0.91) | his KPI reading or its opponent pairing misleads; watch whether it persists before any change |
| low | KPI readings | Ketel Marte (ARI): KPI adjustments hurt H (gain -0.41 over 7 games, bias +0.05) | his KPI reading or its opponent pairing misleads; watch whether it persists before any change |
| low | KPI readings | Colson Montgomery (CHW): KPI adjustments hurt H (gain -0.28 over 6 games, bias +0.64), SO (gain -0.40 over 6 games, bias -0.66) | his KPI reading or its opponent pairing misleads; watch whether it persists before any change |
| low | KPI readings | Yandy Díaz (TB): KPI adjustments hurt H (gain -0.21 over 5 games, bias -0.52), SO (gain -0.38 over 5 games, bias +0.88) | his KPI reading or its opponent pairing misleads; watch whether it persists before any change |
| low | KPI readings | Ozzie Albies (ATL): KPI adjustments hurt SO (gain -0.36 over 11 games, bias -0.34), BB (gain -0.19 over 11 games, bias -0.06) | his KPI reading or its opponent pairing misleads; watch whether it persists before any change |
| low | KPI readings | Cam Smith (HOU): KPI adjustments hurt SO (gain -0.35 over 8 games, bias -0.16), HR (gain -0.04 over 8 games, bias +0.06), H (gain -0.08 over 7 games, bias +0.05) | his KPI reading or its opponent pairing misleads; watch whether it persists before any change |
| low | KPI readings | Anthony Volpe (NYY): KPI adjustments hurt SO (gain -0.34 over 6 games, bias +0.14), H (gain -0.02 over 5 games, bias -0.17) | his KPI reading or its opponent pairing misleads; watch whether it persists before any change |
| low | KPI readings | Bryce Harper (PHI): KPI adjustments hurt SO (gain -0.33 over 8 games, bias +0.05) | his KPI reading or its opponent pairing misleads; watch whether it persists before any change |
| low | KPI readings | Kyle Isbel (KC): KPI adjustments hurt SO (gain -0.33 over 5 games, bias -0.24) | his KPI reading or its opponent pairing misleads; watch whether it persists before any change |
| low | KPI readings | Adrian Morejon (SD): KPI adjustments hurt SO (gain -0.32 over 5 games, bias +0.83), HR (gain -0.03 over 5 games, bias -0.09) | his KPI reading or its opponent pairing misleads; watch whether it persists before any change |
| low | KPI readings | Luke Keaschall (MIN): KPI adjustments hurt SO (gain -0.31 over 7 games, bias +0.31) | his KPI reading or its opponent pairing misleads; watch whether it persists before any change |
Luna post-mortem
Luna (gpt-6-luna) post-mortem, status received. Full analysis.
## 1. Evidence receipt and gaps The supplied diagnosis identifies a slate date of `""` and reports `games: []`, `games_reviewed: 0`, `hits: 0`, and `misses: 0` (`date`, top level). Thus **no individual game or game outcome is present to review**. The zero counts do not establish that the actual slate had no games; the expected-game count is itself zero, and the audit reports that coverage is incomplete. **Source manifest, entry by entry:** | Source | Status | Forensic significance | |---|---|---| | `prediction review` — `/app/output/reports/prediction_review_20261009.json` | `loaded`, 4,003 bytes | Identified as the source for official outcomes and scoring errors, but its game-level contents are not included in this evidence payload. | | `forensic deep audit` — `/app/output/reports/PREDICTION_SYSTEM_DEEP_AUDIT_20261009.json` | `loaded`, 15,973 bytes | Identified as covering probability, provenance, starter, and decision contracts; no per-game contents are supplied here. | | `continuous learning` — `/app/output/learning/continuous_learning_daily_20261009.json` | `loaded`, 6,809 bytes | Its summarized fields are present in this JSON, but the game-level comparisons and pipeline rows are empty. | | `detailed report` — `/app/output/reports/detailed_20261009.html` | `missing` | Full game and simulation rendering unavailable. | | `ultra detailed player audit` — `/app/output/reports/20261009_ultra_detailed_player_audit.html` | `missing` | Player-level prediction trace unavailable.