How to calculate MRR movement
Use the calculator for one period. Enter these five required values: Starting MRR, New MRR, Expansion MRR, Contraction MRR, and Churned MRR. Enter contraction and churn as positive amounts; the formula subtracts them.
Enter the MRR movement values
- Select a currency symbol. This changes the displayed label only; it does not convert the values.
- Enter the five numeric values for the same period. Use zero when a category has no value.
- Click Calculate MRR movement. The result stays hidden until the calculation succeeds.
Read the results
The calculator uses this formula:
Ending MRR = Starting MRR + New MRR + Expansion MRR - Contraction MRR - Churned MRR
It displays Ending MRR, Net New MRR, Net MRR Growth Rate, Net Revenue Retention (NRR), and these detailed measures:
- Net New MRR = New MRR + Expansion MRR - Contraction MRR - Churned MRR
- Net MRR Growth Rate = Net New MRR ÷ Starting MRR
- Gross MRR Churn Rate = Churned MRR ÷ Starting MRR
- Contraction Rate = Contraction MRR ÷ Starting MRR
- Gross Revenue Retention (GRR) = (Starting MRR - Churned MRR - Contraction MRR) ÷ Starting MRR
- Net Revenue Retention (NRR) = (Starting MRR - Churned MRR - Contraction MRR + Expansion MRR) ÷ Starting MRR
- MRR Quick Ratio = (New MRR + Expansion MRR) ÷ (Churned MRR + Contraction MRR)
Displayed monetary values and percentages use two decimal places. The result table lists the five inputs and each derived value so you can check the calculation.
Copy or download the result
Use Copy result to copy the plain-text result. Use Download result (.txt) to save it as a .txt file.
Validation and calculation limits
Before calculating, the tool checks that every input is a finite number of zero or more. It also checks contraction against starting, new, and expansion MRR, and checks churn against starting MRR. These two loss checks run separately, so their combined amount can still produce a negative Ending MRR.
When Starting MRR is zero, Net MRR Growth Rate can display n/a. Several other rates use fallback values defined by the calculator, and MRR Quick Ratio displays n/a (no churn or contraction) when both loss inputs are zero. The local files do not explain a separate business interpretation for those fallback values.
Privacy and data handling
The calculator uses the values you enter in the browser. It does not connect to billing data or fetch live records. The page also loads analytics scripts.
Frequently Asked Questions
What is the MRR movement formula?
Ending MRR = Starting MRR + New MRR + Expansion MRR - Contraction MRR - Churned MRR. New MRR is revenue from brand-new subscribers, expansion is additional revenue from existing subscribers who upgraded or bought more, contraction is revenue lost from existing subscribers who downgraded, and churned MRR is revenue lost from subscribers who fully cancelled.
What is the difference between contraction and churn?
Contraction MRR is revenue lost from customers who are still subscribed but paying less, such as a downgrade or seat reduction. Churned MRR is revenue lost from customers who cancelled entirely. Both reduce ending MRR, but they are tracked separately because they usually require different retention strategies.
What is Net Revenue Retention (NRR) and why does it matter?
Net Revenue Retention is (Starting MRR - Churned MRR - Contraction MRR + Expansion MRR) divided by Starting MRR, expressed as a percentage. It measures how much revenue your existing customer base generates over the period, excluding new customers. An NRR above 100% means expansion is outpacing churn and contraction among existing customers.
What is the MRR Quick Ratio?
The MRR Quick Ratio is (New MRR + Expansion MRR) divided by (Churned MRR + Contraction MRR). A ratio above 1 means MRR gained is outpacing MRR lost; a ratio below 1 means the business is losing more recurring revenue than it is adding, before accounting for growth in new sales.
Does this tool fetch my actual billing or subscription data?
No. It only calculates from the numbers you type in. It does not connect to a billing system or fetch live records. The calculation uses your entered values in the browser; the page also loads analytics scripts.