Charts · Heatmaps

Reading a Stock Heatmap

A heatmap is a size chart that has been coloured. That makes it good for finding a large name quickly, and useless for the question people most often ask of it: how much of the market moved.

Two variables, one picture

Every tile on a market heatmap carries two encodings. Its area is size, market capitalisation, or index weight. Its colour is change, usually the session’s percentage move, on a scale from one hue through neutral to another.

Both are legitimate. The difficulty is that area dominates perception: the eye reads the map as a picture of sizes long before it reads the colours, so a session in which the largest companies fell looks like a session in which the market fell: whether or not it was.

How much of the map each company occupies on an identical moveA bar chart of six companies of very different market value, showing the share of a value-weighted heatmap each occupies. All six moved by exactly 3 per cent, so all six would be the same colour, and their tiles range from a large share of the map to a fraction of a per cent.% of the map · all six moved 3 %Index heavyweight83.5 % of the mapAll six moved by exactly 3 per centLarge industrial12.5 % of the mapMid-cap miner2.9 % of the mapSmall-cap retailer0.8 % of the mapMicro-cap software0.2 % of the mapSpeculative biotech0.0 % of the mapSame move, same colour, a tile you cannot seeHow much of the map each company occupies on an identical moveA bar chart of six companies of very different market value, showing the share of a value-weighted heatmap each occupies. All six moved by exactly 3 per cent, so all six would be the same colour, and their tiles range from a large share of the map to a fraction of a per cent.% of the map · all six moved 3 %Index heavyweight83.5 % of the mapAll six moved by exactly 3 per centLarge industrial12.5 % of the mapMid-cap miner2.9 % of the mapSmall-cap retailer0.8 % of the mapMicro-cap software0.2 % of the mapSpeculative biotech0.0 % of the mapSame move, same colour, a tile you cannot see
Fig. 1: arithmetic on six stated market valuesSix companies, one identical percentage move, six wildly different tiles. The largest takes 83.5 per cent of the map and the smallest 0.04 per cent, a ratio of about 2000 to one, and every tile is exactly the same colour, because the colour encodes the move and the move was the same. That is the map working correctly. It is also why an impression taken from the colours is really an impression of where the value sits, and why "the map is mostly red" and "most companies fell" are different claims that a heatmap cannot distinguish.

What the eye gets wrong, and it is not a matter of taste

Area is read inaccurately. People systematically underestimate ratios between areas, a tile four times another’s size is not perceived as four times. That is a documented perceptual effect, and it means a heatmap cannot support a quantitative comparison between two tiles. The same numbers in a bar chart are read accurately, because length is judged well and area is not.

Red and green are the wrong pair. Around one man in twelve cannot reliably separate them, which makes the most common palette in financial software also its most common accessibility failure. A diverging scale needs two hues that stay distinct under colour-vision deficiency, and it needs a neutral midpoint: a third hue at zero invents a category boundary where there is only a sign change.

Colour alone is not an encoding. If the tile carries no number, the reader cannot recover the move from the shade, and small tiles carry no number at all because there is no room. That is a legitimate trade-off for a glance-level view, and it is the reason a heatmap should always sit beside a table rather than replace one.

The scale decides more than the palette

Choosing the colour range
ScaleWhat it showsWhat it hides
Fixed, ±2 %Ordinary sessions in full colour, so small differences are visible.Everything above the cap looks identical, a violent session and a mild one saturate the same.
Fixed, ±10 %Genuinely extreme sessions stand out.Ordinary days are washed out, and a reader concludes nothing happened when something did.
Percentile of the day’s movesRelative position within the session, which is always readable.Absolute size. A quiet day and a crash produce the same-looking map, which is the opposite failure.
In units of each instrument’s own volatilityWhether the move was unusual for that instrument, the most informative option.Nothing important, and it is the least often implemented. Average true range is the natural unit.

