Product evidence
Motivation doesn't track your position — it tracks your perceived rate of closing distance. You don't own how much work there is, but you own where the starting line sits.
The research, distilled
Two loyalty cards, both requiring eight car washes: one with eight empty slots, one with ten slots and two already stamped. The pre-stamped card was completed by 34% of people versus 19% for the empty one. Identical work, identical reward — only the coordinate system moved.
Nunes & Drèze (2006), Journal of Consumer Research 32(4)Pooling 32 randomized experiments, the 18 that tested a normal constant bar produced an effect on completion statistically indistinguishable from zero. The bars that moved slowly at first raised the odds of quitting by 56%. The bar doesn't create motion — it broadcasts the motion your flow already has.
Villar, Callegaro & Yang (2013), Social Science Computer Review 31(6)Early in a flow, accumulated progress motivates ('3 of 10 done'); late in a flow, remaining distance does ('2 steps left'). A standard filled bar only ever shows accumulation, which makes it the wrong display for the back half of your own flow. The fix is a ternary, not a redesign.
Koo & Fishbach (2012), Journal of Consumer Research 39(3)Across 128 studies, completion-contingent rewards — do this thing, get a token — measurably reduced voluntary engagement afterwards (d = −0.36), while informational feedback telling someone they did it well increased it by roughly the same magnitude in the other direction (d = +0.33).
Deci, Koestner & Ryan (1999), Psychological Bulletin 125(6)Everything in this deep-dive
This topic was published before we started running our own screen audits, so it has two script versions: the original, preserved unchanged, and v2 with the audit data folded in.
Original data
We sampled 47 onboarding and setup flows across roughly 40 top iOS apps via Mobbin and coded every progress indicator. The headline: the industry has already adopted the endowed-progress trick — which makes the one thing nobody implements your cheapest remaining edge.
'Account created' and 'Verify your info' pre-checked for signup work, bar ~60% filled, plus '2 steps remaining' late framing — both halves of the thesis on one screen. The canonical case.
Opens at '5 of 11' with 4 checklist items pre-checked (car, photo, phone, license) before the user does anything — the strongest endowed example in the sample, with total disclosed.
System writes your first invoice number and pre-completes 3 of 4 items, then credits the work to the user — the strongest system-endowed example. Separate flow opens crediting 'Money added.'
Endowment twice: a token pre-filled nub on the bar, plus the real move — 'Since you know a few words, let's start at Score 10!' crediting existing knowledge in the scoring system.
Checklist opens at 1/6 with 'Share your Linktree' pre-credited, 17% ambient ring on the profile, 'You're all set!' close — and the only numeric framing flip in the sample (percent to 5/6).
Endowed state (3 of 5 done) plus the sample's cleanest remaining framing: 'Complete two more steps.' Completed items are greyed, struck, and sorted to the bottom so remaining tasks float up.
Ring shows '1/5' with 'Verify your identity' already checked — signup work credited as the first win. Remaining items are activation metrics dressed as setup ('Make 3 card payments').
'STEP 1 OF 4' shows the bar already ~20-25% filled (current step counted as progress), and the trial timeline's first node 'Today – Free trial starts' arrives pre-checked green.
'You have completed 1 of 3 steps' credited at first view — the server-icon step done during creation is pre-checked, with a deliberately tiny disclosed total and an explicit skip link.
Best framing arc in the sample ('couple of minutes each' to 'halfway there' to 'Almost there, last section now') and upfront structure disclosure — but sections start unchecked and each gets a fresh bar, the stacked cold-start the research warns about.
'4 of 5' paired with 'Almost there. Next, we need your phone number.' — the closest thing to the prescribed accumulated-to-remaining flip, done in copy. But no endowed start observed, and setup lingers as a 'Finish setup — In progress' dashboard card.
Fast front-loaded bar (~60-75% filled by the password screen) and an 'Account activated!' celebration — then resets into a fresh KYC stage. The cold-start penalty exemplar.
Quiz bar starts with a small filled head (~8-10%), but the 'Personalizing your experience' stage opens a fresh 0-100% percent ring — a soft track reset. Notably, the ring reads 40% while the header says 'NEARLY THERE': milestone copy decoupled from the number.
Explicit counter-example: 'Get Started 0/4' with only a sliver of bar — the member-side list gives no credit for having joined the server, and completion passes silently with no celebration.
'You've joined the world's largest team!' headline sits directly over a 0/4 meter — the copy endows, the counter refuses to. The sample's cleanest zero-start violation.
A 31-screen bank onboarding with no progress indicator on any previewed screen — hidden length taken to the extreme in a regulated flow, with zero compensating feedback.
How to read this data: Sampled via Mobbin (iOS) with 4 search_flows queries (limit 6-8) and 2 search_screens queries (limit 12); 28 unique flows + 19 unique screens after excluding 4 duplicate hits and 2 state-variant screens. Preview sampling returns evenly-spaced stills, so the 87% endowed-start figure uses only the 23 items where the time-zero state was determinable — the true base rate across all 47 could be lower. All queries asked for progress UI, so the 79% indicator-presence rate is selection-biased and cannot estimate general prevalence; checklist searches oversample fintech and SaaS. Absence of evidence in previews is coded as 'not observed,' not 'absent.' Captures reflect app versions at Mobbin's crawl dates (2024-2026). Full per-item observations are in the audit.
Apply it to your app
This prompt distills everything above into instructions for an AI coding session (Claude Code, Cursor, or similar). It interviews you about your app first — so nothing changes until it understands your context — then audits against the research and implements the fixes with your design system.
You are a senior product engineer applying peer-reviewed motivation research to the progress indicators and multi-step flows in my app (onboarding, setup checklists, wizards, profile completion). Grounding: the endowed progress effect (Nunes & Drèze 2006 — a card with 2 of 10 stamps pre-filled beat an empty 8-stamp card, 34% vs 19% completion, same real work), the goal gradient (Kivetz 2006), the small-area principle (Koo & Fishbach 2012 — people respond to whichever number is smaller, done or remaining), Villar's meta-analysis of 32 randomized progress-bar experiments (honest constant bars: no effect; slow-early bars: 1.56× drop-off odds), and the Ovsiankina resumption effect (interrupted tasks get resumed ~67% of the time — the Zeigarnik justification is dead, don't cite it).
BEFORE YOU CHANGE ANYTHING, ask me and wait for answers:
1. Which flow are we improving, how many steps does it have today, and where do people currently drop off (share funnel data if you have it)?
2. What real work has a user ALREADY done by the time they see step 1 (found the app, created an account, verified email, imported data)? Be specific — this becomes pre-credited progress.
3. Which step is the heaviest (permissions, payment, integrations), and which is the lightest?
4. What's the stack/design system, and is there an existing progress component I must reuse?
5. Are there multiple stages (e.g., setup → team setup → first project) that each show their own progress?
THEN audit the flow against these rules and show me the plan before coding:
- Never start at zero — and never fabricate. Count real completed work: render "Step 2 of 5 — account created ✓" instead of "Step 1 of 4". The tooltip test: if a tooltip explaining why the bar starts at 20% would state a true fact, it's framing; if it would have to admit manipulation, it's deception — don't ship it.
- Put the cheapest step first. The first 15 seconds should be the fastest-moving part of the flow; move heavy steps (bank connection, permissions) out of position one. First-question wording is ~3× as expensive as the same words later (Liu & Wronski 2018).
- Flip the framing at halfway: "2 of 6 done" early, "2 steps left" late. It's a ternary, not a redesign.
- More, lighter steps beats fewer, heavier ones (fields hurt more than steps — Baymard); splitting also buys more visible motion.
- Kill stage resets: don't stack sequential 0→100% bars (post-reward reset: motivation returns to cold-start at each boundary). Run one continuous gradient across the journey, or pre-credit the next stage so it never renders at 0%.
- Goals must be reachable and must close. A meter that can never hit 100% is a standing failure notice (goal-failure costs measured at n=95k: missers bought LESS than never-goaled controls).
- On completion: informational confirmation ("Your workspace is set up correctly"), not badge theater — completion-contingent rewards measurably suppress later voluntary engagement (Deci meta-analysis, d = −0.36 vs +0.33 for informational feedback).
THEN implement incrementally with my design system, behind a flag if possible, and tell me what to measure: step-level completion, time-to-first-value, AND day-7/30 return rate (per-session metrics can improve while retention quietly falls — check both).
Close with anything you'd want an A/B test on rather than assume, and why.
See it, click it
A fictional hiking app's setup flow. On the left, a bar that starts at zero and resets at the stage boundary before handing out a badge; on the right, pre-credited work, a framing flip halfway, and a receipt instead of a token. Click through both.
From Build With Kris
Subscribe to catch the teardown when it drops — the science, the audit, and the rebuild, screen by screen.