Referral and viral mechanics: engineering exponential growth

TL;DR

Difficulty: Intermediate

The viral coefficient K is invitations per customer times the share who convert. Above one, growth feeds itself. Below one, every paid customer becomes one over one minus K customers, and a shorter cycle only brings them sooner. Test two sided against one sided rewards on a random split, match the reward to why your customers would talk, and in Ireland never write or send the friend's email for the customer.

Dropbox grew from 100,000 to 4 million users in 15 months, and a two sided referral programme added 60% to its signups. In this article I take that story back to its source, reduce referral growth to two numbers, the viral coefficient and the cycle time, and work both through for an invented cycle shop in Limerick, together with the psychology of why people refer and the Irish rules that apply.

Dropbox is the story everyone tells, so start with what it actually says

Every talk about referrals reaches for Dropbox. Its founder, Drew Houston, put the numbers in a public slide deck in April 2010. Dropbox had 100,000 registered users in September 2008 and 4,000,000 in January 2010, 15 months later, mostly from word of mouth and viral features. At that point 35% of daily signups came from the referral programme and another 20% from shared folders and other viral features.1 Going from 100,000 to 4,000,000 is a factor of 40, so the oft quoted "3,900% growth" is arithmetically right.

Two details in the same deck matter more than the headline. First, Dropbox had tried paid search and it failed: a cost per acquisition of 233to233 to 388 for a $99 product. Second, the referral programme with a two sided incentive, inspired by PayPal's signup bonus, "permanently increased signups by 60%".1 The mechanic is still running today. A Dropbox Basic account earns 500 MB per referral up to 16 GB, and the friend who signs up through the link gets 500 MB too.2

So Dropbox had a product people wanted to share, a market search could not reach, and a reward that was the product itself. That is not a formula you can copy into a cycle shop. What you can copy is the arithmetic and the habit of measuring it.

Throughout I use one invented business. Ballinacurra Cycle Supply sells cycling accessories online from a unit in Limerick, at ballinacurracycles.example, and is run by Amara. Nobody real, and every number in her examples is made up so I can show every step.

Two sided rewards turn a favour into a gift

The first decision in any referral programme is who gets rewarded. In a one sided programme only the referrer gets something: "refer a friend, get €10". In a two sided programme both do: "give €10, get €10", or Dropbox's 500 MB each.

The case for two sided is psychological. With a one sided reward, the referrer is asking a friend to do something that pays the referrer. That is awkward, and many people would rather say nothing. With a two sided reward, the referrer hands over something of value. The conversation changes from "do me a favour" to "here, have this". Research on a German bank's referral programme also flags the flip side of rewards: a referrer who is paid may seem less trustworthy to the friend.3 Giving the friend a share of the value helps with that too.

The old version of this article said two sided programmes beat one sided ones "by roughly double". I could not find a study behind a general figure, so I have dropped it. Dropbox's 60% is one company at one point in time.1 The right number for your shop is the one you measure.

Worked example: Amara tests one sided against two sided

For eight weeks, Amara splits her new customers at random into two groups of 500. Both get a referral link on their account page and in their order confirmation.

Group A gets a one sided offer: a €10 credit when a friend places a first order. Of the 500, 60 share their link. Their links bring 150 new visitors, and 15 of them place a first order.

Group B gets a two sided offer: the friend gets €10 off the first order, and the referrer gets a €10 credit. Of the 500, 85 share. Their links bring 230 new visitors, and 35 place a first order.

The referred customers per original customer are:

15500=0.0335500=0.07\frac{15}{500} = 0.03 \qquad \frac{35}{500} = 0.07

Is the difference real or noise? A two proportion test (explained in Foundations: hypothesis tests) pools the two groups to 501,000=0.05\frac{50}{1{,}000} = 0.05, gives a standard error of 0.05×0.95×(1500+1500)=0.0138\sqrt{0.05 \times 0.95 \times \left(\frac{1}{500} + \frac{1}{500}\right)} = 0.0138, and a test statistic of 0.07−0.030.0138=2.90\frac{0.07 - 0.03}{0.0138} = 2.90. That is a p value of about 0.004, so it is very unlikely to be chance.

