Virality

How to model viral growth in your financial model.

Virality, or viral growth, is a situation where the usage of a product or service by one user leads to the trial and adoption by more than one additional user, leading to exponential growth. Virality can be a valuable growth engine for companies, and is often an important aspect for companies leveraging product-led growth (PLG) in their go-to-market strategy.

Viral hooks

At the core of virality are viral hooks, or elements of the product or service designed to prompt users to share the product with others. These hooks can be incentives (e.g. discounts for referrals), engaging content that people naturally want to share, or functional benefits like collaboration features that require inviting others (e.g., multi-user platforms). To make the hooks effective, companies often apply principles such as social proof, reciprocity, exclusivity, scarcity, and authority.

Viral coefficient

The key metric for understanding virality is the viral coefficient, or K Factor, which is defined as:

Viral Coefficient = Number of Invites per User x Conversion Rate of Invites

A viral coefficient greater than 1 indicates that each user, on average, brings in more than one additional user, leading to exponential growth. Less than 1 means that each user brings in less than one additional user, which will lead to slower grwowth. Therefore, for a product to be considered viral, it needs to have a viral coefficient greater than 1.

Viral loops

The goal is to create viral hooks that lead to viral loops, which are the cycles through which a user invites others, leading to new users who then repeat the process, and so on. The time it takes for a user to invite others is called the viral cycle time, and it is an important lever of growth for product and growth teams at companies. For example, a viral loop that takes (a) 2 months from a user's first engagement to the invite of 4 new users with a 100% conversion rate is much less valuable than (b) a viral loop of 2 weeks with half the viral coefficient half and half the conversion rate:

  • (A): 1 user * 4 invites * 100% conversion rate = 4 new users (5 total) after 2 months
  • (B): 1 user * 2 invites * 50% conversion rate = 1 new user (2 total) after 2 weeks, then 2 * 2 * 50% = 2 new users (4 total) after next 4 weeks, then 4 * 2 * 50% = 4 new users (8 total) after 6 weeks, then 8 * 2 * 50% = 8 new users (16 total) after 2 months

Of course, retention (the inverse of churn) is an important aspect of virality, as users need to be retained long enough to go through a viral loop, and the growth in new users has to be greater than the loss in total users. The above example assumes full retention, but churn can be a significant drag on the net impact of viral growth.

Viral growth can be a powerful growth engine for companies and an important lever to control customer acquisition costs. While many view viral growth as "free", the marginal cost of building viral hooks into the product and service, as well as any direct costs of incenting and fulfilling on viral growth, can be significant and should be included in the accounting for the cost of growth.

How to use

For years, versions of the Standard Financial Model included a variety of prebuilt growth channels, including a viral growth component. Over time, though, I simplified the growth channel approach to one channel and removed the viral component, reducing complexity and making it easier for users to create good forecasts without analysis paralysis but also increasing the flexibility for advanced users to build specific customer acquisition strategies across multiple channels.

The viral component never made it back in, though, until Gianluca Segato's post How to model viral growth in your startup financial model inspired me to re-add a viral growth section into the Standard Financial Model. The viral growth section is built into the Growth section on the Revenues sheet, and it is additive to the other acquisition factors modeled into the prebuilt growth structure.

The viral growth section can be turned off or ignored by simply assuming a viral coefficient of 0, but used carefully, it can be a valuable method for forecasting the impact of viral growth.

Inputs

The Growth section on the Get Started sheet offer a couple of optional inputs:

  • Viral Coefficient. In this implementation the viral coefficient input should reflect the average number of invites per user per period * conversion rate of those invites to new users From a practical perspective the new growth rate assumptions at the top of the Growth section could be used to reflect viral growth without modeling virality explicitly, or you can use the viral input to reflect some separate aspect of growth.

  • Dropdowns to select the definition for the "per user" to use in calculating the growth from virality. The viral coefficient expresses the new users from 1 user, so this "per user" definition is important to calculate the absolute, or total, number of new users per period from virality. The dropdowns allow you to select from:

    (a) The growth unit or revenue unit labels, used to reflect the growth and conversion aspects to modeling revenues, and ...
    (b) New current period, new previous period, or end previous period, to select what number of "users" to use in the calculations. "End previous period" will use the number from the end of the previous period, "new current period" will use new that current period excluding the new from virality (which would create a circular calculation), and "new previous period" will use the number of new users from the previous period, useful for longer viral cycle times.

And on Revenues, there is one additional assumption:

  • Viral Cycles per period. This assumption reflects the number of viral loops that occur per period. The default is 1, but some products may have viral loops that take less than a month, so there may be a need to increase the assumption here to reflect that. This uses the driver inputs, so you can use the drivers to create a rate of change for this over time.

On Revenues, the viral coefficient is then calculated each period. By default the assumptions on Revenues will assume a declining viral coefficient over time to reflect decreasing virality through product maturity and greater natural awareness of the product, but you can alter this assumption by changing the driver inputs on the viral coefficient line. You will want to alter this assumption to reflect the rate of change you think reflects the viral hooks embedded in your product or service.

The viral coefficient is then raised to the power of the assumed viral cycles per period, and that is multipled by the number of users defined on Get Started to get the the number of new "growth units" from virality per period. That is added to the other growth factors (percentage growth per period, seasonality, manual input) to calculate the total new users per period from all sources of growth.

Why is the viral coefficient raised to the power of the viral cycles per period? The goal is to reflect the compounding impact of viral loops within a period. For example, if a viral loop results in 2 new users per period (viral coefficient of 2), and that loop happens 3 times per period (viral cycles per period of 3), then the total number of new users from that viral loop is 23 = 8 new users per period, not 2 * 3 = 6 new users per period.

Note that the virality does not impact the natural growth rate assumptions, as they are assumed to be separate and independent of the viral growth.

Please note that modeling virality is purely optional, and you could also reflect viral growth in your baseline growth assumptions (e.g. percentage growth per period, changing at a rate per period). The goal of the virality section is to provide alternate ways to reflect growth to allow you to break out the factors that are important for your growth narrative.

Common Modifications

A couple common modifications:

  1. The base used for number of users can be modified to fit whatever cut of users are determined to the important for the viral loop. You can change the formula, or simply link to the numbers in the model that you want to use for the base.
  2. The viral coefficient input embeds the underlying assumptions for the average number of invites or referrals per user, the conversion rate of those invites to new users, and the number of viral loops per period. You can also break those assumptions out into multiple cells to make the assumption structure more transparent and flexible.

Alexander Jarvis's Viral Growth Model Tool is also a good resource for understanding how to model viral growth.

Questions, contact me