“Bitcoin SOPR: 1.049 on 23 Oct 2026 (blocks up to 972,848).” NodeWitness, https://nodewitness.com/en/charts/bitcoin-sopr-chart/
Journalist? Ready-to-use images and CSV in our press kit.
The ratio between the value at spend and the value at creation of the coins moved each day, weighted by value -- not the average of each coin's individual ratio. Above 1 (reference line), the set of coins spent that day realized a net profit; below, a net loss.
The sum of the BTC value times the days each coin had been sitting still before it moved that day -- a 1 BTC coin sitting for 100 days destroys 100 "coin-days" when spent. Log scale: spikes, when very old coins move, can be several orders of magnitude larger than a normal day.
Coin Days Destroyed divided by the total BTC transferred that day -- normalizes for volume, to tell apart "a few very old coins moved" from "a lot of BTC moved overall".
For every coin spent, its BTC value times the difference between the price at spend and the price at creation -- profit and loss are accumulated separately and never offset against each other, so the same day can show both at once.
SOPR looks at every coin spent on a given day and compares what it was worth when spent with what it was worth when it was created. The line to watch is 1.0: above it, the day’s spenders realized a profit on aggregate; below it, a loss.
In bull markets 1.0 tends to act as support, because holders refuse to sell at a loss and the dip gets bought. In bear markets it flips into resistance as every rally back to breakeven becomes an exit. Daily readings are noisy, which is why the chart lets you group by week or month and smooth the line.
The panels below add context: CDD and dormancy show whether the coins moving are old or young, and realized profit/loss puts a dollar size on it. A SOPR dip driven by young coins is a very different event from one where long-dormant supply is selling at a loss.
Renato Shirakashi introduced SOPR in 2019 as a way to read holder behavior from what people actually spend rather than what they hold, and short- and long-term holder variants followed quickly. Our series is computed by walking the chain block by block and hasn’t reached the present yet, so the chart stops at its coverage date.
SOPR, Coin Days Destroyed, dormancy and realized profit/loss all come from walking, day by day, every coin that changes hands on the chain -- unlike Realized Price or HODL waves, which are a snapshot of the UTXO set at a single point in time, this is a continuous tally of movements. The four measure different angles of the same question: when coins move, with how much profit or loss, and how "old" they were.
We walk every block from our own Bitcoin Core node, requesting the full detail of every transaction -- for every input, that includes the height and value of the UTXO it spends, with no need for a separate transaction index. From that we reconstruct, day by day, which coins were spent, what they were worth at creation and at spend, and how long they had been sitting still. Coinbase transactions (the first in every block, the miner's reward) are excluded: they don't spend any prior coin.
The creation and spend price of every coin are looked up by their real date, using the same interpolation and price history already used elsewhere in the project -- not exact prices per block. Value that couldn't be evaluated (missing date or price) is excluded from all four metrics alike -- never filled in with a made-up value.
The scanner starts on January 1, 2011 -- before that date there's no reliable market price to compute profit or loss against -- and advances block by block toward the current chain height, a little at a time. Until it's done, the series stops at the coverage date shown above; there's no data past that yet. It also doesn't yet distinguish short-term from long-term holders (LTH-SOPR/STH-SOPR) -- a possible extension on the same base, with no date set.
This doesn't feed into the NodeWitness cycle Score yet: it's a new, independent series, computed from scratch by walking the chain block by block -- a possible future indicator, not part of the Score's calculation yet.
Coins moved that day were sold, on aggregate, for less than their acquisition value, so losses were realized. Several weeks below 1 tend to line up with capitulation phases. A single day below 1 means very little.
We compute it ourselves by scanning every block since 2011 instead of licensing it from a data vendor, and the scan advances gradually. Until it catches up, the series stops at the coverage date shown at the top of the page.
How it is computed, and why we aggregate it differently, is explained in SOPR measured block by block. A SOPR sinking below 1 is one of the pieces for checking a capitulation with on-chain data, and the cycle Score history shows which phase the market was in during those months.