Customer success metrics measure whether customers keep paying, grow and get value from your product after they sign. In SaaS, the core set is revenue retention (gross and net), logo churn, expansion and renewal rate, backed by the signals that predict them: customer health score, product adoption, time to value, sentiment (NPS and CSAT) and support load.
Most lists of customer success metrics stop at a definition. This one gives each metric a formula, what it tells you, a benchmark where a public source exists, and the system the data comes from. Then it works through one quarter of a fictional 200-account SaaS business with every number computed, so you can check your own calculations against it.
| # | Metric | Formula (short) | Data comes from |
|---|---|---|---|
| 1 | Gross revenue retention (GRR) | (Starting MRR - churn - contraction) ÷ starting MRR | Billing |
| 2 | Net revenue retention (NRR) | (Starting MRR - churn - contraction + expansion) ÷ starting MRR | Billing |
| 3 | Logo churn rate | Accounts lost ÷ accounts at start | Billing |
| 4 | Expansion rate | Expansion MRR ÷ starting MRR | Billing |
| 5 | Renewal rate | Contracts renewed ÷ contracts up for renewal | CRM, billing |
| 6 | Customer health score | Weighted score from usage, support, sentiment and billing signals | All of the below |
| 7 | Product adoption | Active accounts ÷ paying accounts | Product usage |
| 8 | Time to value (TTV) | Days from start to first value milestone | CRM, product usage |
| 9 | Net Promoter Score (NPS) | % promoters - % detractors | Surveys |
| 10 | Customer satisfaction (CSAT) | Ratings of 4 or 5 ÷ all ratings | Support, surveys |
| 11 | Support load | Tickets ÷ accounts, plus first response time | Support |
| 12 | Customer lifetime value (LTV) | ARPA × gross margin ÷ monthly revenue churn rate | Billing, finance |
Lagging and leading metrics
The first five metrics are lagging: they tell you what already happened to revenue. By the time a customer shows up in churn, the decision was made weeks or months earlier. Metrics 6 to 11 are leading: they move before revenue does, which is what makes them useful to a customer success team. A falling health score, an account where nobody has logged in for three weeks or a run of angry tickets is something you can still act on.
A good customer success scorecard has both. The lagging metrics keep you honest about outcomes. The leading metrics tell you where to spend this week.
Where customer success data lives
Most teams struggle less with formulas than with data that is spread across five tools. Before picking metrics, check which system holds each input and whether you can join them on one account ID.
| Source | Typical tools | What it holds | Feeds |
|---|---|---|---|
| Billing | Stripe, Chargebee, Recurly | Subscriptions, plan changes, cancellations, MRR | GRR, NRR, logo churn, expansion, LTV |
| CRM | HubSpot, Salesforce | Account owner, segment, contract dates, renewal opportunities | Renewal rate, TTV start date, segmentation |
| Support | Zendesk, Intercom, Freshdesk | Tickets, response times, satisfaction ratings | Support load, CSAT |
| Product usage | Mixpanel, Segment, Pendo, your app database | Logins, events, feature use per account | Adoption, TTV, health score |
| Surveys | NPS and in-app survey tools | Scores and comments | NPS |
Revenue metrics should come from billing, not the CRM. The CRM records what sales closed, and downgrades and cancellations often never make it back there. Usage data needs mapping from users to accounts, which is usually the hardest join in the whole setup.
Revenue retention metrics
1. Gross revenue retention (GRR)
GRR = (starting MRR - churned MRR - contraction MRR) ÷ starting MRR
GRR is the share of recurring revenue you kept from the customers you had at the start of the period, ignoring any growth from them. It cannot go above 100%. It answers the most basic customer success question: how much of the base are we losing?
Benchmark. SaaS Capital's 2025 retention survey of more than 1,000 private B2B SaaS companies put median annual GRR at 91%. Companies with an annual contract value above $250,000 had a median of 95%. Their figure is annual (December MRR from last December's customers), so compare it with a 12-month GRR, not a quarterly one.
Data: billing. Starting and ending MRR per account, with new accounts left out.
2. Net revenue retention (NRR)
NRR = (starting MRR - churned MRR - contraction MRR + expansion MRR) ÷ starting MRR
NRR adds expansion from the same customers back in, so it can go above 100%. Above 100% means the existing base grows on its own, before a single new customer is signed. NRR is also called net dollar retention (NDR). New customers never count, in GRR or NRR.
Benchmark. The same SaaS Capital survey put median annual NRR at 101% across private B2B SaaS companies. More on the calculation in how to calculate net revenue retention.
Data: billing.
Read GRR and NRR together. A company with 85% GRR and 110% NRR is losing a lot of customers and making up for it with big expansions from the rest, which is a very different business from one with 97% GRR and 101% NRR.
3. Logo churn rate
Logo churn rate = accounts that cancelled during the period ÷ accounts at the start of the period
Logo churn counts customers, not money. When logo churn is much higher than revenue churn, you are losing mostly small accounts. When it is lower, a few large accounts are carrying the revenue loss, and those deserve a closer look. Logo retention is 100% minus logo churn.
Data: billing. Count an account as churned when its MRR goes to zero, not when its first subscription ends.
4. Expansion rate
Expansion rate = expansion MRR ÷ starting MRR
Expansion MRR is the increase from existing customers who upgrade, add seats or buy add-ons. The expansion rate is the gap between GRR and NRR, seen from the other side. Track the share of accounts that expanded as well, because one large upsell can hide a quarter where nobody else grew. For the components of MRR, see how to calculate MRR.
Data: billing, with CRM opportunities if you want to credit expansion to an owner.
5. Renewal rate
Renewal rate = contracts renewed ÷ contracts up for renewal in the period
For annual and multi-year contracts, renewal is the moment churn actually happens. The renewal rate shows how the contracts that came due performed, which logo churn blurs together with monthly cancellations. Track it by count and by value.
Data: CRM renewal opportunities or contract end dates, checked against billing.
Account health and value metrics
6. Customer health score
A customer health score combines signals into one number per account, usually on a 0 to 100 scale or as red, amber and green bands:
Health score = Σ (weight × normalised signal)
Typical signals are product usage (active users against seats bought), support (open tickets, escalations), sentiment (NPS or CSAT), billing (failed payments, downgrades) and relationship (last meeting, champion still at the company). The weights should come from your own data: check which signals were different for the accounts that churned last year. A health score that does not separate the accounts that left from the ones that stayed needs new weights. The full method is in how to score the health of your customers.
Data: all of the sources above, joined per account.
7. Product adoption
Product adoption = accounts active in the period ÷ paying accounts
Define "active" with the action that delivers value in your product, not a login. For a reporting tool, it might be "at least one report viewed in the last 7 days". Seat utilisation (active users ÷ seats paid for) is a useful second view, because a customer paying for 50 seats with 12 users is a contraction risk at renewal.
Data: product analytics or your application database, mapped to accounts.
8. Time to value (TTV)
TTV = days from contract start (or signup) to the first value milestone
The milestone is specific to your product: first data synced, first invoice sent, first dashboard shared with the team. Report the median per cohort of new accounts and the share that reached the milestone within 30 days. Long or stalled onboarding is one of the clearest early signs of churn in the first year.
Data: contract start from CRM or billing, milestone from product usage.
9. Net Promoter Score (NPS)
NPS = % promoters (score 9 or 10) - % detractors (score 0 to 6)
NPS asks how likely a customer is to recommend you, on a 0 to 10 scale, and ranges from -100 to +100. It is a relationship metric, best collected on a schedule (for example twice a year) rather than after a support conversation. Scores differ a lot between industries and survey methods, so compare yourself with your own trend and read the comments from detractors. No public SaaS benchmark is consistent enough to recommend here.
Data: your survey tool, joined to accounts.
10. Customer satisfaction (CSAT)
CSAT = ratings of 4 or 5 ÷ all ratings, on a 1 to 5 scale
CSAT measures satisfaction with one interaction, usually a support conversation or an onboarding session. It is good at spotting a weak team, process or topic and poor at predicting churn on its own, because the customers most likely to leave are often the ones who stopped writing in.
Data: your support tool or a post-interaction survey.
11. Support load
Tickets per account = tickets in the period ÷ average number of accounts
Track it with first response time and time to resolution. A rising ticket count per account means the product, the documentation or onboarding is creating work. A healthy-looking account that suddenly opens many tickets is a risk, and so is a large account that has gone completely quiet. Split support load by health band and by plan to see where the effort goes.
Data: support tool.
12. Customer lifetime value (LTV)
LTV = ARPA × gross margin ÷ monthly gross revenue churn rate
LTV estimates the gross profit a typical account brings in before it leaves, where ARPA is average MRR per account. It is sensitive to the churn rate (halve churn and LTV doubles), so treat it as a direction rather than a precise number, and compare it with customer acquisition cost for the same segment. See how to calculate customer acquisition cost for the other half.
Data: billing for ARPA and churn, finance for gross margin.
Worked example: one quarter of a 200-account SaaS book
A B2B SaaS company has 200 paying accounts on 1 July 2026, with €400,000 of MRR between them (an average of €2,000 per account per month). Here is what happened in the third quarter:
| Movement in Q3 | Accounts | MRR change |
|---|---|---|
| Starting book, 1 July | 200 | €400,000 |
| Churned (MRR went to zero) | 7 | -€7,200 |
| Contracted (downgrade or seats) | 14 | -€4,800 |
| Expanded (upgrade, seats, add-on) | 31 | +€16,000 |
| Unchanged | 148 | €0 |
| New accounts signed | 11 | +€19,800 |
| Ending book, 30 September | 204 | €423,800 |
The rows add up: 7 + 14 + 31 + 148 = 200 starting accounts, 200 - 7 + 11 = 204 ending accounts, and €400,000 - €7,200 - €4,800 + €16,000 + €19,800 = €423,800.
The retention metrics use only the 200 starting accounts:
| Metric | Calculation | Q3 result |
|---|---|---|
| Gross revenue retention | (€400,000 - €7,200 - €4,800) ÷ €400,000 = €388,000 ÷ €400,000 | 97.0% |
| Net revenue retention | (€388,000 + €16,000) ÷ €400,000 = €404,000 ÷ €400,000 | 101.0% |
| Gross revenue churn | (€7,200 + €4,800) ÷ €400,000 | 3.0% |
| Logo churn | 7 ÷ 200 | 3.5% |
| Expansion rate | €16,000 ÷ €400,000 (31 of 200 accounts expanded) | 4.0% |
Three things stand out:
- Logo churn (3.5%) is higher than revenue churn from cancellations (€7,200 is 1.8% of MRR). The 7 accounts that left paid about €1,030 a month on average, half the book average. Small accounts are churning.
- The €19,800 from 11 new accounts is not in NRR. Including it would give 106%, which says more about sales than about customer success.
- Annual comparison. If every quarter looked like this one, the year would end at roughly 0.97⁴ ≈ 88.5% GRR and 1.01⁴ ≈ 104% NRR. That is below SaaS Capital's 91% median for GRR and above its 101% median for NRR: expansion is covering a churn problem in the small accounts.
The leading metrics for the same quarter:
| Metric | Inputs | Q3 result |
|---|---|---|
| Renewal rate | 44 of 48 annual contracts due in Q3 renewed | 91.7% |
| Product adoption | 172 of 204 accounts active in the last week of September | 84% |
| Time to value | Median days to first value milestone, 11 new accounts | 19 days (9 of 11 within 30 days) |
| NPS | 140 responses: 70 promoters, 45 passives, 25 detractors | 50.0% - 17.9% = 32 |
| CSAT | 468 of 520 rated support conversations scored 4 or 5 | 90.0% |
| Support load | 612 tickets ÷ 202 average accounts | 3.0 per account |
| LTV | €2,000 ARPA × 80% gross margin ÷ 1.0% monthly revenue churn | €160,000 |
The 4 contracts that did not renew are 4 of the 7 churned accounts. The other 3 were monthly plans that cancelled. The 1.0% monthly revenue churn in the LTV line is the quarter's 3.0% gross revenue churn divided by 3, and the 80% gross margin is an assumption for the example.
The health score is the check on whether the leading metrics work. On 1 July, the accounts were in three bands. Here is how many in each band churned during the quarter:
| Health band on 1 July | Accounts | Churned in Q3 | Churn rate |
|---|---|---|---|
| Healthy | 150 | 1 | 0.7% |
| At risk | 34 | 2 | 5.9% |
| Critical | 16 | 4 | 25.0% |
| Total | 200 | 7 | 3.5% |
A score where critical accounts churn at more than 30 times the rate of healthy ones is doing its job. If the three rates were close together, the weights would need another look.
Calculating retention in SQL
With a customer_mrr table that has one row per paying account per month (customer_id, month, mrr, where month holds the account's MRR at the end of that month), this query returns the retention metrics above for Q3. It runs on BigQuery, Snowflake, Postgres, Redshift and DuckDB:
1with
2 start_q as (
3 select
4 customer_id
5 , mrr
6 from
7 customer_mrr
8 where
9 month = date '2026-06-01'
10 )
11 , end_q as (
12 select
13 customer_id
14 , mrr
15 from
16 customer_mrr
17 where
18 month = date '2026-09-01'
19 )
20 , cohort as (
21 select
22 s.customer_id
23 , s.mrr as start_mrr
24 , coalesce(e.mrr, 0) as end_mrr
25 from
26 start_q s
27 left join end_q e on e.customer_id = s.customer_id
28 )
29select
30 count(*) as starting_accounts
31 , sum(
32 case
33 when end_mrr = 0 then 1
34 else 0
35 end
36 ) as churned_accounts
37 , sum(start_mrr) as starting_mrr
38 , round(
39 100.0 * sum(least(end_mrr, start_mrr)) / sum(start_mrr)
40 , 1
41 ) as grr_pct
42 , round(100.0 * sum(end_mrr) / sum(start_mrr), 1) as nrr_pct
43 , round(
44 100.0 * sum(
45 case
46 when end_mrr = 0 then 1
47 else 0
48 end
49 ) / count(*)
50 , 1
51 ) as logo_churn_pct
52from
53 cohortThe left join from the starting accounts is what keeps new customers out. least(end_mrr, start_mrr) caps every account at its starting MRR, which removes expansion for GRR. On data matching the example, the query returns 200, 7, 400,000, 97.0, 101.0 and 3.5. To build customer_mrr from billing data, see how to calculate MRR with Stripe using SQL.
Common mistakes with customer success metrics
- Counting new customers in NRR. NRR measures the starting cohort only. Adding new business makes it a growth metric.
- Comparing a quarterly number with an annual benchmark. 97% quarterly GRR and 91% annual GRR are not the same performance.
- Taking revenue metrics from the CRM. Cancellations and downgrades are recorded in billing. A CRM that is not kept up to date makes retention look better than it is.
- Defining "active" as a login. Pick the action that delivers value, or adoption will look high right up to the renewal.
- A health score nobody has tested. Check every quarter whether low-scoring accounts actually churned more.
- Reporting averages only. Split every metric by segment, plan and owner. A 101% NRR can be 115% in enterprise and 88% in small business.
- Too many metrics. Pick the five or six that drive decisions this quarter and review them on a fixed schedule.
Tracking customer success metrics with Weld
These metrics need data from billing, CRM, support and product usage in one place. Weld syncs those sources into your data warehouse: Stripe, Chargebee and Recurly for billing, HubSpot and Salesforce for CRM, Zendesk, Intercom and Freshdesk for support, and Mixpanel, Segment and Pendo for product usage. You write the retention and health score models in SQL in Weld, and reverse ETL sends the results back to HubSpot, Salesforce or Vitally, so customer success managers see the health score on the account record they already work from.
Sign up to Weld
FAQ
Customer success metrics measure whether customers keep paying, grow and get value from a product after they buy it. The core SaaS metrics are gross and net revenue retention, logo churn, expansion and renewal rate. Leading indicators such as health score, product adoption, time to value, NPS, CSAT and support load help predict them.
Gross revenue retention and net revenue retention matter most, because they show how much of the existing revenue base you keep and whether it grows. Logo churn shows whether you lose many small customers or a few large ones. A tested customer health score is the most useful leading metric for deciding which accounts to work on.
Pick a small set of metrics covering outcomes (GRR, NRR, logo churn) and leading signals (health score, adoption, time to value), define each one precisely, and calculate them from the source systems: billing for revenue, product data for usage, support tools for tickets. Review them on a fixed schedule, split by segment, and check whether the leading metrics actually predicted churn.
SaaS Capital's 2025 survey of more than 1,000 private B2B SaaS companies put median annual net revenue retention at 101% and median gross revenue retention at 91%. Companies with contracts above $250,000 a year had a median GRR of 95%. Benchmarks for NPS, CSAT and time to value depend too much on industry and method to be useful, so compare those with your own trend.
Both start from the recurring revenue of the customers you had at the start of the period. GRR subtracts churn and contraction and stops there, so it can never exceed 100%. NRR also adds expansion from the same customers, so it can be above 100%. In the worked example, the same €400,000 gives 97.0% GRR and 101.0% NRR.
Divide the number of customers who cancelled during the period by the number of customers at the start of the period. If you start a quarter with 200 accounts and 7 cancel, logo churn is 7 ÷ 200 = 3.5%. Count an account as churned when its recurring revenue goes to zero, so a customer switching between plans is not counted as lost.



