# Viral coefficient (k-factor): the formula, a worked example and why k below 1 still matters

> The viral coefficient (k-factor) is how many new users each user brings. The formula, a worked example, what k below 1 adds and how to measure it honestly.

- Source: https://productovi.com/blog/viral-coefficient
- By: Sergey Bruh
- Published: 2026-09-30
- Topics: Invites and virality

The viral coefficient, or k-factor, is **the average number of new users each user brings in through invitations**: invitations sent per user × the share of invitations that turn into new users. If every user sends 2 invitations and 15% of them become new accounts, $k = 2 \times 0.15 = 0.3$. Above 1, each generation of users is bigger than the last and the product grows on its own. Below 1, which is where almost every product lives, invitations can't drive growth alone, but they multiply every other channel by $1 \div (1 - k)$. The number is only meaningful with a fixed time window, and only when it counts **new** people. Here's how to calculate it, a worked example on real-looking data, and the four ways teams overstate it.

## The viral coefficient formula

$$
k = \underbrace{\frac{\text{invitations sent}}{\text{users}}}_{\text{invitations per user}} \times \underbrace{\frac{\text{new users from invitations}}{\text{invitations sent}}}_{\text{invitation conversion}} = \frac{\text{new users from invitations}}{\text{users}}
$$

The [k-factor](/glossary/pa-k-factor) depends on three choices:

- **The cohort.** Take the users who signed up in one period, say one month, and count what they did.
- **The window.** Count only invitations sent in each user's first 30 days (or 7, or 14) and sign-ups within the same window. Without a window, older cohorts always look more viral simply because they've had longer to invite.
- **The numerator.** New accounts created from invitations, not invitations accepted. An existing user joining one more group is engagement, not growth.

The two factors are worth tracking separately: invitations per user tell you whether people want to share; invitation conversion tells you whether the invitation experience works for the person receiving it.

## Worked example: is Halves viral?

Halves is a bill-splitting app. Every group needs members, so sharing is built into the product: you create a group for the flat or the trip and invite the others. Here are the 2026 cohorts, everything counted within 30 days of each user's sign-up:

| Sign-up month | Users  | Invitations sent | Accepted | By existing users | New accounts | k    |
| ------------- | ------ | ---------------- | -------- | ----------------- | ------------ | ---- |
| January       | 4,646  | 5,737            | 1,947    | 487               | 1,460        | 0.31 |
| February      | 5,106  | 6,452            | 2,075    | 519               | 1,556        | 0.30 |
| March         | 5,395  | 7,018            | 2,275    | 569               | 1,706        | 0.32 |
| April         | 5,504  | 7,200            | 2,406    | 602               | 1,804        | 0.33 |
| May           | 5,987  | 7,290            | 2,340    | 585               | 1,755        | 0.29 |
| June          | 12,904 | 25,379           | 8,793    | 1,759             | 7,034        | 0.55 |

The working for January:

$$
\frac{5737}{4646} = 1.235 \text{ invitations per user} \qquad \frac{1460}{5737} = 0.254 \text{ conversion} \qquad k = 1.235 \times 0.254 = \frac{1460}{4646} = 0.31
$$

A dashboard that divides all accepted invitations by users gets $1947 \div 4646 = 0.42$ for January. It's a third too high, because 487 of those accepts came from people who already had the app and joined another group.

![In January 4,646 new users sent 5,737 invitations that created 1,460 new accounts, so k = 0.31; the 487 accepts by existing users are engagement, not growth](/blog/viral-coefficient/diagram.png)

## What k below 1 does for growth

With k = 0.31, Halves isn't viral in the strict sense: each generation of invited users is under a third the size of the one before, and the chain fades out. But it doesn't fade to nothing. Pool the five cohorts from January to May: $k = 8281 \div 26638 = 0.3109$. Now follow a real seed: the 2,169 users that Halves bought through its two paid channels in May 2026 (1,478 from paid social and 691 from store search ads).

| Generation       | Users         |
| ---------------- | ------------- |
| Bought in May    | 2,169         |
| Invited by them  | 674           |
| Invited by those | 210           |
| Next generations | 65 + 20 + 6 … |
| **Total**        | **≈ 3,147**   |

Each row is the one above times 0.3109: $2169 \times 0.3109 = 674$, $674 \times 0.3109 = 210$, and so on. That's a geometric series, and it has a short formula:

$$
\text{total users} = \frac{\text{seed users}}{1 - k} = 2169 \times \frac{1}{1 - 0.3109} = 2169 \times 1.4511 \approx 3147
$$

So the May seed grows by about 978 invited users: a multiplier of roughly 1.45 on every user a channel brings in. Before you turn that into a bigger ad budget, check it: don't credit invitations in your bids until a holdout shows they bring people who wouldn't have come anyway. Once one does, invited users can lower your effective acquisition cost; the post on the [LTV to CAC ratio](/blog/ltv-cac-ratio) shows where that fits in judging a channel.

