ForHosting KIT · Developer Utilities

MRR Growth Rate Calculator

The MRR growth rate calculator turns a monthly recurring revenue bridge into one comparable percentage.

● BetaFree · in your browser
Use it from WebAPIEmailTelegramApp soon

Enter starting MRR together with new, expansion, contraction, and churned MRR. The result shows what was added, what was lost, the net revenue change, ending MRR, and the month-over-month growth rate. Because every component remains visible, finance, growth, and leadership teams can review the calculation instead of relying on a percentage with no explanation behind it.

Build the monthly MRR bridge correctly

Start with recurring revenue active at the opening of the month. Add new MRR from customers acquired during the period and expansion MRR from existing customers who upgraded, added seats, bought add-ons, or increased recurring usage. Then subtract contraction MRR from customers who stayed but reduced their commitment, and churned MRR from customers whose recurring subscriptions ended. The calculator applies that bridge in a fixed order and reports both ending MRR and the net movement. Keep every amount in the same currency and use recurring revenue only. Setup charges, implementation fees, hardware, one-time services, and annual contract value that has not been normalized into a monthly amount do not belong in these fields. Use one consistent snapshot policy as well. For example, if starting MRR is measured at midnight on the first day, ending MRR should be measured at the corresponding boundary after all changes for the month are posted. Consistent definitions make comparisons between months meaningful and prevent timing differences from looking like business performance.

Understand the growth rate and its components

The net MRR change equals new MRR plus expansion MRR minus contraction MRR minus churned MRR. The month-over-month MRR growth rate divides that net change by starting MRR and multiplies the result by 100. A positive rate means recurring revenue ended above its opening level; zero means additions exactly offset losses; a negative rate means contraction and churn exceeded new and expansion revenue. The component totals help explain why the same headline rate can describe very different businesses. One company might grow mainly through new customer acquisition while another grows through upgrades from its installed base. Likewise, a flat month can reflect both quiet activity and a large volume of additions canceled by equally large losses. Starting MRR must be greater than zero because a percentage change from a zero base is undefined. The calculator does not hide that mathematical limitation or substitute an arbitrary percentage. For a newly launched business with no opening MRR, report the absolute ending MRR and begin percentage comparisons once a positive opening base exists.

Use the result in reporting and planning

Place the growth rate beside its MRR bridge in monthly reporting so readers can see the drivers, not just the final percentage. Compare several consecutive months using the same accounting rules, customer cutoff, currency treatment, and treatment of credits. That trend is more useful than treating a single strong or weak month as a durable pattern. The breakdown also supports scenario planning: teams can test how a different new-business target, expansion program, downgrade level, or churn reduction would affect ending MRR while holding the other components constant. Do not confuse this metric with net revenue retention. MRR growth includes new customer revenue, while net revenue retention normally excludes new customers and focuses on changes within the opening cohort. It also differs from gross revenue retention, which ignores expansion. Reconcile the calculator inputs to the subscription ledger before presenting them, especially when contracts are amended retroactively or denominated in multiple currencies. The browser calculation is useful for quick analysis, while automated workflows can call the API for $0.002 per request and store the returned components with each reporting period.

Prepare a monthly finance close

Reconcile the opening balance and each movement category into ending MRR and a reviewable growth percentage.

Explain growth to leadership

Show whether recurring revenue changed because of acquisition, customer expansion, downgrades, or cancellations.

Model an operating plan

Change individual MRR assumptions to see the growth rate and ending balance implied by a scenario.

What is the MRR growth rate formula?

Add new and expansion MRR, subtract contraction and churned MRR, divide the net change by starting MRR, and multiply by 100.

Why must starting MRR be greater than zero?

Percentage growth uses starting MRR as its denominator. A zero denominator makes the rate undefined, so the calculator rejects it.

Does new MRR include one-time revenue?

No. Include only normalized monthly recurring revenue from new customers, not setup fees, services, hardware, or other one-time charges.

What is the difference between contraction and churned MRR?

Contraction is recurring revenue lost from customers who remain active at a lower amount. Churned MRR is recurring revenue lost when a customer subscription ends.

Is MRR growth the same as net revenue retention?

No. MRR growth includes revenue from new customers. Net revenue retention generally measures expansion, contraction, and churn within the opening customer cohort and excludes new customers.

How much does the API calculation cost?

Each API request costs $0.002. The same deterministic calculation can run in the browser for quick interactive use.

Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.

POSThttps://api.kit.forhosting.com/finance/mrr-growth

Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.

curl -X POST https://api.kit.forhosting.com/finance/mrr-growth \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"starting_mrr":100000,"new_mrr":12000,"expansion_mrr":5000,"contraction_mrr":3000,"churned_mrr":4000}'
{
  "starting_mrr": 100000,
  "new_mrr": 12000,
  "expansion_mrr": 5000,
  "contraction_mrr": 3000,
  "churned_mrr": 4000
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "finance.mrr_growth",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.

Per request$0.002

Published price — no tokens, no invented credits. A failed task is never charged.

HTTPCodeMeaning
401unauthorizedMissing or invalid API key.
402insufficient_balanceYour balance doesn't cover the task price.
404unknown_typeThat task type doesn't exist.
429rate_limitedToo many requests. Use the webhook instead of polling.

Read the full KIT documentation →