The Science behind Viral Marketing

The Science behind Viral Marketing is a look at the key factors that drive growth in viral marketing. (Hint, the most important factor is not the one everyone expects.) It also looks at what is needed to get virality to work, and how to create and optimize viral marketing campaigns or viral products.

This was a slide deck presented at the Inbound Marketing Summit, Boston, Sept 2011.

Suitable for marketers or for product designers.

Further Resources

Check out Andrew Chen’s blog, as he has written extensively on the subject of Viral Growth. For example, here is one great example: What’s your viral loop? Understanding the engine of adoption.

Uzi Shmilovici has a nice list here of the Eight Ways To Go Viral.

Kevin Lawler very kindly created a post explaining how to derive the formula for viral growth used in this post: Virality Formula.

Acknowledgements and Thanks

My thanks to Antonio Rodriguez, the founder of Tabblo, who got me started on thinking about this topic several years ago. Also to Andrew Chen, whose writings on this topic are excellent. And to my partner Stan Reiss, who took my simple logic and turned it into an elegant mathematical formula.

Be Sociable, Share!
  • Rana

    This is an awesome presentation! Summarizes viral acquisition very well.

  • Seth

    Great presentation on the critical factors for viral acquisition.  Along similar lines, I found this paper about Plaxo’s efforts to optimize the viral equation very informative:

  • markslater

    Thanks for this – very insightful.

  • Ccolehour

    Cycle time…key idea. Like the numerical effect of monthly vs. annual compounding. Thank you.

  • Tomé Duarte

    Was the spreadsheet shared?

  • Myindustry

    Great slides ! Great description ! the most important factor were not the one that i expected ! Thanks again …

  • Yesuifen20

    Summit, Boston, Sept 2011.

  • Anonymous

    David, thanks for the helpful framework.  In my startup, it’s hard to reduce our viral cycles to a certain number of “invites” in a particular “cycle time.”  I’m thinking of a new user more like an investment that spits out cash flows over time.  We have both active and passive sharing that broadcasts customer activity out to their social graph.  And different groups of customers seem to generate different levels of sharing over time — in the simplest case, “trial” customers come for a couple days and leave, and “subscriber” customers stick around and stay engaged.  In that sense, I’m thinking the “invites” or “impressions” are likely a function of time as well as conversion rate.  

    Have you written or read anything taking this analysis to the next level of sophistication?  Do you perhaps think that may be beyond the point of diminishing returns for most businesses?

  • David Skok

    It should be fairly easy to model this using an excel spreadsheet provided you can populate the figures for how those invites get sent out.
    The primary value in modeling something like that would be both forecasting, and also to look for insights on where to take actions. I suspect for most businesses, there will not be substantial new insights beyond those discussed here. i.e you are at the point of diminishing returns unless you care about forecasting.
    I hope this helps.

  • Yesuifen20

    and how to create and optimize viral marketing campaigns or viral products.

  • Yesuifen20

    Sept 2011.

  • Anonymous

    Great Post for other startup/tech related articles go to

  • Valerie R. Coffman

    This formula is naive for two reasons: 

    1. It doesn’t define what makes a “customer”. If the definition of “customer” is anyone who has ever used the product, even once, then this is a good formula (aside from the second issue treated below). But a customer who has used a product once and never returned doesn’t mean anything in terms of generating current or future revenue. A better measure is the number of *active* users. To keep track of this, one must consider a loss rate at every cycle. If ‘L’ represents the fraction of new users who are lost at each cycle after using the product once, you can replace ‘K’ everywhere in the formula with ‘K-L’.

    2. The formula assumes an infinite addressable market. With the formula as it is given, it wouldn’t take that many cycles for the number of customers to exceed the population of the earth if ‘K-L’ is greater than 1. The true number of customers at time ‘t’ will plateau when the addressable market for the product is saturated.

    Considering both these points, the formula should be

    Custs(t) = Min ( Custs(0) * (K – L) [(t/ct + 1) - 1] / [K - L - 1] , [Size of addressable market])

  • Vibhor JAIN

    good point Valeria… but I think in this specific context you mean to say “L” represents % of “new” user that “don not” send invites to potential new user
    VS. the “active users”

  • Vibhor JAIN

    David, can you explain a bit more please what do you mean by “cycle time”

  • David Skok

    Sure. The cycle time is the time that it takes to go through the viral loop. The viral loop is shown in the article, but is the series of step from visitor discovering your application/game/etc., to them becoming a user, then inviting their friends, to their friends becoming visitors, and then signing up as users themselves.

  • David Skok

    Valerie, you are right, the formula did not attempt to model that situation. My goal was not to build the perfect formula as there are a lot of complex additional factors to take into consideration. The goal was simply to help make people aware of the role that K and ct play in viral growth.
    It would be very interesting to build a more accurate model. Right now I don’t have the time. Your adaptation of the formula may cover it the churn issue, but I haven’t validated the math yet. But thanks for adding this!

  • şişme bebek

    Great review ;)

  • Touristlink

    Its interesting that as the number of users increases so does the dropout rate so that to maintain a steady growth rate in active users you need to actually increase virality over time

  • Matthew Slight

    Quite possibly the best set of slides I’ve seen in a long time. Great analysis.

  • David Skok

    Thanks Matthew!

  • Matthew Slight

    I have just spent the past hour writing up lots of ideas on the back of this to my co-founder at

    We are currently looking at ways to make our social dining service go viral (think meetups in restaurants).

    And by “go viral” I mean grow customer base at a fast yet controlled rate of expansion. The formulae in your slide should help with that.

    It was actually your other blogpost on CAC which brought me to your site (; this was also extremely helpful. We are a B2C service so some of the business parts / terminology didn’t match up but I could draw the lines.

    Matrix looks great. Needless to say we’re working on customer acquisition so right now we’re what you’d call pre-revenue I guess.

    Do you have an early stage partners or contacts in London, UK?

  • David Skok

    Unfortunately not. I have one friend in a UK VC firm, so if you’d like to email me an exec summary or investor slide deck, I’ll be happy to forward to them.
    Best, David

  • bhuemer

     Hi Valierie,

  • Jose

    Sorry David, but I think your formula in slide 9 is not correct.

    You said K = i x conv%

    But I think that K = i x conv% / Custs(0)

    Isn’t it?

  • Valerie R. Coffman

    I’ve done a lot more thinking on this since my earlier comment. I’ve determined that “viral coefficient” (as it is used here) is poorly defined and that the dependence on “cycle time” is an artifact of some of the assumptions in this model. Mainly, the assumption that every user has the same cycle time and that the cycles happen in unison basically turn the “cycle time” into a compounding interval. This is why it becomes the most important factor in this model. But in reality, different users have different cycle times and they obviously do not happen synchronously. To model that, you’d need a viral coefficient that represents an average rate of invitations per unit time. More details are here in my blog post: