Methodology

The Hodlometer Index

One number from 0 to 100 that answers a single question: how hot is this market compared with its own recent history? Zero is deep capitulation, one hundred is euphoria. It is not a forecast and not a signal to buy or sell — it is a thermometer.

Deep Freeze 0–20Cool 20–40Neutral 40–60Warm 60–80Overheated 80–10027.00100

Cool

Below-average heat: interest is low, price sits under its own trend.

Reading for — the last closed daily candle, UTC.

ComponentBTCETHScoreWeight
Mayer 0.907 ratio 0.911 ratio 31.8 30%
200W distance 3.3 % -21.1 % 19.6 30%
Fear & Greed 28.4 points · bitcoin only 25.2 25%
Funding 0.0047 % per 8h 0.0017 % per 8h 35.3 15%

Every score is a percentile: 70 means “higher than 70% of the readings in the last four years”.

The formula

Each component is converted to a 0–100 percentile score, then the scores are averaged with fixed weights:

Index = Σ (wi × Pi) / Σ wi

where Pi is the percentile score of component i and wi its weight. Dividing by the sum of weights matters: when a component has no data for a date, it drops out and the remaining weights are renormalised rather than silently counted as zero. The share of weight actually used is published as coverage in the API.

The four components

ComponentWeightWhat it measuresWhy this weight
Mayer Multiple
price ÷ 200-day average
30% How far price has run above or below its ~7-month trend. Around 1.0 price is at trend. The often-quoted 2.4 threshold comes from a retrospective simulation of regular buying rather than from a model, and bitcoin's October 2025 all-time high arrived at 1.177 — which is why we rank the value instead of comparing it with a fixed level. The longest clean series we hold and the most widely understood stretch measure. Anchors the index.
Distance to the 200-week average
price ÷ 200-week average − 1
30% Stretch against the full-cycle baseline. By external chart data price has come close to this line near past bear-market lows, but it is not a floor: in our own data bitcoin closed below it in 53 of 581 measurable weeks. Same idea on a full-cycle scale (≈4 years). Two different look-backs cross-check each other.
Fear & Greed, 7-day average 25% Crowd sentiment. alternative.me combines volatility (25%), market momentum and volume (25%), social media (15%), surveys (15%, currently paused), bitcoin dominance (10%) and Google Trends (10%) into one 0–100 print. We average a week to strip out daily noise. The only input not derived from our own price maths — it adds an independent sentiment axis.
Perpetual funding rate, 7-day average 15% What leveraged longs pay shorts to keep their position open. Persistently high funding means a crowded, expensive long side. Fastest and noisiest input, and the shortest history. Useful as an early leverage warning, so it is included but kept small.

Sixty percent of the index is price against its own trend — slow, boring and hard to game. Twenty-five percent is sentiment, fifteen percent is positioning. That split is deliberate: this is an index for people who hold across cycles, not for people trading the week.

This is not a rebranded Fear & Greed

Sentiment is a quarter of the weight here, and it does not even enter in the same shape: what goes into the index is the seven-day average of Fear & Greed ranked against the last four years, not the print alternative.me published this morning. The other three quarters are price and positioning, computed on this site from daily closes. The two indices are set side by side, line by line, on the Fear & Greed page.

Percentile normalisation

Raw components live on incompatible scales — a Mayer Multiple of 1.4, a funding rate of 0.012% per eight hours and a Fear & Greed print of 78 cannot be averaged directly. So each value is replaced by its percentile rank inside its own history:

  • The reference window is the trailing 1460 days (four years, roughly one halving cycle). Older regimes stop distorting the scale, and “extreme” always means extreme relative to the current cycle.
  • Only data available on that date enters the window — there is no look-ahead. A value published for 2022 was ranked against 2018–2022, not against what happened afterwards.
  • Ranks use the mid-rank convention: (values below + half of the values equal) ÷ window size. This matters for funding, where long stretches sit exactly at Binance's 0.01% base rate.
  • A component needs at least 365 observations in its window to be used at all.

The practical consequence: the index says “hotter than X% of the last four years”, not “X% of the way to a top”. Nobody knows where the top is.

Bitcoin and ether

Mayer, 200-week distance and funding are computed separately for BTC and ETH, normalised separately, and then blended 70% BTC / 30% ETH. Bitcoin sets the cycle for both and is the larger asset by some margin, but ether carries information of its own and this site serves holders of both, so its share is meaningful rather than symbolic. Fear & Greed is published for bitcoin only, as one reading rather than one per asset, and we use it as is for both.

Zones

The 0–100 range is split into five equal bands. Because the components are percentile-ranked, the bands read as fifths of the recent cycle. The right-hand column shows how often each band has actually occurred since 2018-02-07 — extremes are rare, which is the point.

ZoneRangeWhat it means for a holderDays
Deep Freeze 0–20 Bottom of the scale: fear, deleveraging, price near its long-term baseline. 415 13.4%
Cool 20–40 Below-average heat: interest is low, price sits under its own trend. 892 28.8%
Neutral 40–60 Mid-range readings across all four components — no strong signal either way. 969 31.3%
Warm 60–80 Above-average heat: price is stretched over its trend and leverage is building. 602 19.5%
Overheated 80–100 Top of the scale: greed, crowded longs, price far above its baseline. 214 6.9%

Band edges are inclusive at the bottom: 40.0 is Neutral, 39.9 is Cool.

Data and update schedule

