Every growth team eventually asks the same question: is our product spreading on its own? The viral coefficient (also called the K-factor) gives you a single number that answers it precisely. A K above 1 means each generation of users recruits more users than itself — a self-sustaining loop. Below 1, growth relies entirely on external acquisition. Exactly 1 is a knife-edge that produces linear, not exponential, growth.
How it works
The formula is deceptively simple:
K = i × cr
where i is the average number of invitations, referral links, or shares each user sends, and cr is the fraction of those invitations that convert to a new active user (expressed as a decimal: 25% = 0.25).
Starting from a seed cohort of users, the product multiplies out wave by wave:
- Wave 0: seed users (the starting cohort)
- Wave 1: seed × K new users join
- Wave 2: seed × K² new users join
- Wave n: seed × Kⁿ new users join
Cumulative users after n waves = seeds × (K^(n+1) - 1) / (K - 1) when K is not exactly 1. When K = 1 exactly, the formula simplifies to seeds × (n + 1).
The cycle time — the average days between a user joining and their invitees joining — determines how quickly those waves translate into real-world growth. Two products with the same K but different cycle times reach milestones at very different speeds.
Worked example
Suppose you launch with 100 seed users. Each user sends 5 invitations and your invitation-to-signup conversion rate is 25% (realistic for a well-designed referral email).
K = 5 × 0.25 = 1.25 — viral.
With a 7-day cycle time:
| Wave | Day | New users | Cumulative |
|---|---|---|---|
| 0 | 0 | 100 | 100 |
| 1 | 7 | 125 | 225 |
| 2 | 14 | 156 | 381 |
| 3 | 21 | 195 | 576 |
| 5 | 35 | 305 | 1,126 |
| 10 | 70 | 931 | 4,257 |
To reach 10,000 cumulative users takes approximately 13.6 waves ≈ 95 days. The same product with a 3-day cycle instead of 7 days would hit 10,000 users in roughly 41 days — same K, very different outcome.
Now compare a sub-viral product at K = 0.8 (say, 4 invitations at 20% conversion). Growth tapers: the series converges and total lifetime users from 100 seeds is capped at 100 / (1 - 0.8) = 500 users regardless of how long you wait.
Formula note
The time-to-target is solved analytically. For K ≠ 1:
Cumulative(n) = seeds × (K^(n+1) - 1) / (K - 1) = target
Rearranging: K^(n+1) = target × (K - 1) / seeds + 1
n = log(target × (K - 1) / seeds + 1) / log(K) - 1
For K < 1, the infinite geometric series converges to seeds / (1 - K); if your target exceeds that ceiling the tool marks it unreachable. All arithmetic uses 64-bit floating point; results are rounded to one decimal place in the display.