A QQ plot shows normal distribution when the points fall along or very close to the straight reference line. If you can imagine laying a thick pencil over the line and most points are covered by it, your data is reasonably normal. Deviations from that line tell you exactly how your data differs from a normal distribution, whether through skewness, heavy tails, or outliers.
What a QQ Plot Actually Shows
A QQ (quantile-quantile) plot is a scatterplot that compares two sets of quantiles. In a normal QQ plot specifically, your sample data is sorted in ascending order and plotted against the quantiles you’d expect from a theoretical normal distribution. Each point represents one value from your data matched to where that value “should” fall if the data were perfectly normal.
The reference line running through the plot passes through the first and third quartiles of your data. If your data came from a normal distribution, every point would sit on or very near that line. The closer the points hug the line from end to end, the more confidently you can treat your data as normally distributed.
The Straight Line: What “Normal” Looks Like
When data is normally distributed, the QQ plot looks almost boring. The points form a tight, roughly straight line from the lower left to the upper right. There’s no dramatic curving, no sudden jumps, and no systematic drift away from the reference line. Small random wobbles around the line are completely expected, especially with smaller datasets. The key is that the wobble looks random rather than forming a pattern.
A practical way to judge this is sometimes called the “fat pencil test.” Imagine placing a thick pencil or marker over the reference line. If the pencil covers nearly all of the points, your data is reasonably normal. If clusters of points poke out on one side in a systematic way, something else is going on.
Curved Patterns Signal Skewness
When points form a curve instead of a straight line, your data is skewed. The direction and shape of the curve tell you which way.
- Right-skewed data (positive skew): The points follow the line in the middle but curve upward at the right end, pulling away from the reference line toward higher values. This means your data has a longer tail stretching to the right, with more extreme high values than a normal distribution would produce. Income data and reaction times commonly show this pattern.
- Left-skewed data (negative skew): The opposite pattern. Points curve downward at the left end, dropping below the reference line. The data has a longer tail stretching to the left, with more extreme low values than expected.
The steeper the curve, the more pronounced the skew. A gentle bend might not matter much for your analysis, but a dramatic hockey-stick shape means the data is far from normal.
S-Shaped Patterns Signal Heavy or Light Tails
An S-shaped (or reverse-S) pattern on the QQ plot points to a difference in the tails of your distribution compared to a normal curve.
- Heavy tails (leptokurtic): Points fall below the line on the left end and above the line on the right end, forming an S shape. This means your data has more extreme values in both directions than a normal distribution would. The data is more “peaked” in the center with fatter tails.
- Light tails (platykurtic): The reverse. Points rise above the line on the left and dip below on the right, forming a reverse S. Your data has fewer extreme values than expected, with thinner tails than a normal distribution.
Heavy-tailed data is common in financial returns, measurement error with occasional instrument glitches, and many real-world datasets. It matters because many statistical tests assume normal tails, and heavy tails can inflate your chances of false conclusions.
Outliers vs. Systematic Departures
Not every departure from the line means your data isn’t normal. It’s important to distinguish between a few individual outliers and a pattern that runs through the entire distribution. One or two points peeling away at the extreme ends while everything else hugs the line usually means you have outliers in otherwise normal data. You can investigate those specific observations for data entry errors or unusual circumstances.
A systematic departure is different. If the points gradually drift away from the line across a whole section of the plot, that’s the shape of your distribution talking, not individual problem points. For example, if all the points in the right tail consistently sit above the reference line, your data’s right tail is more spread out than a normal distribution allows. A useful rule of thumb from residual analysis: a standardized value more extreme than 5 or negative 5 is a strong signal of non-normality, not just an outlier.
When you see both ends of the QQ plot deviating in the same direction (say, the left tail is too compressed and the right tail is too spread), that combination typically points to skewness rather than isolated outliers. Go back and look at a histogram of the same data to confirm what the QQ plot is telling you.
Small Samples Make Interpretation Harder
QQ plots become harder to read with fewer data points. With 15 or 20 observations, even genuinely normal data can produce plots that look wobbly and irregular. This is sampling variability, not evidence against normality. The fewer points you have, the more generously you should interpret minor deviations from the line.
Researchers have developed formal confidence bands (sometimes called testing bands) that you can overlay on a QQ plot to help with this judgment call. These bands show the range of scatter you’d expect from truly normal data at your sample size. Points inside the bands are consistent with normality; points outside suggest a real departure. The R package “qqconf” generates these bands using methods calibrated for sample sizes from small datasets up to a million observations. At a sample size of 100, these bands tend to be slightly conservative, meaning they’re a little less likely to flag normal data as non-normal.
As your sample grows into the hundreds or thousands, the QQ plot becomes much more informative. Random wobble shrinks, and genuine departures from normality become visually obvious. With very large samples, even tiny deviations from normality become visible on the plot, but those tiny deviations may not matter practically for your analysis.
A Quick Visual Checklist
- Points hug the line: Data is approximately normal.
- Curve bending one way: Data is skewed (check which direction).
- S-shape through the middle: Tails are heavier or lighter than normal.
- A few points straying at the ends: Likely outliers, not non-normality.
- Staircase or plateau pattern: Data may be discrete or rounded, with many tied values.
The QQ plot is a diagnostic tool, not a pass/fail test. It tells you how your data deviates from normal, which is often more useful than a simple yes or no. A formal test like Shapiro-Wilk can give you a p-value, but the QQ plot shows you the shape of the problem, whether it’s skewness, heavy tails, or something else entirely. That visual information helps you decide whether the non-normality actually matters for whatever analysis you’re running.

