SOPR: are coins being spent at a profit or a loss?

SOPR looks only at coins that actually moved in a period and compares what they were worth when spent with what they were worth when created. It reads realized results, not paper ones.

Close-up of old cash register keys

Photo: “Sub cash register” by Franck BLAIS, CC BY-SA 2.0, via Flickr (edited: cropped and resized).

Quick answer

SOPR (spent output profit ratio) divides the USD value of coins spent in a period by their USD value when they were created [1]. Above 1, the coins that moved were on average spent at a profit; below 1, at a loss; exactly 1, at break-even [1].

Key points

  • 1SOPR = value of spent outputs at spending price ÷ their value at creation price.
  • 2It measures realized profit or loss — only coins that moved count.
  • 3It oscillates around 1, the break-even line between selling at a profit and at a loss.
  • 4Variants filter out very young coins (aSOPR) or split by holder age (STH-SOPR, LTH-SOPR).

What does SOPR measure?#

Most profit and loss metrics, such as NUPL, look at paper results on coins that are still sitting in wallets. SOPR does the opposite. It looks only at the coins that were spent during a period — a day, an hour — and asks whether they left at a higher or lower price than the one they arrived at [1].

Coin Metrics describes SOPR as a proxy for “price sold divided by price paid” [2]. The word proxy is important: as Look Into Bitcoin points out, the metric assumes anyone moving coins is selling them, which is not always true — people move coins between their own addresses too [3].

How is SOPR calculated?#

SOPR = Σ (coins × price when spent) ÷ Σ (coins × price when created), over all outputs spent in the period

Each spent output is a UTXO that has just been consumed. Glassnode divides its realized USD value by its USD value at creation, summed across every output spent in the period [1].

StepValue
Output X: 50 coins created at $20 → $1,500 now vs $1,000 thenratio 1.50
Output Y: 20 coins created at $40 → $600 now vs $800 thenratio 0.75
Output Z: 30 coins created at $30, moved again within the hour → $900 vs $900ratio 1.00
SOPR: $3,000 ÷ $2,7001.11
aSOPR (leave out Z, under 1 hour old): $2,100 ÷ $1,8001.17

Output Z added volume but no profit or loss, which pulled SOPR towards 1. Removing it made the result more responsive — the reason Glassnode built aSOPR.

StepValue
Output P: 60 coins created at $25 → $1,080 vs $1,500ratio 0.72
Output Q: 30 coins created at $40 → $540 vs $1,200ratio 0.45
Output R: 10 coins created at $5 → $180 vs $50ratio 3.60
SOPR: $1,800 ÷ $2,7500.65

Output R more than tripled its value, yet the day’s SOPR is well below 1 because the two loss-making outputs were much larger in dollars.

From one spent coin to a daily SOPR

From one spent coin to a daily SOPR: Output created — Value at creation price; Output spent — Value at spending price; Sum the day — All spent outputs, both values; Divide — Spent value ÷ created value = SOPRFrom one spent coin to a daily SOPR: Output created — Value at creation price; Output spent — Value at spending price; Sum the day — All spent outputs, both values; Divide — Spent value ÷ created value = SOPR
SOPR only counts coins that moved during the period. Illustrative shape, not real data.

How do analysts read SOPR?#

SOPR readings: definitions and Glassnode’s interpretations
What you seeWhat it meansCommon interpretation (Glassnode)
SOPR above 1Coins moved were, on average, spent at a profitHolders are realizing gains
SOPR below 1Coins moved were, on average, spent at a lossOften linked to panic selling or bear conditions
SOPR at 1Break-even on averageThe line between profit-taking and loss-taking
Rising peaksEach rally realizes more profitMore supply returning to circulation

The first three rows are pure arithmetic [1]. The last column is Glassnode’s interpretation: it links successive high SOPR peaks to continued distribution in rallies, and SOPR below 1 to panic selling, capitulation or bear-market conditions [1]. Coin Metrics adds that daily SOPR is volatile, so it charts a 7-day rolling average [2].

  1. 2021-01-08As bitcoin topped $40K, its 7-day average SOPR reached 1.048, the highest since December 2017, per Coin Metrics [2].
  2. 2021-01-26After the price fell, the same measure bottomed at 1.004 with bitcoin near $32.6K [2].