Then the cost. Group A paid €10 per referred customer, €150 in all. Group B paid €20 per referred customer, €700 in all. Amara's paid ads cost her €24 per new customer. The two sided offer costs twice as much per referred customer, is still below her paid cost, and brings more than twice as many. For her shop, two sided wins. The numbers are invented. The method, a random split and eight weeks, works on real customers.

Pick the reward your customers actually want

Dropbox gave storage because storage was why people used Dropbox. The usual options are cash or credit (credit brings the referrer back to a shop), more of the product itself (storage, features, a free month), exclusive access for products people are proud to be seen with, a donation to a named charity for customers who would rather not be paid for a recommendation, and tiered rewards for the few who refer a lot.

An example: Amara's customers are mostly club riders and commuters. A credit towards the next order suits both, because inner tubes and brake pads are bought again and again. A members' tier would suit the club riders, but it is a second programme to run, so she keeps it as a later test.

The viral coefficient counts how many customers each customer brings

The viral coefficient, usually written KK, is the most useful number in referral work. David Skok, in a widely cited post on viral growth, defines it as the number of invitations multiplied by their conversion rate.4

K=i×cK = i \times c

Here KK is the viral coefficient, the number of new customers that one customer brings in. ii is the average number of invitations per customer, counted over all customers, including the many who send none. cc is the conversion rate of those invitations into customers. Both ii and cc are plain rates, events divided by opportunities, as explained in Foundations: ratios and rates.

It helps to split ii in two: the share of customers who invite anyone at all, and how many people each of them reaches.

What the value of KK means:

  • KK above 1: each customer brings more than one new customer, so growth feeds itself without paid acquisition. Skok's point is blunt: unless the viral coefficient is greater than 1, you will not have true viral growth.4
  • KK equal to 1: each customer replaces themselves, so a single paid customer turns into a slow, steady trickle.
  • KK below 1: each chain of referrals dies out. The programme still adds customers, but it needs paid or organic acquisition to feed it.

Worked example: Amara's viral coefficient

In March, 1,000 people placed a first order. Over the next two months, 180 of them shared their referral link. Their links brought 520 new visitors, and 78 of those visitors placed a first order.

The share who shared is 1801,000=0.18\frac{180}{1{,}000} = 0.18. Each sharer reached 520180=2.89\frac{520}{180} = 2.89 people. Over all 1,000 customers, the invitations per customer are i=5201,000=0.52i = \frac{520}{1{,}000} = 0.52. The conversion rate is c=78520=0.15c = \frac{78}{520} = 0.15. So:

K=0.52×0.15=0.078K = 0.52 \times 0.15 = 0.078

So KK is about 0.08: each new customer brings in 0.08 more. That is far from viral. The weakest link is obvious: 82% of customers never share at all.

The same calculation in Python, for every monthly cohort:

def viral_coefficient(customers, sharers, invitations, converted):
    """K factor for one cohort of new customers."""
    share_rate = sharers / customers
    reach_per_sharer = invitations / sharers if sharers else 0
    i = invitations / customers          # invitations per customer, everyone included
    c = converted / invitations if invitations else 0
    return {
        "share_rate": share_rate,
        "reach_per_sharer": reach_per_sharer,
        "i": i,
        "c": c,
        "k": i * c,
    }

march = viral_coefficient(customers=1000, sharers=180, invitations=520, converted=78)
for name, value in march.items():
    print(f"{name:18} {value:.3f}")

A coefficient below one still makes every paid customer go further

Skok himself expects many businesses to stay below 1 and make up the shortfall with paid acquisition, a model he calls hybrid viral.4 The old version of this article added that most products sit between 0.1 and 0.4, with a table of benchmarks by category. I could not source those figures, so I have cut them. What I can show exactly is what a KK below 1 is worth.

One paid customer brings KK referred customers. They bring K2K^2, who bring K3K^3, and so on. The total is a geometric series:

T=P×(1+K+K2+K3+… )=P1−KT = P \times \left(1 + K + K^2 + K^3 + \dots\right) = \frac{P}{1 - K}

Here TT is the total number of customers you end up with, PP is the number of customers you paid for, and KK is the viral coefficient, which must be below 1 for the series to settle on a finite total. The factor 11−K\frac{1}{1 - K} is the multiplier on every paid customer. Growth that multiplies on itself is covered in Foundations: compounding.

