How to Track Onboarding Drop-Off: Find Where Users Quit and Why
Most teams know they have a drop-off problem. Few can say which step is worst, why, or whether their data is even correct. This guide covers all three.
The three metrics you need to separate
See the onboarding drop-off rate and funnel completion rate glossary entries for precise definitions and formulas.
Drop-off rate
% of users who entered a step but didn't proceed. Measured per step.
Completion rate
% of users who reach your "onboarding complete" event from the start.
Activation rate
% who reach the event that predicts retention - the real aha moment.
! Note
Optimizing for completion rate without tracking activation leads to shipping shorter onboarding that produces users who finish setup but still churn.
Why it's a leading indicator
Users who experience friction in onboarding carry that friction forward. The chain is direct:
Drop-off → Activation rate → Retention → Revenue
Fixing onboarding early compounds everything downstream. If you retain 10% more users in week 1, that compounds every month.
How to measure it correctly
You need every step instrumented - not just start and end. Without step-level data you can calculate a total completion rate but you can't find where the problem is.
Event schema
Use one event name with a step property. Don't create one event per step - it makes queries complex and schema sprawl when steps change.
onboarding_started
→ { source, plan, device_type }
onboarding_step_completed
→ { step, time_spent_secs, attempt_count }
step values:
"email_verified"
"profile_created"
"integration_connected"
"first_action_taken"
"teammate_invited"
onboarding_completed
→ { total_time_secs, steps_completed }
activation_event ← your product's aha moment
onboarding_step_abandoned ← optional, fire on page exit
→ { step, time_spent_secs }
✓ Tip
Track attempt_count on steps with forms or integrations. High attempt counts signal confusion or API errors - not a copy problem.
Choose the right denominator
| Denominator | What it tells you |
|---|---|
| Total signups | Signup-to-activated rate - useful for marketing |
| Users who started onboarding | Pure funnel conversion - best for product decisions |
| Eligible users (paid, invited) | Segment-specific - useful for diagnosing differences |
For step-level analysis, use users who entered that step - not total signups. A user who never reached step 4 shouldn't count as dropped off at step 4.
What a funnel actually reveals
Here's a real-looking example. The 47% drop-off at "Data source connected" is the answer - not the step with the second-highest rate, not the one a teammate thinks is the problem.
| Step | Entered | Completed | Drop-off |
|---|---|---|---|
| Email verified | 1,000 | 870 | 13% |
| Profile created | 870 | 720 | 17% |
| Data source connected | 720 | 380 | 47% |
| Workflow configured | 380 | 310 | 18% |
| Onboarding complete | 310 | 310 | 0% |
Per-step drop-off formula
Drop-off = 1 − (users who completed step N ÷ users who entered step N)
Example: 1 − (380 ÷ 720) = 47%
Setting up your funnel
Set the entry event
Use onboarding_started - not signup, not page view. The funnel starts when the user actively begins onboarding.
Add each step in order
Map every step where a user can abandon. If they can skip it, it still counts - track skips too.
Set a conversion window
7 days for most products. Shorter windows undercount users who pause and return. Longer windows inflate apparent completion rates.
Segment from day one
Split by device (mobile vs desktop), plan type (free vs trial), and source channel. Aggregate rates hide segment-level problems.
→ Insight
If your onboarding branches by user type, build separate funnels per segment. Averaging across divergent paths hides the problem in both.
Why users leave - what the data doesn't tell you
Funnel data tells you where users leave. These signals tell you why:
- Time spent per step - unusually long dwell time = confusion
- Error events - instrument validation failures and API timeouts as discrete events
- Session replays - one replay of a session that abandoned at step 3 is worth more than a week of data analysis
- Device split - 70% drop-off on mobile and 20% on desktop at the same step is a layout problem, not a copy problem
- Source channel - paid ads users often have different expectations than organic
Patterns to look for in replays
| Pattern | What it means |
|---|---|
| Cursor sits idle 5–10s, then back-navigation | Confusion - unclear next step |
| Same field filled → deleted → refilled | Validation rule or placeholder is wrong |
| Exit immediately after a specific form field | That field is the friction point |
| Exit after scrolling to integration step | Integration is too hard or fails silently |
Diagnose before you fix
Most teams ship a redesign before validating their data. A surprising number of "drop-off problems" are tracking problems.
Run this triage in order - stop at the first positive:
Is the tracking correct?
Fire a test event, confirm it appears in under 60s. Check that step property values are consistent - one typo splits one event into two invisible ones.
Is it technical friction?
Auth failures, integration errors, and API timeouts cause drop-off that no copy change will fix.
Is it a UX problem?
Unclear next steps, too many fields, confusing layout.
Is it a value timing problem?
The "aha moment" is too far from the first action. Users quit before they see the payoff.
Common causes at a glance
| Cause | Signal | Fix |
|---|---|---|
| Too many steps | High sequential drop-off across multiple steps | Collapse optional steps, defer to later |
| Premature ask | Drop-off at billing, API key, invite step | Move the ask later, or make it skippable |
| No visible next step | High dwell time, low completion | Rewrite CTA, add progress indicator |
| Auth friction | Drop-off at email verification | Add resend, switch to magic link |
| Broken integration | Spike in error events | Fix the integration; add clear error messages |
| No immediate value | Completion without activation | Move value delivery earlier |
How to prioritize what to fix
→ Insight
Rank steps by drop-off volume × users affected - not by drop-off percentage alone. A 15% drop-off at step 3 (1,000 users/week) outranks a 40% drop-off at step 7 (50 users/week).
Make each step end with visible progress. Users who see a result are more likely to continue:
- A preview of what their data will look like after connection
- A checklist that updates in real time as steps complete
- An inline confirmation showing the next step becoming available
- Social proof ("3 of 5 teammates have connected Slack")
Tools that cover different layers
Step-level analytics
- Amplitude - evaluate its current official product documentation for your requirements
- Mixpanel - evaluate its current official product documentation for your requirements
- PostHog - evaluate its current official product documentation for your requirements
- OnRamp - onboarding funnels and step-level drop-off; verify in a proof-of-concept
Behavior diagnosis
- FullStory / LogRocket - session replays at the drop-off step
- Hotjar / Clarity - heatmaps, rage clicks, scroll depth
- Sprig / Typeform - ask users at the drop-off step why they stopped
Weekly review checklist
Run this every week. Pick one step to improve per sprint.
Weekly drop-off review
- Per-step drop-off rate vs. previous week - did anything spike?
- New vs. returning user completion rate - are new cohorts behaving differently?
- Mobile vs. desktop split - did a deploy break a step on one platform?
- Session replays for the worst step (min. 5, ideally 10–20)
- Error event count at integration/connection steps - any new failure modes?
- Time to activation this week vs. 4-week average
FAQ
What's a good onboarding drop-off rate?
There's no universal benchmark. A B2C app might expect 80% completion on 3 steps; a complex B2B SaaS might consider 40% on 7 technical steps strong.
The better question: is your completion rate improving week over week? And how does your activation rate correlate with completion? 40% complete + 95% retain beats 80% complete + 40% retain.
How many steps should you track?
Track every step a user must complete to reach your activation event. Don't track every UI click.
- Too few: you have high total drop-off but can't find where
- Too many: 12+ steps and most show under 5% drop-off individually
How do you confirm which step is the real problem?
Find the step with the highest volume of drops (not just the highest rate), then watch 10–20 session replays of users who reached that step but didn't complete it. Consistent pattern = UX problem. Inconsistent = expectation or value timing issue.
Ready to find your worst step?
See your onboarding funnel in minutes
Define your steps in code, connect your app, and see per-step drop-off live - no data team, no SQL. OnRamp is built specifically for onboarding analytics.
Start free trial →
