Problem
The viewer needs to know the shape of the last hour as well as the value right now, and there is room for a number but not for a chart.
Solution
Tufte’s definition is the specification: “a small intense, simple, word-sized graphic with typographic resolution.” Data-intense, design-simple. The data-ink ratio is 1.0, which means no frame, no tick marks, no axis, no legend. Everything that isn’t data comes out.
Stripping the axis is what makes a sparkline fit beside a number. It is also the entire problem, because a line with no axis has no scale, and the reader will supply one anyway.
This bites hardest in a column of them, which is where sparklines are most useful and most misleading. Scale each row to its own min and max and a metric that wobbled between 99.1% and 99.2% draws the same dramatic peaks as one that collapsed from 90% to 10%. Scale them all together and every small series flatlines into a dash. Tufte covers this directly, citing Bissantz: min-to-max scaling within each series invites false comparison, zero-to-max buries the detail. His answer is to standardize, showing variance against a common baseline, which is the only version that survives being read as a column.
Aspect ratio is the other lever. Tufte argues for shapes that put the interesting slopes near 45 degrees, because a sparkline squashed flat hides the movement and one stretched tall invents it.
Use when
A number is already on screen and the viewer’s next question is “has it been doing that long”. Also in tables, where one column of shapes replaces a chart per row.
Don’t use when
The exact values matter, or the viewer needs to read a specific point. A sparkline answers “what shape” and refuses to answer “how much”, and adding labels to fix that turns it back into a small chart with all the costs of one.
Trade-offs
No axis means no scale, and no scale means the reader’s interpretation depends entirely on a normalization decision nobody surfaced. Sparklines are also small enough to become decoration; a dashboard where every tile grew a background wiggle has added ink and no information. They rarely survive being resized, and they are nearly invisible to a screen reader unless the underlying numbers are also available. Grafana is candid about the size problem: the stat panel hides the sparkline automatically when the panel gets too small, which is the right behavior and also means the same dashboard tells different stories at different widths.
Checklist
- Is each sparkline scaled to itself, to the column, or to a fixed baseline? Can the viewer tell?
- If they’re in a column, would a reader comparing two rows reach a true conclusion?
- What time window does the line cover, and is it the same window as the number beside it?
- Are the endpoints marked, so the viewer knows which end is now?
- Is the current value’s position within the recent range visible, or just the shape?
- Does the aspect ratio put the interesting slopes near 45 degrees, or has it flattened them?
- What happens to gaps in the data?
- Does the sparkline survive the smallest size this container gets, and what shows if it doesn’t?
- Is the same information reachable as text for a screen reader?
- Is this sparkline doing work, or is it a texture the tile grew?
Compare
Grafana renders the sparkline as a background wash behind the stat value rather than beside it, and hides it when the panel shrinks, so it reads as atmosphere for the number instead of a chart in its own right. Sentry puts one on every issue row in the list, which is the pattern at its most useful: the shape tells you whether an error is new, constant, or spiking, without opening anything. Netdata effectively inverts the pattern by making the full charts small and numerous enough that it never needs a miniature. Honeycomb mostly declines it, on the same argument it makes about percentiles, that a single line hides the distribution underneath it.
Related
KPI tile is where a sparkline usually lives, and delta indicator is the other way to give that tile context. Time series is this pattern at full size with the axes put back. Data table is the other host, where a sparkline column replaces a chart per row. Small multiples is what happens when you keep the axes but repeat the chart, and it is the honest alternative when the comparison between rows actually matters.