Growth Experimenter
Run systematic experiments to grow faster through data-driven optimization.
Core Philosophy
Growth = Experimentation Velocity × Win Rate × Impact per Win
- •Run more experiments
- •Increase your hit rate through better hypotheses
- •Focus on high-impact areas
Growth Model (AARRR / Pirate Metrics)
Acquisition → Activation → Retention → Revenue → Referral
↓ ↓ ↓ ↓ ↓
Traffic Sign Up Day 30 Upgrade Invites
100% 40% 50% 20% 10%
Example: 10,000 visitors/month
→ 4,000 signups (40%)
→ 2,000 active at D30 (50%)
→ 400 paying (20%)
→ 40 referrals (10%)
Improve ANY metric by 10% = 10% more customers
Where to focus first: The leakiest bucket
- •If 40% sign up but only 10% are active at D30 → Fix retention
- •If 80% are active but only 5% pay → Fix monetization
- •If 2% visitors sign up but 60% convert to paid → Get more traffic
Experiment Framework
1. Identify the Problem
Good problem statements:
- •"Only 2% of homepage visitors sign up" (specific metric)
- •"50% of trials don't complete onboarding" (clear drop-off)
- •"Users who invite teammates have 3x retention, but only 10% invite" (known behavior)
Bad problem statements:
- •"We need more growth" (too vague)
- •"Conversion is bad" (no baseline)
- •"Users don't understand the product" (not measurable)
2. Form a Hypothesis
Hypothesis template:
We believe that [change] will result in [outcome] because [reason/evidence]
Examples:
✅ Good: We believe that adding social proof (testimonials) to the pricing page will increase trial signups by 10% because visitors currently have low trust and need validation. ✅ Good: We believe that sending a Slack notification when user completes setup will increase D7 activation by 20% because users forget to come back after initial signup. ❌ Bad: We believe that changing the button color will improve conversions (no reason why) ❌ Bad: We believe that improving the product will increase retention (too vague, not testable)
3. Design the Experiment
Experiment specification:
Experiment: Add social proof to pricing page Hypothesis: Social proof on pricing will increase signups by 10% Variants: Control: Current pricing page (no testimonials) Treatment: Pricing page + 3 customer testimonials Primary Metric: Trial signup rate Secondary Metrics: - Time on page - Scroll depth - CTA click rate Sample Size: 1,000 visitors per variant Duration: 2 weeks (or until statistical significance) Success Criteria: >5% improvement with 95% confidence Measurement: - Google Analytics - Mixpanel conversion tracking - Segment for event data
4. Run the Experiment
A/B testing checklist:
- • Random assignment (50/50 split)
- • Same time period (no day-of-week effects)
- • Sufficient sample size
- • No peeking (wait for significance)
- • One change at a time
Statistical significance calculator:
// Minimum sample size for 95% confidence
function calculateSampleSize(baseline, mde, power = 0.8, alpha = 0.05) {
// baseline = current conversion rate (e.g., 0.02)
// mde = minimum detectable effect (e.g., 0.10 for 10% lift)
// Returns: visitors needed per variant
const z_alpha = 1.96 // 95% confidence
const z_power = 0.84 // 80% power
const p1 = baseline
const p2 = baseline * (1 + mde)
const p_avg = (p1 + p2) / 2
const n = (2 * p_avg * (1 - p_avg) * (z_alpha + z_power) ** 2) / (p2 - p1) ** 2
return Math.ceil(n)
}
// Example: 2% baseline, detect 10% improvement
calculateSampleSize(0.02, 0.1) // ~35,000 visitors per variant
5. Analyze Results
Interpreting results:
Control: 1,000 visitors → 20 conversions (2.0%) Treatment: 1,000 visitors → 25 conversions (2.5%) Lift: +25% relative (+0.5% absolute) P-value: 0.04 (statistically significant if <0.05) Confidence Interval: [-0.2%, +1.2%] Decision: WIN - Ship it!
When results are inconclusive:
- •No movement: Hypothesis was wrong or change too small
- •Not significant: Need more data or larger effect
- •Negative impact: Roll back immediately
- •Contradictory secondary metrics: Investigate trade-offs
6. Scale What Works
// After successful experiment, roll out to 100%
if (experimentResult.lift > 0.05 && experimentResult.pValue < 0.05) {
rolloutFeature({
feature: 'social_proof_on_pricing',
rollout: '100%',
monitor: ['signup_rate', 'trial_starts']
})
// Log the learning
logExperimentLearning({
learning: 'Social proof increased signups by 25%',
application: 'Add social proof to all high-intent pages'
})
}
Growth Experiments by Stage
Acquisition Experiments
Goal: Get more traffic or improve traffic quality
High-impact experiments:
- •Landing page optimization:
Control: Generic homepage Test: Tailored landing pages by traffic source - /for-startups (Product Hunt traffic) - /for-agencies (Google Ads) - /for-developers (GitHub referrals) Expected lift: 20-50% on signup rate
- •Headline testing:
Current: 'Project Management Software' Test A: 'Ship Projects 2x Faster' Test B: 'The Project Management Tool Teams Love' Test C: "Finally, Project Management That Doesn't Suck" Test: Value prop clarity, specificity, emotion Expected lift: 10-30% on engagement
- •Social proof:
Current: No social proof Test: Add testimonials, logos, user count - "Join 10,000+ teams..." - Customer logos (recognizable brands) - Video testimonial from power user Expected lift: 15-25% on trust/signups
Activation Experiments
Goal: Get users to "aha moment" faster
High-impact experiments:
- •Onboarding simplification:
Current: 7-step onboarding flow Test: 3-step flow, delay advanced setup Step 1: Name + email Step 2: Create first project Step 3: Invite team (optional, skippable) Expected lift: 30-50% completion rate
- •Time-to-value reduction:
Current: Users must create project from scratch Test: Pre-populated template - Sample project with tasks - Example data to explore - Guided tutorial Expected lift: 25-40% in D1 activation
- •Progress indicators:
Current: No feedback during setup Test: Progress bar + completion checklist [✓] Account created [✓] First project [ ] Invite teammates (2 left) [ ] Complete first task Expected lift: 15-25% completion rate
Retention Experiments
Goal: Keep users coming back
High-impact experiments:
- •Email re-engagement:
Current: No emails after signup Test: 3-email onboarding sequence Day 1: "Here's how to get started" Day 3: "Tips from power users" Day 7: "You're only 1 step away from [value]" Expected lift: 20-35% in D30 retention
- •Habit building:
Current: No reminders Test: Daily digest email "Your daily update: 3 tasks due today" - Creates daily habit - Drives return visits Expected lift: 25-40% in daily active users
- •Feature discovery:
Current: All features visible, overwhelming Test: Progressive disclosure - Week 1: Core features only - Week 2: Unlock integrations - Week 3: Unlock advanced features - Tooltip hints for new features Expected lift: 15-25% feature adoption
Revenue Experiments
Goal: Convert free users to paying customers
High-impact experiments:
- •Paywall optimization:
Current: Hard limit at 5 projects Test: Soft limit + banner "You've created 5 projects! Upgrade to Pro for unlimited" - Allow them to continue - Show banner on every page - Show upgrade modal on 6th project Expected lift: 20-30% in upgrade rate
- •Trial length:
Current: 14-day trial Test A: 7-day trial (more urgency) Test B: 30-day trial (more time to get hooked) Test C: Usage-based trial (100 tasks) Expected: Depends on product complexity
- •Pricing page:
Current: 3 tiers without highlight Test: Highlight "Most Popular" tier - Green border - "Most popular" badge - Slightly larger Expected lift: 10-20% on middle tier selection
Referral Experiments
Goal: Turn users into advocates
High-impact experiments:
- •Invite mechanics:
Current: "Invite" link in settings Test: Contextual invite prompts - After completing first task: "Invite your team to help!" - When tagging someone: "user@example.com isn't on your team yet. Invite them?" Expected lift: 50-100% in invites sent
- •Referral incentives:
Current: No incentive Test: Double-sided reward - Referrer: 1 month free - Referred: 20% off first year - Must convert to paid Expected lift: 30-50% in referred signups
- •Public profiles:
Current: All projects private Test: Optional public project sharing - "Made with [Product]" badge - Share project publicly - View-only link with signup CTA Expected lift: 10-20% referred traffic
Advanced Techniques
Sequential Testing
When traffic is low, use sequential testing instead of fixed-sample A/B:
def sequential_test(control_conversions, control_visitors,
test_conversions, test_visitors):
"""
Evaluate experiment continuously instead of waiting for sample size.
Stop early if clear winner or clear loser.
"""
log_likelihood_ratio = calculate_llr(
control_conversions, control_visitors,
test_conversions, test_visitors
)
if log_likelihood_ratio > 2.996: # 95% confidence winner
return "WINNER"
elif log_likelihood_ratio < -2.996: # 95% confidence loser
return "LOSER"
else:
return "CONTINUE"
Multi-Armed Bandit
Automatically allocate more traffic to winning variants:
class MultiArmedBandit:
def select_variant(self, variants):
"""
Thompson Sampling:
- Start with equal probability
- As data comes in, shift traffic to winners
- Explore new variants occasionally
"""
samples = []
for v in variants:
# Sample from beta distribution
sample = np.random.beta(
v.successes + 1,
v.failures + 1
)
samples.append(sample)
return variants[np.argmax(samples)]
Cohort Analysis
Segment results by user attributes:
Overall lift: +10% By segment: Mobile users: +25% (big win!) Desktop users: +2% (no effect) Organic traffic: +30% (huge!) Paid traffic: -5% (negative!) Action: Roll out to mobile + organic only
North Star Metric
Define one metric that represents customer value:
Examples: Slack: Weekly Active Users (WAU) Airbnb: Nights Booked Facebook: Daily Active Users (DAU) Spotify: Time Listening Shopify: GMV (Gross Merchandise Value) Your North Star should: ✅ Correlate with revenue ✅ Measure value delivery ✅ Be measurable frequently ✅ Rally the entire team
Experiment Ideas Library
Quick Wins (1 week effort)
1. Homepage CTA text: "Start Free Trial" vs "Get Started Free" 2. Signup button color: Blue vs Green vs Red 3. Email subject lines: A/B test 2 variations 4. Pricing page order: Starter-Pro-Business vs Business-Pro-Starter 5. Social proof location: Above fold vs below fold
Medium Effort (2-4 weeks)
1. Redesign onboarding flow (reduce steps) 2. Add email drip campaign 3. Create upgrade prompts in-app 4. Build referral program 5. Redesign pricing page
Big Bets (1-3 months)
1. Launch freemium model 2. Build marketplace/app store 3. Add AI-powered features 4. Redesign entire product (better UX) 5. Build mobile apps
Experiment Tracking
Document Every Experiment
Experiment Log: Exp-001: Name: Add social proof to homepage Start Date: 2024-01-15 End Date: 2024-02-01 Status: ✅ WIN Hypothesis: Social proof will increase signups by 10% Result: +18% signup rate, p=0.02 Learnings: Customer logos work better than testimonials Actions: Roll out to 100%, add logos to pricing page too Exp-002: Name: 7-day trial instead of 14-day Start Date: 2024-02-05 Status: ❌ LOSS Hypothesis: Shorter trial creates urgency Result: -12% trial-to-paid conversion, p=0.01 Learnings: Users need more time to integrate product Actions: Keep 14-day trial, don't test shorter Exp-003: Name: Onboarding simplification Start Date: 2024-02-15 Status: ⏳ RUNNING Hypothesis: 3-step flow will improve completion by 30% Current: +22% completion, n=850, p=0.08 (not yet significant)
Experiment Prioritization
ICE Score Framework:
Impact (1-10): How much could this move the needle? Confidence (1-10): How sure are we it will work? Ease (1-10): How easy is it to implement? Score = (Impact × Confidence × Ease) / 100 Example: Experiment: Add testimonials to homepage Impact: 7 (could boost signups 15-20%) Confidence: 8 (social proof is proven) Ease: 9 (just add HTML) ICE Score: 504 / 100 = 5.04 Sort by ICE score, run highest first
Growth Metrics Dashboard
interface GrowthMetrics {
// Acquisition
traffic_sources: {
organic: number
paid: number
referral: number
direct: number
}
cost_per_click: number
cost_per_signup: number
// Activation
signup_to_activation_rate: number
time_to_activation_p50: string // "2 days"
onboarding_completion_rate: number
// Retention
dau: number // Daily Active Users
wau: number // Weekly Active Users
mau: number // Monthly Active Users
dau_mau_ratio: number // Stickiness (should be >20%)
churn_rate_monthly: number
retention_d1: number
retention_d7: number
retention_d30: number
// Revenue
trial_to_paid_conversion: number
average_revenue_per_user: number
customer_lifetime_value: number
ltv_cac_ratio: number
// Referral
referral_invites_sent: number
viral_coefficient: number // Should be >1 for viral growth
nps: number // Net Promoter Score
// Experiments
active_experiments: number
experiments_shipped_this_month: number
win_rate: number // % experiments that improve metrics
}
Common Pitfalls
❌ Testing too many things at once: Change one variable at a time ❌ Stopping test too early: Wait for statistical significance ❌ Ignoring segments: Results vary by user type/traffic source ❌ P-hacking: Don't cherry-pick favorable metrics ❌ Small sample sizes: Need 1,000+ conversions per variant minimum ❌ Seasonal effects: Don't test during holidays/anomalies ❌ Novelty effect: Some changes work for 2 weeks then regress
Quick Start Checklist
Week 1: Foundation
- • Set up analytics (Mixpanel, Amplitude, GA4)
- • Define North Star Metric
- • Map current funnel (AARRR)
- • Identify biggest leak in funnel
- • Set up A/B testing tool (Optimizely, VWO, Google Optimize)
Week 2-3: First Experiments
- • Run 3 quick-win experiments
- • Document results in spreadsheet
- • Pick one big-bet experiment to design
- • Calculate required sample sizes
Ongoing
- • Run 5-10 experiments per month
- • Review metrics weekly
- • Document all learnings
- • Focus on highest-ICE experiments
- • Ship winning experiments to 100%
Summary
Great growth teams:
- •✅ Run 10+ experiments per month (high velocity)
- •✅ Focus on one North Star Metric
- •✅ Document everything (wins and losses)
- •✅ Prioritize by ICE score
- •✅ Wait for statistical significance
- •✅ Scale what works, kill what doesn't