Skip to main content
Piloterr
Back to blog
June 24, 2026

Understanding p50, p75, p90, p95, and p99 latency metrics

Average latency hides the slow scrapes. In a nightly job of 10,000 product URLs, most calls can finish in 1–2 s while a handful sits at 20 s after a CAPTCHA retry. The mean still looks fine; your deadline does not.

Percentiles (p50, p75, p90, p95, p99) show how response times are distributed. They answer: "How long did at least X% of scrapes take?"

Track them on your targets with Scraper APIs. Compare Crawler vs Rendering vs WebUnlocker modes before blaming a site.

What each percentile means

pN = N% of requests finished in that time or faster.

PercentileMeaning
p50Median: half of scrapes were this fast or faster.
p753 out of 4 scrapes finished within this window.
p909 out of 10.
p9519 out of 20.
p9999 out of 100, the slow tail that breaks batch jobs.

Scraping examples

Same price-monitoring job, different pages:

PercentileExampleLatency
p50Static product page, Crawler mode0.8 s
p75Category listing with pagination1.5 s
p90React PDP, Rendering wait for price selector3 s
p95Job board listing after one 403 retry + proxy rotation6 s
p99Marketplace behind DataDome, WebUnlocker + CAPTCHA18 s

p50 = 0.8 s but p99 = 18 s is normal in scraping. The median tells you cost per page; the tail tells you whether the job finishes on time.

Why the average lies

1,000 scrapes: 900 × 1 s, 90 × 8 s (CAPTCHA retry), 10 × 45 s (timeout). Mean ≈ 3 s, but 10% waited 8 s+. Percentiles surface that gap immediately.

What to watch in production

Slice latency by domain, HTTP status, and scrape mode (1 / 2 / 3 credits). Plot p50 and p99 together: if p50 is flat but p99 rises, you likely hit new anti-bot rules or broken selectors, not a global slowdown.

Batch jobs: size timeouts on p95, SLAs on p99. Example SLA: "p95 ≤ 5 s over 24 h, successful scrapes only."

Takeaways

  • p50 = typical scrape cost; p99 = why the nightly job missed its window.
  • Tail spikes come from retries, JS rendering, anti-bot, and cold proxy sessions, rare but expensive.
  • Fix the median with Crawler; fix the tail with WebUnlocker or tighter per-domain caps.

More to read

Guides and news about web scraping, proxies, and data extraction.

News

Cloudflare teams with Chrome, Firefox, and Edge on PACT, a privacy-first anti-bot protocol

Cloudflare joins Mozilla, Google, Microsoft, and Shopify to develop PACT (Private Access Control Tokens), a standard meant to authenticate human and authorized agent traffic without CAPTCHAs or invasive tracking.

Josselin Liebe
Josselin Liebe
Read
News

Introducing the new Piloterr website

Piloterr.com has been rebuilt from the ground up: clearer product pages, 400+ documented API endpoints, free developer tools, French localization, and a roadmap toward a second owned datacenter.

Josselin Liebe
Josselin Liebe
Read
News

Website Scraping : Crawler vs Rendering vs WebUnlocker

Piloterr Website Crawler vs Rendering vs WebUnlocker: learn when to use HTTP request scraping with fingerprinting, full JS browser rendering, or the anti-bot WebUnlocker (Cloudflare, DataDome, PerimeterX, Akamai) for 100% success on approved domains.

Josselin Liebe
Josselin Liebe
Read

Ready to get started?

Your web scraping API is one click away. Start with +500 credits, no infrastructure to set up, no proxies to manage, and no credit card required.

  • +500 credits
  • No credit card required
  • All endpoints included