How to Calculate ARR: Steps, Examples, and Mistakes
Published on March 13, 2026 · Jules, Founder of NoNoiseMetrics · 8min read
Updated on April 15, 2026
How to Calculate ARR: Steps, Examples, and Mistakes
How to calculate ARR correctly: normalize every subscription to its annual value, then sum them. Most founders get ARR wrong because they treat every subscription the same way. Monthly plans, annual plans, and multi-year deals each need different handling. Here is the correct ARR calculation, step by step, with real numbers pulled from a typical Stripe account.
Annual Recurring Revenue (ARR) is the total yearly value of all active recurring subscriptions, normalized to a 12-month period.
ARR = (Monthly subscriptions × 12) + Annual subscriptions + (Multi-year contracts ÷ number of years)
Notice the key part: annual subscriptions are not multiplied by 12. They’re already annual. This is the single most common ARR calculation mistake, and it doubles your number when you make it.
Step 1: Identify All Active Subscriptions
Pull every subscription that is currently active and recurring. Include:
- Monthly plans (billed every month)
- Annual plans (billed once per year)
- Multi-year contracts (billed upfront or annually)
Exclude everything that isn’t recurring: one-time setup fees, implementation charges, usage overages billed after the fact, and refunds. If it won’t repeat on a predictable schedule, it doesn’t belong in ARR.
In Stripe, you find this list under “Subscriptions” with the filter “status = active”. Export the CSV and manually drop rows whose plan contains one-time line items or add-ons. On many accounts you’ll also see “past_due” subscriptions that haven’t formally cancelled yet. Treat them carefully: a customer who hasn’t paid for 14 days should drop out of the number once the card definitively fails. Don’t trust the Stripe status alone, look at behavior.
For the foundational definition, see What Does ARR Mean? Builder-Friendly Definition. For the full definition and context on why this metric matters, read the annual recurring revenue meaning and definition. For a quick MRR-to-ARR conversion with input-cleaning rules, see ARR Formula: Convert MRR to ARR Without Counting Junk.
Step 2: Normalize to Annual Value
This is where the math matters. Each subscription type converts differently:
Monthly plans: Multiply MRR by 12.
20 customers × €49/mo = €980 MRR → €980 × 12 = €11,760 ARR
Annual plans: Use the contract value directly. Do not multiply by 12.
5 customers × €468/year = €2,340 ARR
Multi-year contracts: Divide the total contract value by the number of years.
1 customer × €5,000 over 2 years = €2,500 ARR
A small validation rule that saves time: if your total is significantly larger than twelve times your current MRR, you have double-counted somewhere. On a healthy account without recent price changes, the two numbers should sit very close to each other.
The Annual Plan Edge Case
This is the mistake that inflates ARR the most. If a customer pays €468/year for an annual plan, their ARR contribution is €468, not €468 × 12 (€5,616).
The confusion happens because founders think in MRR terms. They see €468/year, divide by 12 to get €39/mo MRR, then multiply back by 12. The result is correct (€468), but the roundabout calculation introduces errors when annual plan pricing doesn’t divide cleanly by 12.
The rule is simple: if the billing cycle is already annual, the subscription value is already normalized. Don’t touch it.
If you offer a discount for annual billing (say €49/mo normally, €39/mo on annual), the contribution is the discounted annual total (€468), not the hypothetical monthly price annualized. You report what the customer actually pays, not what they would pay on a different plan.
Multi-Year Contract Handling
A 2-year contract worth €10,000 contributes €5,000 per year. A 3-year contract worth €15,000 contributes €5,000 per year. Spread the value evenly across the contract term.
This applies regardless of payment schedule. Whether the customer pays €10,000 upfront or €5,000 per year, the contribution is the same: total contract value divided by total years.
Most bootstrapped SaaS founders won’t encounter multi-year deals often. If your business is mostly monthly and annual plans, Steps 1 and 2 cover 99% of the calculation. If a multi-year deal does come in, document the split in a per-customer note so your future self (or your first hire) understands why a €10K booking on the Bookings report shows up as only €5K on the annual report.
What to Include and Exclude
| Include | Exclude |
|---|---|
| Monthly subscriptions (annualized) | One-time setup fees |
| Annual subscriptions (at face value) | Implementation / consulting charges |
| Multi-year contracts (divided by years) | Usage-based overages |
| Seat-based recurring add-ons | Refunds and credits |
| Platform fees billed monthly | Churned or cancelled subscriptions |
| Free plans and trials (€0) |
One-time fees. Setup charges, migration fees, consulting hours, none of these recur, so none count toward the calculation.
Usage-based overages. If you charge €49/mo base plus usage, only the €49 base is recurring. The overage is variable and unpredictable. Some companies track a “run-rate” that includes average overages, but that is a different metric.
Churned subscriptions. If a customer cancelled yesterday, their subscription is no longer active. Remove it immediately. Do not wait until the billing period ends. This number should reflect your current reality, not your billing schedule.
Free plans and trials. €0/mo x 12 = €0. They contribute nothing. Do not count them, not even as “potential.”
Paused subscriptions. Stripe has a pause_collection status. Those accounts are not paying and should drop out of the number until they resume billing actively.
Worked Example
You run a SaaS product with mixed billing:
| Type | Customers | Price | Contribution per year |
|---|---|---|---|
| Monthly plan | 20 | €49/mo | 20 × €49 × 12 = €11,760 |
| Annual plan | 5 | €468/year | 5 × €468 = €2,340 |
| Multi-year (2yr) | 1 | €4,000 total | €4,000 ÷ 2 = €2,000 |
Total ARR = €11,760 + €2,340 + €2,000 = €16,100
If you had mistakenly multiplied the annual plans by 12, your ARR would be €39,960, more than double the real one. That is the kind of error that wrecks your forecasts and misleads anyone looking at your metrics, including potential investors who will tear apart your model in two minutes.
A second sanity check I like to run: add up every Stripe invoice from the last 12 months tied to active subscriptions. If that sum is dramatically lower than your calculated ARR, you have probably double-counted plan upgrades or included non-recurring line items.
In practice, it pays to redo the calculation manually in a spreadsheet once a month, even when a tool like NoNoiseMetrics or ChartMogul runs it automatically. The exercise forces you to see every plan change, every pause, every downgrade that happened in the reporting period.
Worked Example 2: SaaS With Churn and Expansion
Your SaaS at the start of Q2:
| Event | Customers | Price | ARR Impact |
|---|---|---|---|
| Existing monthly | 30 | €79/mo | 30 x €79 x 12 = €28,440 |
| Existing annual | 8 | €468/yr | 8 x €468 = €3,744 |
| New monthly (Q2) | 5 | €79/mo | 5 x €79 x 12 = €4,740 |
| Churned monthly | -3 | €79/mo | -3 x €79 x 12 = -€2,844 |
| Upgrade (monthly → annual) | 2 | was €79/mo, now €468/yr | Δ = 2 x (€468 - €948) = -€960 |
End of Q2 ARR = €28,440 + €3,744 + €4,740 - €2,844 - €960 = €33,120
The upgrade line is counterintuitive: those two customers moved from €79/mo (€948/yr) to the discounted annual plan (€468/yr), reducing ARR by €960. This is correct, you report what customers actually pay, not the higher monthly equivalent.
For all the edge cases beyond what is covered here, see all ARR formula edge cases. For the foundational definition and breakdown, see the SaaS metrics glossary.
ARR vs MRR
ARR = MRR × 12 works only when all your subscriptions are monthly. The moment you add annual plans, that shortcut breaks.
The safe approach: calculate ARR from individual subscriptions as shown above. If you want to go the other direction, deriving MRR from ARR, divide each subscription’s annual value by 12. Just don’t multiply annual plan prices by 12 when going from MRR to ARR. Use the MRR to ARR converter to check your numbers.
FAQ
How do you calculate ARR?
Add up the annualized value of every active recurring subscription. Monthly subscriptions get multiplied by 12, annual subscriptions stay as-is, and multi-year contracts get divided by the number of years. Exclude one-time fees, usage overages, and churned accounts. The formula is ARR = (Monthly subs x 12) + Annual subs + (Multi-year contracts / years).
Should I include annual discounts in ARR?
Yes. ARR reflects what customers actually pay, not the list price. If a customer pays €468/year on a discounted annual plan instead of €588/year at the monthly rate, their ARR contribution is €468. Report real revenue, not hypothetical revenue.
Should I include monthly subscribers in ARR?
Yes, but normalize them: multiply monthly subscription revenue by 12. A customer paying $49/month contributes $588 to ARR. Do not count customers on month-to-month plans who might churn next month as guaranteed annual revenue. ARR is a projection, not a guarantee. The MRR to ARR conversion guide covers the edge cases.
How do I handle annual plan discounts in ARR?
Use the actual amount the customer pays, not the undiscounted list price. If your annual plan is $499/year (a discount from $49/month x 12 = $588), that customer’s ARR contribution is $499. Do not inflate ARR with list prices, it misrepresents your actual recurring revenue and breaks financial projections.
When does it make sense to use ARR instead of MRR?
Use ARR when communicating with investors, calculating valuation multiples, or planning annual budgets. Use MRR for monthly operational decisions, it shows shorter-term trends faster. Most founders track both: MRR for day-to-day and ARR for strategic planning.
Calculate ARR automatically from Stripe. NoNoiseMetrics normalizes monthly and annual plans correctly. Free up to €10k MRR →
Free Tool
Try the MRR Dashboard Template →
Interactive MRR & ARR tracker, no signup required.