---
title: Wizard
slug: wizard
kind: pattern
summary: A long, genuinely required task broken into ordered steps with visible progress — so the person faces a few decisions at a time instead of forty at once.
problem: >-
  Some tasks really do need a lot of information, and presenting it as one long
  form produces a wall that people scroll, lose their place in, and abandon.
  Worse, they cannot tell how much is left, so they cannot decide whether to
  start.
family: [capture, workflow]
data_shape: [record]
principles: [progressive-disclosure, orientation, friction]
interaction: [navigation, editing]
density: low
complexity: medium
status: stable
visibility: public
use_when:
  - The information genuinely is all required before the thing can exist.
  - Later questions depend on earlier answers, so order matters.
  - The task is done rarely, by people who do not know the domain well.
  - Getting it wrong is expensive enough to justify a guided path.
avoid_when:
  - The fields could simply be deferred. Shorten the form instead of sequencing it.
  - People do this every day. Experts want one dense screen, not seven pages.
  - The steps are independent, so forcing an order adds nothing but clicks.
alternatives:
  - slug: minimal-form
    when: The information is not actually all required now — the usual case.
  - slug: checklist-workflow
    when: The steps happen over days by different people, not in one sitting.
ask_leo: |
  Turn this long form into a wizard.

  - Group the fields into three to six steps, each with a name that says what it
    is about. One step should be answerable in under a minute.
  - Show every step and the current position at all times — "Step 2 of 5", with
    the step names visible, so the size of the task is never a surprise.
  - Let people go back freely, and let them jump back to any completed step.
    Only forward movement is gated.
  - Validate each step when leaving it, and show errors on that step. Never
    reveal an error from step two while the person is on step five.
  - Save progress as they go, so closing the browser does not lose the work.
    Say that progress is saved.
  - The final step is a summary of everything entered, with a way to jump back
    and change any of it, before the single confirming action.
  - Name the last button after the outcome — "Create the account", not "Finish".
  - If a step can be skipped, say so on the step itself and make skipping an
    explicit choice rather than an empty submit.
related:
  - title: Minimal Form
    url: /patterns/minimal-form
    summary: Check this first — most wizards are long forms that were never questioned.
  - title: Linear Workflow
    url: /patterns/linear-workflow
    summary: The same shape across days and people rather than within one sitting.
---

## Anatomy

```
  ①──────②──────③──────④──────⑤
  Company Contacts Billing Users  Review
   done    done    ● here   ·      ·
                   Step 3 of 5 · progress saved

  [ ← Back ]                        [ Continue → ]
```

- **The whole path is visible.** A wizard that reveals steps one at a time is a
  maze; people need to see the size of what they agreed to.
- **Back is free, forward is gated.** Going back to check something must never
  cost anything, or people will not check.
- **Per-step validation.** Errors belong on the step that owns them, at the
  moment of leaving it.
- **Progress persists**, and says so, or a wizard becomes a thing you must
  finish in one sitting.
- **A review step**, because by step five nobody remembers step one.

## Why it works

It bounds working memory. Five decisions is a task; forty is a project, and
people treat it like one — they postpone it. Chunking does not reduce the work,
it makes the work *startable*.

The progress indicator does something the chunking alone cannot: it converts an
unknown quantity into a known one. "Step 2 of 5" is the difference between "I
will do this later" and "I can finish this now", and it is the single most
valuable element on the screen.

## Check first that you need one

Most wizards are long forms that nobody questioned. Before sequencing forty
fields, apply the [minimal form](/patterns/minimal-form) test to each one: can it
be defaulted, derived, deferred, or dropped? A wizard built over fields that did
not need asking is a well-organised waste of everyone's time.

The legitimate cases are narrow: the information really is required now,
later questions depend on earlier answers, and the person does not do this often
enough to want density.

## Getting it wrong

- **Hidden length.** No step count, so the person cannot decide whether to
  start.
- **No going back**, which turns a mistake at step two into a restart.
- **All errors at the end.** A wizard that validates only on submit has the
  weakness of a long form plus the length of a wizard.
- **No saved progress**, so an interruption is a total loss.
- **Steps of wildly uneven size** — three fields, then twenty — which makes the
  progress indicator lie.
- **A wizard for experts**, who will resent every click and want the dense form.

## Exemplars

**Stripe's onboarding** is the case where a wizard is genuinely warranted:
regulatory information really is all required, it really does depend on earlier
answers, and it saves progress across sessions because it can take days.

**TurboTax** is the pattern at its largest scale, and the lesson is the review
step — after a hundred questions, the summary is where trust is either
established or lost.

**Most SaaS "setup wizards"** are the counter-example: five steps of
configuration before the person has seen the product do anything. That is the
*configuration before value* anti-pattern wearing a progress bar.

The extractable rule: **a wizard organises necessary work; it cannot make
unnecessary work acceptable.** Justify the fields before you sequence them.
