Skip to content

Outlier Detector

Flag unusual values in a column with the Z-score, Tukey’s IQR fences or the robust modified Z-score, then download the data with or without them.

Drop a CSV file here

Comma-, tab- or semicolon-separated columns under a header row.

.csv.tsv.txt
How-to guide

How to detect outliers in your data

Upload a CSV, pick a column and a detection rule, and flag anomalous values, then export either the cleaned data or just the anomalies.

1

Load your data

Drag in a .csv/.tsv/.txt file, or press Choose file. Or press Load a sample to try fifteen measurements with two planted outliers.

2

Pick a column & method

Choose the numeric column and one of Z-Score, IQR, or the robust Modified Z-Score.

3

Set the threshold

Adjust the multiplier; the hint explains what the current setting flags. Defaults follow standard practice.

4

Find and download

Press Find outliers to mark them on the chart, with the lines the rule draws, and in the table. Changing the column, rule or threshold afterwards updates the result. Then download the data without the outliers, or the outliers alone; save the chart as PDF, PNG or SVG (press Style to set its look); or copy the Python script, which reads your file, flags the same rows with numpy and draws the same chart with matplotlib.

How it works

Three complementary rules

Z-Score assumes roughly normal data. IQR (Tukey) is non-parametric and good for skew. Modified Z-Score uses the median and MAD, so it is robust, a few extreme values don't hide the rest.

Why robustness matters

The mean and standard deviation are themselves distorted by outliers, so a single huge value can mask others. Median/MAD-based detection avoids this, which is why 3.5 on the modified Z-Score is a widely recommended default.

A quick illustration: in the built-in example the classic Z-Score (k=3) flags only the value 250, while the Modified Z-Score (k=3.5) also catches the low value 3, because the mean and SD were inflated by 250 itself. The chart shows every value and the table highlights up to 200 rows; export always covers the full dataset.
Method and equations

The three detection rules

Each method flags values in the selected column that lie unusually far from the centre; they differ in how “centre” and “spread” are estimated and how robust they are to the very outliers you are hunting.

Z-Score (parametric), uses the mean and sample standard deviation:

{z}_{i}=\frac{{x}_{i}-\bar{x}}{s},\qquad \text{flag if}\quad |{z}_{i}|>k

Tukey’s IQR fences (non-parametric), uses the quartiles:

\text{flag if}\quad {x}_{i}<{Q}_{1}-k\cdot\mathrm{IQR}\quad \text{or}\quad {x}_{i}>{Q}_{3}+k\cdot\mathrm{IQR},\quad \mathrm{IQR}={Q}_{3}-{Q}_{1}

Modified Z-Score (robust), uses the median and the median absolute deviation:

{M}_{i}=\frac{0.6745({x}_{i}-\tilde{x})}{\mathrm{MAD}},\quad \mathrm{MAD}=\operatorname*{median}|{x}_{i}-\tilde{x}|

where \bar{x} is the mean, s the sample standard deviation, {Q}_{1}/{Q}_{3} the first/third quartiles, \tilde{x} the median, MAD the median absolute deviation, and k the threshold you set. Typical defaults are k=3 (Z-Score), k=1.5 (IQR, Tukey) and k=3.5 (modified Z-Score, Iglewicz–Hoaglin). The constant 0.6745 makes the MAD a consistent estimator of the standard deviation for normal data. When more than half the values are identical the MAD is zero, and the tool falls back to the mean-absolute-deviation form, {M}_{i}=({x}_{i}-\tilde{x})/(1.253314\cdot\mathrm{MeanAD}); a value is then scored against the few that differ, so it can be flagged however little it differs from the rest. When the middle half of the values are identical the IQR is zero, both fences sit on that value, and Tukey’s rule flags every value that differs from it. When every value is the same no rule can flag anything. In each of these cases the page says so under the count.

References & documentation

  1. Tukey, J. W. (1977). Exploratory Data Analysis. Addison-Wesley. (Origin of the IQR “fences”.)
  2. Iglewicz, B., & Hoaglin, D. C. (1993). How to Detect and Handle Outliers. ASQC Quality Press. (Modified Z-score, threshold 3.5.)
  3. IBM. Modified z score. IBM Cognos Analytics 11.1 documentation, Statistical terms. ibm.com/docs. (The mean-absolute-deviation form for a MAD of zero.)
  4. Heckert, N. A., Filliben, J. J., Croarkin, C., et al. (2002). NIST/SEMATECH e-Handbook of Statistical Methods, §1.3.5 & §7.1.6. itl.nist.gov/div898/handbook.

Frequently asked questions

Is my data uploaded anywhere?
No. Parsing and detection run locally in your browser via PapaParse and jStat.
Which method should I use?
Z-Score for roughly normal data, IQR for skewed data, and the Modified Z-Score when you want robustness to the outliers themselves; it tolerates the most outliers of the three, so prefer it when you do not know how many there are. The page opens on the Z-Score because it is the most familiar: compare the two before you rely on either.
What thresholds are typical?
k = 3 for Z-Score, k = 1.5 for Tukey's IQR fences, and k = 3.5 for the modified Z-Score (Iglewicz–Hoaglin).
How many values do I need?
At least four numeric values in the chosen column for a meaningful estimate of spread.
Does downloading without outliers change my original file?
No. It downloads a new CSV with the flagged rows removed; your source file is untouched.

Detection runs entirely in your browser, no data leaves your device.