This page documents exactly how every number on this site is produced, so that any result can be checked, reproduced or challenged. If something here is wrong, it is worth telling us about.
Variance and standard deviation: Welford's algorithm
Variance is computed with the online algorithm published by B. P. Welford in 1962, which updates a running mean and a running sum of squared deviations in a single pass:
for each x: n ← n + 1 δ ← x − mean mean ← mean + δ/n M2 ← M2 + δ·(x − mean) variance = M2 / (n − 1) sample = M2 / n population
The obvious alternative is the textbook "computational formula",
[Σx² − (Σx)²/n] / (n − 1). It is algebraically identical and it is what many
calculators use, but it is numerically unsound: it subtracts two large and nearly equal
quantities, and in floating-point arithmetic that step discards most of the significant
digits.
The failure is not theoretical. On the three values
1000000.1, 1000000.2, 1000000.3 — whose true sample variance is exactly 0.01 —
the shortcut can return 0, or a small negative number, which is impossible for a variance.
Welford's returns 0.01 to within about 10⁻¹¹. This is why it is used here, and it is the
reason results on data with a large mean and a small spread can differ from other online
calculators.
Quantiles, median and IQR
Quartiles use linear interpolation between order statistics. For sorted data x₁ … xₙ and a probability p, the position is h = (n − 1)p, and the value is:
Q(p) = x⌊h⌋ + (h − ⌊h⌋)·(x⌈h⌉ − x⌊h⌋)
This is the definition R calls type 7, and it is what Excel's
PERCENTILE.INC and QUARTILE.INC implement. It is stated explicitly
because there is no universal convention — at least nine definitions of a quantile are in
circulation, and they disagree on small datasets. Minitab, SAS and several textbooks use
other conventions, so a small difference against those tools is expected rather than an
error.
The normal distribution
The cumulative distribution function Φ(z) is evaluated through the error function using the Abramowitz & Stegun 7.1.26 rational approximation, with a maximum absolute error of 1.5 × 10⁻⁷. The inverse, Φ⁻¹(p), uses Peter Acklam's rational approximation, with a relative error below 1.15 × 10⁻⁹ across the whole open interval.
The t distribution
Critical t values are not approximated. The t cumulative distribution function is evaluated exactly through the regularised incomplete beta function:
P(T ≤ t) = 1 − ½·I_x(df/2, ½), where x = df / (df + t²)
with the incomplete beta computed by the Lentz continued-fraction method and log-gamma by the Lanczos approximation. The critical value is then recovered by bisecting that CDF to a tolerance of 10⁻¹².
This matters more than it might appear. An earlier version of this site used a Cornish–Fisher series expansion, which is fast and accurate for moderate degrees of freedom but drifts in the low-df, high-confidence corner: it returned t(0.99, 5) = 4.0290 where the printed table says 4.0321. The current method matches published tables to four decimal places throughout, and the test suite asserts thirteen table values to confirm it.
Grouped data
Frequency tables are computed as Σfx / Σf for the mean and Σf(x − x̄)² for the sum of squares, with n taken as the total frequency Σf. Expanding a frequency table into its raw values and running the ordinary calculator gives an identical result, and the test suite checks that equivalence.
No Sheppard's correction is applied. Grouped results are estimates, because every observation is treated as sitting at its class midpoint; this is stated on the grouped data page rather than silently corrected for.
Weighted and pooled statistics
Pooled SD weights each group's variance by its degrees of freedom:
sp = √[Σ(nᵢ − 1)sᵢ² / Σ(nᵢ − 1)].
Weighted SD uses reliability weights with the bias-corrected denominator
V₁ − V₂/V₁, where V₁ = Σw and V₂ = Σw². With all weights equal to 1 this reduces
exactly to n − 1, which the test suite verifies against the unweighted calculator.
Precision and rounding
- All arithmetic is IEEE-754 double precision — about 15–17 significant decimal digits.
- Displayed values are rounded to six significant figures.
- No intermediate result is rounded. The steps shown in the working display rounded values for readability, but the computation behind them is not rounded at any point.
- Values below 10⁻⁴ or above 10⁹ are shown in exponential notation.
Input handling
Data is split on commas, spaces, tabs, semicolons and newlines, so a column pasted from a spreadsheet parses without editing. Tokens that cannot be read as numbers are skipped — but never silently: the count and the first few offending tokens are reported above the results, so a header row or a stray currency symbol cannot quietly change your answer.
Testing
The statistics engine has an automated test suite covering: known textbook datasets, the Welford-versus-naive precision comparison, grouped/raw equivalence, weighted/unweighted equivalence, pooled SD against manual calculation, thirteen published t-table values, and the error cases (single value in sample mode, zero-mean RSD, inverted confidence limits). It runs against the same module the browser loads, so the tests exercise the code you use.
Privacy
Nothing you enter is transmitted. The numbers you type are never sent anywhere, never logged and never stored — the calculators are plain JavaScript running locally in your browser, and they keep working with the network disconnected.
The site does use Google Analytics to count visits and see which pages get used. That records the usual page-level information — URL, referrer, approximate location, device and browser — and it is separate from the calculators: no data you enter into a calculator is captured by it. If you would rather not be counted, any content blocker or your browser's Do Not Track setting will stop it, and nothing on the site depends on it working.
Corrections
If you find an error — in a number, a formula, or an explanation — it should be fixed rather than defended. See the about page for contact details, and the references page for the sources behind the methods above.
Common questions
Is my data sent to a server?
No. Every calculation runs in your browser in JavaScript. Nothing you type leaves the page, nothing is logged, and the calculators keep working with the network disconnected once the page has loaded.
How precise are the results?
Calculations run at IEEE-754 double precision, roughly 15–17 significant decimal digits. Displayed values are rounded to six significant figures; the underlying computation is not rounded at any intermediate step.
Why do my quartiles differ from another calculator?
Because there is no single agreed definition. At least nine are in use. This site uses
linear interpolation between order statistics — R's type 7 and Excel's
PERCENTILE.INC — so results match those two. Minitab and some textbooks use a
different convention and will differ slightly on small datasets.