Skip to content
Live on X · Wed
Dashboard Live 5,754 daily closes · since July 18, 2010

Bitcoin CAGR Dashboard

Rolling compound annual growth rate for Bitcoin across 1, 2, 3, 4, and 5-year windows — benchmarked against gold, the S&P 500, and long-dated Treasuries.

Annual returns, percentile outcomes, Sharpe and Sortino, drawdown and rolling correlations, price and market-cap level histories, and a symmetric 4-year forecast model.

Rolling CAGR with BTC Price Overlay
CAGR on left axis · BTC price (log) on right axis · Click any legend item to toggle
Click a series to show or hide it
4-Year CAGR Forecast with Price Trajectories
Set a target price and a time horizon — see how the 4-year CAGR evolves under symmetric bull / base / bear scenarios
Target BTC Price $154,500
$20K$500K
Forecast Period 12 months
1 mo24 mo
Annual Return — Bitcoin vs Gold, S&P 500, and TLT
Calendar-year total return (close-to-close) for each asset, plus trailing 3/5/10-year CAGR roll-ups. Auto-extends each new year.
Year Bitcoin Gold (GLD) S&P 500 TLT
Percentiles of Historical Rolling CAGR Outcomes
Distribution of rolling-horizon compound returns across every historical start date. Left column = percentile; columns = holding horizon.
Percentile 1-Year CAGR 2-Year CAGR 3-Year CAGR 4-Year CAGR 5-Year CAGR

Risk-Adjusted Metrics
Sharpe ratio, Sortino ratio, maximum drawdown, and 30/90/365-day rolling volatility. Risk-free rate from the 13-week T-bill.
Asset Annualized Return Annualized Vol Sharpe Sortino Max Drawdown
Rolling 30-day vol (annualized)
Rolling 90-day vol (annualized)
Rolling 365-day vol (annualized)
Rolling Correlation — BTC vs Gold, S&P 500, TLT
Pearson correlation of daily log returns over the selected window. Near zero = uncorrelated; sign indicates co-movement direction.
On This Date — Bitcoin Close by Year
Date BTC Close Return to Today Annualized
Price Level History
First crossing, days above, days below, and lifetime share above each closing-price threshold.
Level First Date Crossed Days Above Days Below % Above
Market Cap Level History
Market cap = daily close × ledger-derived circulating supply. Thresholds: $300B / $500B / $750B / $1T / $1.25T.
Level First Date Crossed Days Above Days Below % Above
BTC close as of April 27, 2026. Benchmarks (S&P 500, GLD, TLT, Rf) as of April 20, 2026. Refreshed by True North's automated daily pipeline.

Disclaimer: CAGR values, annual returns, percentile distributions, Sharpe/Sortino ratios, drawdown statistics, correlations, and price/market-cap level counts shown on this page are historical calculations from daily closing prices and are for informational and educational purposes only. The forecast panel is a mechanical projection based on a user-selected target price, not a prediction of future Bitcoin prices. Past performance does not guarantee future results. Nothing on this page constitutes investment advice, a recommendation, or a solicitation to buy or sell any security. Always consult a qualified financial advisor before making investment decisions.

Methodology

Rolling CAGR

For each day in the dataset the dashboard looks up the BTC closing price exactly N years earlier and computes (endPrice / startPrice) ^ (1 / N) − 1, expressed as a percentage. A ±5-day tolerance handles weekend and holiday gaps in the underlying series. The full rolling series is precomputed once per horizon on page load and reused across the KPI bar, main chart, and percentile table.

Annual return table

For each calendar year we take the asset's earliest close in that year and its latest close, then report (lastClose / firstClose) − 1. Years with fewer than 20 trading days are labelled as partial. Trailing 3/5/10-year rollups use CAGR between the period-start first close and the period-end last close on a common-date basis. Assets do not trade every day, so cross-asset comparisons use each asset's own first/last observation inside the period.

