| name | growth-experimenter |
| description | Run systematic growth experiments to increase acquisition, activation, retention, and revenue. Use when optimizing conversion funnels, running A/B tests, improving metrics, or when users mention growth, experimentation, optimization, or scaling user acquisition. |
| license | Complete terms in LICENSE.txt |
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.10) // ~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