The old article got one thing wrong here. It said a KK of 0.3 turns every paid customer into 1.43 customers, which is right, and that this is a 43% reduction in the effective cost per customer, which is not. If 1.43 customers now cost what one used to, the cost per customer falls to 11.43=0.70\frac{1}{1.43} = 0.70 of what it was, a 30% reduction, and that is before the rewards are paid. The 43% is the gain in customers, not the saving in cost. The growth marketing maths behind customer acquisition cost (CAC) works the same way.

Worked example: what 0.078 is worth to Amara

With K=0.078K = 0.078, the multiplier is:

11−0.078=1.085\frac{1}{1 - 0.078} = 1.085

Every 1,000 customers Amara pays for become about 1,085 customers. Her paid cost of €24 per new customer becomes €241.085=€22.12\frac{€24}{1.085} = €22.12 per customer once the referrals are counted, about 8% less, before the cost of the rewards, which the last worked example adds back.

If she lifts the share of customers who share from 18% to 30% and nothing else changes, ii becomes 0.30×2.89=0.870.30 \times 2.89 = 0.87, KK becomes 0.87×0.15=0.130.87 \times 0.15 = 0.13, and the multiplier becomes 11−0.13=1.15\frac{1}{1 - 0.13} = 1.15. The weakest link is usually the easiest one to move.

Cycle time decides when the referred customers arrive

The viral cycle time is how long one turn of the loop takes: from the moment a customer joins to the moment the people they invited join. Skok makes the case for it with YouTube against Tabblo, a photo sharing site of the same era. On YouTube a user saw a funny video and sent the link on straight away. On Tabblo a friend might only come back the next time they had photos to share, which could take months.4

Skok also corrected a common error in viral growth formulas: they assume the entire customer base keeps sending invitations every cycle.4 In his model, each customer invites once, in the cycle after they join. Written as a formula:

N(t)=N0×K t/ct+1−1K−1N(t) = N_0 \times \frac{K^{\,t / c_t + 1} - 1}{K - 1}

Here N(t)N(t) is the total number of customers after tt days, N0N_0 is the number you start with, KK is the viral coefficient, ctc_t is the cycle time in days, and tct\frac{t}{c_t} is the number of completed cycles. It is the geometric series from the previous section, stopped after a given number of cycles, and it works for KK above or below 1. The background is in Foundations: compounding. Skok's own example checks it: start with 10 users, K=2K = 2 and a two day cycle, and after 20 days you have 10×(211−1)=20,47010 \times (2^{11} - 1) = 20{,}470 users. Halve the cycle to one day and you have over 20 million.4

The old version of this article claimed that when KK is below 1, halving the cycle time does more than doubling KK. Its own scenario shows the opposite, so I have corrected it. Below 1, the series settles on N01−K\frac{N_0}{1 - K} however fast the cycles run. A shorter cycle gets you to that total sooner, but it cannot make it bigger. Doubling KK raises the total itself.

Worked example: halving the cycle against doubling the coefficient

Suppose a business starts with 1,000 customers and runs for 84 days. Three scenarios:

  • K=0.4K = 0.4 with a 14 day cycle: six cycles, 1,000×1−0.471−0.4=1,6641{,}000 \times \frac{1 - 0.4^7}{1 - 0.4} = 1{,}664 customers.
  • K=0.8K = 0.8 with a 14 day cycle: six cycles, 1,000×1−0.871−0.8=3,9511{,}000 \times \frac{1 - 0.8^7}{1 - 0.8} = 3{,}951 customers.
  • K=0.4K = 0.4 with a 7 day cycle: twelve cycles, 1,000×1−0.4131−0.4=1,6671{,}000 \times \frac{1 - 0.4^{13}}{1 - 0.4} = 1{,}667 customers.

Halving the cycle time against doubling the viral coefficientCustomers over 84 days, starting from 1,000. With K at 0.4 and a 14 day cycle the total reaches 1,664. With K at 0.4 and a 7 day cycle it reaches 1,667, faster but no higher. With K at 0.8 and a 14 day cycle it reaches 3,951.Customers after each 14 days, starting from 1,00001,2502,5003,7505,000Day 0Day 14Day 28Day 42Day 56Day 70Day 84K 0.4, 14 day cycleK 0.4, 7 day cycleK 0.8, 14 day cycleCustomersDays since start

