IZAWI·CORPORATIONイザウィ

CFO Research · The Engine Atlas

2026-09-05REGIME ENGINE @ fbf7e7c

Everything the engine sees.

Fifteen years of bitcoin, every input the regime engine reads, every state it declares, what it gets right, and — just as important — the four strategies we tested against it that failed. In charts, so it can be argued with.

BTC$79,7452026-09-05
RegimeRECOVERY5 pillars · coverage 0.93
Value percentile33.5of its own 2015+ history
MVRV-Z0.87tops ran 2.3–6.9
Supply in profit67.9%bottoms ran 24–41%
vs a 200DMA+8.1ppat classifying regime

0 · What the engine is made of

An atlas should say what it maps. This engine is a bitcoin regime classifier: it reads a panel of on-chain, derivatives and macro series every day, scores each against its own history only, and declares a state. Everything else on this page is a finding produced by it.

Independent sources16feeding the daily panel
Chain metrics87carried and charted
Macro series144rates, jobs, liquidity
Panel coverage0.93of enrolled metrics fresh
Deepest series2010BTC consensus, 5,865 days
Scoring window2015+the modern era, by ruling

Where the data comes from

Sixteen independent sources reach the panel, and the engine is deliberately built so that no single one of them can move a reading on its own. Bitcoin’s own price is a per-day median of up to five feeds rather than one venue’s print — which is also why it reaches back to 2010 rather than to whenever one vendor started.

What runs, and how it is checked

Capture is scheduled, not manual. Every job must declare how its output can be verified, and the monitor fails the run if a job cannot answer — a job that quietly stops is the failure this design exists to prevent.

declarationjobsmeaning
artifact40writes a file the monitor reads back
checked_by5a named external tool verifies it
produces:false5a watchdog; produces nothing by design
none of these2UNCHECKED — and the monitor exits non-zero
52 declared jobs. Until this scheme existed, 25 of 47 were invisible to the monitor: for those, “running” meant the scheduler exited zero, which is a status through a pipe rather than output produced.

What it produces

Three published surfaces, all built from the same panel:

Every level on those pages is drawn against its own history, because a number without its range is not a reading. Percentiles are expanding-window: no day is ever scored against a future it could not have seen.

1 · Where bitcoin stands, in value terms

A percentile built from four slow mean-reversion models — price ÷ 200-week average, MVRV, MVRV-Z, and deviation from a power-law fit — each ranked only against its own past, never the full series. Today it reads 33.5.

CYCLE BOTTOMS CYCLE TOPS ’153.2’224.8’1810.5’2016.4 ’2571.6’2180.8’13 ’1797.3 TODAY 18.1 0 — deep value euphoric — 100
Every cycle bottom sits between 3.2 and 16.4; every top between 71.6 and 97.5. No overlap in fifteen years.
20 8020112013201520172019202120232025
The same measure over fourteen years. It is bounded and mean-reverting where price is not — which is the entire reason for expressing value this way.

2 · Fifteen years, what the engine called, and what actually happened

Price on a log scale. Beneath it two ribbons on identical days: what the engine declared, and the actual cycle phase derived mechanically from price. Hover anywhere on the price line for the date and price; every cycle peak and trough is labelled with the price it happened at.

