Latency Percentile Calculator
Paste a list of response times — or any numbers — and get the percentiles that describe them: median, p90, p95, p99 and p99.9, next to the mean that hides the tail.
Runs entirely in your browser — nothing you enter here is sent to a server.
Why percentiles, not averages
Response times are not evenly spread. Most requests are fast, and a small number are very slow — a cache miss, a lock, a garbage-collection pause. An average blends them into a figure that describes nobody's experience: if 99 requests take 100 ms and one takes 10 seconds, the mean is 199 ms, twice what almost everyone saw and fifty times better than what the unlucky user got.
A percentile answers a clearer question. p95 = 380 ms means 95% of requests finished within 380 ms and 5% took longer. The median (p50) is the typical experience; p95 and p99 describe the slow tail, which is where users complain and where problems first appear.
p50 — the typical request
Half faster, half slower. Good for spotting a general slowdown; blind to tail problems.
p95 — the common target
What one request in twenty exceeds. The usual choice for SLOs and alerts: sensitive to trouble, stable enough not to flap.
p99 — the tail
One in a hundred. At 100 requests per second, that is one user every second — and a page that makes 50 calls hits it often.
p99.9 and max
Useful for finding timeouts and outliers, but noisy. Needs thousands of samples before it means anything.
Two things that go wrong with percentiles
You cannot average percentiles. The p95 of ten servers is not the mean of their ten p95 values, and the p95 for an hour is not the mean of sixty one-minute p95s. To combine them you need the raw values or histograms that can be merged.
The method matters at small sizes. "Nearest rank" always returns one of your actual values; "linear interpolation" (the default in spreadsheets, NumPy and most tools) blends the two neighbours. With a thousand samples they agree; with thirty they can differ noticeably.
Frequently asked questions
What does p95 latency mean?
The value below which 95% of requests complete. If p95 is 400 ms, 95 of every 100 requests were served in 400 ms or less, and 5 took longer.
Should I monitor p95 or p99?
p95 for alerting and SLOs, because it is stable; p99 to watch the tail on high-traffic services. Low-traffic services rarely have enough data for a meaningful p99.
Why is my average latency so much higher than the median?
A small number of very slow requests are skewing it. That gap is the sign of a long tail, and the reason to use percentiles.
How many samples do I need for a reliable p99?
At least a few hundred, and preferably thousands. With 100 samples, p99 is decided by a single request.