Skip to content
Back to Resources
Guide

SaaS Metrics That Matter: Definitions and How to Track

Skopx Team
July 31, 2026
17 min read

Three people pull MRR on the same Tuesday morning. Finance says $412,000. The board deck says $438,000. The number in the growth team's spreadsheet is $401,500. Nobody made an arithmetic error. Finance excluded subscriptions in dunning, the board deck counted annual prepayments as cash received in the month rather than spread across the term, and the growth team snapshotted active subscriptions on the first of the month instead of the last. Every one of those choices is defensible. Together they produced a $36,500 spread on a single, supposedly objective number.

That is the real problem with software as a service metrics. The formulas are not hard. The counting choices underneath them are where the disagreement lives, and almost nobody writes those choices down. This guide gives clean definitions for the metrics that carry weight, names the specific decisions that quietly change each number, and shows how to compute them from your own billing records rather than importing benchmarks from a blog post.

You will not find a single industry benchmark in this article. Not one. The reason is simple: published SaaS benchmarks blend companies with different contract lengths, pricing models, segments and counting conventions, and comparing your number to theirs mostly measures how differently you both define the term. Your own trailing history is a better yardstick, and the last section explains how to build it.

The metrics that carry weight, defined precisely

Start with the short list. Most companies track thirty saas kpis and make decisions with six.

MetricFormulaGrainMost common mistake
MRRSum of normalized monthly recurring amounts on active subscriptions, net of discountsOne month, one companyIncluding one-time fees and services revenue
ARRMRR x 12, or the sum of contracted annual values for annual-term businessesOne month, annualizedMixing the two methods across segments
Customer churnCustomers lost in period / customers at start of periodLogo countIgnoring that annual contracts cannot churn mid-term
Gross revenue churn(Churned MRR + contraction MRR) / starting MRRDollarsNetting expansion into it, which hides the leak
Gross revenue retention1 minus gross revenue churn, capped at 100%Dollars, existing customers onlyLetting it exceed 100%, which means expansion crept in
Net revenue retention(Starting MRR + expansion - contraction - churn) / starting MRRDollars, existing customers onlyIncluding new logos in the numerator
Expansion MRRIncrease in recurring amount from existing customersDollarsCounting reactivated churned accounts as expansion
CACFully loaded sales and marketing cost / new customers acquiredCohort of new customersUsing the same period's spend for a long sales cycle
CAC paybackCAC / (new MRR per customer x gross margin)MonthsOmitting gross margin, which flatters payback
Quick ratio(New + expansion MRR) / (churn + contraction MRR)RatioReading it without knowing the churn definition

Two structural rules make the whole set coherent.

First, retention metrics are measured on existing customers only. New logos never appear in the numerator or the denominator of gross or net retention. The instant new business leaks in, retention stops being a measure of your product and becomes a measure of your sales team.

Second, the MRR movement waterfall must reconcile exactly. Starting MRR plus new plus expansion plus reactivation minus contraction minus churn should equal ending MRR, to the dollar. If it does not tie, one of your definitions is leaking, and every ratio built on top of it inherits the error. Treat the waterfall as a test, not a chart.

MovementWhat it capturesSign
Starting MRREnding MRR of the prior month, never recomputedBase
NewFirst recurring revenue from a customer with no prior subscription+
ExpansionSeats added, tier upgrades, committed usage increases from existing customers+
ReactivationCustomers who churned in an earlier period and returned+
ContractionSeat reductions, downgrades, discounts newly applied-
ChurnSubscription fully canceled or lapsed under your rule-
Ending MRRMust equal the sum of normalized amounts on active subscriptionsResult

Keep reactivation separate. Folding it into new inflates acquisition efficiency, and folding it into expansion inflates net revenue retention. It deserves its own row because it answers a different question: whether the product is worth coming back to.

MRR and ARR: four counting choices that move the number

MRR looks like a sum. It is really a set of policy decisions that a sum happens to express.

Annual prepay. A customer pays $24,000 in January for twelve months. MRR treatment is $2,000 per month for twelve months. The cash arrived in January, but MRR is a normalization of recurring commitment, not a cash statement. Booking the full $24,000 into January MRR produces a January spike and eleven months of apparent decline, which is exactly the pattern in the board deck from the opening scenario. Keep cash timing in your cash forecast, where it belongs, and where the mechanics are covered in more depth in our guide to budgeting and forecasting software.