$100$1,000$10,000$100,000$29$1.1k$19.5k$12.9k$67.5k$125k$2$171$3.2k$4.9k$15.8k$58.5k 2011-01-01 $02011-01-08 $02011-01-15 $02011-01-22 $02011-01-29 $02011-02-05 $12011-02-12 $12011-02-19 $12011-02-26 $12011-03-05 $12011-03-12 $12011-03-19 $12011-03-26 $12011-04-02 $12011-04-09 $12011-04-16 $12011-04-23 $22011-04-30 $32011-05-07 $42011-05-14 $72011-05-21 $62011-05-28 $82011-06-04 $172011-06-11 $162011-06-18 $162011-06-25 $182011-07-02 $152011-07-09 $142011-07-16 $142011-07-23 $142011-07-30 $142011-08-06 $72011-08-13 $102011-08-20 $112011-08-27 $92011-09-03 $82011-09-10 $52011-09-17 $52011-09-24 $52011-10-01 $52011-10-08 $42011-10-15 $42011-10-22 $32011-10-29 $42011-11-05 $32011-11-12 $32011-11-19 $22011-11-26 $22011-12-03 $32011-12-10 $32011-12-17 $32011-12-24 $42011-12-31 $52012-01-07 $72012-01-14 $62012-01-21 $72012-01-28 $52012-02-04 $62012-02-11 $62012-02-18 $42012-02-25 $52012-03-03 $52012-03-10 $52012-03-17 $52012-03-24 $52012-03-31 $52012-04-07 $52012-04-14 $52012-04-21 $52012-04-28 $52012-05-05 $52012-05-12 $52012-05-19 $52012-05-26 $52012-06-02 $52012-06-09 $52012-06-16 $62012-06-23 $62012-06-30 $72012-07-07 $72012-07-14 $82012-07-21 $92012-07-28 $92012-08-04 $112012-08-11 $112012-08-18 $122012-08-25 $112012-09-01 $102012-09-08 $112012-09-15 $122012-09-22 $122012-09-29 $122012-10-06 $122012-10-13 $122012-10-20 $122012-10-27 $102012-11-03 $112012-11-10 $112012-11-17 $122012-11-24 $122012-12-01 $122012-12-08 $132012-12-15 $132012-12-22 $132012-12-29 $132013-01-05 $132013-01-12 $142013-01-19 $162013-01-26 $172013-02-02 $202013-02-09 $232013-02-16 $282013-02-23 $302013-03-02 $342013-03-09 $462013-03-16 $472013-03-23 $642013-03-30 $922013-04-06 $1422013-04-13 $972013-04-20 $1272013-04-27 $1292013-05-04 $1122013-05-11 $1152013-05-18 $1182013-05-25 $1292013-06-01 $1292013-06-08 $1092013-06-15 $1002013-06-22 $1002013-06-29 $892013-07-06 $662013-07-13 $922013-07-20 $852013-07-27 $882013-08-03 $962013-08-10 $932013-08-17 $1002013-08-24 $1092013-08-31 $1282013-09-07 $1202013-09-14 $1242013-09-21 $1232013-09-28 $1272013-10-05 $1212013-10-12 $1282013-10-19 $1662013-10-26 $1802013-11-02 $2052013-11-09 $3312013-11-16 $4362013-11-23 $8292013-11-30 $1,1202013-12-07 $7042013-12-14 $8532013-12-21 $5972013-12-28 $7162014-01-04 $8292014-01-11 $8902014-01-18 $8102014-01-25 $8042014-02-01 $8132014-02-08 $6802014-02-15 $6562014-02-22 $6072014-03-01 $5672014-03-08 $6212014-03-15 $6362014-03-22 $5652014-03-29 $4922014-04-05 $4632014-04-12 $4232014-04-19 $5042014-04-26 $4592014-05-03 $4392014-05-10 $4552014-05-17 $4492014-05-24 $5282014-05-31 $6282014-06-07 $6572014-06-14 $5672014-06-21 $5922014-06-28 $5912014-07-05 $6302014-07-12 $6372014-07-19 $6292014-07-26 $5952014-08-02 $5902014-08-09 $5892014-08-16 $5222014-08-23 $4972014-08-30 $5012014-09-06 $4802014-09-13 $4782014-09-20 $4112014-09-27 $4012014-10-04 $3292014-10-11 $3622014-10-18 $3912014-10-25 $3472014-11-01 $3242014-11-08 $3462014-11-15 $3772014-11-22 $3532014-11-29 $3762014-12-06 $3752014-12-13 $3512014-12-20 $3312014-12-27 $3162015-01-03 $2862015-01-10 $2762015-01-17 $2002015-01-24 $2492015-01-31 $2172015-02-07 $2292015-02-14 $2572015-02-21 $2462015-02-28 $2532015-03-07 $2762015-03-14 $2842015-03-21 $2612015-03-28 $2532015-04-04 $2542015-04-11 $2372015-04-18 $2232015-04-25 $2262015-05-02 $2352015-05-09 $2432015-05-16 $2362015-05-23 $2392015-05-30 $2322015-06-06 $2252015-06-13 $2322015-06-20 $2452015-06-27 $2512015-07-04 $2602015-07-11 $2932015-07-18 $2772015-07-25 $2892015-08-01 $2822015-08-08 $2622015-08-15 $2622015-08-22 $2312015-08-29 $2302015-09-05 $2362015-09-12 $2362015-09-19 $2322015-09-26 $2352015-10-03 $2402015-10-10 $2462015-10-17 $2712015-10-24 $2832015-10-31 $3132015-11-07 $3852015-11-14 $3332015-11-21 $3262015-11-28 $3572015-12-05 $3882015-12-12 $4362015-12-19 $4622015-12-26 $4182016-01-02 $4342016-01-09 $4502016-01-16 $3872016-01-23 $3872016-01-30 $3772016-02-06 $3752016-02-13 $3902016-02-20 $4392016-02-27 $4322016-03-05 $3992016-03-12 $4112016-03-19 $4092016-03-26 $4172016-04-02 $4192016-04-09 $4182016-04-16 $4322016-04-23 $4532016-04-30 $4502016-05-07 $4602016-05-14 $4582016-05-21 $4442016-05-28 $5232016-06-04 $5742016-06-11 $6072016-06-18 $7572016-06-25 $6652016-07-02 $7032016-07-09 $6522016-07-16 $6642016-07-23 $6562016-07-30 $6552016-08-06 $5902016-08-13 $5852016-08-20 $5802016-08-27 $5702016-09-03 $5982016-09-10 $6242016-09-17 $6062016-09-24 $6032016-10-01 $6142016-10-08 $6182016-10-15 $6382016-10-22 $6542016-10-29 $7142016-11-05 $7052016-11-12 $7032016-11-19 $7512016-11-26 $7332016-12-03 $7642016-12-10 $7742016-12-17 $7892016-12-24 $8922016-12-31 $9682017-01-07 $9052017-01-14 $8232017-01-21 $9242017-01-28 $9212017-02-04 $1,0332017-02-11 $1,0122017-02-18 $1,0602017-02-25 $1,1522017-03-04 $1,2642017-03-11 $1,1772017-03-18 $9672017-03-25 $9602017-04-01 $1,0872017-04-08 $1,1842017-04-15 $1,1772017-04-22 $1,2442017-04-29 $1,3462017-05-06 $1,5662017-05-13 $1,7782017-05-20 $2,0312017-05-27 $2,0722017-06-03 $2,5492017-06-10 $2,9082017-06-17 $2,6402017-06-24 $2,5652017-07-01 $2,4152017-07-08 $2,5522017-07-15 $1,9802017-07-22 $2,8282017-07-29 $2,7032017-08-05 $3,2402017-08-12 $3,8632017-08-19 $4,1572017-08-26 $4,3382017-09-02 $4,5972017-09-09 $4,3222017-09-16 $3,7102017-09-23 $3,7772017-09-30 $4,3302017-10-07 $4,4242017-10-14 $5,7942017-10-21 $6,0282017-10-28 $5,7492017-11-04 $7,4162017-11-11 $6,3512017-11-18 $7,7762017-11-25 $8,7392017-12-02 $10,9332017-12-09 $14,8292017-12-16 $19,5132017-12-23 $14,9932017-12-30 $12,8942018-01-06 $17,1012018-01-13 $14,2152018-01-20 $12,7722018-01-27 $11,3842018-02-03 $9,1792018-02-10 $8,5392018-02-17 $11,0932018-02-24 $9,6882018-03-03 $11,4292018-03-10 $8,7932018-03-17 $7,8712018-03-24 $8,5792018-03-31 $6,9292018-04-07 $6,8992018-04-14 $8,0052018-04-21 $8,8892018-04-28 $9,3392018-05-05 $9,7992018-05-12 $8,4842018-05-19 $8,2302018-05-26 $7,3332018-06-02 $7,6372018-06-09 $7,5262018-06-16 $6,4892018-06-23 $6,1762018-06-30 $6,3792018-07-07 $6,7572018-07-14 $6,2462018-07-21 $7,4102018-07-28 $8,2152018-08-04 $7,0042018-08-11 $6,2772018-08-18 $6,3982018-08-25 $6,7352018-09-01 $7,1882018-09-08 $6,1832018-09-15 $6,5222018-09-22 $6,7062018-09-29 $6,5832018-10-06 $6,5492018-10-13 $6,1992018-10-20 $6,4132018-10-27 $6,4092018-11-03 $6,3322018-11-10 $6,3512018-11-17 $5,5042018-11-24 $3,7962018-12-01 $4,1452018-12-08 $3,4002018-12-15 $3,1842018-12-22 $3,9812018-12-29 $3,7762019-01-05 $3,7992019-01-12 $3,6182019-01-19 $3,6852019-01-26 $3,5572019-02-02 $3,4632019-02-09 $3,6232019-02-16 $3,5842019-02-23 $4,1122019-03-02 $3,8102019-03-09 $3,9172019-03-16 $3,9902019-03-23 $3,9832019-03-30 $4,0932019-04-06 $5,0472019-04-13 $5,0682019-04-20 $5,3162019-04-27 $5,1762019-05-04 $5,7672019-05-11 $7,2732019-05-18 $7,2622019-05-25 $8,0632019-06-01 $8,5562019-06-08 $7,9362019-06-15 $8,8542019-06-22 $10,6722019-06-29 $11,9052019-07-06 $11,2232019-07-13 $11,3582019-07-20 $10,8122019-07-27 $9,4632019-08-03 $10,8212019-08-10 $11,2922019-08-17 $10,2132019-08-24 $10,1482019-08-31 $9,6032019-09-07 $10,4842019-09-14 $10,3582019-09-21 $9,9862019-09-28 $8,2102019-10-05 $8,1432019-10-12 $8,3162019-10-19 $7,9542019-10-26 $9,2512019-11-02 $9,3072019-11-09 $8,8092019-11-16 $8,4832019-11-23 $7,3242019-11-30 $7,5532019-12-07 $7,5052019-12-14 $7,0672019-12-21 $7,1452019-12-28 $7,3052020-01-04 $7,3442020-01-11 $8,0262020-01-18 $8,9092020-01-25 $8,3282020-02-01 $9,3792020-02-08 $9,9042020-02-15 $9,9062020-02-22 $9,6682020-02-29 $8,5552020-03-07 $8,9002020-03-14 $5,1672020-03-21 $6,1822020-03-28 $6,2422020-04-04 $6,8672020-04-11 $6,8832020-04-18 $7,2622020-04-25 $7,5432020-05-02 $8,9812020-05-09 $9,5572020-05-16 $9,3922020-05-23 $9,1842020-05-30 $9,6962020-06-06 $9,6692020-06-13 $9,4672020-06-20 $9,3562020-06-27 $9,0062020-07-04 $9,1322020-07-11 $9,2362020-07-18 $9,1762020-07-25 $9,7072020-08-01 $11,8042020-08-08 $11,7622020-08-15 $11,8632020-08-22 $11,6702020-08-29 $11,4792020-09-05 $10,1482020-09-12 $10,4452020-09-19 $11,0792020-09-26 $10,7302020-10-03 $10,5552020-10-10 $11,3022020-10-17 $11,3642020-10-24 $13,1182020-10-31 $13,8062020-11-07 $14,8372020-11-14 $16,0842020-11-21 $18,7142020-11-28 $17,7442020-12-05 $19,1372020-12-12 $18,8182020-12-19 $23,8532020-12-26 $26,4712021-01-02 $32,1202021-01-09 $40,2902021-01-16 $36,0032021-01-23 $32,0742021-01-30 $34,3192021-02-06 $39,3122021-02-13 $47,2302021-02-20 $55,8932021-02-27 $46,1452021-03-06 $48,9072021-03-13 $61,1722021-03-20 $58,1932021-03-27 $55,9382021-04-03 $57,1882021-04-10 $59,7092021-04-17 $60,1702021-04-24 $50,1972021-05-01 $57,8562021-05-08 $58,9052021-05-15 $46,9122021-05-22 $37,5692021-05-29 $34,6342021-06-05 $35,4712021-06-12 $35,6132021-06-19 $35,5322021-06-26 $32,0802021-07-03 $34,6532021-07-10 $33,5252021-07-17 $31,5412021-07-24 $34,2252021-07-31 $41,6172021-08-07 $44,5492021-08-14 $47,1152021-08-21 $48,9772021-08-28 $48,9132021-09-04 $49,9312021-09-11 $45,1742021-09-18 $48,2592021-09-25 $42,7142021-10-02 $47,7392021-10-09 $54,9732021-10-16 $60,8952021-10-23 $61,2752021-10-30 $61,8182021-11-06 $61,5172021-11-13 $64,4092021-11-20 $59,7552021-11-27 $54,7122021-12-04 $49,1972021-12-11 $49,3612021-12-18 $46,8712021-12-25 $50,5162022-01-01 $47,6472022-01-08 $41,7242022-01-15 $43,1342022-01-22 $35,0562022-01-29 $38,1402022-02-05 $41,4682022-02-12 $42,2072022-02-19 $40,0992022-02-26 $39,1422022-03-05 $39,3932022-03-12 $38,8872022-03-19 $42,2132022-03-26 $44,5282022-04-02 $45,8832022-04-09 $42,7242022-04-16 $40,3922022-04-23 $39,5242022-04-30 $37,6692022-05-07 $35,4612022-05-14 $30,0382022-05-21 $29,4212022-05-28 $29,0102022-06-04 $29,8392022-06-11 $28,3752022-06-18 $18,9852022-06-25 $21,4732022-07-02 $19,2302022-07-09 $21,5872022-07-16 $21,1932022-07-23 $22,4602022-07-30 $23,6472022-08-06 $22,9792022-08-13 $24,4552022-08-20 $21,1432022-08-27 $20,0402022-09-03 $19,8202022-09-10 $21,6622022-09-17 $20,1172022-09-24 $18,9222022-10-01 $19,3122022-10-08 $19,4182022-10-15 $19,0682022-10-22 $19,2072022-10-29 $20,8122022-11-05 $21,3012022-11-12 $16,7822022-11-19 $16,6932022-11-26 $16,4502022-12-03 $16,8942022-12-10 $17,1282022-12-17 $16,7802022-12-24 $16,8372022-12-31 $16,5292023-01-07 $16,9442023-01-14 $20,9672023-01-21 $22,7962023-01-28 $23,0192023-02-04 $23,3432023-02-11 $21,8642023-02-18 $24,6362023-02-25 $23,1602023-03-04 $22,3492023-03-11 $20,6022023-03-18 $26,9832023-03-25 $27,4942023-04-01 $28,4832023-04-08 $27,9612023-04-15 $30,3282023-04-22 $27,8242023-04-29 $29,2342023-05-06 $28,9012023-05-13 $26,8152023-05-20 $27,1072023-05-27 $26,8702023-06-03 $27,0772023-06-10 $25,8572023-06-17 $26,5112023-06-24 $30,5482023-07-01 $30,5842023-07-08 $30,2782023-07-15 $30,2962023-07-22 $29,7922023-07-29 $29,3582023-08-05 $29,0482023-08-12 $29,4162023-08-19 $26,0952023-08-26 $26,0072023-09-02 $25,8682023-09-09 $25,8962023-09-16 $26,5702023-09-23 $26,5812023-09-30 $26,9642023-10-07 $27,9722023-10-14 $26,8582023-10-21 $29,9242023-10-28 $34,0912023-11-04 $35,0872023-11-11 $37,0602023-11-18 $36,5842023-11-25 $37,8032023-12-02 $39,4682023-12-09 $43,7292023-12-16 $42,2202023-12-23 $43,7302023-12-30 $42,1562024-01-06 $43,9552024-01-13 $42,8412024-01-20 $41,6712024-01-27 $42,1262024-02-03 $43,0022024-02-10 $47,7812024-02-17 $51,6712024-02-24 $51,5662024-03-02 $62,0442024-03-09 $68,4722024-03-16 $65,3442024-03-23 $64,1812024-03-30 $69,6452024-04-06 $69,0082024-04-13 $64,3032024-04-20 $64,9382024-04-27 $63,4262024-05-04 $63,8902024-05-11 $60,8302024-05-18 $66,9272024-05-25 $69,2792024-06-01 $67,7172024-06-08 $69,3052024-06-15 $66,1872024-06-22 $64,2472024-06-29 $60,8872024-07-06 $58,2482024-07-13 $59,2752024-07-20 $67,1592024-07-27 $67,9882024-08-03 $60,6732024-08-10 $60,9412024-08-17 $59,4922024-08-24 $64,1742024-08-31 $58,9672024-09-07 $54,1462024-09-14 $60,0122024-09-21 $63,3642024-09-28 $65,8592024-10-05 $62,0492024-10-12 $63,1872024-10-19 $68,3642024-10-26 $67,0132024-11-02 $69,3002024-11-09 $76,7262024-11-16 $90,5682024-11-23 $97,7592024-11-30 $96,4642024-12-07 $99,9292024-12-14 $101,3822024-12-21 $97,2112024-12-28 $95,1392025-01-04 $98,2092025-01-11 $94,5652025-01-18 $104,3982025-01-25 $104,7382025-02-01 $100,6242025-02-08 $96,4962025-02-15 $97,5912025-02-22 $96,6002025-03-01 $86,0192025-03-08 $86,1712025-03-15 $84,3472025-03-22 $83,8232025-03-29 $82,6082025-04-05 $83,4982025-04-12 $85,2712025-04-19 $85,1152025-04-26 $94,6642025-05-03 $95,9162025-05-10 $104,8002025-05-17 $103,1692025-05-24 $107,8242025-05-31 $104,6622025-06-07 $105,6542025-06-14 $105,4652025-06-21 $102,1392025-06-28 $107,3482025-07-05 $108,2472025-07-12 $117,4642025-07-19 $117,9092025-07-26 $117,9622025-08-02 $112,5252025-08-09 $116,4932025-08-16 $117,4622025-08-23 $115,3442025-08-30 $108,7502025-09-06 $110,2232025-09-13 $115,9682025-09-20 $115,7532025-09-27 $109,6792025-10-04 $122,4262025-10-11 $110,7752025-10-18 $107,1992025-10-25 $111,6452025-11-01 $110,0182025-11-08 $102,2862025-11-15 $95,5392025-11-22 $84,6842025-11-29 $90,8342025-12-06 $89,2402025-12-13 $90,2542025-12-20 $88,3242025-12-27 $87,8032026-01-03 $90,5902026-01-10 $90,3822026-01-17 $95,1102026-01-24 $89,0892026-01-31 $78,6482026-02-07 $69,2452026-02-14 $69,7912026-02-21 $67,9672026-02-28 $66,9682026-03-07 $67,2702026-03-14 $71,2112026-03-21 $68,9122026-03-28 $66,3222026-04-04 $67,2922026-04-11 $73,0862026-04-18 $75,7372026-04-25 $77,6392026-05-02 $78,6822026-05-09 $80,6642026-05-16 $78,1232026-05-23 $76,6562026-05-30 $73,7642026-06-06 $60,8532026-06-13 $64,4352026-06-20 $64,2482026-06-27 $59,9412026-07-04 $63,0862026-07-11 $63,7802026-07-18 $64,7942026-07-25 $64,3102026-08-01 $62,7602026-08-08 $64,905 BTC, log scale — hover the line for any date’s price ENGINE UNKNOWN 2011-01-01 to 2011-02-28RECOVERY 2011-03-01 to 2011-03-07UNKNOWN 2011-03-08 to 2011-03-13ACCUMULATION 2011-03-14 to 2011-04-24RECOVERY 2011-04-25 to 2011-07-01UNKNOWN 2011-07-02 to 2011-07-19ACCUMULATION 2011-07-20 to 2011-09-07BEAR_DECLINE 2011-09-08 to 2011-09-21CAPITULATION 2011-09-22 to 2011-10-19BEAR_DECLINE 2011-10-20 to 2011-11-02CAPITULATION 2011-11-03 to 2011-11-16BEAR_DECLINE 2011-11-17 to 2012-02-18ACCUMULATION 2012-02-19 to 2012-05-25BEAR_DECLINE 2012-05-26 to 2012-06-08RECOVERY 2012-06-09 to 2012-06-23BEAR_DECLINE 2012-06-24 to 2012-07-08RECOVERY 2012-07-09 to 2013-01-31EUPHORIA_DISTRIBUTION 2013-02-01 to 2013-02-19BULL_EXPANSION 2013-02-20 to 2013-03-05EUPHORIA_DISTRIBUTION 2013-03-06 to 2013-04-11RECOVERY 2013-04-12 to 2013-05-05UNKNOWN 2013-05-06 to 2013-05-20RECOVERY 2013-05-21 to 2013-06-06UNKNOWN 2013-06-07 to 2013-07-13BEAR_DECLINE 2013-07-14 to 2013-08-20RECOVERY 2013-08-21 to 2013-09-07BEAR_DECLINE 2013-09-08 to 2013-09-22RECOVERY 2013-09-23 to 2013-11-15EUPHORIA_DISTRIBUTION 2013-11-16 to 2013-12-04RECOVERY 2013-12-05 to 2013-12-13UNKNOWN 2013-12-14 to 2013-12-14RECOVERY 2013-12-15 to 2013-12-17UNKNOWN 2013-12-18 to 2014-01-05RECOVERY 2014-01-06 to 2014-02-11UNKNOWN 2014-02-12 to 2014-03-19BEAR_DECLINE 2014-03-20 to 2014-04-02ACCUMULATION 2014-04-03 to 2014-04-19BEAR_DECLINE 2014-04-20 to 2014-05-31RECOVERY 2014-06-01 to 2014-06-13BEAR_DECLINE 2014-06-14 to 2014-10-03CAPITULATION 2014-10-04 to 2014-10-22ACCUMULATION 2014-10-23 to 2015-03-23BEAR_DECLINE 2015-03-24 to 2015-04-06ACCUMULATION 2015-04-07 to 2015-06-06BEAR_DECLINE 2015-06-07 to 2015-08-24CAPITULATION 2015-08-25 to 2015-09-07ACCUMULATION 2015-09-08 to 2015-11-10UNKNOWN 2015-11-11 to 2015-11-21RECOVERY 2015-11-22 to 2016-01-14UNKNOWN 2016-01-15 to 2016-02-13RECOVERY 2016-02-14 to 2016-06-21UNKNOWN 2016-06-22 to 2016-06-22RECOVERY 2016-06-23 to 2016-06-25UNKNOWN 2016-06-26 to 2016-06-26RECOVERY 2016-06-27 to 2016-06-28UNKNOWN 2016-06-29 to 2016-06-29RECOVERY 2016-06-30 to 2016-07-02UNKNOWN 2016-07-03 to 2016-07-03RECOVERY 2016-07-04 to 2016-07-22UNKNOWN 2016-07-23 to 2016-07-25RECOVERY 2016-07-26 to 2017-01-03BULL_EXPANSION 2017-01-04 to 2017-01-14UNKNOWN 2017-01-15 to 2017-01-18RECOVERY 2017-01-19 to 2017-02-20BULL_EXPANSION 2017-02-21 to 2017-03-07RECOVERY 2017-03-08 to 2017-03-18UNKNOWN 2017-03-19 to 2017-03-19RECOVERY 2017-03-20 to 2017-04-10BULL_EXPANSION 2017-04-11 to 2017-05-11RECOVERY 2017-05-12 to 2017-05-26BULL_EXPANSION 2017-05-27 to 2017-06-09EUPHORIA_DISTRIBUTION 2017-06-10 to 2017-06-23UNKNOWN 2017-06-24 to 2017-07-03RECOVERY 2017-07-04 to 2017-07-14UNKNOWN 2017-07-15 to 2017-07-17RECOVERY 2017-07-18 to 2017-07-31EUPHORIA_DISTRIBUTION 2017-08-01 to 2017-11-08BULL_EXPANSION 2017-11-09 to 2017-11-10EUPHORIA_DISTRIBUTION 2017-11-11 to 2018-01-08RECOVERY 2018-01-09 to 2018-01-13EUPHORIA_DISTRIBUTION 2018-01-14 to 2018-02-01UNKNOWN 2018-02-02 to 2018-02-19EUPHORIA_DISTRIBUTION 2018-02-20 to 2018-03-07BEAR_DECLINE 2018-03-08 to 2018-05-27UNKNOWN 2018-05-28 to 2018-06-09BEAR_DECLINE 2018-06-10 to 2018-07-23RECOVERY 2018-07-24 to 2018-08-06BEAR_DECLINE 2018-08-07 to 2018-09-03RECOVERY 2018-09-04 to 2018-09-17BEAR_DECLINE 2018-09-18 to 2018-11-23CAPITULATION 2018-11-24 to 2018-12-05ACCUMULATION 2018-12-06 to 2018-12-09BEAR_DECLINE 2018-12-10 to 2018-12-17CAPITULATION 2018-12-18 to 2018-12-31ACCUMULATION 2019-01-01 to 2019-05-06RECOVERY 2019-05-07 to 2019-06-08UNKNOWN 2019-06-09 to 2019-06-10RECOVERY 2019-06-11 to 2019-07-13UNKNOWN 2019-07-14 to 2019-07-15RECOVERY 2019-07-16 to 2019-07-21UNKNOWN 2019-07-22 to 2019-07-29RECOVERY 2019-07-30 to 2019-08-16UNKNOWN 2019-08-17 to 2019-08-18RECOVERY 2019-08-19 to 2019-09-20UNKNOWN 2019-09-21 to 2019-10-20BEAR_DECLINE 2019-10-21 to 2020-01-13RECOVERY 2020-01-14 to 2020-02-29UNKNOWN 2020-03-01 to 2020-03-11CAPITULATION 2020-03-12 to 2020-03-12ACCUMULATION 2020-03-13 to 2020-04-26RECOVERY 2020-04-27 to 2020-11-19BULL_EXPANSION 2020-11-20 to 2020-12-09RECOVERY 2020-12-10 to 2020-12-23BULL_EXPANSION 2020-12-24 to 2021-01-06EUPHORIA_DISTRIBUTION 2021-01-07 to 2021-01-20RECOVERY 2021-01-21 to 2021-02-04EUPHORIA_DISTRIBUTION 2021-02-05 to 2021-02-21RECOVERY 2021-02-22 to 2021-02-27UNKNOWN 2021-02-28 to 2021-02-28RECOVERY 2021-03-01 to 2021-03-15EUPHORIA_DISTRIBUTION 2021-03-16 to 2021-03-31BULL_EXPANSION 2021-04-01 to 2021-04-14EUPHORIA_DISTRIBUTION 2021-04-15 to 2021-04-24UNKNOWN 2021-04-25 to 2021-04-26RECOVERY 2021-04-27 to 2021-05-14UNKNOWN 2021-05-15 to 2021-06-13BEAR_DECLINE 2021-06-14 to 2021-08-08RECOVERY 2021-08-09 to 2021-12-08UNKNOWN 2021-12-09 to 2021-12-31BEAR_DECLINE 2022-01-01 to 2022-03-27RECOVERY 2022-03-28 to 2022-04-10BEAR_DECLINE 2022-04-11 to 2022-05-08ACCUMULATION 2022-05-09 to 2022-08-18BEAR_DECLINE 2022-08-19 to 2022-09-03ACCUMULATION 2022-09-04 to 2022-09-17BEAR_DECLINE 2022-09-18 to 2022-11-07CAPITULATION 2022-11-08 to 2022-11-10BEAR_DECLINE 2022-11-11 to 2022-11-24ACCUMULATION 2022-11-25 to 2023-02-11UNKNOWN 2023-02-12 to 2023-02-15RECOVERY 2023-02-16 to 2023-03-29UNKNOWN 2023-03-30 to 2023-04-06RECOVERY 2023-04-07 to 2023-05-10UNKNOWN 2023-05-11 to 2023-05-15RECOVERY 2023-05-16 to 2023-08-20ACCUMULATION 2023-08-21 to 2023-09-24BEAR_DECLINE 2023-09-25 to 2023-10-23RECOVERY 2023-10-24 to 2024-01-21UNKNOWN 2024-01-22 to 2024-01-23RECOVERY 2024-01-24 to 2024-02-13EUPHORIA_DISTRIBUTION 2024-02-14 to 2024-03-18RECOVERY 2024-03-19 to 2024-04-07EUPHORIA_DISTRIBUTION 2024-04-08 to 2024-04-23RECOVERY 2024-04-24 to 2024-04-30UNKNOWN 2024-05-01 to 2024-05-19BULL_EXPANSION 2024-05-20 to 2024-06-02RECOVERY 2024-06-03 to 2024-06-22UNKNOWN 2024-06-23 to 2024-07-15RECOVERY 2024-07-16 to 2024-07-30UNKNOWN 2024-07-31 to 2024-08-03BEAR_DECLINE 2024-08-04 to 2024-08-22RECOVERY 2024-08-23 to 2024-09-05BEAR_DECLINE 2024-09-06 to 2024-09-19RECOVERY 2024-09-20 to 2024-10-11BEAR_DECLINE 2024-10-12 to 2024-10-25RECOVERY 2024-10-26 to 2024-11-08BULL_EXPANSION 2024-11-09 to 2024-11-24RECOVERY 2024-11-25 to 2024-12-11BULL_EXPANSION 2024-12-12 to 2024-12-30RECOVERY 2024-12-31 to 2025-01-08UNKNOWN 2025-01-09 to 2025-01-13RECOVERY 2025-01-14 to 2025-01-28BULL_EXPANSION 2025-01-29 to 2025-02-11RECOVERY 2025-02-12 to 2025-03-08UNKNOWN 2025-03-09 to 2025-03-26BEAR_DECLINE 2025-03-27 to 2025-04-22RECOVERY 2025-04-23 to 2025-05-03BEAR_DECLINE 2025-05-04 to 2025-06-03RECOVERY 2025-06-04 to 2025-08-03BULL_EXPANSION 2025-08-04 to 2025-08-24RECOVERY 2025-08-25 to 2025-09-17BULL_EXPANSION 2025-09-18 to 2025-10-11RECOVERY 2025-10-12 to 2025-10-15UNKNOWN 2025-10-16 to 2025-10-25RECOVERY 2025-10-26 to 2025-11-03UNKNOWN 2025-11-04 to 2025-11-08BEAR_DECLINE 2025-11-09 to 2026-02-03ACCUMULATION 2026-02-04 to 2026-02-20BEAR_DECLINE 2026-02-21 to 2026-05-02RECOVERY 2026-05-03 to 2026-05-16BEAR_DECLINE 2026-05-17 to 2026-08-10 ACTUAL EUPHORIA_DISTRIBUTION 2011-03-11 to 2011-06-09BEAR_DECLINE 2011-06-10 to 2011-10-03CAPITULATION 2011-10-04 to 2011-11-18ACCUMULATION 2011-11-19 to 2012-05-16RECOVERY 2012-05-17 to 2013-02-19BULL_EXPANSION 2013-02-20 to 2013-09-04EUPHORIA_DISTRIBUTION 2013-09-05 to 2013-12-04BEAR_DECLINE 2013-12-05 to 2014-11-29CAPITULATION 2014-11-30 to 2015-01-14ACCUMULATION 2015-01-15 to 2015-07-13RECOVERY 2015-07-14 to 2017-02-23BULL_EXPANSION 2017-02-24 to 2017-09-16EUPHORIA_DISTRIBUTION 2017-09-17 to 2017-12-16BEAR_DECLINE 2017-12-17 to 2018-10-30CAPITULATION 2018-10-31 to 2018-12-15ACCUMULATION 2018-12-16 to 2019-03-27EUPHORIA_DISTRIBUTION 2019-03-28 to 2019-06-26BEAR_DECLINE 2019-06-27 to 2020-01-26CAPITULATION 2020-01-27 to 2020-03-12ACCUMULATION 2020-03-13 to 2020-09-08RECOVERY 2020-09-09 to 2020-10-22BULL_EXPANSION 2020-10-23 to 2021-08-09EUPHORIA_DISTRIBUTION 2021-08-10 to 2021-11-08BEAR_DECLINE 2021-11-09 to 2022-10-06CAPITULATION 2022-10-07 to 2022-11-21ACCUMULATION 2022-11-22 to 2023-05-20RECOVERY 2023-05-21 to 2024-03-04BULL_EXPANSION 2024-03-05 to 2025-07-07EUPHORIA_DISTRIBUTION 2025-07-08 to 2025-10-06BEAR_DECLINE 2025-10-07 to 2026-05-15CAPITULATION 2026-05-16 to 2026-06-30ACCUMULATION 2026-07-01 to 2026-08-10 20112013201520172019202120232025
Capitulation Accumulation Recovery Bull expansion Euphoria Bear decline Unknown peak (hindsight) trough (hindsight)
The lower ribbon is the answer key. The upper one is the engine's attempt at it using only information available on the day.