The last row is worth pressing, because it is the same principle that runs through this whole reference: a quantity expressed relative to the instrument itself travels, and a fixed percentage borrowed from elsewhere does not. A two per cent move is a shrug in one instrument and an event in another, and only a volatility-scaled colour can say which.

What the map cannot answer

Any counting question. How many issues rose, how broad the move was, whether participation was narrowing, a heatmap weights by size on purpose, so it is structurally incapable of counting, and no palette fixes that.

This is the same gap that the whole breadth section exists to fill, and the heatmap version of it is unusually stark: a map can be overwhelmingly one colour on a session when the count of advancing and declining issues was close to even, because a handful of enormous tiles decided the impression. Both facts are true, they are about different things, and the map presents only one of them while looking like it presents both.

Colouring by volume instead

One variant deserves more use than it gets: colour the tiles by relative volume rather than by price change. That answers where the trading concentrated, which is a genuinely different question from where the price went, and it is often the more interesting one, a session in which a few large names traded at three times their normal volume is a describable event whatever the prices did.

It needs a different palette, and the reason is worth stating because it is the commonest dataviz error after red-and-green. Volume has no sign, so a diverging scale is wrong: it would imply a meaningful midpoint where none exists. A sequential scale, one hue from light to dark, is the correct encoding for a quantity that runs from none to a lot, and the ratio it should encode is volume against that instrument’s own baseline rather than raw share counts, which are not comparable between instruments at all.

Frequently asked questions

What does a stock heatmap show?

Two variables at once, and the confusion between them is the whole subject. Each tile’s area encodes size — usually market capitalisation, sometimes index weight — and its colour encodes change, usually the day’s percentage move. So the map is a size chart that has been coloured, and the impression it gives is dominated by the sizes rather than by the moves.

Why does that matter?

Because the same news produces a completely different visual impression depending on the size of the company it happened to. The figure on this page computes six companies with an identical percentage move: the largest occupies a large share of the map and the smallest is a tile you can barely see, in the same colour. Nothing about the market is being misreported, but "the map is mostly red" is a statement about where the value sits, not about how many companies fell.

So what does a mostly-red map mean?

That the large companies fell, which is a statement about the value-weighted market and therefore about the index. It does not mean most companies fell, that is a breadth question, and no area-weighted map can answer it. A map can be overwhelmingly red on a session when more issues rose than fell, and the two statements are both true because they are about different things.

What does the eye read badly?

Area, and it is a measurable effect rather than a matter of taste: people systematically underestimate ratios between areas, so a tile four times the size of another is not perceived as four times. That makes any quantitative reading of the sizes unreliable, which is why a heatmap is a good way to find a name and a poor way to compare two of them. A bar chart of the same numbers is read accurately.

What about the colours?

A change measure is signed, so it needs a diverging scale, two hues either side of a neutral midpoint, and the midpoint must be neutral rather than a third hue, or the eye reads a category boundary where there is only zero. The other requirement is that the two hues stay distinguishable for colourblind readers, which red and green do not: about one in twelve men cannot separate them reliably, and it is the single most common accessibility failure in financial software.

How should the colour be scaled?

Against a stated range, and the choice does more work than the palette. A scale capped at plus or minus two per cent makes an ordinary session look extreme; one capped at ten per cent makes a genuinely violent session look mild. Better still is a scale in units of each instrument’s own volatility, a two per cent move is unremarkable in one instrument and enormous in another, which a fixed percentage scale cannot express.

Is the colour ever volume rather than price?

Occasionally, and it is more informative than it sounds, a map coloured by relative volume shows where the trading concentrated, which is a genuinely different question from where the price went. It needs a sequential scale rather than a diverging one, because volume has no sign: one hue from light to dark, since a diverging palette would imply a midpoint that does not exist.

What is a heatmap good for?

Finding things. It is an efficient way to see which large names moved and to spot a sector where everything is one colour, and both of those are legitimate uses of a glance. What it cannot support is any counting statement (how many companies rose, how broad a move was), because the map deliberately weights by size, and counting is what the breadth measures are for.