The horizontal axis is days since the start, the vertical axis is the total number of customers. The two lines with K=0.4K = 0.4 end in the same place, about 1,667, and the shorter cycle simply gets there in a month instead of three. The line with K=0.8K = 0.8 keeps climbing to more than twice the total. Below 1, cycle time is about cash flow and timing. The coefficient is about how many customers you get.

Above 1, cycle time becomes dramatic, because the newest generation of customers is Kt/ctK^{t / c_t} times the first, and halving the cycle doubles the exponent. Halving the cycle is the same as squaring KK per old cycle. With K=1.2K = 1.2, the same 84 days give 12,916 customers on a 14 day cycle and 48,497 on a 7 day cycle. Whether that beats doubling KK depends on KK itself, since squaring beats doubling only above 2. The practical case for cycle time is Skok's YouTube point: a cycle can shrink from months to minutes.

The model in Python, for your own numbers:

def customers_after(days, start, k, cycle_days):
    """Skok's model: each customer invites once, in the cycle after joining."""
    cycles = days // cycle_days
    if k == 1:
        return start * (cycles + 1)
    return start * (k ** (cycles + 1) - 1) / (k - 1)

for k, cycle in [(0.4, 14), (0.8, 14), (0.4, 7), (1.2, 14), (1.2, 7)]:
    print(f"K={k}, cycle={cycle} days: {customers_after(84, 1000, k, cycle):,.0f}")

Shortening the cycle without crossing the line

The ways to shorten a cycle are mostly about removing delay:

  • Ask early, while the customer is happiest. For a shop that is usually just after delivery, not at checkout.
  • Make the link easy to find: on the account page, in the order confirmation, on a card in the parcel.
  • Tell referrers straight away when a friend's order ships and their credit lands. That closes the loop and prompts the next share. The psychology of that prompt is covered in onboarding and habit formation.
  • Use a genuine time limit, such as a double credit for referrals in December, with a real closing date.

Two tactics from the old version of this article are gone. Rewarding customers for invitations sent, rather than for friends who buy, pays people to send messages, and the next section explains why that is a legal problem in Ireland. Ready written messages for customers to email to friends have the same problem.

An example: Amara moves her referral prompt from the checkout to the delivery email, adds a printed card in the parcel, and sends an email to the referrer when the friend's order ships. Nothing in any of it tells the customer whom to contact or how.

The Irish rules on referral emails and incentivised recommendations

The first Irish rule is regulation 13 of the ePrivacy Regulations 2011 (S.I. No. 336 of 2011). It says a person must not use, or cause to be used, an electronic communications service to send an individual unsolicited marketing email unless that person has consented. The main exception is the soft opt in for your own customers, and only for similar products, with a chance to object in every message, and within 12 months of the sale.5 The regulator is the Data Protection Commission (DPC), and its answer on refer a friend schemes is short. It is an offence under the ePrivacy Regulations to send an unsolicited marketing message to someone with whom there is no existing customer relationship, the onus is on the sender to show that the recipient consented, and the DPC finds it difficult to see how a refer a friend facility could meet that requirement.6

For where the line sits in practice, the British regulator's guidance under the UK's version of the same EU rule is more detailed, and it points the same way. If you encourage people to pass on your marketing email, it says, you are likely to be instigating it, with or without an incentive, and valid consent from the friend is unlikely to be possible in practice. Its example of a breach is a retailer that automatically writes a marketing email for the customer to send to friends. Its example of a scheme that is fine is an account page that explains the unique code without telling the customer how to share it or suggesting emails or texts.7

The second is the ASAI Code, the advertising code of the Advertising Standards Authority for Ireland (ASAI). Its promotional marketing rules in section 5 cover reduced price and free offers, vouchers and coupons, and apply to incentive schemes as well. Promoters must deal fairly and honourably with consumers, and the terms must be clear and complete, explaining how to take part and displaying the closing date prominently.8 So a referral credit needs clear terms, and a "double credit this week" needs a week that really ends, because a false claim that an offer is available only for a limited time is prohibited outright under the Consumer Protection Act 2007.9

