On-chain Indicator Audit · Batch 1
Six famous Bitcoin cycle indicators, tested only after they were published
Every indicator has a birthday: the day its creator published it. The days after it are a free out-of-sample test of a rule nobody can re-tune. We froze six rules exactly as first published and sealed the whole test before fetching any on-chain data. None of the six claims is supported: one was testable and failed, and five fired too rarely after publication for any honest inference.
How it was done
- Frozen as first published. Each rule, threshold and moving-average length is taken from the creator’s publication, with its date. The test window starts the day after.
- Preregistered, then sealed. One document fixed the rules, windows, forward-return horizons (90/180/365 days), the null (a circular-shift test that keeps each signal’s timing structure), Holm’s correction across the six, a rule that fewer than 5 independent episodes means “descriptive only”, and a promise to publish everything. Timestamped by DigiCert and FreeTSA (RFC 3161) on 2026-09-25 at 18:22:38 UTC.
- Our own chain data. Puell Multiple and stock-to-flow need daily issuance. We fetched all 968,471 block headers straight from the Bitcoin peer-to-peer network after the seal, and checked every one’s link and proof of work.
- Run once. Indicators that imply a trading rule were also run through our full audit (rubric v1.1) against simply holding Bitcoin.
What we found
Stock-to-flow was the only claim with enough episodes (6) to test. Days below the model price were followed by lower 365-day returns than average, the opposite of the claim (p = 0.94). As a level model it drifted away: Bitcoin averaged 0.15× the model price in 2025 and 0.09× in 2026.
Cycle-top signals barely fire. Pi Cycle crossed once after publication (2021-04-12, a day before the April 2021 local high, but 210 days before the cycle’s highest close); it did not cross before the 2024 or 2025 highs. The Puell Multiple never went above 4. Descriptively, all five small-sample indicators pointed the way their creators said, but one to four episodes is what a handful of cycles looks like, not evidence.
Implied rules: all four graded F against holding Bitcoin, net of costs.
Statistics on past data only. Not a verdict on on-chain analysis in general, and not a recommendation to use or avoid any indicator.
All six results
| Indicator | First published | Frozen rule tested | Window from | Episodes | Avg 365-day return after signal vs all days | p / Holm p | Claim | Implied-rule grade |
|---|---|---|---|---|---|---|---|---|
| Pi Cycle Top | Philip Swift, Apr 2019 | crossing day (top) | 2019-05-01 | 1 | −33% vs +42% | – | Too few events (descriptive) | – |
| 200-week MA heatmap | PlanB concept, Jan 2019 | close <= 1.10 x 200WMA (bottom) | 2019-05-19 | 3 | +102% vs +42% | – | Too few events (descriptive) | – |
| Mayer Multiple | Trace Mayer, 2017 | MM > 2.4 (top) | 2018-01-01 | 3 | −21% vs +36% | – | Too few events (descriptive) | F (+3%/yr) |
| 2-Year MA Multiplier | Philip Swift, Jul 2017 | close < 2yMA (bottom) | 2017-08-01 | 4 | +108% vs +33% | – | Too few events (descriptive) | F (−13%/yr) |
| Puell Multiple | David Puell, Mar 2019 | Puell < 0.5 (bottom) | 2019-04-01 | 4 | +105% vs +42% | – | Too few events (descriptive) | F (+0%/yr) |
| Stock-to-flow | PlanB, 22 Mar 2019 | close < S2F model (bottom) | 2019-03-23 | 6 | +26% vs +42% | 0.94 / 1.00 | Not supported | F (−19%/yr) |
Windows end 2026-09-24. Returns are geometric means over days with a full 365-day window. “Episodes” are separate runs of signal days (gaps under 30 days merged). With fewer than 5, the preregistered rule reports the result descriptively and shows no p-value. Top claims predict lower returns after the signal; bottom claims predict higher.
Not run yet: MVRV Z-score, NUPL, SOPR, Reserve Risk, short-term-holder cost basis, realized price. These need UTXO-level data, and the free and personal tiers of the vendors we checked do not allow commercial publication. Their rules are sealed in the same preregistration. We loaded none of their values and will run them only under a licence that permits publishing.
Seal. Preregistration SHA-256 aafe3c37f5bbf83bc6e4b9a986ef1c936c3b74a927c253b833a5a7626482de40; seal record f8d7d587466a4bb61b5c179aba44bb766825a6a495cc3ecb68d16e39c1810275. The preregistration, receipts, licence record and code are in the open-source repository (samples/onchain1/).
Disclosures. This is not a blind test: we had already seen Bitcoin’s price path, and four of the six indicators are functions of price alone. The protection is that every rule came from its creator and every test was fixed and sealed before the run. Our own choices, sealed in advance: “close to” the 200-week MA means within 10%; stock-to-flow uses a daily trailing-year flow; Puell bands are Glassnode’s (above 4, below 0.5); the Mayer window starts 2018-01-01 because its first-publication month is unverified. The 200-week heatmap’s colour claim was not tested because its thresholds were not published in a form we could find. Deviations: a clerical timestamp field in the sealed document is 22 seconds later than the seal itself (the RFC 3161 time is authoritative), and a loading error was fixed before any statistic was computed.
Prices from the Coinbase Exchange public API; we publish derived statistics only, never raw prices; no redistribution. Block headers from the public Bitcoin network.
These audits analyze published indicator rules on historical data for illustration. They are not recommendations to buy, sell or hold anything, and a result is not a prediction.