Onboarding

Onboarding drop-off analytics: find where customers get stuck

A practical guide to onboarding drop-off analytics: define stages, instrument milestones, measure time-to-stage, and fix the steps that lose customers.

Forty customers signed up last month. How many of them connected their integration? How many created their first record? How many are sitting on step two right now, quietly deciding your product is too much work?

If you can’t answer those questions in under a minute, you don’t have onboarding analytics. You have signups.

This guide covers how to instrument onboarding as a series of stages, which drop-off metrics actually matter, how to diagnose each kind of stall, and what to do about it.

Why onboarding drop-off is the churn you never see

Most churn analysis starts with cancellations. But a large share of “churn” in B2B SaaS is customers who never got started. They signed up, hit friction, and drifted away before they ever had something to cancel. They don’t show up in your churn report because they never reached the point of counting as an active customer.

Customers who don’t complete onboarding are 3-5x more likely to churn in the first 90 days than those who do. The fix isn’t a better retention playbook. It’s seeing the stall while it’s happening.

Step 1: Define onboarding as stages, not a checklist

A checklist (“Did they watch the video? Did they read the docs?”) measures your onboarding UI. Stages measure whether the customer actually reached value. Define each stage as a condition on account state:

StageConditionWhat it proves
SignupAccount createdInterest
Integration connectedIntegrationConnected feature enabledThey did the hard setup step
First entityAt least 1 order / project / document createdThey tried the core action
Active5+ entities in the last 7 daysIt’s part of their workflow
Power user20+ entities/week AND 3+ features adoptedThey depend on it

The specifics depend on your product. An invoicing tool’s “first entity” is the first invoice sent. A logistics tool’s is the first batch created. Pick the action that means “this customer got value,” not the action that’s easiest to count.

Rules can combine conditions: “Active” might require entityCount >= 5 AND SlackConnected = true if the Slack integration is what makes people stick. The point is that stages evaluate automatically from data, so nobody has to update a spreadsheet.

Step 2: Instrument the milestones

You need three kinds of events flowing from your product:

  1. Entity events — the things customers create: order.created, project.created, document.uploaded
  2. Feature events — capabilities they turn on: feature.enabled with { feature: 'IntegrationConnected' }
  3. Metadata updates — plan, company size, owner email, anything you’ll use in rules

With the LogoPulse SDK that looks like this:

import { createLogoPulse } from '@logopulse/sdk';

const lp = createLogoPulse({ apiKey: process.env.LOGOPULSE_KEY!, orgId: 'acme' });

// When a customer connects their integration
await lp.track('feature.enabled', accountId, { feature: 'IntegrationConnected' });

// Every time they create the core entity
await lp.track('order.created', accountId, { orderId: order.id, total: order.total });

That’s the whole instrumentation. Stage rules are configured in the dashboard, not in code, so when you decide “Active” should mean 10 orders instead of 5, you change a setting rather than shipping a release.

Step 3: Measure the four drop-off metrics

Once stages are evaluating, four numbers tell you where the leak is.

Stage conversion rate

What percentage of accounts that reached stage N also reached stage N+1? Lay them out as a funnel:

TransitionAccountsConversion
Signup → Integration connected40 → 2665%
Integration connected → First entity26 → 2492%
First entity → Active24 → 1146%
Active → Power user11 → 655%

Two problems jump out. A third of signups never connect the integration. And more than half of customers who try the product once don’t come back to make it a habit. Those are different problems with different fixes.

Time-to-stage

How long, on average, does it take to get from signup to each stage? Time-to-first-value is the one to watch. If it’s 20 days and your trial is 14, the math doesn’t work.

Track the distribution, not just the average. A median of 3 days with a long tail at 25+ days means most customers are fine and a specific group is stuck.

Stall rate by stage

How many accounts have been in the same stage for longer than the typical time to advance? These are your active drop-offs: customers still technically onboarding but no longer moving. An account that entered “Integration connected” 12 days ago and hasn’t created anything is a stall, and it’s the highest-leverage outreach you can make.

Stalled-account list

Not a metric, but the output that matters: the actual accounts, sorted by how long they’ve been stuck. This is what someone should look at every Monday morning.

Step 4: Diagnose each kind of stall

Different stages fail for different reasons.

Stall at Signup → Setup. The setup step is too hard, requires something the customer doesn’t have (an API key from another tool, admin permissions), or the value isn’t clear enough to justify the effort. Fix: reduce the number of steps before the first payoff, or offer a way to see value with sample data before setup.

Stall at Setup → First entity. They did the hard part and didn’t try the product. Usually an empty-state problem: the screen after setup doesn’t make the next action obvious. Fix: a guided first action, a template, or an import from wherever their data currently lives.

Stall at First entity → Active. The biggest leak in most funnels. They tried it once and didn’t come back. Either the core action didn’t deliver enough value, or it isn’t yet part of their routine. Fix: a trigger that brings them back (a notification, a scheduled report, a Slack message when something happens), and a check that the first experience actually worked.

Stall at Active → Power user. Not really a drop-off. These customers are fine; they just haven’t found the second and third features. This is an expansion problem, covered in the feature adoption tracking guide.

Step 5: Build the weekly routine

Analytics without a routine is a dashboard nobody opens. The minimum viable process for a team without a customer success function:

  1. Monday, 15 minutes: Open the stalled-account list. For every account stuck more than 7 days at any stage, send one specific message: “I noticed you connected your integration but haven’t created your first order yet. Is something blocking you?” Specific beats generic every time.
  2. Monthly, 30 minutes: Review stage conversion rates. Pick the worst transition. Ship one change aimed at it. Measure next month.
  3. Quarterly: Re-check whether your stage definitions still match what “value” means in the product.

That’s it. Onboarding analytics is not a project. It’s a list you check and a number you try to move.

What this looks like in LogoPulse

LogoPulse’s onboarding optimization tooling does the stage evaluation for you: you define stages and rules in the dashboard, the SDK sends events, and every hour each account is re-evaluated and advanced (or flagged as stalled). You get the funnel, time-to-stage metrics, per-account stage timelines, and the stalled list without writing the aggregation yourself.

See the full feature list for how stage tracking fits with health scores and risk indicators, or start free with your first 20 accounts.

Frequently asked questions

How many onboarding stages should I define?
Four to six. Fewer than four and you can't tell where people stall. More than six and the funnel becomes noise. A good default is Signup, Setup complete, First value, Active, Power user, with one or two product-specific milestones in between if they're real decision points.
What's a good onboarding completion rate for B2B SaaS?
It depends on how you define 'complete,' but for self-serve B2B products, 40-60% of signups reaching first value within 30 days is solid. Below 25% usually means a setup step is broken or too hard. Sales-assisted products should be higher, 70%+, because someone is guiding the customer through.
Should I track onboarding per user or per account?
Per account, for B2B. The account renews, not the user. If three people at a customer sign up and one of them completes setup, the account has completed setup. User-level funnels in product analytics tools miss this and undercount progress.
How is this different from a product analytics funnel?
Product analytics funnels track a sequence of events for individual users over a fixed window. Onboarding stage tracking evaluates rules against an account's cumulative state (entity counts, features adopted, metadata) and advances the account when the rule is met, whenever that happens. It handles the messy, non-linear way real customers onboard.

Build your health score in 10 minutes

LogoPulse automates component scoring, weights, calculation, and trends. Start free with your first 20 accounts.