Outlier detector

Flag outliers in a list of numbers with the z-score, modified z-score (MAD) and IQR (Tukey's fences) methods. Runs in your browser, no upload.

Outliers

About this tool

Outlier detection flags the values in a list of numbers that sit unusually far from the rest — the readings you'd want to inspect, clean, or explain before trusting a summary statistic. This tool applies the two methods most commonly taught and used:

Every method reports the flagged values together with their position (index) in your list, plus the underlying numbers — mean and standard deviation for the z-score method, median and MAD for the modified z-score method, and the quartiles and fences for the IQR method — so you can see exactly why each point was flagged.

Enter the numbers separated by spaces, commas, semicolons, or newlines. Tune the z-score threshold and the IQR multiplier to make detection stricter (lower) or more lenient (higher).

Privacy

Everything runs in your browser via WebAssembly — your data is never uploaded. Also available from the gizza CLI and in chat (which return the flagged values and the supporting statistics as structured JSON).

FAQ

Why do the three methods flag different values?

Because they make different assumptions. The classical z-score uses the mean and standard deviation, both of which are pulled toward extreme points — so a big outlier can inflate the standard deviation enough to hide itself or others (masking). The modified z-score (median + MAD) and the IQR fences are robust to this, so on skewed or contaminated data they typically flag more of the genuinely extreme points. Disagreement is a signal, not a bug.

Why does the z-score method report nothing for my data?

Three common reasons: the sample has fewer than 2 values (the sample standard deviation, computed with ÷ N−1, is undefined), all values are identical (zero spread), or the outlier itself inflated the standard deviation past the threshold. Similarly, the modified z-score flags nothing when the MAD is 0 — i.e. more than half your values are identical.

Will the quartiles match what numpy or my textbook gives?

Quartiles use the linear-interpolation method — numpy's default — and the z-scores use the sample standard deviation, matching scipy.stats.zscore(ddof=1). Textbooks that use a different quartile rule (there are several) can produce slightly different fences on small samples.

How do the two tuning knobs interact?

The z threshold (default 3, must be > 0) is shared by both the classical and the modified z-score methods. The IQR multiplier k (default 1.5) only affects Tukey's fences — 1.5 is the classic boxplot rule, and raising it to 3 flags only "far out" points. Lower values make every method stricter.

Developer & Automation Access

Run it from the terminal

Same engine as this page, headless — via the gizza CLI:

gizza tool outlier-detector "10, 11, 12, 10, 9, 11, 100"

New to the CLI? Get gizza →

Open it by URL

Pre-fill and auto-run this tool with query parameters — the names match the API/CLI:

https://gizza.ai/tools/outlier-detector/?numbers=10%2C%2011%2C%2012%2C%2010%2C%209%2C%2011%2C%20100&z_threshold=3&iqr_k=1.5

Machine-readable descriptor: tool.json — title + parameters JSON Schema for agents.