Race to Scale

Viral Coefficient Calculator With the K Factor Formula and Viral Cycle Time

The viral coefficient (K) equals invites per user times invite conversion rate. Above 1 it compounds. Below 1, total users equal seed divided by (1 minus K).

By Race to Scale Desk, edited by Lila Odinaev. Published . How we work

The cohort that starts inviting
Sent in one cycle
%Become active users
daysFrom joining to the invitee joining
daysHow far ahead to project

Each new user brings 2 more, so 10 starting users grow to about 310 in 28 days, which is 4 cycles.

K is above 1, so each cycle is larger than the last. Halving the cycle time to 3.5 days doubles the cycles in the window, which moves the result more than a small change in K.

How it is worked out

K = invites per new user × conversion
users(t) = C0 × (K^(t ÷ ct + 1) − 1) ÷ (K − 1)
ceiling when K < 1 = C0 ÷ (1 − K)
C0
the starting users
t
the time window, in days
ct
the cycle time, in days

Worked example, with the default inputs:

  1. K = 10 × 20% = 2.
  2. t ÷ ct = 28 ÷ 7 = 4 cycles.
  3. users = 10 × (2^5 − 1) ÷ (2 − 1) = 310.
  4. Check against the source: after one cycle, 10 × (2² − 1) ÷ (2 − 1) = 30.

Where the defaults come from

InputDefaultSource
Starting users10For Entrepreneurs (David Skok)The example on the source page; an example input, not a benchmark.
Invites per new user10For Entrepreneurs (David Skok)The example on the source page; an example input, not a benchmark.
Invites that convert20%For Entrepreneurs (David Skok)The example on the source page; an example input, not a benchmark.
Cycle time7 daysExample input, not a benchmark. Replace it with your own.
Time window28 daysExample input, not a benchmark. Replace it with your own.

A viral coefficient calculator multiplies the average number of invites each user sends by the share of invitees who become users, and that product is K. Five invites at a 20% conversion rate gives a K of 1.0, which is a steady state. Growth compounds only above 1. Below 1, total users equal seed divided by (1 minus K), so 1,000 seed users at a K of 0.5 reach 2,000.

How do you calculate the viral coefficient?

Multiply the number of invitations each user sends by the share of those invitations that turn into new users. That product is K. For Entrepreneurs puts it this way: multiply the number of invitations by the conversion rate. First Round writes the same formula as K = (average number of invites sent by each user) × (conversion rate of invitees).

"Viral coefficient" and "K factor" are two names for one number. Use whichever your team already uses, and keep the definition fixed in your dashboard. See our glossary entries for the viral coefficient and the K factor.

The two inputs

  • Invitations per user (i). The average number of invites one user sends in a cycle. Count invites actually delivered, not share buttons shown.
  • Invite conversion rate (c). The share of invitees who become users. AppsFlyer gives the example that if one in five invitees converts into a new customer, then c = 0.2. Write c as a decimal before you multiply.

Two round examples that both reach 1.0

First Round's example: one user sends five invites, and if 20% convert, the k-factor equation gives you 1.0. In decimals, 5 invites times 0.2 equals 1.0.

Now flip the mix. As a round example, not a benchmark: a user sends 2 invites and 0.5 of them convert, so 2 times 0.5 equals 1.0. Same K, very different product. One relies on volume, the other on invite quality. In our reading, knowing which input drives your K tells you where to test first: invite prompts or the invitee landing page.

Invites per user (i) Conversion (c) K
5 20% 1.0
2 50% (our example) 1.0
10 20% 2

The last row comes from For Entrepreneurs, where 10 customers each send 10 invitations and convert 20%, or 2 new customers each, so the first cycle ends at the starting 10, plus the new 20, which equals 30.

What 1.0 means

A K of exactly 1.0 does not compound. AppsFlyer notes that a K equal to one means you’re in a steady state, and are neither growing nor declining. For Entrepreneurs is direct: the Viral Coefficient must be greater than 1 to have viral growth.

