A founder Slacks you at 9:47 PM. "What's my MRR right now?" You pull up the P&L. Subscription revenue reads $47,300. You write back the number. Two minutes later: "That's not what Stripe shows. Stripe says $52,000." You both stare at different screens. You're both right. The P&L number is recognized revenue under GAAP. The Stripe number is a forward-looking subscription run-rate. Same business, two answers, no error. This is the bookkeeper's daily problem in SaaS accounting. The founder thinks in metrics. The books speak in revenue. Bridging the two is part of the job now.
This guide walks through the four numbers every SaaS founder asks about. It explains why none of them tie cleanly to the P&L. It also shows how to produce a one-page metrics view from QBO or Xero, no separate revenue recognition tool needed. It's written for Sarah, who keeps books for one to three SaaS clients. And for Marcus, who works at a CPA firm with a few SaaS shops on the roster. (Disclosure: Bobby Huang, who guides Growthy content, is a CPA firm partner but not himself a CPA. This is bookkeeper-to-bookkeeper framing, not regulated tax or audit advice.)
What are SaaS metrics for bookkeepers and why don't they match the P&L?
SaaS metrics are forward-looking measures of subscription business health. The four core numbers are MRR (monthly recurring revenue, the run-rate) and ARR (MRR × 12). The other two are bookings (total contract value signed in a period) and billings (invoiced amount in a period). None equal GAAP recognized revenue on the P&L. A $12,000 annual contract signed in January creates $12,000 in bookings, $12,000 in billings, $1,000 in MRR, and $1,000 per month in recognized revenue for 12 months. Bookkeepers need a separate metrics view because QBO and Xero report recognized revenue, not subscription run-rate or contract value.
Key Takeaways
- Four numbers, four audiences: MRR and ARR serve the founder dashboard. Billings serves the AR clerk. Bookings serves sales. Recognized revenue serves the P&L. Confusing them creates 90% of SaaS bookkeeping disputes.
- A $12,000 annual prepay creates four different numbers: $12,000 bookings, $12,000 billings, $1,000 MRR, and $1,000 monthly recognized revenue for 12 months. All four are correct.
- MRR is not on the P&L by default: QBO and Xero report recognized revenue under ASC 606. MRR needs contract-level tracking, usually in a spreadsheet, CRM, or a tool like ChartMogul.
- NRR hides churn behind expansion: A 110% NRR can mean strong expansion masking 15% churn. Bookkeepers should produce both the gross and net numbers.
- The one-page metrics view costs about 2 hours per month to maintain manually for a client with under 200 active subscriptions. Beyond that, a dedicated tool earns its keep.
- Flag mismatches as bookkeeping issues or definition issues: If recognized revenue exceeds MRR × 12, you may have multi-year recognition pulling forward. If MRR exceeds recognized revenue / 12, you may have under-recognized invoices.
The four numbers every SaaS founder asks about and what they actually mean
Before you can translate, you need the definitions. These four metrics get used loosely in board decks and investor updates. Pinning them down is the first job.
MRR (Monthly Recurring Revenue)
MRR is the sum of all active subscription contracts, normalized to a monthly value, on a specific date. It's a snapshot of the subscription run-rate. If a client has 50 customers paying $100 per month and 10 customers paying $1,200 per year, their MRR is (50 × $100) + (10 × $100) = $6,000. The annual customers get normalized by dividing by 12.
MRR is forward-looking. It answers, "If nothing changes from today, what will recurring revenue look like next month?" It doesn't include one-time fees, professional services, or non-recurring add-ons. Setup fees are out. Usage-based fees are usually out too, though some founders include them with caveats.
The most common bookkeeper error here is including non-subscription revenue in MRR. If your client's $100K monthly revenue includes $30K in one-time setup fees, the MRR is $70K, not $100K. Strip non-recurring items before reporting.
ARR (Annual Recurring Revenue)
ARR is MRR multiplied by 12. That's it. No separate calculation, no different data source. If MRR is $6,000, ARR is $72,000.
The confusion comes from founders who use ARR loosely to mean "annual revenue" or "annual contract value." It doesn't. ARR is a forward-looking annualized run-rate based on today's subscriptions. A company operating six months can have an ARR of $1.2M even though it's only collected $400K so far.
When a founder says, "We just hit $1M ARR," they mean the monthly recurring revenue at that moment, annualized, equals $1M. They don't mean they've collected $1M. The P&L will lag by 6 to 12 months because it shows what's actually been recognized.
Bookings
Bookings are the total contract value (TCV) signed in a period. A bookkeeper rarely tracks this in QBO directly. It usually lives in the CRM (HubSpot, Salesforce) or a spreadsheet maintained by the founder.
If a customer signs a 24-month contract on January 15th for $24,000 total, January bookings include $24,000. That same contract may not generate a single invoice in January if billing starts in February. Bookings ignore invoice timing and recognition timing. They measure what was sold, when it was sold.
Bookings are a leading indicator of future revenue. Strong bookings in Q1 predict strong recognized revenue across Q2, Q3, and Q4 as the contracts get delivered. Weak bookings predict revenue slowdowns 6 to 9 months out.
Billings
Billings are the total invoiced amount in a period. This is the one number bookkeepers can pull straight from QBO or Xero. Filter invoices by date range and sum the amounts. Done.
A $12,000 annual contract billed upfront in January creates $12,000 in January billings. The same contract billed monthly creates $1,000 in billings each month. The total bookings number is the same ($12,000), but the billings cadence differs based on how the founder structured the invoice schedule.
Billings answer the AR clerk's question: "How much did we invoice this month?" They don't answer the GAAP question. They don't answer the founder's question either. Different number, different audience.
Why none of these tie to your P&L
This is the moment the founder gets frustrated. They see MRR of $50,000 in their dashboard and recognized revenue of $35,000 on the P&L. They ask, "Are we losing money? Is something broken?" Usually no. The numbers measure different things.
MRR vs recognized revenue: the timing gap
MRR is a forward snapshot. Recognized revenue is a retrospective measure of what got delivered. They're calculated on different cycles and answer different questions.
Consider a SaaS client with $60,000 in active monthly subscriptions on the first of the month. MRR is $60,000. Halfway through the month, a $24,000 annual prepay contract starts. MRR jumps to $62,000 (the new contract adds $2,000 per month). But recognized revenue for the month only includes 15 days of the new contract, so it adds about $1,000, not $2,000. End-of-month recognized revenue might be $61,000, not $62,000.
That $1,000 gap is normal. It's the difference between a point-in-time snapshot and a period-of-delivery measurement. Founders who see this usually need the explanation, not a journal entry adjustment.
Bookings vs revenue: contract value vs realized
A $48,000 24-month contract signed in March creates $48,000 in March bookings. Recognized revenue for March, assuming a March 1 start date, is $2,000 ($48,000 divided by 24 months). The other $46,000 sits on the balance sheet as deferred revenue, draining at $2,000 per month for the next 23 months.
This is the gap that confuses new SaaS bookkeepers most. Bookings include money the company hasn't earned and may not have collected. Bookings can spike in a quarter where recognized revenue is flat. Both numbers are accurate for their purpose. Bookings predict the future. Recognized revenue describes the past.
For the bridge between these numbers, see deferred revenue mechanics. The deferred revenue balance is the running total of bookings minus revenue recognized to date, less any refunds or cancellations.
Billings vs revenue: invoiced vs delivered
A $12,000 annual contract billed upfront in January generates $12,000 in January billings and $1,000 in January recognized revenue. The other $11,000 hits deferred revenue and bleeds out at $1,000 per month for 11 more months.
Billings and recognized revenue only match when the customer is billed monthly for monthly service with no prepayment. In that case, January billings of $1,000 equal January recognized revenue of $1,000. For any annual prepay, multi-year deal, or upfront milestone payment, billings and revenue diverge.
For the recognition rules and journal entry patterns, see six SaaS contract examples with journal entries. That spoke walks through the six most common SaaS contract structures.
How to produce a metrics view from QBO or Xero
QBO and Xero don't natively report MRR, ARR, bookings, or NRR. They report invoices, payments, and recognized revenue. If you want the metrics view, you build it on the side. See saas metrics for bookkeepers.
MRR calculation from active subscription contracts
You need a list of every active subscription on the date you're measuring. The easiest source is the billing system (Stripe, Chargebee, Recurly). Export active subscriptions as of the report date. For each one, get the monthly equivalent: if billed monthly, that's the invoice amount; annually, divide by 12; quarterly, divide by 3.
Sum the monthly equivalents. That's MRR. If the client bills through QBO directly, build the list from active recurring invoices. Filter for invoices marked "recurring" and active as of the report date.
Track non-subscription items separately. If a customer has both a $500/month subscription and a one-time $2,000 setup fee in the same period, MRR includes only $500. The setup fee shows in revenue but not MRR.
Bookings calculation from contract sign dates
Bookings need a contract sign date and a total contract value (TCV) for each new deal. QBO doesn't capture this. The data usually lives in HubSpot, Salesforce, or a spreadsheet the founder maintains.
For each contract signed in the period, record the TCV. A $1,000/month contract signed for 12 months has a TCV of $12,000. A $2,000/month contract for 24 months has a TCV of $48,000. Sum the TCVs of contracts signed in the period. That's bookings.
If the client doesn't track this, push them to start. A simple Google Sheet with three columns (customer name, sign date, TCV) is enough for under 50 deals per month. Beyond that, a CRM is overdue.
Billings calculation from invoice dates
Billings are the easiest of the four. Pull an invoice report from QBO or Xero filtered by invoice date for the period. Sum the total invoiced amount.
Exclude credit memos and voided invoices. If the client uses a billing system that posts to QBO, the billing system total should match the QBO total. A mismatch usually points to a sync gap.
For clients on Stripe Billing or Chargebee with QBO sync, run billings from both systems and reconcile monthly. A diff of more than 2% usually points to a sync issue (missed invoices, currency conversion, refund timing).
Net revenue retention (NRR) and the metric that hides everything
NRR is the metric founders quote on board decks. It tells you whether existing customer revenue is growing or shrinking, excluding new acquisition. It's also the metric most likely to mislead, because it combines three different movements into one number.
What NRR measures
NRR formula: (starting MRR + expansion - contraction - churn) / starting MRR.
If a client started January with $50,000 MRR, added $8,000 in expansion, lost $3,000 in contraction, and lost $5,000 in churn, their NRR is ($50,000 + $8,000 - $3,000 - $5,000) / $50,000 = 100%.
A 100% NRR means existing customers, in aggregate, are paying the same this month as last month. Above 100% means existing customers are paying more (expansion outweighs churn). Below 100% means they're paying less (churn outweighs expansion).
Why bookkeepers should care
NRR hides churn behind expansion. A SaaS client with 110% NRR can have 25% gross churn if expansion is strong enough to mask it. The board sees 110% and feels good. The reality is one in four customers cancels each year, and the company stays even only because the remaining customers upgrade.
When a founder asks for NRR, give them both numbers. Net retention is the standard formula. Gross retention is starting MRR minus contraction minus churn, divided by starting MRR. The gross number shows the underlying churn. The net number is the headline that goes in the deck.
Gross retention strips expansion out. If gross retention is 85%, then 15% of starting MRR is leaving each month through downgrades and cancellations. Expansion may cover the gap, but the gap is still there, and the founder should see it.
How to calculate from the books
NRR requires cohort tracking. You need to know which MRR existed at the start of the period and where each dollar of it ended up.
The cleanest approach: maintain a subscription log with customer ID, MRR at period start, MRR at period end, and a delta column. Tag the delta as expansion, contraction, churn, or no change. Sum the period-end MRR for the starting cohort, divide by the period-start MRR.
This is doable in a spreadsheet for clients with under 100 customers. Beyond that, a tool earns its keep. ChartMogul and Baremetrics build NRR automatically from a Stripe or Chargebee feed. Maxio and Chargebee build it from their own contract data.
When founders ask 'what's my MRR' and you have to explain why it's not on the P&L
This conversation happens 50 times a year per SaaS client. The founder sees one number in their dashboard, another in your close package, and asks why they differ.
Script: how to walk through it
Start with audience framing. "MRR and revenue answer different questions. MRR tells you the run-rate today. Revenue tells you what was earned and delivered last month. Both are accurate. They're not supposed to match."
If they push: "Your MRR is forward-looking. It assumes nothing changes. Revenue is retrospective. It only counts service that was actually delivered. A $12,000 annual contract counts as $12,000 in bookings, $1,000 in MRR, and $1,000 per month in revenue across 12 months."
If they still push: "If you want them to match, you'd need to bill all customers monthly with no prepayments and no annual deals. Most SaaS companies don't operate that way, so the gap is normal."
This usually ends the conversation. If it doesn't, the founder may be looking at a real mismatch worth investigating (see below).
What to show them on a one-page metrics view
A bookkeeper-built one-page metrics view has four sections:
- Subscription run-rate: MRR, ARR, customer count, average revenue per customer
- GAAP revenue: recognized revenue, deferred revenue balance, ratio of recognized to deferred
- Sales activity: bookings, average contract value, contracts signed
- Cash activity: billings, collected cash, AR balance
Below those sections, add a "Why these differ" footer with two or three sentences explaining the timing gaps. The footer prevents the same Slack message you got at 9:47 PM last Tuesday.
This view takes about 2 hours per month to build manually for a client with under 200 active subscriptions. The first month is harder. After that, it's about 90 minutes once you have the workflow.
When to flag a mismatch as a bookkeeping issue vs a definition issue
Not all mismatches are normal. Some are real errors worth flagging. Two patterns to watch:
Recognized revenue exceeds MRR × 12. If MRR is $50,000 but trailing 12-month revenue is $700,000, you may have multi-year recognition pulling forward. Some bookkeepers recognize 24-month contracts over 12 months instead of 24. That overstates revenue today and creates a cliff next year. Investigate the recognition schedule for any multi-year contracts.
MRR exceeds recognized revenue / 12. If MRR is $80,000 but trailing 12-month revenue is $600,000 ($50,000 average), you may have under-recognized invoices, missed contracts, or a non-subscription mix (one-time fees inflating MRR by mistake). Pull the active subscription list and confirm each item is truly recurring.
When you spot one of these, flag it as "bookkeeping issue, will investigate" rather than blaming the metric definition. Don't ship a metrics view with a known mismatch.
Tools that produce the metrics view automatically
For most early-stage SaaS clients, the spreadsheet approach works. Below 100 active subscriptions and under 5 new contracts per month, a Google Sheet plus the QBO billings report is enough.
When you need one
Three triggers usually point to "time for a tool":
- Contract complexity exceeds what a spreadsheet can maintain (multiple billing frequencies, mid-contract upgrades, usage-based components mixed with subscriptions)
- Monthly close drags past 5 business days because metrics reconciliation is taking too long
- The founder asks the same MRR question every week, which means they don't trust your manual report or can't access it on demand
Below those thresholds, the spreadsheet is faster. Above them, the tool catches issues you'd miss.
Options: Maxio, Chargebee, ChartMogul, Baremetrics
The market splits into two categories. Revenue recognition platforms (Maxio, Chargebee) handle both metrics and the underlying GAAP journal entries. Metrics-only tools (ChartMogul, Baremetrics) handle the dashboard but expect you to keep doing revenue recognition in QBO or NetSuite.
Maxio (formerly Chargify + SaaSOptics) bundles billing, revenue recognition, and metrics. Heavy lift to implement (4 to 8 weeks). Fits clients between $1M and $50M ARR with complex contracts.
Chargebee is a billing platform with revenue recognition and metrics modules. Lighter implementation than Maxio. Good fit if the client uses Stripe and wants more contract management.
ChartMogul is metrics-only. Pulls from Stripe, Chargebee, Recurly, and Braintree, then builds MRR, ARR, NRR, churn, and cohort views automatically. Often under a week to implement. Starts around $129/month.
Baremetrics is the lightest option. Similar to ChartMogul in scope, with simpler dashboards. Good fit for early-stage clients who want fast setup. Starts around $129/month.
For broader comparisons across SaaS accounting and metrics stacks, see SaaS accounting software comparison.
Growthy on this: where we are today
Growthy handles the categorization and GL side of SaaS bookkeeping in QBO and Xero. The metrics view (MRR, ARR, NRR, cohort tracking) is in the product roadmap but not shipped today. For clients who need automated metrics now, use a dedicated tool from the list above paired with your GL work. For clients under 100 active subscriptions, the spreadsheet approach works fine.
If your client is past the spreadsheet stage and needs metrics this quarter, point them at ChartMogul or Baremetrics. If revenue recognition is the bigger headache, focus on the GL first and add metrics tooling when volume justifies it.
What changes for the bookkeeper
The bookkeeper's job in SaaS isn't to produce MRR every month. It's to make sure the four numbers and the P&L numbers reconcile in a way the founder can understand. The four are MRR, ARR, bookings, and billings. The P&L numbers are recognized revenue, deferred revenue, and AR. The metrics view is a translation layer, not a separate accounting system.
For Sarah keeping books for a handful of SaaS clients, this means adding about 2 hours per client per month for the metrics view. Add another 30 minutes for the founder conversation after the close. For Marcus at a CPA firm with SaaS shops on the roster, it means training the staff to spot the four numbers in client conversations. And not treating "MRR" as a tax-deductible expense.
Founders will ask. Investors will ask. Auditors will ask the GAAP version. Knowing the difference and being able to walk through it is the value the bookkeeper adds.
Growthy is bookkeeping software, not a CPA firm. This content is educational, not professional advice. Full disclaimer.
Get Started with Growthy
Related: SaaS Accounting, Bookkeeper Scaling, AI Bookkeeping.