Home / Tools / Normality Test Calculator

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.

Or load a real-world example
n = 0
 

Paste data to begin

Load an example above or paste a numeric sample.

n
-
statistic
-
p-value
-
skewness
-
excess kurt.
-

How this is computed
The same test in R

  

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.

Shapiro-Wilk

The most powerful general-purpose test for small to moderate samples. The default before a t-test or ANOVA.

n from 3 to 5000
Anderson-Darling

Weights deviations near the tails more heavily. Reach for it in risk or extreme-value contexts where the tails matter.

tail-sensitive, n ≥ 5
Lilliefors

A Kolmogorov-Smirnov test with critical values corrected for estimating the mean and SD from the data. The KS test reviewers usually mean.

corrected KS, n ≥ 4
Jarque-Bera

Combines skewness and excess kurtosis into one chi-squared statistic. Simple and intuitive; trust it at n ≥ 30.

skew + kurtosis
Q-Q plot

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.

always look

When this is the wrong tool

If you have…Use instead
Ordered or categorical dataNormality is undefined for ordinal or categorical scales. Use a chi-squared goodness-of-fit or non-parametric methods.
n < 8Tests have almost no power; non-rejection is meaningless. Read the Q-Q plot, then assume nothing.
n > 5000Formal 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 normalityMardia's test or Henze-Zirkler, out of scope here. Use the MVN R package.
Regression / ANOVA checkRun 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.