One modeling detail to get right this week: in the For Entrepreneurs model, only the new customers that were added in the prior cycle send out invitations. Measure i on each new cohort, not on your whole user base, or your K will read high.

Worked example with 1,000 seed users, 5 invites each and a 10% invite conversion

Take a simple launch as an example, not a benchmark: 1,000 seed users, each sending 5 invites, with 10% of invites turning into new users.

Step 1: compute K

Multiply invites per user by the conversion rate. 5 invites times 0.10 gives a K of 0.5. Each user brings in half a new user.

Step 2: run the cycles

As in the model from the previous section, only the users added in the last cycle send invites. So each cycle's new users equal the prior cycle's new users times 0.5.

Cycle New users this cycle Running total
0 (seed) 1,000 1,000
1 500 1,500
2 250 1,750
3 125 1,875
4 62.5 1,937.5

The fractional user in cycle 4 is a reminder that this is a model. In practice you round, and the loop fades out within a few more cycles.

Step 3: find the ceiling

When K is below 1, the running total stops growing at a fixed point. You get that point by dividing the seed by (1 minus K). Here, 1,000 divided by 0.5 gives 2,000. The loop roughly doubles your seed and then stops.

The same pattern appears in the For Entrepreneurs model: with K below 1, the population grows "to 20 people, and then stops." A K of 0.5 still has value: it is a free 100% bonus on every user you acquire through other channels. It just will not grow the base without them.

A second example from referral data

Many teams track referrals and conversions rather than invites per user. Klipfolio works one through: 180 customers, 110 referrals, 95 conversions to paying accounts, calculated as (110 / 180) × (95 / 110) = 0.53.

The first ratio is referrals per customer, which is your invite rate. The second is the share of referrals that convert. The 110 cancels, so the shortcut is 95 conversions divided by 180 customers, which gives 0.53. Klipfolio reads this as one new customer referred for every two existing customers, and at that level you still depend on paid or organic acquisition to scale.

What to do this week

  1. Pull last month's new customers, referrals sent and referral conversions.
  2. Compute K both ways: invites times conversion rate, and conversions divided by customers. If they disagree, your tracking has a gap.
  3. Divide your monthly seed by (1 minus K) to see how many users the loop adds on top.
  4. Drop the result into the growth model template and test which lever, invites or conversion, moves the ceiling more. For background on the term, see k-factor.

What is viral cycle time and why does it matter as much as K?

Viral cycle time is how long one turn of the loop takes: from a new user joining to the people they invite joining. In the Skok-Reiss model it is the amount of time it takes a new user to try a product and then send out invitations to other potential users. K tells you how much each cycle multiplies your base. Cycle time tells you how many cycles fit into a month.

David Skok's example compared two products. On YouTube a user would come to the site, see a funny video, and immediately send the link on. On Tabblo, a photo site, it could take months before they next took photos and invited anyone.

The formula and where it comes from

The key feature: The Viral Coefficient K is raised to the power of t/ct, where t is elapsed time and ct is cycle time.

Total users = seed × (1 + K + K^2 +... + K^n), where n = t ÷ ct.

Worked example at 30 days

These are example inputs, not benchmarks: 1,000 seed users, K of 0.5 or 2, and a cycle of 2 days or 10 days. At 30 days, a 2-day cycle gives 30 ÷ 2 = 15 cycles, and a 10-day cycle gives 30 ÷ 10 = 3 cycles.

K Cycles in 30 days Total users after 30 days (our calculation)
0.5 3 (10-day cycle) 1,875
0.5 15 (2-day cycle) about 2,000
2 3 (10-day cycle) 15,000
2 15 (2-day cycle) 65,535,000

