Feature Rollout Cohort Generator
Rolling a feature out to a percentage of people sounds like one line of arithmetic, and the version everybody writes first has a fault that only shows on the day the percentage goes up: some of the people who had the feature lose it again. This works out the cohort in a way that cannot do that. Widen the rollout and the list only grows; narrow it and the list only shrinks. Nobody is handed a feature and then has it taken back.
What this generator does
Gives every key a fixed position in the feature’s own order, then takes the rollout from the front of that order. Because the position never moves, raising the percentage can only add people. Variants are decided from a separate order, so a key keeps its variant whatever the percentage does.
How to use this tool
- Name the feature. The name decides the order, so two features do not land on the same people.
- Set the percentage, and choose whether you want exactly that share or a rule that needs no recount as the list grows.
- Name your variants and their shares — they must add up to 100.
- Paste your own keys, or let it invent some, and read who is in.
Understanding the controls
- Feature name
- Part of what fixes each key’s position, so the same people are not first in every rollout you run.
- How the cut is made
- Exactly that share of the list you gave, which is a promise about the count; or by position, which gives roughly the right share but needs no recount when the list grows.
- Variants and shares
- Shares are a preference and the total is a promise: the counts always add up to the number of keys, with whole people, and the shares are honoured as closely as that allows.
- Your keys
- Paste user ids, account numbers, device ids — whatever you key the rollout on. Leave it empty and example keys are invented instead.
Common use cases
- Deciding which accounts a new feature goes to first
- Planning the steps of a staged release before you run it
- Checking that a rollout rule is sticky before it reaches real users
- Splitting a cohort into a control group and a treatment group that stay put
- Explaining to a team why the percentage cannot simply be re-rolled each week
How this generator works
The result is checked before it is shown, by working the same cohort out again at higher and lower percentages and comparing. Anybody who would lose the feature on a widening, or appear on a narrowing, would be reported. So would a variant that moved, a count that missed its target, or a set of variant counts that failed to add up to the number of keys.
Randomness and fairness
Nothing about the cohort is random: the same keys, the same feature name and the same percentage always give the same answer, which is the whole point. Your browser’s secure generator is used only to invent example keys when you have not supplied your own.
For how randomness is produced across the whole site, see how Generate Random works.
Limitations and good to know
- It decides who is in; it does not talk to your flag system or push the result anywhere.
- Up to 2,000 keys at once, which is a plan or a check rather than a production rollout.
- By-position mode gives a share close to the one you asked for rather than an exact count — that is the trade for not having to recount as the list grows.
- Variant shares are exact over the whole list. Among only the people currently in the rollout they will be close but not exact.
Privacy and your data
Any keys you paste stay in your browser. They are never transmitted, never stored, and never included in anything this site measures.
Related generators
- Feature Flag Name GeneratorA plausible feature-flag identifier for documentation, mockups or example config.
- A/B Test Sample Size CalculatorHow many visitors an A/B test needs before a difference of the size you care about means anything.
- Random Role Assignment GeneratorAssign roles to people at random, with rules for who must take a role, who must not, and how many each role needs.
- Distributed Trace GeneratorBuilds a sample request trace — one call, everything it called, and when — with every call sitting inside the one that made it.