Percentile outcomes

For each holding horizon (1–5 years) we take every valid rolling-CAGR observation across the full history, sort ascending, and report nine percentile cuts: 0.4%, 5%, 10%, 25%, 50% (median), 75%, 90%, 95%, 99.6%. The count of observations is shown in the first row; samples are not independent (overlapping windows) but the empirical distribution is a useful descriptor of the outcome range.

Annualized return, Sharpe, Sortino, and drawdown

Annualized return is geometric (CAGR-equivalent): exp(mean(daily log returns) × N) − 1, with N = 365 for Bitcoin (trades every day) and N = 252 for equity and bond benchmarks. Comparable across assets by construction.

Volatility is the sample standard deviation of daily log returns, scaled by √N. Sharpe = (annualized return − annualized Rf) / annualized volatility. Sortino uses downside deviation against a 0% MAR on daily returns, following the Sortino (1994) / CFA / Morningstar convention: sqrt(Σ min(r_i − MAR, 0)² / N_total). The denominator is the full sample size — positive-excess returns contribute zero to the sum. Annualized the same way (× √N).

Risk-free rate is the rolling average of the 13-week T-bill yield over the selected window, used as-is (quoted annualized percent → decimal). Max drawdown is the largest peak-to-trough decline on a closing-price basis across the window.

Rolling correlation

Pearson correlation of daily log returns between Bitcoin and each benchmark over 30-day, 90-day, and 365-day trailing windows. The return series is the intersection of business days where both assets traded (Bitcoin weekend prints are excluded for correlation math only — they remain in the CAGR and volatility series). Headline matrix values are the most recent point of each series; the trend chart shows the 90-day rolling value for all three benchmarks across the full common history.

Forecast model — base / bull / bear

The target-price slider sets a linear ramp from the latest BTC close to the chosen price over the chosen horizon (months × 30.44 days/month). Scenarios are defined as symmetric intensity multipliers on the base move:

  • bullTarget = target + 0.5 × |target − spot| — overshoots the user's target by 50% of the move's magnitude.
  • bearTarget = target − 0.5 × |target − spot| — undershoots by the same amount.
  • Guarantees bull ≥ base ≥ bear for every target, and applies a 1% floor on the bear price to keep CAGR math finite.

For each day along each ramp the dashboard computes the 4-year CAGR using the projected future close and the actual historical close 4 years prior to that day. Line segments turn red below 0% CAGR and green above.

BTC inflation rate

Deterministic from the block-reward schedule: annualized_issuance = block_reward × 144 × 365.25 and inflation = annualized_issuance / current_supply. The current reward (3.125 BTC/block after the April 2024 halving) is hard-coded against the halving schedule; the supply denominator is read from the ledger-derived series on this page.

Price and market-cap level tables

Thresholds are checked against each daily close. "First date crossed" is the earliest day the close reached the threshold. "Days above/below" counts closing observations. "% above" is days above / total observations. Market cap uses close × supplyOnThatDay, with supply drawn from the primary-source BTC historical dataset (ledger-derived daily circulating supply) for dates back to July 18, 2010.

Data sources

  • BTC price (pre-2014): primary-source BTC historical dataset — daily USD close back to 2010-07-18, sourced via the daily pipeline.
  • BTC price (2014+): daily BTC/USD close aggregates from public market data feeds, same pipeline that powers the rest of True North's dashboards.
  • BTC circulating supply: primary-source BTC historical dataset — ledger-derived daily supply.
  • S&P 500, SPDR Gold (GLD), iShares 20+ Year Treasury (TLT): public market data feeds, adjusted daily close.
  • Risk-free rate: 13-week T-bill yield (public market data feed), percent, daily.
  • Refresh cadence: All series are pulled by the automated daily pipeline — no browser-side vendor calls.