## What happens when k is above 1

Take a hypothetical k of 1.2 and 100 seed users. Generations grow instead of shrinking: 120, 144, 173, 207 and so on. That's the exponential curve people mean by "going viral". In practice it rarely lasts: invitations reach friends of friends who already have the product or don't need it, conversion falls, and k drifts below 1. Treat a k above 1 as a phase to measure closely, not a permanent state to plan a budget around.

## Viral cycle time: the speed of the loop

The second number is viral cycle time: how long from a user joining to the people they invited joining. At Halves the median was 6 days for January–May cohorts and 3 days in June.

- **For k below 1** a shorter cycle doesn't change the total. The 3,147 users from the May seed arrive within weeks instead of months, which matters for cash and forecasts, not for the final count.
- **For k above 1** the cycle decides how fast growth compounds. At k = 1.2 over 30 days, a 6-day cycle gives five generations, the last one 2.5 times the seed ($1.2^5$); a 3-day cycle gives ten, the last one 6.2 times the seed ($1.2^{10}$).

## Four ways to overstate the viral coefficient

### Counting accepts instead of new accounts

The January example: 0.42 instead of 0.31. Existing users joining more groups keep groups alive, so report them next to k as an engagement metric, not inside it.

### No fixed window

A cohort from last year has had twelve months to invite; this month's has had days. Fix the window, and use the same one for every cohort.

### Quoting the best season

June's k is 0.55: trip groups form for a holiday and pull in friends within 3 days. January to May give 0.29–0.33. An investor deck that quotes 0.55 as "our k" promises growth that autumn won't deliver. Report k by cohort and season.

### Confusing credit with cause

An invitation link gets the credit for a sign-up, but some invited friends would have found the app anyway, from a store search or a conversation. That's the gap between [attribution](/glossary/pa-attribution) and [incrementality](/glossary/pa-incrementality). To measure it, hold invitations back for a small random share of new groups (say, hide the invite prompt for 5%) and compare sign-ups. If half of the invited users would have come anyway, invitations are worth half of what k suggests. It's the same logic as any experiment: [correlation isn't causation](/blog/correlation-vs-causation) until you've compared against a group without the treatment.

## Where k shows up in planning

k isn't only an investor number. It feeds two everyday decisions:

- **Budgets.** Don't credit invitations when you set bids until a holdout confirms how many invited users are extra. After that, invited users can lower your effective acquisition cost.
- **Forecasts.** k belongs in any forecast built from cohorts: fewer new users this month means fewer invited users next month, so a change in one channel echoes through the others. The [forecasting lesson](/courses/product-analytics/forecasting/theory) works through a scenario with a halved paid budget to show how that gap widens.

Invited users also need to find value quickly, or they leave as fast as they came; the post on [activation rate](/blog/activation-rate) shows how to check whether newcomers get to that moment.

## Key takeaways

- Viral coefficient k = invitations per user × share of invitations that become new users, within a fixed window.
- Count new accounts only; existing users joining groups are engagement, not growth.
- Below 1, k is a multiplier: every seed user becomes $1 \div (1 - k)$ users. At k = 0.31 that's about 1.45.
- Cycle time sets how fast invited users arrive; above 1 it sets how fast growth compounds.
- Report k by cohort and season, and run a holdout to learn how much of it is truly incremental.

## FAQ

### What is a good viral coefficient?

Anything above 0 helps, because it lowers your effective acquisition cost, and most products measured honestly sit well below 1. A sustained k above 1 is rare and usually temporary; don't build a plan that needs it.

### How do you increase the viral coefficient?

Work on the two factors separately. More invitations per user come from making sharing part of the job the product does (a group that needs its members). Better conversion comes from what the invited person sees: a clear reason to join and a quick path to value without a long sign-up.

### Is k-factor the same as word of mouth?

No. k counts sign-ups you can trace to an invitation within a window. Word of mouth without a link isn't in it, which is one reason a holdout test is the fairer way to measure the full effect of sharing.

### Should k be measured per user or per group?

Per user is standard and fits the formula. For a group product it also helps to watch how many members a new group reaches in its first weeks: that's where invitations turn into value.

## Learn it hands-on

The free course _Product Analytics: From Data to Decisions_ covers this in Module 8: [measure k honestly](/courses/product-analytics/virality/theory) on the Halves invite data, [forecast active users from cohorts](/courses/product-analytics/forecasting/theory) including the invited users a smaller paid budget would also cost, and judge [channels, attribution and incrementality](/courses/product-analytics/channels/theory). For the bigger picture, start with [what product analytics is](/blog/what-is-product-analytics).

## Related lessons

- [Invites and viral growth](https://productovi.com/courses/product-analytics/virality.md)
- [Forecasting active users](https://productovi.com/courses/product-analytics/forecasting.md)
- [Channels and marketing attribution](https://productovi.com/courses/product-analytics/channels.md)
