Setup drop-off: where new users stall
How to build a simple step funnel from sign-up to first value, with a worked example that shows how to find the one step losing most new users.
Stiro team ·
Most new users who leave don’t leave at random. They leave at a step. Somewhere between signing up and getting their first real result, there is a screen where a lot of them stop, and it is usually the same screen week after week.
Finding that step is one of the most useful things a product or growth team can do, because it tells you where to spend effort. You don’t need a data team or a churn model for it. You need a list of steps, a count at each one and a bit of arithmetic. This post walks through building that funnel, with a worked example.
Start with the two ends
A setup funnel has a clear start and a clear finish.
- The start is sign-up. Everyone who created an account in a fixed period, such as one calendar month. Using one group of sign-ups (a cohort) keeps the numbers honest: you follow the same people through every step.
- The finish is first value. Your activation event: the first action that shows a user got what they came for. The first invoice sent, the first booking taken, the first report shared. If you haven’t picked one yet, pick the action that the users who stay almost all did early on.
Then set a window, such as 7 or 14 days from sign-up. A user who reaches first value on day 40 is a different story from one who gets there in the first session, and a fixed window keeps the funnel comparable from month to month.
List the steps in between
Write down every step a new user has to take to get from sign-up to first value, in the order most people take them. Keep it to the steps that are required. “Changed their avatar” isn’t a setup step; “connected their calendar” is, if nothing works without it.
Most teams end up with four to seven steps. If you have more, group the small ones. If you have fewer than three, check that you haven’t hidden a hard step inside a big one, such as “set up the account” covering both creating a workspace and importing data.
The SaaS onboarding flow template gives you the usual stages to fill in for your own product.
Count users at each step
For each step, count how many people from your cohort completed it within the window. Most product analytics tools can show this as a funnel; a spreadsheet and an export of events work too.
Two rules keep the counts useful:
- Count in order. A user counts at step 3 only if they also did steps 1 and 2. Otherwise a step can look healthier than it is.
- Use people, not events. Someone who imported data five times is one user who got through the import step, not five.
Then work out two numbers for each step:
- Step conversion: users who completed this step, divided by users who completed the step before, times 100.
- Users lost: users at the step before, minus users at this step.
A worked example
For example, say a contacts and email product had 500 sign-ups last month, and its activation event is “sent a first campaign within 7 days”. These numbers are made up to show the method.
| Step | Users | Step conversion | Users lost |
|---|---|---|---|
| Signed up | 500 | ||
| Verified email | 450 | 90% | 50 |
| Created a workspace | 405 | 90% | 45 |
| Imported contacts | 180 | 44% | 225 |
| Built a first campaign | 150 | 83% | 30 |
| Sent it (activated) | 135 | 90% | 15 |
Shown as step conversion, the problem is hard to miss:
Show as a table
| Verified email | 90% |
| Created a workspace | 90% |
| Imported contacts | 44% |
| Built a first campaign | 83% |
| Sent it | 90% |
- sign-ups in the month
- 500
- sent a first campaign in 7 days
- 135
- activation rate
- 27%
- lost at the import step alone
- 225
In that example, 365 people didn’t activate, and 225 of them stopped at one step. Importing contacts loses more users than every other step put together. Rewriting the welcome email or polishing the campaign builder would help a little. Making the import easier would help most.
You can work out the overall number with the free activation rate calculator.
Read the funnel carefully
A funnel points at a step. It doesn’t tell you why people stop there. A few checks before you act:
- Look at users lost, not only the percentage. A late step with a low conversion may lose fewer people than an early step with a better one, simply because fewer users reach it.
- Split by who signed up. A step can be fine for one kind of user and a wall for another. Compare plans, sign-up sources or team size if you have them.
- Check the time between steps. If users who get through the stalled step take days to do it, the step is hard, not just skipped.
- Read your support queue. The “how do I…” questions from new users usually name the same step, in their own words. In the example, expect questions like “how do I get my list in?” and “why won’t my file upload?”.
- Watch a handful of real sessions at that step, if your tools allow it. Ten minutes of watching often explains what a chart can’t.
Fix one step, then measure again
Once you know the step, change it and run the same funnel on the next month’s sign-ups. Keep the steps, the window and the activation event the same so the numbers compare.
- Step 1Define the endsSign-up, first value and a fixed window
- Step 2List the stepsOnly the ones a user has to take
- Step 3Count in orderPeople, not events, at each step
- Step 4Find the big lossMost users lost, then ask why
- Step 5Fix and re-measureSame funnel on the next cohort
The usual fixes are to remove the step, make it shorter, give it a sensible default, or help users through it at the moment they get there. Track time to value alongside the funnel: if the fix worked, more people get through and they get there sooner.
Where an in-app agent helps at the stalled step
The stalled step is often one where the user knows the goal but not the path. They want their contacts in. They don’t know which export format your import expects, where the column mapping lives or what to do with the warning on row 40. That gap is where an in-app AI agent fits: the user asks in plain words, and the agent does the steps.
Stiro is one. You add it to your product with one script tag, and there is nothing to train. A new user stuck at the import step can type or say “bring in my contacts from this file”, and Stiro clicks, types and moves through your real interface to do it while they watch.
- It helps exactly where the funnel says. You don’t design a tour for every step; users ask at the step they’re on.
- It reads the live screen. When you change the import screen to fix the drop-off, Stiro works from what is on the page now. There are no flows to re-record.
- It says so when it can’t. If a request isn’t possible in your app, it stops, says why and changes nothing.
- The user keeps the final say. Anything that sends, spends or deletes, such as sending that first campaign, is set up and handed back for them to press.
- Stuck goes to your team. If Stiro can’t finish, a signed-in user can message your team or your help desk from the same panel, with what they asked attached.
We tested Stiro cold in three open-source apps it had never seen. It passed 44 of 44 everyday requests, each checked in the app’s own database; the benchmark lists every task and reply. For what the first month looks like once you know your stalled step, see how to reduce churn in the first 30 days.
Start with your biggest step
Build the funnel, find the step that loses the most people, and fix that one first. If it is a step your users could simply ask for, AI onboarding with Stiro lets them ask. The free plan includes 50 runs a month on localhost and a staging address, so you can try it on your own stalled step before any user sees it.