SOPR (Spent Output Profit Ratio)
SOPR measures whether Bitcoin holders are selling at a profit or loss by comparing the price at which coins were spent to the price at which they were acquired.
Key Takeaways
- SOPR compares the price when a UTXO is spent to the price when it was created: values above 1 mean coins moved at a profit, values below 1 mean coins moved at a loss.
- SOPR = 1 acts as a psychological pivot: it serves as support in bull markets (holders refuse to sell at a loss) and resistance in bear markets (holders sell any break-even bounce), making it a key signal for on-chain analysis.
- Variants like aSOPR, STH-SOPR, and LTH-SOPR filter noise and isolate behavior by holder cohort, giving analysts a layered view of market sentiment across long-term and short-term participants.
What Is SOPR?
The Spent Output Profit Ratio (SOPR) is a Bitcoin on-chain metric that measures whether the coins being moved on any given day are being spent at a profit or a loss. It was introduced by analyst Renato Shirakashi in April 2019 as a way to identify market tops and bottoms using realized profit/loss data directly from the blockchain.
Unlike price-based indicators that only show what the market is doing now, SOPR reveals the behavior of participants: are they locking in gains, or capitulating at a loss? This makes SOPR a behavioral metric rooted in the UTXO model that underpins Bitcoin. Each time a UTXO is spent, the blockchain records both when it was created and when it was consumed, allowing analysts to calculate the profit or loss realized on that specific coin.
How It Works
SOPR is calculated at the individual output level, then aggregated across all spent outputs in a given period (typically one day).
Per-Output Calculation
For each spent output, divide the USD value at the time of spending by the USD value at the time of creation:
SOPR (per output) = (value_BTC × price_spent) / (value_BTC × price_created)
// Since the BTC amount cancels out:
SOPR (per output) = price_spent / price_createdIf someone received 0.5 BTC when the price was $30,000 and later spent that output when the price was $60,000, the SOPR for that output is $60,000 / $30,000 = 2.0, indicating a 100% profit.
Aggregated SOPR
The daily SOPR aggregates all spent outputs over a period. Because different outputs contain different BTC amounts, the aggregate is value-weighted:
SOPR (aggregate) = Σ(value_i × price_spent_i) / Σ(value_i × price_created_i)This is equivalent to dividing the total realized value of all spent outputs by the total value at which those outputs were originally created. Analysts typically apply a 10-day simple moving average (SMA) to smooth out daily noise.
Interpreting the Signal
The aggregated SOPR value falls into three ranges:
| SOPR Value | Meaning | Implication |
|---|---|---|
| SOPR > 1 | Coins moved at a profit on average | Holders are realizing gains |
| SOPR = 1 | Break-even: realized value equals creation value | Psychological pivot point |
| SOPR < 1 | Coins moved at a loss on average | Holders are capitulating or consolidating |
The SOPR = 1 Pivot
The most powerful signal in SOPR analysis is its behavior around the value of 1. In bull markets, SOPR = 1 acts as support: when SOPR dips toward 1 from above, it tends to bounce back. The behavioral explanation is that holders refuse to sell at a loss, reducing selling pressure and allowing prices to recover.
In bear markets, the dynamic reverses. SOPR = 1 acts as resistance: when SOPR rises toward 1 from below, underwater holders rush to exit at break-even, creating selling pressure that pushes prices (and SOPR) back down. This pattern can persist for months during prolonged downtrends.
SOPR Variants
Raw SOPR includes all spent outputs, which can introduce noise from relay transactions, change outputs, and short-lived UTXOs that don't represent meaningful economic activity. Several refined variants address this.
aSOPR (Adjusted SOPR)
Adjusted SOPR excludes all outputs with a lifespan of less than one hour. Research from Glassnode shows that sub-one-hour outputs consistently represent 20% to 40% of daily network transactions. These are primarily relay transactions, change outputs, and internal wallet shuffles that realize neither significant profit nor loss but dilute the aggregate signal.
By filtering these out, aSOPR produces a cleaner, more responsive signal with generally greater magnitude than standard SOPR. Most professional analysts prefer aSOPR over raw SOPR for this reason.
STH-SOPR (Short-Term Holder SOPR)
STH-SOPR includes only outputs with an age between 1 hour and 155 days. This isolates the behavior of recent buyers: traders, speculators, and short-term participants whose decisions are driven by recency bias and momentum.
STH-SOPR oscillates frequently around 1.0 with relatively small amplitude. It is useful for timing shorter-term entry and exit points: when STH-SOPR crosses back above 1.0 after a period below, it often signals that short-term holders have stopped capitulating.
LTH-SOPR (Long-Term Holder SOPR)
LTH-SOPR includes only outputs older than 155 days, isolating the behavior of long-term holders who have weathered at least one full market cycle swing. This variant operates as a macro cycle oscillator with much larger amplitude than STH-SOPR.
At cycle tops, LTH-SOPR can reach values above 10, indicating that long-term holders are realizing 900%+ aggregate profit. At capitulation bottoms, it can drop below 0.6, meaning long-term holders are selling at 40%+ losses. These extreme readings historically align with major market cycle inflection points.
Why 155 Days?
The 155-day threshold separating short-term from long-term holders is not arbitrary. Glassnode's statistical analysis of UTXO spending probability curves found that spending probability declines exponentially with age and stabilizes around 100 to 200 days. The inflection point where the maximum slope of the spending probability curve for coins older than one year is first exceeded within the first year falls at exactly 155 days. Coins younger than 155 days are considered part of the liquid circulating supply; coins older are considered illiquid, reflecting stronger holder conviction.
Relationship to Other Metrics
SOPR is most powerful when used alongside complementary on-chain metrics:
- MVRV Ratio measures unrealized profit/loss across all holders, while SOPR measures realized profit/loss from coins actually being spent. Together they show both potential and actual selling pressure.
- Realized Cap provides the denominator context for SOPR: it represents the aggregate cost basis of all Bitcoin. Rapid increases in realized cap while SOPR stays above 1 suggest healthy profit-taking without capitulation.
- Coin Days Destroyed (CDD) reveals whether old coins are moving, but doesn't indicate profit or loss. Combining CDD spikes with LTH-SOPR readings clarifies whether long-dormant coins are being sold at a profit (distribution) or loss (capitulation).
- NVT Ratio measures network value relative to transaction volume. When NVT is high and SOPR is falling, it suggests declining transaction utility alongside capitulation.
Use Cases
Market Cycle Identification
SOPR's behavior around the value of 1 helps identify market regime changes. Sustained periods of SOPR above 1 with successful retests of 1 as support confirm a bull trend. When SOPR breaks below 1 and begins treating 1 as resistance, it signals a transition to bearish conditions. Analysts tracking Bitcoin's market cycles use SOPR alongside price action to confirm trend reversals rather than relying on price alone.
Capitulation Detection
Deep drops in SOPR (well below 1) indicate widespread selling at a loss. When combined with high transaction volume, this signals capitulation: a point where weak hands are exiting and the market may be approaching a bottom. LTH-SOPR readings below 0.6 have historically marked generational buying opportunities.
Profit-Taking Analysis
Sustained SOPR readings far above 1, particularly in the LTH variant, indicate that long-term holders are distributing coins at significant profit. This pattern typically appears during the later stages of bull markets and can signal approaching tops when combined with declining exchange reserves.
On-Chain Portfolio Management
For investors managing UTXO-based portfolios, understanding SOPR provides context for UTXO management decisions. Knowing whether the broader market is realizing profits or losses can inform the timing of consolidation transactions and spending strategies.
Practical Example
Consider a simplified day with three spent outputs on the Bitcoin network:
Output A: 1.0 BTC, created at $20,000, spent at $50,000
Output B: 0.5 BTC, created at $40,000, spent at $50,000
Output C: 2.0 BTC, created at $60,000, spent at $50,000
Numerator = (1.0 × 50,000) + (0.5 × 50,000) + (2.0 × 50,000)
= 50,000 + 25,000 + 100,000
= 175,000
Denominator = (1.0 × 20,000) + (0.5 × 40,000) + (2.0 × 60,000)
= 20,000 + 20,000 + 120,000
= 160,000
SOPR = 175,000 / 160,000 = 1.094The daily SOPR of 1.094 indicates that, in aggregate, coins moved at roughly a 9.4% profit. Output A realized a 150% profit, Output B a 25% profit, and Output C a 16.7% loss. The value-weighted aggregate reflects the net economic reality across all participants.
Data Sources
Several platforms provide SOPR data and its variants for analysis:
| Platform | Variants Available |
|---|---|
| Glassnode | SOPR, aSOPR, STH-SOPR, LTH-SOPR, Entity-Adjusted |
| CryptoQuant | SOPR, aSOPR, STH-SOPR, LTH-SOPR |
| Bitcoin Magazine Pro | SOPR |
| CheckOnChain | SOPR and variants |
Risks and Considerations
Entity Clustering Limitations
Standard SOPR treats every spent output as an independent economic event. However, exchanges, custodians, and large entities routinely move coins between internal addresses without any profit or loss intent. These internal transfers can distort the signal. Entity-adjusted SOPR (offered by Glassnode) attempts to filter these by clustering related addresses, but the clustering heuristics are imperfect and proprietary.
Price Reference Sensitivity
SOPR depends on accurate USD price data at both the creation and spending timestamps of each output. Different data providers may use slightly different price feeds (spot vs. volume-weighted average), leading to minor discrepancies in SOPR calculations across platforms.
Bitcoin-Specific Metric
SOPR relies on the UTXO model to track individual coin histories. It cannot be directly applied to account-based blockchains like Ethereum without significant modifications, since account-model chains do not preserve discrete output creation and spending events.
Lagging Indicator
SOPR measures what has already happened: coins that have already been spent. It confirms trends and capitulation events after they occur rather than predicting them. Using SOPR as the sole basis for trading decisions without corroborating indicators introduces significant risk.
Smoothing Requirements
Raw daily SOPR can be volatile, especially during periods of low transaction volume. Without applying a moving average (typically 7-day or 10-day SMA), short-term SOPR fluctuations can generate misleading signals. Analysts should be cautious about drawing conclusions from single-day readings.
This glossary entry is for informational purposes only and does not constitute financial or investment advice. Always do your own research before using any protocol or technology.