Not all users pay, but those who do — determine the revenue of the app. ARPPU (Average Revenue Per Paying User) shows the average amount a paying user brings in over a period. According to RevenueCat (2025), in the top 100 apps ARPPU is 6–8 times higher than ARPU — the gap demonstrates how small the share of paying audience is. This metric is critical for evaluating monetization efficiency and working with premium users.
Key Takeaways
ARPPU (Average Revenue Per Paying User) is a monetization metric that only counts paying users. The indicator answers the question: how much does a user who decided to make a purchase spend on average. ARPPU excludes everyone who doesn’t pay from the calculation — and that’s 90–97% of the audience in most mobile apps.
The metric is indispensable for analyzing the premium segment. If ARPU drops, it could be caused either by a decline in revenue from paying users or by an influx of a large number of free users. ARPPU isolates the effect: if ARPPU is stable, the premium audience is paying as usual, and the problem lies in the quantity or quality of traffic.
According to Sensor Tower (2025), the average ARPPU in mobile games is $12.50 over 90 days. In the Strategy category, the value reaches $28, in Hypercasual — $1.50. The more complex the game, the higher the engagement and average spend of paying users. In utilities, ARPPU is lower due to one-time purchases without subscriptions.
The ARPPU formula differs from ARPU only in the denominator. Instead of all users, only paying users are taken — those who made at least one transaction during the period. A paying user is identified at the identifier level (User ID, Advertising ID) tied to the platform (iOS / Android).
data class PayingUserMetrics(
val totalRevenue: Double,
val payingUsersCount: Int
) {
val arppu: Double
get() = roundToTwoDecimals(
totalRevenue / payingUsersCount
)
}
data class PurchaseEvent(
val userId: String,
val productId: String,
val priceUSD: Double
)
The PayingUserMetrics class encapsulates the ARPPU logic. The arppu property is computed when accessed — this guarantees data freshness. PurchaseEvent records each purchase. For correct calculation, users must be deduplicated: even if a person made 10 purchases, they are counted once in the denominator.
ARPPU can grow both due to an increase in average transaction size and due to an increase in purchase frequency. Determining the driver is a key analyst task. If the average check grew — the reason is a change in prices or the appearance of an expensive product. If frequency grew — the repeat purchase mechanics improved.
The main difference is the denominator. ARPU divides revenue by all users, ARPPU — only by paying users. The gap between the metrics reflects the free-to-paying (F2P) conversion rate. The larger the gap, the fewer paying users, but the higher their value to the business.
Consider a hypothetical app. Revenue is $50,000, users are 500,000, paying users — 10,000. ARPU = $0.10, ARPPU = $5. A 50x gap indicates a 2% conversion rate. If ARPPU starts declining while ARPU is stable — it means paying users are spending less. If ARPU drops faster than ARPPU — the app is attracting many non-paying users.
According to Adjust (2025), a healthy ARPU to ARPPU ratio for mobile games is from 1:5 to 1:15. For subscription apps, the ratio is closer — from 1:3 to 1:6, because the subscription model implies a higher conversion rate from free to paying users.
| Metric | Denominator | Shows |
|---|---|---|
| ARPU | All users | Average revenue per user |
| ARPPU | Paying users only | Average revenue per paying user |
| Difference | — | F2P conversion and value of paying audience |
The choice of metric depends on the task. For assessing overall monetization efficiency, use ARPU. For analyzing premium products and pricing — ARPPU. When A/B testing new purchases, ARPPU will show whether the value of paying users changed, while ARPU will show how it affected total revenue.
ARPPU is sensitive to changes in the product and marketing. Let’s look at the key factors that determine the metric’s value. Understanding these factors helps predict ARPPU’s reaction to changes and avoid interpretation mistakes.
The set of available products and their prices is the primary driver of ARPPU. The presence of expensive packages ($50–100) shifts the average transaction up, even if the majority buys cheap ones. Apple (2025) recommends three tiers: basic ($1–5), mid-range ($10–30), and premium ($50+) — this maximizes coverage of demand across different segments.
In subscription apps, ARPPU is determined by the subscription price. Annual subscriptions with a 30–50% discount increase ARPPU by 6–8 times compared to monthly ones, although conversion to annual subscriptions is lower. RevenueCat (2025) shows: annual subscription users have ARPPU of $60–120 versus $8–15 for monthly users.
ARPPU varies greatly by country and platform. iOS users spend on average 2–3 times more than Android users. The reason is not only income but also purchase psychology: iPhone owners are accustomed to paying for content. Statista (2025) shows: ARPPU on iOS in the US is $18, on Android — $7 over a 90-day period.
Geographic segmentation of ARPPU helps adjust pricing. In Japan, users spend 1.5 times more than in the US, with ARPPU 30% higher in the Games category (Data.ai, 2025). The difference is related to mobile gaming culture and the high prevalence of gacha mechanics.
ARPPU varies depending on what purchases users make. Non-consumable (ad removal, premium access) provide a one-time high ARPPU. Consumable (coins, lives, boosters) — regular small spends. Subscription — stable ARPPU with gradual growth as subscription prices increase.
Automatic ARPPU calculation is integrated into the app’s analytics system. Let’s look at a Kotlin implementation with daily grouping. The server side collects purchase events from the In-App Purchase SDK and aggregates them into reports. Local calculation helps validate analytics platform data.
class ARPPURepository(
private val purchaseDao: PurchaseDao
) {
fun getMonthlyARPPU(
year: Int,
month: Int
): Double {
val purchases = purchaseDao
.getPurchasesInPeriod(year, month)
val payingUsers = purchases
.map { it.userId }
.distinct()
.count()
val totalRevenue = purchases
.sumOf { it.priceUSD }
return roundToTwoDecimals(
totalRevenue / payingUsers
)
}
}
The distinct method guarantees that a user is counted once in the denominator, even if they made 50 purchases. sumOf sums up all revenue. The function returns Monthly ARPPU. Weekly and Daily ARPPU are calculated similarly — just change the filtering period.
To speed up calculation on large data, use aggregate database queries. An SQL query with GROUP BY userId and SUM(revenue) works faster than loading all records into memory. Firebase BigQuery allows running such queries on multi-million datasets in seconds.
Growing ARPPU is a task for product managers and marketers. The metric is increased in three main ways: increasing prices, increasing purchase frequency, and creating more expensive products. Each method has limitations and requires testing.
The first method is dynamic pricing. Different segments are willing to pay differently. Personalized offers based on behavior: a user who bought an expensive boost 3+ times is more likely to buy a cheap one. A/B testing prices is the only reliable way to determine the optimum: a 10% price increase with less than 10% conversion drop increases ARPPU.
The second method is subscription in non-subscription apps. Adding a weekly subscription for premium content increases ARPPU by 20–40% without changing one-time purchase prices. Auto-renewable subscriptions on iOS generate stable revenue and predictable ARPPU for planning.
The third method is creating rarity mechanics. Limited items, seasonal sets, and battle passes increase the average check. According to GameAnalytics (2025), apps with a battle pass have ARPPU 45% higher than those without. The mechanic works due to the commitment effect: a user bought the battle pass and is forced to play more actively, making additional purchases.
ARPPU can be misleading when interpreted incorrectly. Let’s examine common pitfalls. The main pitfall is ARPPU growth due to declining conversion. If several large payers left while the rest pay the same — ARPPU will drop. But if conversion dropped while remaining paying users started paying more — ARPPU will grow, even though total revenue decreased.
The second pitfall is comparing ARPPU of different products without considering their maturity. A new app with 10 paying users has a high ARPPU due to randomness. After a year with a thousand paying users, ARPPU will decrease — this is normal. Only compare ARPPU of products at the same lifecycle stage.
The third pitfall is seasonality. ARPPU grows by 30–50% in December due to holiday discounts and gifts. Comparing November with December is uninformative. Use year-over-year (YoY) comparison for a correct assessment. Seasonality anomalies mask product degradation if the period is not taken into account.
The fourth pitfall is confusing ARPPU with average transaction size. ARPPU accounts for all purchases by one user over a period, while average transaction size accounts for only one transaction. If a user made 5 purchases of $1 each, ARPPU = $5, average transaction = $1. These are different metrics for different analytical tasks.
Frequently Asked Questions
ARPPU is the revenue from a paying user over a period (may include many purchases). Average transaction size is the cost of one transaction. ARPPU is always greater than or equal to the average transaction size if a user makes more than one purchase during the period.
Check whether large payers have left, prices have dropped, or the composition of premium products has changed. Analyze the cohort of new paying users: perhaps users with lower ability to pay have arrived.
Depends on the category. For casual games, Monthly ARPPU of $5–10 is normal. For strategy — $20–40. For subscription apps — $8–15 per month. Compare with the category median on Data.ai or Sensor Tower platforms.
iOS users spend 2–3 times more than Android users. When analyzing ARPPU, always segment by platform — the average across both platforms does not reflect the reality of either.
Price increases can reduce conversion to paying users. If the revenue gain from those who continue buying is less than the loss from those who left — ARPPU doesn’t grow, it drops. A/B testing helps find the optimal price point.
Summary
We will develop a mobile application turnkey
IT Sectr creates iOS and Android applications for startups and businesses since 2017. We will advise you and propose the best solution.
Read also