<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/what-is-p50-p80-or-p97-latency--2a0cwb42a" -->

---
title: What is P50 , P80 or P97 latency? | daily.dev
description: Explains why percentile-based latency metrics (P50, P80, P95, P99) are more informative than average response times. Using a simple 10-request API example, it...
canonical: https://daily.dev/posts/what-is-p50-p80-or-p97-latency--2a0cwb42a
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: What is P50 , P80 or P97 latency? | daily.dev
og:description: Explains why percentile-based latency metrics (P50, P80, P95, P99) are more informative than average response times. Using a simple 10-request API example, it...
og:url: https://daily.dev/posts/what-is-p50-p80-or-p97-latency--2a0cwb42a
og:image: https://api.daily.dev/og/posts/2A0CWB42A.png
og:image:alt: What is P50 , P80 or P97 latency?
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# What is P50 , P80 or P97 latency?

**[Dhvani](https://daily.dev/sources/xwojiomgo9tvq6tcqudqz)** · [@knight_03](https://daily.dev/knight_03) · 2 min read · 7 upvotes · 3 comments

## Summary

Explains why percentile-based latency metrics (P50, P80, P95, P99) are more informative than average response times. Using a simple 10-request API example, it demonstrates how averages can be skewed by outliers, while percentiles reveal what most users actually experience. P80 means 80% of requests completed at or below that threshold, giving teams a clearer picture of real-world performance.

## Content

🍂 Have you ever wondered why companies talk about P50, P95 or P99 latency instead of average response time?

Because averages can lie.Let's understand with a simple example.

Suppose your API receives 10 requests.The response times look like this:

"10ms, 10ms, 10ms, 10ms, 10ms, 10ms, 10ms, 10ms, 200ms, 200ms"

8 requests were completed in just 10ms.Only 2 requests were slow and took 200ms.The average will be:

(8 × 10 + 2 × 200) / 10 = 48ms

But does that really tell the whole story? Not really right ? Because 80% of your users experienced a response time of only 10ms. The average is being heavily influenced by those 2 slow requests.

This is exactly why percentiles exist. If we sort all requests from fastest to slowest, Then:

✅ P80 = 10ms

- 80% of requests completed in 10ms or less and 20% of requests are taking more then 10ms.

✅ P50 = 15ms

- 50% of requests completed in 15ms or less and 50% of requests are taking more then 15ms.

Now we have a much clearer picture. Now, we know that:

Average latency tells us: What happened overall? and Percentile latency tells us: What did most users actually experience?

What latency metric does your team track the most?

## Community discussion

Top comments from developers on daily.dev.

**@cjbaccus** · 1 upvotes

> Insightful for those of us that dont 'live' in the metrics and monitoring portion of our industry.

**@pdfopsdev** · 1 upvotes

> One thing worth adding: percentiles don't aggregate. You can't average P99 across ten servers or across five one-minute windows and get the real P99 — that math is meaningless, yet it's exactly what a lot of dashboards do when they roll up. For accurate percentiles over a fleet or a time range you have to merge histograms (t-digest, HDR), not average the per-source percentiles. And with request fan-out, a page making 20 calls hits its slow tail far more often than any single call's P99 implies.

## Similar posts on daily.dev

- [p50 vs p99 Latency: Why Median Benchmarks Mislead AI Agent Workloads](https://daily.dev/posts/p50-vs-p99-latency-why-median-benchmarks-mislead-ai-agent-workloads-mn6r5fvtj) · DigitalOcean Community · 1 upvotes · 0 comments
- [Performance engineering from kernel analysis to AI: Adrian Cockcroft’s take](https://daily.dev/posts/performance-engineering-from-kernel-analysis-to-ai-adrian-cockcroft-s-take-acpyhmtc4) · The New Stack · 1 upvotes · 0 comments
- [The mean means nothing](https://daily.dev/posts/the-mean-means-nothing-b5bq8fpay) · Farid Zakaria’s Blog · 0 upvotes · 0 comments
- [EP186: Latency vs. Throughput](https://daily.dev/posts/ep186-latency-vs-throughput-4gkjqtoy1) · ByteByteGo · 10 upvotes · 0 comments

---

Tags: [#observability](https://daily.dev/tags/observability)

[View this post on daily.dev](https://daily.dev/posts/what-is-p50-p80-or-p97-latency--2a0cwb42a)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"DiscussionForumPosting","mainEntityOfPage":"https://daily.dev/posts/what-is-p50-p80-or-p97-latency--2a0cwb42a","headline":"What is P50 , P80 or P97 latency?","text":"Explains why percentile-based latency metrics (P50, P80, P95, P99) are more informative than average response times. Using a simple 10-request API example, it demonstrates how averages can be skewed by outliers, while percentiles reveal what most users actually experience. P80 means 80% of requests completed at or below that threshold, giving teams a clearer picture of real-world performance.","url":"https://daily.dev/posts/what-is-p50-p80-or-p97-latency--2a0cwb42a","datePublished":"2026-07-13T04:58:17.614Z","dateModified":"2026-09-13T20:48:45.832Z","author":{"@type":"Person","name":"Dhvani","url":"https://daily.dev/knight_03","image":"https://media.daily.dev/image/upload/s--h8XDcpiq--/f_auto/v1740025441/avatars/avatar_xWOJioMgO9tVQ6TcQUdqZ","description":"A person who likes to think on paper rather then just in air.","worksFor":{"@type":"Organization","name":"WebCodeGenie","logo":"https://media.daily.dev/image/upload/s--m_yCxn26--/f_auto/v1749211572/companies/webcodegenie"},"interactionStatistic":{"@type":"InteractionCounter","interactionType":{"@type":"EndorseAction"},"userInteractionCount":4430}},"image":"https://media.daily.dev/image/upload/s--AD5U-CvJ--/f_auto/v1783918697/posts/2A0CWB42A?_a=BAMAMicg0","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":7},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":3}],"comment":[{"@type":"Comment","text":"Insightful for those of us that dont ‘live’ in the metrics and monitoring portion of our industry.","datePublished":"2026-07-19T11:30:55.407Z","url":"https://daily.dev/posts/2A0CWB42A#c-nljKxIyMa","author":{"@type":"Person","name":"Carl Baccus","url":"https://daily.dev/cjbaccus","image":"https://avatars.githubusercontent.com/u/1283307?v=4"},"interactionStatistic":{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":1}},{"@type":"Comment","text":"One thing worth adding: percentiles don’t aggregate. You can’t average P99 across ten servers or across five one-minute windows and get the real P99 — that math is meaningless, yet it’s exactly what a lot of dashboards do when they roll up. For accurate percentiles over a fleet or a time range you have to merge histograms (t-digest, HDR), not average the per-source percentiles. And with request fan-out, a page making 20 calls hits its slow tail far more often than any single call’s P99 implies.","datePublished":"2026-07-13T18:12:43.586Z","url":"https://daily.dev/posts/2A0CWB42A#c-XZv31jyAB","author":{"@type":"Person","name":"PDFops","url":"https://daily.dev/pdfopsdev","image":"https://media.daily.dev/image/upload/s---8isRBKc--/f_auto/v1782922291/avatars/avatar_orjMeK8QKaaVZwGq7ScPz?_a=BAMAMicg0"},"interactionStatistic":{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":1}}],"isPartOf":{"@type":"WebPage","url":"https://daily.dev/sources/xwojiomgo9tvq6tcqudqz","name":"Dhvani"}}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Dhvani","item":"https://daily.dev/sources/xwojiomgo9tvq6tcqudqz"},{"@type":"ListItem","position":3,"name":"What is P50 , P80 or P97 latency?"}]}
```

