ARPU explained simply

Train for your next tech interview
1,500+ real interview questions across engineering, product, design, and data — with worked solutions.
Join the waitlist

Why ARPU matters

ARPU (Average Revenue Per User) is one of the load-bearing metrics of any product with monetization. Multiply it by users and you get total revenue. Combine it with churn and you get LTV. It shows up on every investor deck, every growth review, and roughly 80% of junior-to-mid product analyst interviews at companies like Stripe, Notion, and DoorDash. If you can't define it in one sentence and compute it in five lines of SQL, the screen is over.

The most common trap is the one that makes recruiters cringe: ARPU is computed over all users — including the ones who pay nothing. ARPPU, the close cousin, is computed only over paying users. Mix them up and your number is off by 10-50x. On the job, that mistake leads to a worse decision: a rising ARPU might mean more people are paying (genuinely good) or it might mean the existing payers were nudged into a higher tier (defensible but not the same thing). Conflating the two hides which lever is actually moving.

This post is a complete reference: the formula, a worked example, ARPPU contrast, benchmark ranges by product type, the SQL snippet, and the pitfalls interviewers love to set up. No formulas before the intro is over, no fluff after it.

The formula and a worked example

The definition is simple:

ARPU = Total Revenue / Total Users

"Average revenue per user" — averaged over everyone in the denominator, paying or not. The denominator choice is where most reasoning errors hide, so we'll come back to it twice.

Worked example. You run a freemium app with 100,000 monthly active users, and 5% of them pay $12/month for the Pro plan. The rest pay zero.

  • Revenue: 5,000 paying users × $12 = $60,000/month
  • Total users in the denominator: 100,000
  • ARPU: $0.60 per user per month
  • ARPPU: $12.00 per paying user per month

The gap between $0.60 and $12 is a factor of 20 — exactly the inverse of the 5% paying conversion rate. That is not a coincidence; it is the algebra:

ARPU = ARPPU × (paying users / total users)
ARPU = ARPPU × paying conversion rate

Load-bearing trick: Once you internalize ARPU = ARPPU × conversion, you can decompose any ARPU change into "more people paid" vs "payers paid more." That decomposition is the answer interviewers want when they ask why ARPU moved.

A nuance worth flagging: the denominator should match the question. For growth reports, monthly active users is usually fine. For unit economics versus CAC, the denominator is normally the cohort of acquired users in that period — not the total active base.

ARPU vs ARPPU

The two metrics answer different questions and deserve different reviews.

ARPU answers: how good is our monetization across the entire user base. It moves when conversion to paid moves, when free-tier users churn at different rates, or when pricing changes for new payers. It is the right number to compare to CAC for blended unit economics, and the right number on the investor deck.

ARPPU answers: how much does a payer pay us. It moves when you ship a higher tier, raise prices, push annual plans, or get expansion seats in B2B. It is the right number for pricing experiments and packaging work. If ARPPU rises while ARPU stays flat, you are extracting more from existing payers without growing the paying base — sometimes intentional, sometimes a leak.

Metric Denominator Moves with Right to compare against
ARPU All users in scope Paid conversion + pricing CAC, total revenue
ARPPU Paying users only Pricing, packaging, upsell Plan tier mix
Paying conversion All users Activation, paywall design Funnel benchmarks

Benchmarks by segment

Treat these as order-of-magnitude anchors, not industry truth. Real numbers vary heavily with geography, tier mix, and how aggressively a free plan is gated.

Product type Typical ARPU range Notes
Mobile games (free-to-play) $1-5/month Whales pull the tail; median user pays $0
Ad-supported social $3-15/quarter Reported by Meta-class companies per region
Consumer SaaS (B2C) $5-30/month Freemium with single Pro tier
B2B SaaS (SMB) $50-500/month Seat-based, monthly pricing
B2B SaaS (mid-market / enterprise) $1,000-5,000+/month Annual contracts, custom pricing
Marketplaces Depends on take rate ARPU follows GMV per user × take rate
Subscription consumer (e.g. streaming) $8-15/month Tight band — pricing is anchored

