Design a study. Pre-register it. Analyze with real, verified statistics.
ResLab flags p-hacking before it becomes a finding — on a tamper-evident audit trail.
Hypothesis, outcome, planned test, alpha — with power analysis telling you what effect you can actually detect with the sample you can afford.
The plan is sealed with a SHA-256 checksum and written to a hash-chained audit log. Revisions create new versions; the original is never mutated.
t, Welch, paired t, ANOVA, Pearson, Mann-Whitney, Levene, Jarque-Bera — computed, never generated. No LLM touches a number.
Claims come only from the pre-registered lane. Post-hoc exploration is allowed — but labeled and walled off. Hypotheses, never conclusions.
Test switching, tail switching, outcome switching, optional stopping, subgroup slicing, undeclared outlier removal, multiple comparisons — each flagged with its bias explained.
The audit chain verifies nothing was changed. A reproducibility recipe lets anyone replay the exact analysis — same data, same tests, same numbers.
This runs the actual ResLab engine in your browser. Step through a pre-registered study and watch the guardian flag a sample smaller than planned.
Drop in a CSV, pick the value and group columns, and ResLab runs a real two-group test — choosing the right one from the data's own assumptions.
Drop a CSV here or browse
Two numeric columns → mean comparison · or any table for group tests
The statistics library is cross-checked against published references — the same numbers you'd get from R or scipy — in an automated suite (78 tests, all green in CI).
| Check | Expected | Source |
|---|---|---|
| t(10, two-sided, α = 0.05) | 2.228 → p ≈ 0.05 | t-table |
| F(2, 27) 95th percentile | 3.354 → p ≈ 0.05 | F-table |
| R sleep dataset, paired t | t = −4.0621, df = 9, p = 0.002833 | R |
| R PlantGrowth ANOVA | F = 4.846, p = 0.01591, η² = 0.264 | R |
| Anscombe I correlation | r = 0.81642, p = 0.00217 | Anscombe |
| Mann-Whitney, fully separated n₁=n₂=4 | U = 0, p = 2/70 exactly | exact enumeration |