Does the MVRV Z-Score work?
MVRV Z-Score at 7 or above. Held up: 3 of 5 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 −28.3%, against +120% for a typical day of the same cycles. With 4 independent signals, chance cannot be ruled out.
MVRV Z-Score below 0. Buying on it did worse than buying on a typical day: a year later the price had changed by a median +66.0%, against +120% for a typical day of the same cycles; 6 of 9 signals were on within 90 days of a cycle bottom, catching 4 of the 5 bottoms in its record.
- MVRV Z-Score at 7 or above: 5 signals; 3 of 5 decided were on within 90 days of a cycle top (2 false alarms); it caught 3 of the 5 cycle tops in its record.
- MVRV Z-Score below 0: 9 signals; 6 of 9 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
MVRV Z-Score at 7 or above
| After | Signals | Median change | Mean change | Share up | All days: median | All days: share up | Same cycles: median |
|---|---|---|---|---|---|---|---|
| 7 days | 5 5 independent | +18.5% | +14.4% | 60% | +0.8% | 55% | +1.1% |
| 30 days | 5 5 independent | +35.3% | +48.3% | 100% | +3.3% | 57% | +4.2% |
| 90 days | 5 5 independent | −21.9% | −9.5% | 40% | +13.9% | 62% | +12.3% |
| 365 days | 5 4 independent | −28.3% | +49.6% | 20% | +94.9% | 72% | +120% |
MVRV Z-Score below 0
| After | Signals | Median change | Mean change | Share up | All days: median | All days: share up | Same cycles: median |
|---|---|---|---|---|---|---|---|
| 7 days | 9 9 independent | +0.7% | +6.0% | 56% | +0.8% | 55% | +1.1% |
| 30 days | 9 9 independent | −3.3% | +9.6% | 44% | +3.3% | 57% | +5.1% |
| 90 days | 9 7 independent | −6.0% | +3.1% | 33% | +13.9% | 62% | +19.5% |
| 365 days | 9 5 independent | +66.0% | +197% | 78% | +94.9% | 72% | +120% |
Every signal
MVRV Z-Score at 7 or above
| First day | Reading | BTC close | 7 days | 30 days | 90 days | 365 days | Nearest cycle top | Near a turn |
|---|---|---|---|---|---|---|---|---|
| 13 May 2011 4 days in signal | 7.37 | $8.20 | −31.8% | +126% | +15.4% | −39.7% | 26 days before the 2011 top (8 Jun 2011); price −72.3% from it | Hit |
| 27 Mar 2013 10 days in signal | 7.14 | $88.92 | +51.8% | +54.0% | +16.2% | +418% | 252 days before the 2013 top (4 Dec 2013); price −92.8% from it | False alarm |
| 17 Nov 2013 17 days in signal | 7.13 | $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 |
| 6 Dec 2017 14 days in signal | 8.15 | $13,750 | +18.5% | +23.3% | −21.9% | −74.7% | 10 days before the 2017 top (16 Dec 2017); price −28.9% from it | Hit |
| 19 Feb 2021 3 days in signal | 7.13 | $55,933 | −17.2% | +2.6% | −27.4% | −28.3% | 262 days before the 2021 top (8 Nov 2021); price −17.2% from it | False alarm |
| Cycle top | BTC close | Signal on within 90 days |
|---|---|---|
| 8 Jun 2011 | $29.60 | Yes: the signal from 13 May 2011, which began 26 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 6 Dec 2017, which began 10 days before it |
| 8 Nov 2021 | $67,549 | No signal on within 90 days |
| 6 Oct 2025 | $124,766 | With a free account |
MVRV Z-Score below 0
| First day | Reading | BTC close | 7 days | 30 days | 90 days | 365 days | Nearest cycle bottom | Near a turn |
|---|---|---|---|---|---|---|---|---|
| 6 Aug 2011 | −0.06 | $6.55 | +54.7% | +16.2% | −52.5% | +66.0% | 104 days before the 2011 bottom (18 Nov 2011); price +220% from it | False alarm |
| 9 Sep 2011 112 days in signal | −0.24 | $5.03 | −4.2% | −18.4% | −40.7% | +119% | 70 days before the 2011 bottom (18 Nov 2011); price +145% from it | Hit |
| 14 Feb 2012 33 days in signal | −0.14 | $4.46 | −4.3% | +19.4% | +12.2% | +442% | 88 days after the 2011 bottom (18 Nov 2011); price +118% from it | Hit |
| 16 Feb 2014 10 days in signal | −0.13 | $299.80 | +3.5% | +99.8% | +51.0% | −21.3% | 332 days before the 2015 bottom (14 Jan 2015); price +81.8% from it | False alarm |
| 4 Oct 2014 11 days in signal | −0.06 | $335.32 | +7.7% | −3.3% | −6.0% | −28.9% | 102 days before the 2015 bottom (14 Jan 2015); price +103% from it | Hit |
| 17 Dec 2014 299 days in signal | −0.04 | $320.02 | +0.7% | −35.3% | −10.8% | +42.3% | 28 days before the 2015 bottom (14 Jan 2015); price +94.0% from it | Hit |
| 19 Nov 2018 134 days in signal | −0.03 | $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 7 days in signal | −0.25 | $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 179 days in signal | −0.06 | $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 |
| Cycle bottom | BTC close | Signal on within 90 days |
|---|---|---|
| 18 Nov 2011 | $2.05 | Yes: the signal from 9 Sep 2011, which began 70 days before it |
| 14 Jan 2015 | $164.92 | Yes: the signal from 17 Dec 2014, which began 28 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: MVRV Z-Score at 7 or above; Bottom signal: MVRV Z-Score below 0. 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. The published chart already divides by the standard deviation of every daily market value up to that day (an expanding window), so each reading is point in time as published. 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 the MVRV Z-Score work?
How accurate is the MVRV Z-Score?
Has the MVRV Z-Score given false signals?
Is the MVRV Z-Score signalling now?
How is this backtest calculated?
Each signal is the first day the MVRV Z-Score 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 MVRV Z-Score 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.