Mid-month upgrades and proration. A customer upgrades on the 14th. Their invoice for that month contains a prorated line, so the invoiced amount is neither the old plan nor the new one. If you compute MRR by summing invoices you will get a number that no plan actually charges. Compute MRR from subscription state instead: the normalized recurring amount of each active subscription as of a fixed snapshot date, usually the last day of the month. Then the upgrade appears in full in the month it happened, and the proration stays in the invoice detail where it is auditable.

Failed payments and dunning. A card declines on the 3rd. Retries run for fourteen days. Is that subscription still MRR? Both answers are legitimate, but only one can be yours. The workable convention: a subscription stays in MRR until it is canceled or lapses past your dunning window, and past-due subscriptions get reported as a separate at-risk figure alongside MRR. That way involuntary churn stays visible instead of being silently absorbed into revenue churn a month late.

What is not recurring. Implementation fees, professional services, hardware, overage above committed usage, and anything invoiced once are not MRR. Usage-based revenue deserves its own treatment: the committed floor can sit in MRR, the variable portion is better tracked as a separate revenue line with its own volatility. Reporting variable usage as recurring makes retention look better than the contract supports.

Two smaller decisions cause disproportionate confusion. Multi-currency subscriptions need a stated FX policy, either the plan rate fixed at signing or the spot rate on the snapshot date. Pick one and apply it to history, because switching mid-series creates movement that no customer caused. And taxes never belong in MRR.

ARR splits along business model. If you bill monthly, ARR is MRR x 12 and nothing more. If you sell annual and multi-year contracts, deriving ARR from a monthly snapshot understates commitment, and contracted ARR from the terms of active agreements is the better construction. What you cannot do is use both methods for different segments and add the results together, then explain the aggregate to a board.

Churn: the loosest of all the software as a service metrics

Ask five operators to define churn and you will get five answers, all correct within their own frame.

Logo churn versus revenue churn. Logo churn counts customers. Revenue churn counts dollars. A company can lose ten small accounts and gain nothing, and its revenue churn barely moves while logo churn looks alarming. Report both, always, and never let one stand in for the other.

The denominator. Customers at the start of the period is the standard. Some teams use the average of start and end, which dampens the number during fast growth. Some use start plus new, which is the most flattering construction available and should be avoided for exactly that reason: new customers have not had time to churn, so adding them to the denominator dilutes the rate without changing reality.

Annual contracts break monthly churn. A customer on a twelve-month term cannot cancel in month four. Computing monthly churn across an annual-contract base produces a number that mostly measures how your renewal dates are distributed. The correct construction is available-to-renew: for each period, take the MRR that actually came up for renewal, and measure what share of it renewed. That is the only churn figure that means anything in an annual-term business.

Voluntary versus involuntary. A customer who decides to leave and a customer whose card expired are different failures with different fixes. Split them. Involuntary churn is a payments and dunning problem, often solvable with retry logic and card updater services. Voluntary churn is a product and value problem. Averaging them together guarantees you work on the wrong one.

Monthly to annual conversion. Monthly churn does not multiply by twelve. Annualized churn is 1 minus (1 minus monthly churn) raised to the twelfth power. At 2% monthly that is roughly 21.5% annually, not 24%. The gap widens as churn rises, and the multiplication shortcut consistently overstates the damage.

Finally, decide the churn date convention before you need it. Cancellation requested on the 5th, service ends at period end on the 30th: churn lands in the month service ended, not the month intent was expressed, because that is the month the recurring revenue stopped. Document it once, apply it everywhere.

Gross and net retention, and why they move in opposite directions

Gross revenue retention measures what you keep. Net revenue retention measures what you keep plus what you grow inside the existing base. Both are calculated on a cohort of customers who existed at the start of the measurement period, and neither includes new logos.

Worked example on a $500,000 starting MRR cohort:

ComponentAmountEffect
Starting MRR (existing customers)$500,000Base
Churned MRR$30,000-6.0 points
Contraction MRR$15,000-3.0 points
Expansion MRR$70,000+14.0 points
Gross revenue retention$455,000 / $500,00091.0%
Net revenue retention$525,000 / $500,000105.0%

The important reading is not the pair of numbers, it is the direction of the gap. Net revenue retention above 100% with gross retention drifting downward means a small number of expanding accounts are masking a widening leak in the rest of the base. That pattern can persist for several quarters and then break suddenly when one large expanding account plateaus. Dollar-weighted metrics hide concentration by design, so pair every retention figure with the same figure computed on your customers excluding the top decile by revenue. If the two diverge sharply, your net revenue retention is a story about a few accounts, not about the product.

Choose a measurement window and hold it. Trailing twelve months on a rolling basis is the most common and is the least sensitive to seasonality. Cohort-based retention, where you follow the January signups specifically, answers a different and often more useful question about whether newer customers behave better than older ones. Both are valid. Reporting one and labeling it the other is not.

