SOPR — Bitcoin's Spent Output Profit Ratio
While MVRV measures the unrealized profit sitting in every coin, SOPR measures the realized profit on the coins that actually move each day. For every spent coin it asks: was it sold above or below the price it was last bought at? Above 1 = the market is taking profit; below 1 = selling at a loss; exactly 1 = break-even. The magic number is 1 — in bull markets price bounces off it as support, in bear markets it's rejected at it as resistance. Cohort versions (LTH-SOPR, STH-SOPR) and the adjusted aSOPR carry the cleanest signal.
What SOPR actually computes
Every time a coin moves on-chain, the blockchain knows two prices: the price when it was last moved (its cost basis) and the price now (when it's being spent). SOPR is simply the ratio of the two, summed across every coin spent that day.
So SOPR is a market-wide answer to one question: are the people moving Bitcoin today doing it in profit or at a loss? SOPR = 1.05 means the average spent coin is changing hands at a 5% gain; SOPR = 0.95 means a 5% loss. The metric was introduced by Renato Shirakashi in 2019 and has become a staple of on-chain analysis.
The 1 line is everything
The absolute level of SOPR matters far less than how it behaves around 1 — the break-even line. This is where on-chain behaviour and market psychology meet:
| Behaviour around 1 | What it reflects | Read |
|---|---|---|
| Bouncing off 1 from above | In an uptrend, holders refuse to sell at a loss; dips to break-even get bought | Support — bullish continuation |
| Rejected at 1 from below | In a downtrend, holders finally get back to break-even and sell into the rally | Resistance — bearish continuation |
| Resetting to ~1 inside a bull | A brief flush of loss-taking that exhausts sellers | Local-bottom tell |
| Sustained well below 1 | Broad capitulation — coins moving deep in the red | Cycle-bottom zone (painful in the moment) |
The cleanest historical use: in a healthy bull market, SOPR repeatedly tests 1 and rebounds — each test is the market re-confirming that holders won't realise losses. The moment SOPR breaks and stays below 1, that floor has given way, and the regime has likely changed. Sustained sub-1 readings accompanied the 2018 grind, the March 2020 COVID crash and the 2022 deleveraging — all, in hindsight, near cycle lows.
The variants that carry the real signal
Raw daily SOPR is noisy. Three refinements make it tradeable context:
- aSOPR (adjusted SOPR) removes outputs younger than one hour, filtering out the intraday shuffling and exchange housekeeping that add noise without information. Most analysts watch aSOPR, not raw SOPR.
- LTH-SOPR (long-term holders, coins older than ~155 days) isolates the "smart money." A sharp spike in LTH-SOPR means old coins are moving at large profits — classic late-cycle distribution. It tends to light up near tops.
- STH-SOPR (short-term holders) isolates recent buyers. Deep STH-SOPR readings below 1 mean fresh money is capitulating at a loss — a tell that's clustered near local and cycle bottoms.
SOPR vs MVRV vs NUPL
These three are a family built on the same cost-basis foundation, answering different questions:
- MVRV — how stretched is price above the aggregate cost basis? (Unrealized, whole supply.)
- NUPL — what emotional regime does that unrealized profit put the market in? (Unrealized, expressed as a ratio with named zones.)
- SOPR — of the coins actually moving, are they realising profit or loss? (Realized, flow-based, real-time.)
MVRV and NUPL describe the stock of profit; SOPR describes the flow. Together they tell you both how loaded the spring is and whether it's being released.
Where it fits in btclyzer
btclyzer's engine doesn't compute SOPR directly — its on-chain inputs are mempool-based (fees, congestion, hashrate) and it surfaces the CBBI cycle composite. SOPR is best read on dedicated on-chain platforms (Glassnode, Coinmetrics, CryptoQuant). Use it as a behavioural cross-check on the directional read you get from btclyzer's multi-factor rating: when the rating and SOPR's interaction with the 1 line agree, the read is stronger.
Limitations
- Noisy raw. Always read aSOPR or a smoothed (7-day) version; single-day spikes mislead.
- On-chain only. Trades that never touch the chain — exchange-internal matching, custodial transfers — are invisible to SOPR.
- Descriptive, not predictive. SOPR shows what holders are doing, not what price will do next. It's context, paired with trend and structure.
Become a tester — get PRO free for life
btclyzer is pre-launch. The first testers who try it and send honest feedback keep PRO for life — no card, no catch.
Read the market without the spreadsheet
btclyzer fuses technical indicators, sentiment and on-chain context into one live BUY / SELL / HODL rating across 1H / 4H / 1D / 1W / 1M — with the CBBI cycle index alongside. Free, no signup, no wallet connection.
Open the dashboard →