⚠️ The dashed lines and the ACTUAL ribbon are hindsight. They are not signals and could never have been traded.

A peak is only a peak once price has fallen 50% from it — so you learn about it at half price. A trough is only "the minimum between two peaks" once the next peak exists, years later.

PEAKS — knowable only after a 50% fall 2011-06-0925d later · 51% below the top2013-12-0414d later · 54% below the top2017-12-1647d later · 54% below the top2019-06-26260d later · 62% below the top2021-11-08182d later · 55% below the top2025-10-06242d later · 51% below the top TROUGHS — knowable only once the NEXT peak exists 2011-11-18747d later · 535× above the low2015-01-141067d later · 114× above the low2018-12-15193d later · 4× above the low2020-03-12606d later · 14× above the low2022-11-211050d later · 8× above the low2026-06-30NOT KNOWABLE YET — still the minimum so far bar length = days until identifiable · label = the price you would actually have acted at
Selling every peak and buying every trough would beat holding enormously, and is unimplementable. That gap is why the engine exists. The 2026-06-30 trough is not knowable even now — it is the minimum so far.

3 · Every cycle, and the compression

Each cycle rebased so its peak is the origin. Each drawdown is shallower than the last — and the same compression shows up in valuation, in raw units, with no percentile involved.

peak−50% −90% 0days from peak 720
2013 -85%2017 -84%2019 -62%2021 -77%2025 -53%
Each cycle peaks at the origin; the percentage is its deepest drawdown. 2013: −85%. 2025–26: −53%, the shallowest on record.
1.0 6.9520114.8620134.4820172.5520192.8120212.2920250.430.390.70.980.781.1 MVRV at cycle TOPS MVRV at cycle BOTTOMS
Tops fall 6.86 → 2.29 while bottoms rise 0.43 → 1.10. Amplitude has collapsed from 16× to 2×. The June low is the first bottom ever above 1.0 — price never went below the average holder's cost basis.

