Framework · glossary
How the dashboard reads the macro tape, why each indicator is in the catalog, and what the words mean.
Framework overview
The dashboard is a regime monitor for a single crypto trader. It consolidates macro, TradFi, Fed liquidity, crypto capital, microstructure, leverage, and policy data into one page that loads in under 2 seconds and reads in under 60.
Three pills sit at the top of the screen, each answering one question:
- Regime pill — is the macro tape friendly to risk right now? Voting model of ~20 indicators converted to a Risk-on / Neutral / Risk-off call.
- Position pill — given the regime and the other model inputs, what target long exposure and hedge does the rule-based position sizer suggest? Rules, not advice.
- Fed pill — what does the dashboard's Fed reaction-function model think the next FOMC delivers, and does that disagree with CME FedWatch?
The composite voting model is more robust than any single signal. When one indicator goes haywire (a Yahoo outage, a stale FRED publish), the regime call still works. Cards fail gracefully — when upstream data is stale they fade to 60% opacity but retain the last known value.
The Tuesday review at the bottom is a structured weekly decision-making checkpoint: auto-fill the 10-item checklist from live indicator values, jot the regime read / market read / three to watch / actions, save the snapshot. That snapshot is what the score-yourself view eventually grades against actual outcomes.
Indicator catalog
One entry per indicator currently in the dashboard, organized by row. Each entry lists the data source, what the indicator measures, why it earned a place in the catalog, and (for voting indicators) the tier thresholds.
Row 1 · Global macro
us-m2-yoy · FRED · votingUS M2 weekly (WM2NS), YoY change
US M2 money stock growth (WM2NS, weekly). Stands alone as the M2 voting signal — the prior Global M2 composite was retired because FRED's foreign M2 series froze in 2017-2019. Reflects only Fed policy and US bank deposit behaviour.
Persistent US M2 contraction is rare since WWII and has preceded every modern US recession when it occurs. Expansion has historically led risk assets by 12-18 weeks at major turning points.
Tiers · Green: > 0% YoY (expanding). Neutral: flat. Red: < 0% (contracting). Extreme: > +8% green×2 · < -2% red×2.
gold · Yahoo Finance · informationalGold futures
Gold spot price in USD. The deepest 'fear ledger' in global markets, traded around the clock.
Gold strength concurrent with strong DXY is the cleanest signal of monetary debasement fear rather than dollar weakness.
wti · Yahoo Finance · votingWTI crude oil futures
WTI crude oil futures front month. Reflects real-economy demand plus supply shocks and OPEC discipline.
Sustained crude above $85 has preceded every modern US recession by 12-18 months; under $65 typically signals demand destruction.
Tiers · Green: $65-85 in range. Neutral: edges. Red: < $65 (deflationary). Extreme: > $85 inflationary red×2.
copper-yoy · Yahoo Finance · votingCopper futures vote by YoY
Copper futures, the 'PhD of commodities'. Reflects industrial activity globally and China construction in particular.
The copper-gold ratio (rising = pro-growth) tracks the 10y Treasury yield closely; persistent divergence is a signal to fade the yield move.
Tiers · Green: rising YoY. Neutral: flat. Red: falling YoY.
Row 2 · TradFi drivers
nfci · FRED · votingChicago Fed financial conditions
Chicago Fed National Financial Conditions Index. Composite of money market, debt, equity, and shadow banking conditions. Negative = loose.
NFCI flipping loose to tight has led recessions by an average of 14 weeks since 1971; flips are rare and meaningful.
Tiers · Green: < -0.2 (loose financial conditions). Neutral: -0.2 to 0.2. Red: > 0.2 (tight). Extreme: > 0.5 red×2.
hy-spread · FRED · votingICE BofA HY OAS
ICE BofA US High Yield option-adjusted spread. The risk premium credit markets require to hold junk debt.
Credit leads equity by 2-8 weeks at credit-driven turning points. HY widening alone is the single best early warning signal.
Tiers · Green: < 3.0% (risk-on). Neutral: 3.0-4.0% (normal). Red: 4.0-5.0% (caution). Extreme: > 5.0% red×2.
ig-spread · FRED · informationalICE BofA Corporate OAS
Investment-grade corporate option-adjusted spread. Quieter than HY but corroborates the credit cycle.
IG calm while HY widens often means idiosyncratic stress; both widening together confirms a credit cycle turn.
spread-2s10s · FRED · voting10y minus 2y Treasury
10y minus 2y Treasury yield. Inverted curve = market expects rate cuts; steepening from inversion = recession arriving.
2s10s has inverted ~12-18 months before every modern US recession. The dis-inversion itself is the more reliable trigger signal.
Tiers · Green: positive and steepening. Neutral: positive flat. Red: inverted. Extreme: deeply inverted red×2.
dxy · Yahoo Finance · votingUS Dollar Index
US Dollar Index, weighted basket against EUR (57.6%), JPY (13.6%), GBP, CAD, SEK, CHF.
Strong DXY is the single strongest headwind to global risk assets. EM equities and BTC are most sensitive.
Tiers · Green: < 100 (falling). Neutral: 100-103. Red: > 103 (rising). Extreme: > 103 rising red×2.
Row 3 · Fed liquidity
walcl · FRED · votingFed balance sheet
Federal Reserve total assets. Expanding = QE; contracting = QT.
Net liquidity (WALCL - RRP - TGA) leads BTC by 4-12 weeks at major turning points. WALCL alone is the slowest moving leg.
Tiers · Green: expanding over 4w. Neutral: flat. Red: contracting (QT).
rrp · FRED · votingOvernight reverse repo
Overnight Reverse Repo facility usage. Cash parked at the Fed by money market funds earning the RRP rate.
RRP draining injects cash into broader markets; rising RRP is functional QT regardless of the WALCL print.
Tiers · Green: falling. Neutral: flat. Red: rising.
tga · FRED · informationalTreasury General Account
Treasury General Account. The US Treasury's checking account at the Fed.
TGA drawdown is functional QE (cash to markets); buildup is functional QT. Watch debt ceiling resolutions for large moves.
net-liquidity · Computed composite · informationalWALCL - RRP - TGA
WALCL minus RRP minus TGA. The cleanest single liquidity metric, combining all three Fed-side balance sheet legs.
Net liquidity is the dominant macro input to BTC over 4-12 week windows. Equity beta is lower but in the same direction.
Row 4 · Crypto capital
btc-funding · Binance public · votingBTCUSDT perp funding
Binance BTCUSDT perpetual funding rate. Positive = longs paying shorts; negative = shorts paying longs.
Funding above 0.05% sustained signals leveraged long bias and cascading liquidation risk. Negative funding often fuels short squeezes.
Tiers · Green: 0.005-0.05% / 8h (healthy). Squeeze setup: < -0.01%. Extreme: > 0.05% red×2 (froth).
eth-funding · Binance public · informationalETHUSDT perp funding
Binance ETHUSDT perpetual funding rate. Pairs with BTC funding for cross-asset confirmation of leverage stress.
ETH funding diverging from BTC's regime (eg ETH negative while BTC positive) is usually a near-term setup signal.
usdt-dominance · CoinPaprika · votingUSDT mcap as % of total crypto mcap
USDT market cap as a percentage of total crypto market cap. Rising = capital fleeing to cash; falling = capital deploying into BTC/ETH/alts.
USDT.D inversely correlates with BTC at 0.7+ on weekly returns. Above 8% historically marks capitulation tops; below 6% marks risk-on regimes.
Tiers · Green: falling. Neutral: flat. Red: rising. Extreme: < 6% green×2 · > 8% red×2.
stablecoin-mcap · DefiLlama · votingTotal stablecoin market cap
Total stablecoin market cap across all chains and issuers. Aggregate dry powder available in crypto.
Stablecoin mcap expansion is the cleanest signal of new fiat capital entering the sector. Sustained contraction is bearish at the regime level.
Tiers · Green: growing wk. Neutral: flat. Red: contracting.
defi-tvl · DefiLlama · votingTotal DeFi total value locked
Total Value Locked across DeFi protocols. Reflects DeFi risk appetite plus on-chain liquidity.
DeFi TVL leads alt rotation by 2-6 weeks. Sustained contraction across chains marks bear regimes.
Tiers · Green: growing wk. Neutral: flat. Red: contracting.
btc-etf-7d · SoSoValue · votingSpot BTC ETF net flows last 7d
Spot BTC ETF net flows aggregated over 7 days. Direct measure of TradFi institutional demand for spot BTC.
Sustained inflows above $1B/week is the single strongest bullish signal in the post-Jan-2024 era. Outflows above $500M/week typically clear before bottoms.
Tiers · Green: net positive. Neutral: near zero. Red: net negative. Extreme: > $1B green×2 · < -$500M red×2.
eth-etf-7d · SoSoValue · informationalSpot ETH ETF net flows last 7d
Spot ETH ETF net flows over 7 days. Lower magnitudes than BTC ETFs but similar mechanics.
ETH ETF flows typically follow BTC ETF flows by 1-2 weeks. Persistent divergence signals rotation between the two.
mint-pace-7d · Etherscan · informationalUSDT + USDC mints last 7d
Newly issued USDT (Ethereum + Tron) and USDC (Ethereum) over the past 7 days. Leading indicator of stablecoin mcap moves.
Mint pace at $1B+/week typically precedes a stablecoin mcap expansion print by 1-2 weeks.
Row 5 · Microstructure
dvol · Deribit public · votingDeribit BTC implied vol index
Deribit BTC implied volatility index, a 30-day forward-looking volatility measure derived from the options chain.
DVOL below 35 = complacency, often precedes a vol expansion. Above 70 = panic, often the bottom. Equity VIX has the same character.
Tiers · Green: < 35 (complacent). Neutral: 35-50 (normal). Red: 50-70 (elevated). Extreme: > 70 red×2 (fear).
put-call · Deribit public · votingBTC options put/call OI ratio
BTC options put/call open interest ratio across Deribit. Higher = more defensive positioning.
Put/call extremes often coincide with local turning points. High P/C readings near support typically mark capitulation bottoms.
Tiers · Green: < 0.6 (bullish call dominance). Neutral: 0.6-1.2. Extreme: > 1.2 red×2 (puts loaded).
skew-25d · Deribit public · votingFront-month 25d put IV minus call IV
Front-month 25-delta put IV minus 25-delta call IV. Positive = puts bid (defensive); negative = calls bid (bullish positioning).
Skew extremes precede directional moves by 1-2 weeks. Persistent crash skew that fails to flip often clears before a melt-up.
Tiers · Green: negative (calls bid). Neutral: near zero. Red: positive (puts bid).
term-structure · Deribit public · informationalFront vs back month ATM IV
Front-month minus back-month ATM implied volatility. Positive = backwardation (near-term fear); negative = contango (calm regime).
Backwardation typically resolves into spot moves within days. Deep contango is associated with grinding low-vol rallies.
max-pain · Deribit public · informationalBTC options max pain next expiry
The strike price at which call and put option writers collectively lose the least at expiry. Often acts as a magnet for spot near monthly expiry.
Spot tends to gravitate toward max pain in the 48-72h before monthly expiry, particularly when open interest is retail-driven.
Row 6 · Leverage and flow
funding-dispersion-btc · Multi-venue aggregate · informationalBTC perp funding spread across Binance/OKX/Bybit/Deribit
Spread between BTC perpetual funding rates on Binance, OKX, Bybit, and Deribit. Normally venues converge within 0.5 bps per 8h funding period. Spreads above 2 bps indicate venue-specific positioning skews and a short-term arbitrage opportunity.
Not a regime signal — a microstructure flag worth watching for execution. Persistent dispersion often coincides with one venue running hot on leverage while others stay neutral; the spread typically resolves within a single funding interval.
defi-borrow-usdc-max · Viem direct contract reads · votingMax variable USDC borrow APR across Aave v3, Compound v3, Morpho Blue
Maximum variable USDC borrow APR across Aave V3 and Compound V3 on Ethereum mainnet, read directly from the protocol contracts via viem. Reflects on-chain leverage demand for the dominant stablecoin; arbitrageurs flatten the floor so the tightest venue binds. (Morpho Blue is deferred — per-market borrow rates need a utilisation-weighted aggregate; see TODO.md.)
Spikes above 15% APR typically precede leverage flushes within 1-2 weeks. Sustained sub-4% readings suggest deleveraging is complete and the next leg of risk-on can begin. Lead time to BTC: 5-10 days at major turning points.
Tiers · Green: 4-8% (healthy demand). Neutral: < 4% balanced · 8-15% elevated. Red: > 15% (froth). Extreme: > 25% red×2.
cme-basis-btc-annualized · CME via Yahoo proxy · votingCME BTC front-month futures basis vs spot, annualised in bps
CME BTC front-month futures basis, annualised in bps versus spot. Tracks institutional positioning — institutions can't hold spot directly so they express bullish leans through regulated futures.
Above 800 bps annualised = institutional bulls leaning in. Above 1500 bps = crowded cash-and-carry that historically marks local tops. Backwardation (negative basis) signals leveraged stress and is often the bottom of a deleveraging cycle. Lead time to BTC reversals: highly variable, 1-21 days.
Tiers · Green: > 800 bps (bullish lean). Neutral: 0-800 bps (normal). Red: < 0 bps (backwardation, stress). Extreme: > 1500 bps red×2 (crowded cash-and-carry).
cme-btc-cot-net · CFTC SODA · votingCME Bitcoin futures asset-manager net positioning
CFTC weekly Traders in Financial Futures (TFF) report. Net position is asset-manager longs minus shorts on CME BTC futures, with 52-week percentile rank to flag crowded positioning.
Asset managers are momentum followers, not contrarians, so increasing net long with rising spot is confirmation. Extreme positioning marks inflection points: >95th-percentile longs precede pullbacks, <5th-percentile longs (very short / unwound) precede squeezes.
Tiers · Net long + rising = bulls confirming. Net short + rising = bears building. 52w percentile ≥ 95 = crowded long red×2 · ≤ 5 = crowded short green×2.
Context row
btc-gold · Computed composite · informationalBTC spot price divided by gold front-month futures (USD per troy ounce)
BTC spot price divided by gold front-month price (USD per troy ounce). A rough 'how many ounces of gold to buy one BTC' read, useful as a slow-moving relative-value gauge between the two scarcity assets.
Rising ratio = BTC outperforming gold (risk-on, monetary-debasement narrative favouring crypto). Falling ratio with both rising = gold-led debasement trade; falling with both falling = broad risk-off where gold is the defensive bid.
btc-hashrate · Computed composite · informationalBitcoin network hashrate in EH/s (7-day moving average from blockchain.com)
Bitcoin network total hashrate in EH/s (exahashes per second), reflecting miner capacity online. blockchain.com's chart is a 7-day moving average so day-to-day noise is already smoothed.
Sustained hashrate growth is structurally bullish — miner capex commits to forward security. Sharp drops (>10% over weeks) signal miner capitulation, historically clustering at price lows. Context only; not a trade signal on its own.
steth-spread · Computed composite · informationalLido stETH staking APR minus US 10-year Treasury yield (percentage points)
Lido stETH staking APR minus the US 10-year Treasury yield. Captures the on-chain risk-free-ish yield premium over the macro risk-free rate, a key cross-asset relative-value read.
Compressed spread (≈ 0 or negative) erodes the case for new ETH staking flows. Wide positive spread (>1.5pp) makes staking attractive and tends to coincide with capital rotation from TradFi yield into on-chain yield.
fng · Computed composite · informationalCrypto Fear and Greed Index from alternative.me (0=extreme fear, 100=extreme greed)
Crypto Fear and Greed Index (alternative.me), a composite of volatility, momentum, social sentiment, dominance, and trends. Range 0-100. Read contrarian.
Extreme fear (≤20) historically marks local capitulation lows; extreme greed (≥80) marks frothy distribution zones. The signal is the extreme, not the middle — 35-65 is noise.
Regime call algorithm
Each voting indicator classifies into one of five tiers: green, red, neutral, green-extreme, red-extreme. Extreme tiers double-vote — they reflect signals already pushing past their normal range and warrant amplified weight.
The tally: green_weight = sum of green votes (extreme × 2), same for red. diff = green_weight − red_weight.
Call: diff > +2 → Risk-on · diff < -2 → Risk-off · |diff| ≤ 2 → Neutral.
Why composite: any one signal can be wrong, late, or stale. The composite is harder to fool. Tier flips matter, but the call is driven by the aggregate weight. The regime pill click-expand panel shows the full table of voting signals and a "closest to flipping" section listing the 3-4 indicators nearest to crossing a tier threshold — the watchlist for what could move the call next.
Fed model framework
Four thematic blocks score in [-1, +1] from the same data feeding the regime call. Block scores are weighted and combined into a single combinedScore:
- Inflation pressure — 40%. CPI YoY, CPI surprise, core-CPI 3m vs YoY, UMich 1y expectations, WTI vs $85.
- Employment strength — 30%. NFP surprise, unemployment 3m change, Sahm rule, claims 4w vs 12w MA.
- Financial conditions — 20%. NFCI, HY spread, 2s10s, net liquidity 4w change.
- Growth momentum — 10%. Copper YoY proxy, WTI growth check, plus China credit impulse / Korea exports when those sources come back online.
Sahm rule override: when 3m unemployment MA exceeds the prior 12m low by 0.5pp+, the employment block hard-snaps to -1. This isn't directly a "force a cut" signal — the combined score reflects the genuine policy conflict (Sahm + hot inflation = stagflationary mix, Fed historically prioritises inflation).
Patience bias: the model adds +0.25 to hold_bias_raw before normalisation, reflecting the Fed's revealed preference for status quo. Without it, scores near zero gave hold near-zero probability, which doesn't match observed FOMC behaviour.
The combined score maps to a five-outcome probability distribution (cut50, cut25, hold, hike25, hike50). The dashboard compares this to CME FedWatch — when any per-outcome diff exceeds 15pp, the divergence flag fires and the Fed pill gets a blue accent. The divergence is the call's actual edge: if the model and the market agree, there's no information. If they disagree, decide whose assumption you trust.
Position sizing rules
Multiplicative chain starting from a regime-diff base exposure:
- Base — diff > +5 → 90%, +3..+5 → 75%, +1..+2 → 60%, -1..0 → 50%, -2 → 40%, -3..-4 → 30%, < -4 → 15%.
- Vol regime (DVOL) — < 35 ×1.10, 35-50 ×1.00, 50-70 ×0.85, > 70 ×0.65.
- Fed lean — combined > +0.5 ×0.85, ±0.5 ×1.00, < -0.5 ×1.10. Divergent flag adds 10% hedge (not exposure).
- Credit (HY spread) — > 5% ×0.70, 4-5% ×0.85, < 4% ×1.00. > 4.5% adds 10% hedge.
- Liquidity (net liq 4w change) — > +$100B ×1.05, flat ×1.00, < -$100B ×0.90.
- Extreme funding (BTC) — > 0.05% / 8h ×0.80 (froth), < -0.01% ×1.05 (squeeze setup).
- Sahm hard override — caps target at 30%, adds 10% hedge, caps leverage at 0.5×.
The hedge ratio accumulates: Fed divergent +10pp, HY > 4.5% +10pp, Sahm +10pp, DVOL > 70 +5pp. Capped at 35%. Stable reserve fills the remainder of 100%.
Max leverage default 1.0× (spot only). Steps up to 2.0× when diff > +4 and DVOL < 40; 2.5× when diff > +5 AND DVOL < 35 AND fedCombined < -0.3. Caps at 0.5× when Sahm triggered, 1.0× when diff < +1.
Thresholds live in lib/indicators/position-sizing-config.ts — tune in git, not in the UI. The output is rules-based, transparent, and not advice; the pill UI makes that explicit.
Cross-asset correlations
Six tiles between Row 6 and the context row, each showing BTC's rolling 30d and 90d Pearson correlation against DXY, Gold, SPY, Net Liquidity, HY spread, and Copper.
The trend arrow shows whether the 30d window is strengthening (in the current sign direction) or weakening vs the 90d. Strong correlation magnitudes (|corr| > 0.5) saturate the tile colour; weak (< 0.3) renders muted.
Why these pairs: DXY is the dominant macro reflex, Gold is the alternate store-of-value, SPY measures risk-asset correlation, Net Liquidity is the liquidity backdrop, HY is the credit-stress channel, Copper is the global growth proxy. Reading correlation shifts is a regime-change tell — when BTC decouples from SPY and recouples to gold, the macro narrative is doing something.
Math: log returns on price-like series, level diffs on spread/composite-dollar series. The windows are intentionally fixed at 30d/90d and do not respond to the horizon toggle — correlation regimes have their own natural cadence.
Glossary of terms
- Backwardation
- When front-month futures trade above back-month — usually a sign of near-term stress or supply tightness.
- Basis (futures)
- Spread between futures price and spot. CME BTC basis is annualised in bps over the time-to-expiry.
- Breakeven inflation
- TIPS-implied inflation expectation derived from nominal yield minus real yield.
- Contango
- When back-month futures trade above front-month — the normal carry state for most commodity and crypto markets.
- COT (Commitments of Traders)
- Weekly CFTC report of net positioning by trader category for CME-listed futures.
- DVOL
- Deribit BTC implied volatility index — 30d ATM BTC option IV expressed as an annualised percent.
- FedWatch
- CME's market-implied FOMC outcome distribution. Dashboard pulls an approximation by inverting Fed Funds futures (ZQ).
- FOMC
- Federal Open Market Committee — the Fed's rate-setting body. Meets eight times per year.
- Funding rate
- Periodic payment between perp long and short holders that anchors perp price to spot. Positive = longs pay shorts.
- IG / HY
- Investment-grade / high-yield corporate credit spreads. Wider HY = stress; tight HY = risk-on.
- IV-RV spread
- Implied vol minus realized vol. Positive = options expensive (sell-vol bias); compressed = options cheap.
- Liquidations
- Forced unwind of leveraged perp positions when margin runs out. Cascade liquidations amplify directional moves.
- Mint pace
- USDT + USDC minted (treasury issuance to circulation) — leading proxy for stablecoin demand and dry powder.
- NFCI
- Chicago Fed National Financial Conditions Index. > 0 = tight, < 0 = loose. The 1973-2024 mean is approximately zero.
- NFP
- Non-farm payrolls — monthly US jobs report. The dashboard reads CPI / NFP / claims surprises into the Fed model's employment block.
- OI (open interest)
- Outstanding contracts on a venue. Rising OI alongside price = trend confirmation; rising OI against price = distribution / accumulation.
- Perp (perpetual swap)
- Crypto-native futures contract with no expiry. Funding rate substitutes for the expiry mechanism.
- Sahm rule
- Recession early-warning: triggers when the 3m unemployment MA exceeds the prior 12m low by 0.5pp. Caps position-model exposure when active.
- SEP (Summary of Economic Projections)
- Quarterly Fed staff forecasts published alongside the FOMC statement at the March / June / Sept / Dec meetings.
- Skew (25d)
- Front-month 25-delta put IV minus 25-delta call IV. Positive = puts bid (downside fear); negative = calls bid (call buying).
- Stablecoin dominance
- Stablecoin market cap as % of total crypto market cap — proxy for dry powder vs deployed capital.
- TGA
- Treasury General Account — the Treasury's checking account at the Fed. Builds drain liquidity; draws release it.
- Term structure
- IV (or basis) across expiries. Backwardation = front higher than back; contango = back higher than front.
- TVL
- Total value locked in DeFi protocols, in USD. Proxy for on-chain leverage and capital deployment.
- USDT.D
- Tether dominance — Tether's market cap divided by total crypto market cap.
- WALCL
- Wednesday-released Fed balance sheet total assets. Expansion = QE / liquidity injection; contraction = QT.
- z-score
- Standardised distance from a rolling mean. The dashboard's What-changed row surfaces indicators with |z| > 1.5 over their 90d weekly-change distribution.