← ALL NOTES
N-042025.096 min READ
#statistics#observability
Stop reporting averages
Latency is a distribution. Averages lie. A short argument for percentiles, histograms, and treating every metric as a random variable.
Latency is not a number. It's a distribution, and the average is the least interesting thing about it. Two services with an identical mean can deliver wildly different experiences — one smooth, one full of stalls.
The average hides the tail
Most user-facing pain lives in the tail: the 1% of requests that take 10× longer. Average them with the happy path and the signal vanishes. Worse, averages aren't composable — the average of a fan-out is dominated by its slowest branch, not its mean branch.
- Report percentiles: p50, p95, p99, and p99.9 for anything user-facing.
- Keep histograms, not just summaries — percentiles don't aggregate across hosts.
- Treat every metric as a random variable; describe its shape, not just its center.
If you only remember one thing: the user doesn't experience your average. They experience their request.