What do p50, p80, p90, p95, and p99 response times mean in a load test?
The “p” stands for percentile, and Loadster reports use the p50 shorthand to denote percentile values.
A percentile response time tells you how quickly a certain percentage of requests completed in a sample set. If your p95 response time is 2 seconds, it means 95% of requests finished in 2 seconds or less, while the slowest 5% took longer. The p50 is the median response time, and the p99 shows the threshold for all but the slowest 1% of requests.
Why Averages Mislead in Load Testing
A simple average, or mean, blends every fast and slow request into a single number, so a handful of slow responses mixed together with lots of faster responsees can be easy to overlook. For example, a test might report an average response time of 800 milliseconds while the p95 is 4 seconds. That means 1 in 20 requests took more than 4 seconds, even though the average looked much better.
These slower responses often happen on your heaviest pages or during the busiest parts of a test, so they’re worth investigating. A site that performs well on average can still feel slow or unreliable to a meaningful percentage of your users.
What Each Percentile Tells You
- p50 (median) represents the middle of the response time distribution: half of the requests were faster and half were slower.
- p80 and p90 show the experience of the broad majority of users without giving too much weight to rare outliers.
- p95 is often used for acceptance criteria and SLOs because it can reveal meaningful degradation without being overly sensitive to isolated events.
- p99 focuses on the slowest 1% of requests, where intermittent problems such as garbage collection pauses or connection pool exhaustion might appear first.
Percentile Response Times in Loadster
Loadster’s test reports include a Response Time Percentiles graph that plots p50, p80, p90, p95, and p99 throughout the test. When the series lines stay close together, it means the response times are relatively consistent. When they spread apart, the slowest responses are taking much longer than the median response, and it’s usually worth investigating the reason for the outliers.
The p80 and p90 statistics at the top of a test report are calculated at the bot group level and then averaged across groups. This is an approximation rather than a true percentile across every individual request, but it’s much more practical to compute in a distributed test.
Percentiles are most useful when you read them alongside the error rate and throughput graphs in the same report. If percentile response times rise while throughput levels off and errors increase, your system is likely running out of capacity. See Analyzing Test Results for more about how to interpret Loadster test reports.
Which Percentile Should You Use for Acceptance Criteria?
For many load tests, p90 or p95 is a good place to set pass/fail targets. The average can be too forgiving, while p99 can be noisy unless the test produces enough samples. A criterion such as “p95 under 2 seconds with an error rate below 1%” gives your team a clear target before the test runs.
It’s important to pair a percentile target with an error-rate target because failed requests often return quickly and can make the response time results look better than they really are, having a deceptive impact on response times.
Check out our load testing best practices guide for some advice about effectively setting load test pass and fail criteria.