How subscription revenue is measured
Subscription revenue is recurring income from users who pay for continued access. It is measured both as cash received in a period and as run-rate.
MRR = sum of active subscriptions, each converted to a monthly value
A worked example: an app has 4,000 monthly subscribers at $9.99 and 2,000 yearly subscribers at $59.99. Monthly plans contribute $39,960 of MRR; yearly plans contribute 2,000 x 59.99 / 12, about $9,998. Total MRR is about $49,958.
Store fees reduce what you keep. Apple and Google typically take 15% to 30% depending on the program and how long the subscriber has stayed, so net revenue is the better input for ROAS and payback.
The subscription event chain
A subscriber's revenue is a sequence of events, and each one changes what a campaign is worth:
- Trial started: no revenue yet, but a strong intent signal.
- Trial converted or initial purchase: the first payment.
- Renewal: each successful billing cycle.
- Cancellation: auto-renew turned off; revenue stops at the period end.
- Refund: revenue reversed.
- Billing issue: a failed charge that may recover in a grace period.
Tracking only the first purchase undercounts the value of good campaigns, because their users renew more.
Subscription revenue and acquisition
Take a campaign that spends $20,000 and produces 500 paid subscribers at $9.99 a month. Month one revenue is $4,995, a 0.25x ROAS. If 70% renew in month two and 85% of those renew each month after, cumulative revenue passes $20,000 around month eight. Judge the campaign at D7 alone and you would cut it.
That is why subscription apps watch trial-to-paid conversion and early renewal rates per campaign as leading signals, then confirm with longer-horizon ROAS.
Attributing subscriptions in Linkrunner
Linkrunner's RevenueCat integration brings in trials, renewals, refunds and billing issues and attributes them to the campaign, ad set and creative that drove each install. Teams that run billing themselves can send purchase and renewal events with currency through the SDK or server API. Revenue then appears at D0, D3, D7 and D30 next to synced spend in ROAS measurement.