# What do p50, p80, p90, p95, and p99 response times mean in a load test?

> Percentile response times like p50, p80, p90, p95, and p99 tell you what most users actually experience in a load test, unlike averages which hide outliers.

Source: https://loadster.com/faqs/response-time-percentiles/

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](https://loadster.com/manual/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](https://loadster.com/guides/load-testing-best-practices/) for some advice about effectively setting
load test pass and fail criteria.