At K of 0.5, the extra cycles add almost nothing: the series stalls just under double the seed either way. At K of 2, the shorter cycle is the whole story. The same K gives 15,000 users on a 10-day cycle and a number no real market can hold on a 2-day cycle, which is why the result is a ceiling, not a forecast.

Skok's own model showed the same pattern. After 20 days with a cycle time of two days, you will have 20,470 users. Halving the cycle to one day took that past 20 million users. His conclusion was that reducing ct has a far more powerful effect than increasing K.

Read the output as a ceiling

The model does not specify the size of the market. It also assumes no churn. Saturation and lost users both pull real numbers below the formula, so track retention next to it.

This week, pull the median days between an inviter's signup and their invitees' signups. That figure is your cycle time. Put it next to your K-factor in the calculator. We think shaving days off that interval often costs less than raising invite volume.

Is a K factor below 1 still useful?

Yes. Below 1, the loop cannot grow a product on its own, but it multiplies every user you bring in through other channels by a fixed amount:

Total users = seed users divided by (1 minus K)

Here is a worked example with round inputs, not a benchmark. Start with 1,000 seed users and a K of 0.5. Total users are 1,000 divided by 0.5, or 2,000. The first cycle adds 1,000 times 0.5, or 500 users, the next adds 250, and each later cycle adds half of the one before.

For a K near one third, take the dating app example from AppsFlyer: one invite per user and one in three invitees registering gives "K-factor = 1 * ⅓ = 33.3%." Plug one third into the formula: 1 divided by two thirds gives 1.5. With that multiplier, 1,000 seed users times 1.5 gives 1,500 users.

K Multiplier per seed user (our calculation) Total from 1,000 seed users (our calculation)
0.5 2 2,000
One third 1.5 1,500

Why it never takes off on its own

Above 1, the series has no ceiling, so each cycle is larger than the last. Below 1, each cycle is smaller, and the referral contribution fades toward zero within a handful of cycles. Stop the seed flow and, at a K of 0.5, referral signups halve every cycle until they effectively stop. Viral cycle time, covered above, sets how fast that fade happens.

How to use it this week

Plan backwards from the multiplier. As an example, if you need 2,000 new users a month at a K of 0.5, you need 2,000 divided by 2, or 1,000 seed users. If a paid signup costs $30, the blended cost per user becomes 30 divided by 2, or $15. Use that blended figure when you work out payback period.

Watch for multipliers labeled as K. AppsFlyer's example bought 10,000 users, saw the base reach 12,000, and called it a K-factor of 1.2 (AppsFlyer). In our reading, that 1.2 is the amplification multiplier from the formula above, not a K above 1. A true K behind it would sit well below 1, and that growth still depends on the next paid user acquisition (UA) batch. See growth loops for ways to feed the seed side.

What is a good viral coefficient?

There is no single "good" number. What matters is which side of 1 your K sits on and what that means for the budget. Klipfolio frames the three ranges this way: above 1 each cohort generates more than one new customer, at 1 referrals replace churn, and below 1 you still depend on paid or organic acquisition.

K range What it signals What it means for acquisition spend (our reading)
Above 1 Each cohort brings in more than one new customer Paid spend becomes a seeding cost. Every bought user carries a referral tail, so you can accept a higher cost per seed user.
Equal to 1 Referrals replace churn without speeding up expansion Referrals hold the base flat. Growth still has to come from a paid or organic budget.
Below 1 Referrals help but do not sustain growth alone Treat referrals as a discount on paid acquisition. Budget your channels as if virality were a bonus.

Klipfolio notes that above 1, your customer base compounds without a proportional increase in marketing spend. It also warns that even a K score above 1 does not eliminate the need for deliberate acquisition strategy, because referral loops slow once the base stops growing.

What K does not tell you

K counts how many people each user brings in. Andrew Chen lists what it leaves out, including "Is your product sticky?", "Where does your traffic monetize well?" and "Is your market big enough?". A product can spread fast and still lose money or run out of buyers.

