·9 min read

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

DenominatorWhat it tells you
Total signupsSignup-to-activated rate - useful for marketing
Users who started onboardingPure 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.

StepEnteredCompletedDrop-off
Email verified1,00087013%
Profile created87072017%
Data source connected72038047%
Workflow configured38031018%
Onboarding complete3103100%

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

1

Set the entry event

Use onboarding_started - not signup, not page view. The funnel starts when the user actively begins onboarding.

2

Add each step in order

Map every step where a user can abandon. If they can skip it, it still counts - track skips too.

3

Set a conversion window

7 days for most products. Shorter windows undercount users who pause and return. Longer windows inflate apparent completion rates.

4

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:

Patterns to look for in replays

PatternWhat it means
Cursor sits idle 5–10s, then back-navigationConfusion - unclear next step
Same field filled → deleted → refilledValidation rule or placeholder is wrong
Exit immediately after a specific form fieldThat field is the friction point
Exit after scrolling to integration stepIntegration 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:

1

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.

2

Is it technical friction?

Auth failures, integration errors, and API timeouts cause drop-off that no copy change will fix.

3

Is it a UX problem?

Unclear next steps, too many fields, confusing layout.

4

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

CauseSignalFix
Too many stepsHigh sequential drop-off across multiple stepsCollapse optional steps, defer to later
Premature askDrop-off at billing, API key, invite stepMove the ask later, or make it skippable
No visible next stepHigh dwell time, low completionRewrite CTA, add progress indicator
Auth frictionDrop-off at email verificationAdd resend, switch to magic link
Broken integrationSpike in error eventsFix the integration; add clear error messages
No immediate valueCompletion without activationMove 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:


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.

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 →