On recommendations, rule 3.31 of the ASAI Code requires a marketing communication to be clearly recognisable as one, and rule 3.32 says it must not pose as user generated content or an independent review when its purpose is marketing. The Code also says advertisers cannot disclaim responsibility for marketing that others, affiliates included, create on their behalf.10 The ASAI's guidance for social media influencers lists sharing discount codes or affiliate links for a brand among the signs that a post needs an ad label, such as #ad at the start, and says a brand working with an influencer is responsible for making sure the commercial posts about it carry one.11 A customer who posts a referral code on social media for a reward is close to that description. And if you reward reviews rather than referrals, Irish law prohibits commissioning false reviews and misrepresenting reviews,12 and the CCPC says you must not present paid for reviews as independent.13 Keep the two apart.

A referral flow that stays inside the Irish rulesA top to bottom flow. The customer sees their own code and link on the account page and in the shop's own emails to them. The customer decides whether and how to share. If they share, the friend arrives through the link and places a first order. The referrer's credit is paid when the friend's order ships, under published terms. A note says the shop never collects friends' addresses or writes messages for customers to send.The customer sees their own code andlink, on the account page and in youremails to themThe customer decides whether, how andwith whom to share itif they choose toThe friend arrives through the link andplaces a first orderThe friend is now your customer, andcan get your emails under the soft optin if they did not objectThe referrer's credit is paid when thefriend's order ships, under publishedtermsNever collect friends' addresses, neverwrite the message for the customer tosend

The flow runs top to bottom, and its point is who does what. The business writes only to its own customers, and the friend arrives by their own choice.

Worked example: Amara checks her programme against the rules

Amara had planned a "tell three friends" form that would email each friend a discount. The DPC doubts that a refer a friend facility can meet the consent rule at all,6 and this one goes further than the British regulator's example of a breach, since the shop would send the emails itself,7 so she drops it. The code sits on the account page and on the parcel card. Her delivery email mentions the scheme in one line, with a link to the terms, and no ready made message. The terms say who qualifies (a new customer at a new delivery address), when the credit is paid (when the friend's order ships) and that the December double credit closes at midnight on 31 December. She adds one line to the terms asking customers who post their code publicly to make clear they get a credit for it.

Viral effects bring users, network effects make each user worth more

A viral effect is an acquisition mechanic: existing users bring in new ones, by referral, by sharing, or because using the product shows it to others. At Dropbox, 20% of daily signups came from shared folders and other viral features, separate from the referral programme.1 A product can be viral without being any better for having more users.

A network effect is a value mechanic. The product becomes more valuable to each user as more people use it. A telephone is the classic case: one telephone is useless, a million are a network. A product can have network effects without spreading by itself.

Network effects come in a few kinds: direct (more users of the same kind, as with messaging apps), indirect or cross side (buyers attract sellers in a marketplace), data (more use improves search or recommendations, invisibly to the person who might refer), and compatibility (once enough people use a format, everyone needs it). When a product has both effects, they reinforce each other: the viral effect shows up in acquisition, the network effect mostly in retention.

Worked example: a rota app in Galway

Shiftloft is an invented app for café staff rotas, made in Galway, at shiftloft.example. It is used by 40 cafés, each with about 12 staff who need an account to see their shifts. The app has an embedded viral effect: staff who move jobs often ask their next café to use it.

Suppose 30% of the 480 staff move jobs in a year, which is 144 people, and 5% of those persuade their new café to sign up. That is 144×0.05=7.2144 \times 0.05 = 7.2 new cafés a year, so the yearly viral coefficient is about 7.240=0.18\frac{7.2}{40} = 0.18.

What Shiftloft does not have is a network effect between cafés. One café's rota is no better because another café uses the app. If the founder wants one, she has to build it, for example by letting staff swap shifts between cafés in the same group. That is a product decision, not a referral campaign.

People refer for status, to help, or for the reward

Why people refer shapes which mechanics work. This article sorts referrals by three motives, as a working model rather than a law. Most customers mix all three, so the point is to find the main one for your best customers.

Status: sharing says something good about the referrer, so it suits products people are proud to be seen with. Public sharing, visible progress, exclusive access and recognition fit it. Cash can sit badly here, because being paid takes the shine off.

Helping a friend: the referrer believes the friend will genuinely benefit, which suits products that solve a real problem. A reward that favours the friend and easy personal sharing fit it.

