Your data
Paste a table straight from Excel or Google Sheets, or drop a CSV file. Nothing is uploaded anywhere — the whole calculation runs inside this browser tab.
CSV, TSV or plain text. Files saved in windows-1251 are detected and re-read automatically, so Cyrillic headers do not turn into garbage.
Parsing options
Columns
Result
Save and share
The drawing library is downloaded only when you press the button, and only on this page.
This page has no server side at all. The table you paste is parsed by JavaScript inside your own browser, the chart is drawn on a canvas element on your machine, and the export file is assembled locally. Nothing is uploaded, stored or written to any log. You can disconnect from the network after the page has loaded and everything will still work — which is the simplest way to verify the claim yourself.
Facts and limits of this method
| Quantile definition | R type 7 — linear interpolation, identical to Excel PERCENTILE.INC and numpy default |
|---|---|
| Percentiles returned | P5, P10, P25, P50, P75, P90, P95, P99 |
| IQR | Q3 − Q1, the range covering the middle half of the data |
| Interpolation | When the position falls between two values, the result is interpolated between them |
| Robustness | Unaffected by how extreme the extreme values are, only by how many there are |
| Minimum rows | 2 |
When it misleads you
- There are nine competing definitions of a quantile, and they disagree on small samples. This page uses R type 7; a tool using the Excel PERCENTILE.EXC definition or the SAS default will return different numbers from the same column. Any percentile quoted without its definition is not reproducible.
- High percentiles need data behind them. A P99 computed from 30 rows is determined by the single largest value, which makes it a description of one observation rather than of the distribution.
- Percentiles say nothing about how far beyond them the tail extends. P95 of 2 seconds is compatible with a worst case of 3 seconds and with a worst case of 3 minutes — the maximum is a separate number worth reporting.
- They are position-based, so they discard magnitude entirely. Doubling the largest value in your column changes the mean and leaves every percentile below P100 exactly where it was.
How it is calculated
The values are sorted, and the position for a percentile p is computed as (n − 1) · p. When that position lands exactly on an index, the value there is returned; when it falls between two indices, the result is interpolated linearly between the neighbouring values.
That interpolation rule is the R type 7 definition. It is the default in R, in numpy, in Google Sheets and in Excel PERCENTILE.INC, which is why the numbers here match the ones your spreadsheet produces. Naming the definition matters: on a 20-row column the competing definitions can differ by several percent.
The interquartile range is Q3 − Q1: the span covering the middle half of the observations. It is the robust counterpart of the standard deviation — where the standard deviation is inflated by a single extreme value, the IQR does not move at all until the value crosses a quartile boundary.
Percentiles are computed on valid numbers only. Empty and non-numeric cells are skipped rather than treated as zero, which would drag every low percentile towards the bottom of the range.
Questions and answers
Why do my quartiles differ from another tool?
Because of the quantile definition. There are nine of them in common use. This page states its choice explicitly — R type 7, the same as Excel PERCENTILE.INC — so you can check whether the other tool used PERCENTILE.EXC or something else.
How many rows do I need for a meaningful P95?
As a rule of thumb, at least a hundred, and preferably several hundred. With 30 rows, P95 sits between the top two values and tells you about those two rows rather than about the process.
Should I use the IQR or the standard deviation?
The IQR when the data is skewed or has outliers, the standard deviation when it is roughly symmetric. Comparing the two is itself informative: a large gap means extreme values are doing the work.
What is the median doing in a percentile table?
The median is P50 by definition. It appears in the table for completeness and should match the value the mean-median-mode tool reports exactly.
Is anything uploaded?
No. Sorting and interpolation happen in your browser.