The t-test formally assumes your data come from a normally distributed population, but in practice, the test works well even when that assumption is violated, especially as your sample size grows. The real answer depends on how large your sample is, how skewed your data are, and whether outliers are present.
The Formal Assumption
Every version of the t-test, whether one-sample, independent two-sample, or paired, lists normal distribution as a core assumption. The full set of requirements includes data measured on a continuous scale, random sampling, normal distribution, adequate sample size, and (for the independent two-sample version) roughly equal variances between groups. So yes, normality is technically required. But “required” in statistics doesn’t always mean “deal-breaker,” and the t-test is one of those cases where the rule bends considerably.
Why Sample Size Changes Everything
The central limit theorem is the reason most statisticians aren’t too worried about normality for larger samples. It states that when you average enough individual measurements, the distribution of that average approaches a normal shape regardless of how the original data are distributed. Once your sample reaches about 30 observations, the sampling distribution of the mean closely approximates a normal distribution, and the normality of your raw data becomes far less important.
This means a t-test performed on 50 or 100 data points can tolerate a fair amount of skewness in the underlying data without producing misleading results. The two-sample t-test in particular has been described as robust to violations of the normality assumption, as well as to unequal sample sizes and even unequal variances between groups.
When Normality Actually Matters
Small samples are where the assumption carries real weight. With fewer than about 15 observations, the central limit theorem hasn’t had enough data to do its work, and the t-test becomes sensitive to the shape of your distribution. If your data are clearly skewed or contain outliers at that sample size, the t-test can give unreliable p-values and confidence intervals. A nonparametric alternative (like the Wilcoxon test) is a better choice in that situation.
For moderate samples of 15 to 30, moderate skewness is generally tolerable, but severe outliers remain a problem. One or two extreme values can pull the mean and inflate the variance enough to distort results, even when the rest of the data look reasonable. Outliers are a bigger threat to the t-test than mild non-normality across the whole distribution.
A practical rule of thumb:
- Fewer than 15 observations: Don’t use a t-test if the data are clearly skewed or outliers are present.
- 15 to 30 observations: Avoid the t-test only if there are severe outliers.
- More than 30 observations: The t-test is generally reliable even with non-normal data.
How to Check for Normality
If you’re working with a small sample and want to verify normality before running a t-test, you have two complementary approaches: visual inspection and formal statistical tests.
Visual tools include histograms and Q-Q plots (quantile-quantile plots), which let you see whether your data roughly follow a bell curve or deviate from it in obvious ways. These are quick and intuitive, though they require some judgment.
Among formal normality tests, the Shapiro-Wilk test is the most widely recommended. It has better statistical power than older alternatives, meaning it’s more likely to correctly detect non-normal data. The Kolmogorov-Smirnov test, despite being one of the most commonly used normality tests, is considered outdated for this purpose because of its low power. It frequently fails to detect real departures from normality.
Here’s the catch with all normality tests: they have an inherent sample-size problem that works against you in both directions. With small samples (the exact situation where normality matters most for the t-test), normality tests have little power to detect violations. Your data will pass the test even if the population isn’t normal. With very large samples, these tests flag tiny, meaningless deviations from normality as statistically significant, even though those small deviations won’t affect your t-test results at all. This is why most statisticians recommend combining visual checks with formal tests rather than relying on either alone.
Welch’s T-Test and Non-Normality
You may have heard that Welch’s t-test is a safer default than Student’s t-test, and that’s true, but mainly for a different reason. Welch’s version adjusts for unequal variances between two groups, which is one of the other key assumptions. It does not, however, provide extra protection against non-normality. If normality is the specific concern, Welch’s t-test still assumes the data are approximately normal. Its advantage is that it removes the equal-variance assumption from the equation, so you have one fewer thing to worry about.
What to Use When Data Aren’t Normal
If your sample is small and your data clearly aren’t normal, nonparametric tests are the standard alternative. The Wilcoxon signed-rank test replaces the one-sample or paired t-test, and the Mann-Whitney U test (also called the Wilcoxon rank-sum test) replaces the independent two-sample t-test. These tests compare medians or ranks rather than means and make no assumption about the shape of your distribution.
The trade-off is that nonparametric tests have slightly less statistical power when the data actually are normal, meaning they’re less likely to detect a real difference. But that power loss is small, and it’s a worthwhile trade when the normality assumption is clearly violated. Another option is to transform your data (using a log or square root transformation, for example) so that the transformed values are closer to normal, then run the t-test on those transformed values. This works well for right-skewed data, which is common in biological and medical measurements.
For most practical purposes, the deciding factor is sample size. If you have 30 or more observations per group, run the t-test without losing sleep over normality. If your sample is smaller, take a few minutes to plot the data and check for skewness and outliers before choosing your test.