The reward: the referrer is after the incentive, which suits financial products and interchangeable goods. A clear value, simple tracking, fast payment and plain terms fit it.

There is a sourced reason to bother. A study of about 10,000 customers of a German bank over almost three years found that referred customers had a higher contribution margin, a higher retention rate, and an average value at least 16% higher than similar customers acquired in other ways.3 That is one bank, so it is a reason to measure the value of your own referred customers, not a figure to plug into a shop's plan. The value of a customer over time is covered in Foundations: lifetime value.

Worked example: matching Amara's mechanics to her customers

Amara asks 50 recent referrers one question: why did you share? The answers fall into three groups. Club riders say they wanted their club mates to see the kit, which is status. Commuters say a friend was struggling with a puncture prone tyre, which is helping. A smaller group just wanted the credit.

For club riders she adds a "ridden by" gallery for customers who opt in. For commuters she keeps the two sided credit. For the credit seekers she makes the terms and the payment quick and clear. Three motives, three small changes, one programme.

Word of mouth spreads for six reasons, Berger's STEPPS

Many recommendations happen without any reward at all. The deeper read on that is in retention and referral and social proof and trust. A widely used framework for why things get talked about is Jonah Berger's, from his book Contagious, which sets out six principles that drive things to catch on.14 In an interview with Knowledge at Wharton, Berger summed them up under the acronym STEPPS.15

  • Social currency: people talk about things that make them look good.
  • Triggers: "top of mind, tip of tongue". Cues in the everyday environment remind people of a product and get it talked about.
  • Emotion: when we care, we share. The more aroused people feel, the more likely they pass something on.
  • Public: when people can see others doing something, they are more likely to copy it.
  • Practical value: news you can use. People share information to help others.
  • Stories: ideas travel inside narratives. Berger's image is a Trojan horse, an exciting exterior with the brand hidden inside.15

The emotion principle rests on a published study. Berger and Katherine Milkman studied three months of New York Times articles and found that content evoking high arousal emotions, such as awe, anger or anxiety, was more viral, while content evoking low arousal emotions, such as sadness, was less viral, even after controlling for how surprising, interesting or useful the content was.16

One of Berger's examples of a dull product made remarkable is Blendtec, a blender maker whose "Will it blend?" videos put all sorts of objects, an iPhone included, into a blender.15 Nobody shares a blender. Plenty of people share a blender eating a phone.

Worked example: Amara's STEPPS audit

Amara scores her shop from 0 to 10 on each principle, without weighting, because the scores are for spotting the weakest link, not for adding up. Social currency 6: club riders like to be seen in good kit. Triggers 3: nothing in a rider's week reminds them of the shop. Emotion 4: a well packed parcel pleases, but nobody gasps. Public 5: the shop's logo is on a few products. Practical value 8: her fitting guides are genuinely useful. Stories 3: there is no story people retell.

The two weakest are triggers and stories. For a trigger, she ties a short email to something every rider does, the first cold Saturday of autumn, with a checklist for winter kit. For a story, she writes up how the shop started, fixing her own commuter bike in a Limerick backyard. Both give customers something to say.

Net Promoter Score tells you who might refer, not how many will

Net Promoter Score (NPS) was introduced by Fred Reichheld of Bain and Company in a Harvard Business Review article in December 2003 called "The one number you need to grow".17 Bain describes the method like this: ask customers how likely they are to recommend you to a friend or colleague, score the answers from 0 to 10, and subtract the share of detractors (0 to 6) from the share of promoters (9 or 10). Passives score 7 or 8.18

NPS=100×(npromn−ndetn)NPS = 100 \times \left(\frac{n_{\text{prom}}}{n} - \frac{n_{\text{det}}}{n}\right)

Here NPSNPS is the Net Promoter Score, from minus 100 to plus 100. npromn_{\text{prom}} is the number of respondents who scored 9 or 10, ndetn_{\text{det}} is the number who scored 0 to 6, and nn is the total number of respondents. The difference of two shares is covered in Foundations: percentages.

Bain describes promoters as loyal, enthusiastic fans who are far more likely than others to remain customers and to increase their purchases.18 That is Bain's claim about its own system. The old version of this article went further and said NPS correlates with growth in most industries. I have cut that, because I could not verify it from a source I could fetch. What NPS gives you for certain is a list of the people most likely to refer.

