Rule Statuses
Every rule on a flag has a status that describes where it is in its lifecycle. The status drives what shows in the rule list, which actions appear on the rule's menu, and — most importantly — whether visitors are seeing the rule right now.
Draft
A new rule starts in Draft status. A draft rule has never run before — it has been added to the draft but not yet promoted to live traffic.
- Not running — no visitors are evaluated by this rule.
- Editable — change targeting, variations, and rollout freely.
- Visible only to you and your teammates inside the editor — the snippet and SDKs ignore draft rules entirely.
A rule lands in Draft regardless of how it was added: from the “Add rule” dropdown, by copying a rule from another environment, or by duplicating an existing rule. Even if the source was Running, the new copy is Draft until you click Run.
Transitions from Draft:Draft → Running (click Run while the environment is also Running), or Draft → Ready (click Run while the environment is Paused or Draft). Once a rule has launched once, it can no longer return to Draft — it cycles between Running, Ready, and Paused instead.
Ready
A Ready rule is a rule you have explicitly started, but its parent environment is currently paused. The rule is staged to evaluate as soon as someone starts the environment — no further click on the rule is needed.
- Not evaluating yet — no visitors are bucketed.
- The rule is included in the published datafile only when the env starts. Editing a Ready rule's targeting still goes through the draft + Publish flow like any other content edit.
- The rule keeps its Ready intent even if you toggle the environment off and on again. Run on a rule is a durable signal — the rule is ready until you explicitly Pause it.
Transitions from Ready:Ready → Running (the env starts, automatically), Ready → Paused (click Pause on the rule).
Running
A Runningrule is live. Every eligible visitor whose flag evaluates against this rule gets a variation according to the rule's targeting, audiences, and rollout configuration.
- Visitors are bucketed and the variation is served.
- For A/B test rules, results accumulate on the rule's results page in real time. Click Results from the rule card to open it.
- Edits are still allowed but stage into the draft — see Publishing changes to running rules below.
- If the parent environment is paused, a Running rule effectively stops evaluating until the env restarts — but its status stays Running so you keep your intent. The UI surfaces this as “Running — blocked by paused environment.”
Transitions from Running:Running → Paused (click Pause on the rule), Running → Concluded (A/B test only — pick a winner and conclude).
Paused
A Pausedrule was running before but is currently disabled. The rule keeps its launch history — it is distinct from Draft, which means “never launched.”
- No visitors are evaluated by this rule.
- For A/B test rules, accumulated results are preserved and remain visible.
- Editable — change anything before you resume.
Transitions from Paused:Paused → Running (click Run on the rule while the env is Running), or Paused → Ready (click Run while the env is Paused or Draft).
Concluded
A Concludedrule is an A/B test where a winning variation has been declared. The winner is pinned to 100% of the rule's traffic — every eligible visitor sees that variation.
- Cannot be re-run or edited (only duplicated or deleted).
- Run / Pause buttons and menu items are hidden — operational controls are unavailable for a concluded rule.
- Doesn't move with drag-to-reorder — its position no longer affects bucket assignment.
- Full results history is preserved and remains viewable.
Transitions from Concluded: none. Concluding a rule is permanent. If you want to keep iterating, duplicate the concluded rule into a new draft instead.
Status summary
| Status | Visitors evaluated? | Editable? | Reversible? |
|---|---|---|---|
| Draft | No | Yes, freely | N/A — never been live |
| Ready | No (env is paused) | Yes, freely | Pause to revert |
| Running | Yes | Yes, with publish-time confirmation | Pause or Conclude |
| Paused | No | Yes, freely | Run again to resume |
| Concluded | Yes (winner served at 100%) | No | No — duplicate to iterate |
Run and Pause confirmation modals
Run and Pause never silently change live behavior. Each click opens a confirmation modal that explains exactly what is about to happen, and confirming sends the change live immediately — the database is updated and the SDK datafile is regenerated and pushed to the CDN in the same step.
- Run on a rule, env Running— opens the “Start <rule>?” modal. Confirming flips the rule to Running and visitors begin matching immediately.
- Run on a rule, env Paused or Draft— opens the “Mark <rule> as ready?” modal. Confirming flips the rule to Ready; nothing evaluates until you also start the environment.
- Pause on a rule— opens the “Pause <rule>?” modal. Confirming stops new evaluation immediately while keeping in-flight assignments stable.
Environment Run / Pause cascade
The Run / Pause buttons at the top of the rules page act on the whole environment. Their confirmation modals list the rules that are about to start or stop evaluating so you can see the impact before confirming.
- Start the environment — every rule currently in Ready transitions to Running. Rules in Paused stay Paused.
- Pause the environment — every Running rule stops evaluating. Rule statuses are preserved (Running rules stay Running in the database) so they resume from the same state when you start the environment again.
Publishing changes to running rules
Editing a Running rule is allowed and saves into the draft as normal. When you click Publish, A vs B checks whether the draft includes any changes to currently-running rules.
- If the draft only touches Draft, Ready, Paused, or Concluded rules, Publish proceeds without a prompt.
- If one or more Running rules are modified, deleted, or reordered, a confirmation modal appears listing the affected rules. The modal spells out that publishing will change behavior for live visitors on your website immediately.
- Click Cancel to back out without publishing, or Publish anyway to commit.