Spent Output Profit Ratio (SOPR) is the realized-side analog to MVRV ratio and NUPL: where MVRV characterizes unrealized profit across all UTXOs, SOPR measures realized profit on the subset that actually moves on a given day, as the ratio of price-at-spend to price-at-creation. SOPR > 1 means coins are being spent at a profit on average; SOPR < 1 means at a loss. The aSOPR variant (excluding coins held less than one hour) is operationally favored because it filters custodial-transfer noise. Introduced by Renato Shirakashi (Glassnode, 2019), SOPR has become a flagship realized-side metric, with the LTH-SOPR and STH-SOPR cohort variants carrying more refined signal than the aggregate. Empirically it shows a distinctive support-resistance structure — in bull markets retesting 1 from above and bouncing; in bears retesting 1 from below and rejecting. The metric complements MVRV/NUPL by characterizing what holders are doing in real time rather than what their static positions look like.
Why this note matters
SOPR completes Cluster 1’s valuation framework in three ways that MVRV and NUPL alone cannot:
- It is the realized-side analog to MVRV’s unrealized framing. MVRV tells what could happen if holders capitulated; SOPR tells what is happening as they make spend-or-hold decisions in real time.
- Its support-resistance structure is operationally tractable. The “SOPR retests 1 from above and bounces” pattern (bulls) and “retests 1 from below and rejects” pattern (bears) give a trend-confirmation signal that aggregate MVRV/NUPL don’t directly produce.
- The cohort variants are operationally informative. LTH-SOPR extremes have been a recurring late-cycle signal for cycle-top calling as long-term holders take large realized profits.
Together with MVRV ratio and NUPL, SOPR characterizes the cost-basis-relative state of the network from complementary angles, all built on Realized price’s machinery.
What this metric measures
The conceptual claim. SOPR measures the realized profit ratio on Bitcoin that is being spent on a given day. It answers: “of the coins that moved today, what was the average ratio of sale price to acquisition price?”
The mathematical form. For each spent output (i.e., each UTXO consumed by a transaction):
where is the Bitcoin USD price at the time the UTXO is spent (today) and is the USD price when the UTXO was originally created. Aggregating across all spent outputs on a given day:
where is the UTXO size. The numerator is the day’s realized value (what the spent coins are worth at the spend price); the denominator is the day’s cost basis (what the same coins were worth at the create price).
Interpretation. SOPR = 1 means the average coin spent today is being spent at break-even. SOPR > 1 means coins are being spent at a profit; SOPR = 1.1 means a 10% average realized profit on spent coins. SOPR < 1 means at a loss; SOPR = 0.95 means a 5% average realized loss.
What SOPR is not. SOPR characterizes the spending action, not the holding state. A high SOPR with low transaction volume means a few holders are taking profit at extreme ratios; a high SOPR with high transaction volume means broad-based profit-taking. The metric must be read together with transaction-volume context. The SOPR-by-volume integrated framework (sometimes called “realized profit/loss in dollar terms”) is the natural extension.
How it’s calculated
The basic form. Sum of (spend-price × UTXO-size) divided by sum of (create-price × UTXO-size) across all UTXOs consumed on the day.
The aSOPR (adjusted SOPR) variant. Raw SOPR is contaminated by intraday-churn UTXOs — coins created and spent within the same day (exchange internal transfers, payment-channel rebalancing, mempool re-broadcasts, etc.). These coins have spend-price ≈ create-price, which pulls SOPR toward 1 mechanically without reflecting any genuine holder spending decision.
The adjusted SOPR excludes UTXOs held less than one hour. The filter removes most exchange-internal noise. aSOPR is the operationally-favored variant across all serious on-chain analysis. When practitioners reference SOPR without qualification, they usually mean aSOPR.
Cohort-specific SOPR.
- LTH-SOPR — Spent outputs originating from UTXOs held 155+ days. Captures the long-term-holder cohort’s spending behavior. LTH-SOPR is operationally critical: LTH-SOPR > 2 has historically marked late-cycle distribution dynamics (LTHs taking 2× or greater realized profits).
- STH-SOPR — Spent outputs originating from UTXOs held less than 155 days. Captures the short-term-holder cohort’s spending behavior. STH-SOPR is more volatile and noisier than LTH-SOPR; STH cohort spending tracks current price reactions.
Realized profit/loss in dollar terms. A related construction: instead of the SOPR ratio, the metric reports the dollar value of profit (or loss) realized on a given day. Mathematically: numerator − denominator from the SOPR formula. This is sometimes called “realized profit” or “realized loss” and is the volume-weighted complement to the SOPR ratio. SOPR plus realized-profit-in-dollar-terms gives a more complete picture of spending dynamics than either alone.
Data-provider variants. Glassnode, Coin Metrics, Checkonchain, and other platforms publish SOPR and aSOPR with the standard methodological choices documented in their realized-cap pages (see Realized price). Differences are small.
What it tells you
The bull-market support-resistance pattern. In bull markets, SOPR (or aSOPR) tends to oscillate above 1 with periodic retests of the 1 level from above:
- Above 1 baseline: holders are spending at profit; trend is up
- Retest of 1 from above: brief consolidation; holders test break-even spending
- Bounce off 1: long-term holders refuse to sell at a loss; trend resumes upward
The “SOPR retest 1 and bounce” pattern has been one of the more reliable trend-confirmation signals across the 2017, 2020-2021, and 2024-2025 cycles.
The bear-market support-resistance pattern. In bear markets, SOPR oscillates below 1 with periodic retests of the 1 level from below:
- Below 1 baseline: holders are spending at loss; trend is down or consolidating
- Retest of 1 from below: brief rally to break-even spending levels
- Rejection at 1: holders take profit at break-even, generating selling pressure; trend resumes downward
The “SOPR retest 1 and reject” pattern has been a recurring bear-market continuation signal.
Cycle-top signals via LTH-SOPR. Long-term-holder SOPR has been a more reliable cycle-top indicator than aggregate SOPR. LTH-SOPR > 2 (LTHs realizing 2× or greater profits on spent coins) has historically marked late-cycle distribution dynamics. Specific late-cycle peaks:
- 2017 cycle: LTH-SOPR peaks above 2.5 in late 2017
- 2021 cycle: LTH-SOPR peaks above 2 in April 2021 and again in October-November 2021
- 2024-2025 cycle: LTH-SOPR spiked above 2 at multiple points into the August-2025 peak, though at lower magnitude than prior cycles
Cycle-bottom signals via aggregate SOPR. Aggregate SOPR below 0.95 (i.e., average 5%+ realized losses) has historically marked deep capitulation. The metric typically does not stay below 0.9 for extended periods; persistent sub-0.9 readings have marked the deepest historical bottoms.
Capitulation completion signals. When SOPR (or aSOPR) crosses back above 1 after an extended sub-1 period in a bear market, the cross has historically been a reasonable accumulation signal. The reverse — SOPR persistently below 1 after a long above-1 stretch — has been a bear-market initiation signal.
Empirical track record
Cycle peaks via LTH-SOPR. The metric’s most operationally useful application is LTH cohort spending at late-cycle. LTH-SOPR peak readings:
| Cycle | LTH-SOPR peak | Approximate spot at peak | Lead/lag to spot peak |
|---|---|---|---|
| 2017 | ~2.5-3 | $19,000 | Coincident |
| 2020-2021 (Apr peak) | ~2.5 | $63,000 | Coincident with intra-cycle peak |
| 2021 (Nov peak) | ~2 | $69,000 | Coincident with cycle peak |
| 2024-2025 | ~2 (peaks above 2, attenuated) | ~$124,000 (Aug 2025) | Coincident |
LTH-SOPR > 2 has consistently coincided with intra-cycle or full-cycle peak dynamics, though the magnitude of the LTH-SOPR peaks has declined alongside MVRV and NUPL peaks across cycles (consistent with Diminishing returns thesis).
Cycle bottoms via aSOPR. The metric’s bottom-signaling has been less precise than its top-signaling, but the support-resistance pattern at SOPR = 1 has been reliable:
| Cycle | aSOPR pattern at bottom |
|---|---|
| 2018-2019 | Multi-month sub-1 stretch; cross above 1 in early 2019 marked accumulation phase |
| 2022 | Sub-1 stretch through H2 2022; cross above 1 in Jan 2023 marked accumulation phase |
SOPR resistance in bear markets. The “retest 1 and reject” pattern has been reliable as a bear-market continuation signal across the 2018, 2022, and (partial) post-2024 corrections. Specific instances of resistance rejection have produced ~30-50% downside continuation in some cases.
Cross-validation with MVRV/NUPL. SOPR extremes typically align with MVRV/NUPL extremes. The cross-validation is operationally useful: when aSOPR, MVRV, and NUPL all align at extreme readings, the cycle-positioning signal is much stronger than when any single metric is at an extreme.
Limitations
Daily-frequency noise. SOPR is a daily metric and is noisier than the smoother MVRV and NUPL. A single day’s reading is rarely operationally meaningful; multi-day moving averages (7-day or 14-day) are the operationally-used forms.
Volume context required. SOPR is a ratio; it does not capture absolute volume. A SOPR of 1.5 with low transaction volume is meaningfully different from a SOPR of 1.5 with high transaction volume. The metric should be read together with transaction-volume context, ideally via realized-profit-in-dollar-terms.
The same cost-basis-proxy limitations as MVRV/NUPL. SOPR inherits Realized price’s limitations around custodial transfers, UTXO consolidation, transaction batching, etc. The aSOPR adjustment removes most exchange-internal noise but not all of it.
ETF and custodial-cohort blindness. Bitcoin held in ETF and custodial-exchange wallets shows up on-chain at the wallet level. SOPR captures wallet-level spending, not beneficial-owner spending. As more Bitcoin sits in custodial structures, SOPR’s signal increasingly reflects custodial operational behavior rather than holder economic decisions.
Cohort definition arbitrariness. The 155-day LTH/STH threshold is empirically calibrated but somewhat arbitrary. Cohort SOPR variants depend on the threshold; alternative thresholds (90 days, 180 days, 1 year) produce different cohort-SOPR readings. The framework is robust to small threshold changes but the specific calibration matters at the margin.
Support-resistance pattern is not deterministic. “SOPR retests 1 and bounces” has been reliable historically but is not a structural law. Sufficiently severe market conditions could see SOPR break through 1 persistently in either direction without the support-resistance pattern holding. The 2022 bear market saw multiple sub-1 episodes; the pattern was statistical, not deterministic.
Top-calling is operationally noisy at aggregate level. Aggregate SOPR top-signaling is less precise than LTH-SOPR. Users relying on aggregate SOPR for cycle-top calls may receive premature signals; LTH-SOPR is operationally more useful for that specific decision.
Cycle attenuation. Like MVRV and NUPL, SOPR peak magnitudes have declined cycle-over-cycle. The 2017 LTH-SOPR peaks reached ~2.5-3; the 2021 peaks reached ~2-2.5; the 2024-2025 cycle has produced lower peaks consistent with the broader Diminishing returns thesis pattern.
Counter-arguments and tensions
”SOPR is just MVRV in motion”
The argument: SOPR measures realized profit ratios on spent outputs; MVRV measures unrealized profit ratios on held outputs. The two metrics share the same cost-basis foundation. SOPR is essentially MVRV for moving coins. Building it as a separate primary note is redundant.
Response: Partially right but understated. The metrics share a foundation but characterize different behaviors: MVRV captures the static state (what holders could realize if they sold); SOPR captures the dynamic action (what they are realizing as they spend). The behavioral content is genuinely different. The support-resistance pattern at SOPR = 1 has no direct MVRV analog; the cohort variants behave differently than MVRV’s cohort variants because spent-output dynamics are not identical to held-output dynamics. The redundancy critique is partially right at the aggregate-trend level but understates the metric’s distinctive content.
The intraday-churn-pollution problem
The argument: Raw SOPR is heavily contaminated by exchange internal transfers, payment-channel rebalancing, mempool re-broadcasts, and other intraday-churn UTXOs that have spend-price ≈ create-price. The aSOPR adjustment removes UTXOs held less than one hour, but the one-hour threshold is somewhat arbitrary. Different thresholds produce different aSOPR values.
Response: Real concern. The one-hour threshold is empirically chosen; it removes most exchange-internal noise but not all. Alternative thresholds (one day, one week) produce different metric variants. The honest reading is that aSOPR is the operationally favored form because the one-hour threshold has empirically produced reliable signals; the specific calibration is robust within reasonable ranges but not theoretically derived.
”SOPR support-resistance is technical-analysis dressed up as on-chain”
The argument: The “SOPR retests 1 and bounces” pattern is essentially technical-analysis support-resistance applied to an on-chain metric. The pattern’s reliability is not stronger than typical technical-analysis patterns and may share their limitations (subjective fitting, hindsight bias, post-hoc rationalization).
Response: Partially right and worth taking seriously. The pattern is mechanistically more substantive than typical TA support-resistance because the level (SOPR = 1) has behavioral content (holder reluctance to spend at a loss). The mechanism is real: when SOPR drops to 1 in a bull market, holders who would otherwise sell at break-even refuse; the resulting reduction in selling pressure is the support. But the pattern is not deterministic, and analysts can over-fit specific instances in retrospect. The honest reading is that the pattern is operationally useful at the trend-context level, not at the precise market-timing level.
Cycle attenuation and threshold-stability
The argument: LTH-SOPR peaks have declined cycle-over-cycle, like MVRV and NUPL peaks. The historical threshold (LTH-SOPR > 2 as a late-cycle signal) has been less and less reliably reached. The framework’s specific thresholds are migrating with cycle attenuation.
Response: Real ongoing recalibration problem. The metric remains useful but the specific thresholds need adjustment. The cohort-specific framework partially compensates because LTH-cohort dynamics may be less attenuated than aggregate dynamics, but the cohort variants are also affected.
”SOPR signals are too noisy for operational use”
The argument: SOPR is a daily metric and exhibits substantial day-to-day noise. Even aSOPR with multi-day smoothing produces signals that retail users may interpret as more precise than they are. The metric’s operational use requires careful smoothing and trend-context that less-sophisticated users may not apply.
Response: Right as critique of unsophisticated use. The metric is operationally useful for trend-context positioning, not for precise market-timing. Users who treat single-day SOPR readings as definitive will be misled. The systematic frameworks (Check, Ryan) deploy SOPR with 7-day or 14-day smoothing and integrate it with multiple complementary metrics; this is the appropriate use pattern.
”Custodial and ETF era has broken SOPR”
The argument: Post-2024 ETF flows and broader custodial-institutional adoption have introduced large custodial wallet movements that show up in SOPR without reflecting holder economic decisions. The aSOPR adjustment doesn’t filter these custodial movements; the metric’s signal is contaminated.
Response: Partially right. Custodial wallet movements show up in raw SOPR; the aSOPR adjustment removes the very-short-duration churn but not the longer-duration custodial rebalancing. The cohort variants (LTH-SOPR especially) partially compensate because long-held UTXOs are less likely to be ETF-creation/redemption-cycle coins. The framework needs adaptation; LTH-SOPR is increasingly the operationally useful variant in the post-ETF regime.
Statistical-robustness shared with MVRV/NUPL
The argument: SOPR shares MVRV and NUPL’s general statistical concerns — the metric is mean-reverting around the level 1 (break-even) but the precise reliability of the support-resistance pattern is not formally proven across diverse market regimes.
Response: Right. The mean-reverting property at level 1 is genuine (holders’ behavioral reluctance to sell at a loss is a real mechanism), but the precise calibration of the support-resistance pattern depends on the historical sample. Future cycles may produce regime changes that break the pattern. The framework should be deployed with appropriate epistemic humility.
Open questions for further development
- How should SOPR cohort variants be adapted for the post-ETF regime? ETF-aware cohort frameworks that explicitly separate ETF coins from self-custody coins would strengthen the metric’s signal.
- What is the appropriate weight on aggregate SOPR vs LTH-SOPR vs STH-SOPR in operational decision-making? Cohort variants carry more signal but the integration framework is not fully codified.
- Can the support-resistance pattern at SOPR = 1 be formally tested? The pattern is empirically observed; rigorous statistical testing of its reliability across market regimes would strengthen the framework.
- How does SOPR interact with macro extremes? The integration with Bitcoin and global liquidity and Bitcoin and the ISM PMI cycle is the topic of Using on-chain data for macro positioning.
- Should the aSOPR exclusion threshold (one hour) be recalibrated? Alternative thresholds may produce more or less reliable signals in the contemporary regime; empirical work on threshold sensitivity is an open direction.
- What is the appropriate way to communicate SOPR’s daily-noise problem to less-sophisticated users? The metric is operationally useful with smoothing and context; communication frameworks for retail users need careful design.
- How does SOPR interact with the Coin Days Destroyed framework? Both metrics characterize spending dynamics from different angles (SOPR weighted by profit ratio; CDD weighted by age × volume); their integration is an open direction.
Canonical sources for this note
Primary framework sources
- Renato Shirakashi, “Introducing SOPR” (Glassnode, 2019) — the canonical introduction of the metric
- Glassnode SOPR documentation — methodological detail and ongoing analysis
- Checkonchain platform — James Check’s analytical framework integrating SOPR with MVRV, NUPL, and cohort-specific spending dynamics
- Coin Metrics State of the Network reports — adjacent on-chain analyses
Practitioner literature
- James Check, extensive Glassnode Week On-Chain newsletters during the 2020-2023 tenure — applied SOPR analysis across multiple cycles
- James Check, ongoing Checkonchain platform analysis 2024+
- Ryan (On-Chain Mind), various video analyses applying SOPR accessibly
- Various Bitcoin Magazine and Bitcoin Layer pieces engaging SOPR-based analysis
Adjacent on-chain literature
- Various Glassnode pieces on aSOPR, LTH-SOPR, and STH-SOPR variants
- Realized profit/loss in dollar terms — adjacent realized-side metric, often presented alongside SOPR
- Various analyses of SOPR cross-validation with MVRV and NUPL
Critical perspectives
- Engagements with SOPR’s daily-noise problem and the need for smoothing
- Critiques of the support-resistance pattern as technical-analysis dressed up
- Within-Bitcoin debates about cycle-attenuation effects on SOPR thresholds
Related notes
- On-chain analytics and market psychology — sub-MOC parent
- Realized price — definitional foundation; SOPR uses the same cost-basis machinery on spent outputs
- MVRV ratio — unrealized-side analog; complementary perspective on the same cost-basis state
- NUPL — alternative valuation metric; closely related to MVRV
- HODL waves — cohort framework; SOPR cohort variants build on cohort identification
- Long-term vs short-term holder behavior — produces cohort-specific SOPR variants (LTH-SOPR, STH-SOPR)
- Coin Days Destroyed — complementary spending-dynamics metric; volume-and-age-weighted analog
- Whale behavior — entity-weighted cohort framework
- Exchange flows — custodial-flow framework; complements SOPR
- Miner flows — miner-cohort framework
- Sentiment indicators — off-chain sentiment proxies
- Psychological phases of the market cycle — synthesis where SOPR extremes mark phase transitions
- Using on-chain data for macro positioning — operational bridge to macro frameworks
- The Power Law model — longer-horizon trajectory framework
- Four-year halving cycles — cycle structure SOPR extremes anchor
- Diminishing returns thesis — cycle-over-cycle attenuation framework SOPR peaks empirically demonstrate
- Bitcoin and global liquidity — macro framework
- Monetization S-curve — adoption framework
- Portfolio approaches to Bitcoin — practical allocation framework SOPR signals inform
- James Check — primary contemporary anchor; SOPR framework developer
- Ryan - On-Chain Mind — adjacent contemporary anchor
- Dylan LeClair — adjacent on-chain voice
- Giovanni Santostasi — Power Law modeler; adjacent
- Plan B — S2F framework (engaged critically)