Cohen's d Effect Size, Explained

After reading this you can compute Cohen's d and Hedges' g from two groups (or from a t statistic), convert the result to an equivalent correlation r, and read the number without over- or under-selling it.

What Cohen's d measures

Cohen's d tells you how far apart two group means are, measured in standard deviations. A p-value tells you whether a difference is unlikely to be zero. Cohen's d tells you how big the difference is. Those are different questions, and you usually want both.

Suppose group A scores a mean of 10 and group B scores a mean of 12, with both groups having a standard deviation of 2. The raw gap is 2 points. Divide that by the standard deviation of 2 and you get d = 1.0. The groups differ by a full standard deviation. That is a large separation: the average person in group B outscores about 84% of group A.

The scale is unitless, so you can compare effects across studies that used different measurement scales. A d of 0.5 on a reading test and a d of 0.5 on a reaction-time task describe the same relative separation, even though seconds and points are not comparable in raw units.

When to use it, and when not

Use Cohen's d when you compare the means of two groups on a continuous outcome, and both groups are roughly normal with similar spread. It pairs naturally with an independent-samples t-test. If you ran that test and want to report an effect size alongside it, d is the standard choice.

Do not use d when the outcome is a proportion or a count with very skewed distribution. For proportions, an odds ratio or risk difference fits better. Do not use d to compare more than two groups at once; for that, look at \eta^2 or a set of pairwise d values. And do not read a d in isolation from its confidence interval: a d of 0.8 from 6 people per group is far shakier than a d of 0.3 from 500 per group.

Cohen's d assumes the two groups share a comparable spread. If one group's SD is 2 and the other's is 8, the pooled SD averages them and the single d becomes hard to interpret. Report the group SDs so a reader can judge this.

The formula and the intuition

The core idea is a signal-to-noise ratio. The signal is the difference between means. The noise is the typical spread within a group.

d = \frac{\bar{x}_1 - \bar{x}_2}{s_p}

Here \bar{x}_1 and \bar{x}_2 are the two group means, and s_p is the pooled standard deviation. The pooled SD combines the two group SDs, weighting by their degrees of freedom:

s_p = \sqrt{\frac{(n_1 - 1)s_1^2 + (n_2 - 1)s_2^2}{n_1 + n_2 - 2}}

In this formula n_1 and n_2 are the group sizes and s_1, s_2 are the group SDs. When both groups have the same SD, s_p equals that common SD, and d is just the raw difference divided by it.

If you only have a t statistic from an independent-samples test, you can recover d without the raw means:

d = t \sqrt{\frac{n_1 + n_2}{n_1 \cdot n_2}}

For equal groups this simplifies to d = 2t / \sqrt{N} where N = n_1 + n_2. With t = 2.5 and 30 per group, that gives d = 2 \times 2.5 / \sqrt{60} = 0.645.

Hedges' g and the small-sample correction

Cohen's d slightly overestimates the true effect in small samples, because the pooled SD is a biased estimate. Hedges' g fixes this by multiplying d by a correction factor:

g = d \cdot \left(1 - \frac{3}{4(n_1 + n_2) - 9}\right)

With 30 per group the correction factor is 1 - 3/(240 - 9) = 0.987, so g is about 1.3% smaller than d. The correction barely matters at that size. With 5 per group the factor drops to about 0.90, shaving 10% off. Use g whenever a group has fewer than about 20 members; with large samples d and g agree to two decimals.

Worked example with the demo data

Two groups of 30

Use the demo values: group A has mean 10, SD 2, n 30; group B has mean 12, SD 2, n 30.

  1. Pooled SD: with equal SDs of 2, s_p = \sqrt{(29 \cdot 4 + 29 \cdot 4)/58} = \sqrt{4} = 2.
  2. Cohen's d: d = (10 - 12)/2 = -1.0. The sign shows group B scored higher; the magnitude is 1.0.
  3. Hedges' g: correction factor 1 - 3/231 = 0.987, so g = -1.0 \times 0.987 = -0.987.
  4. Equivalent r: convert with r = d / \sqrt{d^2 + 4} for equal groups, giving r = 1.0/\sqrt{5} = 0.447.

So the two groups differ by one full standard deviation, a large effect. Report it as d = -1.0, g = -0.99, r = 0.45. The sign convention is your choice; state which group you subtracted from which.

Reading the number

The common rules of thumb come from Jacob Cohen:

Cohen's benchmarks and what they mean in overlap terms
dLabel% of group B above group A mean
0.2small57.9%
0.5medium69.1%
0.8large78.8%
1.0very large84.1%

The last column translates d into a percentage anyone can picture. At d = 0.2 the distributions overlap heavily: a randomly chosen member of group B outscores the group A average only 57.9% of the time, barely better than a coin flip. At d = 0.8 that rises to 78.8%.

Treat "small, medium, large" as rough signposts, not verdicts. In some fields a d of 0.1 changes real outcomes at scale, while in others a d of 0.5 is unremarkable. Compare your d to typical effects in your own area.

As d grows, the share of group B scoring above the group A average climbs from just over half toward near-total separation.

Two normal curves with equal SD sit side by side. Increasing the gap between their means from 0 to 3 SDs slides the second curve rightward and shrinks the overlap; the displayed d equals the gap in SD units and the overlap percentage falls accordingly.

Common mistakes

Watch for these errors, each of which changes the number.

Dividing by the wrong SD
Using one group's SD instead of the pooled SD inflates or deflates d. With equal SDs it makes no difference, but with unequal spread it can shift d by 20% or more.
Confusing t with d
A t of 2.5 is not a d of 2.5. The t statistic grows with sample size; d does not. At 30 per group that t maps to d = 0.645, not 2.5.
Ignoring the small-sample bias
Reporting d from 5 per group without switching to g overstates the effect by about 10%.
Reading magnitude without a confidence interval
A point estimate of 0.8 can have an interval running from 0.1 to 1.5. State the interval so readers know how precise the estimate is.

Related calculators

To turn d into a target sample size for a planned study, use the Power & Sample Size for t-Tests calculator. To move between d, r, \eta^2 and odds ratios, use the Effect Size Converter. For a confidence interval around a single mean or proportion, see the Confidence Interval calculator, and to size a study for a target margin of error, the Sample Size calculator.

Frequently asked questions

Is a negative Cohen's d bad?

No. The sign only shows direction. A d of -1.0 means the second group scored higher by one SD. Report which mean you subtracted so the sign is unambiguous.

What is the difference between Cohen's d and Hedges' g?

They estimate the same thing. Hedges' g applies a small correction that removes the upward bias of d in small samples. With 30 per group g is about 1.3% smaller; with 5 per group it is about 10% smaller.

How do I convert Cohen's d to a correlation r?

For two equal groups, r = d / \sqrt{d^2 + 4}. A d of 1.0 becomes r = 0.447; a d of 0.5 becomes r = 0.243.

Can I get d from just a t statistic?

Yes, if you also know both group sizes. Use d = t\sqrt{(n_1 + n_2)/(n_1 n_2)}. Without the group sizes the t value alone cannot give d.

What counts as a large effect?

By Cohen's benchmarks, 0.2 is small, 0.5 medium, 0.8 large. These are general guides; judge your d against effects that are typical in your own field.