4 · The engine is losing its grip — and that is the finding

As the cycles compress, the on-chain signal degrades. This is the single most important pattern in the whole study, and it points the same way from three independent directions.

50 55%992013→201755%902017→202145%462021→202552%182025→now ■ rules fired (%) ■ edge vs random (percentile)
The edge collapses: 99th → 90th → 46th → 18th percentile. By the last two cycles, acting on the engine is indistinguishable from — then worse than — random days out of the market at the same exposure.
50% 20112013201520172019202120232025
Share of days the engine's own rules actually fire. 2022 — a textbook bear — was 71%. The compressed 2024–25 cycle fell to 33–34%.

Why would this happen? We have not proven a cause, and the honest answer is that we cannot from six cycles. But the shape is consistent with bitcoin's marginal holder changing: spot ETFs, custodians and treasury companies hold coins that never move on-chain, and an on-chain engine is blind to a trade that settles inside a fund.

If the marginal buyer is increasingly institutional and increasingly off-chain, then the panic and euphoria the engine reads — coins moving at a loss, dormant supply waking — measure a shrinking share of the real market. That is a hypothesis with a mechanism, not a conclusion, and it is the most consequential open question here.

5 · How a regime is decided

Four stages. Nothing is judged in raw units — every metric becomes a percentile against its own trailing four years, which is what lets a 2013 reading and a 2026 reading mean the same thing.

