With enough data, any tiny difference becomes statistically significant. Effect size measures how big the difference is, independent of sample size. Cohen's d expresses the difference in standard deviation units.
Two groups of 100,000 whose means differ by 0.75 points on a standard deviation of 15. The p-value is 1.6×10⁻³⁴ — overwhelming evidence that a difference exists. Cohen’s d is 0.055, a tenth of what is usually called small. With enough data, significance only tells you the effect is not exactly zero.
- Cohen’s benchmarks (0.2, 0.5, 0.8) were meant as a last resort; what counts as meaningful depends on the field and the cost of the change.
- Standardised effect sizes depend on the spread of the sample; the same effect looks bigger in a homogeneous group.
- Effects reported from small significant studies are inflated on average (see Hypothesis Testing).
from scipy.stats import ttest_ind rng = np.random.default_rng(17) a = rng.normal(100, 15, 100_000) b = rng.normal(100.75, 15, 100_000) # a 0.75-point difference on an SD of 15 p = ttest_ind(a, b).pvalue d = (b.mean() - a.mean()) / np.sqrt((a.var(ddof=1) + b.var(ddof=1)) / 2)
Assumes import numpy as np and import pandas as pd (and SciPy where imported). Each snippet simulates or makes up its own data, as the comments say.
The same idea with a library
# Python — effect size import numpy as np def cohens_d(group1, group2): n1, n2 = len(group1), len(group2) var1, var2 = group1.var(), group2.var() pooled_std = np.sqrt(((n1-1)*var1 + (n2-1)*var2) / (n1+n2-2)) return (group1.mean() - group2.mean()) / pooled_std d = cohens_d(model_a_scores, model_b_scores) print(f"Cohen's d = {d:.3f}")
- Statistical Power Analysis for the Behavioral Sciences (2nd ed.), J. Cohen, Lawrence Erlbaum, 1988
- G. M. Sullivan & R. Feinn, “Using Effect Size — or Why the P Value Is Not Enough”, Journal of Graduate Medical Education 4(3), 2012
- R. L. Wasserstein & N. A. Lazar, “The ASA Statement on p-Values: Context, Process, and Purpose”, The American Statistician 70(2), 2016
Last reviewed October 2026 · How this site checks its content · Report a mistake
1. Study A reports p = 0.001 with 100,000 people; study B reports p = 0.04 with 50. Which found the larger effect?
Show answer
B. A huge sample makes even a trivial difference significant. Compare effect sizes (and their confidence intervals), not p-values.
2. Two groups differ by Cohen’s d = 0.2. Which description fits?
Show answer
B. Cohen called 0.2 “small”, but whether it matters depends on the setting: a small shift applied to millions of people, or to money, can be important.
3. A huge trial finds a drug lowers blood pressure by 1 mmHg on average, p < 0.001. The best summary is:
Show answer
C. Statistical significance answers “is it distinguishable from zero?”; practical significance asks “is it big enough to care about?”.
- MLOps & Production MLCI/CD for MLAutomated testing of data, models, and deployments
- The ToolkitComparing Model RunsIs this improvement real? Statistical tests for comparing model performance across runs
- The ToolkitHypothesis Testing & p-valuesNull vs alternative, what a p-value actually means, and the two ways to be wrong