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

Annual Recurring Revenue (ARR): Definition, Formula & Examples

Annual recurring revenue (ARR) is normalized monthly recurring revenue times 12. Formula, a worked example, and the ARR card on this template.

By Data Lighthouse Research · Glossary
glossaryrevenuesaasstripearrsubscriptions

Annual recurring revenue (ARR) is the yearly run-rate of recurring subscription revenue. Once monthly recurring revenue already counts each contract as one month of value, ARR equals that MRR multiplied by 12. Cash collected over the last year, one-time charges, and a raw sum of yearly price tags are different numbers.

Formula

ARR = MRR × 12, and only after MRR has normalized every interval to one month. A $120 yearly plan is $10 of MRR and $120 of ARR. It is not $120 of MRR and not $1,440 of ARR.

Starting pointARR
Normalized MRRMRR * 12
Yearly price already expressed per yearThe yearly price itself, not that price times 12
Cash collected in the trailing 12 monthsNot ARR

Worked example

Every figure in this example is hypothetical. It is not the public demo and not a customer account. Use the same book as the MRR example: normalized MRR is $1,800.

  • ARR = 1,800 * 12 = $21,600.
  • The 10 yearly plans contribute 10 * $120 = $1,200 of that ARR, which is 10 * $10 * 12.
  • If yearly prices were left in full inside a fake MRR of $2,900 and then multiplied by 12, the result would be $34,800. That overstates ARR by counting each yearly contract twelve times on top of an already-annual price.

How to compute it from Stripe

  1. Build normalized MRR from subscription items, including quantity, currency minor units, interval, and interval_count. Follow Stripe auto-pagination through every active subscription.
  2. Multiply that monthly total by 12.
  3. As a check, a contract billed yearly should contribute its yearly price once. A contract billed monthly should contribute twelve times one month.
  4. Keep trailing twelve-month billings in a separate sum of paid invoices or succeeded charges. Do not label that sum ARR.

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 Annual recurring revenue card is that normalized MRR multiplied by 12. The Monthly recurring revenue card reads GET /api/datalighthouse/revenue for a signed-in Clerk user. The route lists every subscription with status active through Stripe auto-pagination, which leaves trialing subscriptions out. For each subscription item it multiplies price.unit_amount by quantity, converts that minor-unit amount for the price currency, and normalizes the recurring interval to one month. A year is divided by 12, a week is multiplied by 52/12, a day is multiplied by 365/12, and interval_count divides the result. Percent-off and amount-off coupons that still apply (duration forever, or repeating and not yet ended) are included. A coupon with duration once is left out, because it does not recur. Item coupons apply before subscription coupons. A coupon that lives only on the Stripe Customer is not included. Prices with no unit_amount, such as tiered or metered prices, are skipped. The route assumes one currency, the currency of the first priced active item, and leaves items in any other currency out of the sum. Zero-decimal currencies such as JPY are not divided by 100. The three-decimal currencies BHD, JOD, KWD, OMR, and TND are divided by 1000. The card shows that normalized total. A percent change needs a stored starting snapshot, which this route does not keep.

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.

On the overview
Annual recurring revenue is the normalized MRR multiplied by 12. A yearly plan contributes its yearly price once.

Questions

What is annual recurring revenue?

Annual recurring revenue (ARR) is the yearly run-rate of recurring subscription revenue. After monthly recurring revenue already counts each contract as one month of value, ARR equals that MRR multiplied by 12.

Is ARR the same as revenue collected in the last year?

No. ARR is a run-rate. Cash collected over the last twelve months includes one-time charges, annual prepayments, and refunds. Those belong in a cash or billings report, not in ARR.

Does Data Lighthouse show an ARR card?

Yes. The annual recurring revenue card is the normalized MRR multiplied by 12. A $120 yearly plan is $10 of MRR and $120 of ARR.

Related reading

Sources