Bell Statistics

What is a guardrail metric?

A guardrail metric is one an experiment must not damage, watched alongside the metric it is trying to improve. It cannot win the test — it can only stop it — which is what separates it from a secondary metric and keeps the decision rule honest.

Also called
guardrail, counter metric, safety metric
Allon Korem

Written by Allon Korem

Chief Executive Officer

Last updated

In plain English

Every experiment optimises something, and almost every optimisation has a way to cheat. Aggressive email increases sessions and increases unsubscribes. A more prominent upsell increases revenue per order and increases returns. Removing a confirmation step increases completion and increases support tickets. A guardrail metric is the one you watch to make sure the win you measured is not being paid for somewhere the test was not looking.

The defining property is asymmetry. A guardrail can veto a launch; it can never justify one. That sounds like a small distinction and it is the entire mechanism — the moment a guardrail is allowed to declare a win, it has become a second primary metric, the multiple comparisons problem arrives, and the decision rule turns into "ship if anything came out green". Nominating exactly one metric that can say yes, and several that can say no, is what keeps the type I error rate roughly where you set it.

That asymmetry also changes how they should be powered, in a way most teams get backwards. On the primary metric you are protecting against a false positive, so you want a strict threshold. On a guardrail you are protecting against a missed regression, so the error that matters is the false negative — and correcting a guardrail for multiple comparisons makes it less sensitive to exactly the thing it exists to catch. Most mature programmes run guardrails uncorrected, at a looser threshold, and treat the occasional false alarm as the cost of the insurance.

Good guardrails come in three flavours. Business-critical metrics that no experiment is allowed to damage regardless of what it improves — revenue, retention, checkout completion. Quality and trust metrics that degrade slowly and expensively: unsubscribes, complaint rate, app store rating, support contacts. And validity metrics, which are not about the product at all but about whether the experiment can be believed — sample ratio mismatch, latency, error rate, crash rate. That third group catches more real problems than the other two combined.

Two practical points. Guardrails are usually the metrics worth watching with sequential testing, because waiting two weeks to learn that a release broke checkout is not a real option, and continuous monitoring is precisely what sequential boundaries are built for. And the threshold on a guardrail should be an interval question rather than a significance one: what you want to know is not whether the metric moved, but whether you can rule out a drop larger than you are willing to accept — which is an equivalence or non-inferiority test, not a significance test.

The formula

The arithmetic is ordinary; what is specific to guardrails is which hypothesis goes where and which error you are willing to spend.

The non-inferiority form
H₀: Δ ≤ −margin vs H₁: Δ > −margin

Rejecting H₀ shows the metric did not drop by more than the margin. This is the question a guardrail is actually asking — see the non-inferiority calculator.

Why not to correct
stricter α ⟹ lower power ⟹ more missed regressions

A multiple-comparisons correction on a guardrail trades the error you care about for the one you do not. Run them uncorrected.

The interval to read
lower bound of the (1 − α) CI > −margin

A guardrail passes when the worst case consistent with the data is still acceptable, not when the p-value is above 0.05.

Validity guardrail: SRM
χ² on arm counts, flag if p < 0.001

The cheapest guardrail in existence and the one that catches the most. It gates every other metric, so run it first.

Worked example

A test makes the newsletter signup prompt more prominent. Signups rise 14%, comfortably significant. Two guardrails are watched: unsubscribe rate within 30 days, and the spam complaint rate. Unsubscribes move from 2.10% to 2.31%, p = 0.09. Complaints move from 0.041% to 0.052%, p = 0.21.

Primary: signups
+14%, p < 0.001
Guardrail: unsubscribes
2.10% → 2.31%, p = 0.09
Unsubscribe 95% CI
−0.03 to +0.45 percentage points
Guardrail: complaints
0.041% → 0.052%, p = 0.21
Complaint 95% CI
−0.006 to +0.028 percentage points
Acceptable unsubscribe increase
+0.10 percentage points

Neither guardrail is significant, and neither passes. The unsubscribe interval extends to +0.45 points, four and a half times the agreed tolerance.

Read as a significance test both guardrails say ship, and that reading is wrong in a specific way: p = 0.09 on a guardrail is not reassurance, it is an unresolved question with the evidence leaning the wrong way. The interval is what the decision needs, and it cannot rule out an unsubscribe increase four times larger than the team said it would accept. Complaints matter more still, because a rising complaint rate is scored against the sending domain and damages deliverability for every message including transactional ones — a slow, expensive harm that a two-week test measures poorly. The right call is to keep the arm running specifically to tighten the guardrail interval, and to treat the 14% signup win as unbanked until it does.

Common misconceptions

The guardrail was not significant, so the change is safe.
A non-significant guardrail with a wide interval is an open question, not a clean bill of health — and it is exactly what an underpowered guardrail always produces. Read the lower bound: if a drop larger than you are willing to accept is still consistent with the data, the guardrail has not passed.
We should correct guardrails for multiple comparisons like everything else.
That makes them stricter and therefore less likely to fire, which is backwards for a metric whose job is catching harm. On a guardrail the expensive error is the missed regression, so most programmes run them uncorrected and accept occasional false alarms as the price of the protection.
A guardrail that improved is a second win worth reporting.
Report it, but do not let it decide anything. The moment a guardrail can justify a launch it has become a second primary metric, and a decision rule of "ship if any metric came out green" inflates the false-positive rate exactly as multiple testing predicts. One metric says yes; several say no.

Frequently asked questions

How many guardrail metrics should an experiment have?
A standing set of five to ten that run automatically on every experiment, plus anything specific to the change being tested. Because they cannot declare a win, the count does not inflate your false-positive rate the way extra primary metrics would — the cost of another guardrail is occasional investigation time, not statistical validity. The standing set should always include the validity checks.
What is the difference between a guardrail and a secondary metric?
Authority. A guardrail can block a launch and cannot justify one; a secondary metric is diagnostic and decides nothing on its own. In practice teams blur them, which is how a flat primary metric ends up shipped because a secondary looked good. Writing down which metrics have which power before the test runs is what keeps the distinction real.
How do I set the tolerance on a guardrail?
Ask what size of degradation you would genuinely accept in exchange for the win you are chasing, and write that number down before the test starts. Then read the confidence interval's lower bound against it rather than testing against zero. Guardrails set against zero either never pass, because no interval excludes every possible drop, or get quietly ignored.

Related terms

  • A/B testing

    A randomised experiment on live traffic — and randomisation is the only part that makes it causal.

  • Multiple comparisons

    Test enough things and something will look significant — the arithmetic, and the four fixes.

  • Sample ratio mismatch

    The split is wrong, so the randomisation is broken — the cheapest and most decisive check you can run.

  • Sequential testing

    How to look at a running test without breaking it — and what peeking costs when you do not.

  • Type II error

    The false negative — invisible by nature, which is why nobody counts how many good ideas it kills.

Calculate it

  • Non-inferiority: two proportions

    Show a rate has not dropped by more than you can afford — margin, direction, sample size and confidence bound.

  • Chi-square test

    Test a contingency table of counts for association — any number of rows and columns.

  • 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.

References