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.

StepCalculationResult
Strip out VAT (15%)138,000 ÷ 1.15120,000
Strip out implementation fees120,000 − 18,000102,000
Convert to monthly102,000 ÷ 12SAR 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

  1. 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.
  2. Booking the full annual contract in the signing month. It creates phantom peaks and makes month-to-month comparison meaningless.
  3. Including VAT. It lifts the number by 15% in one stroke — money that isn't yours.
  4. 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.
  5. 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 metricWhat it reveals
MRR added (new + expansion)The team's ability to grow the base
MRR at risk within 90 daysTotal value of contracts up for renewal soon
Accounts with no contact in 60 daysEarly warning of silent churn
Licence gap (contracted vs. activated)Expansion opportunities and contraction risk
Discounts expiring within 60 daysNegotiations 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.

Rescue stalled deals · last run 2 hours ago Live simulation
1 You describe it 2 Hibab draws it 3 It runs
Y You, in plain words, as you'd say it to a colleague
H I've drawn the rule from your system's triggers, actions and your organization's catalogs, review it, then save.
Trigger Deal with no activity 7 days with no activity and no next task
Condition Value above 50,000 and its stage is neither Won nor Lost
Action Hibab analyses it Reads its history and writes why it stalled and what's next
Action Notify the owner In their language, on the channel they prefer
Action Follow-up task Opens tomorrow 09:00 for the deal owner
Trigger Condition Action · parallel actions run together
Run log
  1. Trigger caught deal Al Waha Specialist Hospital, 7 days with no activity
  2. Condition met: value SAR 210,000 stage Qualification
  3. Hibab: “Stalled after the technical presentation, pricing hasn't reached finance yet”
  4. Notified the deal owner on WhatsApp, in their language
  5. Opened a follow-up call task for tomorrow 09:00
## A worked example: an MRR dashboard for a company with twenty subscription customers

A hypothetical company opens the month with 20 customers and MRR of SAR 160,000 (an average of 8,000 per customer). During the month:

LineDetailImpact
NewTwo customers at 7,000 and 9,500+16,500
ExpansionThree customers added 14 users at 450/user+6,300
ContractionOne customer cut from 20 to 12 users−3,600
ChurnOne 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.

Want to see this inside your organization? Request an invite