First Round makes the same point about retention: if retention is weak, viral loops become leaky buckets.

Worked example: the retained K check

Here is how churn can cancel a strong headline K. These are example inputs, not a benchmark.

  1. Suppose 1,000 seed users produce 2,000 referred signups in one cycle, a headline K of 2 (2,000 divided by 1,000).
  2. If only 30 of every 1,000 referred signups are still active a month later, the 2,000 signups leave 60 active users.
  3. 60 retained users divided by 1,000 seed users gives a retained K of 0.06.

The slide says 2. The business behaves like 0.06.

This week, report K next to a retained K for each cohort, using the same active definition you use for retention. If the two numbers diverge, read the retention curve before you spend more on seeding. Then check your churn against monthly churn benchmarks.

How to measure invites and invite conversion from an event log

The calculator is only as good as the counts you feed it. Log four events with the same five fields, so every new user can be traced back to the person who brought them in.

The event template

event_name user_id inviter_id cohort_week timestamp
invite_sent blank (recipient is not a user yet) sender sender's signup week when sent
invite_accepted new user sender sender's signup week when clicked or accepted
signup new user sender, or blank sender's signup week when account created
activated new user sender, or blank sender's signup week when they hit your activation event

The inviter ID is the field teams lose. Andrew Chen notes that tracking is easy "as long as you encode the user id into the URL that’s shared." Signups with a blank inviter ID are organic or paid. He suggests you discard them "as part of your viral factor calculation."

The three counts

WITH cohort AS (
SELECT user_id, timestamp AS signup_at,
DATE_TRUNC('week', timestamp) AS signup_week
FROM events WHERE event_name = 'signup'
)
SELECT c.signup_week,
COUNT(DISTINCT c.user_id) AS cohort_users,
COUNT(*) FILTER (WHERE e.event_name = 'invite_sent') AS invites,
COUNT(DISTINCT e.user_id) FILTER (WHERE e.event_name = 'activated') AS activated_invitees,
PERCENTILE_CONT(0.5) WITHIN GROUP (ORDER BY e.timestamp - c.signup_at)
FILTER (WHERE e.event_name = 'activated') AS median_cycle_time
FROM cohort c
LEFT JOIN events e ON e.inviter_id = c.user_id
GROUP BY c.signup_week;

From that output, invites per user is invites divided by cohort_users. Invite conversion is activated_invitees divided by invites. Median cycle time runs from the inviter's signup to the invitee's activation.

Here is an example, not a benchmark. A cohort of 1,000 users that sends 2,000 invites averages 2 invites per user. If 10% of those 2,000 invites end in an activated user, that gives 200 activated invitees. With 200 activated invitees from 1,000 users, K for that cohort is 0.2.

This mirrors Chen's method. Take a cohort's user IDs and "ask the database how many times do those IDs show up as share IDs in new sign-ups that happen afterwards."

Why the counts keep rising for weeks

Do not freeze a cohort's numbers after its first session. Chen argues that a user who returns daily gives you more chances: "You’ll have 30 shots a month, and each shot can add up through the course of time." In his words, a sticky product "can take its time, building viral growth over weeks and months." Collaboration and sharing work this way. Each new document or project creates another reason to invite.

Re-run the query for each cohort week at fixed ages, such as day 7, day 30 and day 60, and compare them at the same age. The ratio between generations, Chen writes, tends to "stabilize pretty nicely over time." Watch conversion by cohort week as well, because as invites saturate a market, "the response rate tends to decrease over time."

Mistakes that inflate or distort K

In our reading, most inflated K figures come from four habits. Each one has a fix you can apply to the event log you already built.

In this simulation, a 20% lift in Week 1 retention produced more users by Week 7 than the same lift in Week 1 virality, and both scenarios ended above the base case.

Simulated users in Week 7 by scenariothousand users

