Blog · Board and management reporting · Software
SaaS user analytics connects supplied usage summaries with account renewals and revenue. Define active users, build a consistent renewal cohort and reproduce adoption and renewal comparisons in a spreadsheet.
SaaS user analytics compares defined user activity with adoption, renewals and account revenue. Start with usage summaries your business already has, then connect them to a consistently defined account cohort. The useful question is whether accounts with different activity levels also had different recorded outcomes, and which accounts need a closer review.
Write a short measurement rule that customer success, product operations and finance can all read. State the qualifying action, observation period, eligible population and account boundary. A login might qualify for one product; another business may require completion of a task customers bought the product to perform.
Do not confuse product activity with subscription status. Stripe's billing documentation shows that even an active subscriber definition can depend on when the subscription begins or its first payment arrives. Neither rule establishes that a human used the product.
For this example, an active user is a distinct paid-seat user who completed the company's qualifying task during August 2026. Internal support users and automated accounts are excluded. Eligible seats are the account's paid seats at the agreed August cutoff. This is an explicit company definition, not a universal benchmark.
Bring together an account-level usage export, paid-seat summary and renewal register using a stable account ID. Resolve parent accounts, subsidiaries and contract IDs before joining. One account with several invoices should still contribute only one account-level renewal outcome here.
Take usage from the last full month before the renewal period. The illustrative US SaaS company below uses August usage for accounts due to renew during September 2026. All renewal decisions are resolved at the reporting cutoff. New customers and accounts with later renewal dates are excluded from this cohort.
Use recurring revenue on a consistent annualized basis, excluding one-time services. Opening ARR belongs to the accounts due for renewal; closing ARR records their recurring revenue after the decision. The dedicated renewal-rate calculation explains how to handle the due population in more detail.
These are illustrative account rows. In a spreadsheet, place the headings in row 1 and the accounts in rows 2 through 5. A renewed flag of 1 means renewed; 0 means not renewed. Closing ARR can still fall after a renewal if the customer reduces its subscription.
| Account, A | Eligible seats, B | Active users, C | Opening ARR (USD), D | Renewed flag, E | Closing ARR (USD), F |
|---|---|---|---|---|---|
| Atlas | 20 | 16 | 24,000 | 1 | 26,000 |
| Beacon | 10 | 8 | 12,000 | 1 | 12,000 |
| Cedar | 30 | 9 | 36,000 | 0 | 0 |
| Delta | 20 | 6 | 24,000 | 1 | 18,000 |
| Total | 80 | 39 | 96,000 | 3 | 56,000 |
Account adoption = Distinct active users / Eligible seats
Cohort renewal rate = Renewed accounts / Accounts due to renew
Put adoption in G2 and fill down:
=IF(OR(B2<=0,C2=""),"",C2/B2)
Format G as a percentage. Atlas and Beacon each have 80.0% adoption; Cedar and Delta each have 30.0%. Overall adoption is 39 / 80 = 48.8%, rounded to one decimal place. Calculate that total from the summed counts rather than averaging account percentages.
For this review, label adoption of at least 50% as Higher and adoption below that threshold as Lower. The threshold is a declared review choice, not evidence that it predicts renewal. Put the group in H2 and fill down:
=IF(G2="","Unknown",IF(G2>=50%,"Higher","Lower"))
A zero-seat account or blank active-user count stays Unknown instead of becoming a false zero-adoption customer. An explicit zero should mean confirmed inactivity. If an export omitted an account altogether, record that exception before building the joined table.
Set J2 to Higher and J3 to Lower. In K2, count the accounts belonging to the named group:
=COUNTIFS($H$2:$H$5,J2)
In L2, count renewed accounts in that group, then calculate renewal rate in M2:
=COUNTIFS($H$2:$H$5,J2,$E$2:$E$5,1)
=IF(K2>0,L2/K2,"")
Google's COUNTIFS documentation confirms that the function counts rows satisfying multiple criteria and requires matching range sizes. Fill the formulas down for Lower.
| Adoption group | Accounts due | Eligible seats | Active users | Adoption | Renewed accounts | Renewal rate | Opening ARR (USD) | Closing ARR (USD) |
|---|---|---|---|---|---|---|---|---|
| Higher | 2 | 30 | 24 | 80.0% | 2 | 100.0% | 36,000 | 38,000 |
| Lower | 2 | 50 | 15 | 30.0% | 1 | 50.0% | 60,000 | 18,000 |
| Total | 4 | 80 | 39 | 48.8% | 3 | 75.0% | 96,000 | 56,000 |
Sum opening ARR for the group with this formula, changing D to F for closing ARR:
=SUMIFS($D$2:$D$5,$H$2:$H$5,J2)
Google's SUMIFS reference documents this conditional-sum structure. The same approach sums eligible seats and active users before dividing to calculate group adoption.
The group account counts reconcile as 2 + 2 = 4, and renewed accounts reconcile as 2 + 1 = 3. Total renewal rate is therefore 3 / 4 = 75.0%. Opening ARR checks as 36,000 + 60,000 = $96,000, while closing ARR checks as 38,000 + 18,000 = $56,000.
Higher adoption accompanies stronger renewal outcomes in these rows. Customer success should review Cedar's nonrenewal and Delta's contraction, including their recorded reasons. The company should also check implementation stage and contract size before extending the pattern beyond this small illustration.
Keep account renewal separate from revenue movement. Atlas expanded and Delta contracted, so counting renewed logos cannot explain the revenue change. Use gross and net retention for that separate revenue calculation. Acquisition questions belong in SaaS marketing analytics.
Covirage is not affiliated with Google or Stripe.
Bring an account usage summary and matching renewal export in a file or Google Sheet. Covirage maps the columns, and its tools compute and check cohort totals; the external AI model explains the results with every figure traced to its rows. Create a free Covirage account, then set up your business and bring a sample of your own data.
See Covirage for SaaS sales for the supporting industry context.
Choose an activity that represents meaningful use of your product within a stated period. A completed business task may be more useful than a login. Document the rule, exclude internal and automated accounts, and keep the same definition when comparing customers or reporting periods.
Active user count is the number of distinct eligible users meeting your activity rule. Account adoption divides that count by eligible seats in the same account and period. The ratio makes different-sized customers more comparable, but it still depends on a consistent seat definition.
No. Usage can be associated with renewal while reflecting other differences, such as customer maturity, contract size, implementation quality or product fit. Compare consistent cohorts and investigate the accounts behind the pattern. A descriptive export comparison cannot establish the causal effect of increasing usage.
Use an account-level usage summary, a seat or entitlement summary, and a billing or CRM renewal register. Match stable account IDs, align the observation period before the renewal decision, and retain an explicit status for missing activity data and unresolved renewal outcomes.