Assumptions and caveats

  • Pre-2014 daily closes predate the existence of any single canonical BTC/USD exchange — the primary-source historical dataset blends across the early exchange tape, using the upstream provider's published methodology. True North does not republish the vendor name on this page; the source is disclosed in the release notes accompanying the data pipeline.
  • The all-time max drawdown includes Bitcoin's 2011 collapse (−94% peak-to-trough on the early exchange tape). The magnitude is primary-source and internally consistent, but it rests on a single stitched pre-exchange-era price series — institutional readers who require multi-vendor corroboration of pre-2013 lows should treat the figure as indicative, not definitive. Post-2013 drawdown math is corroborated across all standard sources.
  • Correlation math runs on the intersection of business days where both assets traded. Bitcoin weekend prints are excluded for correlation only; they remain in the CAGR, percentile, and volatility series.
  • GLD is used as a public exchange-traded proxy for gold spot. Tracking error versus LBMA PM gold fix is documented at ≤0.10% across the BTC era.
  • TLT is a total-return ETF representation of long-dated Treasuries. A yield-only secondary source is available if the ETF probe fails, but yield and total-return paths are not interchangeable for Sharpe/drawdown math and are not swapped silently.
  • Rolling percentile observations overlap, so the percentile table describes the empirical distribution of outcomes, not independent samples.
  • Annual-return rollups use each asset's own trading calendar for period-start and period-end closes.

Why the Four-Year Window Matters

Bitcoin's supply issuance halves approximately every four years, and post-halving cycles have historically shown distinct accumulation, markup, distribution, and markdown phases. Showing 1, 2, 3, 4, and 5-year rolling CAGRs on the same chart makes those cycles visible: the 1-year line is the most volatile, the 5-year line the smoothest, and the spread between them is a rough measure of where in a cycle Bitcoin is trading.

The 4-year window is the most referenced one in Bitcoin discourse because it is the longest horizon where a single halving cycle dominates the return. The forecast panel uses the 4-year CAGR specifically: it answers "if Bitcoin were at this price N months from now, what would the trailing 4 years of annualized return look like?"

Frequently Asked Questions