Simulated users in Week 7 by scenario
ItemValue, thousand users
Base case88 thousand users
20% more Week 1 virality110 thousand users
20% more Week 1 retention125 thousand users
Source: andrewchen.com, Retention is King (guest post by Jamie Quint).
Mistake What it does to K (our reading) Fix
Counting signups as conversions Inflates K Count invitees who reach your activation event
Treating the invite rate as constant Inflates projections Measure invites per user by user age
Blending cohorts of different ages Moves K up or down as the mix shifts Report K per signup cohort, at the same age
Leaving out churn Inflates long-run user counts Model retention next to K

Counting signups instead of activated users

The standard formula defines conversion as signups divided by invites. A signup who never activates will not invite anyone, so the next generation is smaller than K suggests.

Here is an example, not a benchmark. Your 1,000 users generate 2,000 invited signups, and 30% of those signups activate, so 30% of 2,000 is 600 activated users. K on signups is 2,000 divided by 1,000, or 2. K on activated users is 600 divided by 1,000, or 0.6. Use one definition of activation for both the seed group and the invitees.

Ignoring decay as users age

Over time, even a passionate user has nobody left to share it with. The Skok-Reiss model assumes each user sends a single batch of invitations, which hides this curve.

Fix: compute invites per user for week 1, week 2 and week 3 of each user's life. Project with that declining curve, not with the week 1 rate.

Mixing cohorts of different ages

Because invites are front-loaded, a month heavy with new signups will show a high blended K. A month dominated by older users will show a low one. Neither number tells you whether the product got more viral. Group users by signup week, as a cohort, and compare K at the same age.

Leaving out churn

Users who leave are not able to invite others over time. Track week-to-week retention: in Quint's example, Week 2 at 40% overall retention and Week 3 at 30% give a week-to-week retention of 75%.

His simulator compared equal lifts. A 20% increase in Week 1 retention reached about 125k users in Week 7. A 20% increase in Week 1 virality reached about 110k. His rule: do not focus on improving virality until overall retention is stable. Read your curve first with our guide to retention curves.

How to use the calculator and act on the result this week

The calculator takes five inputs and returns four outputs. Every input should come from your event log, not from memory or a pitch deck.

Input Where it comes from in the event log
Seed users Count of distinct user IDs in one signup cohort
Invites per user Invite or share events sent by that cohort, divided by cohort size
Invite conversion rate Signups carrying a sharer ID from the cohort, divided by invites sent
Cycle time in days Days between a sharer's signup and the signup of the person they brought in
Number of cycles Your planning horizon divided by cycle time

The outputs are K (invites per user times conversion), users added per cycle, total users after the chosen number of cycles, and the amplification factor, 1 / (1 - K), which applies only when K is below 1.

A worked example

These are example inputs, not a benchmark. Take a cohort of 2000 seed users who send 2 invites each and convert at 30%. K is 2 × 0.3 = 0.6. With a K of 0.6, the amplification factor is 1 / (1 - 0.6) = 2.5, so 2000 seed users become 5000 in total over many cycles. If the cycle time is 30 days, most of that lift lands in the first few months, because each cycle adds less than the one before.

Five steps for this week

  1. Pull one cohort. Pick a single signup month and export user IDs, invite events and signups that carry a sharer ID.
  2. Compute cycle time. Take the median gap in days between sharer signup and invitee signup. Use the median so a few slow invitees do not stretch the figure.
  3. Pick the weaker lever. Chen frames the two levers as testing whether "more people share, and do they do more of them" and, for recipients of a growth link, what share convert and "how you make that conversion higher." In our reading, the lever with the most obvious friction in the flow is the one to test first.
  4. Log one experiment. Write the hypothesis, the lever, the expected change in K and the stop date in the growth experiment backlog template, then score it with an ICE score. The guide to running a growth experiment covers sample size and stopping rules.

