SaaS9 min

The complete guide to SaaS metrics in 2026: MRR, ARR, LTV, CAC, NDR

A working reference for the SaaS metrics that actually matter in 2026 — formulas, healthy ranges, and how to compute them directly from a Stripe subscriptions table.

SaaS metrics are the language the business runs on, and most teams get at least one of them subtly wrong. A founder counts a one-time setup fee as MRR, an operator includes payment-processing fees in gross margin, an analyst divides by the wrong denominator in NDR. The numbers drift, the board deck drifts, and decisions get made on a picture that isn't quite true. This post is the working reference we hand to engineering and finance teams when they wire metrics into a dashboard for the first time — every definition, every formula, the healthy range we'd defend to an investor in 2026, and a runnable SQL snippet that computes MRR from a Stripe-shaped subscriptions table.

The metrics that actually matter

The SaaS metric zoo is larger than it needs to be. Eleven numbers cover almost everything a board, an investor, or an operator cares about. Learn these, compute them consistently, and the rest are derivations.

MetricWhat it measures2026 healthy range
MRRNormalized recurring revenue per monthGrowth 15–25% MoM early, 5–10% at scale
ARRMRR × 12, or sum of annual contract valuesSame growth shape as MRR
ARPU / ARPAAverage revenue per user or accountTrends up as you move upmarket
Gross marginRevenue minus cost to deliver service75%+ for pure SaaS, 55–70% for AI-heavy
CACFully-loaded cost to acquire a customerDepends on ACV; look at payback
CAC paybackMonths to recover CAC from gross profitUnder 12 strong, 12–18 median, >24 worrying
LTVGross profit from a customer over lifetimeLTV:CAC of 3:1 to 5:1
Gross dollar retention (GDR)Retention excluding expansion90%+ for mid-market, 95%+ for enterprise
Net dollar retention (NDR)Retention including expansionMedian 108% public co., 120%+ top tier
Quick ratio(New + expansion) / (churn + contraction)Above 4 is healthy growth
Magic numberNet new ARR / prior-period S&M spendAbove 1.0 means sales efficiency is working

MRR and ARR — the denominator for everything else

MRR is the normalized monthly recurring revenue across all active subscriptions on a given date. Annual plans divide by 12. Quarterly plans divide by 3. One-time fees, implementation charges, and usage overages that aren't part of the subscription contract do not count. ARR is either MRR × 12 or the sum of annualized contract values for annual-plan customers — pick one convention and stick to it.

The single most common MRR mistake: counting setup fees, one-time services, and non-recurring overages. MRR is recurring. If a charge won't repeat next month without customer action, it isn't MRR. Move it to a separate 'other revenue' line.

Computing MRR from a Stripe subscriptions table

Most teams running Stripe sync subscription and subscription_item rows into their warehouse. MRR on any given date is a sum over active subscriptions with their recurring amounts normalized to a month. A minimal Postgres query looks like this.

-- Active MRR on a given date, normalized to monthly
-- Assumes one price per subscription_item; extend for multi-item subs
WITH active_items AS (
  SELECT
    s.id                AS subscription_id,
    s.customer_id,
    si.price_id,
    si.quantity,
    p.unit_amount,      -- cents
    p.currency,
    p.recurring_interval,       -- 'month' | 'year' | 'week' | 'day'
    p.recurring_interval_count  -- usually 1
  FROM subscriptions s
  JOIN subscription_items si ON si.subscription_id = s.id
  JOIN prices p              ON p.id = si.price_id
  WHERE s.status IN ('active', 'trialing', 'past_due')
    AND s.current_period_end >= '2026-02-01'
    AND s.current_period_start <= '2026-02-01'
)
SELECT
  SUM(
    (unit_amount * quantity) / 100.0
    / CASE recurring_interval
        WHEN 'year'  THEN 12.0 * recurring_interval_count
        WHEN 'month' THEN 1.0  * recurring_interval_count
        WHEN 'week'  THEN (1.0 / 4.345) * recurring_interval_count
        WHEN 'day'   THEN (1.0 / 30.4)  * recurring_interval_count
      END
  ) AS mrr_usd
FROM active_items
WHERE currency = 'usd';

Two refinements almost every real-world implementation needs. First, handle discounts — a subscription with a 20% recurring coupon should have its MRR reduced by 20%, not its list price. Second, handle trials explicitly — include trialing subscriptions in a 'committed MRR' metric if your board reports it, exclude them from a 'paying MRR' metric if it doesn't.

CAC, payback, and LTV — the unit economics triangle

CAC is every dollar of sales and marketing spend in a period divided by the number of new customers acquired in that period. 'Every dollar' means salaries, tooling, paid media, agency fees, and the fully-loaded cost of your SDRs — not just the ad spend column from the paid traffic dashboard. Half the CAC arguments in the industry happen because two people are comparing a blended CAC to a paid-only CAC.

