How to calculate Average Revenue per User (ARPU)
ARPU is the average recurring revenue per active customer or user in a period.
Formula
ARPU = MRR ÷ number of active paying customersSQL query
This example assumes: subscriptions(customer_id, started_at, ended_at, mrr). It is written in PostgreSQL syntax; date functions differ slightly in MySQL, BigQuery and SQLite, and your column names will differ from these.
SELECT SUM(mrr) / NULLIF(COUNT(DISTINCT customer_id), 0) AS arpu
FROM subscriptions
WHERE started_at <= CURRENT_DATE
AND (ended_at IS NULL OR ended_at > CURRENT_DATE)
AND mrr > 0;Common mistakes that make Average Revenue per User (ARPU) wrong
- Including free users in the denominator gives a very different ARPU than paying users only; label which.
- Averages hide mix: a few enterprise accounts can lift ARPU while the typical customer pays less.
- Customers with several subscriptions are counted once only if you use DISTINCT.
Ask for Average Revenue per User (ARPU) in plain English
Instead of writing the query yourself, you can type the question. SchemaChat turns it into SQL against your connected database or uploaded file, runs it, and shows the SQL and the figures it used so you can check the answer before you share it. It does not replace your judgement about the definition: check that the query matches the formula your business uses.
- What is ARPU by plan this month?
- How has ARPU changed over the last six months?