Macro panel
10y–2y yield curve
The difference between 10-year and 2-year US Treasury yields. When negative ("inverted"), short-dated bonds yield more than long-dated ones — a configuration that has historically preceded every US recession since 1955.
FRED publishes this as a daily spread (DGS10 − DGS2). We read the raw level in percentage points.
Steep positive curve (above ~1.5%) signals healthy growth expectations — long-term capital wants compensation for tying up money. Flat or inverted curve (below 0%) signals that the bond market expects future rate cuts because growth is slowing. Risk-on when steepening; risk-off when flattening or inverted.
Real 10y yield
The yield on 10-year Treasury Inflation-Protected Securities (TIPS) — the "real" interest rate after stripping out inflation expectations. The pure cost of capital that policymakers actually care about.
FRED series DFII10, published daily.
Low or negative real rates (below 0.5%) mean monetary policy is loose, which lifts risk assets — investors are pushed out the risk curve. High real rates (above 2%) mean restrictive policy, which compresses valuations and squeezes leveraged businesses. Risk-on when low; risk-off when high.
5y breakeven inflation
The bond market's implied forecast for average inflation over the next 5 years. Computed as the spread between nominal 5-year Treasury yield and 5-year TIPS yield.
FRED T5YIE, daily. The number is the inflation rate at which an investor would be indifferent between a nominal Treasury and a TIPS over the period — "breaking even."
Historically read as a regime-dependent signal. In deflationary periods (2009–2020), rising breakevens meant the Fed was succeeding at reflating — risk-on. In the post-2022 inflation regime, elevated breakevens can also signal Fed hawkishness — risk-off. Our sign is +1 (reflation framing). Treat with care during stagflation-like conditions.
HY OAS credit spread
ICE BofA US High Yield Option-Adjusted Spread. The yield premium that investors demand to hold US junk-rated corporate bonds over Treasuries. A direct, real-time measure of credit risk appetite.
FRED series BAMLH0A0HYM2, daily. Already an OAS — adjusts for embedded call/put options in the bond universe so it's comparable across regimes.
Tight spreads (below 3.5%) signal that credit markets are complacent, default risk is being priced low — risk-on. Wide spreads (above 6%) signal that credit investors are pricing-in stress — risk-off. Above 10% is recessionary. One of the most reliable late-cycle / crisis indicators we have.
DXY (trade-weighted USD)
A broad trade-weighted index of the US dollar against the currencies of major US trading partners. Measures dollar strength globally, not just against the major reserve currencies.
FRED series DTWEXBGS. Published weekly (not the daily DXY ICE futures index). We read the raw index level.
A stronger dollar tightens global financial conditions — emerging-market borrowers with dollar debt struggle, commodity prices fall, and risk assets typically suffer. A weaker dollar does the opposite. Risk-off when DXY is high or rising; risk-on when low or falling.
Initial jobless claims
The number of new claims filed for US unemployment insurance benefits in the most recent week. The cleanest high-frequency read on labor market health.
FRED series ICSA, published every Thursday for the prior week ending Saturday. We use the raw weekly count.
Low claims (below 250k) signal a tight labor market — workers are hard to replace, businesses are hesitant to lay off. Rising claims (above 350k) signal labor market stress and have historically preceded recessions by 3–6 months. Risk-on when low; risk-off when rising.
VIX
CBOE Volatility Index. The market's expected 30-day volatility of the S&P 500, derived from the prices of out-of-the-money S&P options. Universally known as the "fear gauge."
Yahoo Finance ticker ^VIX, daily close. The number is annualized expected volatility in percentage points.
Below 15 = complacency, low fear, risk-on environment. 15–25 = normal. 25–40 = elevated stress, risk-off. Above 40 = panic (rare — March 2020, Lehman, 1987). VIX tends to mean-revert; sustained elevated readings matter more than spikes.
Copper / Gold ratio
Price of copper futures divided by price of gold futures. Copper is an industrial-demand proxy (used heavily in construction, electronics, manufacturing); gold is a defensive store of value. The ratio captures whether the commodity complex is leaning cyclical or defensive.
Yahoo Finance HG=F (Comex copper futures) divided by GC=F (Comex gold futures), daily.
Rising ratio signals industrial activity outpacing safe-haven demand — growth confidence — risk-on. Falling ratio signals investors flocking to gold while copper demand fades — defensive positioning — risk-off. A classic Druckenmiller-favorite cyclical gauge.
S&P 500 50d/200d trend
Ratio of the S&P 500's 50-day simple moving average to its 200-day simple moving average. The classic "golden cross / death cross" trend indicator on the broadest equity benchmark.
Yahoo ^GSPC daily closes. We compute SMA(50) ÷ SMA(200) for each day. Stored value is the ratio itself (above 1 = uptrend, below 1 = downtrend).
Ratio above 1 (golden cross) = SPX in a sustained uptrend = risk-on. Ratio below 1 (death cross) = downtrend = risk-off. Trend signals lag price action but filter out short-term noise, which is desirable in a regime classifier.
Equity breadth (IWM/SPY)
Ratio of the Russell 2000 small-cap ETF (IWM) to the S&P 500 ETF (SPY). A measure of market breadth — whether small-caps are participating in the rally or just the mega-cap leaders.
Yahoo Finance IWM ÷ SPY, daily.
Rising ratio = small-caps outperforming = broad-based participation = healthy risk-on. Falling ratio = mega-cap concentration without breadth = late-cycle, narrow leadership = risk-off. Bear markets typically start with small-cap underperformance well before the index tops.
On-chain / crypto panel
Total DeFi TVL
Total dollar value of crypto assets locked across all DeFi protocols — lending, automated market makers, liquid staking, restaking, yield aggregators. The aggregate measure of capital deployment into permissionless finance.
DefiLlama aggregates TVL across all tracked protocols on all chains in USD terms. Updated daily.
Rising TVL = capital flowing into DeFi = on-chain risk appetite = risk-on. Falling TVL = capital withdrawal back to centralized rails or stables = risk-off. Note: USD value is sensitive to ETH/BTC price moves, so growth measures (90d Δ) are often more informative than the level alone.
Total stablecoin float
Total outstanding supply of USD-pegged stablecoins (USDT, USDC, DAI, and others) across all chains. Approximates the dollar liquidity sitting on crypto rails.
DefiLlama stablecoin aggregate, in USD. Updated daily.
Growing stablecoin float = capital entering the crypto ecosystem (often a leading indicator of upcoming deployment into risky assets). Shrinking float = capital leaving crypto. Risk-on when growing; risk-off when contracting. Counter-intuitively, stablecoin growth alongside falling crypto prices is sometimes the most bullish setup — dry powder accumulating during a sell-off.
BTC active addresses
Number of unique Bitcoin addresses that participated in transactions on a given day. A proxy for organic network usage and on-chain engagement.
Blockchain.com's n-unique-addresses chart, daily.
Rising active addresses = engaged user base, growing network utility = risk-on. Caveat: structural decline is real — ETF custody, Lightning Network, and exchange consolidation have moved transactions off-chain. So absolute levels are less informative than they were pre-2021. Treat this as a directional indicator, not a level read.
ETH active addresses
Number of unique Ethereum addresses that transacted on a given day. Equivalent to the BTC measure, for ETH mainnet specifically.
Coinmetrics community data, asset=ETH, metric=AdrActCnt. Daily.
Same logic as BTC active addresses — rising = engaged network = risk-on. Caveats also similar: L2 migration has moved a lot of ETH activity off mainnet. Look for trend changes rather than absolute levels.
BTC MVRV
Market Value to Realized Value ratio. Divides BTC market capitalization by its "realized cap" — the sum of (price-at-last-move × amount) across all UTXOs. Represents how big a paper gain or loss the average bitcoin holder is sitting on.
Blockchain.com mvrv chart. Realized cap is computed from on-chain UTXO data.
Below 1 = market cap below cost basis of holders = historical bottoms (March 2020, late 2022). Above 3 = average holder up 3x = historical tops (late 2017, early 2021). Risk-on when rising from low; the indicator becomes a contrarian peak signal above 3.5. Use with care near extremes.
BTC / ETH ratio
BTC price divided by ETH price. A proxy for "crypto risk preference" — when capital flies to the safest crypto asset (BTC) over the higher-beta major (ETH), risk-off is happening within crypto.
Yahoo Finance BTC-USD ÷ ETH-USD, daily. We use this as a proxy for BTC dominance because true BTC.D historical data requires a paid feed.
Rising ratio = BTC outperforming ETH = capital seeking shelter within crypto = crypto risk-off. Falling ratio = ETH outperforming = animal spirits, alt-rotation = risk-on. Strongly correlates with the broader "alt season" framework.
ETH 50d/200d trend
Ratio of ETH's 50-day simple moving average to its 200-day SMA. The ETH-specific equivalent of SPX_TREND.
Yahoo ETH-USD daily closes. SMA(50) ÷ SMA(200).
Above 1 = ETH in uptrend = risk-on. Below 1 = downtrend = risk-off. Like SPX_TREND, lags but filters noise.
New DEX pools (24h)
Count of new DEX liquidity pools (≈ new token launches) observed across all networks in the trailing 24 hours. A real-time measure of crypto speculation intensity.
GeckoTerminal's /networks/new_pools endpoint, polled daily. The cron appends each day's count to data/regime/token-launches.csv; the percentile rank reads from that accumulated history.
High count = speculative froth (think 2021 NFT/meme manias, 2024 memecoin frenzy) = late-cycle behavior = contrarian risk-off signal. Low count = calm market = risk-on. Sign −1: rising count counts as risk-off. Note: this indicator is "accumulate-forward" — it only became reliable once we had ~60 days of daily samples, and the upstream API caps make it under-count on the busiest days.
DeFi TVL growth (90d)
The 90-day percent change in total DeFi TVL. Captures flow — whether capital is actively expanding or contracting the on-chain ecosystem — independent of where the absolute level happens to be.
DefiLlama TVL series, transformed via (TVL[today] − TVL[today−90]) ÷ TVL[today−90].
Positive growth = capital flowing in = risk-on. Negative growth = capital exit = risk-off. Sits alongside DEFI_TVL (level): position vs. flow are different questions and both matter for treasury context.
Stablecoin float growth (90d)
The 90-day percent change in total stablecoin float. Captures whether dollar liquidity on crypto rails is expanding or shrinking — a leading indicator of imminent risk-asset deployment or withdrawal.
DefiLlama stablecoin aggregate, transformed via (Stables[today] − Stables[today−90]) ÷ Stables[today−90].
Stablecoin float almost always grows over multi-month periods (the asset class is structurally growing), so a 90d change above ~5% counts as healthy expansion = risk-on. Stagnation or contraction = capital leaving crypto = risk-off. One of the cleaner pure-flow signals.