Normality Test Calculator
Many statistical tests assume your data come from a normal (bell-curve) distribution. Paste your numbers to run Shapiro-Wilk, Anderson-Darling, Lilliefors or Jarque-Bera, see the verdict against a Q-Q plot, and get a recommendation on parametric vs non-parametric methods. Everything runs in your browser.
i New to normality testing? Read the 4-min primer ▾
What it is. A normality test formally checks "does my data look like it came from a bell-shaped curve?". It returns a p-value: small p means the shape is suspicious, large p means no strong evidence against normal. The Q-Q plot is the visual companion: sort your data, plot it against where a normal sample would land, and read the shape.
How to read p. p < 0.05 is the conventional reject line. p = 0.034 means: if the truth were a perfect normal, we would see data this weird only 3.4% of the time, so we doubt the truth. p = 0.42 means we have no quarrel with normal. Failing to reject is not proof of normality; with small n the test is often just under-powered.
Picking the right test. Small to moderate samples (n up to 50) → Shapiro-Wilk, the most powerful general test. Care about tail behaviour or outliers? → Anderson-Darling, weighted toward the tails. Want simple intuition? → Jarque-Bera, built from skew and kurtosis. Estimating the mean and SD from the same data? → Lilliefors (a corrected Kolmogorov-Smirnov). The Q-Q plot beats them all when n is small or huge.
When normality matters. t-tests, ANOVA and regression CIs assume residuals are roughly normal, but they are robust enough that mild deviations do not matter once n > 30 (the central limit theorem). Variance and SD CIs, plus exact tail probabilities, are far more sensitive. For n > 5000 every formal test will reject; trust the Q-Q plot, not the p-value.
Paste data to begin
Load an example above or paste a numeric sample.
How this is computed
✓ No data leaves your browser
✓ Verified against R's shapiro.test(), ad.test(), lillie.test() and jarque.bera.test()
✓ Free, no sign-up
Which normality test do I need?
Five checks, one decision. Match the test to your sample size and what you care about; the Q-Q plot is always worth a look.
The most powerful general-purpose test for small to moderate samples. The default before a t-test or ANOVA.
Weights deviations near the tails more heavily. Reach for it in risk or extreme-value contexts where the tails matter.
A Kolmogorov-Smirnov test with critical values corrected for estimating the mean and SD from the data. The KS test reviewers usually mean.
Combines skewness and excess kurtosis into one chi-squared statistic. Simple and intuitive; trust it at n ≥ 30.
The honest visual verdict. A straight line means normal; curves at the ends flag heavy or light tails. Beats every test at very small or very large n.
When this is the wrong tool
| If you have… | Use instead |
|---|---|
| Ordered or categorical data | Normality is undefined for ordinal or categorical scales. Use a chi-squared goodness-of-fit or non-parametric methods. |
| n < 8 | Tests have almost no power; non-rejection is meaningless. Read the Q-Q plot, then assume nothing. |
| n > 5000 | Formal tests over-reject, catching tiny irrelevant deviations. The Q-Q plot is the only honest answer. |
| Need "close enough to normal" | An omnibus test can only reject, never confirm. Use an equivalence-style (TOST) approach or a Bayes factor. |
| Multivariate normality | Mardia's test or Henze-Zirkler, out of scope here. Use the MVN R package. |
| Regression / ANOVA check | Run the test on the residuals, not the raw outcome: shapiro.test(residuals(fit)). |
Frequently asked questions
Which normality test should I use: Shapiro-Wilk or Kolmogorov-Smirnov?
Use Shapiro-Wilk for n up to about 5000; it has the highest power for detecting non-normality across most alternatives. KS is very weak unless you specify the mean and SD a priori; the Lilliefors variant fixes this but is still less powerful than Shapiro-Wilk. Anderson-Darling is competitive and works well in the tails.
Why does my data fail a normality test even though it looks normal?
With large n (above about 5000), normality tests become so sensitive they reject for trivial deviations that do not affect inference. The reverse problem applies for small n: tests cannot distinguish normal from clearly non-normal. Always pair the test with a Q-Q plot and consider whether the deviation matters for your analysis.
Do I need to test for normality before running a t-test?
For n above 30 per group, the central limit theorem makes the t-test robust to mild non-normality of the underlying data. Test the residuals, not the raw data. If you see heavy skew, outliers, or a clearly non-normal shape, switch to Mann-Whitney or use a transformation; otherwise the t-test is usually fine.
Go deeper
Numerical accuracy: every statistic and p-value is verified against R 4.6.0 to better than one part in a million. Shapiro-Wilk matches stats::shapiro.test (Royston AS R94), Anderson-Darling matches nortest::ad.test, Lilliefors matches nortest::lillie.test (Dallal-Wilkinson with the Molin-Abdi p-value), and Jarque-Bera matches tseries::jarque.bera.test.