Does NUPL work?
NUPL at 0.75 or above (euphoria). Held up: 3 of 4 signals were on within 90 days of a cycle top, catching 3 of the 5 tops in its record, and a year later the price had changed by a median −20.2%, against +120% for a typical day of the same cycles. With 3 independent signals, chance cannot be ruled out.
NUPL below 0 (capitulation). Buying on it did worse than buying on a typical day: a year later the price had changed by a median +15.4%, against +79.4% for a typical day of the same cycles; 4 of 7 signals were on within 90 days of a cycle bottom, catching 4 of the 5 bottoms in its record.
- NUPL at 0.75 or above (euphoria): 4 signals; 3 of 4 decided were on within 90 days of a cycle top (1 false alarms); it caught 3 of the 5 cycle tops in its record.
- NUPL below 0 (capitulation): 7 signals; 4 of 7 decided were on within 90 days of a cycle bottom (3 false alarms); it caught 4 of the 5 cycle bottoms in its record.
What followed the signals
NUPL at 0.75 or above (euphoria)
| After | Signals | Median change | Mean change | Share up | All days: median | All days: share up | Same cycles: median |
|---|---|---|---|---|---|---|---|
| 7 days | 4 4 independent | +37.1% | +41.7% | 75% | +0.9% | 55% | +1.1% |
| 30 days | 4 4 independent | +18.6% | +106% | 75% | +3.4% | 57% | +4.6% |
| 90 days | 4 4 independent | −27.6% | −15.5% | 25% | +13.7% | 62% | +13.5% |
| 365 days | 4 3 independent | −20.2% | +34.9% | 25% | +95.1% | 72% | +120% |
NUPL below 0 (capitulation)
| After | Signals | Median change | Mean change | Share up | All days: median | All days: share up | Same cycles: median |
|---|---|---|---|---|---|---|---|
| 7 days | 7 7 independent | +1.7% | −0.4% | 57% | +0.9% | 55% | +1.0% |
| 30 days | 7 7 independent | −2.6% | +14.2% | 43% | +3.4% | 57% | +4.2% |
| 90 days | 7 7 independent | −2.8% | +5.5% | 43% | +13.7% | 62% | +12.3% |
| 365 days | 7 5 independent | +15.4% | +188% | 71% | +95.1% | 72% | +79.4% |
Every signal
NUPL at 0.75 or above (euphoria)
| First day | Reading | BTC close | 7 days | 30 days | 90 days | 365 days | Nearest cycle top | Near a turn |
|---|---|---|---|---|---|---|---|---|
| 10 May 2011 11 days in signal | 0.78 | $5.81 | +23.8% | +398% | +34.3% | −13.2% | 29 days before the 2011 top (8 Jun 2011); price −80.4% from it | Hit |
| 2 Apr 2013 8 days in signal | 0.77 | $117.98 | +94.9% | −9.9% | −25.4% | +260% | 246 days before the 2013 top (4 Dec 2013); price −90.5% from it | False alarm |
| 17 Nov 2013 17 days in signal | 0.77 | $528.30 | +50.5% | +35.3% | −29.8% | −27.2% | 17 days before the 2013 top (4 Dec 2013); price −57.3% from it | Hit |
| 7 Dec 2017 3 days in signal | 0.78 | $16,850 | −2.3% | +1.9% | −41.1% | −79.7% | 9 days before the 2017 top (16 Dec 2017); price −12.9% from it | Hit |
| Cycle top | BTC close | Signal on within 90 days |
|---|---|---|
| 8 Jun 2011 | $29.60 | Yes: the signal from 10 May 2011, which began 29 days before it |
| 4 Dec 2013 | $1,238 | Yes: the signal from 17 Nov 2013, which began 17 days before it |
| 16 Dec 2017 | $19,345 | Yes: the signal from 7 Dec 2017, which began 9 days before it |
| 8 Nov 2021 | $67,549 | No signal on within 90 days |
| 6 Oct 2025 | $124,766 | With a free account |
NUPL below 0 (capitulation)
| First day | Reading | BTC close | 7 days | 30 days | 90 days | 365 days | Nearest cycle bottom | Near a turn |
|---|---|---|---|---|---|---|---|---|
| 3 Aug 2011 284 days in signal | −0.04 | $9.26 | +8.0% | −6.7% | −66.0% | +13.7% | 107 days before the 2011 bottom (18 Nov 2011); price +352% from it | Hit |
| 15 Feb 2014 11 days in signal | −0.02 | $371.07 | −31.1% | +63.4% | +22.2% | −37.1% | 333 days before the 2015 bottom (14 Jan 2015); price +125% from it | False alarm |
| 19 Sep 2014 400 days in signal | −0.02 | $397.67 | +1.7% | −2.6% | −22.0% | −41.9% | 117 days before the 2015 bottom (14 Jan 2015); price +141% from it | Hit |
| 19 Nov 2018 134 days in signal | −0.12 | $4,810 | −21.3% | −22.3% | −23.7% | +69.1% | 26 days before the 2018 bottom (15 Dec 2018); price +48.8% from it | Hit |
| 12 Mar 2020 9 days in signal | −0.28 | $4,917 | +25.8% | +40.1% | +101% | +1065% | 453 days after the 2018 bottom (15 Dec 2018); price +52.1% from it | False alarm |
| 13 Jun 2022 212 days in signal | −0.13 | $22,472 | −8.5% | −10.0% | −2.8% | +15.4% | 161 days before the 2022 bottom (21 Nov 2022); price +42.6% from it | Hit |
| 1 later signal | With a free account |
| Cycle bottom | BTC close | Signal on within 90 days |
|---|---|---|
| 18 Nov 2011 | $2.05 | Yes: the signal from 3 Aug 2011, which began 107 days before it |
| 14 Jan 2015 | $164.92 | Yes: the signal from 19 Sep 2014, which began 117 days before it |
| 15 Dec 2018 | $3,233 | Yes: the signal from 19 Nov 2018, which began 26 days before it |
| 21 Nov 2022 | $15,760 | With a free account |
| 30 Jun 2026 | $58,532 | With a free account |
Method and sources
Signals. Top signal: NUPL at 0.75 or above (euphoria); Bottom signal: NUPL below 0 (capitulation). The levels are the ones commonly quoted for this indicator, fixed before any result was looked at. A signal starts on the first day the condition holds after it has been off for at least 30 days, so a run of days counts once (the same rule as the signal lab).
Point in time. Market value and realized value on each day use only coins and prices up to that day, so the published reading is point in time. Daily readings are closed UTC days from 18 July 2010 to 26 October 2026; the open day is never used.
Outcomes. The change of the BTC daily close from the close of the signal's first day to the close 7, 30, 90 and 365 days later, against the same change from every day the indicator has a reading (the base rate). Signals whose windows overlap share the same price moves, so the tables also count independent signals: windows that do not overlap, counted from the first. Recent signals wait for their outcomes.
Cycle tops and bottoms. A cycle top is an all-time-high close followed by a fall of at least 75% before any higher close; the latest all-time high starts the current cycle. A cycle bottom is the lowest close between two tops; the current cycle's bottom is its lowest close so far, so it can still move. A signal is a hit when a turn of its kind came while it was on or within 90 days either side (from 90 days before its first day to 90 days after its last), and a false alarm otherwise; a signal still on, or ended less than 90 days ago, waits. The verdict compares each signal with the median change of every day in the same four-year halving cycle, so the outsized early years neither flatter nor penalise later signals.
Plans. The chart is one of the classics a free account opens: everyone sees today's value and state and the signals up to 31 December 2022; a free account shows the later signals too.
Sources. Our own Bitcoin node and BTC/USD price record, through the published chart linked below. Past signals describe what happened; they are not a forecast and nothing here is investment advice.
Questions
Does NUPL work?
How accurate is NUPL?
Has NUPL given false signals?
Is NUPL signalling now?
How is this backtest calculated?
Each signal is the first day NUPL meets its level after at least 30 days without it, using only data that existed that day. We measure the BTC price change 7, 30, 90 and 365 days later against the same change from every day and from the days of the same four-year cycle, and the distance to the nearest cycle top or bottom.
Open the NUPL chartCreate a free accountAll free tools
Signals and outcomes are calculated by CryptoKeyhole from our own Bitcoin node and price data, using only data that existed on each day. Past signals describe what happened; they are not a forecast, and nothing here is investment advice.