A bounded −EV fill-data canary run 2026-07-15/16 produced the cleanest live proof yet that the crypto-5m signal is healthy and the money is lost at the fill: signal would-win 83.8% vs fill-win 70.2% = a 13.6pt adverse-selection gap, with the fill landing below the ~72–73% breakeven. Killed at −$128.01 over 262 fills.

What ran

  • Bounded −EV fill-data canary, 2026-07-15 12:24:43Z → 2026-07-16 07:02:21Z (~18h37m).
  • w1 sole live wallet @ (one wallet to halve the cost), validated rule unchanged.
  • Purpose: generate fresh live fills for the pre-registered A0 / drift re-tests (which needed post-2f0ec6ad real best_ask_at_snap data — see crypto-shortterm-discriminator-catchability-ask-drift-2026-07-13).

Result

−$128.01 over 262 fills (70.2% fill-win).

Trajectory: +128 as the regime turned. The early positive tempted an “it’s recovering” read — it was small-sample noise (win-rate mean-reverted 92.6% → 70%), NOT a recovery.

The money-shot

For Agents — 13.6pt fill gap confirmed LIVE

Over the canary period (on-chain labels): signal would-win 83.8% (720 in-regime fires) vs fill-win 70.2% (262 fills) = 13.6pt adverse-selection gap at the fill. Fill-win is below the ~72–73% breakeven. Even discounting on-chain’s ~10pt optimism (real signal ~74–77%), the fill still lands below both signal and breakeven. This reaffirms signal-healthy / loss-at-fill on fresh LIVE data — the loss is fill-side, not the model.

Operational learnings

Canary was DOA for ~1h

emit sent repeating-decimal + sub-$1 sizes; PM’s crash-guard roll (round size to 6dp, feat/usdc-size-decimal-fix @ ca07ba5, 13:29Z) fixed the crash.

  • Residual sub-1 notional (directive.rs compute_size_shares); staged fix deferred, never rolled.
  • Attempt-0 no_match real best_ask only ~1/3 populated (PM 2f0ec6ad telemetry gap) → the drift re-test stayed mostly blocked; fix that before any future probe.
  • EMIT_MAX_FIRES is cumulative-all-time per-asset (NOT a bound); money-path caps are dead code — the only real kill switch is wallet mode → dry.
  • Direct DB is now IPv6-only — use the pooler.

Next lever

The only untested fill fix: the size/depth bid-structuring study — size DOWN to avoid stale-depth reach, targeting the 13.6pt gap. Offline, uses the canary small-order data vs the historical ~$7 orders.

Expectation set

Expected to SHAVE not CURE — adverse selection is fill-losers / miss-winners, not just depth-reach. If NO-GO/marginal → the edge is not capturable as a taker here; pivot to a different market/timeframe.