OneWebDesk

Latency Percentile Calculator

Compute p50, p90, p95 and p99 from a list of response times.

Paste a list of response-time (latency) measurements and this tool instantly reports the count, minimum, maximum, mean, plus the p50, p90, p95 and p99 percentiles. It works with anything in milliseconds — load-test output, the response-time column from access logs, or raw data exported from an APM. Values can be separated by newlines, commas or spaces.

A service that looks fine on average often reveals real user-facing delay at p95 and p99. Use this latency percentile calculator to expose tail latency and inform your SLO targets and performance-regression checks.

Enter numbers to analyze. You can separate values with newlines, commas or spaces.

How percentiles are computed (nearest-rank)

This tool uses the nearest-rank method. Values are sorted ascending, then for a percentile p it picks rank ceil(p / 100 × N) (where N is the sample size). In code that maps to the zero-based array index ceil(p / 100 × N) - 1. Because no interpolation is used, every result is an actual measured value, matching the definition most monitoring tools use.

For example, with 100 samples the p95 is the 95th value in sorted order (index 94).

Why p95 and p99 matter more than the mean

The mean lets a few fast responses hide the slow ones. If a single request from one user is slow, that user feels it as slow — yet the average can still look healthy. Percentiles expose that tail directly.

  • p50 (median): the latency a typical user experiences.
  • p90 / p95: the slowest 10% / 5% of requests. A common SLO baseline.
  • p99: the slowest 1%. When a page makes several backend calls, p99 delays accumulate and are felt by many users.

The more requests a screen composes, the bigger the impact of tail latency. A page built from 10 calls is far more likely to hit at least one call's p99, so the real rate of "slow screens" is much higher than any single call's p99.

Input format and handling

  • Values are assumed to be in milliseconds (ms). Separate them with newlines, commas or spaces.
  • Tokens that do not parse as numbers (headers, unit characters, etc.) are ignored automatically.
  • Decimals and non-negative values are supported. All computation happens in your browser.

To gather individual measurements first, use the response time measurement tool to time a specific URL, then collect those values and feed them into this percentile calculator to analyze tail latency.

Frequently asked questions

How are the percentiles calculated?
Using the nearest-rank method: sort the values, then pick the ceil(p/100 × N)-th value (the zero-based index ceil(p/100 × N) - 1). No interpolation is used, so every result is an actual measured value.
Why look at p95/p99 instead of the average?
The mean hides a handful of slow requests. p95 and p99 show the slowest 5% and 1% directly, which better reflects real user-facing latency and SLO breaches.
What unit are the inputs?
All values are assumed to be milliseconds (ms). If your data is in seconds, multiply by 1000 first. Newline, comma and space separators are all supported.
Can the input contain non-numeric values?
Yes. Any token that does not parse as a number is ignored, so log lines or headers mixed in are simply skipped while the numbers are used.
Is my data sent to a server?
No. All parsing and computation happen entirely in your browser, and no values are transmitted anywhere.

Related tools

HTTP / API