Treat the output as one input to planning. K does not answer how long it will take "to saturate the entire network of users", so rerun the calculator on each new cohort. Chen's advice is to "Build models and conduct experiments left and right on your product, so that you are always iterating."

What this page does not cover

This page does not model market size or saturation, and its formulas assume no churn, so treat the outputs as a ceiling and track retention separately. It also does not cover how to choose or budget paid and organic acquisition channels. The budget and payback figures here are worked examples for planning, not financial advice.

Related on Race to Scale: Referral program examples that worked, and the mechanics behind them; A/B test sample size and duration calculator, with the formula; Growth experiment template with ICE scoring, a weekly cadence and a backlog you can copy.

Embed this calculator

Paste this into any page to show the live calculator with its formula and the source of each default, linked back here.

<iframe src="https://www.racetoscale.com/embed/viral-coefficient" title="Viral coefficient and cycle time calculator, from Race to Scale" width="100%" height="760" style="border:0;max-width:1100px" loading="lazy"></iframe>

Questions

How do you calculate the viral coefficient?

Multiply the average number of invitations each user sends by the share of those invitations that turn into new users. Write the conversion rate as a decimal first, so five invites at 20% becomes 5 times 0.2, which gives a K of 1.0. Measure invites on each new cohort rather than your whole user base, or your K will read high.

What is a good viral coefficient for a startup?

There is no single good number. What matters is which side of 1 your K sits on. Above 1, each cohort brings in more than one new customer. At 1, referrals replace churn. Below 1, you still depend on paid or organic acquisition. Check a retained K next to the headline figure, because weak retention can turn a K of 2 on a slide into 0.06 in practice.

What is viral cycle time?

Viral cycle time is how long one turn of the loop takes, from a new user joining to the people they invite joining. K sets how much each cycle multiplies your base, and cycle time sets how many cycles fit into a month. In David Skok's model, 20 days at a two-day cycle gave 20,470 users, and halving the cycle to one day took that past 20 million. To measure it, pull the median days between an inviter's signup and their invitees' signups.

Is a K factor below 1 still worth it?

Yes, as a discount on other channels. Total users equal seed users divided by (1 minus K), so a K of 0.5 turns 1,000 seed users into 2,000, a free 100% bonus. At that multiplier, a $30 paid signup carries a blended cost of $15 per user. The loop will not grow the base on its own, though. Stop the seed flow and referral signups fade within a handful of cycles.

What is the difference between viral coefficient and K factor?

None. Viral coefficient and K factor are two names for one number: invites per user times invite conversion rate. Use whichever term your team already uses, and keep the definition fixed in your dashboard.

How do I measure invite conversion rate?

Log invite_sent, invite_accepted, signup and activated events, and give each one an inviter ID, so every new user traces back to the person who brought them in. Invite conversion is activated invitees divided by invites sent. For example, if 10% of 2,000 invites from a 1,000-user cohort end in an activated user, you have 200 activated invitees and a K of 0.2. Count activated users rather than signups, because a signup who never activates will not invite anyone.

Sources

  1. Lessons Learned, Viral Marketing - For Entrepreneurs, For Entrepreneurs, 2009-12-06.
  2. K-factor: The Metric Behind Virality, First Round, 2025-09-18.
  3. K-Factor | AppsFlyer mobile glossary, AppsFlyer, 2025-01-03.
  4. Viral Coefficient: Definition, formula, and examples, Klipfolio, 2026-09-03.
  5. A Note On Viral Marketing, Part IV: Examining The Widely Used Skok-Reiss Virality Model, innovationfootprints.com, 2014-07-27.
  6. Viral coefficient: What it does and does NOT measure at andrewchen, andrewchen.com.
  7. BRAINDUMP ON VIRAL LOOPS, andrewchen.substack.com, 2025-11-06.
  8. Why the best way to drive viral growth to increase retention and engagement at andrewchen, andrewchen.com.
  9. Retention is King (Guest Post) at andrewchen, andrewchen.com.