Bell Statistics

What is an equivalence test?

An equivalence test establishes that two options perform the same within a band you specify, by ruling out differences in both directions. It is the test that lets you claim similarity, which an ordinary experiment returning a non-significant result cannot do.

Also called
tost, two one-sided tests, equivalence testing, practical equivalence
Allon Korem

Written by Allon Korem

Chief Executive Officer

Last updated

In plain English

Standard significance testing is built to detect differences and is structurally incapable of establishing sameness. Its null hypothesis is that no difference exists, and failing to reject a null never confirms it — you have not gathered enough evidence to overturn an assumption, which is a different thing from having evidence for it. This matters because "the two are basically the same" is a genuinely useful conclusion, and the ordinary machinery cannot produce it.

The reason the shortcut is so tempting is that it feels reasonable: the test came back p = 0.7, so surely the variants perform alike. But an experiment with a hundred users returns p = 0.7 whether the true effect is zero or catastrophic, so the logic rewards small samples. The less evidence you collect, the more confidently you would claim equivalence — which is a good sign the reasoning is backwards.

The fix is to invert the hypotheses. An equivalence test starts from the assumption that a meaningful difference DOES exist and requires the data to rule it out. Concretely, you nominate a band — plus or minus one percentage point of conversion, say — inside which any difference is too small to care about. Then you run two one-sided tests: one ruling out a difference below the lower bound, one ruling out a difference above the upper. Pass both and you have established equivalence. That pair of tests is the TOST procedure, and it is the standard implementation.

In practice the whole thing can be read off a confidence interval. If the entire interval on the difference sits inside your band, the two are equivalent at that level; if it pokes out either side, they are not. The relationship to a non-inferiority test is then obvious — that one checks only the lower bound, because it only cares about not being worse, while this checks both. Non-inferiority is the more common need in product work; equivalence matters when being *better* is also a problem, as with a supposedly cosmetic refactor.

The cost is sample size, and it is substantial. Establishing that a difference is smaller than some band takes considerably more data than detecting a difference of that size, because you are pinning down a location rather than merely distinguishing it from zero. Narrow bands get expensive fast. This is why equivalence testing is common in pharmaceutical bioequivalence, where regulators mandate the band, and rare in product experimentation, where teams usually settle for the cheaper one-sided question.

The formula

Two one-sided tests against the two edges of the band. Both must reject for equivalence to be claimed, which is why the procedure is named for the pair rather than for a single statistic.

The hypotheses
H₀: |μ₁ − μ₂| ≥ Δ H₁: |μ₁ − μ₂| < Δ

The null is that a meaningful difference EXISTS. Inverting the usual direction is the entire idea.

The two one-sided tests (TOST)
t₁ = ( d + Δ ) / SE tested upward, t₂ = ( d − Δ ) / SE tested downward

d is the observed difference. Both must reach significance at α — see the equivalence calculator.

The interval shortcut
equivalent ⟺ the whole ( 1 − 2α ) CI lies within ( −Δ, +Δ )

A 90% interval for α = 0.05, not 95% — the two one-sided tests at 5% each correspond to a 90% two-sided interval.

Sample size
n ∝ ( z_α + z_β )² σ² / Δ²

Quadratic in the band, and needing a larger n than detecting an effect of the same size.

Worked example

An engineering team refactors the checkout to remove a legacy dependency. It is meant to be behaviourally identical, and the team needs to demonstrate that rather than assume it. They agree a band of ±0.5 percentage points on a 6.2% conversion rate — anything inside that is genuinely cosmetic. The test runs on 140,000 users per arm.

Equivalence band (Δ)
±0.5 percentage points
Legacy checkout
6.21% conversion
Refactored checkout
6.14% conversion
Observed difference
−0.07 pp
90% CI on the difference
−0.28 pp to +0.14 pp
Both bounds inside ±0.5?
Yes

Equivalence established. TOST rejects both one-sided nulls, p < 0.001 in each direction.

This is what a clean equivalence result looks like: the interval sits comfortably inside the band with room on both sides, so the conclusion does not depend on where exactly the band was drawn. Contrast it with the ordinary reading of the same data — a two-sided test gives p = 0.52, which tells you nothing and would have been reported as "no significant difference", a phrase that means "we did not look hard enough" as often as it means what the team wanted. Two things worth noting. The interval here is a 90% one, not 95%, which surprises people: two one-sided tests at 5% correspond to a 90% two-sided interval, and using 95% makes the procedure needlessly conservative. And 140,000 users per arm is a lot for a refactor — establishing sameness within half a point genuinely costs more than detecting a half-point difference would have.

Common misconceptions

A high p-value means the two variants are equivalent.
It means no difference was detected, and an underpowered test produces that outcome regardless of the truth. The logic rewards collecting less data, which is a reliable sign it is inverted. Equivalence has to be established positively, by ruling out differences larger than a band you specified in advance.
Equivalence testing and non-inferiority testing are the same thing.
Non-inferiority checks one bound — not worse by more than the margin — and is indifferent to how much better the new version might be. Equivalence checks both, so it also rules out being meaningfully better. Use non-inferiority when an improvement is welcome, and equivalence when a change in either direction would mean something went wrong, such as a refactor meant to be behaviourally identical.
Use the 95% confidence interval to judge equivalence at the 5% level.
The correct interval is 90%. TOST runs two one-sided tests at 5% each, and that corresponds to a two-sided 90% interval rather than a 95% one. Using 95% is not wrong in the sense of being invalid — it is conservative, and it will fail some tests that genuinely met the standard, at real cost in sample size.

Frequently asked questions

How do I decide the equivalence band?
It is the largest difference you would still call irrelevant, and it has to be argued from the business rather than derived from the data. A useful discipline is to state it as a consequence: at what change in conversion would anyone actually do something differently? Set the band just inside that. Then check the sample size, because the requirement scales with the square of the band and a narrow one can be unaffordable.
Why does equivalence testing need more data than a normal test?
Because pinning a difference inside a band is a stronger claim than distinguishing it from zero. A standard test only has to establish which side of zero the effect sits on; an equivalence test has to establish that the effect lies within a specified region, and that means the confidence interval must be narrow enough to fit inside it. Roughly, expect to need more data than detecting an effect the size of your band would require.
When would a product team actually need an equivalence test?
Most often for changes meant to be behaviourally invisible: refactors, infrastructure migrations, replacing a vendor with an in-house implementation, or rebuilding a page in a new framework. In all of those a difference in either direction signals that something changed which was not supposed to. When only the downside matters — a cheaper vendor, a simpler design — non-inferiority asks the cheaper question and is usually the better fit.

Related terms

  • Confidence interval

    The range your data can actually support, and why it answers the business question a p-value cannot.

  • Non-inferiority test

    Not "is it better" but "is it not meaningfully worse" — and the margin you choose decides the entire answer.

  • Statistical power

    The probability your test finds a real effect — and why most tests that report nothing were never able to.

  • T-test

    The workhorse for comparing two averages — and the four assumptions that decide whether its answer means anything.

Calculate it

  • Equivalence: two means

    Show two averages are close enough to be interchangeable — set the margin, size the study, run both one-sided tests.

  • Equivalence: two proportions

    Prove two rates are close enough to swap — margin in percentage points, sample size, then both one-sided tests.

Knowing the term is the easy part

Applying it to a live measurement problem is the part that goes wrong. If you are designing an experiment, reading a result you do not trust, or trying to work out what your marketing actually caused, that is the work we do.