The Problem with Isolated Experiments
Most teams optimize one page at a time. They test headlines on the landing page, then separately test the signup form, then the onboarding flow, then the pricing page. Each experiment runs in isolation.
The issue? Conversion funnels are systems. Optimizing one step can change the behavior at every subsequent step. A more aggressive landing page headline might increase signups but decrease activation because it sets the wrong expectations. A simplified onboarding flow might reduce friction but attract less qualified users who never purchase.
Funnel experiments solve this by linking experiments across steps and measuring the cumulative impact through the entire path.
See the Difference
Toggle between the unoptimized and optimized funnels below. Notice how improvements at each step compound: a modest 5-6% improvement per step creates dramatic cumulative lift.
Funnel Optimizer
Landing Page
Sign Up
Headline Copy Test
Activation
Onboarding Flow Test
Purchase
Pricing Page Test
The compounding effect is the key insight. A 50% relative improvement at each step doesn't produce a 50% improvement end-to-end. It can produce a 200%+ improvement because the gains multiply.
How Funnel Experiments Work
Step 1: Map Your Funnel
Identify the key conversion steps. A typical SaaS funnel might look like:
- Landing Page → visitor arrives
- Signup → visitor creates an account
- Activation → user completes onboarding
- Purchase → user converts to paid
Each step has a conversion rate and represents an optimization opportunity.
Step 2: Create Linked Experiments
In Bandit, you create a funnel that links experiments across steps. Each step has its own experiment with its own variants, but they share a user identity so you can track users through the entire path.
Funnel: "Signup to Purchase"
├── Step 1: Landing Page Headline (3 variants)
├── Step 2: Signup Form Layout (2 variants)
├── Step 3: Onboarding Flow (3 variants)
└── Step 4: Pricing Page Design (2 variants)
Step 3: Track Cross-Step Conversions
The critical difference from isolated experiments: conversions at step 4 feed back to the algorithms at steps 1-3. This means:
- A headline variant that increases signups but decreases eventual purchases gets penalized
- An onboarding flow that slightly reduces activation but dramatically increases purchase rate gets rewarded
- The system optimizes for end-to-end conversion, not individual step metrics
Step 4: Let the Algorithms Coordinate
Each step runs its own bandit algorithm, but the reward signal comes from downstream conversions. A Thompson Sampling agent at step 1 receives a "success" signal when the user eventually purchases, not just when they sign up.
This creates a coordinated optimization across the entire funnel.
Landing Page
3 variants, Thompson Sampling
Signup
2 variants
Activation
3 variants
Purchase
2 variants, reward source
The Compounding Math
Small improvements at each step multiply:
| Scenario | Step 1 | Step 2 | Step 3 | Step 4 | End-to-End |
|---|---|---|---|---|---|
| Baseline | 12% | 45% | 30% | 8% | 0.13% |
| Each step +20% relative | 14.4% | 54% | 36% | 9.6% | 0.27% |
| Each step +50% relative | 18% | 67.5% | 45% | 12% | 0.66% |
A 20% relative improvement at each step produces a 107% improvement end-to-end. A 50% improvement per step yields a 407% improvement. This is why funnel optimization is so powerful, and why it's worth the added complexity.
Avoiding Common Pitfalls
Pitfall 1: Optimizing Steps in Isolation
The number one mistake. If step 1 optimizes for maximum signups, it might attract low-intent users who never purchase. Always optimize for the downstream metric that matters most.
Pitfall 2: Ignoring Attribution Lag
Users don't move through your funnel instantly. Someone might sign up today and purchase next week. Make sure your attribution window is long enough to capture the full journey. Bandit's assignment-based tracking handles this automatically: the assignmentId ties events across sessions.
Pitfall 3: Too Many Variants Per Step
With 4 steps and 3 variants each, you have 81 possible paths through the funnel. The combinatorial explosion makes it harder for algorithms to converge. Keep variants to 2-3 per step for faster learning.
Pitfall 4: Not Accounting for Selection Bias
If step 1 changes who reaches step 2, the populations at step 2 are different across variants. Bandit algorithms handle this naturally because they learn from the actual observed outcomes for each user, but be aware of it when interpreting results.
Isolated optimization
Optimizing for signups alone can attract low-intent users who never purchase
Attribution lag
Users may sign up today and purchase next week, so attribution windows must span the full journey
Combinatorial explosion
4 steps × 3 variants = 81 possible paths, slowing algorithm convergence
Selection bias
Changes at step 1 alter who reaches step 2, skewing the population across variants
Implementation Guide
Setting Up a Funnel in Bandit
- Create the funnel in the dashboard with named steps
- Create an experiment for each step and link it to the funnel
- Configure treatments for each experiment
- Choose algorithms: Thompson Sampling recommended for all steps
SDK Integration
// Step 1: Landing page
const headline = await bandit.getAssignment(
'funnel-landing-headline',
userId
)
displayHeadline(headline.config)
// Step 2: Signup form (when user reaches this page)
const signupForm = await bandit.getAssignment(
'funnel-signup-layout',
userId
)
renderSignupForm(signupForm.config)
// Track conversion at the final step
bandit.trackEvent({
assignmentId: headline.assignmentId,
eventType: 'CONVERSION'
})
bandit.trackEvent({
assignmentId: signupForm.assignmentId,
eventType: 'CONVERSION'
})
Note
Track the final conversion event against all upstream assignments. This is how the upstream algorithms learn which variants lead to end-to-end success.
Real-World Impact
Companies that implement funnel-wide optimization typically see:
- 2-5x improvement in end-to-end conversion rates over 3-6 months
- Faster learning because downstream feedback prevents wasted exploration on locally optimal but globally suboptimal variants
- Better user experience because the entire path is optimized as a system, not a collection of independent pages
Getting Started
If you're new to funnel experiments, start simple:
- Pick your most important 2-step funnel (e.g., landing page → signup)
- Create one experiment per step with 2 variants each
- Configure the final step's conversion as the reward for both experiments
- Let it run for 2-4 weeks
- Expand to more steps as you gain confidence
The key insight is to think in systems. Individual page optimizations are fine, but the real leverage comes from optimizing the connections between pages and measuring what matters: the end result.
Ready to try algorithmic testing?
Stop wasting traffic on losing variants. Bandit's multi-armed bandit algorithms automatically shift traffic to your best-performing treatments in real time.
Get Started Free