A new model version ships. It's better on average — and quietly worse on one slice of your traffic, because "better on average" is a statement about someone else's benchmark, not your workload. This page measures the three ways to take that upgrade: let an alias auto-upgrade you, gate it behind your golden set, or stage it through a small traffic slice. The differences are counted in users who got a bad answer before anyone noticed.
The setup: 10,000 requests/day. The candidate model is fine everywhere except one slice — 12% of traffic (say, invoices in one regional format) where quality drops from 95% to 70%. The one dial you control in advance: how many cases from that slice your golden set happens to contain.
Walk the bars left to right. The alias path is the honest name for "we didn't decide": the model under your prompts changed the day the vendor said so, the regression ran at full traffic, and the detection signal was support complaints — a slow, angry channel. The staged path caps the blast radius by arithmetic: 5% of traffic for the day it takes the per-arm metric to show the gap. The shadow path can be perfect — zero users exposed, the regression caught on your golden set before any traffic — but only if the golden set contains the slice. Slide the coverage dial to 0 and shadow testing waves the regression straight through: a golden set can only defend the traffic it represents.
# the pipeline, as configuration rather than heroics model : claude-sonnet-4-5 # PINNED — upgrades are decisions, not surprises shadow : run golden set (incl. every known slice) on candidate; gate on no-regression-per-slice stage : 5% traffic, per-arm quality metric, auto-halt on significant gap rollback: one config change, rehearsed — the stage gate is only real if the exit is
Second opinion (taught here — these corroborate): Anthropic docs · developing evals · Google SRE · release engineering.