CVN-N001-EK-S02 — Derivations cadrage (pre-registration)¶
What this is. A pre-registration of the method, inputs, parameters, and decision criteria for each of the seven D2 derivations — fixed before any data is inspected. Per the anti-snooping boundary (plan §8.1), (§8.1) calibration choices must rest on theory / defensibility, never on observed outcomes. This document is that prior-rationale record. No derivation has started; no outcome has been seen.
Review gate. The operator (and, if desired, the committee) reviews and ratifies this cadrage; only then do the read-only derivations begin. Any later change to a method here = a recorded amendment, not a silent edit.
0. Pre-registration discipline¶
- Every parameter below is a proposal fixed ex-ante. Where the data later proves a method undefendable, the
derivation returns a typed
INFEASIBLE(it does not get re-tuned to "work"). - Choices are recorded before looking at cost/predictive outcomes. If an existing exploratory result (e.g. the cost-sensitivity report) influenced any choice here, it is flagged as prior rationale in that section.
- Analysis-only: each derivation is a read-only notebook/script over existing data. If any step needs a run / training / cluster / new data pull → STOP-and-ask (runbook §4).
1. Execution order¶
The cost/capacity chain is the first blocker and runs first; the rest only proceed if it yields a usable
E_pred_min. On any typed INFEASIBLE, stop the chain and record it (a successful S02 outcome).
reference_capacity (§2) → p90_cost+tier (§3) → E_econ_min/E_pred_min mapping (§4)
→ power MDE/N_min (§5) → null_gate (§6) → budgets (§7) ; sortino_r1 (§8) independent
2. Reference capacity (§9.1) — non-deployment¶
| Aspect | Pre-registered choice (proposal) |
|---|---|
| Sampling window | last N months of existing OHLCV cache (proposal: 6 months, the longest window with stable defi_top5 coverage) |
| Venue(s) | inferred from the existing trade/cost (fill) logs, not the OHLCV cache alone (Binance spot). OHLCV cache ≠ fills/cost logs — see §3 evidence rule |
| Asset-level liquidity metric | median hourly traded volume (robust to outliers vs ADV) |
| Sizing mode | worst-asset-constrained equal-notional (conservative; the universe trades only as deep as its thinnest member) |
| Participation cap | ≤ 1% of median hourly volume per asset (impact-minimising) |
| Minimum tradable notional | a floor below which an asset is excluded (proposal: set from venue min-notional) |
| Missing / stale liquidity | asset excluded from the reference universe for that window (recorded) |
| Aggregation | per-asset P90 then portfolio aggregate (per-asset preserves the worst-asset constraint) |
| Tie-breaker | if several rules defensible → most conservative satisfying the min-notional |
INFEASIBLE-capacity |
no rule defensible without inspecting outcomes, or no asset clears min-notional |
Operator decision D1 — ACCEPTED (median-hourly-vol + worst-asset-constrained equal-notional).
Operator decision D7 — ACCEPTED, conditional (window). 6 months only if it is verifiably the longest
stable defi_top5 coverage window before any outcome inspection. If "stable coverage" is not
verifiable, use the longest documented stable window, else return INFEASIBLE-capacity — never pick a
window after seeing outcomes.
3. P90 cost + evidence tiers (§9.2)¶
| Aspect | Pre-registered choice (proposal) |
|---|---|
| Source | existing trade/cost logs; if absent at the reference size, order-book/spread from the OHLCV cache |
| Cost components | spread + impact + fees (maker/taker mix) + tail slippage |
| Tier A | directly observed fills at comparable asset/venue/size/regime |
| Tier B | observed fills × a pre-specified liquidity-impact model (e.g. square-root impact, Almgren-Chriss) with documented error + conservative stress factor; if error not conservatively bounded → downgrade to C |
| Tier C | order-book/spread proxy × conservative stress multiplier — non-lockable, S03-blocked |
| Tier D | unsupported → INFEASIBLE-cost-data (not even context) |
| P90 statistic | 90th percentile of round-trip cost across the sampled fills/quotes at the reference size |
Evidence rule (venue vs OHLCV). Tier is set by the fills/cost logs, not the OHLCV cache. If only
OHLCV / quotes exist (no comparable fills), evidence cannot exceed Tier C unless adjusted by the
pre-specified Tier-B model with conservatively bounded error; otherwise it is Tier C (non-lockable) or
INFEASIBLE-cost-data.
Prior-rationale note: the cost-sensitivity report is used only to know that round-trip cost was never pinned (a failure-mode context, §8.1) — not to choose a cost value.
Operator decision D2 — ACCEPTED (Tier A/B lockable; Tier C non-lockable; Tier D INFEASIBLE). Tier B is
lockable only if its adjustment model bounds the error conservatively (else downgrade to C).
4. E_econ_min / E_pred_min mapping (§10)¶
Cost is counted once (net-expectancy convention). To avoid double-counting, cost enters only the net-expectancy formula; the break-even is
E_net ≥ 0, notE_net ≥ cost.E_econ_minnames the cost to be overcome, it is not subtracted a second time.
| Aspect | Pre-registered choice |
|---|---|
E_econ_min |
the round-trip P90 cost (Tier A/B) to be overcome at the reference size (long-only) — a label for the cost hurdle, not a second subtraction |
| Net expectancy | E_net(p) = p·TP − (1−p)·SL − cost_P90 (cost subtracted once) |
E_pred_min |
the smallest precision p* such that E_net(p*) ≥ 0 — i.e. gross expectancy covers E_econ_min |
| Units (compatibility) | TP, SL, and cost_P90 MUST be in the same return/cost units (e.g. all in bps of notional, or all in log-returns) — no mixing ATR-units / bps / quote-currency |
| Monotonicity / stability | check E_net is monotone increasing in p over the action-policy range; if not shown, the predictive metric (e.g. f1_buy) cannot be the primary gate |
INFEASIBLE-mapping |
no defensible monotone mapping constructible from existing data |
Operator decision D3 — ACCEPTED (precision-at-entry as the primary mapping metric). Caveat (recorded):
precision-at-entry is not itself an economic edge until TP/SL/cost/frequency are integrated via
E_net above — it avoids the AUC/f1→tradability non-transfer, it does not replace the economic test.
5. Power → MDE / N_min (§11)¶
| Aspect | Pre-registered choice (proposal) |
|---|---|
| Statistic powered | precision-at-entry lift over the primary null, with threshold E_pred_min (D3-aligned); the economic interpretation is carried by the §4 mapping (E_net ≥ 0), not by this statistic directly |
| Resampling | purged/embargoed moving-block bootstrap (Künsch / Politis-Romano) preserving temporal + cross-asset dependence and label base rate; purge/embargo applied inside each resample |
| Block length | selected by a pre-declared rule (∝ label horizon H4 + autocorrelation length); sensitivity sweep over ≥ 3 settings: horizon-scaled baseline, shorter, longer |
| Replications | ≥ 1000 |
| Seed policy | fixed, recorded in the derivation record |
| Power target | ≥ 0.80 |
MDE_available / N_min |
MDE_available at current universe/folds; N_min = smallest config with MDE(N_min) ≤ E_pred_min |
| Sanity floor | N_trades_min ≥ 30 (floor only; MDE decides) |
INFEASIBLE-power |
MDE_available > E_pred_min and N_min not operationally feasible |
Operator decision D4 — ACCEPTED (horizon-scaled + sensitivity sweep over ≥ 3 settings: short / central / long).
6. Null-gate (§12)¶
| Candidate | Role |
|---|---|
| Random-entry (matched count) | diagnostic null (not primary) |
| Conservative purged/embargoed block null preserving asset/fold base rate, temporal dependence, trade-count/action-policy | primary candidate |
| Stratified-by-regime block null | alternative primary |
Selection rule: most-conservative valid null; a more-conservative null is rejected only if it
violates registered action-policy constraints, destroys base-rate structure, breaks purge/embargo comparability,
or is economically non-comparable — rationale recorded. A tuple cannot PROMOTE on diagnostic nulls only.
INFEASIBLE-null if no defensible null constructible.
Operator decision D5 — ACCEPTED (conservative block null preserving base rate + temporal dependence as primary; random-entry stays diagnostic; cannot PROMOTE on diagnostic nulls only).
7. Budgets proposal (§14) — not locked¶
| Budget | Pre-registered proposal |
|---|---|
| Family definition | one family = {long-only ML entry edge on defi_top5, ATR-H4, GBT} (the program thesis) |
| Max registered tuples | proposal: small (e.g. ≤ 8) — to be ratified at S03 |
Max ONE-ITERATION slots |
proposal: 1 per tuple |
| FDR method · level | Benjamini-Hochberg, α = 0.10 (proposal) |
| Allocation | per-tuple, per-stage. Structural change = consumes budget. A nested action-policy change is allowed only if declared inside the registered tuple and counted in that tuple's / the FDR budget per ADR-0102 (that is what "pre-paid" means) |
| Final-holdout access | one touch per tuple, at verdict (logged) |
| Stop rule | family budget exhausted without PROMOTE → KILL program thesis |
Operator decision D6 — ACCEPTED provisionally (α = 0.10, ≤ 8 tuples) as an S02 proposal only — S03 must explicitly ratify it and confirm the family budget is genuinely bounded. Not a lock.
8. Sortino R1 (§13) — definition note (not a gate)¶
| Aspect | Pre-registered choice (proposal) |
|---|---|
| First step | read how existing reports compute Sortino (comparability of the ~1.0 floor) before fixing the convention |
| Input series | per-period strategy returns |
| MAR | 0 unless a risk policy defines otherwise |
| Annualisation | only if the return periodicity is fixed and documented |
| Role | comparability only — not an S02 gate; sub-floor statements remain non-actionable until resolved |
9. Reproducibility tolerances (test strategy V11) — pre-declared per value¶
| Value | Determinism | Tolerance |
|---|---|---|
| reference_capacity · p90_cost · mapping · budgets | deterministic | exact (≤ ±0.1% only if documented float non-determinism) |
| power MDE / N_min | stochastic | within the declared seed + ≥1000 reps + CI; report drift |
| null_gate · sortino_r1 | deterministic (given seed where used) | exact / declared CI |
10. Operator decisions — RATIFIED (2026-06-19)¶
Operator review: PASS with P1 amendments, 4.65/5. All P1 edits applied (§§2–7 + this record).
| # | Decision | Verdict |
|---|---|---|
| D1 | liquidity metric + sizing mode (§2) | ACCEPTED — median-hourly-vol + worst-asset-constrained |
| D2 | lockable cost tier floor (§3) | ACCEPTED — Tier A/B lockable (B only if error conservatively bounded); C non-lockable; D INFEASIBLE |
| D3 | primary predictive metric (§4) | ACCEPTED — precision-at-entry (not itself an economic edge until E_net) |
| D4 | power block-length rule (§5) | ACCEPTED — horizon-scaled + ≥3-level sensitivity |
| D5 | primary null (§6) | ACCEPTED — conservative block null (base-rate + temporal dep) |
| D6 | FDR level + max tuples (§7) | ACCEPTED provisionally — α=0.10, ≤8 tuples; S03 must ratify + bound family budget |
| D7 | reference-capacity window (§2) | ACCEPTED conditionally — 6 mo iff verifiably longest stable coverage, else longest documented or INFEASIBLE-capacity |
P1 amendments applied: venue/cost-log vs OHLCV evidence rule (§2/§3) · net-expectancy mapping — cost
counted once, no double-count (§4) · TP/SL/cost unit compatibility (§4) · powered statistic aligned
to precision-at-entry (§5) · autocorrelation typo + ≥3-level block-length sensitivity (§5) · nested
action-policy pre-paid budget semantics per ADR-0102 (§7).
11. What this cadrage does not do¶
It does not derive any value, run anything, inspect any outcome, lock the charter, or authorize trading. It
pre-registers the method. After ratification, each derivation runs read-only and is recorded as a signed
derivation (or a typed INFEASIBLE) in the workspace.