CAC payback is the more actionable number. It answers: how many months of gross profit from a new customer does it take to recover what we spent to acquire them? Formula: CAC divided by (ARPA times gross margin). If CAC is 2,400 dollars, ARPA is 200 per month, and gross margin is 80%, payback is 2,400 / (200 × 0.80) = 15 months. The 2026 public-SaaS median sits around 15 months; under 12 is strong, over 24 is usually a signal to either raise prices or cut acquisition spend.

LTV in its simplest form is ARPA × gross margin / monthly churn rate. This formula is fine for a stable mature business and misleading for an early-stage one. Early-stage churn is noisy, sample sizes are small, and a single churned whale can swing the ratio by 50%. Under a billion in revenue, most operators compute LTV cohort-by-cohort and report it as a range.

NDR, GDR, and why NDR is the metric investors care about most

Net dollar retention is the single most-cited SaaS metric in 2026 board decks, and for a reason: it captures how much revenue a cohort grows or shrinks without any new customers at all. The formula across a cohort from period T to T+12 months:

NDR = (starting ARR + expansion − contraction − churn) / starting ARR

Worked example for a cohort of customers with 1,000,000 starting ARR:
  expansion from upgrades:   +180,000
  contraction (downgrades):   −40,000
  churn (canceled fully):     −60,000
  NDR = (1,000,000 + 180,000 − 40,000 − 60,000) / 1,000,000
      = 1,080,000 / 1,000,000
      = 108%

Gross dollar retention is the same calculation without the expansion term — it tells you how much of existing ARR you keep before any upsell. GDR above 90% is table stakes for mid-market SaaS; enterprise SaaS typically targets 95% or higher. NDR above 100% means the installed base grows revenue on its own; above 120% means investors will value the company at a multiple premium. Median public SaaS NDR has compressed from a 2022 peak near 125% to around 108% in early 2026, so anything above 110% is genuinely strong right now.

NDR is measured over cohorts, not total ARR. If you divide current ARR by ARR twelve months ago, you're computing a growth rate, not retention — the number will be inflated by every new customer you signed in the interim.

Quick ratio and magic number — efficiency at a glance

The quick ratio is the growth-accounting shortcut everyone should know: (new MRR + expansion MRR) divided by (churned MRR + contraction MRR) over a period. A quick ratio of 4 means every dollar of lost revenue is replaced by four dollars of new or expanded revenue — strong growth. Below 1, the bucket is draining faster than it fills.

The magic number is the investor's thumbnail for sales efficiency: net new ARR in a quarter divided by sales and marketing spend in the previous quarter, annualized. A magic number above 1.0 generally justifies continued investment in the go-to-market engine; below 0.5 usually means something is broken in acquisition or retention and needs fixing before more dollars go into the machine.

Common mistakes we still see in 2026

  • Counting setup fees, one-time migration costs, or professional services as MRR. Recurring means recurring.
  • Treating annual-plan cash collected as MRR without dividing by 12. Cash isn't MRR — cash is cash.
  • Measuring churn on customer count when the dollar weight is what matters. A 2% logo-churn month with a lost whale can be a 15% dollar-churn month.
  • Computing NDR against total ARR instead of a cohort. The denominator is starting ARR for a specific cohort, not today's book.
  • Excluding SDR salaries from CAC because 'they aren't ad spend'. Fully-loaded means fully-loaded.
  • Using list-price ARPA when half your customers sit on discounts. Report effective ARPA, net of contracted discounts.

Wiring metrics into a dashboard

The cheapest durable setup in 2026 is: Stripe as the source of truth, nightly sync into a Postgres or a warehouse, a views layer that defines each metric exactly once, and a BI tool reading those views. Define each metric in one SQL view, reference that view everywhere, and when finance asks why two dashboards disagree, the answer is always 'they don't, because they read the same view.' That single-source-of-truth discipline is worth more than any metric definition you'll copy from a blog post, this one included.

Store a 'metric_definitions.md' file in the same repo as the SQL views, with the exact formula and any convention choices the team has made (what counts as MRR, how trials are handled, which currency rates to use). Every new hire reads it on day one.

Key takeaways

  • Eleven metrics — MRR, ARR, ARPU, gross margin, CAC, CAC payback, LTV, GDR, NDR, quick ratio, magic number — cover almost every real operating question.
  • MRR means recurring. Setup fees, one-time services, and non-contracted overages belong on a separate line.
  • CAC payback is the most actionable unit-economics number. Target under 12 months; investigate anything over 18.
  • NDR is the metric that most predicts 2026 SaaS valuations. Median public NDR is around 108%; 120%+ trades at a premium.
  • Define each metric in one SQL view. Every dashboard reads from the view. No more 'our dashboards disagree' meetings.
#saas-metrics#mrr#arr#ndr#cac#ltv#stripe
Working on something similar?

Let's build it together.

We ship production SaaS, marketplaces, and web apps. If you want an engineering partner — not a consultancy — let's talk.