Standard Deviation Calculator
Paste any list of numbers and instantly get the mean, variance, and standard deviation — with a full step-by-step solution, a visual distribution chart, z-scores, outlier detection, and clear sample vs. population guidance so you always use the right formula.
Background
Standard deviation measures how spread out a set of values is around the mean. A small standard deviation means values cluster tightly; a large one means they're spread widely. For a population (every member of the group you care about): σ = √(Σ(x−μ)² / N). For a sample (a subset used to estimate a larger population): s = √(Σ(x−x̄)² / (n−1)). Dividing by n−1 instead of n corrects for the bias that comes from estimating the population using only a sample.
How to use this calculator
- Paste or type your numbers — commas, spaces, and new lines all work, so you can copy straight from Excel or Sheets.
- Choose Sample if your data is a subset estimating a larger population, or Population if your data includes every value you care about.
- Click Calculate (or turn on auto-calculate) to see the mean, variance, standard deviation, full step-by-step working, a visual chart, and a per-value table with z-scores and flagged outliers.
- Use the quick example chips to instantly load common textbook datasets, including tricky edge cases and an outlier example.
How standard deviation works
Step 1 — Find the mean. Add up every value and divide by how many values there are: x̄ = (Σx) / n.
Step 2 — Find each deviation. Subtract the mean from every value to see how far it sits from the center: (x − x̄). Some deviations are negative, some positive — they always sum to zero.
Step 3 — Square the deviations. Squaring removes negative signs and weights larger deviations more heavily: (x − x̄)².
Step 4 — Average the squared deviations (variance). For a population, divide by N. For a sample, divide by n−1 to correct for the bias of estimating from a subset (Bessel's correction).
Step 5 — Take the square root. This converts variance back into the original units, giving the standard deviation: a typical distance from the mean.
Bonus — Convert to a z-score. Dividing a value's deviation by the standard deviation tells you how many standard deviations it sits from the mean: z = (x − x̄) / SD. Values with |z| greater than 2 are flagged as possible outliers below.
Example Problems & Step-by-Step Solutions
Example 1 — Classic dataset (Population)
Data: 2, 4, 4, 4, 5, 5, 7, 9 — treated as a full population.
Step 1: Mean = (2+4+4+4+5+5+7+9)/8 = 40/8 = 5
Step 2: Squared deviations sum: 9+1+1+1+0+0+4+16 = 32
Step 3: Population variance = 32/8 = 4
Step 4: Population SD = √4 = 2
Example 2 — Same data treated as a Sample
Same 8 values, but now treated as a sample estimating a larger population.
Step 1: Sum of squared deviations is still 32, with n = 8.
Step 2: Sample variance = 32/(8−1) = 32/7 ≈ 4.571
Step 3: Sample SD = √4.571 ≈ 2.138
Note: Sample SD is always ≥ population SD for the same data, because dividing by a smaller number (n−1) gives a larger result.
Example 3 — Frequency shorthand
Data: 10:3, 12:2, 15:1 → expands to 10, 10, 10, 12, 12, 15 (n = 6)
Step 1: Mean = (10+10+10+12+12+15)/6 = 69/6 = 11.5
Step 2: Squared deviations: 3(10−11.5)² + 2(12−11.5)² + 1(15−11.5)² = 6.75+0.5+12.25 = 19.5
Step 3: Population variance = 19.5/6 = 3.25 → SD = √3.25 ≈ 1.803
Example 4 — Single value (edge case)
Data: just the number 7, treated as a sample.
Problem: Sample variance divides by n−1 = 0, which is undefined.
Result: Sample standard deviation cannot be calculated from a single value — at least 2 data points are required. Population SD of a single value is always 0, since there's no spread.
Example 5 — Spotting an outlier with z-scores
Data: 12, 14, 13, 15, 14, 47 — treated as a sample.
Step 1: Mean ≈ 19.17, Sample SD ≈ 13.6
Step 2: For the value 47: z = (47 − 19.17) / 13.6 ≈ 2.05
Result: Since |z| > 2, the value 47 is flagged as a possible outlier — it sits unusually far from the rest of the cluster.
Frequently Asked Questions
Should I use sample or population standard deviation?
Use sample if your data is a subset used to estimate a larger population — like surveying 50 students out of a school of 2,000. Use population if your data already includes everyone in the group you're studying, such as test scores for an entire class.
Why does sample variance divide by n−1 instead of n?
This is called Bessel's correction. A sample's own mean is, on average, slightly closer to the sample's data points than the true population mean would be — so dividing by n alone would systematically underestimate the true population variance. Dividing by n−1 corrects this bias.
What does standard deviation actually tell me?
It tells you the typical distance of a data point from the mean. A small SD means most values are close to the mean (tight, consistent data); a large SD means values are spread out widely (high variability). It's measured in the same units as your original data.
What is a z-score and how is it different from a deviation?
A raw deviation (x − x̄) is in your original units. A z-score standardizes that deviation by dividing by the standard deviation: z = (x − x̄) / SD. This tells you how many standard deviations a value is from the mean, which makes it possible to compare data across completely different scales.
How does this calculator decide what counts as an outlier?
Any value with a z-score beyond ±2 (more than 2 standard deviations from the mean) is flagged as a possible outlier. This is a common rule of thumb, not an absolute rule — always consider the context of your data before deciding whether to exclude a value.
Why can't I calculate sample SD from one number?
Sample standard deviation requires dividing by n−1. With only one data point, n−1 = 0, and dividing by zero is undefined. You need at least 2 values to estimate variability in a sample. Population SD of one value is always 0, since a single point has no spread around itself.
Can I paste data straight from Excel or Google Sheets?
Yes. Copy a column or row and paste it directly into the data box. New lines, commas, and spaces are all parsed automatically, and any non-numeric text is ignored with a note shown in your results.