ARPU Calculator
Calculate Average Revenue Per User (ARPU) from total revenue and active users, normalized to a monthly and an annualized figure — with an optional prior-period comparison to track ARPU growth over time.
Input
Total revenue collected over the period.
Number of active, paying users/accounts over the period.
How many months the revenue and user figures above cover. Defaults to 1 (a single month).
Optional. Last period's monthly ARPU — adds a growth rate and verdict comparing the two periods.
Output
| Metric | Value |
|---|---|
| No data yet | |
Guides
Average Revenue Per User (ARPU) is the single most-watched health metric in subscription and SaaS businesses — it tells you how much revenue each active user generates, on average, over a given period. This calculator works out ARPU from total revenue and active users, normalizes it to a monthly and an annualized figure, and — if you add last period's number — shows you whether ARPU is growing or shrinking.
How to use it
- Enter your total revenue and active users for the period you're measuring.
- Enter the period length in months the two figures above cover (defaults to 1, i.e. a single month). Use this if you're working from a quarterly or annual revenue figure instead of a monthly one.
- Optionally enter your previous period's monthly ARPU to get a growth rate and a plain-English verdict comparing the two periods.
The results table updates as you type. Use the copy or download button to export it as CSV.
The formula
ARPU (period) = Total Revenue ÷ Active Users.
Monthly ARPU = ARPU (period) ÷ Period Length in Months — this normalizes any reporting period back to a single month, so a quarterly revenue figure and a monthly one land on the same comparable number.
Annualized ARPU = Monthly ARPU × 12 — a forward-looking estimate of what one user is worth over a full year at the current rate.
ARPU Growth = (Current Monthly ARPU − Previous Monthly ARPU) ÷ Previous Monthly ARPU × 100.
Why normalize to monthly ARPU?
Revenue and user counts are often reported over different windows — a monthly SaaS dashboard, a quarterly earnings report, an annual cohort review. Normalizing every figure to "per month" is what makes ARPU comparable across periods and across companies, regardless of how each one reports its raw numbers.
What's a good ARPU?
There's no universal target — ARPU only means something next to your cost structure (CAC, hosting, support) and your pricing tiers. A $5 ARPU is healthy for a low-cost consumer app and alarming for an enterprise SaaS product. Track ARPU's trend over time rather than chasing an absolute number.
ARPU vs ARPPU vs ARPDAU
ARPU averages revenue across all active users, including free-tier or non-paying ones if your product has them. ARPPU (Average Revenue Per Paying User) narrows the denominator to paying users only, which is always a higher number. ARPDAU swaps "user" for "daily active user," common in mobile/gaming metrics. This calculator computes plain ARPU — divide by your paying-user count instead if you want ARPPU.
What should I calculate next?
ARPU is one input into the bigger picture, not the whole of it. Feed your monthly ARPU into the Customer Lifetime Value Calculator to see what a user is worth over their whole relationship with you, use the Churn Rate & Retention Calculator to work out the churn figure that LTV depends on, and compare the result against your Customer Acquisition Cost to check the unit economics actually work.
Privacy
This calculator runs entirely in your browser. Your revenue, user counts, and prior-period figures are never uploaded, logged, or stored — the math happens locally on your device.
Use it from code
From 3 credits per callREST API
curl -X POST https://api.iotools.cloud/v1/tool/arpu-calculator \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"totalRevenue": "25000",
"activeUsers": "5000",
"periodMonths": "1"
}'Swap in your own key from your account. The tool's fields are the body — no wrapper.
Ask an AI agent
Use the IOTools `arpu-calculator` tool (ARPU Calculator) on this input:
YOUR_INPUT_HEREPaste this at any agent connected to the IOTools MCP server, then add your input.