Step 1 — Enter your p-values
Instructions:
- Paste one p-value per line. Optionally prefix with a label and a comma (e.g.
Outcome A, 0.017). - Values must be in
[0, 1]. Scientific notation (1.2e-4) is fine. - Or click Load recent results to pull p-values from tests you ran earlier in this session.
Which correction should I use?
Bonferroni
padj = min(1, p × k)
Controls: FWER (family-wise error rate).
Use when: you want a simple, universally understood correction and you can afford to lose power. Safe default for a small number of pre-planned confirmatory tests.
Downside: very conservative when k is large or tests are correlated.
Holm-Bonferroni
padj(i) = maxj≤i [(k − j + 1) · p(j)]
Controls: FWER, uniformly more powerful than Bonferroni.
Use when: you want strict FWER control but don't want Bonferroni's power loss. No reason not to prefer it over plain Bonferroni.
Interpretation: sequentially rejective — the smallest p is tested at α/k, the next at α/(k−1), etc.
Benjamini-Hochberg
padj(i) = minj≥i [p(j) · k / j]
Controls: FDR (false discovery rate — expected proportion of rejected nulls that are false).
Use when: you have many tests (screening, omics, exploratory epi) and can tolerate a small rate of false positives among your discoveries.
Downside: a discovery can be “approximately true” — not the right tool when one false positive is catastrophic.
Biostats rule of thumb: Confirmatory trials with pre-registered endpoints → Holm. Screening across many candidate biomarkers or SNPs → BH. Regulatory / primary-endpoint analysis that must not leak a single false positive → Bonferroni (or a formal gatekeeping procedure).
Worked example — five endpoints in a clinical trial
A small RCT tests five secondary endpoints against placebo. The raw p-values come back as p1 = 0.003, p2 = 0.013, p3 = 0.018, p4 = 0.041, p5 = 0.120. At α = 0.05, how many “survive” a correction?
- Uncorrected: four significant (p1–p4). But the expected number of false positives under the null is k·α = 0.25.
- Bonferroni (α/k = 0.010): only p1 clears the bar.
- Holm: p1 vs 0.010 ✓, p2 vs 0.0125 ✗ — stops there. One discovery.
- BH at q = 0.05: p3 ≤ (3/5)(0.05) = 0.030 ✓, so everything up to rank 3 is discovered. Three discoveries.
Click Load example above to see the full table and the inflation curve for this scenario.