All supplied requests sorted as one disjoint population.
Browser-only observability lab
Latency Percentile Aggregation Explorer
See why averaging worker p95 values is not the same as calculating p95 over the pooled requests. Compare exact nearest-rank results with a separately labelled classic-histogram estimate.
Step 1
Enter worker observations
Expected shape: an object whose values are nonempty arrays of nonnegative durations. Worker names are labels only.
Comma-separated, strictly increasing, and greater than zero. An overflow row is added automatically.
Step 2
Compare aggregation methods
Every worker contributes equally, regardless of request count.
Worker p95 values weighted by worker request counts.
Linear interpolation inside the selected classic-histogram bucket.
Review these conditions
Worker p95 details
| Worker | Requests | Nearest-rank index | p95 |
|---|
Difference from pooled p95
Merged cumulative bucket counts
Each finite row counts observations less than or equal to its boundary. The overflow row represents the implicit +Inf bucket total.
| Upper bound | In bucket | Cumulative | Cumulative share |
|---|
How the histogram estimate was calculated
This educational comparison models classic cumulative buckets with a nonnegative lower bound of zero. It does not cover native exponential histograms, telemetry ingestion, counter resets, or deployment compatibility.
Interpretation guide
What should you take away?
The nearest-rank reference for the exact observations entered here.
Useful for demonstrating the aggregation error, not as substitutes for the pooled percentile.
Cumulative counts can be summed for disjoint populations that share boundaries and an observation window.
The estimate depends on bucket width and an assumed distribution inside the selected bucket.
Related reading
Find these tools useful?
Get one short weekly dispatch with new tools, guides, and what we tested. No spam, unsubscribe anytime.