Native Viral Loop
And How to Calculate It for Your Product
The viral coefficient tells you one thing: how many new users each existing user generates. It is the single number that separates products that grow themselves from products that need constant feeding.
If your viral coefficient is 0.5, every 100 users you acquire through paid channels generate 50 additional users for free. If it is 1.0, you have hit the holy grail of growth — each user brings one more, and the product spreads without you spending another dollar on acquisition.
Most SaaS founders have heard the term. Few can calculate it accurately. Fewer still know how to improve it. This guide covers the formula, the step-by-step calculation method, real-world benchmarks from companies like Dropbox, Slack, and Figma, and the common mistakes that lead to wildly inaccurate numbers.
The viral coefficient (also called k-factor or viral k) measures the number of new users that each existing user generates through the product's viral mechanisms. It is the fundamental unit of viral growth.
If your viral coefficient is 0.6, every user you acquire — through ads, content, outbound, whatever — generates 0.6 additional users for free. Those 0.6 users generate another 0.36 users. Those generate 0.22 more. The chain continues until it converges. The total multiplier from one paid user: 1 / (1 - 0.6) = 2.5 total users per dollar spent.
The viral coefficient is borrowed from epidemiology, where it is known as R0 (R-naught) — the basic reproduction number. R0 measures how many people one infected person infects in a fully susceptible population. When R0 is above 1, the disease spreads exponentially. When it is below 1, it dies out.
The analogy is direct. Your product is the pathogen. Your users are the carriers. The viral coefficient measures how effectively each carrier spreads the product to new hosts. The difference: in epidemiology, R0 above 1 is a crisis. In SaaS, it is a dream.
No. Viral coefficient and k-factor refer to the same metric. Some teams use "k-factor" in a more technical context (borrowed from amplifier gain in electronics), while "viral coefficient" is the more accessible term. In practice, they are interchangeable. This guide uses both.
You will also see "viral multiplier" and "amplification factor" used loosely. These usually refer to the total growth multiplier (1 / (1 - k) for k < 1), which accounts for all generations of viral spread — not just the direct first-generation effect that the viral coefficient captures.
k = i × c
k = viral coefficient (the number of new users each existing user generates)
i = invitations per user (average number of people each user exposes to the product)
c = conversion rate per invitation (percentage of exposed people who become users)
That is it. Two variables multiplied together. The formula is simple. Getting accurate numbers for each variable is where most teams struggle.
This is the average number of non-users each user exposes to your product. "Expose" means different things for different loop types:
Collaboration tools (Figma, Notion): how many non-users each user shares files with or invites to workspaces.
Powered-by tools (Typeform, Calendly): how many unique non-users see the product badge or link per user.
Referral programs (Dropbox): how many invites each user sends through the referral flow.
Content tools (Canva, Strava): how many unique non-users see the branded content each user creates.
The key word is unique non-users. If a user invites the same person three times, that counts as one exposure. If a user invites someone who is already a user, that counts as zero.
This is the percentage of exposed non-users who actually become users. "Become a user" means completing signup and reaching your activation milestone — not just clicking a link.
Warm invites (direct, personal): 10-25% conversion. The sender has a relationship with the recipient. Trust is high.
Cold shares (social posts, forums): 2-8% conversion. No personal relationship. The recipient sees a shared link. Lower trust, lower intent.
Passive exposure (powered-by badge): 0.5-3% conversion. The viewer sees a brand, not a recommendation. Volume compensates for the low rate.
This is the variable most teams have the hardest time measuring accurately, because attribution between viral exposure and signup is often fuzzy. You need proper tracking — UTM parameters, unique referral links, or referral codes — to get real numbers here.
Your collaboration tool has 1,000 active users. On average, each user invites 3 non-users to a workspace per month. Of those invited people, 20% sign up and become active users.
k = 3 × 0.20 = 0.6
Each user generates 0.6 new users. Your 1,000 users produce 600 additional users in the first generation. Those 600 produce 360 more. Those 360 produce 216 more. Total from 1,000 seed users: approximately 2,500 users. You paid for 1,000 and got 1,500 for free.
Calculating k is not a one-time exercise. It is an ongoing measurement that should be tracked weekly by cohort. Here is the method.
Pull your event data for a specific cohort (e.g., all users who signed up last month). Count every instance where a user exposed a non-user to your product:
Direct invites: workspace invitations, email invites, share-with-specific-person actions.
Link shares: public links created, social media shares, embed codes generated.
Passive exposures: powered-by badge views, email signatures, branded content views.
Deduplicate. If User A invited the same email address three times, that is one invitation, not three. If User A invited someone who is already a user, that is zero invitations. You want unique non-user exposures only.
Divide total unique exposures by total users in the cohort. That is your i.
Example: 500 users in the March cohort generated 2,100 unique non-user exposures. i = 2,100 / 500 = 4.2 invitations per user.
Of those 2,100 exposed non-users, how many became active users? Not how many clicked the link. Not how many visited the signup page. How many completed signup and reached your activation milestone (first value moment, first use of core feature, whatever your product defines as "activated").
This requires attribution. You need to connect the non-user exposure event to the eventual signup. Methods:
Unique referral links: each user gets a unique share URL. When someone signs up through that URL, you know the source. Most accurate method.
Invite tokens: for direct invites, attach a token to the invitation. When the recipient signs up, match the token to the inviter.
UTM tracking: tag viral channels with utm_source=viral and utm_medium=invite (or share, or powered-by). Less precise than unique links, but works at scale with minimal engineering.
Divide attributed signups by total unique exposures. That is your c.
Example: of 2,100 exposed non-users, 315 signed up and activated. c = 315 / 2,100 = 0.15 (15%).
From our example: k = i × c = 4.2 × 0.15 = 0.63.
Every user in this cohort generated 0.63 new users on average. Those 500 seed users produced 315 first-generation viral users. Those 315 will produce another ~198. And so on.
Total users from this cohort over time: 500 / (1 - 0.63) = approximately 1,351 users. You paid for 500 and got 851 for free — a 2.7x amplification factor.
Important: calculate k per cohort, not in aggregate. Your March cohort and your June cohort may have very different k values. Early adopters share more aggressively. Users from paid channels behave differently from organic users. A single aggregate k-factor masks these differences.
The viral coefficient alone does not tell you when the growth happens. You need the second variable: viral cycle time — the average time from when a user joins to when their viral activity produces a new user.
Measure cycle time by tracking timestamps at each stage: user signup, viral action (share/invite), non-user exposure, non-user conversion. The median time between the original user signup and the new user signup is your cycle time.
The growth formula that accounts for time:
users(t) = users(0) × k^(t / cycle_time)
Where t is the elapsed time and cycle_time is the average loop duration. This formula shows why cycle time matters enormously — it determines how many compounding cycles happen in a given period.
Example: k = 0.63 with a 3-day cycle time. After 30 days, you have completed 10 cycles. After 90 days, 30 cycles. The compounding is dramatic.
Not all viral coefficients are equal. Here is what each range actually means for your growth economics and what to expect at each level.
The non-linearity of k near 1.0
The amplification formula (1 / (1 - k)) means the relationship between k and total growth is not linear. Going from k = 0.1 to k = 0.2 adds an amplification factor increase of 0.12 (from 1.11 to 1.25). Going from k = 0.8 to k = 0.9 adds an increase of 5.0 (from 5.0 to 10.0). The closer you get to 1.0, the more each incremental improvement matters. This is why products in the 0.7-1.0 range should pour resources into viral optimization — the ROI is enormous.
These are estimated viral coefficient ranges based on public data, case studies, and growth teardowns. Exact numbers vary by segment, geography, and time period. Treat them as calibration points, not gospel.
Do not compare your k-factor to Hotmail. Compare it to products with similar loop mechanics and user behavior. If you run an incentivized referral program, Dropbox is your benchmark. If you have a native collaboration loop, Figma is your calibration point. If you have a powered-by badge, Calendly is your target.
Also note that these are peak k-factor ranges. Most companies see k decay over time as early adopters are replaced by mainstream users who share less aggressively. Plan for k to drop 20-40% from its peak as you scale.
The viral coefficient tells you how much your product spreads. Viral cycle time tells you how fast. Both matter. But if you had to optimize only one, optimize cycle time.
Cutting cycle time in half is often more impactful than doubling k
Viral cycle time is the average duration from when a user signs up to when their activity results in a new user joining. For Calendly, this can happen within hours — someone signs up, sends a scheduling link, the recipient books and signs up. For an enterprise tool with monthly billing cycles, it might take 30 days or more.
Consider two products, both starting with 1,000 users:
Product A: k = 0.6, cycle time = 2 days. After 30 days (15 cycles), users = 1,000 × sum of geometric series = approximately 2,499 users.
Product B: k = 0.9, cycle time = 30 days. After 30 days (1 cycle), users = 1,000 + 900 = 1,900 users.
Product A has a weaker viral coefficient but grows faster because compounding happens 15 times instead of once. After 90 days the gap becomes a chasm — Product A reaches over 2,500 users (converging on ~2,500 total since k < 1), while Product B is still only on its third cycle reaching ~2,439 users. The fast loop converges to its maximum almost immediately.
Under 1 day: Messaging apps, real-time collaboration tools, scheduling tools. The viral trigger happens during the first session.
1-3 days: Workspace tools, file sharing, design collaboration. Users invite others within the first few work sessions.
3-7 days: Most product-led SaaS. Users need to experience value before sharing. The trigger happens after onboarding.
Move the trigger earlier. If users share on day 7, find a way to make that happen on day 1. Calendly achieves near-instant cycle time because scheduling a meeting is the first action.
Reduce friction between trigger and conversion. Preload value for the recipient. Let them see content, interact with the product, or complete the task before asking for signup.
Add real-time triggers. Push notifications, in-app prompts at the moment of value, or automatic exposure through product usage (like a powered-by badge).
Since k = i × c, there are exactly two levers. Increase the number of invitations per user, or increase the conversion rate of each invitation. Here is how to work on each.
Use our K-Factor Calculator to plug in your numbers, calculate your viral coefficient, and see your growth projection. Takes 60 seconds.
Open K-Factor Calculator →