CAC, payback, and the efficiency metrics that depend on definitions

Customer acquisition cost is fully loaded sales and marketing spend divided by new customers acquired. Fully loaded means salaries, commissions, tooling, agency fees and program spend, not just media budget. The choices that move it:

Lag. If your sales cycle is ninety days, this quarter's customers were bought with last quarter's spend. Matching the same period's spend to the same period's customers is fine for a short, self-serve motion and misleading for enterprise sales. Offset the spend period by roughly your median cycle length and state the offset in the metric definition.

Blended versus paid. Blended CAC includes organic and word-of-mouth customers in the denominator, which makes paid channels look more efficient than they are. Paid CAC divides paid spend by customers attributable to paid. Both are useful. Reporting blended CAC while making paid channel decisions is how budgets get misallocated, a failure mode we cover in detail in the guide to marketing dashboards.

Customer success. Renewal and expansion costs are not acquisition costs. If your CS team drives expansion, that spend belongs in an expansion efficiency figure, not in CAC.

CAC payback in months is CAC divided by the gross-margin-adjusted new MRR per customer. Omitting gross margin is the single most common error and shortens apparent payback by whatever your cost of revenue happens to be. A company with 75% gross margin and a twelve-month raw payback actually recovers cost in sixteen months.

Lifetime value deserves a warning. The standard formula, gross-margin MRR divided by churn rate, is hyperbolic: as churn approaches zero, LTV approaches infinity. At low churn the number becomes numerically unstable and practically meaningless, and the LTV to CAC ratio built on it inherits that instability. Cap the horizon at something you can actually observe, thirty-six months is a common choice, and present it as a bounded estimate rather than a fact.

Two composite figures are worth tracking because they are hard to game. The quick ratio, new plus expansion divided by churn plus contraction, summarizes whether growth is outrunning decay. Burn multiple, net cash burn divided by net new ARR, ties growth directly to the cash it consumed. Neither requires a benchmark to be useful, because the meaningful comparison is against your own prior four quarters.

How to compute software as a service metrics from your own billing data

Here is the practical construction, assuming a billing system such as Stripe and a CRM holding contract terms.

Step one: build a monthly subscription snapshot. For the last day of each month, list every active subscription with its customer ID, plan, quantity, unit amount, billing interval, discount, currency and status. Normalize to a monthly amount: annual interval divided by twelve, quarterly divided by three. This snapshot is the only artifact you need, and it is the thing most companies never create, which is why their history cannot be restated.

Step two: derive movements by comparing consecutive snapshots. A customer present this month and absent last month is new, unless they appear in an earlier snapshot, in which case they are reactivation. Absent this month and present last month is churn. Present in both with a higher amount is expansion, lower is contraction. Every dollar of month-over-month change falls into exactly one bucket, which is what makes the waterfall reconcile.

Step three: run the reconciliation test. Ending MRR from the waterfall must equal the sum of normalized amounts in this month's snapshot. Any variance means a subscription changed in a way your bucketing did not anticipate, usually a currency change, a plan migration, or a mid-cycle cancel and resubscribe that should be treated as a single continuous relationship.

Step four: attach the contract layer. Billing systems know what was charged. They rarely know contract end dates, renewal notice periods, or committed minimums on custom deals. Those live in the CRM or in signed documents, and they are what make available-to-renew churn computable. This is one of the places where the CRM database both matters and disappoints, since renewal fields are only as good as the last person who updated them.

Step five: write the definitions down. One page. Snapshot date, dunning rule, FX policy, treatment of usage revenue, churn date convention, retention denominator, CAC lag. Version it with a date. When a number changes because a definition changed, everyone should be able to see that in the same place.

Spreadsheets handle this well up to a few thousand subscriptions and then start to hurt, mostly because monthly snapshots become dozens of tabs nobody can audit. The tradeoffs are laid out in our piece on alternatives to Excel for data analysis and reporting, and the broader tooling landscape in the buyer guide to analytical tools for data analysis. The related discipline of tying these operating figures back to the general ledger is covered in financial data analysis.

Tracking without building a warehouse, and where Skopx fits

Most companies below roughly a thousand subscriptions do not need a data warehouse to know their numbers. What they need is a stable snapshot, written definitions, and a way to ask questions of the underlying records without waiting three days for an analyst.