Worked example: from Amara's survey to her referrals

Amara surveys 400 customers after their second order. 180 score 9 or 10, 140 score 7 or 8, and 80 score 0 to 6:

NPS=100×(180400−80400)=25NPS = 100 \times \left(\frac{180}{400} - \frac{80}{400}\right) = 25

A score from a sample is uncertain. The standard error of the promoter share is 0.45×0.55400=0.025\sqrt{\frac{0.45 \times 0.55}{400}} = 0.025, about 2.5 points, and with only 100 responses it would be about 5 points (see Foundations: sampling). So a move of a few points from one quarter to the next is usually noise.

The useful step is to join the survey to the referral data. In the following two months, 54 of the 180 promoters shared their link (30%), 11 of the 140 passives did (8%), and 2 of the 80 detractors did (2.5%). Promoters are 45% of the respondents and over 80% of the sharers. So Amara asks promoters to share right after they score, asks passives one more question ("what would make it a 10?"), and gets in touch with detractors to sort out what went wrong. The code below does the join.

import pandas as pd

survey = pd.DataFrame({"customer_id": range(400),
                       "score": [10] * 180 + [7] * 140 + [3] * 80})
shared_ids = set(range(0, 54)) | set(range(180, 191)) | set(range(320, 322))
survey["shared"] = survey["customer_id"].isin(shared_ids)

def segment(score):
    if score >= 9:
        return "promoter"
    if score >= 7:
        return "passive"
    return "detractor"

survey["segment"] = survey["score"].apply(segment)
shares = survey["segment"].value_counts(normalize=True)
nps = 100 * (shares.get("promoter", 0) - shares.get("detractor", 0))
print(f"NPS: {nps:.0f}")
print(survey.groupby("segment")["shared"].agg(["count", "sum", "mean"]))

Putting it together: a referral programme Amara can run

In order: measure KK and the cycle time on the customers you already have, fix the weakest link, choose the reward and test it on a random split, check the cost per referred customer against a paid one, keep within the ePrivacy Regulations and the ASAI Code, and ask promoters at the moment they say they would recommend you.

Worked example: Amara's programme on one page

Amara's numbers after the work above: the share of customers who share rises from 18% to 30%, each sharer still reaches 2.89 people, and the two sided offer lifts the conversion rate of those visits from 15% to 18%. Then i=0.30×2.89=0.87i = 0.30 \times 2.89 = 0.87 and K=0.87×0.18=0.16K = 0.87 \times 0.18 = 0.16.

The multiplier on paid customers is 11−0.16=1.19\frac{1}{1 - 0.16} = 1.19, so every 1,000 customers she pays for bring about 190 more. Now the rewards go back in. The 1,000 paid customers cost 1,000×€24=€24,0001{,}000 \times €24 = €24{,}000, and the 190 referred ones cost 190×€20=€3,800190 \times €20 = €3{,}800 in rewards, so the 1,190 customers cost €27,8001,190=€23.36\frac{€27{,}800}{1{,}190} = €23.36 each. The average falls only a little. The useful view is the margin: each extra customer from referral costs €20, below the €24 a paid one costs, so every referral is worth having even before any extra loyalty is counted. It will never make Ballinacurra viral. It is still a programme worth running.

Viral growth is engineering, not magic

The maths is short. KK tells you whether growth feeds itself or needs feeding. Below 1, 11−K\frac{1}{1 - K} tells you how much further each paid customer goes, and cycle time tells you how soon. Above 1, cycle time becomes the lever that matters most. Two sided rewards, the right incentive, the right motive and the STEPPS principles are all ways to raise KK, and NPS tells you whom to ask.

The real lesson of Dropbox is not "give away storage". It is to understand the numbers, match the mechanics to why your customers would talk about you, and measure everything.

I have been building and optimising referral systems for over a decade, across eCommerce, SaaS and B2B. The code in this article is a starting point, to be adapted to your own data and analytics.

