Native Viral Loop
The 7 Numbers That Tell You If Your Loop Is Working
Your dashboard says users are growing. Your investors are happy. But you have no idea whether your viral loop is actually driving that growth — or whether you are just burning more ad budget.
Most founders track vanity metrics: total signups, monthly active users, "shares." None of these tell you whether your loop is working. They tell you something is happening. They do not tell you what is happening or why.
The difference between "we are growing" and "our loop is working" comes down to seven specific numbers. Track them, and you will know exactly which lever to pull. Ignore them, and you are flying blind — optimizing features that do not matter while the real bottleneck goes unnoticed.
This guide covers all seven metrics: what they measure, how to calculate them, what benchmarks to aim for, and how to build a dashboard that turns data into action. No fluff. Just the math and the frameworks you need to measure your viral loop properly.
These are the fundamental numbers every product with a viral loop must track. Get these right and you have a clear picture of loop health. Miss any one of them and you are guessing.
k = invites_per_user × conversion_rate
K-factor is the most cited viral metric, and for good reason. It answers one question: for every user you acquire, how many additional users does your loop generate?
The formula has two components. Invites per user is the average number of people each user exposes to your product. For a collaboration tool like Figma, this means how many non-users each user shares files with. For a powered-by tool like Typeform, it is how many unique visitors see the badge. Conversion rate is the percentage of those exposed people who become users themselves.
Example: your average user invites 4 people. Of those 4, 15% sign up. Your k-factor is 4 × 0.15 = 0.6. Every 100 users from paid channels generate 60 additional users through your loop — for free.
| K-Factor Range | Rating | What It Means |
|---|---|---|
| < 0.5 | Weak | Loop exists but is not meaningful. Every 100 paid users generate fewer than 50 organic users. The loop is a supplement, not a growth engine. |
| 0.5 – 0.8 | Good supplement | Your loop is pulling real weight. 100 paid users generate 100-400 total users. Worth investing in optimization. |
| 0.8 – 1.0 | Strong | You are approaching self-sustaining growth. Even small improvements here have outsized impact due to compounding. |
| > 1.0 | Self-sustaining | Exponential growth. Each user brings more than one new user. Your product grows without paid acquisition. Rare in SaaS — Hotmail, early Dropbox, and Figma in certain segments achieved this. |
Mistake: measuring k-factor across all users instead of by cohort. Your first 500 users were early adopters who shared aggressively. Users 5,000-10,000 behave differently. If you measure k in aggregate, you are averaging early enthusiasm with mainstream indifference. Always measure k-factor per weekly or monthly cohort.
Mistake: counting self-invites and duplicate exposures. If a user shares a link with 3 people but 2 of them are already users, your actual exposure is 1 non-user, not 3. Clean your data. Only count unique non-user exposures.
Segment your k-factor. Break it down by acquisition channel (organic vs. paid vs. referral), by user type (free vs. paid), and by loop type (product-led vs. referral vs. powered-by). A single k-factor number hides more than it reveals. Your paid users from Google Ads may have k = 0.2 while your organic users from Twitter have k = 0.9. Those are two entirely different businesses.
Definition: the average time from when a user joins to when their activity triggers a new user to join. It is the clock speed of your viral loop.
Most founders obsess over k-factor and completely ignore cycle time. This is a critical error. Viral cycle time is often more important than k-factor because it determines how fast compounding happens.
The Math: Same K, Different Cycle Times
Consider two products, both with k = 0.7 and 1,000 starting users:
Product A (2-day cycle): After 20 days = 10 cycles. Users after 10 cycles with k=0.7: 1,000 × (1 + 0.7 + 0.49 + 0.34 + ...) = approximately 3,333 users.
Product B (20-day cycle): After 20 days = 1 cycle. Users: 1,000 + 700 = 1,700 users.
Same k-factor. Same time period. Nearly 2x the difference — and the gap widens exponentially over time. After 60 days, Product A would have over 15,000 users while Product B sits at around 5,000.
How to measure it: Track timestamps at four stages of your loop. (1) User signs up — record the join timestamp. (2) User triggers the viral action — record the trigger timestamp (shares a file, sends an invite, creates a public link). (3) Non-user is exposed — record the exposure timestamp. (4) Non-user converts — record the conversion timestamp. Your viral cycle time is the median of (conversion timestamp minus original user join timestamp). Use the median, not the mean — outliers will skew the average badly.
Benchmarks: Under 2 days is exceptional (messaging apps, real-time collaboration). 2-7 days is strong (most product-led tools). 7-14 days is average. Over 14 days is slow, and over 30 days means your loop compounds too slowly to matter at scale.
The fastest way to improve cycle time: move the trigger earlier in the user journey. If users share on day 7, find a way to make that happen on day 1. Calendly achieves near-instant cycle time because the very first action — scheduling a meeting — is the viral trigger.
Definition: the percentage of users who trigger the viral action — the share, the invite, the collaboration link, the public post. This is the numerator of your loop.
Formula: Share Rate = (users who triggered viral action / total active users) × 100
Share rate tells you something specific: is the trigger working? If most users never reach the sharing moment, your problem is not conversion on the other end. Your problem is that the loop is not starting.
Share Rate Benchmarks by Loop Type
Product-led (Figma, Calendly, Miro): 30-60%. Sharing is built into core usage. If your product-led loop has a share rate under 30%, your trigger is broken — users are accomplishing their goals without exposing the product to others.
Incentivized referral (Dropbox, Revolut): 5-15%. Users must actively choose to refer. This is expected — referral is not a natural action. Above 15% is exceptional.
Powered-by (Typeform, Intercom): 80-100%. The badge appears automatically. The share rate should be near-total because the user does not have to do anything extra. If it is under 80%, users are removing or hiding your branding.
What a low share rate tells you: you have a trigger problem, not a conversion problem. Do not waste time optimizing the landing page that referred users see. Instead, fix the reason users are not sharing in the first place. Common causes: the viral action is buried too deep in the UX, the product delivers value before the sharing moment, or the sharing moment feels forced rather than native.
Measure share rate by feature, not just in aggregate. Your workspace invite feature might have a 45% share rate while your "share on Twitter" button sits at 2%. Those are different loops with different economics, and combining them into a single number is misleading.
Definition: the percentage of exposed non-users who become users. This is the denominator of your loop — the other half of the k-factor equation.
Formula: Conversion Rate = (new users from viral channel / total non-users exposed) × 100
| Channel Type | Conversion Rate | Why |
|---|---|---|
| Warm referral (direct invite) | 10-25% | Personal trust. The sender has a relationship with the recipient. |
| Cold link (social share) | 2-8% | No personal relationship. The recipient sees a shared link on Twitter or LinkedIn. Lower trust, lower intent. |
| Powered-by badge | 0.5-3% | Passive exposure. The viewer sees a brand, not a recommendation. Volume compensates for low rate. |
UTM parameters: tag every viral link with source, medium, and campaign. Use utm_source=viral, utm_medium=referral (or invite, or powered-by), and utm_campaign=feature_name. This feeds directly into GA4.
Referral codes: assign unique referral codes to each user. When a new user signs up, attribute them to the referrer. This gives you per-user k-factor data.
Unique links: generate unique shareable URLs per user. Track clicks and conversions on each link independently. This is the most accurate method but requires backend work.
The critical distinction: value-before-signup vs. signup-before-value. Products that show value to the referred user before requiring signup (Figma — you can view and comment without an account. Calendly — you can book without signing up.) have 2-5x higher conversion rates than products that gate everything behind a registration wall. If your referred user conversion rate is below the benchmarks above, check whether you are asking for signup too early.
Once you have the four core metrics dialed in, these three advanced metrics give you the full economic picture of your viral loop. They connect loop performance to business outcomes — CAC, revenue, and sustainability.
K-factor tells you how many direct users each user brings. Amplification factor tells you the total users generated per original user — including second-generation, third-generation, and beyond.
Amplification Factor = 1 / (1 - k) (for k < 1)
This formula comes from the geometric series. When k = 0.6, the amplification factor is 1 / (1 - 0.6) = 2.5. That means every user you acquire through paid channels ultimately generates 2.5 total users (including themselves). Or put differently: every paid user brings 1.5 additional users for free.
Example: Why This Matters for CAC
You spend $50 to acquire one user through Google Ads. Without a viral loop, your CAC is $50. With k = 0.6 (amplification factor 2.5), that one paid user becomes 2.5 users. Your effective CAC drops to $50 / 2.5 = $20 per user. You did not lower your ad spend. You did not negotiate better CPC. You made every dollar work 2.5x harder.
| K-Factor | Amplification | Meaning |
|---|---|---|
| 0.2 | 1.25x | Every paid user generates 0.25 free users. Modest but measurable. |
| 0.4 | 1.67x | Meaningful cost reduction. Worth dedicating resources to loop optimization. |
| 0.6 | 2.5x | Strong loop. Your paid acquisition is 2.5x more efficient than competitors without a loop. |
| 0.8 | 5x | Exceptional. Every paid user generates 4 additional free users. Near self-sustaining. |
| 0.9 | 10x | Outstanding. Your effective CAC is 10% of face value. Growth is almost entirely organic. |
The amplification factor measures users. The viral revenue multiplier translates that into economics that investors and CFOs care about.
Effective CAC = Paid CAC / Amplification Factor
Full example with real numbers:
Your SaaS product charges $29/month. You spend $10,000/month on ads and acquire 200 users. Paid CAC = $50. Your k-factor is 0.6, so amplification = 2.5x. Those 200 paid users generate 300 additional viral users = 500 total users.
Effective CAC = $10,000 / 500 = $20.
Your LTV/CAC ratio just jumped from $29 × 12 / $50 = 6.96 to $29 × 12 / $20 = 17.4. That is the difference between a healthy business and a business investors fight to fund.
Why investors care about this metric: Most investors evaluate unit economics through LTV/CAC. A viral loop does not change your LTV (unless referred users retain better, which they often do). But it dramatically lowers effective CAC, which improves LTV/CAC without changing pricing or retention. It is a structural advantage that compounds over time and becomes harder for competitors to replicate.
Track your viral revenue multiplier monthly. If it is increasing, your loop is improving. If it is flat, you have hit a local maximum — time to redesign the trigger or conversion flow. If it is declining, your loop is decaying (see metric 7).
Definition: how your k-factor changes over time within a cohort and across cohorts. Most loops decay — early users share more aggressively than later users, and each cohort tends to be less viral than the previous one.
Within-cohort decay: The first 20% of users in a cohort typically generate 50-70% of all viral activity. They are enthusiastic, they are early, they have the largest untapped networks. The last 20% of users in the same cohort barely share at all. This is normal, but you must account for it. If you measure k-factor after just 30% of a cohort has completed the cycle, you will overestimate your true k-factor.
Cross-cohort decay: Your January cohort had k = 0.8. Your March cohort has k = 0.5. Your May cohort has k = 0.3. This is the most dangerous trend in viral growth. It means your early adopters were more viral than your mainstream users — their networks were more receptive, their use cases more shareable, their enthusiasm higher. As you move into mainstream adoption, the loop weakens.
Knowing what to measure is half the battle. Knowing when to measure it — and at what frequency — determines whether you can act on the data. Here is the cadence that works.
Track Daily
New referred users — both the absolute count and the percentage of total new users that came through the loop. If this percentage is dropping, your loop is losing ground to paid channels.
Share rate (rolling 7-day) — smoothed to avoid daily noise. A sudden drop signals a UX change, a bug, or a trigger that stopped working.
Conversion rate of shared links — are the people seeing your product actually signing up? Track click-to-signup ratio daily.
Track Weekly
K-factor by cohort — compare this week's cohort to last week's. Is k-factor stable, improving, or decaying?
Viral cycle time (median) — track whether the loop is getting faster or slower. If cycle time increases, investigate what changed.
Loop decay rate — compare k-factor across the last 4 weekly cohorts. Plot the trend.
Track Monthly
Amplification factor trend — is your loop getting stronger or weaker over time? This is the single most important monthly number.
Effective CAC with viral credit — total acquisition spend divided by total new users (paid + viral). Report this alongside raw CAC to show the loop's economic impact.
K-factor by acquisition source — which channels produce the most viral users? Double down on them.
Event tracking for share actions. Set up custom events for every viral trigger. Track referral source attribution through UTM parameters.
Funnel analysis for the loop. Build a funnel from trigger to share to exposure to conversion. Segment by cohort and channel. This is where you measure cycle time.
Pull data from GA4 and your product database into a single view. Most viral metrics require combining product analytics (who shared) with marketing analytics (who converted). No single tool does this well out of the box — you need a custom layer. Our Audit Kit includes a ready-made tracking template.
Numbers are useless without a decision framework. Here is how to read your metrics and know exactly what to fix.
The problem: lots of people are sharing, but the referred users are not converting.
The fix: improve the landing experience. Show value before requiring signup. Redesign the first thing a referred user sees. Test your link preview (Open Graph tags, meta descriptions, thumbnails).
The problem: the loop is not starting. Users are not reaching the viral trigger.
The fix: redesign the trigger. Move it earlier in the user journey. Make sharing inseparable from the core use case. If users can accomplish their goal without sharing, the trigger is not native enough.
The problem: the loop works, but it is too slow. Compounding takes months instead of weeks.
The fix: move the trigger earlier in the onboarding flow. Reduce friction between signup and first share. Consider onboarding changes that make the viral action part of the setup process.
The problem: your early adopters were inherently more viral than mainstream users. As you scale, the loop weakens.
The fix: build multiple loop types (not just one). Add a powered-by loop alongside your collaboration loop. Create shareable content features. Diversify your viral surface area so growth does not depend on one mechanism.
You now know the 7 metrics that matter. Use our K-Factor Calculator to get your baseline score, then build your dashboard from there.
Open K-Factor Calculator →