What is CAGR and why does it matter for Bitcoin?
CAGR (Compound Annual Growth Rate) is the smoothed annualized return that would take an asset from a starting price to an ending price over a given holding window, assuming growth compounds each year. For Bitcoin, rolling CAGR across multiple horizons captures how much a hypothetical buy-and-hold investor would have earned annually depending on when they bought and how long they held. Looking at 1, 2, 3, 4, and 5-year windows together reveals cycle dynamics — the 4-year window in particular roughly matches Bitcoin's halving cadence.
How is the CAGR calculated?
The formula is (endPrice / startPrice) ^ (1 / years) − 1, expressed as a percentage. For each day in the dataset the dashboard looks up the closing price N years earlier (with a ±5-day tolerance so weekends and holidays do not break the series) and computes the annualized return. The full rolling series is precomputed once per horizon on load.
What is the earliest date in the dataset?
Bitcoin daily closes start July 18, 2010 — the earliest defensible daily close in the primary-source record. July 18, 2010 is the first week after a continuous USD-denominated spot market emerged on the early exchange tape. Pre-2014 data is drawn from a primary-source BTC historical dataset (daily USD price and ledger-derived circulating supply); 2014 onward uses the same daily close feed that powers the rest of True North. The stitch point is documented in the methodology below.
How does the 4-year forecast panel work?
Pick a target BTC price and a forecast horizon in months. The panel builds a linear price trajectory from today's close to the target and computes the 4-year CAGR at each day along that path. Base follows the user's target. Bull overshoots the target by 50% of the move's magnitude. Bear undershoots by 50%. Symmetric by construction — Bull is always above Base, which is always above Bear — and the bear path can never produce a negative price. Lines turn red below 0% (where 4-year CAGR would be negative).
Why is the scenario model symmetric around the user's target, not around today's price?
The older version of this tool used an absolute ± offset from today's price, which flipped Bull below Bear whenever the target was below spot — and could produce negative bear-scenario prices at high bullish targets. Anchoring Bull and Bear as ±50% of the base move's magnitude keeps the ordering intact (Bull > Base > Bear) regardless of direction, and keeps every scenario priced positive. See methodology.
What is the percentile outcomes table showing?
For each horizon (1 / 2 / 3 / 4 / 5 years), the table shows the distribution of historical rolling CAGR outcomes. If you had bought Bitcoin on any random historical day and held for N years, the percentile value is the level below which that share of outcomes fell. The 50% row is the median; the 5% row is the outcome that 5% of windows ended below. It is a distributional view of history, not a forecast.
How are Sharpe and Sortino ratios computed?
Annualized excess return divided by annualized volatility (Sharpe) or downside deviation (Sortino). Excess return uses the 13-week Treasury bill yield as the risk-free rate. BTC volatility is annualized with a 365-day factor because Bitcoin trades every day; equity and bond benchmarks use 252 trading days per year. Downside deviation follows the Sortino (1994) / CFA / Morningstar convention — sqrt(Σ min(r − MAR, 0)² / N_total) on daily log returns against a 0% MAR. Every input is disclosed in the methodology.
What does the rolling correlation matrix tell me?
Rolling Pearson correlation of daily returns between Bitcoin and each benchmark over 30D, 90D, and 1Y windows. Near zero = uncorrelated; positive values = tends to move with the benchmark; negative values = tends to move against it. Headline for institutional allocators because it directly informs portfolio diversification math. The trend chart shows how the correlation has evolved over the full dataset.
How is BTC inflation rate computed?
Deterministically from the block-reward schedule. Annualized issuance = current_block_reward × 144 blocks/day × 365.25 days. Inflation rate = annualized issuance / current circulating supply. No external API is required — the halving schedule is public protocol, and current supply is read from the same dataset that powers the rest of the page.
What does the On-This-Date table show?
Bitcoin's closing price on today's month-day for every year present in the dataset, plus the total return if a hypothetical buyer had held from that date until today. The table updates automatically as the calendar advances — what you see on October 21 is a different set of rows than what you see on October 20.
What are the price-level and market-cap level history tables?
For each price threshold (30K / 40K / 50K / 60K / 70K / 80K) and each market-cap threshold (300B / 500B / 750B / 1T / 1.25T), the table reports the first date that level was breached, how many daily closes have been at or above it since, how many below, and what share of Bitcoin's history has been spent above that level. Market cap uses the ledger-derived circulating supply at each historical date.
Where does the daily price data come from?
Daily BTC/USD closes are stitched from two primary sources: July 18, 2010 through December 31, 2013 from a primary-source BTC historical dataset (daily USD price); January 1, 2014 onward from the same public market data feeds that power the rest of True North's dashboards. Comparison assets — the S&P 500 index, SPDR Gold Shares (GLD) as a gold proxy, iShares 20+ Year Treasury (TLT), and the 13-week T-bill yield used as the risk-free rate — are pulled from public market data feeds, adjusted daily close. Every series is refreshed by the automated daily pipeline, not at build time.
Why is the BTC price axis on a log scale?
Bitcoin has grown more than four orders of magnitude over the period shown. On a linear price axis the first eight years of the chart would be indistinguishable from zero. A logarithmic right axis lets percentage moves — and therefore CAGR — remain consistently legible at every scale.
Is any of this a prediction?
No. Historical tables are historical. The forecast panel is a mechanical projection: pick a target and the model draws a straight-line ramp to it. It is a tool for thinking clearly about how much growth you would need to see under each scenario, not a forecast of what will happen. Nothing on this page is investment advice.

True North is for informational and educational purposes only. Nothing presented should be considered investment advice or an offer of any security or investment product. Consult your own investment and tax advisors. Full disclaimer.

A True North Media Network Property True North