How ARPU is calculated
Average revenue per user is revenue divided by users for the same period:
ARPU = revenue in period / users in period
A worked example: in October an app earns $60,000 from in-app purchases and subscriptions and has 300,000 monthly active users. Monthly ARPU is 60,000 / 300,000 = $0.20.
The denominator matters. Some teams divide by monthly active users, others by all registered users, others by the installs in a cohort. Each gives a different number, so pick one definition and state it in every report.
ARPU by cohort and by source
The most useful ARPU for a growth team is not the app-wide average but ARPU per install cohort and per acquisition source. Take two campaigns that each drove 10,000 installs in the same week. Campaign A's users generated $8,000 by day 30 and campaign B's generated $3,000. D30 ARPU is $0.80 against $0.30. If both had a $0.50 cost per install, campaign A has paid for itself and campaign B has not.
Cohort ARPU at a fixed day is the same idea as cumulative revenue per install, and it is the building block of LTV and ROAS. Multiply ARPU at day N by installs and you get revenue at day N; divide by spend and you get ROAS at day N.
ARPU versus ARPPU and LTV
- ARPU spreads revenue across every user, payers and non-payers.
- ARPPU spreads it across payers only, so it is always higher.
- LTV adds revenue up over a user's life or a long horizon.
ARPU can move because more people pay (conversion) or because payers spend more (ARPPU). The relationship is ARPU = paying user share x ARPPU. If 4% of users pay and ARPPU is $5, ARPU is $0.20. Splitting ARPU this way tells you whether to work on paywalls or on pricing.
Using ARPU in Linkrunner
Linkrunner attributes in-app purchases and subscription revenue (through the SDK, the server API, or RevenueCat) to the campaign that drove each install, and reports revenue at D0, D3, D7 and D30 alongside LTV up to D30. That gives you per-campaign revenue per install without a spreadsheet. See Linkrunner analytics for cohorts, or estimate long-run value with the LTV calculator.