Repeated numbers collapse into one row with a frequency, so a list of a thousand test scores becomes a short tally.
Match the number another tool gave you
Two honest tools can disagree on the same data because they made different choices, not because one is broken. Find the function you are checking against, then set the two menus above to the badge in its row.
| Tool and function | What it does | Set this page to |
|---|---|---|
| Excel STDEV.S | Divides by n - 1, a sample | Sample |
| Excel STDEV.P | Divides by n, a whole population | Population |
| Excel SKEW | Adjusted Fisher-Pearson G1 | Sample |
| Excel SKEW.P | Moment skewness g1 | Population |
| Excel QUARTILE.INC | Interpolates at rank 1 + (n - 1)p | Linear |
| TI-83 or TI-84, 1-Var Stats | Medians of the halves, the middle value left out | Exclusive |
| R sd() and var() | Divide by n - 1 | Sample |
| R quantile(), default type 7 | Same interpolation as QUARTILE.INC | Linear |
| R fivenum() | Tukey's hinges, the middle value kept in both halves | Inclusive |
| Python numpy.std | Divides by n unless you pass ddof=1 | Population |
| Python numpy.percentile | Default method 'linear', type 7 | Linear |
| Python pandas .std() | Divides by n - 1 by default | Sample |
| Excel QUARTILE.EXC | Interpolates at rank (n + 1)p, a fourth convention | Not offered |
| Geometric, harmonic or weighted mean | Different kinds of average, on the average calculator | Not here |
Descriptive statistics, and why two tools can disagree
Spread, quartiles, outliers and skewness worked through on one data set, with the settings that match Excel, a TI-84, R and numpy.
A statistics calculator earns its keep on the numbers that describe a data set beyond its average: where the middle sits, how widely the values spread, whether one side has a long tail, and which values look out of place. This one takes your data as rows of values and frequencies, or as a pasted list, and returns the median, mode, range, variance and standard deviation, the quartiles and interquartile range, outliers at two strengths, skewness with a test of whether it matters, z scores and the standard error. The mean is there as a single tile because everything else is measured from it; if the average itself is the question, the average calculator covers it in depth.
Two settings decide most of the disagreements people run into between tools: whether your data is a sample or a whole population, and which of several quartile conventions you follow. Both are menus above rather than hidden defaults, and the table under the tool tells you which settings reproduce Excel, a TI-84, R, numpy or pandas.
One data set, worked through
The default data is ten delivery times in minutes: 18, 21, 22, 22, 24, 25, 27, 29, 31 and 58. Sorted, the two middle values are 24 and 25, so the median is 24.5. The only value that repeats is 22, so that is the mode. The range is 58 - 18 = 40. The mean is 27.7, three minutes above the median, which is the first hint that the late delivery is dragging things.
For spread, subtract the mean from each value, square the gaps and add them up: the sum of squares is 1,156.1. Treated as a sample, that is divided by n - 1 = 9 for a variance of 128.46 and a standard deviation of 11.33 minutes. Treated as the complete population it is divided by 10, giving 115.61 and 10.75. With the exclusive quartile method, Q1 is the median of the lower five values, 22, and Q3 the median of the upper five, 29, so the interquartile range is 7 minutes. The inner fences sit 1.5 × 7 = 10.5 beyond the quartiles, at 11.5 and 39.5; the outer fences sit 3 × 7 = 21 beyond, at 1 and 50. The 58 minute delivery is past the outer fence, an extreme outlier, and the skewness of 2.50 says the whole set leans hard to the right.
Sample or population: the n - 1 question
Almost every tool asks this, and the answer depends on what the numbers stand for, not on how many there are. If your data is everything you care about, every employee in a ten person office or all twenty rose bushes in a garden, it is a population, and the variance divides by n. If it is a slice used to learn about something bigger, thirty customers standing in for all of them, it is a sample, and the variance divides by n - 1.
The reason is that a sample's own mean sits closer to its values than the true population mean does, so squared gaps measured from it come out slightly too small. Dividing by one less, called Bessel's correction, makes the estimate unbiased; n - 1 is the degrees of freedom left once the mean has been fixed. The textbook data 2, 4, 4, 4, 5, 5, 7, 9 shows the size of the effect: its population standard deviation is exactly 2, the sample version 2.14. The gap narrows as n grows, which is why it matters most for small classes and pilot studies. Whichever you choose, the panel also prints the other one underneath, so you can report either without switching back.
Software does not agree on a default. Excel splits the job into STDEV.S and STDEV.P, R's sd() divides by n - 1, pandas does too, but numpy.std divides by n unless you pass ddof=1. That last one explains many a report where Python and a spreadsheet disagree by a few percent on identical data.
Why quartiles differ between tools
There is no single agreed way to cut a finite list into quarters, and the three common rules are all offered here. Exclusive halves, used by the TI-83 and TI-84, split the sorted data at the median and leave the median out of both halves when n is odd. Inclusive halves, Tukey's hinges and R's fivenum, keep it in both. Linear interpolation, used by Excel QUARTILE.INC, R's quantile() default and numpy.percentile, places Q1 at rank 1 + (n - 1) × 0.25 and blends the two neighbours.
For the eleven scores 6, 7, 15, 36, 39, 40, 41, 42, 43, 47, 49, exclusive halves give Q1 = 15 and Q3 = 43, while the other two give 25.5 and 42.5. With an even count the halves methods agree, which is why the difference often goes unnoticed until an odd sized data set turns up.
What almost nobody points out is that the method can change the outlier verdict, not just the quartiles. For 12, 15, 18, 22, 24, 27, 31, 35, 78, exclusive halves give Q1 16.5 and Q3 33, an outer fence of 82.5, so 78 is a mild outlier. Inclusive halves give Q1 18 and Q3 31, an outer fence of 70, and the same 78 becomes extreme. In the textbook set 2, 4, 4, 4, 5, 5, 7, 9, both halves methods put Q3 at 6 and nothing is flagged, but linear interpolation puts Q3 at 5.5, the upper fence at 7.75, and 9 is suddenly an outlier. If a borderline value is going to drive a decision, try all three settings before you trust any one of them.
Outliers are a flag, not a verdict
The 1.5 × IQR rule comes from John Tukey's box plot: whiskers stop at the last value inside Q1 - 1.5 × IQR and Q3 + 1.5 × IQR, and anything beyond is drawn as a point. Values beyond 3 × IQR are extreme outliers. Because quartiles ignore the tails, the fences are not dragged outwards by the very values they are meant to catch, which is the weakness of the other common test, flagging anything with a z score beyond ±3. Nothing is removed from the calculation here. An outlier may be a typing error, a genuinely unusual case or the most interesting row in the data, and only you can tell which.
Skewness, and whether it is big enough to matter
Skewness measures lopsidedness. Zero is symmetric, positive means a longer tail of high values, negative a longer tail of low ones. In sample mode the page reports the adjusted Fisher-Pearson coefficient G1, the figure Excel's SKEW, SPSS and SAS give; in population mode it reports the plain moment coefficient g1, which is Excel's SKEW.P. Microsoft's own example data 3, 4, 5, 2, 3, 4, 5, 6, 4, 7 gives 0.359543 and 0.303193, and this calculator returns the same two numbers. The adjustment is large in small samples, about 1.49 times at n = 5, and fades towards 1 as n grows.
A common reading, from Bulmer, treats a skewness between -0.5 and 0.5 as roughly symmetric, 0.5 to 1 in either direction as moderately skewed and beyond 1 as highly skewed. Size alone says nothing about the population when the sample is small, so the panel also divides G1 by its standard error, the square root of 6n(n - 1) / ((n - 2)(n + 1)(n + 3)). Beyond 2 either way, the population probably leans the same way; inside it, the lean could be sampling noise.
A rule taught everywhere is that right skew puts the mean above the median. It usually holds, but it fails surprisingly often in discrete or multimodal data, so read the skewness number rather than inferring it from the gap between mean and median.
Checking the 68, 95, 99.7 rule against your own data
For data that follows a normal curve, about 68.3 percent of values lie within one standard deviation of the mean, 95.4 percent within two and 99.7 percent within three. Real data often does not follow that curve, so the two tiles marked Within 1 SD and Within 2 SD count what your data actually does. Chebyshev's inequality gives the floor that holds for any shape: at least 75 percent within two standard deviations and at least 88.9 percent within three. In the delivery data 90 percent sit within one standard deviation, far more than the normal 68 percent, because one extreme value has inflated the standard deviation itself. A second quick check: in normal data the IQR is about 1.349 standard deviations. Here it is 7 against an SD of 11.33, a ratio of 0.62, another sign the tails are not normal.
Z scores put different scales side by side
A z score is (x - mean) / standard deviation: how many standard deviations a value sits above or below the centre. It lets you compare results measured on different scales. An SAT score of 1800 on a test with mean 1500 and SD 300 is z = 1.0, while an ACT score of 24 with mean 21 and SD 5 is z = 0.6, so the SAT result is relatively stronger even though the raw numbers cannot be compared. Type any value in the z score box and it is placed against your current data, using the sample or population SD you selected.
Standard error is about the mean, not the data
The standard deviation describes how far individual values stray from each other. The standard error of the mean, s / √n, describes how far the sample mean is likely to be from the population mean, and it shrinks as the sample grows: four times as much data halves it. It is the building block of a confidence interval. When you select population the tile reads Not needed, because a mean computed from every member of the group has no sampling error to estimate.
Tallies and pasted columns
Most of the tools that rank for this search want the raw list typed out. Here each row holds a value and its frequency, so a quiz where seven students scored 8 and twelve scored 9 is two rows rather than nineteen numbers. Paste a spreadsheet column into the box below the rows and repeated values collapse into frequencies automatically; commas, tabs, spaces and line breaks all work as separators, and negative numbers and decimals are read correctly. The engine handles up to 100,000 values across 1,000 distinct rows.
What this page leaves out
Kurtosis, normality tests, t tests and confidence intervals move from describing a data set to making claims about a wider population, and they need assumptions this page cannot check for you. The numbers here are the honest starting point for any of them, and the tiles are arranged so that the ones you would copy into a report, centre, spread and the five number summary, sit at the top.
Frequently Asked Questions
Why does my TI-84 give a different Q1 from Excel on the same list?
They follow different quartile rules. The TI-83 and TI-84 take the median of each half and leave the middle value out when the count is odd. Excel QUARTILE.INC interpolates between neighbours at rank 1 + (n - 1) × 0.25. For 6, 7, 15, 36, 39, 40, 41, 42, 43, 47, 49 the calculator gives Q1 = 15 and Excel gives 25.5. Neither is wrong. Set the quartile menu to Exclusive to match the calculator or Linear to match Excel, and the numbers line up.
Should I divide by n or by n - 1 for a class of 30 students?
It depends on the question, not the size. If the 30 students are the whole group you want to describe, such as your own class's test results, they are a population and you divide by n. If they stand in for a larger group, such as every student in the district, they are a sample and you divide by n - 1. When in doubt, sample is the safer default because it does not understate the spread, and the panel always prints the other figure underneath.
Is a value outside the 1.5 IQR fence a mistake I should delete?
Not automatically. The fence only says a value is unusual compared with the middle half of the data. Check it against the source first: a typing slip such as 580 for 58 should be corrected, but a genuine extreme case belongs in the data and may be the most important row. If you do remove a value, report that you did and why. This calculator never drops anything on its own.
What separates a mild outlier from an extreme one?
Distance from the quartiles. A mild outlier lies between 1.5 and 3 times the IQR beyond Q1 or Q3; an extreme outlier lies more than 3 times the IQR beyond them. In the default delivery data the IQR is 7, so the outer fences are at 1 and 50 and the 58 minute delivery counts as extreme. The panel lists mild and extreme values separately.
How large does skewness need to be before I should worry?
A common rule of thumb calls anything between -0.5 and 0.5 roughly symmetric, 0.5 to 1 moderately skewed and beyond 1 highly skewed. With a small sample, also look at the line under the tiles that divides skewness by its standard error. If that ratio is under 2 the lean could be chance, even when the skewness itself looks large; above 2 the population probably leans the same way.
Why is numpy's standard deviation smaller than the one Excel gives me?
numpy.std divides by n by default, which is the population formula, while the usual Excel choice, STDEV.S, divides by n - 1. On the pandas example ages 21, 25, 62 and 43 that is 16.269219 against 18.786076. Pass ddof=1 to numpy, or set this page to Population, and the two agree. pandas .std() already divides by n - 1.
How do I enter data that is already a tally or frequency table?
Type each distinct value in the Value column and how many times it occurred in the Frequency column, adding a row per value. A frequency of 0 keeps the row but leaves it out of the sums. If you have the raw list instead, paste it into the box under the rows and the page builds the tally for you.
What does a z score of -1.5 tell me about a value?
That it sits one and a half standard deviations below the mean of your data. That is further out than any value in the middle half of normal data, but well inside the three standard deviations often used as an outlier cut off, so it is low without being extreme. Enter the value in the z score box and the panel shows it against your current data, using the sample or population standard deviation you selected.
Why does standard error say Not needed when I pick population?
Standard error, s / √n, measures how far a sample mean is likely to sit from the population mean it estimates. If your data is the whole population, the mean you calculated is the population mean, so there is no estimate and no error to size. Switch back to sample and the figure returns.
What share of my data should fall within one standard deviation of the mean?
About 68 percent if the data follows a normal curve, with 95 percent within two standard deviations. For data of any shape the only guarantee is Chebyshev's: at least 75 percent within two and 88.9 percent within three, with no promise at one. The Within 1 SD and Within 2 SD tiles count your actual data, and a figure far from 68 percent is a sign the normal model does not fit.