Home / Tools / Descriptive Statistics Calculator
Descriptive Statistics Calculator
A descriptive statistics calculator takes a column of numbers and boils it down to a few honest summaries: where the middle is, how spread out the values are, and what shape the distribution takes. Paste your data below, in any format, and read the mean, median, mode, standard deviation, quartiles, skewness and more off a live histogram and boxplot. You also get a 95% confidence interval of the mean, an APA report line and the matching R code.
I want to summarize one column of numbers
-
How these numbers are computed
m3 / s^3 and excess kurtosis is m4 / s^4 - 3, where the m are central moments and s is the sample standard deviation. Histogram bins follow the Freedman-Diaconis rule unless you set a count.
✓ No data leaves your browser
✓ Verified against R's mean(), sd(), quantile(type = 7) and e1071::skewness()
✓ Free, no sign-up
Centre, spread, shape
Every descriptive summary answers three questions. Read them together: a single number in isolation can mislead.
The mean is the balance point and uses every value, so one extreme number drags it. The median is the middle value and shrugs off outliers. When the two disagree, the gap is itself a clue about skew.
The standard deviation is the typical distance from the mean; the variance is its square. The IQR, the width of the middle 50%, is the robust alternative and pairs with the median. The range only sees the two extremes.
Skewness measures lopsidedness: positive means a longer right tail. Excess kurtosis measures tail weight against a normal, which scores 0. The histogram and boxplot show both at a glance.
What each statistic means
| Statistic | What it tells you | In R |
|---|---|---|
| Mean | Arithmetic average, the balance point of the data. | mean(x) |
| Median | Middle value; half the data sit below it. Robust to outliers. | median(x) |
| Mode | Most frequent value (or values); useful for discrete or repeated data. | which.max(table(x)) |
| Standard deviation | Typical distance of a value from the mean. Sample form divides by n - 1. | sd(x) |
| Variance | Square of the standard deviation, in squared units. | var(x) |
| Standard error | Standard deviation of the sample mean, sd / sqrt(n). | sd(x)/sqrt(length(x)) |
| 95% CI of mean | Plausible range for the true mean, mean +/- t * SE. | t.test(x)$conf.int |
| Quartiles, IQR | 25th, 50th, 75th percentiles; IQR is the middle-50% width. | quantile(x); IQR(x) |
| Skewness | Direction and degree of asymmetry; 0 is symmetric. | e1071::skewness(x, type = 3) |
| Kurtosis (excess) | Tail weight relative to a normal; 0 is normal-tailed. | e1071::kurtosis(x, type = 3) |
| Coefficient of variation | SD relative to the mean, sd / mean; unit-free spread. | sd(x)/mean(x) |
The calculator above reports every row of this table for your data, plus the population forms of the standard deviation and variance (dividing by n instead of n - 1) for when your numbers are a whole population rather than a sample.
Frequently asked questions
How do I calculate descriptive statistics from a list of numbers?
Paste your values into the box, separated by commas, spaces, tabs or new lines. The parser cleans headers, currency symbols, thousands separators and blank or NA cells, then reports the count, mean, median, mode, standard deviation, variance, quartiles, IQR, skewness, kurtosis, a confidence interval of the mean and both a histogram and a boxplot, all updating as you type.
What is the difference between sample and population standard deviation?
The sample standard deviation divides the sum of squared deviations by n - 1, known as Bessel's correction, and estimates the spread of a wider population from a sample. This is what R's sd() returns. The population standard deviation divides by n and is right when your numbers are the entire population. This tool shows both, and the toggle switches which one drives the headline and the coefficient of variation.
Which quartile method does this calculator use?
It uses R's default type-7 quantiles, the same linear interpolation you get from quantile(x) in R with no type argument. Q1 is the 25th percentile, Q3 the 75th, and the IQR is Q3 minus Q1. Other software sometimes uses type-6 or the Tukey hinges, so a quartile can differ by a small amount between tools.
How are skewness and kurtosis computed?
Skewness and kurtosis use type 3, the default in R's e1071 and psych packages. Skewness is the third central moment divided by the cubed sample standard deviation, b1 = m3 / s^3. Kurtosis is reported as excess kurtosis, m4 / s^4 minus 3, so a normal distribution scores 0. Positive skewness means a longer right tail; positive excess kurtosis means heavier tails than a normal.
How are outliers flagged?
Any value below Q1 minus 1.5 times the IQR, or above Q3 plus 1.5 times the IQR, is flagged as a potential outlier, the same rule that draws the whiskers of a boxplot. A flag is a prompt to investigate, not an instruction to delete: check for a data-entry error first, and if the value is genuine prefer a robust summary such as the median.
Does this descriptive statistics calculator match R?
Yes. Every statistic is checked against R across more than thirty samples, including tricky ones with missing values, ties, negatives, huge magnitudes and near-zero variance. The mean, median, standard deviation, variance and quartiles match base R, and the skewness and kurtosis match e1071 and psych with type 3, to at least seven significant figures.
Which quartile method does this use?
It uses R's default type-7 quantiles, the same linear interpolation you get from quantile(x) with no type argument. Q1 is the 25th percentile, Q3 the 75th, and the IQR is Q3 minus Q1. Some packages default to type-6 or to the Tukey hinges, so a single quartile can differ by a small amount between tools. The boxplot here draws its box from these same type-7 quartiles so the picture matches the numbers.
How are skewness and kurtosis defined here?
Both use type 3, the default in R's e1071 and psych packages. Skewness is the third central moment over the cubed sample standard deviation, b1 = m3 / s^3. Kurtosis is reported as excess kurtosis, m4 / s^4 - 3, so a normal distribution scores 0. Positive skewness means a longer right tail; positive excess kurtosis means heavier tails and a sharper peak than a normal.
How does it flag outliers?
It uses the 1.5 IQR rule: any value below Q1 - 1.5 x IQR or above Q3 + 1.5 x IQR is flagged, the same fences that end a boxplot's whiskers. Treat a flag as a prompt to look closer, not a licence to delete. Check for a typo or measurement error first; if the value is real, report the median alongside the mean or use a robust summary.
Does this calculator match R and SPSS?
It matches base R exactly for the mean, median, standard deviation, variance and type-7 quartiles, and matches e1071 and psych for type-3 skewness and kurtosis, checked to at least seven significant figures across more than thirty samples. SPSS reports a different, bias-corrected skewness and kurtosis (type 2) and can pick different quartiles, so those two figures may differ slightly from an SPSS printout.