Chart · Revenue

ARR for subscription apps: how to calculate annual recurring revenue

ARR is annual recurring revenue: your MRR at the end of a period times 12. RevenueDot builds MRR from every paid subscription with access at that moment, normalizes each price to one month, and multiplies by 12. Trials count zero, and one-time purchases and ad revenue are left out.

Formula

ARR = MRR at the end of the period × 12

Shape

A snapshot at the end of each period

API name

arr

Measures

ARR (USD)

Filter and segment by

App, Store, Product, Product duration, Offering, Country, Platform, App version

The ARR chart in the RevenueDot dashboard, with demo data, its chart rail, plot and table
Captured from the RevenueDot dashboard with demo data.

Definition

How RevenueDot calculates ARR

ARR is a straight multiple of MRR. RevenueDot takes every paid subscription that has access at the end of the period, converts its current price to US dollars, and scales it to one month with a factor from the product's duration: 1 day ×30, 3 days ×10, 1 week ×4, 2 weeks ×2, 4 weeks ×1, 1 month ×1, 2 months ×½, 3 months ×⅓, 6 months ×⅙ and 1 year ×1/12. Without a catalog duration, RevenueDot uses the length of the paid period itself. The sum is MRR, and ARR is that sum times 12.

ARR is a snapshot at the end of each period. The current period is measured now and marked incomplete. A cancelled subscription counts until its paid time ends, a subscription in a grace period counts, and a refunded subscription stops at the refund. Free trials count zero. Sandbox purchases, granted access and Family Sharing purchases are excluded.

Each subscription keeps the exchange rate of its purchase date, so ARR does not drift when currencies move. You can filter or segment by app, store, product, product duration, offering, country, platform and app version. The Subscription Status chart can show ARR split by set to renew, set to cancel and billing issue.

Open it in the dashboard under Analytics > Charts, or call GET /v2/projects/{project_id}/charts/arr. The response has the same shape as RevenueCat's Charts API.

Worked example

ARR, step by step

Illustrative numbers for one day. Each plan is scaled to a monthly value, added up, and multiplied by 12.

PlanActive subscriptionsPriceMonthly value eachMRR
Monthly100$10$10$1,000
Annual50$60$5$250
Weekly20$2$8 (×4)$160

MRR = 1,000 + 250 + 160 = $1,410. ARR = 1,410 × 12 = $16,920.

Why it matters

What ARR tells you

ARR is the number investors, acquirers and partners ask for first, because it puts monthly plans, annual plans and weekly plans on one yearly scale. It also helps you set a growth target for the year and see how far the current subscription base already gets you.

ARR is a run rate. It shows what the business earns per year if nothing changes, and for a consumer app with fast churn that can overstate what you will really collect. Read it with churn and retention, and use Revenue for money that has already arrived.

How to read it

  • ARR is exactly 12 times MRR. If ARR looks wrong, check MRR and the product durations first.
  • ARR does not fall when a customer cancels. It falls when the paid time runs out. Use Subscription Status with the ARR measure to see how much is set to cancel.
  • RevenueDot values each subscription at the price of its current paid period. A discounted first period lowers ARR until the next renewal. Paid introductory offers are not told apart from regular paid periods yet.
  • One-time purchases and ad revenue are not recurring, so ARR leaves them out.
  • Segment by product duration to see how much of your ARR rests on annual plans.

API

Get ARR from the Charts API

Same path and response shape as RevenueCat's Charts API, so existing scripts keep working.

Requestshell
curl "https://api.revenuedot.app/v2/projects/$PROJECT_ID/charts/arr?resolution=day" \
  -H "Authorization: Bearer $SECRET_KEY"   # sk_... with charts_metrics:charts:read

Reference: Charts guide · REST API v2

FAQ

ARR: questions people ask

How do you calculate ARR for a subscription app?

Add up the monthly value of every active paid subscription, which is MRR, and multiply by 12. RevenueDot normalizes weekly, monthly and annual prices to one month first, so plans of different lengths add up correctly.

Is ARR the same as annual revenue?

No. ARR is a run rate: MRR times 12 at one moment. Annual revenue is the money received over a year, which the Revenue chart shows. The two differ when subscriptions grow or shrink during the year.

Does ARR include free trials or one-time purchases?

No. Free trials count zero until they convert, and one-time purchases and ad revenue are not recurring, so they are left out.

Does ARR change when exchange rates move?

No. Each purchase is converted to US dollars at the exchange rate of its purchase date, and the subscription keeps that value. A display currency converts the same USD amount at that date's rate.

Can I see ARR by country or product?

Yes. Filter or segment the chart by app, store, product, product duration, offering, country, platform or app version in the dashboard, or with the filters and segment parameters in the API.

Get started

See your ARR in minutes.

Connect your app to RevenueDot Cloud, free up to $10,000 a month in tracked revenue, and all 43 charts fill from your store history after import.

Already have an account? Sign in · Prefer your own servers? Self-host free