P50/P95/P99
pee-fifty, pee-ninety-five, pee-ninety-nine
Percentile metrics showing the latency experienced by 50%, 95%, or 99% of requests.
P50, P95, and P99 are percentile measurements of latency. P50 (median) means 50% of requests are faster than this value. P95 means 95% are faster. P99 means 99% are faster. These percentiles matter more than averages because averages hide the worst experiences.
An average latency of 100ms sounds great. But if P99 is 5 seconds, one in every hundred requests takes 50x longer than average. Those are the requests users remember and complain about. A user who experiences a 5-second load time does not care that the average is 100ms.
P50 tells you the typical experience. P95 tells you the experience of unlucky users. P99 tells you the experience of the unluckiest users. High-performing teams optimize for P95 and P99, not averages. These percentiles are often codified in SLOs and tracked via monitoring. An improvement to P99 from 5 seconds to 500ms transforms the worst user experience.
Examples
A team sets latency targets.
The SLO specifies: P50 under 100ms, P95 under 300ms, P99 under 1 second. The current measurements: P50 at 80ms (good), P95 at 250ms (good), P99 at 2.5 seconds (not meeting target). The team focuses on P99 by investigating the slowest requests.
A dashboard displays percentile metrics.
The monitoring dashboard shows three lines for each service: P50 (green), P95 (yellow), P99 (red). When the P99 line spikes, the team investigates immediately, even if P50 and P95 look normal. A P99 spike often signals a database issue or a slow dependency.
A company over-focuses on averages.
The team celebrates that average API latency is 120ms. But 1% of requests (50,000 per day) take over 8 seconds. These slow requests cause timeouts in the mobile app, leading to 200 daily support tickets. Switching focus from average to P99 identifies and fixes the issue.
In practice
Read more on the blog
Frequently asked questions
Why is P99 more important than average latency?
Averages hide outliers. If 99% of requests take 50ms and 1% take 10 seconds, the average is about 150ms, which looks fine. But that 1% represents real users having terrible experiences. P99 reveals what the average hides.
What percentile should teams optimize for?
Most teams should target P95 for standard services and P99 for critical user-facing services. P999 (99.9th percentile) is relevant for payment processing and other high-stakes operations. Diminishing returns kick in past P99 for most applications.
Related terms
The time delay between a request being sent and a response being received.
The number of operations a system can process in a given time period.
Service level objective: an internal reliability target for a service, like 99.9% availability or p99 latency under 200ms.
Service level indicator: a specific metric used to measure the reliability of a service, like latency or error rate.

Want the complete playbook?
Picks and Shovels is the definitive guide to developer marketing. Amazon #1 bestseller with practical strategies from 30 years of marketing to developers.