Standard Deviation Calculator
Analyze a list or CSV column with sample/population spread, quartiles, outlier flags and exports.
This tool processes its input contents in your browser instead of sending them to a processing service. Page, asset and fixed usage-measurement requests are described on the Privacy page.
Calculate sample and population standard deviation from a number list or selected CSV column, with quartiles, explicit blank handling and downloadable observations.
How to use it
- 1Paste a number list, or choose CSV and read its column headers.
- 2For CSV, select one numeric column and a blank-cell policy.
- 3Calculate and compare sample versus population spread, quartiles and flags.
- 4Copy the summary or download numeric row CSV and complete analysis JSON.
Example
- Input
- 2, 4, 4, 4, 5, 5, 7, 9
- Output
- Mean 5; population standard deviation 2; sample standard deviation ≈ 2.1380899353.
Both denominators are shown; type-7 quartiles define the outlier review.
What happens to your data
Numbers and local files remain in tab memory without a dataset upload, stored history or URL input. Fixed optional analytics labels exclude numbers, filenames and column names.
Last updated November 2026
A mean alone can hide how widely values vary. This standard deviation calculator shows sample and population spread together, alongside the median, quartiles and individual outlier flags. Paste numbers or select a numeric column from a local CSV, then retain the calculation and its assumptions in a JSON report.
The goal is a checkable description of your dataset, not a statistical conclusion generated from a single number. No rows are silently discarded: selected blank CSV cells are either rejected or omitted under your explicit policy, with the count shown. Non-numeric selected values always receive a record-specific error.
How it works
For n values with mean x̄, population variance is Σ(x−x̄)²/n. Sample variance divides the same centered sum by n−1; taking a square root gives the corresponding standard deviation, in the original units. Use the population result when describing the complete population of interest, or the sample result when the data are a sample and that estimator fits your purpose. The tool cannot decide whether the data were sampled appropriately. A single value has population standard deviation zero, but sample variance and sample standard deviation are undefined.
The implementation uses compensated summation and a centered second pass, with a correction for rounding of the mean. This avoids the particularly unstable shortcut E[x²]−E[x]² for a large offset and small spread. It still uses IEEE 754 binary64 browser numbers: decimal inputs are approximate, and digits lost during parsing cannot be recovered by a later formula. A decimal whose normalized value does not survive conversion to a browser number and back to decimal text is rejected with a precision error, preventing distinct entered values from silently collapsing together. This round-trip guard is not a promise of exact decimal arithmetic: 0.1 still has a binary approximation. Large magnitudes and very small relative spreads trigger a visible precision warning. Rescale at the original source when necessary; subtracting from already rounded values cannot restore missing information.
Median, Q1 and Q3 use type-7 linear interpolation at index (n−1)p in the sorted values, matching R's default quantile convention. Quartiles are not uniquely defined across software: a method based on separate lower and upper halves can give different answers. Interquartile range is Q3−Q1. Values below Q1−1.5×IQR or above Q3+1.5×IQR are flagged, never removed. A flag is a reason to review a value, not evidence that it is an error. The box plot's whiskers deliberately show the full minimum and maximum, including flagged values, and are labeled accordingly.
Number-list mode treats commas and whitespace as separators. Thus 1,234 means values 1 and 234, not a grouped integer; use 1234 for one thousand two hundred thirty-four. Decimal points and e notation are accepted, but currency symbols, units, arithmetic expressions, Infinity, NaN and localized decimal commas are not. CSV mode requires a header row with unique, nonblank names and a consistent record shape. Choose comma, semicolon or tab, read the columns, select one numeric column and set the blank-cell policy. Invalid values in that selected column are never converted to zero. Unselected text columns are not analyzed.
Limits are 1 MiB of UTF-8 input, 10,000 numbers in list mode, or 10,000 CSV records including the header, with 200 columns and 200,000 cells under the shared CSV guard. Each number may contain at most 200 characters; nonzero magnitudes must lie between 1e−100 and 1e100. Inputs outside the range, including values that would underflow to zero, are rejected. A local file must be nonempty valid UTF-8. Blank lines in list mode are ignored; an empty comma-separated field is rejected.
The displayed summary rounds to 12 significant digits. CSV preserves every computed numeric value and original record number, deviation from the mean, and a 0/1 outlier flag. JSON also includes the full summary, method, blank policy, selected column index and omitted count. Original values are represented as parsed numbers, not guaranteed exact original decimal strings. Changing data or a setting removes the old answer and exports. The dataset remains in tab memory with no upload, persistent history or URL input. Optional site analytics records fixed action labels and input mode, never the values, filenames or column names.
Worked example: The same data, two spread denominators
- Input
- 2, 4, 4, 4, 5, 5, 7, 9
- Result
- n = 8; mean = 5; population variance = 4; population standard deviation = 2; sample variance = 32/7; sample standard deviation ≈ 2.1380899353
Q1 = 4 and Q3 = 5.5 under type-7 interpolation. The upper fence is 7.75, so 9 is flagged but stays in the calculation.
Common use cases
- Compare consistency in a small manufacturing or timing dataset using the appropriate sample or population measure.
- Review a CSV column without treating blanks or text as zero.
- Check how quartile conventions affect an IQR outlier review.
- Keep observations and calculation settings together for a spreadsheet review.
Frequently asked questions
Should I use sample or population standard deviation?+
Use population spread to describe the complete population you intend to summarize. The sample formula uses n−1 when estimating population variance from a sample under its assumptions. The page shows both; your sampling design and question determine which is appropriate.
Why does another calculator show different quartiles?+
Quartile conventions differ. This tool uses type-7 linear interpolation at (n−1)p, the default R convention. Compare the method before assuming either answer is wrong.
Are flagged outliers removed from the standard deviation?+
No. Every accepted value remains in the calculation. The 1.5×IQR flags are review hints, and the plot's whiskers show the full range.
Can I enter thousands separators or decimal commas?+
No. Commas separate list values. Enter 1234.5 as one number, not 1,234.5 or 1234,5. For CSV, choose the file separator explicitly and keep numeric cells in decimal-point notation.
Is the calculation exact for very large integers?+
No. Browser binary64 numbers cannot preserve every large integer or decimal digit. The tool warns about large values or a tiny relative spread and exports computed precision, not an exact-decimal guarantee.
Related tools
Linear Regression Calculator
Fit paired data or CSV columns, inspect residuals and estimate values with clear local exports.
CSV Data Profile
Inspect CSV column counts, empties, distinct values and duplicate rows locally; export a JSON profile.
CSV Filter
Filter CSV rows, select output columns and download a focused table without uploads.
Scientific Notation Converter
Convert exact decimals to scientific, engineering and plain notation with explicit rounding options.