EnableYourData.com

KPI · Subscriptions and SaaS

Average revenue per account (ARPA): formula and example.

Average revenue per account (ARPA) is MRR divided by the number of active customer accounts. It shows how much an average customer pays per month. ARPA helps you judge whether you are moving towards larger or smaller customers and whether price changes and upselling are working.

Average revenue per account (ARPA) formula

MRR ÷ number of active customer accounts

Worked example

At the end of September, Acme's subscription service has MRR of €41,800 and 440 active customers. ARPA is €41,800 ÷ 440 = €95 a month.

Fictitious figures for Acme Groothandel, a sample wholesaler.

How to read this KPI

Rising ARPA means customers pay more on average, through higher plans, extra seats or price increases, or because you are losing smaller customers. Compare ARPA for new customers with the whole base to see which way you are heading. Look at the distribution too: an average can hide a few very large accounts alongside many small ones.

Pitfalls with average revenue per account (ARPA)

  • Mixing ARPA (per account) and ARPU (per user) when one account may have many users.
  • Including free or trial accounts in the denominator.
  • Treating a rising ARPA as success when it is mainly rising because small customers are cancelling.

SQL & DAX

Calculating average revenue per account (ARPA) in SQL and DAX

Two examples on a fictitious data warehouse for Acme Groothandel: a PostgreSQL query and a measure for a Power BI model. Adjust table and column names to your own model.

SQL · PostgreSQL
SELECT COUNT(DISTINCT customer_id) AS accounts,
       SUM(mrr) AS mrr,
       ROUND(SUM(mrr) / NULLIF(COUNT(DISTINCT customer_id), 0), 2) AS arpa
FROM subscriptions
WHERE started_at <= current_date
  AND (ended_at IS NULL OR ended_at > current_date);
DAX · Power BI
ARPA =
VAR PeriodEnd = MAX('Date'[Date])
VAR Accounts =
    CALCULATE(
        DISTINCTCOUNT(Subscriptions[customer_id]),
        Subscriptions[started_at] <= PeriodEnd,
        ISBLANK(Subscriptions[ended_at]) || Subscriptions[ended_at] > PeriodEnd,
        REMOVEFILTERS('Date')
    )
RETURN
    DIVIDE([MRR], Accounts)

In ENABLE

Tracking this KPI in ENABLE

Plain-language questions

Ask for average revenue per account (ARPA) per month, customer or product in the SQL Explorer with AI. The AI writes the SQL, you see the query and run it yourself; the AI only receives metadata.

Read more →

In your Power BI dashboard

Define the KPI as a measure in your Power BI model and show it in the portal, with "Last refreshed" next to it. Access profiles and optional row-level security decide who sees which figures.

Read more →

Custom dashboards (pilot)

Add the KPI as a tile to a custom dashboard, compared with last year. The Dashboard Builder is a pilot and can be switched on per client.

Read more →

Monthly targets

With the built-in Targets app you set a target for the KPI per month, so you see actuals and target side by side.

Read more →

FAQ

Frequently asked questions

How do you calculate ARPA?

Divide MRR by the number of active paying customer accounts at the same point in time. With €60,000 MRR and 500 accounts, ARPA is €120 a month. Leave out free and trial accounts.

What is the difference between ARPA and ARPU?

ARPA is calculated per customer account; ARPU per user. For business software with several users per customer, ARPA is usually the more meaningful measure because the organisation pays. For consumer services with one user per account, the two are virtually the same.

How can you increase ARPA?

Common levers are higher plans with extra features, pricing per user or usage, add-ons and focusing sales on larger customers. Track churn alongside ARPA, as a price increase can lead to more cancellations.

Use AI on your own data. Securely, and without the headache.

In an online demo we show how ENABLE makes your data securely available and how you build on it: describing an app in the AI Builder, plain-language questions, dashboards and APIs. And how we set it up and manage it for you.