Fit the mc-injected walk-forward to the data window (short real windows are refused late, without a reachable remedy) #239

Closed
opened 2026-07-11 14:21:53 +02:00 by Brummel · 1 comment
Owner

Milestone fieldtest finding (2026-07-11, friction; consumer POV at d3ad9f4): aura mc <bp.json> --real GER40 over a ~30-day window is refused only at runtime with

aura: process stage 1: walk_forward windows do not fit the campaign window: in_sample_ms + out_of_sample_ms = 10368000000 ms exceeds the campaign window [1725236099999, 1727726220000] (2490120002 ms)

The mc-generated pipeline injects a std::walk_forward stage with a fixed ~120-day total window; a 1-month window — the same window the README campaign example uses successfully — fails late, and the mc surface offers no way to fix it: mc --help exposes --block-len/--resamples/--seed but nothing to size the injected walk-forward, and gives no minimum-window guidance. A 6-month window runs fine.

Directions (not mutually exclusive): default the injected walk-forward's window sizing to the data window; expose the sizing on the mc surface; document the minimum window in mc --help.

Milestone fieldtest finding (2026-07-11, friction; consumer POV at d3ad9f4): `aura mc <bp.json> --real GER40` over a ~30-day window is refused only at runtime with ``` aura: process stage 1: walk_forward windows do not fit the campaign window: in_sample_ms + out_of_sample_ms = 10368000000 ms exceeds the campaign window [1725236099999, 1727726220000] (2490120002 ms) ``` The mc-generated pipeline injects a `std::walk_forward` stage with a fixed ~120-day total window; a 1-month window — the same window the README campaign example uses successfully — fails late, and the `mc` surface offers no way to fix it: `mc --help` exposes `--block-len`/`--resamples`/`--seed` but nothing to size the injected walk-forward, and gives no minimum-window guidance. A 6-month window runs fine. Directions (not mutually exclusive): default the injected walk-forward's window sizing to the data window; expose the sizing on the `mc` surface; document the minimum window in `mc --help`.
Author
Owner

Decision (2026-07-11, autonomous run): fit the injected roller to the data window instead of refusing.

The root: the dissolved wf/mc invocations stamp fixed 90/30/30-day roller sizes (WF_REAL_*_NS, crates/aura-cli/src/main.rs) into the generated process document; a campaign window shorter than in_sample+out_of_sample (120 days) is refused late by the executor with no remedy reachable from the mc surface.

Chosen: at dispatch — where the resolved campaign window is already known — the roller sizes scale down to fit when the fixed sizes exceed the window, preserving the 3:1 IS:OOS ratio with step = OOS (a window of exactly IS+OOS yields a single roll). Windows that fit the fixed sizes keep them byte-identically, so the committed exact-grade anchors (which run on fitting windows) are unaffected; only invocations that today dead-end change behaviour. Applies to both walkforward --real and mc --real (same seam, same friction). The --help text documents the fit.

Rejected: exposing roller-sizing flags on the mc surface — custom sizing is exactly what an authored process document already expresses (in_sample_ms/out_of_sample_ms/step_ms on std::walk_forward); the sugar's contract is a sensible default, not a second full surface. A user needing exact sizing writes the process document (the C25 escalation path).

Unchanged: the executor's fit check itself (authored documents still validate against their declared window).

Decision (2026-07-11, autonomous run): fit the injected roller to the data window instead of refusing. The root: the dissolved wf/mc invocations stamp fixed 90/30/30-day roller sizes (`WF_REAL_*_NS`, `crates/aura-cli/src/main.rs`) into the generated process document; a campaign window shorter than in_sample+out_of_sample (120 days) is refused late by the executor with no remedy reachable from the mc surface. Chosen: at dispatch — where the resolved campaign window is already known — the roller sizes scale down to fit when the fixed sizes exceed the window, preserving the 3:1 IS:OOS ratio with step = OOS (a window of exactly IS+OOS yields a single roll). Windows that fit the fixed sizes keep them byte-identically, so the committed exact-grade anchors (which run on fitting windows) are unaffected; only invocations that today dead-end change behaviour. Applies to both `walkforward --real` and `mc --real` (same seam, same friction). The `--help` text documents the fit. Rejected: exposing roller-sizing flags on the mc surface — custom sizing is exactly what an authored process document already expresses (`in_sample_ms`/`out_of_sample_ms`/`step_ms` on `std::walk_forward`); the sugar's contract is a sensible default, not a second full surface. A user needing exact sizing writes the process document (the C25 escalation path). Unchanged: the executor's fit check itself (authored documents still validate against their declared window).
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Brummel/Aura#239