# A Virality Formula

## Deriving the Formula

A recent article presented a formula that David Skok attributes to Stan Reiss. $$U(t) = U(0) \cdot {K^{(\frac{t}{p}+1)} -1 \over K - 1}$$ The formula measures users over time.

The function $U$ counts the number of users at a given time with $t$ indicating the the current (or specified) time and $U(0)$ indicating the number of users at the start of the process.

The virality coeffecient, given by $K$, is defined as the product $$K = I \cdot C$$ where $I$ is the number of invites each user sends, and $C \in [0,1]$ is the rate at which invites convert new users. It is assumed that each user sends his invites once in a single batch. If users were assumed to send invites continuously we could use the formula for compound interest.

The amount of time it takes for a new user to send his batch of invites is given by $p$. The number of cycles the invite process has gone through is represented by $t/p$. The importance of introducing $p$ in this formula is that it may be easier to increase $U(t)$ by reducing $p$ than by increasing $K$. In other words, lowering the amount of time it takes for a user to invite other users to the service may be substantially more effective than increasing the number of invites users send or the rate at which invited non-users convert. Lowering $p$ increases the power whereas increasing $K$ only increases the base.

Empirically, $p$ is overlooked. It is more likely than $K$ to be amenable to change. So it can be an especially good idea to devote effort to minimizing $p$. Effort put into minimizing $p$ can go farther than effort put into maximizing $K$.

To show how the formula was arrived at we give a chart indicating how invitations increase the size of a user base over time. Let $K=2$ and $U(0)=10$. Let $N$ represent the number of completed invite cycles.

Number of Users after Each Round of Invites
Completed Cycles $(N)$012345
New Users10204080160320
Total Users103070150310630

We can see the New Users row doubles every round. The number of New Users for round $i$ is given by $$U(0)K^i$$ We also see that the Total Users row is a running sum of the New Users row. The total number of users is given by the summation $$U(t) = \sum_{i=0}^N U(0)K^i = U(0) \cdot \sum_{i=0}^N K^i$$ There is a known identity for sums of powers. $$\sum_{i=0}^{M-1} r^i = {1-r^M \over 1-r }$$ We use it here with $N=M-1$. $$U(0) \cdot \sum_{i=0}^N K^i = U(0) \cdot {1-K^{(N+1)} \over 1-K}$$ Multiply the term on the right by $-1/{-1}$. $$U(0) \cdot {K^{(N+1)} - 1 \over K - 1}$$ Replace $N$ with $t/p$ $$U(t) = U(0) \cdot {K^{(\frac{t}{p}+1)} - 1 \over K - 1}$$ Giving us the original formula. To increase $U(t)$ maximize $K$ and minimize $p$.