# D48-XSMOM-28D-V2 Hypothesis Contract

Frozen at: `2026-07-29T11:12:00Z`

This is a new hypothesis registered after V1's feasibility-only coverage result and
before any XSMOM candidate portfolio PnL was generated or inspected.

## What is unchanged from V1

V2 inherits `hypothesis-contract.md` plus Amendments 1–3 in
`experiment-ledger.md`, including:

- formula `ln(C_i(d) / C_i(d-28))` from 29 complete, positive finite UTC daily
  closes;
- point-in-time exchange eligibility and first-full-listing-day rule;
- minimum 10-pair snapshot, descending rank, canonical-string ties;
- long top4 and short bottom4;
- formal RiskCap baseline, 5m, 0.00035 fee, protections, sizing, entry/exit and
  portfolio controls;
- historical windows, performance/risk thresholds, mechanism horizons,
  `PATH_DIVERGENCE`, concentration tests, censoring, side limits, and the need for
  fresh forward.

No alternate lookback, bucket, normalization, residual, or parameter search belongs
to this ID.

## Sole V2 change: cold-start pass-through

At every authentic raw D48 signal:

1. construct the causal eligible universe and ranks;
2. if fewer than 10 pairs are scoreable, block with
   `xsmom_snapshot_unavailable`;
3. if the signal pair itself lacks complete scoreable history while the snapshot is
   valid, preserve the baseline signal unchanged with
   `xsmom_unscored_passthrough`;
4. otherwise apply the registered top4/bottom4 rank gate.

Pass-through is not a favorable rank and is not XSMOM evidence. It exists solely to
keep new-listing age from becoming a hidden second factor.

## Frozen coverage gates

- Snapshot validity: at least 98% of all authentic raw signals.
- Pair common support: at least 95% overall. This threshold was selected with
  knowledge that V1 achieved 97.276%; historical V2 evidence is therefore
  development-only.
- Post-maturity scoreability: 100% in the frozen historical data; fresh forward at
  least 98% overall and 95% per pair.
- Missing-pair pass-through fidelity: 100%.
- XSMOM episodes triggered by an unscored pass-through signal: zero.

## Isolation acceptance

Before candidate metrics are valid:

1. a V2 no-op class using the same indicator/rank plumbing but passing every raw
   signal must exactly reproduce the 331-trade formal baseline;
2. baseline A and baseline B around the candidate must have identical normalized
   trades and wallet paths;
3. candidate and no-op source/config/image/data/listing hashes must be frozen;
4. the only first changed decision in candidate versus no-op may be the registered
   scoreable-pair rank gate.

Any mismatch is `INCONCLUSIVE_IMPLEMENTATION_ISOLATION`.

## Mechanism and robustness

- Changed-signal, shadow-return, and episode statistics include only
  `pair_rank_eligible=true` signals.
- The 111 known historical cold-start signals are reported separately and must behave
  identically to baseline.
- Report EDGE/POWER cold-start, EDGE/POWER mature, and other mature pairs separately.
- In addition to V1 concentration rules, arithmetic removal of all EDGE and POWER
  pair PnL must leave candidate-minus-baseline uplift positive.
- Historical evidence is short-side only because both windows contain zero long raw
  signals.

## Outcome

Historical training and retrospective success cannot produce final `PASS`. At best:

```text
stage_disposition_historical = PASS
final_disposition = INCONCLUSIVE_PENDING_FRESH_FORWARD
```

Fresh forward must satisfy all inherited evidence, side, mechanism, performance,
risk, concentration, and implementation-isolation gates.