~40 METRICS our own node, 5 price sources, chain + ETF + derivs PERCENTILE rank vs its own trailing 1460 days absorbs compression 5 PILLARS valuation · cohort profitability · demand speculation weighted MEDIAN CONFLUENCE each state needs ALL its legs true val<10 ∧ prof<10 ∧ loss STATE + PROVENANCE a regime ends when its SUCCESSOR fires labelled rule / held / advisory A day where no rule fires does NOT become "no regime" — the market is always in one. The last regime is HELD and the day is labelled as held, so the coverage gap stays visible instead of hiding.

6 · The five pillars

Each is the weighted median of its members' percentiles. A median, not a mean — otherwise a single anti-correlated member vetoes the whole pillar, which is exactly what stopped CAPITULATION from ever firing until today.

valuation

0–100 percentile of its members · dashed = the 10 / 90 lines the rules read

20112013201520172019202120232025

cohort

0–100 percentile of its members · dashed = the 10 / 90 lines the rules read

20112013201520172019202120232025

profitability

0–100 percentile of its members · dashed = the 10 / 90 lines the rules read

20112013201520172019202120232025

demand

0–100 percentile of its members · dashed = the 10 / 90 lines the rules read

20112013201520172019202120232025

speculation

0–100 percentile of its members · dashed = the 10 / 90 lines the rules read

20112013201520172019202120232025

7 · The inputs themselves

Twelve of the metrics underneath, in raw units, over fifteen years — same cycle markers throughout so you can trace one date down the page.

SOPR

spent-output profit ratio · below 1.0 = coins moving at a loss

1 20112013201520172019202120232025

LTH-SOPR

long-term holders' realised P&L · <0.50 separates cycle bottoms from dips

1 20112013201520172019202120232025

Supply in profit

share of coins above their cost basis · <50% = bottom zone

0.5 20112013201520172019202120232025

MVRV

price ÷ realised price · the market's aggregate unrealised P&L

1 20112013201520172019202120232025

NUPL

net unrealised profit/loss

0 20112013201520172019202120232025

Mayer multiple

price ÷ 200-day average

1 20112013201520172019202120232025

Price ÷ 200-week SMA

the classic cycle-floor extension

1 20112013201520172019202120232025

Coin-days destroyed (90d)

old coins moving · spikes at BOTH tops and bottoms

20112013201520172019202120232025

Puell multiple

miner revenue vs its annual mean

1 20112013201520172019202120232025

Realised-cap growth

new capital actually entering, week over week

0 20112013201520172019202120232025

LTH supply Δ90d

long-term holders accumulating (+) or distributing (−)

0 20112013201520172019202120232025

Funding (30d)

perp leverage cost · dead venue, see notes

0 20112013201520172019202120232025

8 · Four things we tested that did not work

Negative results are the most useful output here, because each one closes off a way of losing money. Every test is scored against a rent check: the same strategy with its decisions randomised. Beating buy-and-hold is not enough — it has to beat its own shuffle.

50th 100th 0 99904618043802013→20172017→20212021→20252025→now ■ exit on BEAR_DECLINE ■ hold only when "cheap"
Percentile against 300 randomised versions of the same strategy. Above the dashed line = better than chance. The regime overlay decays from 99th to 18th; the value-level strategy sits at the 0th–4th percentile in three of four cycles — far worse than shuffling the same exposure.

1 · Timing exits on the regime state. Worked in the old high-amplitude cycles (99th, 90th percentile) and stopped working as they compressed (46th, 18th). It also arrives ~90 days late to a bear — of which ~36 days is a physical limit of the indicator, not a tuning choice.

2 · Holding only when valuation is cheap. Refuted decisively: 0th–4th percentile of random in three of four cycles. Bitcoin's returns are concentrated in the half of the distribution that looks expensive, so cutting exposure on valuation sells the strongest part of every bull.

3 · Waiting for a bottom before buying. Measured separately: withholding regular purchases to wait for a better price lost 69% versus simply buying on schedule. Cash drag swamps timing.

4 · Calling the top from on-chain data. Structurally impossible, not merely hard: a top is an all-time high, so a percentile indicator has no precedent to rank it against. Seven variants tested; every one beaten by holding.

What survives all four. Stay invested. Buy on a schedule rather than on a forecast. Use these signals for context and, at most, for sizing at the extremes — never for withholding. That is an unglamorous conclusion, and it is the one the data keeps returning from three independent directions.

9 · Can you time the BUYING instead? — the DCA question

A fair objection to everything above: those tests sold during expensive periods, and bitcoin’s returns live there. What if you never sell, and only condition purchases — dollar-cost-average only when value is cheap, treating those buys as a long-term allocation? Genuinely a different question, so it got its own measurement.

