Each lens is scored 0–100: today's percentile within the comparison window chosen in the header (trailing four years or all history). The composite cycle score is their equal-weight average; nothing is fitted to returns. Tap a lens for its history.
✓ bullish condition met today, ✗ not met. In brackets: each indicator's record since 2018 (supported, reversed or no clear edge). More conditions met has not meant better returns; the favorable/unfavorable line applies each indicator's record to today's state. Tap a card for the detail.
Price ÷ model fair value − 1, log scale (so +100% and −50% are the same distance from zero). Shading is the 15th–85th percentile band (value to expensive) expressed relative to fair value.
The price at which each lens alone would read at its median, holding its anchor fixed. The model fair value is their geometric average. A lens's fair value can sit well away from its anchor: the power-law fair value is below the trend line because, over the scoring window, price has mostly traded below the trend. The spread across lenses is a measure of how uncertain "fair" is.
Scores on the day of each cycle's closing high or low. These dates are known only in hindsight, so readings at them are naturally near the extremes; the test of the framework is the forward-return evidence, not this table. The 2025 top is provisional until the cycle completes.
The lenses agree at extremes and disagree in between; disagreement is itself information about how stretched the market is.
Spearman correlation of each daily score with the next 365 days' return. Negative is what a valuation signal should show: high scores followed by weaker returns. Overlapping windows mean far fewer independent observations than days; read the sign and consistency, not the decimals. *The latest epoch has less than two years of completed forward returns.
Bitcoin's median 12-month return on days each bullish condition was met versus not met (2018 on), and the verdict in each of the two non-overlapping periods. A verdict that agrees in both periods deserves more weight. Details and charts are on the Macro & liquidity and Adoption & flows tabs.
Generated from the model output of 2026-10-25 00:51 UTC. On-chain data through 2026-10-23; price through 2026-10-24.
The Crypto Cycle Framework (CCF) answers three questions about bitcoin and ether at any point in their cycles:
It is built to inform judgment, not replace it, with the same intent as the Global Multi-Asset Allocation Framework (GMAAF). It is a personal research project; views are the author's own and not those of any employer. Nothing here is a trading rule, a price forecast or investment advice.
Header. A generated one-paragraph summary, the data dates, and a strip of key figures (composite score, zone, price, realized price, MVRV, model fair value, halving epoch). The Score against switch (trailing four years or all history) changes every valuation score, the fair value and every valuation table; backdrop indicators do not depend on it.
Tabs, in order: Bitcoin, Ethereum, Allocation, Risk & returns, Macro & liquidity, Method & data. Each coin tab has sub-pages:
Allocation: today's bitcoin/ether/cash split step by step, the ETH/BTC relative-value score and its evidence, the simulated record against the market-cap index, 100% bitcoin, a constant 50% and cash, and the live record. Risk & returns: rolling and trailing return, volatility, Sharpe ratio, maximum drawdown, correlation and beta for bitcoin and ether against broad markets, over any window (section 10). Macro & liquidity: the ISM deep dive (Tom Lee's three claims tested), then the business-cycle, global-liquidity and real-rates-and-risk indicators. Method & data: this document.
Reading the numbers.
Valuation. The composite cycle score is 45 (neutral) and price is 10% below the model fair value of $90k (neutral band $74k–$104k). Since 2018, days with a score within 5 points of today's were followed by a median −10% over 6 months (48% up) and +71% over 1 year (85% up, 12 distinct episodes); for any day in that period the medians were +13% and +40%, so the 1-year result is better than typical. Days when price was 0–20% below fair value, as now, were followed by +93% over 1 year (83% up).
Backdrop. 9 of 18 conventional bullish conditions are met today. Counting only indicators whose record agrees in both periods (the stronger evidence), 2 point to stronger returns (Fed funds rate and Equity volatility (VIX)) and 2 to weaker (ISM manufacturing and Hash rate (hash ribbon)): neutral. On the 2018-on record alone the count is 4 to 5 (mildly unfavorable). (Favorable = condition met with a supported record, or not met with a reversed record; unfavorable = the two opposite cases.)
| Measure | Reading |
|---|---|
| Composite cycle score (trailing 4 years) | 45 / 100 — Neutral (+23 over 90 days) |
| Composite cycle score (all history) | 37 / 100 — Neutral |
| Price | $80,793 (FMP) |
| Model fair value | $89,638; price 10% below it |
| Neutral band (35th–65th) | $73,832 – $104,209 |
| Value–expensive band (15th–85th) | $61,277 – $124,739 |
| Realized price (network cost basis) | $54,064; MVRV 1.49× |
| Power-law trend | $144,094 (today's fit, using all data to date) |
| 200-week average | $67,027 |
| Halving epoch | day 917 of about 1456 (63%); next halving est. 2028-04 |
| Backdrop — business-cycle phase (bcre) | 1 of 1 conditions met |
| Backdrop — business cycle | 2 of 4 conditions met |
| Backdrop — global liquidity | 1 of 3 conditions met |
| Backdrop — real rates and risk sentiment | 3 of 4 conditions met |
| Backdrop — adoption and network | 1 of 3 conditions met |
| Backdrop — flows and positioning | 1 of 3 conditions met |
This summary describes what has historically followed readings like today's. It is not a forecast or a recommendation.
CapMVRVCur). Realized price = price ÷ MVRV.IssTotNtv + FeeTotNtv, times price) ÷ its 365-day average.Each lens is put in logs and ranked as a percentile (0–100) of its own values in a window ending that day: the trailing four years (default, 1,460 days) or all history (expanding). Two years of history are required before a score appears. The composite is the equal-weight mean of the lens scores, requiring at least three of four.
Why the trailing window is the default. In the all-history setting today's market is ranked against 2013's extremes, so the 2024–25 run never scored higher than 73; in the trailing window it reached 87 on 2025-08-13, about two months before the price top (where it read 77). The composite can peak before price does. Both settings sort recent-era forward returns about equally well (rank correlation -0.63 trailing, -0.61 all-history), so the choice is about which comparison is more meaningful for a maturing asset. It was made after seeing both, which is why both stay one click apart.
For each lens, the model asks at what price that lens would sit at the median of its scoring window, holding its own anchor fixed (realized price, the point-in-time power-law trend, the one-year average of miner revenue, the 200-week average). For a lens L (in natural logs) with window quantile Q:
fair value = price × exp(Q₅₀(L) − L)
The model fair value is the geometric average of the four lens fair values (at least three required); there is no single price at which all four lenses sit at their medians at once. The bands use the 15th, 35th, 65th and 85th percentiles the same way; they are close to, but not identical with, composite scores of 15/35/65/85.
| Lens | Fair value today | Price vs it |
|---|---|---|
| MVRV | $93,827 | 14% below |
| Power law | $105,626 | 24% below |
| Puell | $65,799 | 23% above |
| 200-week | $99,001 | 18% below |
| Model (geometric average) | $89,638 | 10% below |
How to read it. Fair value is not a price target. Its anchors rise in bull markets and fall in bear markets, so it says where price is relative to the market's own footing, not where price will go. Versus fair value, price stood +388% (2013 peak), −75% (2015 trough), +528% (2017 peak), −49% (2018 trough), +67% (2021 peak), −58% (2022 trough), +24% (2025 peak) at past turning points. The 2025 top was the least stretched top in the sample, a reminder that valuation measures can be early or late as the market matures.
Ether uses two lenses, ranked and combined exactly as bitcoin's (sections 5–6); both are required for a composite:
CapMVRVCur for ETH): holders' aggregate unrealized gain. Lows at 0.30× (2018), 0.60× (2022) and 0.79× (2025); cycle highs fell from about 3.1× to 2.3× and 1.6×. Staking and smart-contract deposits move coins in ways that can blur the cost basis. Today 1.05×, score 29.Dropped: the fee multiple. Market cap ÷ trailing-year fees (Ethereum's nearest analogue to price-to-sales) was a third lens until October 2026. After the March 2024 Dencun upgrade deliberately moved most activity, and its fees, to cheaper layer-2 networks, the multiple rose from 12–45× in 2022 to 100–190× in 2024 and 600–1,700× in 2025–26, so it read expensive almost regardless of price. Its rank correlation with 1-year forward returns had the wrong sign before 2023 and was 0.03 from 2021 on. At the time it was dropped it sat at the 98th percentile and pulled ether's model fair value to about half the price. It was removed before the live record began; with it, the simulated 2021-on record was somewhat better (about 29% a year rather than 26%), because its near-permanent "expensive" reading after 2024 happened to keep exposure low while ether lagged. That is a broken input getting lucky, not a valuation signal, so the better backtest was not a reason to keep it. A fee measure that includes layer-2 activity could replace it if a reliable free source appears.
The bitcoin-specific lenses are not used: the Puell multiple lost its meaning when Ethereum moved to proof of stake in September 2022, and a power-law fit on ether's shorter history is unstable. Vertical lines on ether's charts mark network upgrades (EIP-1559 fee burn, The Merge, Dencun) rather than halvings.
Today: composite 24 (value); model fair value $2,747, price 14% below it:
| Lens | Fair value today | Price vs it |
|---|---|---|
| MVRV | $2,564 | 8% below |
| 200-week | $2,943 | 20% below |
| Model (geometric average) | $2,747 | 14% below |
Periods: MVRV scores start in 2017 and the 200-week multiple in 2019; the composite needs both, so it starts in mid-2019. Results are shown for before 2021 (from late 2017 for MVRV, mid-2019 for the composite) and 2021 on.
Composite score buckets — 1-year forward return
| Composite score | Before 2021 median | % up | Days | 2021 on median | % up | Days |
|---|---|---|---|---|---|---|
| 0–20 | +310% | 100% | 120 | +25% | 81% | 84 |
| 20–40 | +146% | 96% | 186 | +54% | 79% | 380 |
| 40–60 | +827% | 100% | 99 | +30% | 69% | 607 |
| 60–80 | +702% | 100% | 140 | −41% | 5% | 418 |
| 80–100 | — | — | 0 | −41% | 38% | 269 |
Rank correlation with 1-year forward return
| Score | 2017–19 | 2020–22 | 2023– | Before 2021 | 2021 on |
|---|---|---|---|---|---|
| MVRV | -0.38 | -0.43 | -0.46 | 0.23 | -0.48 |
| 200-week | -0.88 | -0.63 | -0.49 | 0.20 | -0.55 |
| Composite | -0.84 | -0.54 | -0.48 | 0.30 | -0.52 |
Readings at past peaks and troughs
| Event | Date | Price | MVRV × | Composite | MVRV score | 200-week score |
|---|---|---|---|---|---|---|
| 2018 peak | 2018-01-13 | $1,386 | 2.62× | — | 86 | — |
| 2018 trough | 2018-12-14 | $83 | 0.30× | — | 0 | — |
| 2021 peak | 2021-11-08 | $4,812 | 2.03× | 93 | 94 | 93 |
| 2022 trough | 2022-06-18 | $994 | 0.60× | 19 | 11 | 26 |
| 2025 trough | 2025-04-08 | $1,472 | 0.79× | 2 | 3 | 0 |
| 2025 peak | 2025-08-22 | $4,831 | 1.49× | 85 | 88 | 82 |
How to read it. Ether's composite has about one and a half cycles of scored history. Both lenses have had the expected negative correlation within each epoch and since 2021 (the figure for the whole pre-2021 period is positive because levels shifted between that period's two cycles). Two lenses that both track price against a slow-moving anchor are a thin basis, so treat ether's composite with more caution than bitcoin's.
The rule (fixed in advance, not optimized). Each coin's exposure comes from its composite cycle score on the trailing four-year window: deep value (below 15) 100%, value (15–35) 75%, neutral (35–65) 50%, expensive (65–85) 25%, euphoric (85 and above) 0%. The backdrop is not used. Decisions are made every Monday from that Monday's score (published Tuesday) and traded at Tuesday's close; a trade happens only when the target differs from the drifted position by at least 10 percentage points; trading costs are 0.2% of the amount traded; uninvested money earns the 3-month Treasury bill rate (FRED DTB3, 4.04% today). The simulation starts fully positioned at the first day's target.
Benchmarks. 100% in the coin (buy and hold, no costs); a constant 50% in the coin and 50% in T-bills, rebalanced daily without costs; and cash in T-bills. The constant 50% is the fair test of timing: the model's average exposure is close to 50%, so beating 100% on risk or beating cash on return is not by itself evidence of skill.
Live record. From 2026-10-24 the rules are frozen. A day is logged only after its UTC close, starting with the close of that day. Each daily run appends the completed days' positions, any pending Monday target, and the model's and benchmarks' values to the end of data/live/live_btc.csv, live_eth.csv and live_alloc.csv; earlier lines are never touched, so the repository's history would show any revision. If a Monday score is missing, no trade is scheduled that week, as in the simulation. The simulated history is context; the live record is the honest test.
Today: composite 45, target exposure 50%. Simulated from 2013-05-11; results below are for 2018 on (from 2018-01-01).
| Measure | Model (zones) | 100% in the coin | Constant 50% | Cash (T-bills) |
|---|---|---|---|---|
| Annualized return | +25.8% | +22.5% | +18.3% | +2.7% |
| Volatility | 36% | 64% | 32% | 0% |
| Sharpe ratio (vs T-bills) | 0.75 | 0.60 | 0.60 | — |
| Maximum drawdown | −57% | −81% | −53% | 0% |
| Average exposure | 52% | 100% | 50% | 0% |
| Upside capture | 55% | 100% | 50% | — |
| Downside capture | 48% | 100% | 48% | — |
| Trades per year | 9.2 | 0.0 | 0.0 | 0.0 |
Full simulation (from 2013-05-11): model +26.8% a year (maximum drawdown −63%), holding +62.7% (−85%), constant 50% +37.8% (−56%).
Start-date sensitivity. From each January 1 to today, the model beat holding in 3 of 12 start years and beat the constant 50% in 7 of 12:
| Start | Model (zones) | 100% in the coin | Constant 50% |
|---|---|---|---|
| Jan 2014 | +24.1% | +44.1% | +28.4% |
| Jan 2015 | +30.7% | +60.0% | +35.2% |
| Jan 2016 | +31.5% | +62.2% | +36.3% |
| Jan 2017 | +28.7% | +56.6% | +34.4% |
| Jan 2018 | +25.8% | +22.5% | +18.3% |
| Jan 2019 | +33.8% | +47.8% | +29.4% |
| Jan 2020 | +29.7% | +42.7% | +26.9% |
| Jan 2021 | +16.6% | +19.0% | +15.5% |
| Jan 2022 | +13.2% | +11.6% | +11.2% |
| Jan 2023 | +39.9% | +51.4% | +29.2% |
| Jan 2024 | +16.3% | +23.9% | +16.9% |
| Jan 2025 | +2.6% | −8.2% | −0.0% |
Today: composite 24, target exposure 75%. Simulated from 2019-07-06; results below are for 2021 on (from 2021-01-01).
| Measure | Model (zones) | 100% in the coin | Constant 50% | Cash (T-bills) |
|---|---|---|---|---|
| Annualized return | +25.8% | +22.4% | +21.1% | +3.3% |
| Volatility | 41% | 77% | 39% | 0% |
| Sharpe ratio (vs T-bills) | 0.68 | 0.60 | 0.60 | — |
| Maximum drawdown | −53% | −79% | −52% | 0% |
| Average exposure | 52% | 100% | 50% | 0% |
| Upside capture | 58% | 100% | 50% | — |
| Downside capture | 48% | 100% | 48% | — |
| Trades per year | 12.2 | 0.0 | 0.0 | 0.0 |
Full simulation (from 2019-07-06): model +33.2% a year (maximum drawdown −53%), holding +33.4% (−79%), constant 50% +27.2% (−52%).
Start-date sensitivity. From each January 1 to today, the model beat holding in 5 of 6 start years and beat the constant 50% in 6 of 6:
| Start | Model (zones) | 100% in the coin | Constant 50% |
|---|---|---|---|
| Jan 2020 | +46.0% | +53.0% | +36.3% |
| Jan 2021 | +25.8% | +22.4% | +21.1% |
| Jan 2022 | +16.9% | −9.3% | +3.0% |
| Jan 2023 | +28.9% | +19.4% | +17.3% |
| Jan 2024 | +20.4% | +0.1% | +8.1% |
| Jan 2025 | +7.7% | −17.7% | −1.9% |
Alternative rules, tracked for comparison. Three alternatives were fixed on 2026-10-24, before any live results, and are logged daily beside the main rule (data/live/live_<coin>_<rule>.csv) with the same weekly mechanics, band and costs. None drives the main rule; they exist to learn, from data that did not exist when they were chosen, whether trend or volatility scaling improves on valuation alone. Valuation + trend: the average of the zone exposure and a trend exposure (100% at or above the 200-day average, 0% below). Risk-scaled valuation: zone exposure × (median 90-day volatility over the trailing four years ÷ the last 90 days' volatility), the ratio held between 0.5 and 1.5, capped at 100%. Trend only: 100% at or above the 200-day average, 0% below. Parameters are conventional and were not tuned, but these are ideas known to have worked, so their simulated records flatter them; the live record decides.
How to read it. The rule is a sizing discipline. It tends to trail the coin in strong uptrends, because it scales down as valuations rise, and to win from starting points near tops, because it is already scaled down when the decline comes. Results depend heavily on the start date, which is why the start-year tables matter more than any single headline number.
The rule. (1) Start from market-cap weights. (2) Compute a relative-value score for ether against bitcoin: the average of the ETH/BTC price ratio's percentile within its trailing four years and 50 + half the gap between ether's and bitcoin's composites (low = ether relatively cheap). (3) Multiply ether's market-cap share by ×1.5 (below 15), ×1.25 (15–35), ×1 (35–65), ×0.75 (65–85) or ×0.5 (85 and above), capped at 80%; bitcoin gets the rest. (4) Scale each coin's share by its own zone exposure; the remainder is cash in T-bills. Same weekly mechanics and costs as section 8, trading when a coin's weight is 5+ points from target.
Today: market-cap split 85% / 15%; ETH/BTC at its 18th percentile; composite gap −21 points; relative score 29 (×1.25); exposures 50% bitcoin and 75% ether; result 41% bitcoin, 14% ether, 45% cash.
Does relative value predict relative returns? (since 2019)
| Relative score zone | Ether vs bitcoin, next 12 months (median) | Ether outperformed | Days | Tilt |
|---|---|---|---|---|
| Deep value | +29% | 100% | 100 | ×1.50 |
| Value | +2% | 51% | 486 | ×1.25 |
| Neutral | −12% | 49% | 1,034 | ×1.00 |
| Expensive | −9% | 32% | 678 | ×0.75 |
| Euphoric | — | — | 5 | ×0.50 |
Simulated record, 2021 on:
| Measure | Model (zones) | BTC+ETH market-cap index | 100% bitcoin | Constant 50% | Cash (T-bills) |
|---|---|---|---|---|---|
| Annualized return | +17.9% | +19.5% | +19.0% | +16.1% | +3.3% |
| Volatility | 31% | 59% | 57% | 30% | 0% |
| Sharpe ratio (vs T-bills) | 0.58 | 0.54 | 0.53 | 0.54 | — |
| Maximum drawdown | −51% | −77% | −77% | −48% | 0% |
| Average exposure | 51% | 100% | 100% | 50% | 0% |
| Upside capture | 55% | 100% | 98% | 51% | — |
| Downside capture | 49% | 100% | 96% | 48% | — |
| Trades per year | 16.5 | 0.0 | 0.0 | 0.0 | 0.0 |
From each January 1 to today, the model beat the market-cap index in 2 of 6 start years. Ether's history is short and the extreme relative-value zones have not occurred, so the largest tilts are untested; the tilt is deliberately modest.
This tab describes how bitcoin and ether have behaved; it makes no forecast and is not part of the valuation or the exposure rule. Every statistic is computed in the browser from daily prices, so any window can be chosen.
Assets. Bitcoin and ether daily closes (every calendar day). Broad markets are represented by liquid ETFs, using dividend-adjusted closes so that their returns are total returns: US stocks (SPY), US tech stocks (QQQ), global stocks (ACWI), emerging-market stocks (EEM), US investment-grade bonds (AGG), 20+ year Treasuries (TLT), gold (GLD), a commodity index (DBC) and the US dollar (UUP). ETF data begin in January 2010.
Measures.
Views.
How to read it. Rolling statistics overlap heavily from one day to the next, so a long run of high or low readings is one episode, not many. Bitcoin's one-year weekly correlation with US stocks averaged close to zero before 2020 and mostly 0.2–0.4 since (with a dip to about zero in 2024), as institutional ownership grew; long-history percentiles mix those regimes. Volatility has trended down across cycles, so a reading that is low against all history may be ordinary against recent years; the Show range and window choices make that visible.
Each indicator turns a widely made bullish argument into a yes/no condition checked every day with only the data published by then: the ISM from its release date, monthly market data from the first day of the following month (US M2 from the second month, because it is published about four weeks late), weekly and daily series from the next day. On the page, reading used is the value the condition uses today; a newer month-to-date value is shown separately.
The test compares bitcoin's median forward return (6 and 12 months) on days the condition was met with days it was not, in two non-overlapping periods: 2013–17 and 2018 on. Supported = met beat not met by more than 15 percentage points with a higher share of days up; reversed = the opposite; no clear edge = neither; too little data = one side had fewer than 60 days (for example a condition that was almost always met in 2013–17). Each group also shows forward returns by the number of its conditions met.
Overall record (2018 on, 12 months): 1 supported, 8 reversed, 9 no clear edge. Supported: Equity volatility (VIX). Reversed: ISM manufacturing, Copper ÷ gold, Fed funds rate, G3 central-bank balance sheets, Corporate credit spread, Hash rate (hash ribbon), Net exchange flow and Stablecoin supply. Reversed in both periods: ISM manufacturing, Fed funds rate and Hash rate (hash ribbon).
Interpretation. Most conventional bullish readings have not helped, and several have come before weaker returns: by the time the backdrop looks good, bitcoin has usually moved. For indicators reversed in both periods, the opposite reading (for example manufacturing weakness) has been the more reliable entry point; single-period reversals deserve less weight. Because many indicators are tested, one or two will look good or bad by chance.
Thesis. A strengthening economy and easier money lift risk assets: the ISM manufacturing index at or above 50 (or rising), a weaker dollar, copper outperforming gold, and a Fed that has stopped tightening.
From October 2026 this framework reads its cycle state from the Business Cycle Regime Engine (BCRE) instead of keeping its own. BCRE sorts each month since 1970 into recovery, expansion, slowdown or contraction from a ten-indicator US growth composite (level against trend, and its 3-month direction), using only data published by that month-end. Its regime.json is fetched daily; each month's phase counts here from the first day of the next month. The phase is tested against bitcoin's forward returns like the ISM regimes, and it enters the backdrop as one condition (met in recovery or expansion). Both use BCRE's unrevised-only phase (its six never-revised inputs): the headline phase uses today's revised payroll, hours, production and permit data, which would put revision look-ahead into the tests. The panel shows the headline phase as the current reading. The ISM work below stays as a test of one specific thesis. Current reading: expansion for 2026-10 (provisional).
| BCRE unrevised phase in force | 2013–17: 1-yr median | % up | Days | 2018 on: 1-yr median | % up | Days |
|---|---|---|---|---|---|---|
| Recovery | +290% | 100% | 62 | +97% | 70% | 1,088 |
| Expansion | +361% | 72% | 1,003 | -36% | 26% | 274 |
| Slowdown | +128% | 80% | 776 | -49% | 23% | 395 |
| Contraction | +151% | 100% | 152 | +62% | 83% | 1,097 |
From 2018 on, the best 1-year medians followed recovery and contraction and the worst followed expansion and slowdown; read against the ISM results, a pattern of bitcoin doing best from the weaker phases would fit bitcoin leading the business cycle rather than following it. The sample covers only a few cycles, and 2013–17 rose strongly in every phase.
Tom Lee of Fundstrat has argued that bitcoin increasingly trades on monetary policy and the business cycle rather than the four-year halving clock. Three of his claims, as reported, are testable (paraphrased):
ISM history from FMP's economic calendar begins with the March 2013 release; each reading counts from its actual release date. December readings are stored as revised in the following January release while keeping the original release date, a minor look-ahead in one month a year. Latest: 54.5 for 2026-09 (released 2026-10-01), 9 consecutive months above 50; regime: expanding, rising.
Claim 1 — strongest with ISM above 50. From 2018 on, the median 1-year return was +16% on days when the ISM was at or above 50 and +95% when it was below (2013–17: +123% and +166%). By level and direction (direction = 3-month change, so this table starts in July 2013):
| ISM regime | 2013–17: 1-yr median | % up | Days | 2018 on: 1-yr median | % up | Days |
|---|---|---|---|---|---|---|
| Expanding, rising | +127% | 66% | 917 | +25% | 56% | 758 |
| Expanding, falling | +94% | 79% | 574 | +13% | 55% | 880 |
| Contracting, rising | — | — | 31 | +59% | 68% | 358 |
| Contracting, falling | +147% | 100% | 123 | +104% | 80% | 858 |
Claim 2 — no tops during contraction. ISM at each cycle top (latest release before the peak day): 2013 57.3, 2017 58.2, 2021 60.8, 2025 49.1; at troughs: 2015 55.1, 2018 59.3, 2022 50.2. It held through 2021 but fails on the current dating of the 2025 peak, which came with the ISM at 49.1. That dating is provisional: Lee argued in January 2026 that this was not the cycle top, and it is confirmed only when the cycle completes.
Claim 3 — detrended bitcoin tracks the ISM. Same-month correlation of the ISM with bitcoin's distance from its 200-day average is 0.05; with bitcoin's 1-year log return, 0.30. The strongest relationship is bitcoin's 1-year return with bitcoin leading the ISM by 6 months (0.53).
Verdict. (1) not supported: returns were stronger with the ISM below 50; (2) fails on the current, provisional dating of the 2025 top; (3) not supported as stated: bitcoin leads the ISM rather than tracking it. Bitcoin has behaved like an asset that discounts the manufacturing upturn early, so the best entries came while the ISM was still weak. The business-cycle condition below uses a broader test (ISM at or above 50, or rising), so its figures differ from claim 1's.
| Indicator | Bullish condition | Met today | Reading used | 12m median when met (2018 on) | when not met | % up: met / not | Verdict 2018 on | Verdict 2013–17 |
|---|---|---|---|---|---|---|---|---|
| ISM manufacturing | At or above 50, or up over 3 months | yes | 54.50 index (released 2026-10-01) | +21% | +104% | 58% / 80% | reversed | reversed |
| US dollar index | Lower than 6 months earlier | no | 101.45 (2026-09-30) | +68% | +35% | 62% / 67% | no clear edge | reversed |
| Copper ÷ gold | Higher than 6 months earlier | yes | 1.58 (2026-09-30) | +7% | +49% | 51% / 70% | reversed | no clear edge |
| Fed funds rate | Flat (within +0.10 pt) or lower than 6 months earlier | no | 3.75% (2026-09-30) | +5% | +66% | 51% / 80% | reversed | reversed |
Number of conditions met (if more met meant better returns, medians would rise toward the top):
| Conditions met | 12m median (2018 on) | % up | Days |
|---|---|---|---|
| 4 of 4 | +10% | 53% | 304 |
| 3 of 4 | −31% | 41% | 506 |
| 2 of 4 (today) | +1% | 50% | 978 |
| 1 of 4 | +84% | 91% | 1,035 |
| 0 of 4 | — | — | 31 |
Thesis. Bitcoin is a liquidity asset. When central banks expand their balance sheets, when the Fed's balance sheet net of the Treasury's cash account and reverse repo grows, and when money supply accelerates, more money chases scarce assets.
The global measure uses the Fed, ECB and Bank of Japan (G3) balance sheets converted to dollars; current M2 for the euro area, China and Japan is not available on free sources.
| Indicator | Bullish condition | Met today | Reading used | 12m median when met (2018 on) | when not met | % up: met / not | Verdict 2018 on | Verdict 2013–17 |
|---|---|---|---|---|---|---|---|---|
| G3 central-bank balance sheets | Rising over 6 months | no | 17.40 $tn (2026-09-30) | −22% | +59% | 44% / 83% | reversed | no clear edge |
| US net liquidity | Rising over 13 weeks | no | 5.80 $tn (2026-10-21) | +52% | +39% | 62% / 66% | no clear edge | reversed |
| US M2 growth | Positive and accelerating over 3 months | yes | 5.7% y/y (2026-08-31) | +44% | +39% | 64% / 64% | no clear edge | no clear edge |
Number of conditions met (if more met meant better returns, medians would rise toward the top):
| Conditions met | 12m median (2018 on) | % up | Days |
|---|---|---|---|
| 3 of 3 | +104% | 61% | 571 |
| 2 of 3 | −15% | 43% | 606 |
| 1 of 3 (today) | +31% | 64% | 1,111 |
| 0 of 3 | +87% | 91% | 566 |
Thesis. Bitcoin pays no yield, so falling real yields lower its opportunity cost; and it trades as a high-beta risk asset, so calm equity markets, narrowing credit spreads and an equity uptrend should help.
| Indicator | Bullish condition | Met today | Reading used | 12m median when met (2018 on) | when not met | % up: met / not | Verdict 2018 on | Verdict 2013–17 |
|---|---|---|---|---|---|---|---|---|
| 10-year real yield | Lower than 6 months earlier | no | 2.93% (2026-09-30) | +37% | +41% | 64% / 64% | no clear edge | no clear edge |
| Corporate credit spread | Narrower than 6 months earlier | yes | 1.47% (2026-09-30) | +23% | +56% | 56% / 75% | reversed | no clear edge |
| Equity volatility (VIX) | Below its 12-month median | yes | 16.34 (2026-09-30) | +59% | +19% | 72% / 57% | supported | supported |
| S&P 500 trend | Above its 10-month average | yes | 7,651.54 (2026-09-30) | +36% | +47% | 62% / 75% | no clear edge | reversed |
Number of conditions met (if more met meant better returns, medians would rise toward the top):
| Conditions met | 12m median (2018 on) | % up | Days |
|---|---|---|---|
| 4 of 4 | +31% | 61% | 454 |
| 3 of 4 (today) | +37% | 63% | 976 |
| 2 of 4 | +44% | 60% | 694 |
| 1 of 4 | +78% | 79% | 485 |
| 0 of 4 | +36% | 58% | 245 |
Thesis. More users and more security make the network more valuable: active addresses, addresses holding coins, and hash rate (miners' investment in security). Address counts are imperfect, because exchanges batch transactions and one holder can use many addresses.
| Indicator | Bullish condition | Met today | Reading used | 12m median when met (2018 on) | when not met | % up: met / not | Verdict 2018 on | Verdict 2013–17 |
|---|---|---|---|---|---|---|---|---|
| Active addresses | Higher than a year earlier | no | 641.73 thousand (2026-10-23) | +48% | +34% | 69% / 59% | no clear edge | too little data |
| Addresses holding bitcoin | 1-year growth above its own 1-year median | no | 57.26 million (2026-10-23) | +44% | +39% | 66% / 63% | no clear edge | supported |
| Hash rate (hash ribbon) | 30-day above 60-day average | yes | 1,008.53 EH/s (2026-10-23) | +33% | +74% | 62% / 75% | reversed | reversed |
Number of conditions met (if more met meant better returns, medians would rise toward the top):
| Conditions met | 12m median (2018 on) | % up | Days |
|---|---|---|---|
| 3 of 3 | +26% | 65% | 707 |
| 2 of 3 | +96% | 75% | 845 |
| 1 of 3 (today) | −1% | 50% | 1,086 |
| 0 of 3 | +82% | 94% | 216 |
Thesis. Coins leaving exchanges for long-term custody, and dollars building up inside crypto as stablecoins, are the fuel for the next leg up.
| Indicator | Bullish condition | Met today | Reading used | 12m median when met (2018 on) | when not met | % up: met / not | Verdict 2018 on | Verdict 2013–17 |
|---|---|---|---|---|---|---|---|---|
| Bitcoin on exchanges | Lower than 90 days earlier | no | 13.4% of supply (2026-10-23) | +41% | +40% | 60% / 68% | no clear edge | supported |
| Net exchange flow | Net outflow over 30 days | yes | -55.94 thousand BTC (2026-10-23) | +31% | +47% | 60% / 68% | reversed | supported |
| Stablecoin supply | Higher than 90 days earlier | no | 252.11 $bn (2026-10-20) | +21% | +99% | 57% / 95% | reversed | no clear edge |
Number of conditions met (if more met meant better returns, medians would rise toward the top):
| Conditions met | 12m median (2018 on) | % up | Days |
|---|---|---|---|
| 3 of 3 | −8% | 46% | 758 |
| 2 of 3 | +48% | 70% | 726 |
| 1 of 3 (today) | +42% | 69% | 1,163 |
| 0 of 3 | +94% | 88% | 207 |
| Composite score | 2012–17 median | % up | Days | 2018-on median | % up | Days |
|---|---|---|---|---|---|---|
| 0–20 | +72% | 83% | 338 | +90% | 95% | 346 |
| 20–40 | +138% | 72% | 342 | +135% | 93% | 640 |
| 40–60 | +180% | 70% | 392 | +55% | 73% | 833 |
| 60–80 | +430% | 86% | 334 | −19% | 32% | 806 |
| 80–100 | +16% | 59% | 290 | −29% | 19% | 229 |
| Price vs fair value | 2012–17 median | % up | Days | 2018-on median | % up | Days |
|---|---|---|---|---|---|---|
| below −40% | +79% | 82% | 392 | +70% | 100% | 282 |
| −40% to −20% | +151% | 74% | 216 | +145% | 92% | 463 |
| −20% to 0% | +152% | 69% | 338 | +93% | 83% | 625 |
| 0% to +20% | +524% | 78% | 131 | +31% | 59% | 530 |
| +20% to +50% | +481% | 87% | 200 | −13% | 37% | 595 |
| above +50% | +53% | 64% | 419 | −33% | 20% | 359 |
Rank correlation of the premium with 1-year return: -0.01 (2012–17), -0.64 (2018 on).
| Score | 2012–16 | 2016–20 | 2020–24 | 2024–* | 2012–17 | 2018 on |
|---|---|---|---|---|---|---|
| MVRV | 0.33 | -0.08 | -0.31 | -0.48 | 0.26 | -0.47 |
| Power law | -0.01 | -0.72 | -0.54 | -0.82 | -0.09 | -0.71 |
| Puell | 0.27 | -0.32 | -0.14 | -0.85 | 0.03 | -0.33 |
| 200-week | 0.05 | -0.54 | -0.50 | -0.88 | 0.19 | -0.70 |
| Composite | 0.03 | -0.43 | -0.43 | -0.85 | 0.03 | -0.63 |
| Event | Date | Price | MVRV × | Composite | MVRV score | Power law score | Puell score | 200-week score | Price vs fair value |
|---|---|---|---|---|---|---|---|---|---|
| 2013 peak | 2013-12-04 | $1,238 | 5.15× | 96 | 91 | 100 | 96 | — | +388% |
| 2015 trough | 2015-01-14 | $182 | 0.58× | 2 | 3 | 5 | 1 | 0 | −75% |
| 2017 peak | 2017-12-16 | $19,650 | 4.43× | 100 | 100 | 100 | 100 | 100 | +528% |
| 2018 trough | 2018-12-15 | $3,183 | 0.69× | 12 | 0 | 42 | 2 | 3 | −49% |
| 2021 peak | 2021-11-08 | $67,555 | 2.86× | 81 | 88 | 85 | 69 | 81 | +67% |
| 2022 trough | 2022-11-21 | $15,760 | 0.78× | 1 | 1 | 0 | 4 | 0 | −58% |
| 2025 peak | 2025-10-06 | $124,720 | 2.29× | 77 | 83 | 82 | 52 | 90 | +24% |
| Horizon | Since 2018: median | % up | Days (episodes) | Since 2012: median | % up | Days (episodes) |
|---|---|---|---|---|---|---|
| 6 months | −10% | 48% | 515 (13) | +19% | 55% | 768 (15) |
| 1 year | +71% | 85% | 458 (12) | +82% | 79% | 711 (14) |
| 2 years | +71% | 95% | 452 (11) | +87% | 91% | 705 (13) |
| Input | Source | Used for |
|---|---|---|
| BTC daily close | Financial Modeling Prep (BTCUSD); Coin Metrics reference rate fills days FMP lacks; the latest day is the most recent quote at build time | price, all lenses, forward returns |
| MVRV, supply, issuance, fees | Coin Metrics Community API (CC BY-NC 4.0) | MVRV, realized price, Puell |
| Business-cycle phase, monthly from 1970 | Business Cycle Regime Engine, data/regime.json (its public GitHub Pages site; raw GitHub as fallback) |
cycle phase panel, phase condition, agreement panel |
| ISM Manufacturing PMI | FMP economic calendar (from March 2013) | ISM thesis, business-cycle condition |
| Gold (GCUSD), copper (HGUSD), dollar index (DX-Y.NYB), fed funds | FMP | business-cycle conditions |
| Fed, ECB and Bank of Japan balance sheets, Treasury General Account, reverse repo, US M2, 10-year TIPS yield, Moody's Baa corporate yield minus the 10-year Treasury (BAA10Y), EUR and JPY exchange rates (fallback) | FRED (keyless downloads) | global liquidity, real rates, credit spread |
| VIX, S&P 500, EURUSD, USDJPY | FMP | risk sentiment, currency conversion |
| Active addresses, addresses with balance, hash rate, exchange balances and flows, USDT and USDC supply | Coin Metrics Community API | adoption and flows |
| ETH daily close; ETH MVRV and supply | FMP (ETHUSD); Coin Metrics Community API | ether lenses, ether exposure, allocation |
| 3-month Treasury bill (DTB3) | FRED | cash return in all strategies and benchmarks; Sharpe ratios |
| Broad-market ETFs, daily dividend-adjusted close: SPY, QQQ, ACWI, EEM, AGG, TLT, GLD, DBC, UUP | FMP (historical-price-eod/dividend-adjusted), full history re-pulled daily |
Risk & returns tab |
| US spot bitcoin ETF assets (IBIT, FBTC, ARKB, BITB, GBTC) | FMP, daily snapshot from October 2026 | ETF holdings (shown after 60 days; tested once at least two years exist) |
Checks. FMP and Coin Metrics closes agree within about 0.2% on overlapping days. Realized price, the 200-week average, the Puell multiple and the trailing MVRV percentile were recomputed independently from the raw files and matched the model. The ISM history was cross-checked for gaps (none from March 2013) and December revisions.
Automation. A GitHub Actions job runs daily at 14:07 UTC and on every push to the main branch. refresh/fetch.py pulls new data from Coin Metrics, FRED and FMP (a failed source keeps its last good file); refresh/model.py (with macro.py, backdrop.py, strategy.py and markets.py) rebuilds every score, fair value, signal, test and strategy, and appends the day to the live logs; tools/docs.py regenerates this document; tools/build.py builds the page; the job commits the data and deploys to GitHub Pages. FMP series need the FMP_API_KEY secret; Coin Metrics and FRED need no key.