Quick answer: A percentile metric reports the value at a given point in a distribution: p95 is the value that 95% of measurements are below (and 5% are above). For performance, p95 or p99 frame time captures the slow frames most players actually notice, which an average smooths away. Percentiles measure the bad-case experience, which is often what matters most.
Averages lie about performance. A game can have a great average frame time and still feel terrible, because the average hides the occasional bad frames that players actually notice as stutters and hitches. Percentile metrics like p95 and p99 expose what the average conceals: the worst-case experience. Understanding percentiles is essential for measuring performance honestly, because the moments that ruin the player's experience live in the tail of the distribution, exactly where percentiles look and averages do not.
What a Percentile Is
A percentile is a value below which a given percentage of measurements fall. The p95 (95th percentile) of frame time is the frame time that 95% of frames come in under, and 5% exceed, in other words, the threshold separating the typical frames from the worst 5%. p99 is the same for the worst 1%. A percentile picks a point in the distribution of your measurements and reports the value there, letting you ask 'how bad is it for the worst X%?'
This is fundamentally different from an average, which collapses the whole distribution into one number that can be dominated by the common case and blind to the extremes. p95 and p99 deliberately look at the tail, the slow frames, the bad cases, because that is often where the meaningful experience lives. They answer 'what is the bad-case like?' rather than 'what is the typical case?'
Why Percentiles Beat Averages for Performance
Performance is felt in the bad moments, not the average. A game running at a smooth average frame time can still stutter noticeably if 5% of its frames are slow, those slow frames are visible hitches that players feel, even though the average looks fine. The average literally averages them away. p95 and p99 frame time surface exactly these problem frames: a good average but a bad p99 means the game is mostly smooth but hitches often enough to feel bad.
This is why percentiles are the honest way to measure performance. Players do not experience averages; they experience the actual sequence of frames, including the bad ones, and a single bad frame is more noticeable than many good ones. Measuring p95/p99 keeps you honest about the experience players actually have, the tail latency, the worst-case stutters, that determine whether the game feels smooth, rather than letting a flattering average hide the hitches.
Percentiles in Practice for Games
Using percentiles means tracking not just average frame time but the tail, p95 and p99, so you see the bad-frame experience. The same logic applies to other performance and latency measurements (load times, network latency, server response): the percentile at the tail tells you the worst-case players endure, which is usually what generates complaints, while the average reassures you falsely. Watching percentiles is how you catch performance problems that averages mask.
Bugnet captures performance and game-health data that lets you look beyond averages to the experience players actually have, surfacing the bad-case performance that drives complaints. A game with acceptable averages but a poor tail, frequent slow frames, occasional long hangs, has a real problem that only percentile-aware measurement reveals, and those tail problems often correlate with specific hardware or scenarios that the data can localize. Measuring performance in percentiles rather than averages, and tying poor tail performance to the conditions causing it, is how you find and fix the stutters and hitches that make a game feel bad even when its average numbers look fine.
An average hides the stutters; p95 and p99 expose them. Players feel the bad frames, not the average, so measure the tail where the pain lives.