What are aSOPR, STH-SOPR and LTH-SOPR?#

  • aSOPR (adjusted SOPR) drops every output that lived less than an hour. Glassnode explains that such short-lived outputs are mostly relays and change rather than sales, and that removing them makes the signal stronger [4].
  • STH-SOPR includes only spent coins younger than 155 days — the group statistically most likely to move [5]. Glassnode describes it as staying close to 1 [6].
  • LTH-SOPR includes only coins at least 155 days old [7]. Because these coins are spent less often, they tend to realize larger gains or losses: Glassnode reads an LTH-SOPR of 4.0 as an average 300% profit, and 0.6 as a 40% loss [7].

Glassnode adds that past macro tops came with LTH-SOPR above 10, and past bottoms with values of 0.6 or lower [7]. Those are descriptions of earlier Bitcoin cycles from one provider, not thresholds the market must respect.

Weighted vs unweighted SOPR on one real day (Coin Metrics, 2023-10-15, 155-day split)
GroupValue-weighted SOPRUnweighted (each output counts once)
All spent coins1.00190.9732
Long-term holders1.09530.9133
Short-term holders1.00841.0064

Source: Coin Metrics worked example [2]. Large long-term holders realized profits while most long-term outputs, counted one by one, were at a loss.

Where does SOPR mislead?#

  • A spend is not always a sale. Change outputs send the remainder of a spent UTXO back to the sender [8], and self-transfers look identical to trades on-chain.
  • Big outputs dominate. As the Day 2 example shows, a few large outputs can set the result. The unweighted variant can tell a different story [2].
  • Daily values are noisy. Smoothing helps, but a single large exchange consolidation can still move the figure.
  • Off-chain trades are invisible. Coins bought and sold inside an exchange never create spent outputs, so their profits and losses never enter SOPR.

SOPR in one box

Formula
Spent value ÷ value at creation, for outputs spent in the period [1]
Break-even line
1.0 [1]
Created by
Renato Shirakashi, April 2019 [1]
aSOPR filter
Excludes outputs younger than 1 hour [4]
STH/LTH split
155 days [6]

What mistakes do beginners make here?#

  • Confusing SOPR with paper profit

    SOPR only includes coins that moved. Paper profit on unmoved coins belongs to NUPL and MVRV.

  • Reading the zero line instead of the one line

    SOPR is a ratio, so break-even is 1, not 0. Some charts plot it differently; check the axis.

  • Ignoring weighting

    Standard SOPR is weighted by value. One whale’s big profit can mask many small losses.

  • Comparing LTH-SOPR levels with plain SOPR

    LTH-SOPR swings far wider. A value that is extreme for SOPR can be ordinary for LTH-SOPR.

Frequently asked questions#

What does a SOPR of 1.05 mean?

Coins spent that period were, on average, worth 5% more when spent than when they were created.

Why does SOPR hover around 1?

Many coins move again soon after they arrive, at similar prices. Glassnode notes that very short-lived outputs realize almost no profit or loss, which dampens plain SOPR [4].

Who invented SOPR?

Renato Shirakashi, in 2019 [2]. Glassnode dates it to April 2019 [1].

Is SOPR the same as realized profit?

No. Realized profit is a dollar amount. SOPR is a ratio of spent value to created value, so it shows the average margin rather than the size.

The bottom line#

SOPR shows whether the coins that actually moved were spent at a profit or a loss, with 1 as the break-even line. It complements paper-profit metrics because it captures what holders realized, not what they could realize.

It is weighted by value, sensitive to non-sale transfers and blind to off-chain trading. Read it with NUPL, coin days destroyed and our guide to long-term vs short-term holders.

Sources#

Grade A = primary source (regulator, protocol specification, client code, original author). Grade B = expert secondary source used for explanation only.

  1. BGlassnode Docs. SOPR (Spent Output Profit Ratio), 2026.
  2. BCoin Metrics Data Knowledge Base. Valuation (network data definitions), 2026.
  3. BLook Into Bitcoin. Spent Output Profit Ratio (SOPR), 2026.
  4. BGlassnode Docs. aSOPR (Adjusted SOPR), 2026.
  5. BGlassnode Docs. STH-SOPR, 2026.
  6. BGlassnode Insights. Breaking up On-Chain Metrics for Short and Long Term Investors, 2020.
  7. BGlassnode Docs. LTH-SOPR, 2026.
  8. ABitcoin Developer Documentation (developer.bitcoin.org). Transactions (developer guide), 2026.
  9. AEuropean Supervisory Authorities (EBA, ESMA, EIOPA). EU financial regulators warn consumers on the risks of crypto-assets, 2022.