Digital Assets Research (Research Preview)
Current model state (research preview — not validated)
Cycle factor history
Correlation factor history
Validation status — three configurations, three kill rationales
What each gate tests
- G1 — Factor sign stability (≥ 95% pre-reg threshold). Fraction of quarterly refits where the latent factor's sign-resolved orientation is consistent. v2A failed at 55.56% — the 12-month minimum train was too short to identify the cycle factor reliably across data windows.
- G2 — Sub-sample stability (≥ 70% phase agreement). Fits the model on a pre-2022 sub-sample and on the full sample, then compares phase classifications on the overlap window. v1 failed at 61.59%, v2C at 58.33% — the pre-2022 sub-sample fit only ever produces ACCUMULATION / EXPANSION because the underlying data variance can't push the expanding-z into EUPHORIA / DISTRIBUTION territory. v2A passed (100%) because its overlap was tiny by construction.
- G3 — Informativeness vs random (Romano-Wolf p < 0.10). Tests whether the phase distribution differs significantly from a 50/50 random labeling. All three configurations passed this gate — the model output is statistically informative even where it fails the stability gates.
Why all three failed
The unifying lesson: the free-data crypto indicator universe lacks the pre-2022 variance needed for stable 4-phase sub-sample factor identification. The pre-CME-futures era (2017 and earlier) and the pre-institutional-ETF era (pre-2024) behave structurally differently from the post-ETF era. A factor model trained on a sub-sample misses the extremes the full-sample model captures.
What we'd need for v3
Three plausible v3 angles (no commitment — decision belongs in the next conversation):
- Add Glassnode / CryptoQuant on-chain metrics — specifically NUPL, RHODL, Realized Cap. These have richer pre-2022 variance because they're derivative-of-price-with-on-chain-structure rather than purely market-data. Roughly $30–100/mo subscription.
- Drop to a 2-phase classifier (RISK-OFF / RISK-ON). Pre-2022 data CAN support a binary classification reliably. Trade-off: less institutionally distinctive than a 4-phase model.
- Wait. Each year of additional crypto history adds meaningful variance to the pre-sub-sample. By 2027 the pre-2024 sub-sample will include the full ETF-era expansion + correction cycle.
What's published vs. what isn't
- The 11-indicator monthly panel and underlying data feeds (CoinMetrics on-chain, DefiLlama stables, Farside ETF flows, CFTC TFF crypto positioning, Deribit DVOL, yfinance macro extension) — refreshed daily
- The walk-forward DFM model code with full pre-registration and validation harness — auditable end-to-end
- Three kill-log documents transparently recording every configuration tested and the gates each failed
- The model's current cycle phase + correlation regime read — labeled "research preview" on every reference
- CCI as a flagship validated index — the regime call below the fold is research, not a signal subscribers should size off of
- The Repricing family's planned Crypto Futures Sleeve — depends on a passing CCI as input; remains blocked pending v3
- Any quantitative claim that lifts CCI's classification into the methodology pages of the validated sleeves (Core / SN / CB / AW)
Brand-honest position
Macro Sentinel publishes its kill logs. We told subscribers the failed v1, then ran two more pre-registered fixes, then wrote down why those failed too. The model isn't ready for the institutional bar — and the way you can trust we mean it is that we said so on the page where we'd otherwise have launched it.
When v3 ships (paid on-chain data, smaller phase taxonomy, or another year of history makes the substrate work), it'll have the same validation discipline this preview's failure was held to.
scripts/refresh_all.py (LaunchAgent at 16:30 ET weekdays). Source caches: cache/alternative_data/coinmetrics/, cache/alternative_data/defillama_stables/, cache/alternative_data/farside_etf/, cache/alternative_data/cftc_tff_crypto/, cache/alternative_data/deribit_dvol/, cache/alternative_data/macro_extended/. Model code: site/python/bci_compute/cci.py. Validation harness: scripts/cci_validation.py. Pre-reg + kill docs: docs/cci_scope.md, docs/cci_v2_pre_reg.md, docs/cci_v1_kill_log.md.