What Is Monthly Recurring Revenue (MRR)? How to Calculate It From Your Actual Contracts
Article 14 Sep 2026 MRRSaaS MetricsRevenue ManagementSubscription BillingCustomer Retention
Monthly Recurring Revenue (MRR) is the total revenue you expect to collect every month from live contracts that renew by their very nature — once each contract has been converted into its monthly equivalent and every one-off item has been stripped out. The essential difference between MRR and "total sales" is simple: the first measures what the business will live on next month, the second measures what the team did last month.
The definition in two lines: what counts and what doesn't
One question settles it: will this amount repeat automatically next month unless the customer cancels? If yes, it belongs in MRR. If it requires a fresh purchase decision, it doesn't.
Counts as MRR:
- Monthly and annual subscriptions to the platform or service.
- Per-user or per-branch licences, as long as they're billed on a cycle.
- Annual support and maintenance contracts that auto-renew or renew near-certainly.
- Add-on modules written into the contract (extra storage, a reporting module, a second branch).
Does not count as MRR:
- Implementation, training and onboarding fees.
- Hardware sales or perpetual licences paid once.
- Consulting hours or custom development billed on request.
- VAT — it was never your revenue to begin with.
- Temporary discounts? Those do count, but at the discounted value, not the list value. More on that below.
Turning real contracts into a monthly figure: annual terms, VAT, setup fees
Most contracts in the Saudi market are annual, and the first mistake is booking the entire contract value in the month it was signed. The correct approach is to spread it:
Contract MRR = (annual recurring contract value, excluding VAT and one-off fees) ÷ 12
A worked example: a contract worth SAR 138,000 including VAT, which contains SAR 18,000 of one-off implementation and training fees.
| Step | Calculation | Result |
|---|---|---|
| Strip out VAT (15%) | 138,000 ÷ 1.15 | 120,000 |
| Strip out implementation fees | 120,000 − 18,000 | 102,000 |
| Convert to monthly | 102,000 ÷ 12 | SAR 8,500 MRR |
The gap between recording 138,000 and recording 8,500 isn't just an accounting difference — it's a decision-making difference. The first manager assumes it was an outstanding month and eases the pressure on renewals. The second knows he added SAR 8,500 to a permanent revenue base.
Three situations deserve extra care:
- Multi-year contracts: divide by the actual number of months, not by 12. A three-year deal worth 360,000 (excluding VAT) equals SAR 10,000 of MRR.
- Payment timing vs. entitlement: MRR is unaffected by when you collect. A customer who paid a year upfront still shows as SAR 8,500 per month on your dashboard; cash flow is tracked in a separate metric.
- Usage-based billing: if part of the invoice is variable (messages, transactions), calculate MRR from the fixed portion only and track the variable part as a three-month average in a side metric.
MRR movement: new + expansion − contraction − churn
The number on its own tells you little. What matters is how it moves, broken into four lines:
Closing MRR = opening MRR + new + expansion − contraction − churn
- New: customers who weren't in the base last month.
- Expansion: extra users, added modules, plan upgrades, price increases at renewal.
- Contraction: a customer who stayed but cut seats, downgraded, or negotiated a new discount.
- Churn: a customer whose contract ended without renewal, or who cancelled.
This breakdown answers a question total sales never can: is our growth coming from new hunting, or from the existing base? A company adding SAR 20,000 a month while losing 18,000 is in a very different position from one adding 8,000 and losing 1,000 — even though the second looks weaker in a "sales" report.
From this you derive net churn: (contraction + churn − expansion) ÷ opening MRR. When expansion outweighs losses, the business grows even if it never signs another new contract.
Five mistakes that inflate the number without adding a riyal
- Putting implementation fees into MRR. The most common error and the fastest to expose itself: any month without new signings suddenly drops for no operational reason.
- Booking the full annual contract in the signing month. It creates phantom peaks and makes month-to-month comparison meaningless.
- Including VAT. It lifts the number by 15% in one stroke — money that isn't yours.
- Counting contracts that haven't gone live. A deal signed today and delivered in two months isn't MRR today; park it under "committed MRR" in a separate column.
- Ignoring promotional discounts. A customer on 50% off for six months contributes half their list value, not all of it. When the discount ends, record the difference as expansion, not new sales — and set an alert a month before it expires, because that moment is one of the highest-risk points for contraction.
MRR in per-user pricing: expansion without a new deal
When pricing is per user, the definition of "opportunity" changes. A customer who started with five users and now has twelve has doubled their contribution without going through a full sales cycle — no demo, no competitive bid, no procurement committee.
In practice that means:
- Watch usage, not just conversations. A customer who has consumed every licence and started sharing logins is a ripe expansion opportunity; a customer with half their licences unactivated is a contraction candidate at renewal.
- Make activated user count a visible field on the customer record, not a line on an invoice. In Effistar, linking contracted licences to actually active users turns the gap between the two numbers into a business signal: a negative gap means an upsell opportunity, a wide positive gap means downgrade risk at renewal.
- Price expansion pro rata. Adding four users mid-year is invoiced for the remaining months, but MRR rises by the full monthly value immediately.
What the sales team reviews weekly: renewals and expiries before they become churn
Replace the "how much did we sell this week" meeting with five questions:
| Weekly metric | What it reveals |
|---|---|
| MRR added (new + expansion) | The team's ability to grow the base |
| MRR at risk within 90 days | Total value of contracts up for renewal soon |
| Accounts with no contact in 60 days | Early warning of silent churn |
| Licence gap (contracted vs. activated) | Expansion opportunities and contraction risk |
| Discounts expiring within 60 days | Negotiations that will happen whether you prepare or not |
The key is that these questions shouldn't be asked in a meeting — they should be driven by automated alerts: a task opened automatically for the account owner 90 days before contract expiry, a reminder before a discount ends, a flag when an account above a certain value goes quiet. A renewal you open 90 days ahead is a negotiation; one you open a week ahead is a plea.
## A worked example: an MRR dashboard for a company with twenty subscription customersA hypothetical company opens the month with 20 customers and MRR of SAR 160,000 (an average of 8,000 per customer). During the month:
| Line | Detail | Impact |
|---|---|---|
| New | Two customers at 7,000 and 9,500 | +16,500 |
| Expansion | Three customers added 14 users at 450/user | +6,300 |
| Contraction | One customer cut from 20 to 12 users | −3,600 |
| Churn | One customer didn't renew | −11,000 |
| Net | +8,200 |
Closing MRR = SAR 168,200. In a traditional sales report, the same month might have appeared as "SAR 198,000 in sales" because both new contracts were annual and carried implementation fees — accurate accounting, misleading management.
What should leadership read in that table? That expansion (6,300) didn't cover losses (14,600), and that almost all of the month's growth came from two new contracts. If hunting stopped for two months, the base would shrink. The resulting decision is obvious: shift part of the team's time to reviewing accounts due for renewal next quarter, and diagnose why that customer cut seats before the same thing spreads.
That's the value of MRR. It isn't a figure to display in a month-end report — it's a tool that tells you where your growth came from, and whether you can count on it again.