Skip to main content

Market heatmap

The heatmap is the whole measured market on one screen: every asset is a rectangle sized by market capitalisation and coloured by how much its price moved over the period you choose. It answers two questions at once — what moved? and did the things that moved matter?

Every figure here describes what price has already done. Nothing on this page is a forecast, and nothing on it is a recommendation to buy or sell anything.

The universe​

The board covers the 100 largest assets by market cap with an active spot market on the exchange our price history comes from, excluding stablecoins and tokenised funds. When an asset leaves that exchange or drops out of the top 100, the list refills from rank 101 downward, so it always holds a hundred.

Stablecoins are excluded because a heatmap of things that do not move is not a heatmap. Tokenised funds are excluded because their price is a fund's net asset value rather than a market price.

The Top 20 / Top 50 / Top 100 control narrows the map. It does not narrow the sector table underneath, which is always measured over the whole universe — a sector's cap-weighted return does not change because you are looking at twenty tiles instead of a hundred.

Size​

A tile's area is its market capitalisation as a share of the assets on the board. Bitcoin is roughly half the board because it is roughly half the measured market's capitalisation.

The layout is a squarified treemap: tiles are packed largest-first into rows chosen to keep each rectangle as close to square as possible, so a small tile stays clickable and a large one stays readable. The arrangement carries no meaning beyond size — position is not rank, and neighbours are not related.

Colour​

Colour is the price change over the selected period, on a fixed five-step ladder each side of zero:

MoveShade
less than ±0.5%flat (no tint)
±0.5% to ±2%step 1
±2% to ±5%step 2
±5% to ±10%step 3
±10% or morestep 4

Steps rather than a continuous gradient, for two reasons. A reader can name the shade they are looking at and compare two tiles without a colour picker; and each step is chosen to pass contrast in both light and dark themes, which a smooth ramp cannot guarantee at its pale end.

An asset with no change for the selected period is drawn flat and is not drawn as zero — "we could not measure this" and "this did not move" are different statements, and the tile says so on hover.

The six periods, and the seam between them​

This is the one thing on the page worth reading carefully.

The six periods do not all come from the same place, and they do not all measure the same kind of window:

PeriodSourceWindow
1h, 24h, 7dthe market-data providerrolling — ending right now
30d, 90d, YTDour own calculation, from daily candlescomplete daily closes — ending at the last UTC midnight

Two consequences a reader will notice:

  • On a day the market falls sharply, the 24h tiles turn red before the 30d tiles contain any of that move — the 30d figure's newest input is yesterday's close.
  • Our 30d figure will not exactly equal a 30d figure quoted elsewhere, even from identical prices, because the windows end at different moments.

Neither number is wrong on its own terms. Each period states its own basis in the page's methodology line, and the period control names the window it is showing.

YTD is a calendar statement, not a 365-day window: it is measured from the last close of 31 December. On 2 January it honestly reports two days of movement.

The sector table​

Underneath the map, the same market grouped into the eleven sectors we curate: Layer 1, Layer 2, DeFi, CeFi, AI, Gaming, Meme, Infrastructure, DePIN, RWA and Privacy. Sector membership is ours — assigned by an operator, not taken from a third party — because no public taxonomy matches these eleven or applies them consistently.

Each row is:

  • Market cap — the sum of every asset filed to that sector, over all of them, because a market cap exists whether or not we can price an asset's candles.
  • Assets — how many are filed to it.
  • Change — the cap-weighted mean change over the selected period, so a sector's largest asset moves the row most. Measured over the assets that have a figure for that period, which is the whole sector at 24h and only the exchange-quoted part at 90d — so each period carries its own coverage.

A sector whose measurable assets fall below half its membership shows no change at all rather than a weak one. A percentage over three of eleven assets reads exactly like one over eleven, and nothing on the page could tell them apart.

The table sorts by change, descending. A sector with no measurable change sorts last rather than being read as flat.

The table describes only the assets that carry a sector. When curation lags a change in the universe, the caption says so — "across the 63 of 100 assets classified so far" — rather than claiming the whole board.

When something is missing​

  • A tile with no colour and a dash on hover — the price feed has that asset's size but our calculation had no figure for this period.
  • "— of 100" — the board says how many of the universe it could measure.
  • A stale banner — one of the two feeds behind the page is behind. The board still shows, dated, rather than going blank.