Math, Applied
The Average User Isn't Average: What Percentiles and Quartiles Tell You in Real Data
The idea
Means and medians compress a full dataset into one number. Spread tells you how wide the values are. Percentiles go further: they tell you where a specific slice of the distribution sits.
The 90th percentile (P90) is the value where about 90% of observations fall at or below it. Quartiles mark the same idea at 25%, 50%, and 75%: Q1, Q2 (the median), and Q3.
A percentile answers: What do most people or events actually experience, not just what is typical on average?
The math
Percentiles mark positions in a sorted list. They answer where a value sits relative to the rest of the distribution.
Percentile
P50 is the median: half the data is at or below it. P90 is the value where about 90% of requests are faster and 10% are slower. If P90 latency is 145 ms, the slowest tenth of users see worse than that.
Quartiles
Quartiles split sorted data into four equal-sized chunks. Q1 to Q3 holds the middle 50%, which is often where everyday performance lives.
Interquartile range
The width of the middle half. A small IQR means most typical values cluster together. A large IQR means even the middle 50% is spread out. IQR is less sensitive to extreme tails than the full range.
The tail moves high percentiles more than the center: a few slow requests can push P99 up while P50 barely shifts. Extreme percentiles need large n to be stable; P99 on a hundred points is a rough guess compared to P99 on millions of events. Pick the percentile that matches the decision: P50 for typical experience, P90 or P99 for SLAs and pain in the slow tail. IQR describes the middle 50% and stays robust when outliers stretch the full range.
Why one summary is not enough
The mean is sensitive to outliers. The median shows the middle of the sorted list. Percentiles let you name the experience of the slowest 10% or the fastest half without guessing.
The interquartile range (IQR), Q3 minus Q1, describes where the middle 50% of values live. It is less sensitive to extreme tails than the full range, and pairs well with quartiles when you want a stable view of everyday variation.
In dashboards, P50, P90, and P99 often show up together. P50 is typical. P90 and P99 describe the slow or expensive tail that drives complaints, churn, and SLA breaches.
A simple application: API latency
Suppose your team reports average API latency of 72 ms against an 80 ms target. The headline is green.
API latency: average green, tail red
Drag the slow tail (P90 driver). The mean can stay under target while 10% of users suffer.
Mean 63 ms vs P90 145 ms (target 80 ms)
Latency snapshot
Mean: 63 ms · P50: 60 ms · P90: 145 ms
Gap to target
Mean gap: +17 ms · P90 gap: -65 ms
Mean
63 ms
P90
145 ms
Target
80 ms
Optimize (move here)
- • Set SLOs on P90/P95 for customer-facing APIs
- • Capacity plan for tail, not average
Hold (do not over-react)
- • Closing the incident because mean is green
Escalate if
- • P90 above target for two release cycles
Headline average looks fine. Support tickets come from the slow slice. Alert on P90, not mean.
Then you check P90: 145 ms. That means about 10% of requests are slower than 145 ms. For those users, the service feels nothing like the average. Product and support tickets often come from that slice, not from the mean.
Mean answers: What is the arithmetic center?
P90 answers: What do the slower 10% of cases look like?
Those are different operational questions. Capacity planning, alerting, and customer promises usually need percentiles, not just averages.
The same logic applies to support resolution time, checkout duration, and payroll. Quartiles split the distribution into four parts so you can compare teams or time periods without letting one outlier dominate the story.
Percentiles are not advanced statistics reserved for specialists. They are a practical way to describe experience at different points in the distribution.
When you report mean or median plus P90 or P99, you give readers both center and tail. That combination matches how people feel systems perform: mostly fine, sometimes terrible.
Good analysis also names the unit and the sample. A P99 on twelve data points means something different from a P99 on twelve million. Small samples make extreme percentiles unstable. Context still matters.
There is no single number that captures a full distribution. Means and medians are useful. Spread adds volatility. Percentiles and quartiles add position: who is affected and how badly.
When you lead with the percentile that matches the decision, you stop optimizing for the average case alone. You start designing for the experience people actually have, including the tail.