NorthwindB2B SaaS · 40 people
Onboarding looked fine in aggregate and was broken in the middle
Situation
Northwind sells a reporting tool to operations teams. Signups were healthy and paid conversion was flat, and the weekly dashboard everyone looked at only showed the two ends of the journey: accounts created, and accounts on a plan. Nobody could say where the middle went wrong, so every fix was a guess.
What they instrumented
Six events across setup, named for what the user did rather than which screen they were on: account_created, workspace_named, data_source_connected, first_query_run, report_saved, report_shared. Each carries the source type and whether the person arrived by invite.
What they found
Connection was not the wall. Eighty-one per cent of accounts connected a source, and then a third of them never ran a query — they sat on an empty workspace waiting for something to happen. The drop concentrated in accounts where the connector took longer than about ninety seconds to backfill, because the interface said nothing while it worked.
What changed
They shipped a progress state with a row count and a sample of the incoming records, then pre-built one query per source type so the workspace was never empty. The funnel step they had assumed was fine turned out to hold the largest recoverable loss on the whole path.
Setup funnel, before
Illustrative figures. The connect-to-query step lost 265 of 810 accounts — more than every other step combined.
We had been redesigning the signup form for a quarter. The step that was actually losing people was the one we thought had already worked.