A test comes back flat. Someone opens the segment dropdown, and four clicks later there it is: significant on mobile, for returning users, in the UK. The deck writes itself. The change ships to everyone.

Nothing in that workflow looks like cheating. Every individual number is computed correctly. And yet the result is very probably noise, because the analysis quietly ran forty tests and reported the one that won.

This is the deep dive behind the multiple comparisons section of the pitfalls catalogue.

What the multiple comparisons problem actually is

A significance threshold is a rate, not a verdict. Setting α = 0.05 means: in a world where the variant does nothing at all, you will still declare a winner 5% of the time. That error rate is the price of admission, and it is tolerable — for one comparison.

Run more than one and the errors accumulate. For m independent comparisons, the probability of at least one false positive somewhere in the set is:

FWER = 1 − (1 − α)^m

That quantity is the family-wise error rate, almost always written FWER. The “family” is the whole set of comparisons you performed; the FWER is the probability that at least one of the winners you declare from that set is false.

It is worth being precise about how that differs from α, because the two get conflated constantly:

  • α — the per-comparison error rate. The chance that one particular test, considered in isolation, falsely declares a winner. This is the 5% everyone quotes.
  • FWER — the family-wise error rate. The chance that anything at all in the batch is a false winner. This is the number that describes your actual exposure, and nobody quotes it.

Run a single comparison and the two are identical. Run more than one and they diverge — fast.

ComparisonsChance of ≥1 false winner at α = 0.05
15%
314%
523%
1040%
2064%
4087%
10099.4%

At twenty comparisons you are more likely than not to be looking at at least one thing that isn’t real. At forty — which is five metrics across eight segments, a perfectly ordinary weekly read — a false positive is close to guaranteed.

The critical detail, and the one that makes this so hard to police: the false positive doesn’t announce itself. It has the same p-value, the same confidence interval and the same green tick as a real effect. You cannot tell them apart by looking. The only defence is knowing how many comparisons produced the one you are looking at.

The count that matters is not how many comparisons you reported. It is how many you could have reported and would have written up had they won.

That second framing — the garden of forking paths — is the one people resist. If you would have taken “wins on Android” as a finding, then Android was in the family, whether or not you happened to look at it. Analysis flexibility is multiplicity even when it never produces a single extra line of code.

The one-line version

Count the comparisons before you run them, not after you like one. If the count is uncomfortable, cut it by simplifying the experiment; if it cannot be cut, correct it with a method matched to the decision — and never let a segment that won on its own get promoted to a rollout without a test of its own.

Where this connects