Every strategy below receives exactly the same income on exactly the same days. The only variable is when it is deployed. Cash waiting to be deployed earns nothing — that drag is what the discount has to beat.

+25%+0%-25%-50%-75% full history 2012→20262013→20172017→20212021→20250%30%50%100% share of income held back to wait for a cheap day terminal value per $ vs plain DCA
Monotonic. Hold back 30% of contributions to wait for value < 25 and you end with 24% less; hold back everything and you end with 81% less. No ratio rescues it — more waiting is worse, smoothly.
scaling OUT above value 60, vs plain DCA full history −6.4% 2013→2017 −4.9% 2017→2021 −1.8% 2021→2025 −0.6% 2025→now 0.0% never positive, in any period tested
Selling 2% of the stack per day while value is above 60 cost money in every cycle and made money in none. Trimming into strength is expensive.

The one cycle where waiting won. 2017→2021 — the deepest and longest bear in the sample — rewarded holding cash (+26% for the full gate). Every other period punished it. Which cycle you are in is not knowable in advance, and the rent check is bimodal: 0th percentile in two cycles, 100th in two. That is the signature of variance on one or two events, not of an edge.

⚠️ Two biases stated rather than buried. Terminal value is path-dependent and today’s value percentile is 18 — cheap — which mechanically flatters strategies sitting on cash. And the full-history figure is amplified by bitcoin appreciating four orders of magnitude, where any delay compounds badly. The per-cycle rows are the fairer read; they say the same thing more quietly.

The answer is no — but the reason is encouraging. The discount you capture by waiting is real; it is simply smaller than the return you forgo while waiting. In an asset that trends upward, time in the market beats price on entry. The value percentile is still worth watching — as context, and to know whether you are adding at 18 or at 85 — just not as a gate on whether to add at all.

9b · So is there a level worth acting on? — yes, for one of the two questions

“There is probably some number below which you treat it as a buying opportunity with free capital.” That sentence contains two different questions, and measured separately they give opposite answers. Separating them is the whole finding.

Q1 — WITHHOLDING. Should income that would otherwise be invested wait for a cheap day?

You pay cash drag on every day the gate is shut. No.

Q2 — DEPLOYING. Capital exists today and must go in at some point. Does the value on the day you deploy predict what you get?

Nothing is sitting idle — the alternative is a different day, not cash forever. Yes, strongly.

A measure can rank future returns and still fail as a gate. The gate pays for the wait; the deployment does not. Everything refuted earlier on this page was a gate.

-30%-15%+0%+15%+30% 101520253035404550607080100 buy only when value is below… terminal value per $ vs plain DCA
2013→20172017→20212021→2025
Q1, swept. Every threshold from 10 to 100, in three cycles. The line sits below zero almost everywhere, and where it rises it is heading back toward plain DCA (100 = no gate at all). Only 2017→2021, the deepest bear in the sample, pays for waiting — and it is a single event, not a rule. There is no threshold that works across cycles.
+353%0–20n=359+306%20–40n=495+94%40–60n=932-7%60–80n=810-49%80–100n=184 median 2-year return, by value on the day you bought value percentile at purchase · 2018→ only
Buy below 20 and the median two-year outcome is +353%. Buy above 80 and it is −49%. Monotone through the middle, and the cheap buckets sit at the 100th percentile against buying on random days — it is not just bitcoin going up.
0%0–200%20–406%40–6064%60–80100%80–100 share of purchases still underwater 2 years later value percentile at purchase · 2018→ only
The risk side, which the return figure hides. Below 40, no two-year purchase was underwater. Above 80, every one of them was.

The number is about 40 — and it is a deployment rule, not a savings rule. Below 40 the modern-era record is uniformly good and beats random timing; 40–60 is an ambiguous middle; above 60 it turns negative and above 80 it is negative with certainty in this sample.

Stated as something you could actually follow: keep investing on schedule regardless of value — that part never stops — and when a lump of free capital appears, deploy it faster below 40 and slower above 60. What you must not do is convert scheduled contributions into a cash pile waiting for a number.

→ That “about 40” is measured at a two-year horizon on a lump. It does not survive being turned into a weekly rule held for four years — which is a different thing, and is measured directly in §9d below.

⚠️ Three limits, stated not buried. A four-year forward window can only be measured through 2022, so the longest horizon covers the least relevant era and is not the basis for any of this — the 1- and 2-year windows are. Bucket boundaries were chosen before the split was seen, but they are still choices. And five cycles is five observations; the 2-year table above rests on fewer independent events than its row counts suggest.

Today the reading is 18.1 — inside the range where deployment has historically been rewarded. That is context for sizing, not a prediction, and it says nothing about the next three months.

9c · If you could keep only ONE indicator, which one?

Scored on one job: does the indicator’s level rank what a purchase made that day is worth two years later? Bar length is the gap between the median 2-year return in its cheapest fifth and its most expensive fifth, 2018 onward, every reading ranked only against its own past. Two price-only measures are in the race on purpose — if the on-chain data can’t beat a line drawn on a price chart, that is the answer.

indicator spread between its cheapest and richest fifth → harder null funding rate 30d508pp93th · marginaldrawdown from ATH495pp98th · survivesMVRV477pp99th · survivesNUPL476pp99th · survivesMVRV-Z475pp99th · survivessupply in profit406pp97th · survivesLTH-SOPR354pp99th · survivesprice ÷ 200w SMA352pp99th · survivesPuell multiple254pp94th · marginalMayer / price÷200DMA219pp92th · marginal faded bar = does not clear a 90-day block bootstrap at the 95th percentile
cost-basis (on-chain)price-onlyminer economicsderivatives — see caveat
The first ranking put 21 of 22 contenders at the 100th percentile against a shuffle — when almost nothing fails, the bar is wrong, not the field. Shuffling individual days only asks “is this smoother than noise.” The 90-day block bootstrap here keeps the persistence and asks the real question; three contenders drop to marginal under it, including both of the obvious guesses.

The answer is a family, not a metric: cost-basis. MVRV, NUPL, MVRV-Z and price-vs-realized score 475–477pp within 2pp of each other because they are near-restatements of one quantity — what did the average coin last change hands at? Pick MVRV as the representative and you have kept essentially all of the signal in the set.

Why that one works: it is the only thing here that measures the market’s cost rather than its price. Below 1.0 the average holder is underwater, and sellers who realise a loss are a self-limiting supply. Above roughly 3 the average holder is sitting on a multiple, and that is a supply overhang. It is a position-of-the-holder measure, which is why it does not need a level of price to mean anything.

⚠️ The uncomfortable part, stated plainly: a price-only line nearly ties it. Drawdown from the running all-time high scores 495pp — ahead of MVRV’s 477pp — and it needs no node, no data vendor, and no engine. On this job the entire on-chain apparatus buys you very little over “how far are we below the high?”. MVRV earns its keep by being the more robust of the two under the harder null (99th vs 98th) and by being independent of price, so the two together disagree usefully. One of them alone is nearly as good as both.

The two obvious guesses both come mid-pack. The Puell multiple lands at 254pp and only marginal (94th) — but it has the single best warning record in the set: 96% of purchases made in its top fifth were underwater two years later, the highest of any contender. It is a better sell-side alarm than buy-side ranker. The 200-day moving average is the weakest serious contender at 219pp and 92nd — it does not survive the harder null at all.

Funding rate topped the raw table at 508pp and is disqualified for use today, not for bad history — it had full data across the scored window — but because the venue it measures has since gone quiet. It is an open defect on the register. A metric can rank the past perfectly and be measuring nothing now.

How much weight this can carry. A 2-year forward window across 6.6 years of scored days is about 3.3 non-overlapping periods, not the 2,415 rows the day counts suggest. The ordering among the cost-basis metrics is noise; the gap between the cost-basis family and active addresses or mempool size — which finished negative and failed their own shuffle — is not. Treat this as which family to watch, never as a calibrated forecast.

9d · The weekly rule, exactly as posed — and there is no magic number

The sharpest version of the question: $100 a week. Look at one number. Below it you buy, above it the money waits. Everything you buy you hold four years or more. What is the number? That is a mechanical rule, so it can simply be run — every threshold from 10 to 100, on 522 contribution weeks, with each purchase marked at its own four-year outcome so no single end date can decide the answer.

+10%+0%-20%-40%-60% buy every week = 0%−42.8%1015202530354045505560708090100 buy only in weeks where value is below… value per $ contributed, vs buying every week · 4-year hold
Every threshold loses. The best is 90 — which fires in 499 of 522 weeks, i.e. it is buying always wearing a costume — and it wins by 0.6%. A gate at 40 costs 42.8% of the final result.

⚠️ And it is worse than losing to DCA: gating at 30, 40 or 50 finishes at the 0th percentile against choosing the same number of weeks completely at random. Picking buy-weeks by coin-flip beat picking them by value, on 300 shuffles, at every threshold tested. Whatever the value gate is selecting, it is selecting worse than nothing.

