Compute the full suite of descriptive statistics from a list of numbers: central-tendency measures (mean, median, mode), spread measures (range, variance, standard deviation, IQR), and percentile summary (Q1, median, Q3). All computed in one pass from a free-form textarea accepting comma, space, newline, semicolon, or tab separators.
What this tool outputs
Fifteen values from any input list:
- Count — how many numbers in your list
- Sum — arithmetic sum of all values
- Mean — the arithmetic average (sum / count)
- Median — middle value when sorted (midpoint of the two middle values for even-length lists)
- Mode — most frequent value(s). “No mode” when all values are unique; “multimodal” when multiple values tie
- Min, Max, Range — smallest, largest, and their difference
- Q1, Q3, IQR — first and third quartile plus the interquartile range (Q3 − Q1)
- Sample variance & standard deviation — the n − 1 denominator versions (unbiased estimators for the underlying population)
- Population variance & standard deviation — the n denominator versions (exact for the data as given)
Example: the [2, 4, 4, 4, 5, 5, 7, 9] reference dataset
A classic stats-textbook example. Enter 2, 4, 4, 4, 5, 5, 7, 9 and the tool reports:
- Count: 8, Sum: 40, Mean: 5
- Median: 4.5 (midpoint of the 4th and 5th sorted values, both 4 and 5)
- Mode: 4 (appears three times, the most of any value)
- Min: 2, Max: 9, Range: 7
- Q1: 4, Q3: 5.75, IQR: 1.75 (with type-7 interpolation)
- Population variance: 4, Population stdev: 2
- Sample variance: 32/7 ≈ 4.571, Sample stdev: ≈ 2.138
The population stdev of exactly 2 is the reason this dataset is used as a teaching example — it’s the simplest 8-element set with an integer population standard deviation.
Example: a single-value input
Enter just 42. Mean, median, min, max all equal 42. Range = 0. Population variance = 0 (a single point has no spread from itself). Everything else — sample variance, sample stdev, Q1, Q3, IQR — shows as ”—” because those all require at least 2 values to be defined.
Example: all-same-value input
Enter 5, 5, 5, 5, 5. Every statistic except “mode” either equals 5 or 0. The mode is 5 (the single unique value, appearing with frequency 5). Both variances and both standard deviations are 0 because there’s no spread. The IQR is 0, same reason. Useful as a sanity check: if your real-world data accidentally becomes a constant, the tool’s zero-variance output will catch it.
Sample vs. population
Two versions of variance and standard deviation are reported because they answer different questions:
- Population (divide by n): what is the exact variance of the data I have? Use this when your data IS the population you care about (a census, a complete set of measurements, a closed collection).
- Sample (divide by n − 1, Bessel’s correction): what is an unbiased estimate of the variance of the underlying population, given this sample? Use this when your data is a random sample drawn from a larger population and you want to say something about the population.
In practice, most real-world statistics uses samples — if you’re analysing a subset of your users, a day’s server logs, or a batch of measurements, you want the sample versions. If you’re computing stats for a specific roster, class, or inventory, use the population versions.
Quartiles: the type-7 convention
The tool uses linear interpolation between adjacent sorted values (type-7 in the Hyndman & Fan taxonomy). For sorted values s[0], s[1], ..., s[n-1], quantile p is at position h = (n − 1) · p. Round down to get the lower index, then linearly interpolate between s[⌊h⌋] and s[⌊h⌋ + 1].
This is what R uses by default, and what most modern stats packages default to. Excel’s QUARTILE.INC uses the same method; QUARTILE.EXC uses a subtly different one (type-6). Tukey’s hinges (the original boxplot quartiles) and the SAS default (type-3) both differ slightly. For most datasets and most purposes the differences are small, but if you’re matching a specific expected output from a textbook or software package, check which convention it uses.
What this tool does not do
It doesn’t handle grouped / frequency data. If your input is “10 values of 5, 15 values of 7, 5 values of 9”, you’d need to expand that into a flat list first. A grouped-data calculator is a different tool.
It doesn’t compute confidence intervals, hypothesis tests, or p-values. Descriptive statistics describe the data you have; inferential statistics draw conclusions about a larger population. For standardising a single value against the mean and stdev this tool already computes, use the z-score calculator. For full t-tests, chi-square tests, regression, and so on, use a statistics package like R, SciPy, or a dedicated web calculator.
It doesn’t handle missing values specially. Blank tokens are ignored by the parser, but there’s no distinction between “no data” and “zero”; if you have missing values in your input, strip them out before pasting.
It doesn’t plot histograms or box plots. For visualisation, use a spreadsheet, matplotlib, or a dedicated charting tool.
It doesn’t support weighted statistics. Every value counts equally; you can’t say “this value should count twice” without duplicating it.