MVP Factory
ai startup development

Unit Economics That Actually Matter: Calculating True LTV When Your Mobile App Has Both Subscription and IAP Revenue Streams

KW
Krystian Wiewiór · · 5 min read

TL;DR

Most mobile teams calculate a single blended LTV number, then use it to justify acquisition spend. This is dangerous. Subscription revenue and IAP (in-app purchase) revenue have different retention curves, margin profiles, and refund rates. When you lump them together, you inflate LTV by 20-40%, overspend on user acquisition, and wonder why your payback period keeps stretching. What follows is a cohort-based model that separates these streams, applies proper decay functions, and gives you a number you can actually underwrite against.


The problem: one LTV number hiding two businesses

Paul Graham has written about how investors pattern-match on metrics without understanding the underlying mechanics. The same thing happens inside product teams. You pull an “LTV” from your analytics dashboard, divide by CAC, and declare victory if the ratio exceeds 3:1.

But a subscription user and an IAP-heavy user are not the same customer. They retain differently, monetize on different curves, and refund at different rates.

MetricSubscription revenueConsumable IAP revenue
Revenue patternPredictable, recurringSporadic, power-law distributed
Retention curve shapeLogarithmic decaySteeper early drop, long tail of whales
Typical Month-12 retention15-25%8-12% (active purchasers)
Refund rate5-10% (trial abuse)2-4%
Margin after platform fees~52% (after 15-30% store cut)~52% (same store cut)
PredictabilityHighLow, driven by top 1-2% of spenders

When you blend these into a single LTV, the recurring predictability of subscriptions masks the volatility of IAP. Your high-spending IAP whales pull the average up, making every user look more valuable than they actually are. That’s the real problem.


The model: cohort-based LTV with separated streams

Calculate LTV as the sum of two independent components:

LTV_total = LTV_subscription + LTV_iap

Step 1: subscription LTV

Use a geometric retention model. For a monthly subscription at price P_sub, with month-over-month retention rate r_sub:

LTV_sub = P_sub × (r_sub / (1 - r_sub)) × (1 - refund_rate_sub)

Step 2: IAP LTV

IAP is harder because revenue per user follows a power-law distribution. Use cohort-level ARPU (average revenue per user) decay, not individual retention:

LTV_iap = Σ (ARPU_iap_month_n × survival_rate_month_n) × (1 - refund_rate_iap)

Sum over your observed cohort window (typically 12-18 months), then apply a conservative tail estimate beyond that.

Step 3: blend at the cohort level

LTV_total = LTV_sub + LTV_iap

Never average these across cohorts. Each acquisition channel produces different mixes of subscriber-dominant vs. IAP-dominant users.


Worked example: the 35% inflation trap

Let’s run real numbers. Assume a fitness app with a $9.99/month subscription and consumable workout pack IAPs averaging $4.99.

InputValue
Monthly subscription price$9.99
Subscription MoM retention72%
Subscription refund rate7%
IAP ARPU Month 1$1.20
IAP ARPU decay rate~40% MoM
IAP refund rate3%
Cohort size1,000 users

Subscription LTV:

LTV_sub = $9.99 × (0.72 / 0.28) × 0.93 = $9.99 × 2.571 × 0.93 = $23.90

IAP LTV (12-month sum with decay):

MonthARPU_iapSurvivalContribution
1$1.20100%$1.20
2$0.7268%$0.49
3$0.4350%$0.22
4-12DiminishingDiminishing$0.41 (cumulative)
Total$2.32

After refund adjustment: $2.32 × 0.97 = $2.25

True blended LTV: $23.90 + $2.25 = $26.15

Now, the trap. If you instead calculate a single blended ARPU by dividing total revenue by total users and applying a single retention curve, you’d typically get an LTV around $35-36. The IAP whale spending gets smoothed across the subscriber retention curve, which is longer. That’s a 35% inflation over the real number.

At a $12 CAC, the blended approach tells you the LTV:CAC ratio is 3.0:1. The separated model shows it’s actually 2.2:1. Still viable, but a completely different story for how aggressively you can spend on paid acquisition.


Why this matters for acquisition decisions

The teams that get burned are the ones who use inflated LTV to justify scaling paid channels from $50K/month to $200K/month. The unit economics look fine on the dashboard. Then six months later, the cohort data catches up and the actual payback period is 14 months instead of the projected 8. I’ve watched this happen more than once.

The separation also reveals channel quality. You might find that TikTok campaigns drive IAP-heavy users (short-lived revenue spikes) while organic search drives subscription-dominant users (longer, predictable revenue). Same blended LTV. Wildly different business quality.


What to do with this

Separate your LTV calculation by revenue stream. Subscription and IAP revenue have different retention curves and refund profiles. Calculate each independently, then sum them. Never apply a single retention rate to blended ARPU. This sounds obvious written out, but I still see teams skipping it.

Run this analysis per acquisition channel. The mix of subscriber vs. IAP users varies dramatically by source. A channel that looks profitable on blended metrics may be underwater when you decompose the revenue streams.

Use the conservative number for spend decisions. Blended LTV consistently overstates true value by 20-40%. Set your CAC targets against the separated model, and treat any surplus as margin of safety, not budget to deploy.


Share: Twitter LinkedIn