Engine v5.0 · Backtest window 2010-07-18 → present, resampled to one reading per day and measured per market era (~8 independent 180-day windows per era) · Methodology last revised August 2026
- What it is: one number from 0 to 100 for how risky Bitcoin looks right now.
- Low means cheap and frightening. Historically the best times to have been buying.
- High means expensive and exciting. Historically the times to be careful.
- What it is not: a forecast, a trading signal, or advice. It describes the market you are in, not what you should do about it.
- How we check it: by replaying it over sixteen years of real prices and reporting what actually happened next — including the parts where it doesn't work.
- Who should ignore it: anyone trading over days or weeks. It moves slowly and only says anything useful over months.
By era we mean one four-year stretch of Bitcoin's history — roughly one cycle from one halving to the next. We test each era separately, rather than all sixteen years at once, so that Bitcoin's enormous long-run climb can't make a mediocre signal look brilliant. This is the single biggest change in v5.0, and it is explained in full below.
About MK III
MK II (2025) rebuilt the engine from the ground up: it introduced the cycle-position domain, cut the number of overlapping signals down to a manageable set, and replaced jargon with plain language across the dashboard.
MK III (2026) is about evidence. MK II decided what mattered mostly by reasoning about it. MK III went back and checked every one of those calls against what Bitcoin actually did afterwards — and several were wrong. What changed:
- Ingredient weights set by testing, not opinion. Every ingredient was checked against how the market actually moved next before it got any weight. Crowd sentiment — once the second-biggest ingredient at 24% — was cut hard after it turned out to point the wrong way over 3-to-6-month windows.
- A better on-chain valuation gauge added. Two popular ones (raw MVRV and NUPL) were tried first and dropped — they pointed the wrong way. The version that works compares today's price to what people actually paid, and scales it by how jumpy that gap normally is.
- History extended back to 2010. Several inputs used to start in mid-2021; they now go back sixteen years, so they can be judged across four full market cycles instead of one.
- Made-up data deleted. About 4,000 old "leverage" readings weren't real measurements — they were a filler value the engine uses when data is missing, saved as if genuine. No free source has that history, so they were removed rather than guessed at.
- The track record made public. The dashboard's Track Record panel now shows how the score has really done, over one, three and six months — including the short horizon where it barely works.
For a while, one ingredient — how much of the crypto market is Bitcoin versus other coins — was given real weight on the strength of a test that was quietly broken. There was almost no real history for it, so the test had been filling the gaps with a placeholder number and grading that. Separately, every test had been counting readings instead of days, which made the most recent few months count roughly 8× too much. We fixed both, re-checked every ingredient from scratch, and the weights on this page are the corrected ones. (Full before/after: RISK_CALIBRATION_BACKLOG.md in the project repository.)
Older versions were tuned to a single number — how closely the score lined up with what Bitcoin did next, measured across all of 2010 to today. That number was misleading. Bitcoin's gains have gotten smaller every cycle while the score has drifted higher, and lining up two long-running trends like that always produces a good-looking match, even with no real skill — a fake "signal" that knows nothing except today's date scores about as well.
Measured properly — separately within each four-year era, so that slow drift can't sneak in — the real edge is smaller but genuine. v5.0 re-tunes on that honest measurement plus a real portfolio test, adds one strong new ingredient (a long-run price-trend model), and cuts back one that stopped working. The headline is no longer a correlation number: it's that following the score would have cut Bitcoin's worst crashes by roughly a third, for about the same overall return. (Full working: RISK_MEASUREMENT_REDESIGN_BACKLOG.md and research/EXPERIMENTS.md.)
No crystal ball. No hype. Just the data, explained plainly — including the unflattering parts, and our own mistakes when we find them.
The Score at a Glance
The Risk Score runs from 0 to 100 and deliberately works against the crowd: it is low when fear is at its worst, and high when optimism is at its peak.
It answers one question: where are we in the Bitcoin cycle, and is the crowd too hopeful or too gloomy right now? The score is a blend of ingredients, each with its own weight. The three heaviest are on-chain valuation (35% — is the price high or low compared with what holders actually paid?), a long-run price-trend model (22% — is the price above or below the straight-line path it has followed for its whole history?), and cycle position (25% — how far is the price above its slow multi-year average?). Everything else carries a small weight or none. The full list is in Engine Architecture below.
Has It Actually Worked?
To check, we run the current model over the whole history back to July 2010 and look at what Bitcoin did in the six months after each reading. Six months is where the score has a real edge; over a single month it has almost none, and the page says so rather than hiding it. The dashboard's Track Record panel shows the same thing live, with a one / three / six-month switch.
Over the next six months, Bitcoin's typical move was −11%, and it ended lower 60% of the time. Against a market that rose sharply over most of this history, that is a genuinely negative signal.
Over the next six months, Bitcoin ended higher 87% of the time — the most reliable band on the scale — with a typical gain of +59%.
A day picked at random had a typical six-month move of +37% and ended higher 66% of the time. Bitcoin rose enormously over this period, so that baseline is high by design — it's the fair thing to judge the extremes against. The fear zone still beats it, mostly on reliability (87% up vs 66%); the optimism zone is the clearer win, turning negative where the baseline is strongly positive.
- This is the current model replayed over old data — not a record kept live as it happened.
- We report typical (middle) outcomes, not averages: Bitcoin rose over a million-fold across this window, so a plain average would be swamped by 2011–2013.
- The extremes don't happen often. The "70+" figure rests on only about 5 genuinely separate six-month stretches, the "30−" figure on about 7. Directional, not the last word.
- Several ingredients only have data from 2018–2021 on, so the earliest history uses fewer of them.
- It's a months-to-quarters gauge, not a timing tool.
The most useful test of a risk gauge isn't a number — it's what happens if you act on it. Suppose you held less Bitcoin when the score was high and more when it was low (set from the previous day's reading, no borrowing, no betting against the market), versus just holding Bitcoin the whole time:
- 2018–2021: about 35% a year either way — but the worst drop was −45% instead of −81%, with your money in the market only about half the time.
- 2022 to today: 12% a year vs 11% (slightly ahead), with a −47% worst drop instead of −67%.
The point isn't more return — it's roughly the same return with far less of the stomach-churning drops. (The 2010–2013 era is left out: Bitcoin rose about 1,000× and every rule looks like genius.)
How to Read the Number
The score tells you what kind of market you're in, not what to buy or sell. What you do with that is up to your own plan and time frame. There are seven bands, and their edges (70 and 30) are exactly the lines drawn on the history chart, so the labels and the chart always agree:
- 0–20 · Peak Fear (analysts call this capitulation): Fear at its worst. Historically the best long-term buying moments in Bitcoin's history.
- 20–30 · Very Cheap (deep value): Genuinely cheap by every measure here. Historically a strong place to be buying.
- 30–42 · Quietly Cheap (accumulation): Cheap-ish and quiet. In the past, buying slowly here worked out over the following months.
- 42–58 · No Clear Signal (neutral): Nothing useful either way. Worth waiting to see which way it goes.
- 58–70 · Getting Pricey (elevated): Be careful — but this is not a sell. Rising markets spend long stretches here while the price keeps climbing. Don't bet against that; just take less risk than usual.
- 70–80 · Crowd Paying Up (distribution): The one zone where the next six months have actually tended to be negative — a typical −11%, against a strongly positive backdrop.
- 80–100 · Peak Optimism (euphoria): Just about everyone is optimistic. Protecting what you have comes first.
Older risk models (ours included) treated anything above the middle as a warning. The history disagreed: rising markets spend long stretches in this band while the price keeps going up. MK III labels it honestly as "be careful", not "get out".
What Goes Into the Score
The score blends seven weighted ingredients, plus three more that are shown on the dashboard but carry no weight. They're listed heaviest first. Every weight comes from testing that ingredient against how the market actually moved next — checked separately within each market era, for the reason explained in the v5.0 note above.
1. On-Chain Valuation — 35%
Is Bitcoin expensive or cheap right now, judged by what holders actually paid for it? Four parts: the CBBI, a ready-made index that folds together 10+ blockchain measures (47% of this ingredient); the MVRV Z-Score (35%); NVT (13%); and 30-day price momentum (5%).
The MVRV Z-Score compares Bitcoin's total market value with what every coin last changed hands for, then asks how unusual that gap is by past standards. The plain versions of this idea were tried first and dropped — they pointed the wrong way. One honest limit: the way it's calculated, its scale has shrunk over the years, so it now maxes out around 2 where old cycles hit 7+. It still reads clearly near bottoms; near tops it does less of the work than it used to.
v5.0 change — NVT cut from 30% of this ingredient to 13%. NVT compares market value with how much money actually moves across the blockchain — a rough price-to-usage ratio. It worked well from 2012 to 2019 but has faded to nothing in recent years, most likely because the way "money moving on the blockchain" is measured stopped meaning the same thing as exchanges batched transactions and the Lightning Network grew. Kept as a small token; the freed weight went to the CBBI, which has stayed steady.
2. Long-Run Price Trend — 22%
Is the price above or below the straight-line path it has followed its whole life? Draw Bitcoin's price against its age on a log-scaled chart and the trend is close to a straight line. This ingredient fits that line using only the data available up to each day (never peeking ahead), then measures how far today's price sits above or below it. Well above the line = late in the cycle; below it = value.
New in v5.0, and the strongest single ingredient in the whole model. It points the right way in every one of the four market eras, including the current one — the only ingredient that can say that — and it clearly beats the "only knows the date" dummy that fools the older whole-history test. It needs no new data feed (just the price we already store) and covers the full sixteen years. It is the main reason v5.0 exists.
3. Cycle Position — 25%
How far is the price from its slow multi-year average, and from its all-time high? Two parts: distance above or below the 200-week average (a very slow trend line, 70% of this ingredient), and how far below the record high the price sits (30%). Far above the average = late-cycle risk; deep below it = washed-out value.
It moves slowly, so it's useless for timing but good for locating where you are in a multi-year cycle. The 200-week-average part is, on its own, the strongest single signal of the last two cycles. The drawdown part looked flat over the full history — hence the 70/30 split — but has actually been one of the better signals since 2022.
4. Big-Picture Money Conditions — 9%
Is money getting easier or tighter across the whole economy? A slow backdrop built from the money supply, inflation-adjusted government-bond yields, the strength of the US dollar, and the size of the Federal Reserve's balance sheet.
Its history was extended back to 2010 in an earlier update. Over that full stretch it's weak but consistently points the right way within each era — more than several other ingredients can say. Kept behind the top three: it sets the weather, not the timing.
5. Crowd Sentiment — 3%
Is the crowd fearful or greedy? Uses the well-known Crypto Fear & Greed Index — the classic idea that extreme fear clusters near bottoms and extreme greed near tops.
It used to be the second-biggest ingredient (24%), then 8%, then 5%. Tested era by era it actually points slightly the wrong way — this particular index has tended to lag the market rather than lead it. Kept at a small 3% floor rather than zero: the underlying idea is sound even if this measure of it isn't proving it.
6. Futures-Market Positioning — 3%
Are leveraged traders crowded onto one side of the bet? When traders are paying a premium to bet on higher prices, the market is fragile and top-heavy; when they're paying to bet against it, that's the kind of forced selling that often marks bottoms.
History goes back to September 2019 (from a free exchange feed). It pointed the right way in 2018–2021 but has been flat-to-slightly-wrong recently, so it stays at the 3% floor.
7. Stock-Market Fear (VIX) — 3%
Are traditional markets panicking or complacent? Read the contrarian way: a spike in Wall Street's "fear index" often lines up with everything risky bottoming out together, while extreme calm tends to show up late in a cycle. History runs to 2010.
It was once credited with the strongest raw signal in the whole model — a figure that came almost entirely from over-counting recent months. Measured honestly over its full history, it shows essentially no edge on Bitcoin. Kept at a floor weight rather than zero: "no signal found yet" is a more modest claim than "proven wrong".
Shown, but not scored (0% weight)
ETF flows and stablecoin supply appear on the dashboard but don't move the score — both tested as followers, good at confirming what's already happening and poor at calling turns.
Bitcoin dominance (Bitcoin's share of the whole crypto market) is also shown-only for now. It briefly carried weight on a broken test — there was barely any real history for it, so the test was grading a placeholder (see the v4.4 note). With only about nine real months to go on, it doesn't yet agree with itself across time frames. Zeroed out — not disproven, just not enough real track record to trust yet.
How the parts come together
Each ingredient produces its own 0–100 reading, and the score is their weighted average. Three details: the result is lightly smoothed so a single odd reading doesn't jerk it around; it's stretched a little around the middle so real extremes reach the ends of the scale instead of bunching near 50; and if an ingredient has no data, it's dropped and the others re-weighted — a missing input never quietly drags the score toward the middle.
The Warning Flags
When something notable happens, the engine raises a flag — a marker on the history chart and a banner on the dashboard. Flags don't change the score (the blend already accounts for them); they just point out what the number is reacting to. Each one describes a market condition as either bearish (caution) or bullish (opportunity):
| Trigger | Flag | What it means |
|---|---|---|
| Pi Cycle Top fires | ⛔ Pi Cycle Top | Warning — rare, only ever fires near tops |
| CBBI ≥ 85 | 🔴 Extreme Optimism | Warning — price has run up a long way |
| Fear & Greed ≥ 85 | 🔴 Extreme Optimism | Warning — the crowd is very excited |
| SOPR ≥ 1.05 | 🟠 Profit-Taking | Warning — lots of people cashing in gains |
| Funding ≥ 0.04% / 8h | 🟠 Too Much Borrowed Money | Warning — too many people betting on a rise |
| Futures basis ≥ 18% ann. | 🟠 Too Much Borrowed Money | Warning — people paying a lot to bet on a rise |
| 30-day momentum ≥ 40% | 🟠 Momentum Blow-off | Warning — price has risen unusually fast |
| CBBI ≤ 15 | 🟢 Maximum Fear | Opportunity — price has fallen a long way |
| MVRV Z-Score ≤ −0.03 | 💎 Very Cheap | Opportunity — cheaper than holders paid on average |
| Fear & Greed ≤ 15 | 🟢 Maximum Fear | Opportunity — the crowd has given up |
| SOPR ≤ 0.95 | 🔵 Panic Selling | Opportunity — people are selling at a loss |
| Funding ≤ −0.01% / 8h | 🔵 Panic Selling | Opportunity — more people betting on a fall |
Pi Cycle Top is deliberately one-sided. It fires when the 111-day price average crosses above twice the 350-day average, and it has landed within days of the 2013, 2017 and April-2021 tops. It has no bottom equivalent, so rather than force it into a symmetric score — where its silence at lows would read as false neutrality — it is used purely as a top warning.
On the chart these appear in the event rail beneath the plot: above the divider = elevated-risk conditions, below = deep-value conditions. Position carries the meaning, so the rail stays readable in the monochrome themes.
Data Sources
This section is a reference list of where the numbers come from. Nothing here is needed to use the dashboard — skip it unless you want to check our sources.
The engine refreshes every 3 hours. Every source below is free and public — there are no paid data feeds anywhere in this project, by design.
- On-Chain: CBBI (colintalkscrypto), MVRV Z-Score and NUPL (CoinMetrics Community), SOPR, NVT (blockchain.info, 7-day smoothed)
- Cycle & structure: 200-week moving average, drawdown from all-time high, the power-law price-support model, Pi Cycle Top, Mayer Multiple, Puell Multiple, Hash Ribbons — all computed from CoinMetrics daily price, issuance and hash-rate history (the power-law model needs price only)
- Sentiment: Crypto Fear & Greed Index (alternative.me)
- Derivatives: Funding rates, open interest and futures basis (OKX live; funding history backfilled from Binance's public API back to September 2019)
- Macro & TradFi: VIX, 10-year real yield, broad dollar index, Fed balance sheet and M2 — all from FRED (Federal Reserve Bank of St. Louis)
- Rotation: BTC dominance, alt-season index, ETH/BTC
- Context only: US spot Bitcoin ETF flows, stablecoin supply
How far back each indicator goes
Not every input reaches 2010, and the dashboard does not pretend otherwise — each detail chart is labelled with the span it is actually showing.
- July 2010: price, MVRV Z-Score, cycle position, drawdown, power-law support residual, Pi Cycle, VIX, real yields, dollar index, Fed balance sheet, M2
- September 2010: NVT
- June 2011: CBBI
- February 2018: Fear & Greed (the index did not exist before then)
- September 2019: funding rates
- June 2021: SOPR, dominance, alt-season, ETH/BTC, open interest, stablecoins
Most of that depth was added on purpose. The stock-market and money-conditions data used to start in mid-2021 and was extended back to 2010 from the Federal Reserve's public database, roughly tripling the evidence behind those ingredients. A gap in the on-chain valuation data was filled in. Futures data was extended back to September 2019 from a free exchange feed. The long-run price-trend model (added in v5.0) needed no new feed at all — just the price history already stored, fitted without ever looking ahead.
One removal is worth being plain about: the pre-2021 "leverage" figures weren't real. When that data is missing the engine fills in a neutral placeholder, and an earlier rebuild had saved thousands of those placeholders as if genuine. No free source has that history, so rather than guess, about 4,000 fake values were deleted and that chart simply starts in 2021.
The Fine Print
This dashboard is an educational data tool. It is not financial advice. The past does not guarantee the future. The historical results here are measured by replaying today's model over old data, so real life — fees, slippage, and your own decisions under pressure — will differ. Do your own research, and never risk money you can't afford to lose. It's a tool, not a crystal ball.
MaxMetrics Risk Engine MK III — maintained with ☕ and code.