Progressive Profiling
Collect user information across many small moments instead of one long form at signup.
The problem it solves
Every team wants a field on the signup form. The form grows, conversion falls, and much of the data collected is never used or is filled in with nonsense.
One form, redistributed
Signup forms grow by committee. Sales wants company size, marketing wants attribution, the data team wants industry, and each field seems small. The cost is invisible at the moment of adding and permanent afterwards.
Progressive profiling breaks the form apart. Signup collects the minimum required to create an account. Everything else is gathered later, one question at a time, at a moment where the question makes sense.
Where each field belongs
- At signup
- Only what is technically required to make an account exist. Usually an identifier and an authentication method.
- At the moment of relevance
- Company name asked when the first invoice is generated. Timezone asked when the first meeting is scheduled. The question explains itself.
- In exchange for something
- Industry asked as part of a report that adapts to it. The user gets the benefit in the same interaction they give the answer.
- Inferred, never asked
- Attribution from the referrer. Timezone from the browser. Company from the email domain. Every inferred field is a question you never have to spend.
The fourth row deserves a fight. A surprising number of fields on a typical signup form can be inferred with reasonable accuracy, and the ones that cannot are often the ones nobody uses. Before adding any field, ask who reads it and what decision changes because of it. Fields that survive that question are rare.
- Never ask two questions in the same moment.
- Always show the answer changing something, or say plainly why you need it.
- Let every prompt be dismissed, and do not repeat a dismissed one for weeks.
- Show inferred values as editable defaults rather than hidden assumptions.
- Audit annually: any field nobody has queried in a year should be deleted, not migrated.
Worked example
Hypothetical: one form split into four
A team runs a signup form with seven fields. They cut it to two, and place the other five at later moments: company name at first invoice, team size at first invite, industry inside an adaptive report, timezone inferred, and attribution taken from the referrer. In this illustration the total data collected goes up rather than down, because the later questions are answered honestly by people who are already using the product.
That last point is the underrated benefit. Data collected at a gate is data people lie to get past. Data collected in context, from someone who wants the thing it unlocks, is usually true.
When it fits
- Signup forms that have accumulated fields over time from multiple internal requests.
- Products with recurring use, so there are many later moments to place a question in.
- Cases where a field has a natural home elsewhere in the product, such as billing or scheduling.
- Teams willing to delete fields rather than relocate all of them.
When it backfires
- When the questions are relocated rather than reduced, so the user is interrupted five times instead of once.
- When there is no cap, and several teams each place a well intentioned prompt in the same week.
- When a legal or compliance field genuinely must be collected before use, and delaying it creates a problem later.
- When prompts reappear after dismissal, which teaches people to answer carelessly to make them stop.
Products using it
Stripe
Account creation needs little upfront, with business and banking details requested as activation progresses.
Linear
Signup is minimal and workspace details are gathered as the workspace is actually used.
Figma
Team and organisation details are collected at the point of creating a team rather than at account creation.
The psychology under it
The takeaway
Cut the signup form to what is technically required, infer what you can, and attach the rest to moments that explain themselves.
Finished the teardown? Bank it and the day counts toward your run.