ComponentSourceIndex history from
Mayer MultipleDaily closes (CoinGecko, Binance, Bitstamp/Bitfinex before 2017)2018-02-07
Distance to 200-week MADaily closes (CoinGecko, Binance, Bitstamp/Bitfinex before 2017)2018-02-07
Fear & Greed (7-day avg)alternative.me Fear & Greed Index2019-02-03
Funding rate (7-day avg)Binance perpetual futures funding2020-09-11

The index is recomputed once a day, after the daily candle closes at 00:00 UTC, and is therefore dated to the previous UTC day. Recent prices come from CoinGecko with Binance as a fallback; Binance daily klines cover 2017-08-17 onward, and before that we use exchange daily candles in USD — Bitstamp for bitcoin from 18 Aug 2011, Bitfinex (with Coinbase filling one week of exchange downtime in August 2016) for ether from 9 Mar 2016.

The index itself does not start there. It starts 7 Feb 2018 — the first day Fear & Greed exists at all, plus the week its average needs to warm up — because publishing a “four-component index” for years in which one component could not exist would be a different index wearing the same name. The whole series is 3092 days long, from 2018-02-07 to 2026-07-26.

What this index cannot do

We would rather lose your attention here than your trust later.

  • It does not predict anything. A high reading has preceded both drawdowns and further rallies. It describes the present in historical terms; that is all.
  • The components are correlated. Three of the four move with price, and Fear & Greed itself partly reflects price momentum and volatility. This is not four independent opinions — it is one market seen from four angles.
  • Coverage changes over history. Before 2020-09-11 there is no funding component, and before 2019-02-03 no Fear & Greed one: a percentile rank needs 365 observations of its own component, and Fear & Greed had not existed for that long yet. Values from those periods are built from fewer components; each API response carries a coverage field so you can tell. Every day in the series now has both price components — the 200-week average included — which was not true before we extended the daily closes back past 2017.
  • The published history was backfilled. Readings dated before this site existed were computed later from the same data. The percentile windows contain no look-ahead, but those numbers were never shown to anyone in real time.
  • The funding baseline is exchange-dependent. We use Binance USDⓈ-M perpetuals, where the base rate is 0.01% per funding interval — about 10.95% a year before compounding — and the interval is eight hours by default, though Binance uses four on some pairs. Those are exchange settings, not market facts, and a change to them shifts this component.
  • Fear & Greed is third-party. alternative.me publishes the component weights but not the underlying inputs or the calculation, so one quarter of the index rests on a method we cannot reproduce. Its survey component, nominally 15% of that print, is currently paused, and the index is published for bitcoin only — we apply it to ether as well.
  • No on-chain data yet. MVRV, realised price and holder-age metrics are not in version 1.
  • Four years of memory. The percentile window deliberately forgets 2017. If the market enters a regime unlike anything in the last four years, the index will saturate at 0 or 100 and stop being informative.

Forward returns: when we publish them

“After readings like today’s, price was X% higher a year later” is the most requested number on a site like this one, and the easiest to misuse. Our rule, so you can hold us to it:

  • Never for the index itself. We do not publish what happened after each Hodlometer zone, and we do not intend to. The index exists to describe the present; attaching forward outcomes to its zones converts a thermometer into a signal in one step, and the sample cannot support it — two cycles, heavily overlapping windows. We have run those numbers internally, they are not monotonic, and publishing them would invite exactly the reading they cannot bear.
  • Only for third-party inputs at documented extremes — currently the Fear & Greed Index and funding rates, both on their own pages, both at thresholds fixed in advance rather than chosen because the result looked interesting.
  • The full spread is the headline number. Where we do publish, the range comes first and the median second. A median presented alone reads as a forecast; the spread is the actual finding, and it is usually wide enough to contain both outcomes anyone cares about.
  • Sample size and overlap are always stated. Daily windows over a few episodes are not independent observations. We say how many episodes there were, not just how many days.
  • No probabilities. “Higher on 134 of 216 days” is a count of what happened in one sample. It is not a 62% chance of anything, and we do not write it as one.

Price forecasts

The forecast block on the markets page is not part of this index and does not feed it. It publishes ranges from two sources, kept apart and scored apart: a statistical model at four horizons, whose range has a measured hit rate, and an AI forecast at 7 and 30 days only. The AI forecast is generated by a large language model (currently Google Gemini) from the same data shown on the page; the confidence it reports is its own and is not calibrated against any outcome. We stopped asking it for six-month and one-year ranges because the same question on the same numbers came back tens of percentage points apart between runs — one draw from that spread is not a forecast. Every published range is scored against what actually happened, and the scores — including the unflattering ones — sit next to the forecasts. It is an experiment in measuring forecasts, not a signal.

Neither source reads the news. Both read what the news already did to price, leverage and sentiment: volatility over several windows, Fear & Greed, funding and open interest, and — the one input that looks forward rather than back — the options-implied 30-day volatility that Deribit publishes as DVOL, which prices how much movement the market expects, not which way. A range that rejects the model's own arithmetic is not published at all: if it is not ordered low–mid–high, if the longer horizon does not contain the shorter one, or if its width is far off the statistical band, the day is skipped rather than filled.

Free API

The current reading is available as JSON, no key, no rate limit worth mentioning, CORS open, cached for 15 minutes:

GET https://hodlometer.com/api/index

Add ?history=365 for a daily series. The response carries the value, the zone, every component with its raw value and score, the weights, and an attribution block. Use it freely, including commercially — just credit “Hodlometer Index” with a visible link to hodlometer.com.

Versioning

This is version 1 of the index, published July 2026. If the weights, components or window ever change, the change and its date will be recorded on this page — the whole point of a public methodology is that it cannot be quietly rewritten.

Last data update: 27 Jul 2026 19:23 UTC