+40%+0%-40%-80% 1 yearbest: 902 yearsbest: 903 yearsbest: 154 yearsbest: 905 yearsbest: 90 vs buying every week, by how long you hold
gate at 25gate at 40gate at 50
This is the real answer. At a three-year hold the gate suddenly wins — a threshold of 15 beats weekly DCA by +134%. Move the hold one year either side and the same rule loses 25–43%. A rule whose sign flips when you change an arbitrary parameter by one notch is not an edge; it is one or two lucky cycles.
14.8×0–20n=6712.0×20–40n=746.2×40–60n=16515.3×60–80n=13410.2×80–100n=82 median 4-year multiple, by value in the week you bought value percentile that week
Your own reasoning, confirmed by the numbers. Weeks at value 60–80 returned a median 15.3× over four years — more than the cheapest weeks did. Those are early-bull weeks, and four years later you are in the following cycle. The gate’s job is to refuse exactly them.

The answer to “what is the number” is: there isn’t one, and the reason is the one you gave. Over a horizon long enough that entry price stops mattering, the expensive weeks are not the ones that hurt you — they are disproportionately the ones that run. A gate that filters them out is not buying the dip; it is declining the expansion, and four years is long enough that it never gets the chance to make that back.

So the rule that survives is the boring one, and it is now measured five different ways: buy the $100 every week and don’t look at the number to decide whether. Look at it to decide how much extra, if you happen to have extra.

What would change this. The 522 weeks end in 2022 — the four-year hold requires it, so this cannot see the compressed modern cycle at full horizon. It is roughly 2.5 independent cycles. If amplitude keeps collapsing (§3), entry price matters less, not more, which pushes the same way. The finding that would overturn this is a cycle where the expensive band stops leading — worth re-running, not worth waiting for.

9e · The minimum panel — three indicators, three different jobs

The point of all of the above is to end up watching fewer things. So: which two or three, and what is each one actually for? The obvious answer — take the top three from the ranking — is wrong, and measurably so.

correlation with MVRV, 2018→ · how much NEW information does it add? NUPL1.00price ÷ realised1.00MVRV-Z0.99drawdown from ATH0.97supply in profit0.94LTH-SOPR0.86realised-cap growth0.82Mayer / 200DMA0.77price ÷ 200w SMA0.77Puell multiple0.75SOPR0.65coin-days destroyed0.27
≥0.90 — the same signal0.70–0.90 — overlapping<0.70 — genuinely different
Most of the leaderboard was one indicator wearing different hats. NUPL and price-vs-realised are 1.00 correlated with MVRV. And drawdown-from-ATH, which nearly won the whole ranking, is 0.97 — the “price-only line that ties MVRV” ties it because it is the same measurement arrived at from the other side.
the two ends are different jobs — and different winners drawdown from ATH+180%73%MVRV+132%93%MVRV-Z+132%94%supply in profit+53%58%LTH-SOPR+24%90%price ÷ 200w SMA+97%95%SOPR-49%38%coin-days destroyed-38%33%Puell multiple-13%96%Mayer / 200DMA-34%70%
BUY — worst 2y outcome in its cheap fifthSELL — share of its rich fifth left underwater
Puell has the worst buy floor of the serious contenders (−13%) and the best sell record (96%). MVRV is the reverse. Scoring an indicator with one number hides this completely.
what combining does to each end MVRV alonebuy floor +132%sell 93%drawdown alonebuy floor +180%sell 73%MVRV + Puellbuy floor +37%sell 98%MVRV + 200w SMAbuy floor +109%sell 100%MVRV + Puell + 200w SMAbuy floor +97%sell 100%MVRV + CDDbuy floor +45%sell 77%all fivebuy floor +132%sell 100%
Combining helps one end and hurts the other, consistently. Averaging MVRV with Puell takes the sell reliability from 93% to 98% — and drops the buy floor from +132% to +37%. Adding the 200-week SMA reaches 100%.

Why that asymmetry is real and not an artifact: a bottom needs one thing to be extreme, a top needs everything to agree. Any single measure at a genuine low is enough to mark a bottom, so averaging dilutes it — one metric at the extreme gets pulled back toward the middle by the others. A top is the opposite: it is precisely the moment when independent families all read high at once, so confluence is the signal. That is why every combination here improved the sell side and degraded the buy side.

Which gives the panel a shape: one clean number to buy with, and agreement to sell with.

1 · THE PICTURE — MVRV

Where the average holder sits versus their cost. One number, no dilution. Below 1.0 the average coin is underwater; above ~3 it is a supply overhang. If you keep exactly one thing, keep this. Drawdown from the ATH is a free stand-in at 0.97 correlation — useful precisely because it needs no data feed at all.

2 · THE BUY — MVRV in its bottom fifth

Worst two-year outcome in that zone was +132%, median +429%. Do not average it with anything for this job — every combination tested lowered the floor. This sizes a deployment; it does not gate a contribution (§9d).

3 · THE SELL — Puell, and it only counts when the others agree

Puell alone marks danger best of any single metric: 96% of purchases in its top fifth were underwater two years later, median −51%. Require MVRV and the 200-week SMA to be elevated with it and that reaches 100% in this sample. It is miner economics — issuance revenue against its own trend — which is why it carries information the cost-basis family does not. ⚠️ 100% of a small number of episodes is still a small number of episodes: roughly 3 independent periods. Treat it as “raise your guard,” never “certainty.”

The honourable mention, and the one to watch. Coin-days destroyed correlates 0.27 with everything here — the only genuinely orthogonal series in the set. It is weak on both jobs alone, so it does not earn a panel seat, but it is the only candidate that can tell you something the other two structurally cannot. If the on-chain signal keeps decaying (§4), an independent series is where a replacement would have to come from.

10 · What this engine is, honestly

On the 49.6% of days its rules fire, the engine is right 52.0% of the time against a six-way partition — where a 200-day moving average solving the same problem gets 32.1%. That +19.9pp is the rent payment, and it is the best number the engine owns.

Correction — 2026-08-20. The figure above stands as measured, and it survives every robustness test we have since put it through: drop any single cycle and it holds between +14 and +31pp; move the ground-truth boundary across every defensible setting and it holds between +11 and +23pp. Unlike the engine’s overall accuracy edge — which collapses to +0.3pp when one cycle is dropped and changes sign on the ground-truth boundary alone — this one is real.

But it is a full-history average of a quantity that has gone negative. Measured cycle by cycle, the same number reads +41.0+54.6+17.8+0.4−14.5pp. In the current cycle, on the days its own rules fire, the engine is worse than a 200-day moving average — 54.1% against 68.6%. The decay this document traces for timing (§4) has reached classification too. The section above rests the engine’s remaining value on this number; that framing no longer holds, and this page said to watch for exactly this — a decaying instrument producing confident output after the thing it measured moved on.

Stated limits: the current-cycle block is 159 rule-firing days and a partial cycle; and the 200-day average’s 68.6% is an unusually strong showing, so part of that −14.5pp is a trending stretch flattering a trend rule rather than the engine degrading. Re-measured at engine HEAD, not at the 39fa5bb pin above, so the point estimates are not directly comparable — the trajectory is the finding, not the decimals.

On days no rule fires it holds the last regime and scores 39.7% — statistically identical to price structure's 39.2%. Persistence is a fair prior, not a clever one. On the 7.8% where it declares ignorance after a shock, it publishes a price-structure label beside the blank, because filling forward with a regime the data just broke scores 12.8% while price structure scores 25.7%.

It is a classifier and a context instrument, not a timing tool, and it is not used as one. Nothing is armed, nothing feeds position sizing, and it is in a shadow window to ~2026-10-08. Its edge over a 200-day moving average at naming the regime is +8.1pp; its edge at making money is, on the last two cycles, indistinguishable from chance.

10.5 · Auditing someone else’s floor model

Added 2026-08-20. Measured against floor.bitview.space, which publishes a bitcoin “floor” envelope assembled from four on-chain components. We reverse-engineered it from its published Rust, rebuilt its inputs from our own data, and put it through the same rent check we apply to ourselves. It is the most useful outside model we have examined, and it is not quite what it says it is.

Rarity reproduced0.15%median error, 4,245 days
Coinflow0days it has ever set the line
Touch → 30d+8.3%vs +2.8% unconditional
Touch → 90d+10.9%a 200wma gets +24.0%

We reproduced its Rarity component almost exactly. Median absolute error 0.15%, and every one of 4,245 days lands within 5%, on every band. Substituting our own realized-price series for theirs returns identical numbers. Their point-in-time claim also survives inspection of the source: today’s reading cannot enter its own threshold.

One of the four components has never once mattered

Coinflow is the most elaborate machinery in the system — hazard integrals, a duration-weighted regression on log-hazard, a fitted decaying tail, mobility as 1 − e−E. In 4,245 days it has set the published line zero times. Full Rarity sets it on 80.3% of days, Raw Bedrock on 11.2%, Cointime on 8.5%. The envelope is largely one component wearing four names.

The rent check: a 30-day exhaustion signal, not a cycle floor

Scoring forward returns after a touch — spot within 2% of the line — the envelope returns +8.3% over 30 days against +2.8% for every day unconditionally. Against nulls: a 200-week average returns +6.7%, the same average rate-matched to the envelope’s touch count +5.3%, and a −68%-off-the-1-year-high rule +1.2%.

