Skip to content
Back to Growth & Acquisition

Referral Program Optimization

After launch, continuously optimize the trigger placement, invite message, recipient landing page, and reward fulfillment.

Why

A referral program is never 'done' — the trigger placement, invite message, and landing page each have 2-3x upside from iterative A/B testing, and the compounding effect across the funnel is 5-10x. The trigger placement determines how many users see the invite affordance (impressions); the message determines how many recipients open (CTR); the landing page determines how many convert (signup rate). Each step's optimization multiplies the next, so a 20% lift at each of 3 steps yields 1.2^3 = 1.73x total. The reward fulfillment speed also matters: instant fulfillment drives re-invites, while delayed fulfillment ('pending review') kills the re-invite loop. The discipline is a weekly optimization cadence on the weakest funnel step, measured against the full trigger→activated funnel.

When

When the program is live 4+ weeks and k has plateaued. Optimize one funnel step per week, measure 2 weeks before next.

How

1. Instrument the full funnel: trigger impressions → invites sent → opens → clicks → signups → activated → reward fulfilled
2. Compute the conversion rate at each step; the lowest rate is the highest-leverage optimization target
3. Step 1 — trigger placement: A/B test 3 placements (in-flow vs toast vs sidebar); pick the one with highest impression-to-send rate
4. Step 2 — invite message: A/B test 3 messages (user-authored vs templated vs result-preview); pick the highest open rate
5. Step 3 — landing page: A/B test 3 pages (shared-artifact vs generic-signup vs inviter-personal); pick the highest signup rate
6. Step 4 — fulfillment speed: move from delayed to instant; measure re-invite rate (does the inviter invite again within 7d?)
7. After optimizing all 4 steps, re-measure k; the compounding lift should be 1.5-2x
8. Move to a monthly cadence: re-check each step quarterly as the audience saturates and what worked at launch decays

Example

# Funnel step conversion rates (before optimization)
Trigger impressions → invites sent:  8%   ← lowest, optimize first
Invites sent → opens:                42%
Opens → clicks:                      28%
Clicks → signups:                    35%
Signups → activated:                 40%
k = 0.22

# Week 1-2: optimize trigger placement (3 A/B variants)
A: sidebar widget    → 4% impression-to-send
B: in-flow button    → 11%  ← winner, +37% over baseline
C: success toast     → 9%
# k rises to 0.28

# Week 3-4: optimize invite message
A: user-authored     → 42% open rate
B: templated         → 38%
C: result-preview    → 51%  ← winner, +21%
# k rises to 0.34

# Week 5-6: optimize landing page (shared-artifact deep link)
# signup rate 35% → 48%, k rises to 0.41

# Compounding: 0.22 → 0.41 = +86% from 3 optimizations

Common Problems

  • ⚠Optimizing all funnel steps at once, so you can't attribute the k movement to any single change.
  • ⚠Optimizing the step you're comfortable with (landing page for engineers) instead of the lowest-conversion step (trigger placement).
  • ⚠Testing 2 variants when 3 would have found a 20% better winner; the opportunity cost of under-testing compounds.
  • ⚠Stopping optimization after launch because 'the program is live'; a live program decays without continuous tuning.

Best Practices

  • ✓Optimize one funnel step at a time, measure 2 weeks, then move to the next; confounded changes can't be attributed.
  • ✓Always attack the lowest-conversion step first; a 20% lift on an 8% step beats a 20% lift on a 40% step.
  • ✓Test 3 variants per step, not 2; the third often reveals a direction the first two missed.
  • ✓Move to a monthly cadence after the first optimization pass; what won at launch decays as the audience saturates.