Latency Percentile Calculator
Paste your timings for p50 through p99.9, a histogram, a breach rate against your target, and an interval on every headline figure.
Everything on this page runs in your browser. Nothing you paste is uploaded, logged, or written into the URL — only the settings are, so a configured tool can still be linked to.
From 42 samples. The 95% interval on this figure runs 168 ms to 620 ms — anything inside that range is the same measurement, not an improvement.
| value | 95% interval | |
|---|---|---|
| Minimum | 118 ms | |
| p50 (median) | 141 ms | 133 ms – 147 ms |
| p75 | 154 ms | |
| p90 | 171 ms | |
| p95 | 180 ms | 168 ms – 620 ms |
| p99 | 534 ms | too few samples |
| p99.9 | 611 ms | too few samples |
| Maximum | 620 ms |
Intervals come from the binomial distribution of the rank each percentile sits at — the honest statement of how much a percentile computed from a finite sample can move.
- Samples
- 42
- Mean
- 160 ms
- Standard deviation
- 85 ms
- Mean ÷ median — how far the average is dragged by the tail
- 1.14
- Slower than your target
- 2 (4.8%)
- Interval on that breach rate
- 1.3% to 15.8%
- Samples needed before a p99 is meaningful
- 100 minimum, 1,000 to defend
- warn42 samplesa 99th percentile needs at least 100 samples before it is anything but the largest value you happen to have — with 42, the p99 above IS essentially the maximum
Expected: 100 samples for a p99 you can quote, 1,000 for one you can defend, and roughly 20 before even a p95 means much
- warn2 of 424.8% of these calls were slower than 250 ms — 95% interval 1.3% to 15.8%
Expected: an error budget you decided in advance. The interval is the part people skip: a breach rate measured on a few hundred samples is not precise enough to tell a 1% budget from a 3% one
Percentiles do not add up, and this is where dashboards lie
You cannot average a p95. The p95 of five minutes of traffic is not the mean of five one-minute p95s, and no amount of weighting fixes it — the information needed to combine them was thrown away when each was computed. The same applies across shards, regions and services. If your monitoring stores pre-aggregated percentiles per interval, the number on the dashboard for the last hour is not a percentile of anything; it is a summary statistic of summary statistics, and it is usually optimistic. Storing histograms rather than percentiles is the fix, and it is why every serious latency system does.
Which clock, and what happened to the failures
For a streaming call there are three different latencies — time to first token, time to last token, and time per token after the first — and they behave completely differently. Time to first token is dominated by queueing and prompt length; total time is dominated by how much was generated. A p95 that mixes them describes nothing. Then there is the exclusion that flatters every latency graph ever drawn: the requests that timed out or errored have no duration, so they are not in the sample, so the slowest experiences your users had are precisely the ones your percentiles cannot see. Count them separately and quote them alongside, or the number above is an answer to a question nobody asked.