Does changing a targeting rule re-bucket users?

Last updated:

No. A user bucket comes from a salt stored on the flag and the user key, so editing rules, adjusting weights or adding conditions leaves every assignment untouched. Two things do reassign everybody: changing the attribute a rollout buckets by, and deleting a flag and recreating it, because a new flag gets a new salt.

No. Ordinary targeting edits do not move anybody.

The bucket is computed from two inputs: a salt that lives on the flag from the moment it is created, and the key identifying the user. Neither is affected by editing a rule, reordering rules, adjusting weights, or adding conditions. A user in bucket 37 stays in bucket 37 for the life of the flag.

What your edits change is which band bucket 37 falls into, and which rule gets to answer before the rollout is consulted at all.

Where the confusion comes from

A user can change variation without being re-bucketed, and the two are easy to conflate.

Adding a rule above a rollout pulls matching users out of the rollout entirely, because rules run in priority order and the first match wins. Those users now get the rule’s variation. Their bucket did not move. Remove the rule and they fall through to exactly the band they were always in.

Widening a rollout works the same way. The people who gain the feature at 50% are the ones whose fixed buckets sit between the old boundary and the new one.

The two changes that do reassign

Changing bucketBy replaces one of the two hash inputs, so every user is recomputed at once. Switching from a user key to an account key is a legitimate thing to want, but treat it as starting a new rollout rather than tuning an existing one. Anyone mid-experiment will be redistributed.

Deleting a flag and recreating it under the same key does the same thing less visibly. The new flag carries a new salt, so the population reshuffles even though the key, variations and rules look identical to what you had. If you need a clean reassignment, this is the way to get one deliberately.

Practical consequence

You can iterate on targeting during a live rollout without disturbing the cohort you are measuring. Add an internal-staff rule, fix a condition, reorder your rules, all without touching who is in the experiment.

Just leave bucketBy alone while the experiment runs.

Bucketing inputs are described in Rollout strategies, and rule precedence in Targeting and segments.

Still stuck?

The docs cover every SDK, and the free Solo plan is enough to reproduce most of these locally.