Valuation

STH-NUPL (short-term holders)

The same unrealized-profit arithmetic as NUPL, restricted to coins that have sat unmoved for less than 155 days: the recent buyers.

Why it matters

Total NUPL mixes whoever bought eight years ago with whoever bought last month, and those two don't behave alike. Short-term holders are the ones who capitulate: when STH-NUPL crosses below zero the average recent buyer is losing money, and that's the population that historically panic-sells. The 155-day cut isn't arbitrary — it's the same threshold the project already uses to split SOPR cohorts, so STH here and STH-SOPR talk about the same group of coins.

Build it yourself

Because every coin in the cohort is valued at the same price, the formula reduces to comparing today's price against those coins' average cost. Drag both.

STH-NUPL = (Price − Average cost) ÷ Price
STH-NUPL

The project doesn't divide price by average cost: it sums the BTC and the cost of the three bands and computes (BTC × price − cost) ÷ (BTC × price). Same arithmetic — the BTC cancel out.

Illustrative example numbers for practice — not real data.

How it's calculated, step by step

  1. Every day, the project has a snapshot of supply split into age bands (age_bucket_daily), with how many BTC sit in each band and what they cost in dollars when they were created.
  2. The three bands under 155 days are summed (0-30d, 30-90d, 90-155d): that gives the BTC in short-term hands and their total acquisition cost.
  3. That cohort's market value = its BTC × today's price.
  4. STH-NUPL = (market value − acquisition cost) ÷ market value. Positive = the cohort is in profit; negative = in loss.
Coincident signal. Coincident, not leading: it says what situation the recent buyer is in now, not when they'll give up. And the age bands are monthly, so the 155-day cut is approximate rather than exact to the day — a tradeoff documented in the source itself, to avoid indexing every single UTXO.

Chart

This is real Bitcoin data, computed from the blockchain — not the illustrative example above.

Data last updated on 2026-09-09.

← All indicators