Universe/data: monday_open_edge panel (2006-08-14.. 2026-08-10, 944 Mondays). OOS >= 2016-01-01.
Spec: exposure = min(1, 0.95 * mult), mult LAG-1 from outcome_learner.update (v1 symmetric: win x1.05 / loss x0.90, bounds [0.5,1.25], alpha=0.10). Costs: 2*cost one-way each Monday.
Verdict bars (same as adaptive_gauntlet): std lift>=+0.10 / small lift>=+0.05, both + p<0.05 + IS same-sign on the frozen spec. p(boot) = P(OOS mean(adapt-base) <= 0): small p favours the learner.
| Variant | IS SR | OOS SR | base OOS SR | lift | lift_net | IS lift | p(boot) | resid | avg exp | DSR |
|---|
| learn_v1 | 1.20 | 0.70 | 0.70 | +0.00 | +0.02 | +0.22 | 0.986 | 0.07 | 0.567 | 0.51 |
| learn_hitrate | 1.04 | 0.71 | 0.70 | +0.01 | +0.03 | +0.06 | 0.205 | 0.15 | 0.953 | 0.51 |
| learn_inverse | 0.98 | 0.70 | 0.70 | +0.00 | +0.01 | -0.00 | 0.013 | -0.70 | 1.000 | 0.50 |
| monthly_select | 1.10 | 0.77 | 0.70 | +0.07 | +0.11 | +0.12 | 0.246 | 0.40 | 0.950 | 0.58 |
DSR family K_eff=1.2 (pre-registered K_GRID=6) | PBO=0.46 | SPA p=0.063
Frozen spec is learn_v1 (best-of-family is monthly_select -- reported only, never promoted).
| one-way | base OOS ret | learn_v1 OOS ret | base SR | learn_v1 SR |
|---|
| 0bps | +85.7% | +41.6% | 0.70 | 0.70 |
| 1bps | +68.9% | +34.6% | 0.60 | 0.60 |
| 2bps | +53.7% | +27.9% | 0.50 | 0.51 |
| 3bps | +39.8% | +21.6% | 0.40 | 0.41 |
| 5bps | +15.7% | +9.8% | 0.20 | 0.21 |
| Era | base | learn_v1 | lift |
|---|
| 2006-2010 | +26.86 | +22.40 | -4.46 |
| 2011-2015 | +14.96 | +8.19 | -6.77 |
| 2016-2020 | +12.61 | +6.93 | -5.68 |
| 2021-2026 | +14.07 | +7.56 | -6.51 |
- learn_v1 OOS: SR 0.70 -> 0.70 (lift +0.00, net +0.02), p=0.986, IS lift +0.22; avg exposure 0.567.
- learn_v1's OOS Sharpe is flat (+0.00) while its average exposure is only 0.57 vs the base 0.95: the learner mostly DE-RISKS after noisy losses. Gap-down Mondays carry positive drift, so cutting exposure mechanically lowers gross bps/Monday (era table) WITHOUT improving risk-adjusted return -> no timing skill.
- learn_inverse's low bootstrap p is a leverage artifact, not skill: its exposure sits at ~1.0 (above the base's 0.95) and its residual-vs-base Sharpe is negative. The scale-invariant Sharpe lift is ~0 -> the sign of the recency signal does not matter.
- Best of family is monthly_select (lift +0.07, p=0.246); it is not significant and PBO=0.46 is high, so it is NOT promoted (frozen spec is learn_v1).
- Conclusion: recent-outcome learning does not transfer to the Monday gap-down intraday edge -- matching the daily-bar adaptive_gauntlet REJECT. Keep the live sleeve's P_OUTCOME_LEARNER off.
- The live sleeve wiring (production/monday_gap_sleeve.py) uses this exact learner, observe-only until P_OUTCOME_LEARNER=1.