Audit activation
Onboarding, the moment of value and the friction in between.

An activation audit answers two questions: what do the accounts that stay do early on, and what stops everyone else from getting there. A signup costs you money until that first moment of value, so this is often the stage where a small product fix is worth more than a new channel.
Say a B2B SaaS at 2M ARR sells quoting software to companies of 50 to 500 people, with a self-serve trial and a sales team behind it. All numbers below are invented for the method.
Define activation from retention data
Most teams pick their activation event by intuition. Test it. List the five or six early actions that could plausibly matter, then compare later retention between accounts that did the action in their first week and those that did not.
For the quoting tool, the candidates might be creating a template, importing a catalog, inviting a teammate and sending a first quote to a real client. Run this once per candidate. It takes signups old enough for the 8 to 12 week window to be complete, and counts an account as retained if it is still sending quotes in that window.
WITH first_week AS (
SELECT
a.account_id,
a.signup_at,
coalesce(bool_or(e.event_name = 'quote_sent'), false) AS did_action
FROM accounts a
LEFT JOIN events e
ON e.account_id = a.account_id
AND e.occurred_at < a.signup_at + interval '7 days'
WHERE a.signup_at BETWEEN now() - interval '9 months'
AND now() - interval '3 months'
GROUP BY a.account_id, a.signup_at
),
retained AS (
SELECT DISTINCT f.account_id
FROM first_week f
JOIN events e ON e.account_id = f.account_id
WHERE e.event_name = 'quote_sent'
AND e.occurred_at >= f.signup_at + interval '56 days'
AND e.occurred_at < f.signup_at + interval '84 days'
)
SELECT
f.did_action,
count(*) AS accounts,
round(100.0 * count(r.account_id) / count(*), 1) AS retained_pct
FROM first_week f
LEFT JOIN retained r USING (account_id)
GROUP BY f.did_action;
Then compare the candidates side by side.
| Action in week 1 | Share of accounts doing it | Retained if done | Retained if not |
|---|---|---|---|
| Created a template | 55% | 34% | 20% |
| Imported a catalog | 18% | 48% | 24% |
| Invited a teammate | 22% | 52% | 22% |
| Sent a quote to a client | 40% | 58% | 9% |
A good activation event separates the two groups clearly and is reached by enough accounts to act on. Here, sending a quote wins. The catalog import looks attractive but concerns too few accounts. This is correlation, so motivated accounts may simply do everything. Confirm with an experiment that pushes more accounts toward the action and see whether their retention follows.
Decide also at which level you count. In B2B, one person often signs up to evaluate for a team, so activation usually belongs to the account. Keep the user-level view for the onboarding steps themselves.
Walk the path as a new customer
Sign up from scratch with a fresh address, on the device your customers use, and write down every screen, field, email and wait. Then watch session recordings of 20 accounts that did not activate, and call a few of them. Report what you saw in a friction log.
| Step | What is asked | Needed before value? | Drop at this step | Action |
|---|---|---|---|---|
| Signup form | Nine fields, phone required | No | 22% | Three fields, the rest later |
| Email confirmation | Blocks access until clicked | No | 14% | Let them in, confirm later |
| Company setup | Legal details, logo, VAT | Partly | 18% | Prefill, ask only what a quote requires |
| Empty dashboard | No guidance | No | 25% | Open on a sample quote |
| Add a client | Manual form | Yes | 9% | Offer an import or a test client |
The “needed before value” column does most of the work. Friction is justified when it improves the outcome, like asking for the information without which the first quote cannot exist. Everything else moves to after the moment of value.
Measure time to value and where it stalls
Count how long accounts take to reach the event, and read the median and the slow tail separately. A long median points at a heavy setup. A long tail often means accounts waiting on someone else: IT, a colleague, a contract.
SELECT
company_size_band,
count(*) AS activated_accounts,
percentile_cont(0.5) WITHIN GROUP (
ORDER BY extract(epoch FROM activated_at - signup_at) / 3600
) AS median_hours,
percentile_cont(0.9) WITHIN GROUP (
ORDER BY extract(epoch FROM activated_at - signup_at) / 3600
) AS p90_hours
FROM accounts
WHERE activated_at IS NOT NULL
GROUP BY company_size_band;
Then split activation by acquisition source, persona and plan. A channel that sends many signups who never activate usually has a promise problem, and the fix belongs in the ad or the landing page. The funnel chapter has the method for comparing those segments, and the B2B SaaS chapter covers what shifts between product-led and sales-led motions.
Audit each onboarding element
Go through what the product and the team actually send to a new account.
| Element | Question to ask | What good looks like |
|---|---|---|
| First screen | Does it point to one action? | One clear next step toward the event |
| Empty states | Do they teach or just sit empty? | Sample data, a shortcut, a short video |
| Checklist | Does it lead to value or to setup? | Few steps, ending on the activation event |
| Emails | Are they triggered by behavior? | Sent according to what the account did or did not do |
| Invitations | Is inviting offered when it is useful? | Prompted when the first quote needs approval |
| Human help | Do the right accounts get it? | Sales or CS step in for accounts that fit the target and stall |
Look at sales-assisted accounts separately. If a demo happens before the account ever touches the product, activation can lag far behind the signature, and that lag tends to show up later as churn. Handing over to onboarding with a dated first goal is usually the fix.
What to deliver
The chosen activation event with its evidence, the step-by-step funnel, the friction log and a short list of experiments, each written with a target. For instance: “Open new accounts on a prefilled sample quote, expecting a rise in the share sending a real quote within seven days”. Pair every activation finding with what the retention chapter tells you about those same accounts, so you do not optimize for an event that fails to predict anything.
Your next step: pick your candidate actions today, run the comparison on accounts from three to nine months ago, and go through your own signup from a new email address before you read the results.