Validated primary market states
The primary map uses causal 90-day exponentially weighted factor returns, trailing BTC 45-day return and trailing BTC 45-day realized volatility. PCA compresses that panel and KMeans partitions it into two descriptive states. A trailing 14-day mode suppresses one-day label churn; future days never rewrite past labels.
The build fails if any state occupies less than 10% or more than 70% of the sample, or if adjacent states differ by less than three percentage points of mean trailing BTC return. That rejects outlier-only clusterings before export.
| State | UTC days | Occupancy | Mean BTC 45d return | Mean BTC 30d ann. vol. |
|---|---|---|---|---|
| Low-Trend / Risk-Off | 929 | 61.7% | -0.0% | 41.9% |
| Strong-Trend / Risk-On | 576 | 38.3% | +13.6% | 53.4% |