← Back to blog
2026-06-01

MRR, ARR and Deferred Income in Xero for UK SaaS

Set up MRR, ARR and deferred income in Xero for UK SaaS: recognise annual contracts with repeating journals and reconcile revenue to your MRR schedule.

XeroDeferred IncomeMRRUK SaaS

"I need someone to sort out our MRR and ARR reporting in Xero" is one of the most common requests I get from SaaS founders. It is almost always the same underlying problem: annual contracts are booked as revenue the moment the invoice goes out, the P&L lurches up and down with billing rather than usage, and the ARR number quoted to the board comes from a spreadsheet or Stripe that has never been reconciled to the accounts.

The good news is that Xero handles this well once it is set up properly. You do not need an expensive subscription-billing add-on to recognise revenue correctly. You need a deferred income account, one repeating journal per annual contract, and the discipline to keep the MRR schedule tied to the P&L.

This guide covers the practical setup. For the underlying accounting standard, see revenue recognition for UK SaaS companies.

Deferred income, in plain English

Deferred income is money you have been paid but have not earned yet.

When a customer signs a 12-month contract for £12,000 and pays upfront, the £12,000 lands in your bank in month one. But you have delivered only one month of service, so you have earned only £1,000. The other £11,000 is a debt you owe the customer - eleven more months of software access. Until you deliver it, that £11,000 sits on the balance sheet as a liability called deferred income (or deferred revenue).

Each month you deliver another month of service, £1,000 moves off the balance sheet and onto the P&L as revenue. By month twelve, the deferred income balance is zero and all £12,000 has been recognised.

MonthRevenue (P&L)Deferred income (BS)
Month 1£1,000£11,000
Month 2£1,000£10,000
.........
Month 12£1,000£0

That is the whole concept. The work is making Xero reflect it.

Why annual contracts break your P&L in Xero

By default, when you raise a sales invoice in Xero, the full amount is coded to a revenue account on the day the invoice is issued. For a monthly subscription, that is fine - billing and delivery happen in the same month. For an annual contract billed upfront, it is wrong in three ways:

  • Your P&L spikes. A £12,000 contract shows £12,000 of revenue in one month and nothing for the next eleven. Multiply that across a few large annual deals and your monthly P&L becomes meaningless.
  • Your balance sheet is missing a liability. With no deferred income recorded, the balance sheet understates what you still owe in undelivered service.
  • Nothing reconciles. Your MRR schedule says £1,000 a month; your Xero P&L says £12,000 then £0. The two cannot be tied together, which is exactly the gap investors probe in due diligence.

The fix: one repeating journal per contract

The clean, audit-proof method in Xero is to invoice into a deferred income account and release it to revenue over the contract term using a repeating manual journal. Three steps.

Step 1 - Invoice to deferred income, not revenue

Create a balance sheet liability account called Deferred Income (Xero account type: Current Liability). When you raise the annual invoice, code the line to Deferred Income rather than to a revenue account. VAT is charged on the invoice as normal; only the net amount moves to deferred income.

One Xero quirk: invoices only list revenue accounts in the line dropdown by default. Tick "Show in sales" on the Deferred Income account so it appears - or, if you prefer, post the invoice to revenue and move the full amount across to deferred income with a journal in month one.

After this step the cash and the receivable are recorded, but no revenue has hit the P&L yet.

Step 2 - Create a repeating journal to release the revenue

In Xero, under Accounting > Advanced > Manual journals, create a new journal and set it to repeat monthly for the length of the contract. Each month it moves one month's worth from deferred income to revenue:

AccountDebitCredit
Deferred Income (liability)£1,000
Subscription Revenue (P&L)£1,000

Set the start date to the first month of service and the end date to the last - twelve occurrences for a 12-month contract. Xero then posts £1,000 to revenue automatically every month and runs the deferred income balance down to zero exactly as the contract ends.

Step 3 - One journal per contract

Set up a separate repeating journal for every annual contract, named with the customer and contract reference. This is the part founders are tempted to skip, because it is easier to post one blended journal for all deferred revenue. Resist that - the next section explains why.

Why one journal per contract, not one big journal

Tracking each contract individually takes a few more minutes a month and saves you days later:

  • It is auditable. You can show exactly which contracts make up the deferred income balance at any month-end, and an auditor or investor can trace every pound.
  • Churn is clean. If a customer leaves mid-term, you stop that one journal and deal with the remaining balance. With a blended journal you would have to unpick the whole thing.
  • Upgrades are clean. Mid-contract expansion gets its own journal from the change date, rather than re-rating a single giant entry.
  • It matches the recognition period to the contract period. Each contract's revenue is recognised across exactly its own term, not an approximation.

Matching the recognition period to the contract period

The principle: revenue is recognised over the period you are obligated to deliver the service - the contract term - regardless of when you billed.

  • 12-month contract: twelve monthly releases. The standard case.
  • Multi-year contract: the portion to be recognised beyond 12 months sits in a separate Deferred Income (non-current) account, so the balance sheet correctly splits current and long-term liabilities.
  • Mid-month start: if a contract starts on the 15th, either recognise a part-month or start clean from the next full month. Pick one policy and apply it consistently.
  • Implementation or setup fees: these are usually a separate performance obligation, recognised when delivered rather than spread across the subscription. Keep them on their own revenue line.

Getting MRR and ARR to reconcile to Xero

The journals fix the P&L. The MRR schedule is a separate, customer-level record of recurring revenue per month - and the two must agree.

The cross-check is straightforward: the sum of your monthly MRR for the year should be within a few percent of the recurring revenue recognised in your Xero P&L. ARR is simply your exit MRR multiplied by twelve. When the MRR schedule and the P&L diverge, the usual culprits are:

  • One-off fees (setup, implementation, professional services) mixed into recurring revenue lines - separate them.
  • Credit notes raised in Xero but never reflected in the MRR schedule.
  • Contracts recognised in the MRR schedule from a different start date than the journal uses.

Run this reconciliation every month at close, not once a year before a raise. A clean MRR schedule that ties to Xero is the foundation for every metric a board or investor will ask about, from net revenue retention to unit economics. If your ARR number cannot be traced back to the accounts, it will not survive diligence.

When manual journals stop scaling

Repeating journals work well up to a few hundred active contracts. Beyond that, the monthly admin of setting up and retiring journals becomes a job in itself, and a dedicated revenue-recognition tool or a properly maintained deferred income schedule earns its cost. The accounting is identical - the difference is automation, not method.

For most UK SaaS businesses up to Series A, the repeating-journal approach in Xero is more than enough, and it is exactly how I set up revenue recognition when reviewing a new client's books.

The bottom line

Getting MRR, ARR and deferred income right in Xero comes down to three habits: invoice annual contracts into a deferred income account, release them to revenue with one repeating journal per contract, and reconcile the MRR schedule to the P&L every month. Do that and your P&L stops lurching, your balance sheet tells the truth, and your ARR number holds up when it matters.

If your Xero is currently booking annual deals as one-off revenue and your ARR lives in a spreadsheet, that is the exact problem a fractional CFO sorts out - usually within the first few weeks of an engagement.

Want this kind of clarity in your own numbers?

Free 15-minute call. No obligation, no day rates.

Book a 15 min callFree · 15 minutes · No commitment