Sanity check: if your B2C SaaS reports an ARPU of $200/month, either the free tier is unusually small or the denominator is wrong. The Pro plan price is rarely the same as ARPU.

ARPU and LTV

For a subscription business with a stable churn rate, the back-of-envelope LTV is:

LTV = ARPU / churn_rate

A worked example. ARPU is $25/month, monthly churn is 5%. Then LTV is $25 / 0.05 = $500 per user. If you can lift ARPU 10% via upsell while holding churn constant, LTV also rises 10% to $550. That is why ARPU is treated as a growth lever, not just a reporting metric — the leverage is linear and compounds with retention.

The formula has two assumptions that bite. First, churn must be stable; cohorts with declining churn over time will have a much higher real LTV than this calculation suggests, and a contractual LTV model (Kaplan-Meier or a geometric series with declining hazard) is needed. Second, ARPU here means ARPU of a paying-equivalent unit — for B2C freemium, you usually want ARPPU × paying probability, not raw ARPU mashed into the denominator.

Train for your next tech interview
1,500+ real interview questions across engineering, product, design, and data — with worked solutions.
Join the waitlist

How to compute ARPU in SQL

The vanilla query is short:

SELECT
  DATE_TRUNC('month', period_start) AS month,
  SUM(revenue) / NULLIF(COUNT(DISTINCT user_id), 0) AS arpu
FROM monthly_user_revenue
GROUP BY 1
ORDER BY 1;

Two details earn the points. NULLIF(..., 0) guards against zero-user months in newly launched products. COUNT(DISTINCT user_id) matters when a user contributes multiple revenue rows in a month — without DISTINCT, ARPU is silently understated because the denominator is inflated.

If you want ARPU by acquisition cohort — the version a growth PM actually cares about — you join in the acquisition month:

WITH user_cohort AS (
  SELECT user_id, DATE_TRUNC('month', signup_at) AS cohort_month
  FROM users
),
cohort_revenue AS (
  SELECT
    uc.cohort_month,
    DATE_TRUNC('month', mur.period_start) AS revenue_month,
    SUM(mur.revenue) AS revenue,
    COUNT(DISTINCT uc.user_id) AS users
  FROM user_cohort uc
  LEFT JOIN monthly_user_revenue mur USING (user_id)
  GROUP BY 1, 2
)
SELECT
  cohort_month,
  revenue_month,
  revenue / NULLIF(users, 0) AS arpu
FROM cohort_revenue
ORDER BY cohort_month, revenue_month;

The LEFT JOIN is the difference between an honest cohort ARPU and an inflated one. If a cohort member earned zero revenue, you still want them in the denominator. An INNER JOIN here silently drops non-paying users and turns ARPU into ARPPU.

How to lift ARPU

There are five clean levers. Each lifts a different sub-component of ARPPU × paying conversion, so naming the lever matters when you propose the work.

Upsell — push existing payers to a higher tier. Lifts ARPPU. Lowest risk, but ceiling is set by your tier ladder. Cross-sell — sell adjacent products to existing customers (e.g. Notion AI on top of Notion). Lifts ARPPU and, if priced well, raises retention. Expansion in B2B — more seats, more usage, larger storage. Lifts ARPPU; in NDR-driven businesses this is usually the biggest contributor. Tightening the free tier — gate features behind paid plans. Lifts paying conversion but risks free-user growth and brand goodwill if done too aggressively. Premium feature shipping — new paid-only capabilities that justify a higher tier. Lifts both ARPPU and conversion if the feature is genuinely differentiated.

If you want to drill metric definitions, formula gotchas, and SQL questions like these every day, NAILDD ships 500+ analytics interview problems built around exactly these patterns.

Common pitfalls

The first pitfall is conflating ARPU and ARPPU. The two metrics differ by a factor of 1 / paying conversion, which for most consumer apps is 10x-50x. Candidates who quote a single number for "ARPU" without clarifying the denominator lose the question. Always state explicitly: "ARPU over all monthly active users" or "ARPPU over paying subscribers."

