Progressive rollouts
A progressive rollout sits on top of a targeting rule that already has a percentage rollout. It auto-advances the rollout’s weights through a sequence of steps over time, so you do not have to come back and bump the percentage by hand.
When to use one
Section titled “When to use one”- You want to ramp a new variation: 1% for an hour, 10% for a day, 50% for a day, then 100%.
- You want the ramp to run unattended, off-hours.
For a single-shot percentage change at a specific time, Scheduled changes is simpler. For a percentage that should never advance on its own, leave the rule’s rollout alone.
Anatomy
Section titled “Anatomy”A progressive rollout is attached to one targeting rule. It carries:
- An ordered list of steps, each with a set of weights (one per variation) and a duration to stay at that step.
- A current step index and the time the next advance is due.
- A status: active, completed, or halted.
Weights are integers in the range 0 to 100,000 and must sum to exactly 100,000 (this is the underlying resolution; the dashboard shows percentages but the engine is precise to 0.001%).
The flow
Section titled “The flow”- Create. You pick a targeting rule and define the steps. The first step’s weights apply immediately. The next advance is scheduled for
now + the first step's duration. - Advance. When the current step’s duration elapses, feat writes the next step’s weights into the targeting rule, advances the index, and schedules the next advance.
- Complete. When the current step is the last one, the status becomes completed and no further advancement happens.
- Halt. You can halt a rollout at any time with a reason. The current weights stay where they are; nothing auto-advances. Halt is for “stop the ramp, I want to think.” Restart by creating a new rollout.
Bucketing during a ramp
Section titled “Bucketing during a ramp”Because feat’s percentage rollouts are deterministic and stable (see Percentage rollouts), the same user does not flip in and out of the new variation as the weights move:
- A user in the original 5% bucket stays in the new bucket at 10%, 25%, 50%, 100%.
- A user outside the 5% bucket only joins when the weight reaches a point that includes their hash position.
No user gets the new variation, has it taken away, and gets it back during a single ramp.
What progressive rollouts do not do
Section titled “What progressive rollouts do not do”A progressive rollout advances on the clock alone. It does not look at any metric from your application. If the new variation breaks production, you have to notice and halt the rollout yourself.
Org-level setting
Section titled “Org-level setting”Progressive rollouts are off by default per organization. An admin enables them from Organization features.
Related
Section titled “Related”- Percentage rollouts for the underlying bucketing.
- Targeting rules for what a rollout attaches to.
- Scheduled changes for one-shot dated weight changes.