Bitcoin: Net Realised Profit/Loss Breakdown by Year (365-day sum)
Loading price data…
Drag = pan · shift+drag = box-zoom · scroll = zoom X · drag Y-axis = zoom Y · double-click = reset · legend: click = toggle, dbl-click = isolate
Methodology
For every day, each coin spent is compared against the price it was last acquired at. If it moved at a gain, the difference counts as realised profit; if at a loss, as realised loss — both expressed in native BTC. Coins are grouped into vintage-year cohorts (the year they were created), so each coloured line shows the daily net realisation of one creation-year cohort, and Total is the sum across all cohorts.

Aggregation: the default view is the trailing 365-day sum — the regime view, where the shaded red bands mark periods of negative trailing-year net realisation and dashed vertical lines mark the zero crossings (late 2018 and 2022 — the two capitulation regimes). The 7d / 30d / 90d EMA modes show the smoothed daily flow instead (7d matches the reference chart). By default only Total and Price are shown; click any vintage year in the legend to add its cohort line.

Reading it: net-realisation tops cluster at cycle euphoria (old coins waking up into strength); sustained negative regimes mark capitulation, when coins are being spent at a loss and weak hands hand supply over to strong ones.
Data: vintage-cohort realised profit/loss and price come from CheckOnChain's public chart pages (Plotly trace extraction via npl-by-year-update.pynpl-by-year-data.json). The source series are pre-smoothed with a 7d EMA by CheckOnChain; the 30d/90d EMA and 365-day sum options smooth on top of that, so 365-day-sum zero-crossing dates can shift by a few weeks versus the raw series. If the extraction file fails to load, the page falls back to a clearly-labelled deterministic demo series synthesised from live price (bitcoin-data.com via btc-proxy).