Footnotes

  1. Drew Houston, Dropbox: Startup Lessons Learned, slide deck, SlideShare, April 2010, https://www.slideshare.net/gueste94e4c/dropbox-startup-lessons-learned-3836587

  2. Dropbox, How to refer friends to Dropbox, Dropbox Help, updated 30 September 2026, https://help.dropbox.com/storage-space/earn-space-referring-friends

  3. Philipp Schmitt, Bernd Skiera and Christophe Van den Bulte, Referral programs and customer value, Journal of Marketing, volume 75, issue 1, pages 46 to 59, American Marketing Association, 2011, https://faculty.wharton.upenn.edu/wp-content/uploads/2012/04/Schmitt-Skiera-vandenBulte-2011-Referral-Programs-Customer-Value.pdf

  4. David Skok, Lessons learned: viral marketing, For Entrepreneurs, 6 December 2009, https://www.forentrepreneurs.com/lessons-learnt-viral-marketing/

  5. Government of Ireland, S.I. No. 336 of 2011, European Communities (Electronic Communications Networks and Services) (Privacy and Electronic Communications) Regulations 2011, regulation 13, paragraphs (1) and (11), Irish Statute Book, 2011, https://www.irishstatutebook.ie/eli/2011/si/336/made/en/print

  6. Data Protection Commission, Can I ask my customers to provide the electronic contact details of friends as part of a refer a friend scheme so that I can market them about my products and services?, FAQs, Direct Marketing, dataprotection.ie, accessed November 2026, https://www.dataprotection.ie/en/faqs/direct-marketing/can-i-ask-my-customers-provide-electronic-contact-details-friends-part-refer-friend-scheme-so-i-can

  7. Information Commissioner's Office (United Kingdom), Guidance on direct marketing using electronic mail: How do we comply with the PECR electronic mail marketing rules? (Can we ask people to pass on our electronic mail marketing?), ICO, https://ico.org.uk/for-organisations/direct-marketing-and-privacy-and-electronic-communications/guidance-on-direct-marketing-using-electronic-mail/how-do-we-comply-with-the-pecr-electronic-mail-marketing-rules/

  8. Advertising Standards Authority for Ireland, ASA Code, section 5, Promotional marketing practices, rules 5.1, 5.2, 5.4 and 5.15, adstandards.ie, accessed November 2026, https://adstandards.ie/code/promotional-marketing-practices/

  9. Law Reform Commission, Consumer Protection Act 2007, revised, section 55 (Prohibited commercial practices), subsection (1)(n), updated to 24 November 2025, Revised Acts, https://revisedacts.lawreform.ie/eli/2007/act/19/revised/en/html

  10. Advertising Standards Authority for Ireland, ASA Code, section 3, General rules, rules 3.1, 3.31 and 3.32 (Recognisability), adstandards.ie, accessed November 2026, https://adstandards.ie/code/general-rules/

  11. Advertising Standards Authority for Ireland, Social media influencer guidance, adstandards.ie, accessed November 2026, https://adstandards.ie/social-media-influencers/

  12. Law Reform Commission, Consumer Protection Act 2007, revised, section 55 (Prohibited commercial practices), subsection (1)(zb), inserted by the Consumer Rights Act 2022, updated to 24 November 2025, Revised Acts, https://revisedacts.lawreform.ie/eli/2007/act/19/revised/en/html

  13. Competition and Consumer Protection Commission, Advertising, CCPC, accessed November 2026, https://www.ccpc.ie/information-for-businesses/selling-goods-and-services/advertising

  14. Jonah Berger, Contagious: Why Things Catch On, jonahberger.com, https://jonahberger.com/books/contagious/

  15. Knowledge at Wharton, 'Contagious': Jonah Berger on why things catch on, Wharton School, University of Pennsylvania, https://knowledge.wharton.upenn.edu/article/contagious-jonah-berger-on-why-things-catch-on/

  16. Jonah Berger and Katherine L. Milkman, What makes online content viral?, Journal of Marketing Research, 2012, https://jonahberger.com/wp-content/uploads/2013/02/ViralityB.pdf

  17. Frederick F. Reichheld, The one number you need to grow, Harvard Business Review, December 2003, https://hbr.org/2003/12/the-one-number-you-need-to-grow

  18. Bain and Company, Measuring your Net Promoter Score, Net Promoter System, https://www.netpromotersystem.com/about/measuring-your-net-promoter-score/

If you would like to know your own K factor and cycle time, and what a referral programme would really be worth to you, I run a free workshop, and the first two weeks of work are on me. Bring an order export, I will bring the arithmetic.