The 30-day result is real, and it is the most robust thing this desk has measured. It sits at the 100th percentile of 2,000 randomly-timed draws with the same touch count, beats every null including the rate-matched moving average, survives removal of its worst episode (+7.4%), and all twelve episodes beat the unconditional case independently — spread across 2015, 2018, 2020, 2021, 2022 and 2026. Compare the one regime strategy on this page that also reached the 100th percentile and then died to a single dropped episode. This does not do that.

And it fails at exactly the horizons a floor would need. At 90 days a 200-week moving average beats it — +24.0% against +10.9%, or +18.9% rate-matched — and the envelope sits at the 73rd percentile of random timing. At 365 days it reaches only the 93.6th. ⇒ It does the short-horizon job better than a moving average, and it does not do the job the site is searching for.

It fired in this cycle, and the composition changed underneath it

On 2026-06-30 spot printed $58,525 against an envelope of $58,879 — a touch. Thirty days later bitcoin was at $64,719, +10.6%, ahead of the model’s own median. That is one observation and proves nothing by itself; it is recorded because live behaviour is the single test a model cannot be fitted to after the fact.

More interesting is what draws the line now. Across the full history Rarity sets it on 73.5% of days. For the last 120 consecutive days it has been Cointime — a component that historically sets it 9% of the time. Full Rarity currently reads 45,728 against an envelope of 61,034, twenty-five percent below. The published line is being drawn by a different instrument than the one that drew it for a decade, and nothing on the page says so.

Do not trade the 30-day result on this evidence. 234 days, 12 episodes, one asset, one era, and a 2% touch rule we chose ourselves. It is a candidate for a walk-forward, not an edge. Our roster still holds zero validated alpha edges and this does not change that.

Two priors we got wrong, and one trap

Both structural priors we brought to this were refuted by measurement. We expected the envelope to sit pinned a few percent under spot — a lagging copy of price. Its distance below spot runs p10 5.7%, median 32.7%, p90 47.1%. We also expected the compressed weighted lenses to win the maximum almost always; the real split is above.

The trap is worth naming because we nearly walked into it. Log envelope and log spot correlate 0.9933, which reads as proof the envelope merely tracks price. It is evidence of nothing: any two series climbing three orders of magnitude correlate about 0.99 in logs. The informative statistic was the spread, and the spread said the opposite.

11 · Is on-chain analysis dead?

No. But it has been demoted, and the demotion is specific enough to name: it has stopped being an instrument that tells you when, and it is still the best instrument we have for telling you who, where, and how bad. Everything on this page is the argument for that sentence.

Name the regime you are in today+19.9pp over price structure on the days its rules fireBound the downside before deployingworst 2y outcome in MVRV's cheap fifth: +132%Mark danger by confluencePuell+MVRV+200w all high → 100% underwater at 2ySay WHICH cohort is movingthe only dataset that can — price cannotTime an exit on regime changeedge decayed 99th → 18th percentile across cyclesHold only while valuation is cheap0th–4th percentile vs its own shuffle, 3 of 4 cyclesGate weekly contributions on a numberevery threshold loses; 0th pct vs random weeksScale out above a valuation levelnegative in every period, positive in noneCall the top from on-chain dataa top has no precedent to be ranked against
Everything this document actually put a number on. Four survived a rent check against the cheapest thing solving the same problem. Five did not.

The case that it is dying

It is stronger than I expected when I started. The engine’s edge over random timing fell from the 99th percentile in 2013–2017 to the 18th in the current cycle. The share of days its rules can say anything at all fell from 71% to 33%. Cycle amplitude collapsed from 16× to 2×, and thresholds calibrated on 6.86-MVRV tops are being asked to fire on 2.29-MVRV tops.

And then the finding that genuinely lands: MVRV correlates 0.97 with drawdown from the all-time high. The flagship on-chain valuation metric now carries very nearly the same information as one line drawn on a price chart. That is what “less predictive” looks like from the inside — not wrong answers, but answers you could have gotten for free.

There is a mechanism, and it points the same way. Spot ETFs, custodians and treasury companies hold coins that never move on-chain. Every share traded inside a fund is a transaction the chain cannot see. An on-chain engine measures a shrinking fraction of the real market, and nothing about that trend looks like it reverses.

The case that it is not

Four things survived, and they are not consolation prizes.

It bounds the downside. In the modern era the worst two-year outcome from buying in MVRV’s cheapest fifth was +132%. That is not a prediction and it will not tell you what happens next quarter. It is a statement about the shape of the distribution you are stepping into, and there is no price-chart equivalent of it.

It marks danger by agreement. Puell in its top fifth left 96% of purchases underwater two years later; require MVRV and the 200-week average to agree and that reaches 100% in this sample. Not a sell trigger — a reason to stop adding, check your sizing, and stop believing the story you have been telling yourself.

And the one that nothing else can do at all: it tells you WHO. Price tells you that something happened. On-chain is the only dataset that can say whether it was long-term holders distributing, short-term holders panicking, miners capitulating, or coins simply moving between custodians. That is a diagnostic capability, and it is the irreducible one. When someone asserts “long-term holders are capitulating,” LTH-SOPR either shows it or it does not, and the assertion dies or survives on data rather than on narrative.

So what is it actually for, now

It is a risk instrument and a story-killer, not a timing instrument. The reframing that makes it useful again: stop asking it “what should I do?” and start asking it “what is actually true right now, and what does that rule out?”

Three questions it answers well, every one of which is a question about the present: Where in the distribution am I standing? (value percentile — today, 18.1). Is anyone under real stress, and who? (SOPR by cohort, supply in profit). Is this move broad or is it one group? (LTH vs STH, coin-days destroyed). None of those is a forecast. All of them change how much you size and how much you believe.

My honest opinion, stated as opinion

The most valuable thing this exercise produced was not the engine. It was the five refutations. Every plausible way to turn this data into a trading rule failed, and each one failed against a null I had to build specifically to catch it — because the first bar I chose flattered the engine into looking like it was passing while it was quietly losing to a 200-day moving average. The single most expensive lesson on this page is that the bar you choose decides whether you are able to see failure at all.

I would put it this way: on-chain analysis is not dead, but the era in which it was a source of alpha is probably over, and it ended for the most ordinary reason — it worked, it got published, it got crowded, and the market it measures moved somewhere it cannot see. What is left is an edge in understanding rather than an edge in timing. That is worth less money and considerably more clarity, and the honest move is to use it for the second thing and stop pretending about the first.

The failure mode to guard against now is not that the data lies. It is that a decaying instrument keeps producing confident output long after it stopped being informative — the numbers still print, the states still fire, the charts still look authoritative. That is why the decay in §4 matters more than any single reading in this document, and why the right posture is to keep measuring the instrument, not just with it.

What would change my mind, in either direction. If a cycle arrives where the expensive band stops leading and the cheap band stops paying, the remaining four capabilities collapse too and this becomes archaeology. If ETF and custody flows get fused with the chain data — which is a build, not a wish — the blind spot closes and the instrument gets its market back. Those are the two branches, and only one of them is something we can act on.


Cycle peaks and troughs are derived mechanically — an all-time high followed by a ≥50% drawdown, at least 500 days apart — never hand-placed. The right edge is provisional: the 2026-06-30 low is the minimum so far, so recent labels are conditional on it holding. Walk-forward results are out-of-sample in DATA but not in DESIGN — the rule shapes were chosen with sight of every cycle shown. Reproducible end to end from the engine’s audit tooling.

12 · Auditing a third-party count — and what a two-bar error costs

A subscriber scheme (ParabolicMatt / ALTvsBTC.com) tiles bitcoin into a repeating three-phase count — Bull 1, Bull 2, Bear 3 — at fixed weekly-bar lengths from a 2022 anchor. We reproduce it bar for bar on the Market Snapshot, and reproducing something faithfully turns out to be a measurable discipline rather than a courtesy.

Our first reproduction was two weekly bars out of phase — and it was invisible from the inside, because our boxes and our price were consistent with each other. It only showed against the source. We had anchored on the week of the lowest daily close; the source anchors on the FTX capitulation bar, the week beginning 2022-11-07.

anchorboundaries landing on a local low
2022-11-21  (our first attempt)0 of 6 — every one mid-range
2022-11-143 of 6
2022-11-07  (the source’s)6 of 6, 0–5 days off
Confirmed three ways: the box edge sits on that candle in the source screenshot; fitting our daily series against its weekly candles puts 93.6% of 1,364 points inside their bars, and only at a ~13-day shift; and the test that needs no image at all — the table above.

What the count actually shows, once it is drawn correctly

And the honest limit. Five of six boundaries sit within 5 days of their own 9-week low, which only 1 of 46 shifted anchors matches — but the anchor was chosen knowing this price history, so that is a fitted parameter, not evidence the count sees forward. Bitcoin also rose 405% across the window, so five of six phases ended positive and “the phases mean something” cannot be separated from “everything went up”. Six complete phases, two of each. Only out-of-sample time can settle it.