Bitcoin URPD Chart: Cost Basis Distribution by Price
URPD means UTXO Realized Price Distribution. It groups BTC by the price assigned when an unspent output last moved, giving a distribution of on-chain cost basis rather than a list of executed purchases.
From an output to a price bucket
Imagine an output holding 2 BTC created when the source price was $62,400. In a $1,000 distribution it belongs to the $62,000–$63,000 range while it remains unspent. The BTC amount is the weight of that observation; one large output and many small outputs can contribute the same amount.
The source provides native half-open $1,000 buckets: the lower boundary is included and the upper boundary is excluded. A displayed $5,000 range aggregates five native buckets. This changes detail, not the meaning of the underlying BTC balance. Self-transfers and transaction change can reset last-moved cost without a market purchase.
What comparing two snapshots measures
For each range, net change equals BTC on the selected date minus BTC on the comparison date. Positive means the recorded balance increased; negative means it decreased. The chart shows a base layer, a violet addition and a hatched removal, together with the selected-day amount.
These are net balance differences, not buy/sell volume, exchange inflows or traced movements between ranges. Even a matching increase and decrease in two ranges does not identify the same coins. A base common to both snapshots does not prove that its UTXOs stayed unchanged.
Worked example: balances, not trades
The following amounts are invented solely to explain the calculation. They are not a current Bitcoin snapshot.
| Cost range | Earlier snapshot | Selected snapshot | Net change |
|---|---|---|---|
| $60,000–$61,000 | 800 BTC | 1,000 BTC | +200 BTC |
| $70,000–$71,000 | 600 BTC | 400 BTC | −200 BTC |
| Sum of these two ranges | 1,400 BTC | 1,400 BTC | 0 BTC |
The first range adds 200 BTC to its balance and the second loses 200 BTC. Total supply in this small example stays constant. It does not follow that 200 BTC were sold at $70,000 and bought at $60,000: a two-snapshot comparison does not provide that transaction path.
Why the current-price bucket is unresolved
If the snapshot BTC price is $62,400, the $62,000–$63,000 bucket contains last-moved prices on both sides of it. An aggregated bucket does not reveal how much BTC lies below versus above $62,400. The dashboard leaves this native crossing bucket unclassified instead of assuming a midpoint split.
Near-price supply is shown as a minimum from fully contained ranges and a maximum including edge ranges. A range can still have source-supplied net unrealized P&L even when its individual profitable and loss-making BTC cannot be separated. That aggregate P&L does not resolve the missing split.
Read a filtered chart carefully
Check the two UTC dates, cohort, unit and display step first. In percentage mode both dates use the selected-day cohort supply as the denominator. Changes in percent are therefore percentage-point differences on that common basis.
The detailed table can omit ranges displayed as zero or restrict a price interval. Its filtered footer sums displayed ranges; it is not the full network supply. Columns above 1.5 million BTC are visually shortened, so inspect the labels or export before comparing heights.
Questions about this metric
Does a large URPD cluster guarantee support?
No. It records last-moved cost in that price range. Spending behavior, market liquidity and future demand are not determined by the cluster.
Are the positive bars Bitcoin buying volume?
No. Positive bars are increases in recorded BTC balances between two snapshots. They do not measure trades or reveal buyer identities.
Can I compare different price steps?
Yes, but aggregation can cancel increases against decreases within a wider range. Keep the step explicit when comparing gross additions and removals.