What Is SOPR?
SOPR measures whether coins spent on-chain were sold in profit or at a loss. It compares the value at the time coins were created with the value when they are later spent.
SOPR > 1 means the average coin moved at a profit. SOPR < 1 means the average coin moved at a loss. SOPR = 1 is breakeven.

This view smooths noise and shows how profit and loss regimes shift across cycles.
How Is SOPR Calculated?
- Take all spent outputs in a period (for example, daily).
- For each, compare the value when it was created with the value when it is spent.
- Aggregate those ratios to produce SOPR for the period.
Adjusted SOPR (aSOPR) filters very young outputs to reduce self-spends and intraday noise. Many analysts prefer aSOPR with a 7-day average on a weekly chart.

Why SOPR Matters
- It shows behaviour, not just price… are participants realising gains or taking losses?
- It helps separate healthy trend absorption from distribution.
- It provides timely feedback at pullbacks and rallies around the 1.0 line.
Interpreting the 1.0 Line
- Above 1.0 and rising: profits are being realised and absorbed. Trend conditions often persist.
- Retests of 1.0 from above: common in advances; holding 1.0 suggests dips are being bought.
- Below 1.0 and fading: losses are being locked in. In downtrends, 1.0 often acts as resistance.
- Whipsaws around 1.0: look for confluence before acting.
Key Variants You’ll Use
- aSOPR: adjusted version that filters very young outputs; best for regime reads.
- STH-SOPR: short-term holders (≤ 155 days). Sensitive to swings; good for spotting pressure on newer buyers.
- LTH-SOPR: long-term holders (≥ 155 days). When this rises strongly, it can indicate older supply is distributing.
Practical Use With Confluence
- Pair SOPR with Realised Price Bands (Market, LTH, STH). If aSOPR holds above 1.0 while price is near Market or STH Realised Price, pullbacks often get absorbed.
- Cross-check with Realised Profit/Loss. A surge in realised profit alongside falling price flags distribution; the inverse can suggest absorption.
- Add Dormancy or CDD to see if old coins are driving the move.
Common Pitfalls
- Using raw SOPR intraday: very noisy. Prefer aSOPR with smoothing.
- Treating 1.0 as an instant trigger: wait for confirmation with price and other indicators.
- Ignoring cohort context: STH pressure is different from LTH distribution.
- Forgetting on-chain scope: SOPR reflects on-chain movements; some activity sits off-chain.
A Simple Workflow You Can Reuse
- Open aSOPR (7D) on weekly. Note regime relative to 1.0 and direction of travel.
- Check STH-SOPR for stress on recent buyers; glance at LTH-SOPR for older supply participation.
- Compare price with Market/LTH/STH Realised Price.
- Inspect Realised Profit/Loss and Dormancy/CDD for confirmation.
- Decide: trend absorption holding above 1.0, or distribution risk pressing below 1.0.
FAQ
Is SOPR a buy/sell signal?
No. Treat it as a behaviour layer. Use confluence before acting.
Which timeframe is best?
Weekly for cycle context. Daily can help timing once the regime is clear.
Why does aSOPR look cleaner?
Filtering very young outputs reduces noise from self-spends and quick reshuffles.
What does it mean if LTH-SOPR spikes while price stalls?
Older supply may be distributing. Look for confirmation in Realised PnL and Dormancy/CDD.
If this sharpened your read on profit/loss flow, join Alpha Insider for SOPR dashboards, cohort lenses, and weekly timing windows. Fewer mistakes, cleaner execution, more conviction.
The Markets Unplugged members get:
➡️ Kairos timing windows to plan entries before the crowd moves
➡️ A full DCA Targets page with levels mapped for this cycle
➡️ Exclusive member videos breaking down charts in plain English
➡️ A private Telegram community where conviction is shared daily
➡️ A dedicated Bitcoin On-Chain Analysis page with regularly updated analysis and monthly reports (MVRV, SOPR, NUPL, Puell, URPD)
It’s the full playbook.
Discussion