2026-10-31 · Updated 2026-10-31

Average Revenue Per User (ARPU): Definition, Formula & Examples

Average revenue per user (ARPU) divides revenue in a period by users in that period. Formula, a worked example, and how to compute it from Stripe.

By Data Lighthouse Research · Glossary
glossaryrevenuesaasstripearpusubscriptions

Average revenue per user (ARPU) is revenue in a period divided by the number of users in that same period. The result depends on both choices: collected cash, recognized revenue, or MRR in the numerator, and all accounts, active users, or paying customers in the denominator. Average revenue per account (ARPA) is the same ratio when the buyer is an account rather than a person. ARPU is not revenue per visitor, and it is not a conversion rate.

Formula

ARPU = revenue in the period / users in the period. Publish the period, the revenue definition, and the user definition next to the number. MRR divided by paying customers is a recurring ARPU. Succeeded charges divided by every signed-up account, including free accounts, is a smaller cash ARPU. Both can be valid. They are not interchangeable.

ChoiceWhat changes
Numerator is normalized MRRA monthly run-rate per user, not cash collected
Numerator is succeeded chargesCash collected in the window, including one-time charges if you leave them in
Denominator is paying customersFree accounts do not dilute the average
Denominator is all accountsFree accounts pull the average down

Worked example

Every figure in this example is hypothetical. It is not the public demo and not a customer account. In a 30-day window a company collects $9,000 of succeeded charges. It has 300 paying customers and 1,000 accounts in total, including free accounts.

  • Cash ARPU for paying customers = 9,000 / 300 = $30.
  • Cash ARPU for all accounts = 9,000 / 1,000 = $9.
  • If normalized MRR is $8,400, recurring ARPU for paying customers = 8,400 / 300 = $28.

The $30 and $28 answers use the same customers and different numerators. Labeling either one as ARPU without the label mixes cash and run-rate.

How to compute it from Stripe

  1. Choose the numerator. For cash, sum succeeded charges or paid invoices in the window and follow auto-pagination. Subtract amount_refunded if you want a net figure. For a recurring ARPU, use normalized MRR instead of charges.
  2. Choose the denominator. Distinct subscription customers with a paying status is the usual SaaS denominator. A count of Stripe Customer objects includes people who never paid.
  3. Divide. Keep the currency consistent. Do not divide a cent total by a customer count and call the result dollars.
  4. The subscription item unit_amount is the wrong numerator for a cash ARPU. It is a price, not money collected in the window.

What Data Lighthouse shows

The signed-in overview cards are Revenue (7, 14, or 30 days), Avg daily revenue, Monthly recurring revenue, Annual recurring revenue, Revenue per visitor, Visitor conversion rate, and Visitors online. The overview does not compute ARPU. You can compute it yourself from Stripe by dividing the revenue total, or the normalized MRR, by the paying customers you count in Stripe for that same period. The Revenue card sums charge.amount for every charge with status succeeded in the selected window, following Stripe auto-pagination, then converts minor units for the dashboard currency. The sum is gross cash collected in that window. It does not subtract amount_refunded. Charges in another currency are left out, because the dashboard assumes one currency. Average daily revenue is that total divided by the number of days. The percent change compares the window with the previous window of the same length.

Visitor conversion rate appears after Postgres customer tables are configured. It is the higher of distinct checkout_completed users and distinct customers with status paid, divided by distinct signed_in users in the window. Paid customers are rows in the template customers table, not subscribers in the connected Stripe account. Without those tables the card says Configure Drizzle. The rate is not divided by anonymous visitors. The paid-customer count on that card is the template customers table. Use a Stripe subscriber count when you compute ARPU yourself. The public demo does not call Stripe or Postgres. Revenue, visitors, monthly recurring revenue, and annual recurring revenue are a seeded sample. ARR in the sample is the sample MRR times 12. Each day's visitors are seeded on their own, separate from that day's revenue, and the chart subtitle labels the series as sample data. Checkout for the $59 template license uses Polar after GitHub sign-in. Stripe is the optional revenue source inside the dashboard you host, through STRIPE_SECRET_KEY. If that key is missing, the revenue API returns an error and the overview says it could not load Stripe revenue.

Questions

What is average revenue per user?

Average revenue per user (ARPU) is revenue in a period divided by users in that same period. You have to name the revenue (cash, recognized revenue, or MRR) and the users (all accounts, active users, or paying customers). Average revenue per account is the same ratio when the buyer is an account.

How is ARPU different from revenue per visitor?

ARPU divides revenue by users or customers. Revenue per visitor divides revenue by visitors, sessions, or pageviews. A hypothetical $9,000 divided by 300 paying customers is $30 of ARPU. The same $9,000 divided by 3,000 visitors is $3 of revenue per visitor.

Does the template show an ARPU card?

The overview does not compute ARPU. You can compute it yourself from Stripe by dividing the revenue total, or the normalized MRR, by the paying customers you count in Stripe for that same period.

Related reading

Sources