The S6 multipliers (B3→2.0×, B6→1.5×, etc.) were derived from the ~600-trade
window ending 2026-04-19. ~100+ trades since that window show regime reversal —
bucket PnL rankings did not hold out-of-sample. Locking historical per-bucket
performance into operational sizing is overfitting at any fixed point-in-time.
Changes:
- green.yml: s6_size_table → null (uniform 1.0× sizing until coefficients
demonstrate multi-window out-of-sample stability)
- s6_table_path commented out (same reason)
- B4 ban RETAINED: structural exclusion (only gross-negative bucket,
-$100 gross before fees, R:R 0.80, WR 34.8%) not a time-window call
- AEM MAE_MULT_BY_BUCKET RETAINED: grounded in asset vol characteristics,
not point-in-time PnL
Infrastructure (routing layer, recompute script, Prefect flow) fully intact.
Re-enable: set s6_table_path or populate s6_size_table once recompute_s6
demonstrates stable multi-window out-of-sample variance (< 20% guard).
Post-mortem note added to CRITICAL_ASSET_PICKING_BRACKETS_VS._ROI_WR_AT_TRADES.md
including system naming clarification (old GREEN vs new-GREEN vs BLUE).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
The mid-band advisory label (constituent signals in conflict) was called
NEUTRAL, implying "benign middle" — but retrospective data (637 trades)
shows it is empirically the worst-ROI regime. Renaming to UNKNOWN makes
the semantics explicit for regime-gate consumers.
- esof_advisor.py: emits UNKNOWN; LABEL_COLOR keeps NEUTRAL alias for
historical CH rows / stale HZ snapshots
- esof_gate.py: S6_MULT, IRP_PARAMS, Strategy A mult_map all keyed on
UNKNOWN with NEUTRAL alias (values identical → replays unaffected)
- prod/docs/ESOF_LABEL_MIGRATION.md: migration note, CH/HZ impact,
rollback procedure
Plan ref: Task 4 — NEUTRAL→UNKNOWN is load-bearing for the EsoF gate
in the orchestrator (0.25× sizing vs 1.0× under old label semantics).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>