The Hash Ribbon
Charles Edwards's two-step miner-capitulation indicator. The 30-day vs 60-day hash-rate cross, plus the 10/20-day price-momentum confirmation most reproductions omit.
As of 15 Jun 2026The Hash Ribbon reads Capitulation — the 30-day average of network hash rate has fallen below the 60-day, with Bitcoin at $65,837.03. The most recent 30-over-60 recovery upcross fired on 2026-05-23 at $75,482.52, 23 days ago; spot now sits −12.8% from that print. Of 23 upcrosses on record, 15 closed higher six months later — a signal that measures realised hash, not miner economics, and works on average rather than every fire.
Ribbon state
Capitulation
30d below 60d
Spot BTC
$65,837.03
+2.3% 24h
Last upcross
2026-05-23
$75,482.52 spot
Spot vs last upcross
−12.8%
23 days since
- Unit
- Hash rate (EH/s), log axis
- Windows
- 30-day & 60-day SMA
- Frequency
- Daily, refit nightly
- Signals
- 27 upcrosses
- Range
- 2011–present
- Source
- blockchain.info
TL;DR
- The metric
- Two moving averages of Bitcoin's network hash rate — a 30-day line and a 60-day line. When the 30-day crosses below the 60-day, miners are under stress (capitulation); the cross back above is the published recovery signal. Edwards called it “perhaps the best performing long-term buy signal for Bitcoin”; treat the line as marketing and the indicator as one lens among several.
- The reading now
- The ribbon reads Capitulation. The 30-day average sits below the 60-day — by the canonical definition, miners are under stress. Historically this is the patient phase; the recovery upcross has not yet fired. The last upcross fired on 2026-05-23 at $75,482.52; spot today is −12.8% from that print.
- The caveat
- Hash rate is not measured — it is backed out of realised difficulty and block intervals, so a run of lucky blocks can swing the daily reading several percent with no change in real hashpower. And the cross detects realised network throughput, which is not the same as miner economics: the May–July 2021 fire was Chinese rigs relocating, not marginal miners going broke.
- Why it matters
- Edwards published a two-step buy signal — the 30/60 hash-rate cross plus a 10/20-day price-momentum confirmation — and almost every reproduction online drops the second step. Restoring the price filter eliminates the indicator's worst false positive (January 2015). Across 23 bare crosses here, 65.2% closed higher at six months.
Two lines, one shaded window, and a dot
The Hash Ribbon plots two simple moving averages of Bitcoin's network hash rate — a 30-day line in sage and a 60-day line in rust — on a logarithmic right-hand axis in exahashes per second. Pale-grey shading covers every day the 30-day sits below the 60-day; in Edwards's terms, that shading is the “miner capitulation” window. Accent dots mark days where the 30-day crosses back above the 60-day — the published recovery upcross. Bitcoin price runs muted on the left log axis behind the ribbon for cycle context.
Today the ribbon reads as Capitulation, with 27 recovery upcrosses since 2012. The most recent fired on 2026-05-23at $75,482.52 spot. Note the asymmetry that drives the whole indicator: hash rate is a slow, mostly one-way series — it grinds upward for years and only buckles around genuine miner stress, which is precisely why a cross down means more than a cross down on a price chart would.
The 30/60 cross, and the 10/20 step almost everyone drops
One input drives the whole indicator: daily Bitcoin network hash rate in gigahashes per
second, converted to exahashes (1 EH/s = 10⁹ GH/s) for
legibility. Provenance is documented on the data sources page; the canonical formula and the unit conversion are spelled out on methodology. Two simple moving averages run over that series:
ma30(t) = mean(hashrate[t−29..t])
ma60(t) = mean(hashrate[t−59..t])
Edwards's original framing in Hash Ribbons & Bitcoin Bottoms describes the cross in plain English: “When the 1-month SMA of Hash Rate crosses over the
2-month SMA of Hash Rate, the worst of the miner capitulation is typically over, and the recovery
has begun.” A recovery upcross prints on day t when ma30(t−1) ≤ ma60(t−1) and ma30(t) > ma60(t). Capitulation begins when the inequality flips the other
way.
The piece almost every reproduction omits is Edwards's second step. In the same article, Edwards notes that buying on the bare hash-rate cross produced one bad print — the January 2015 false positive — and that most such drawdowns “can be eliminated by simply adding a price action indicator. Such an indicator could include the famous Bitcoin 10- and 20-day SMA cross over.” His buy signal, in his own words, is then defined as “Purchasing during miner capitulation, as the Hash Rates start to ‘recover’ and only once price momentum has gone positive (using the 10–20 SMA cross) yields the results below.” In other words: the 30/60 hash-rate cross marks the end of capitulation; the 10/20 price-SMA cross is what turns it into a buy.
btc oak plots every 30/60 hash-rate upcross. That choice matches the dated list circulating on Bitcoin Magazine and on Capriole's own TradingView script — which is what most readers come to the Hash Ribbon looking for. The cost: two or three of the historical upcrosses fire before, not after, the price-momentum confirmation Edwards specified. The full two-step is the more disciplined read; the bare cross is what gets published. We surface both — the chart plots the cross, the prose names the second step.
| Reading | Regime | What it has meant |
|---|---|---|
| 30d < 60d | Capitulation | Miners under stress. Patience phase; every cycle low since 2015 has been preceded by one. The indicator gives no fresh signal until the 30d crosses back above the 60d. |
| Fresh 30d→60d cross | Recovery | Edwards's recovery upcross. Roughly two-thirds of the historical fourteen prints on Capriole's filtered list have closed in profit at six months; the August 2022 cross is one of the weaker prints captured in this dataset's bare-cross detection. |
| 30d ≥ 60d, no fresh cross | Normal | Above the ribbon. The chart carries no fresh signal — treat it as background until the next capitulation window. |
Reading the ribbon: the contrarian tell
Three regimes, one transition. The grey-shaded capitulation window is patient territory — miners who can't cover power costs are switching off, the back of the queue is clearing, and the indicator does nothing but wait. The accent dots mark the cross when it comes. The unshaded stretch above the ribbon is the “normal” regime: no fresh information until the next capitulation prints. Pair the ribbon's state with the spot-price comparison in the reading row above; the contrarian read worth flagging is when the cross is days old and spot still trades near the signal-day print — the market has not yet repriced the recovery the ribbon claims is underway.
Eight upcrosses, dated and priced at six months out
Eight cycle-anchor windows show the indicator in profile. Each row pins a published Capriole-list upcross; the spot price and the 180-day forward return are computed inline from daily closes. Values drift slightly as new closes arrive — forward returns are rolling by definition.
| Date | Event | Spot at signal | 180-day forward return |
|---|---|---|---|
| 2019-05-23 | 2018–19 bear-end recovery | $7,665.80 | +7.0% 6m fwd |
| 2020-06-21 | Post-COVID recovery | $9,360.25 | pre-stitched cadence |
| 2020-12-02 | 2020 cycle ramp | $18,857.42 | +89.4% 6m fwd |
| 2021-08-07 | Post-China-ban rebuild — fired despite the geographic-relocation cause | $42,802.14 | −13.6% 6m fwd |
| 2022-07-04 | 2022 LUNA-crash recovery | $19,310.23 | −14.0% 6m fwd |
| 2023-01-14 | 2023 banking-crisis lead-in | $19,941.78 | +52.5% 6m fwd |
| 2024-06-17 | 2024 post-halving capitulation | $66,615.54 | +52.1% 6m fwd |
| 2025-12-01 | 2025 late-cycle leg | $90,406.28 | −18.8% 6m fwd |
The honest batting average, counting every cross
Sample every published upcross since 2012 and read the 180-day forward return on each one. The picture is unflattering but honest. Of 23 upcrosses on record, 15 closed positive at six months — a hit rate of 65.2%. The winners averaged +46.6%; the losers averaged −14.8%. The biggest forward-six-month win in the sample sat at +145.4%; the worst loss at −21.8%.
Two caveats sit on top of the number. First, every 30/60 cross is counted as a fresh signal,
so consecutive crosses inside one cycle window are both sampled independently — that
double-counts cluster periods like the 2025 cycle. Second, the published Capriole hit rate of 64% turning a profit
over fourteen historical signals — widely reproduced; the stopsaving.com summary keeps the verbatim wording — uses Edwards's two-step filtered signal, not the bare cross.
Both numbers point at the same picture: the indicator works on average, not on every fire.
When the 2021 China ban broke the textbook
The cleanest example of the ribbon firing for a non-canonical reason printed in mid-2021. Bitcoin's network hash rate fell roughly 50% in two months from the May 2021 peak as Chinese provinces, chiefly Inner Mongolia and then Sichuan, pushed local mining operations to shut down. The 30-day average collapsed under the 60-day, capitulation shading filled the chart, and the pipeline duly recorded a recovery upcross on 2021-08-07 at roughly $42,802.14 spot. Bitcoin then ran to ~$69k over the following three months.
The signal worked. The cause did not match the textbook. The Chinese hash drop was not unprofitable miners switching off — it was profitable miners boxing up rigs and shipping them to Texas, Kazakhstan, and Russia. The canonical mining-map record shows China's network share falling from roughly 46% in April 2021 to effectively zero by July, then climbing back over 20% by year-end as underground operations restarted. The ribbon measured a hash-rate dip; the dip measured ASIC logistics, not miner economics.
The honest framing is that the Hash Ribbon detects something correlated with cycle lows — reduced realized network throughput, broadly — without requiring the cause to be miner capitulation in the strict economic sense. That is a feature for a cycle-bottom hunter and a bug for anyone reading the indicator as a pure miner-stress proxy.
Where the ribbon misleads: 2015, 2019, 2021, 2022
The bare cross has explicit false positives. Edwards flagged a January 2015 buy in his own article as the indicator's worst historical print — the cross fired before the cycle low and was followed by a substantial drawdown. A December 2019 cross “produced the lowest returns recorded” for the indicator before COVID compressed any recovery; Onesafe's review keeps the wording verbatim (Onesafe, 2024). That 2019 cross sits on Capriole's filtered list but is not captured by this page's bare-cross detection — our signals jump from May 2019 straight to June 2020. An August 2022 cross fired roughly three months before the FTX collapse rather than after the cycle low. Edwards's full two-step would have excluded the stray 2012 print and softened the others; the bare cross plotted here catches the 2012 and 2022 prints.
The cause can be non-canonical. The May–July 2021 hash-rate collapse was a geographic relocation event, not miner economics. The recovery upcross still fired and the trade still worked, but the reason had nothing to do with marginal miners going broke. Treat the indicator as a cycle-low coincidence detector, not a strict miner-capitulation reading.
The signal whipsaws when the averages run close. When the 30-day and 60-day lines sit on top of each other, hash rate can nudge the cross back and forth several times in a few months — the dense 2023 and 2025 upcross clusters in the table above are these near-touches, not distinct cycle bottoms. Counted naively, a single recovery window registers as three or four separate “signals.” The 10/20 price filter exists partly to collapse a cluster down to one confirmed entry; the bare cross does not.
The data is modelled, not measured. Network hash rate is a back-out from realised difficulty and observed block intervals. A run of lucky or unlucky blocks can swing daily readings several percent without any change in real-world hashpower. Major dashboards document a daily back-out from realised block intervals and the difficulty target for exactly this reason; the ribbon's 30-day and 60-day averages absorb most of the noise but nothing eliminates it. Critics argue the indicator's relevance softens as institutional spot demand swamps miner-driven sell-pressure as a price input. That argument is paraphrased across the “hash ribbon” SERP, and on balance it lands.
Using it without overtrusting it
If you accumulate on a schedule, the capitulation shading is a useful overlay on a steady weekly buy — a visual reminder that Bitcoin's worst windows have looked structurally similar each cycle. The chart shouldn't change your cadence; over a multi-cycle horizon, the asymmetry of time-in-capitulation does the work on its own.
If you are timing the cycle, the ribbon reads best as one of three cycle-bottom indicators, not a standalone trigger. Best paired with at least two of Puell Multiple, MVRV‑Z, and the 200-week moving average. For single-indicator discipline, Edwards's full two-step is the version to run: wait for the 30/60 hash-rate cross and for a 10-day-over-20-day price-SMA cross on the same window. The unfiltered upcross is what most charts plot; the filtered version is what removes the worst historical false positive.
Frequently asked
- What is the Hash Ribbon?
- The Hash Ribbon plots two moving averages of Bitcoin's network hash rate, one over thirty days and one over sixty. Charles Edwards introduced it in his 2019 Capriole essay Hash Ribbons & Bitcoin Bottoms as a miner-capitulation indicator: when the 30-day line crosses below the 60-day, miners are under stress; when it crosses back above, the worst is typically over. Edwards's full buy signal then waits for a price-momentum confirmation on top of the cross.
- What is the buy signal for the Hash Ribbon?
- Edwards's published spec is two-step. The 30-day SMA of hash rate must cross above the 60-day SMA — that marks the end of miner capitulation. Then a 10-day SMA of price must cross above its 20-day SMA on the same window — the price-momentum confirmation. The unfiltered hash-rate cross alone is what most live charts (and our chart on this page) plot, because it matches the Capriole-published dated buy-signal list. The full Edwards filter would have excluded the indicator's January 2015 false positive.
- Who created the Hash Ribbon?
- Charles Edwards of Capriole Investments first published the indicator on Medium in August 2019, and the canonical write-up — Hash Ribbons & Bitcoin Bottoms — followed in October 2019 with the full 30/60 plus 10/20 specification. The TradingView script at capriole_charles · Hash Ribbons is Edwards's own implementation and was last updated in February 2024.
- Has the Hash Ribbon ever flashed a false signal?
- Yes. A January 2015 buy signal preceded a 42% drawdown before the 2015 cycle low printed — Edwards flags it in his original article. A December 2019 signal on Capriole's filtered list produced what an Onesafe review called
the lowest returns recorded
for the indicator before COVID compressed any recovery; that cross sits on Capriole's list but is not captured by this page's bare-cross detection. An August 2022 signal fired about three months before the FTX collapse rather than after the cycle low. The reported 64% hit rate over fourteen historical signals is the honest framing: works on average, not every time. - Why do clusters of upcrosses appear in a single year?
- The bare 30/60 cross can whipsaw: when the two averages run close together, hash rate can nudge the 30-day back and forth across the 60-day several times in months. 27 upcrosses sit on record since 2012, and the densest clusters — mid-2023, and again across 2025 — are exactly these near-touches rather than 27 distinct cycle bottoms. Edwards's 10/20 price-momentum filter exists in part to thin these clusters down to one confirmed entry per window. The batting-average table on this page counts every cross independently, which is the conservative way to score it.
- What does the Hash Ribbon say right now?
- The ribbon currently reads Capitulation. The most recent 30-over-60 upcross fired on 2026-05-23 with spot at $75,482.52; that was 23 days ago. Spot now sits −12.8% from that print.