That last part is where Skopx is useful. Skopx is an AI workspace that connects to nearly 1,000 tools a company already uses, including Stripe, HubSpot, QuickBooks, Gmail, Slack and Google Analytics. You can ask which accounts contracted last month and get an answer with citations to the specific subscription and invoice records behind it, so you can check the work rather than trust it. The morning brief can flag movements worth looking at, a churn cluster in one segment, a large downgrade, a spike in failed payments, before they show up in a monthly review. And workflows, which you build by describing them in chat rather than wiring nodes, can run the same reconciliation check every month and post the result where the team already talks.

Monthly MRR movement check

Month end trigger

Runs on the last day of each month

Pull subscription state

Active subscriptions with plan, quantity, amount, currency, status

Classify movements

New, expansion, reactivation, contraction, churn versus prior snapshot

Reconcile waterfall

Ending MRR must equal the sum of normalized active amounts

Flag variances

List subscriptions that did not fall cleanly into one bucket

Post summary

Waterfall, retention figures and open variances to the finance channel

Snapshot billing state, classify movements, reconcile the waterfall, and post variances for review.

Now the honest limits, because they matter more than the capabilities.

Skopx is not a metrics warehouse. It does not store a modeled history of your MRR, it reads what your connected systems currently hold. If a subscription was edited retroactively, Skopx will report the current state, not the state as of last quarter's board meeting. Preserving point-in-time history is a warehouse job, and if you need restatement-proof series going back years, build the snapshot table and store it somewhere durable.

Skopx is not a BI tool and does not build dashboards, it is not an ETL pipeline, and it is not a CRM. It will not enforce a semantic layer or stop two teams from using different churn definitions. That is a governance decision, and no software makes it for you. What Skopx does is remove the delay between having a question about your revenue and seeing the records that answer it, and it will show you the citation so a disagreement can be settled by looking at the same invoice rather than at two different spreadsheets.

Skopx runs on your own AI key, any major model, with zero markup on usage, and plans are Solo at $5 per month and Team at $16 per seat per month. Details are on the pricing page. For teams considering how several automated processes coordinate across finance, sales and support systems, multi agent systems explained covers the coordination model in plain terms.

Frequently asked questions

What is the difference between MRR and ARR?

MRR is the normalized monthly recurring amount across active subscriptions. ARR is the annualized view. For monthly-billing businesses ARR is simply MRR x 12. For annual-contract businesses, contracted ARR taken from the terms of active agreements is more faithful, because a monthly snapshot cannot see a multi-year commitment. The failure mode is using both constructions in the same reported total. Pick one per business line, label it, and reconcile the two if you sell both ways.

Should annual prepayments count as MRR in the month the cash arrives?

No. MRR is a normalization of recurring commitment, not a record of cash. A $24,000 annual prepayment contributes $2,000 of MRR per month for twelve months. Putting the full amount in one month creates a spike followed by apparent decline that no customer behavior caused. Track the cash separately in your cash forecast, where prepayment timing genuinely matters.

Can net revenue retention be above 100% while the business is in trouble?

Yes, and it is one of the more common blind spots in saas kpis. Net revenue retention is dollar-weighted, so a handful of rapidly expanding accounts can offset broad churn across the rest of the base. Always publish gross revenue retention next to it, and compute both again with your top decile of customers excluded. If the two versions diverge, your headline number describes a few accounts rather than your product.

How do I convert monthly churn into an annual figure?

Use 1 minus (1 minus monthly churn) to the twelfth power, not monthly churn multiplied by twelve. At 2% monthly the correct annualized figure is about 21.5%. Multiplying overstates the loss because it ignores that the base shrinks each month. If you sell annual contracts, skip the conversion entirely and measure available-to-renew retention on the cohort that actually came up for renewal.

What is a good net revenue retention number?

We are deliberately not answering that with a figure, because published benchmarks blend companies with different contract lengths, segments and counting rules, and comparing against them mostly measures definitional difference. Build an internal baseline instead: compute the metric consistently for the last eight quarters, look at your own trend and variance, and set targets relative to that. The mrr and churn metrics you control are more actionable than any external median.

Do I need a data warehouse to track these metrics properly?

Not at the start. A monthly subscription snapshot, a written definitions page and a reconciliation test cover most companies for a long time. You need a warehouse when you must preserve point-in-time history that source systems overwrite, when several teams model the same entities and need one governed definition, or when volume makes spreadsheet snapshots unauditable. Reaching for one before those conditions arrive usually adds a maintenance burden without improving a single number. The same threshold logic applies to adjacent reporting domains, including the systems evaluated in our guide to ESG reporting software.

Share this article

Skopx Team

The Skopx engineering and product team

Related Articles

Stay Updated

Get the latest insights on AI-powered code intelligence delivered to your inbox.