Your data
Paste a table straight from Excel or Google Sheets, or drop a CSV file. Nothing is uploaded anywhere — the whole calculation runs inside this browser tab.
CSV, TSV or plain text. Files saved in windows-1251 are detected and re-read automatically, so Cyrillic headers do not turn into garbage.
Parsing options
Columns
Result
Save and share
The drawing library is downloaded only when you press the button, and only on this page.
This page has no server side at all. The table you paste is parsed by JavaScript inside your own browser, the chart is drawn on a canvas element on your machine, and the export file is assembled locally. Nothing is uploaded, stored or written to any log. You can disconnect from the network after the page has loaded and everything will still work — which is the simplest way to verify the claim yourself.
Facts and limits of this method
| Test | Jarque–Bera, based on skewness and excess kurtosis |
|---|---|
| Statistic | JB = n/6 · (S² + K²/4) |
| Reference distribution | Chi-square with 2 degrees of freedom |
| p-value | Exact right tail via the incomplete gamma function |
| Verdict threshold | p above 0.05 means the data is consistent with normality |
| Minimum rows | 4, and reliably around 30 |
When it misleads you
- The test cannot prove normality. A p-value above 0.05 means the data does not visibly contradict a normal distribution, which is a much weaker claim than "the data is normal" — and on small samples almost nothing contradicts anything.
- On very large samples the opposite failure appears: with 100,000 rows the test rejects normality over deviations far too small to affect any calculation you would do afterwards. Above a few thousand rows the histogram is more informative than the p-value.
- Jarque–Bera only looks at skewness and kurtosis. A symmetric distribution with two peaks can pass the test comfortably while being nothing like normal, which is why the histogram is drawn alongside rather than as decoration.
- Non-normality is not a defect. Response times, incomes and durations are naturally skewed; the right response is usually to use median-based methods rather than to try to force the data into a shape it does not have.
How it is calculated
Skewness measures asymmetry and excess kurtosis measures tail weight. A normal distribution has zero for both, so the test combines the two into a single statistic that grows as either departs from zero, weighted by the sample size.
That statistic follows a chi-square distribution with two degrees of freedom when the data really is normal, and the p-value is its exact right tail computed through the regularised incomplete gamma function. The two degrees of freedom correspond to the two quantities being tested.
The verdict uses the conventional 0.05 threshold, and the p-value is shown next to it so you can see how close the call was. A p of 0.048 and a p of 0.0001 both count as rejection and are very different situations.
A histogram is drawn from the same column because a single p-value cannot show you a second peak, a floor at zero or a cluster of rounded values. The number tells you whether to worry; the picture tells you what to worry about.
Questions and answers
My data is not normal. What should I do?
Usually nothing dramatic. Use methods that do not assume normality: the median instead of the mean, the IQR instead of the standard deviation, Spearman instead of Pearson. Transforming the data is a last resort, not a first move.
Why does the test reject normality on my huge dataset?
Because with enough rows any real distribution differs measurably from a perfect normal. At that size look at the histogram and ask whether the deviation matters for your purpose, rather than at the p-value.
Is Jarque–Bera the best normality test?
It is a reasonable general-purpose one and it is fast. Shapiro–Wilk has more power on small samples; if your sample is under 30 and the answer is critical, treat this result as a hint and verify elsewhere.
What is excess kurtosis?
Kurtosis with 3 subtracted, so that a normal distribution scores exactly 0. Positive values mean heavier tails than normal, negative values mean lighter ones.
Is my data uploaded?
No. The test statistic, the p-value and the histogram are all computed locally.