Bitcoin Market Cycle Methodology

Every formula and threshold behind Trade The Cycle: the Risk engine, the metrics, target latching, the three timing indicators, and Cycle Altitude.

Trade The Cycle distills eight respected Bitcoin metrics into three numbers: Risk (valuation, 0–100), Time (clock progress, 0–100), and Cycle Altitude (the two lenses fused into one 0–100 cycle read). Every formula and threshold is public; transparent math is the whole point.

1 • Risk engine

Each metric is reduced to one scalar series and scored into three tiers by where its extreme sits relative to its low-risk (buy) and high-risk (sell) targets: 0 at/below the buy target, 1 in neutral (between the targets), 2 at/above the sell target. In a bull market (up-leg) we read each metric's high over the trailing 30 days; in a bear market (down-leg) its 30-day low. The Risk score is the average tier, rescaled to 0–100:

extreme_i = (bull) high_i   |   (bear) low_i    # over the trailing 30 days
tier_i    = 0 (buy) • 1 (neutral) • 2 (sell)
Risk      = 100 * average(tier_i) / 2   # over counted metrics

Reading the high in a bull asks “how hot did each metric get?”; reading the low in a bear asks “how cheap did each get?”, so Risk peaks near cycle tops and troughs near bottoms. Pi Cycle is a top-only signal with no green edge, so it is counted only in a bull market (scored from an implicit floor up to its line) and excluded in a bear, leaving eight metrics counted in a bull and seven in a bear. A discrete buy/sell signal still runs internally via three composite vote-counts combined into a six-phase cycle state, but the phase is not surfaced in the terminal.

2 • The eight metrics & thresholds

MetricReadsLow-risk edgeHigh-risk edge
Stock-to-FlowPrice relative to the Stock-to-Flow model line (scarcity vs price).12.3
2-Year MA MultiplierPrice versus its 2-year moving average; sell band at 5x the 2Y MA.15
Support & Resistance BandPrice relative to the Support & Resistance Band (20-week SMA and 21-week EMA). Below the full band is a historic accumulation zone; reclaiming and holding above it marks bull strength.01
Price BoundaryPrice within the Balanced Price (floor) → Terminal Price (ceiling) band. v1 proxies both as calibrated multiples of Realized Price; real CDD-based values land in v2.01
MVRV Z-ScoreMarket cap vs realized cap, normalized by market-cap volatility.0.17
Puell MultipleDaily issuance value vs its 365-day average (miner-side stress).0.53.5
Net Unrealized Profit/Loss (NUPL)Net Unrealized Profit/Loss: aggregate unrealized profit across all coins.00.75
Pi Cycle Top111-day MA crossing above the 350-day MA × 2: a top-only signal.1

3 • Target latching

Metrics rarely peak or trough on the same day, so each target is latched over a rolling 30-daywindow: once a metric touches its zone, that hit is held for 30 days rather than the whole cycle, so the reading reflects what is happening now instead of a signal that fired months ago. Composite counts are cumulative within that window. On the up-leg the red (sell) latches accumulate; on the down-leg the green (buy) latches accumulate. A confirmed opposite extreme resets the other side. The Risk panel's orange band (the min/max whiskers) is a display of the full cycle range: the Risk score always grades the 30-day window regardless.

4 • Time engine

Three historical timing indicators, each averaging in-house ROI curves derived from price:

  • A • Peak-to-Bottom: days to the next bottom (excludes the earliest cycle).
  • B • Bottom-to-Peak: days to the next top (excludes the first two cycles).
  • C • Halving-to-Peak: days to the next top (excludes cycle 1).
Time = 100 * clamp( days_since_anchor / avg_days_to_event, 0, 1 )

Timing uses a flat average of every completed leg, since cycle lengths are stable. The projected price is the exception: it uses the most recent cycles only (diminishing returns make a straight average overshoot), while the full historical spread is shown as the range. The top blends Indicators B and C; the bottom uses Indicator A. Known halvings: 2012-11-28, 2016-07-09, 2020-05-11, 2024-04-19.

5 • Cycle Altitude

Cycle Altitude = bull ? max(Risk, Time) : min(Risk, Time)   # 0–100

A single 0–100 read that fuses the two lenses. In a bull (climbing toward the top) the more-stretched lens wins, so the read flags a frothy top early; in a bear (sliding toward the bottom) the more-washed-out lens wins, so it flags a capitulation bottom early. The band labels read directionally: the same position means “room to run up” in a bull and “near a capitulation bottom” in a bear.

  • ≤ 35: runway remains (bull) / near the bottom (bear).
  • 35–65: on schedule (mid-cycle, in step with the clock).
  • ≥ 65: running hot (bull) / downside remains (bear).

6 • v1 data deviations (honest notes)

  • Realized cap is recovered as marketCap / MVRV ratio from the free Coin Metrics archive (which does not publish realized cap directly).
  • RHODL is temporarily disabled. The real indicator ratios realized-value HODL bands (1-week vs 1-2yr) and multiplies by market age in days, but age-banded realized value is a paid metric. The v1 cost-basis proxy (1-week band as the 7-day MA of price, 1-2yr band as the mean price over the [t−730, t−365] window, × market age) wasn't accurate enough to surface, so it is excluded from the terminal and the Risk score for now. Real age-banded RHODL returns in v2.
  • Price Boundary bands use Balanced Price (floor) and Terminal Price (ceiling). Both derive from Transferred Price, which needs Coin Days Destroyed, a paid on-chain age metric, so v1 proxies them as calibrated multiples of Realized Price, aligned to the published Balanced (~$39.2K) and Terminal (~$302.2K) levels. Real CDD-based Balanced/Terminal Price land in v2.
  • Timing curves are derived in-house from full price history rather than scraped, with cycle extremes detected by a drawdown/rally zig-zag.

For educational purposes only. Not investment advice. The metrics are historical models that can and will be wrong; past cycles do not guarantee future ones.