DashboardProbesRealness Loop › Iter 13 · #4

iteration 13 · 2026-07-23 · usefulness axis · laptop-drives-bigblack

📈 #4 Rank IC + ICIR + HAC-t CHECKPOINT · in-progress

The rank information coefficient: does the feature carry monotone forward-predictive signal — and is it significant once you correct for autocorrelation? This opens the usefulness axis. Injection bug fixed; Admit + power pass; the remaining gates move to the right level of aggregation.

2 / 5
gates pass (injection fixed)
0.030 / 0.081
achieved IC vs targets .03/.08
H 0.809
vwap period-IC ≈ target .79 ✓
2.19×
period naïve/HAC @lag30
Preflight (resource-only): load1 0.13 · 42 GiB available · si/so ~0 · ClickHouse active, readonly=2. 5c/5G/no-swap capped, single-thread BLAS.

State

Gate (§7 row 4)ResultTarget
Admit demoachieved IC 0.081, ICIR 0.75, HAC-t 21, sign-stable\|t\|≥3, IC≥.01, ICIR≥.5PASS
Power @ IC=.03 / T=750achieved IC 0.0295, power 1.0≥ .8PASS
Null FPR ≤.01 & naïve ≥2×HAC FPR 0.003 ✓; bar-level naïve/HAC 1.0≥2×wrong level
N_min(H≈.79) ≥ 2×N_min(.5)bar contribution near-white (H 0.52)ratio ≥2wrong level
Envelope FNR (non-mono / interaction)non-monotone missed ✓; interaction marginalFNR=1 bothOPEN

Three construction errors caught (verify-before-report)

  1. Injection bug — fixed. The signal-injection used a raw real feature as noise; two features have heavy ties (aggregation_density, lookback_hurst) → they add almost no rank variation, so a tiny injected signal dominated the ranking (achieved IC 0.97 / 0.68 instead of 0.03). Fix: use the globally-permuted return as noise → achieved 0.030 / 0.081.
  2. The bar-level contribution is near-white — a real finding. zr(f)·zr(rr) has lag-1 autocorrelation ≈ 0 for every feature, and a circular-shifted persistent feature gives a naïve/HAC FPR ratio of 1.0. BTC 3s-returns are near-white at lag 1, so the HAC correction is not load-bearing at the bar level here.
  3. The necessity + H≈.79 envelope live at the PERIOD-IC series. The per-period (100-bar) IC series of a real predictive feature is long-memory: vwap H_raw 0.809 ≈ the §7 target 0.79 (shuffled 0.555), and the naïve-over-HAC understatement reaches ≥2× at period-lag 30–50 (vwap 2.19@30, all three ≥2.16@50).
featuremean period-ICH_rawH_shufflednaïve/HAC @lag30@lag50
vwap_close_deviation−0.6250.8090.5552.192.57
ofi+0.1080.7360.5531.902.16
aggression_ratio+0.1400.7260.5601.962.24

Resolution (next firing, pre-registered)

  1. Rewrite the significance test to the period-IC series (HAC-t on the 750-length IC series with a frozen period-lag); null-FPR size ≤.01 via block-perm null, the ≥2× naïve-over-HAC necessity on the real persistent period-IC.
  2. Freeze the period-lag (lag 30 → vwap 2.19; lag 50 → all ≥2.16) with a long-memory (H=0.81) justification — no lag-shopping.
  3. N_min(H) at the period level: periods to detect vwap's signal, raw (H 0.81) vs shuffled (H 0.55) → ratio ≥2.
  4. Balanced interaction-only exemplar; seed-robustness sweep before GROUNDED.