The second pitfall is reporting ARPU without accounting for gross margin. ARPU is a top-line metric — for unit economics versus CAC, you want contribution-margin ARPU, which subtracts variable costs (hosting, payment processing, content licensing). A streaming service with ARPU of $12 and 30% gross margin produces $3.60 of contribution per user per month, not $12. Skipping this step is how teams end up with LTV/CAC ratios that look healthy and a business that loses money.

The third pitfall is averaging across segments that should be split. Enterprise customers can have ARPU 100x higher than SMB. Mobile-only users behave nothing like desktop. International users in price-discriminated regions can pay 60% less than the home market. Reporting a single blended ARPU hides where the leverage is. Always cut by segment first; report the blended number second with the cuts attached.

The fourth pitfall is using a lifetime ARPU rather than a periodic one. As a company grows, the user base changes, pricing changes, mix changes. An "ARPU since inception" number is dominated by historical artifacts and is useless for forecasting. Use monthly or quarterly ARPU and look at the trend. Plot it with cohort breakdowns and the picture sharpens fast.

The fifth pitfall is picking the wrong denominator — usually monthly active users when the question wanted all registered users, or vice versa. The MAU denominator gives the higher number (smaller denominator), which feels good on a slide but answers a different question. Decide upfront: are you measuring monetization of active users, of the whole base, or of acquired cohorts? Then never mix the three in one chart.

FAQ

Which is asked more often in interviews — ARPU or ARPPU?

ARPU shows up more often because it sits closer to top-line revenue and is the number on the investor deck. But mid-level and senior product analyst interviews almost always test the contrast: they ask for ARPU first, then push on "what if I cared about just the payers?" to force the ARPPU definition. Knowing both, with the algebraic link ARPU = ARPPU × paying conversion, is what separates a confident answer from a memorized one.

Should ARPU be reported in local currency or normalized to USD?

Both, depending on audience. Internally, report ARPU in each market's local currency to avoid noise from FX moves masquerading as monetization changes. For executive and investor reports, normalize to USD using a fixed rate (often the start-of-year rate) so cross-region comparisons stay clean. Mixing the two on one chart causes month-over-month interpretation to break.

ARPU is up but total revenue is down — how can that happen?

The user base shrunk faster than ARPU rose. If you lost 20% of users but ARPU went up 10%, total revenue is 88% of the previous period. This is a common pattern after a pricing increase that pushes price-sensitive users out: average revenue per remaining user looks healthy, but the absolute revenue is shrinking. The fix is to always pair ARPU with the user count and to look at revenue retention by cohort.

Should I compute ARPU monthly or quarterly?

Monthly is the default for SaaS, mobile apps, and most subscription products — the cadence matches billing and shows changes fast. Quarterly is more common for B2B with annual contracts, where monthly numbers are noisy from contract renewal timing. Retail and e-commerce often use monthly with a 13-week trailing variant to smooth seasonality. Match the cadence to the natural cycle of the business, not to whatever Excel defaults to.

How does ARPU change with annual versus monthly billing mix?

A shift toward annual billing usually raises ARPU on a billed-basis (the user pays 12 months upfront) but the ARPU on a normalized monthly basis stays roughly flat or drops slightly, because annual plans are often sold at a 15-20% discount. Always report ARPU normalized to a monthly equivalent — divide annual revenue by 12 and add it to the monthly bucket. Otherwise December looks like a hero month every year purely from annual renewals.

Is ARPU still useful when most users are on a free tier?

Yes, but its sensitivity changes. With a 1% paying conversion, ARPU equals ARPPU divided by 100, so most of the variance comes from conversion, not from price. In that regime, a 10% lift in paying conversion is worth roughly a 10% lift in ARPU — much more than a 10% pricing change applied only to that 1%. Use ARPU as the headline number, but instrument paying conversion and ARPPU separately so you know which lever the team should pull.