Skip to content

Rollout Planning

Flagship gives you complete control over how features are released to your users. Instead of a simple "on/off" switch, you define a Rollout Plan that determines who sees a feature and when.

A generic rollout plan consists of one or more Stages, which are executed sequentially.

Rollout Strategies

Different features require different rollout approaches. Flagship supports flexible strategies that can be mixed and matched within a single plan.

Percentage-based Rollouts

Percentage-based rollouts allow you to gradually increase the number of users who see a feature.

IMPORTANT

Percentages are Probability Buckets Flagship automatically hashes your targeting key to assign it a deterministic bucket between 0 and 100.

Effectively, a "10% rollout" is a rule: internalHash(targetingKey) % 100 < 10. You do not need to ensure your keys are normally distributed yourself; you only need to ensure they are unique. Flagship's hashing algorithm takes care of the distribution.

This deterministic approach ensures that:

  1. Consistency: A user with the same targeting key will always fall into the same bucket.
  2. Stickiness: As you expand from 10% to 50%, users who were in the 10% bucket stay in the 50% bucket.

Sample Size Warning

While Flagship's hashing ensures a uniform distribution over large numbers, the Law of Large Numbers applies. Percentages are probabilities, not exact counters.

  • If you rollout 10% to 1,000,000 users, you will get very close to 100,000 users.
  • If you rollout 10% to 10 users, you might get 0, 1, or 2 users, purely by chance.

Small Target Size

For small, safe user groups (e.g., "Internal Testers" or "Beta Users" with < 100 members), do not rely on percentages.

Instead of trying to target "10% of Beta Users", manually select the specific users you want to include and create a Target Group for them.

Example: If you have 50 Beta Users and want to test with 5 of them:

  1. Bad: Rollout to Target Group: Beta Users AND Percentage: 10%. (You might get 0 users, or 8 users).
  2. Good: Create a Target Group Beta Early Access with the specific 5 User IDs. Rollout to Target Group: Beta Early Access (100%).

Targeted Rollouts

For more controlled releases, you can target specific cohorts of users. This is essential for:

  • Internal Testing: Release to employees first.
  • Beta Programs: Release to opted-in users (e.g., plan == 'beta').
  • Geo-fenced Releases: Release to specific regions (e.g., country == 'CA').

You can define these targets using ad-hoc Dimensions or reusable Target Groups. Using Target Groups is recommended for consistency across your organization.

Example: Tiered Rollout

A typical tiered rollout plan might look like this:

  1. Stage 1: Target Group: Internal QA (100%)
  2. Stage 2: Target Group: Beta Users (50%)
  3. Stage 3: Global (10%)
  4. Stage 4: Global (100%)

The Rollout Plan

A plan is composed of ordered Stages.

Stages

A stage defines a milestone in your rollout process. Each stage has:

  • Name: E.g., "Canary", "Internal", "Public Scale-up".
  • Target: Who is eligible for this stage? (e.g., "All Users" or a specific "Target Group").
  • Allocation: What percentage of the target sees the feature? (e.g., 10%).

Flagship evaluates stages in order. A user matches the first stage where they meet the targeting criteria. If they don't match any specific targeting rules, they fall through to subsequent stages.

Auto-Progression

Flagship doesn't just toggle flags; it manages the lifecycle of your rollout.

  1. Schedule: Define how quickly the rollout should progress (e.g., "Wait 2 hours between stages").
  2. Confidence Windows: Every stage is monitored. If metrics remain stable, the next stage is triggered automatically.
  3. Smart Halting: If a Warning Trigger fires, the AI halts the rollout, preventing further exposure while you investigate.

This "hands-off" approach allows you to deploy safely without staring at dashboards all day.

Best Practices

  • Consistent Identity: Always pass a consistent userId in the Evaluation Context to ensure a user doesn't flip-flop between variations.
  • Stateful Rollouts: Flagship remembers which users are in which bucket (sticky bucketing), ensuring a smooth experience even as you scale from 10% to 50%.
  • Use Target Groups: Define common segments (like "Internal Team") as Target Groups once, and reuse them everywhere.