VALIDATION
Calculator Validation Against Reference Software
Every statistics calculator is re-run on fixed datasets and compared with independent reference values from SciPy and NumPy, the scientific Python libraries used in research.Last updated: 5 November 2026Results of the latest run
Run on 5 November 2026 against SciPy 1.18.1 and NumPy 2.5.3 (Python 3.13.17). 65 of 65 checks across 26 tests passed. The largest absolute difference was 4.2e-7.
| Test | Quantity | SolveGrid | Reference | Result |
|---|---|---|---|---|
| Welch t-test | t | 3.661871 | 3.661871 | Match |
| Welch t-test | df | 15.7627 | 15.7627 | Match |
| Welch t-test | p | 0.00215117 | 0.00215117 | Match |
| Student's t-test | t | 3.661871 | 3.661871 | Match |
| Student's t-test | p | 0.001783863 | 0.001783863 | Match |
| Paired t-test | |t| | 5.344936 | 5.344936 | Match |
| Paired t-test | p | 2.3563e-4 | 2.3563e-4 | Match |
| One-sample t-test | t | 1.993232 | 1.993232 | Match |
| One-sample t-test | p | 0.07739254 | 0.07739254 | Match |
| One-way ANOVA | F | 29.82414 | 29.82414 | Match |
| One-way ANOVA | p | 1.4576e-7 | 1.4576e-7 | Match |
| Chi-square independence | χ² | 9.57191 | 9.57191 | Match |
| Chi-square independence | p | 0.008346151 | 0.008346151 | Match |
| Pearson correlation | r | 0.7923329 | 0.7923329 | Match |
| Pearson correlation | p | 4.2849e-4 | 4.2849e-4 | Match |
| Spearman correlation | rho | 0.8165586 | 0.8165586 | Match |
| Spearman correlation | p | 2.0368e-4 | 2.0368e-4 | Match |
| Kendall's tau | tau-b | 0.670154 | 0.670154 | Match |
| Mann-Whitney U | U (smaller) | 12 | 12 | Match |
| Mann-Whitney U | p | 0.00427152 | 0.00427152 | Match |
| Wilcoxon signed-rank | T | 3 | 3 | Match |
| Kruskal-Wallis | H | 19.924 | 19.924 | Match |
| Kruskal-Wallis | p | 4.7158e-5 | 4.7158e-5 | Match |
| Friedman test | χ² | 18.54054 | 18.54054 | Match |
| Friedman test | p | 9.4183e-5 | 9.4183e-5 | Match |
| Shapiro-Wilk | W | 0.9736309 | 0.9736308 | Match |
| Shapiro-Wilk | p | 0.9077059 | 0.9077055 | Match |
| Cronbach's alpha | α | 0.9130435 | 0.9130435 | Match |
| Linear regression | b1 | 3.26083 | 3.26083 | Match |
| Linear regression | b2 | 4.28805 | 4.28805 | Match |
| Linear regression | R² | 0.8193792 | 0.8193792 | Match |
| McNemar (exact) | p | 0.01921082 | 0.01921082 | Match |
| p value calculator | z = 1.96, two-tailed | 0.04999579 | 0.04999579 | Match |
| p value calculator | t = 2.5, df 20, two-tailed | 0.02123355 | 0.02123355 | Match |
| p value calculator | t = 2.5, df 20, right-tailed | 0.01061677 | 0.01061677 | Match |
| p value calculator | t = −1.3, df 15, left-tailed | 0.1066117 | 0.1066117 | Match |
| p value calculator | F = 4.2, df (2, 27) | 0.02581468 | 0.02581468 | Match |
| p value calculator | χ² = 7.8, df 3 | 0.0503311 | 0.0503311 | Match |
| p value calculator | r = .45, n = 30 | 0.01259107 | 0.01259107 | Match |
| Confidence interval (mean) | lower | 45.8722 | 45.8722 | Match |
| Confidence interval (mean) | upper | 54.1278 | 54.1278 | Match |
| Confidence interval (proportion) | Wilson lower | 0.2935243 | 0.2935243 | Match |
| Confidence interval (proportion) | Wilson upper | 0.4642305 | 0.4642305 | Match |
| Margin of error | p = .5, n = 385, 95% | 0.04994451 | 0.04994451 | Match |
| Margin of error | n = 278 of N = 1,000 (FPC) | 0.0499668 | 0.0499668 | Match |
| Margin of error | mean, SD 12, n = 100, 99% | 3.090995 | 3.090995 | Match |
| Fisher's exact test | p two-sided | 0.03496503 | 0.03496503 | Match |
| Fisher's exact test | odds ratio | 20 | 20 | Match |
| Fisher's exact test | p one-sided (greater) | 0.02447552 | 0.02447552 | Match |
| Two-way ANOVA (Type III) | F (A) | 43.81893 | 43.81893 | Match |
| Two-way ANOVA (Type III) | p (A) | 3.7627e-5 | 3.7627e-5 | Match |
| Two-way ANOVA (Type III) | F (B) | 36.22361 | 36.22361 | Match |
| Two-way ANOVA (Type III) | p (B) | 1.4451e-5 | 1.4451e-5 | Match |
| Two-way ANOVA (Type III) | F (A × B) | 0.575463 | 0.575463 | Match |
| Two-way ANOVA (Type III) | p (A × B) | 0.5785065 | 0.5785065 | Match |
| Repeated-measures ANOVA | F | 62.81818 | 62.81818 | Match |
| Repeated-measures ANOVA | p | 7.6221e-9 | 7.6221e-9 | Match |
| Repeated-measures ANOVA | Greenhouse-Geisser ε | 0.8844071 | 0.8844071 | Match |
| Repeated-measures ANOVA | p (GG-corrected) | 4.8468e-8 | 4.8468e-8 | Match |
| Logistic regression | b (x) | 0.5814236 | 0.5814235 | Match |
| Logistic regression | b (x2) | 1.121683 | 1.121683 | Match |
| Logistic regression | SE (x) | 0.2915934 | 0.2915934 | Match |
| Logistic regression | p (x) | 0.04615719 | 0.0461572 | Match |
| Logistic regression | model χ² | 11.79547 | 11.79547 | Match |
| McDonald's omega | ω total (one factor, minres) | 0.7597483 | 0.7597483 | Match |
How the check works
The same calculation code that runs in your browser is run on fixed example datasets. Each result is then recomputed with a separate reference implementation in Python using SciPy and NumPy, and the two answers are compared.
A result passes when the two values agree to within 0.1% (0.5% for the Mann-Whitney normal approximation and 2% for the Shapiro-Wilk p value, which both software packages approximate). In practice the largest difference in this run was far smaller than that, as the table shows.
What this does and does not show
The check confirms the formulas and numerical routines give the same answers as widely used reference software on these datasets. It does not check that a test suits your data or design: see each calculator's assumptions and the statistical test chooser for that.
The datasets, the SolveGrid runner and the Python reference script are kept in the site's source code (scripts/validation) so the check can be repeated after any change.