Statistics Calculator
Calculate mean, median, mode, standard deviation, variance and more. Statistical analysis with histograms and charts. Free online statistics calculator
Mean, median, mode is the high-school answer to "describe this data". The interesting questions are whether your data is normal enough for mean and standard deviation to mean anything, whether you should report median + IQR instead, and whether the difference between two samples is statistically significant. This calculator reports the full descriptive summary, runs normality and skewness checks, and gives you the conventional measures plus the ones that actually matter for non-normal data.
Descriptive statistics and when to trust each
- Mean (arithmetic average) — sum / n. Useful when data is roughly normal. Pulled toward outliers; a single $10M salary in a small company makes the mean salary look misleading.
- Median (middle value when sorted) — the 50th percentile. Robust to outliers. Always report this for income, response times, file sizes — anything with a long tail.
- Mode (most frequent value) — only useful for categorical data or discrete distributions. For continuous values, the "mode" is the peak of a kernel density estimate, not a single number.
- Standard deviation — average distance from the mean. Meaningful for normal data; misleading for heavy-tailed distributions where the variance is huge or infinite (Cauchy, Pareto).
- IQR (interquartile range, Q3 − Q1) — spread of the middle 50%. The robust counterpart to standard deviation. Use whenever you use median.
- Skewness — direction of the tail. Positive skew: tail on the right (income, latencies). Negative skew: tail on the left (test scores ceilinged at 100). |skew| > 1 means "definitely not normal".
- Kurtosis — heaviness of tails. Excess kurtosis > 0 means heavier tails than normal (more outliers). Stock returns, internet packet sizes, and many physical measurements have excess kurtosis.
Working example: response time analysis
Input
Response times (ms): 12, 14, 13, 15, 12, 14, 13, 18, 12, 14, 15, 13, 12, 1800
Output
n: 14 Mean: 141.1 ms (skewed by the 1800 outlier) Median: 13.5 ms (the typical request) Mode: 12 ms (3×) Std dev: 475.5 ms (also skewed) IQR: 2.5 ms (12 → 14.5) Min / Max: 12 / 1800 P95 / P99: 460.4 / 1740.4 ms Skewness: 3.7 (severely right-skewed) Kurtosis: 13.9 (heavy tail) Distribution is NOT normal. Report median ± IQR for "typical" experience. Report P95 / P99 separately to describe tail behavior.
The single 1800 ms outlier pulls the mean from 13.5 to 141.1 — a 10× difference. Reporting "average response time = 141 ms" misleads users about the typical experience. This is why SRE practice uses percentiles, not averages.
Percentiles for distributions that matter
- P50 (median) — typical user / typical request. Useful headline number for "what most people see".
- P95 — what 5% of users hit or worse. Standard SLO target tier.
- P99 — what 1% of users hit. Where the long tail starts to matter. P99 latency is usually 5-20× the median for healthy systems.
- P99.9 — three-nines. Required reporting for high-volume services where 0.1% is still many users.
- P99.99 — four-nines. Statistically noisy on small samples; needs millions of data points to estimate stably.
- Max — the worst observed. Useful for "how bad can it get" but very sensitive to noise. Almost never an SLO target.
When to reach for this tool
- You have a list of measurements (response times, file sizes, exam scores) and want the standard descriptive summary in one paste.
- You are deciding whether to use mean+stddev or median+IQR to summarize a dataset — paste the data, look at skewness.
- You are debugging "my SLO is at 200ms but Datadog says we are fine" — usually a P95-vs-mean confusion.
- You are teaching basic statistics and want a concrete dataset with computed metrics to walk through.
What this tool will not do
- It will not run inferential tests. T-tests, ANOVA, chi-squared, regression — those need a separate statistical package (R, scipy.stats, or a dedicated calculator).
- It will not estimate distributions. Fitting a normal, lognormal, or Weibull distribution to data needs maximum-likelihood estimation. The summary statistics here are descriptive only.
- It will not visualize. Histograms and box plots are essential to understanding the data; this calculator reports numbers. Pair with a plotting tool for the full picture.
Frequently asked questions
When should I report median instead of mean?
Whenever the distribution is skewed or has outliers. Concrete heuristic: if |skewness| > 1, lead with median. Income, latencies, transaction sizes, time on page — almost always skewed. Median tells your audience what the typical observation looks like; mean tells them where the center of mass is, which is different when the tail is long.
What is the difference between population and sample standard deviation?
Population std (divide by n) is used when your data IS the entire population. Sample std (divide by n-1) is used when your data is a sample of a larger population and you want an unbiased estimate of population std. For most practical cases — measuring "all our latencies last month" or "this batch of widgets" — n-1 is correct (sample). The difference matters most for small n.
My data has outliers. Should I remove them?
Almost never silently. Outliers are data; they describe real events. Either: (1) investigate each outlier and remove only those that are data-entry errors or instrument malfunctions, with documented reasoning; (2) use outlier-robust statistics (median, IQR, trimmed mean) and report them alongside outlier-sensitive ones. Outliers in latency data are often the most important values — they are real users having bad experiences.
How do I know if my data is "normal"?
Coarse check: skewness near 0, kurtosis near 0 (or 3 in some conventions). Visual check: a histogram looks roughly bell-shaped, a Q-Q plot stays close to the diagonal line. Formal check: Shapiro-Wilk or Anderson-Darling test (with the usual caveat that these tests are over-powered on large n — even slightly non-normal data fails them with n > 5000).
What is a "weighted mean"?
Sum of (value × weight) divided by sum of weights. Use when observations have different importance or sample sizes. Example: averaging GPA across semesters with different credit counts; averaging customer satisfaction across regions with different customer counts. Unweighted mean treats each observation as equal.
Why is my mode "no unique mode"?
For continuous data, exact ties are rare; almost every value appears once. Mode is mostly useful for discrete or categorical data (dice rolls, dropdown selections, exam letter grades). For continuous data, the meaningful "mode" is the peak of a density estimate.
Related tools
Calculate percentages, percentage increase/decrease, find X% of Y, what percent is X of Y. Free online percentage calculator with formulas
Perform matrix operations: addition, multiplication, inverse, determinant, transpose, eigenvalues. Free online linear algebra matrix calculator
Plot mathematical functions and equations. Create line, scatter, parametric graphs. Free online graphing calculator and function visualizer
Create beautiful charts from CSV or JSON data. Bar, line, pie, scatter, area charts. Export as PNG or SVG. Free online chart maker
Calculate permutations, combinations, factorial, binomial coefficients. Probability distributions calculator. Free online combinatorics tool
Calculate with complex numbers: addition, multiplication, division, polar form, conjugate. Visualize on Argand diagram. Free complex number calculator
Last updated · E-Utils editorial team