[ Case study ]
The app's checkout required account creation before browsing, asked for delivery-slot selection mid-flow, and lost 38% of carts between cart review and payment. The team knew the funnel leaked but not which decision was breaking it.
CLIENT a neighborhood grocery delivery app — FOCUS Test the funnel before redesigning it
Representative examplesEvery case study in this library is an illustrative composite of the kind of engagement we deliver — written to show our method and standards, not to name clients.
Grocery delivery at neighborhood scale: one warehouse, a small fleet of drivers, a few thousand regular customers. The product side is three engineers and a designer-founder; the operational side runs on delivery-slot scheduling designed around van capacity, not customer preference. Growth came from word of mouth and a local Facebook group rather than paid acquisition, so nobody had instrumented the funnel properly — the team knew where orders died because the founder watched order counts dip, not because anyone measured it.
The app's checkout required account creation before browsing, asked for delivery-slot selection mid-flow, and lost 38% of carts between cart review and payment. The team knew the funnel leaked but not which decision was breaking it.
We proposed testing before redesigning: five moderated sessions with the app's real customer mix, instrumented per-step funnel analytics, and a redesign scoped to the two measured breaking points rather than the whole checkout. Capacity set the scope: a dev team that ships one redesign per sprint needed the smallest change that moved the number, not the most thorough one. We designed around the operational constraint instead of against it: delivery slots were non-negotiable, so we changed where the question is asked and how it feels, deferring account creation to after the order, when the customer is already invested.
Just as important is what we ruled out, and why:
Five moderated sessions identified the account-wall and the slot-picker as the two abandoning moments — not the payment step everyone assumed.
Guest browsing with account creation deferred to post-order, and the slot-picker moved to a persistent bar — each change targeted a measured leak.
Sessions with elderly shoppers reshaped type sizes and button targets before handoff — the prototype was the test, not a deck.
Delivered by the experience pod — designer + researcher over 6 weeks, with working increments reviewed with the client every week.
Obstacle
The analytics platform's existing events fired on page names, not actions, so the original tracking counted the slot-picker and payment step as one undifferentiated checkout page.
Handled: We instrumented checkout manually with named step events, validated against a day of paired session recordings, and only then trusted the baseline we were redesigning against.
Obstacle
Recruiting the elderly cohort for sessions took longer than planned — three of five scheduled participants were far younger than the recruiting script promised.
Handled: We recruited the rest from the shop's phone-order list — exactly the customers who had given up on the app — and scheduled sessions around their delivery windows.
Obstacle
The sprint scoping session revealed the persistent slot bar required a backend change the ops side hadn't approved — a design decision turned out to be an operations decision.
Handled: We split the release: the account-wall fix shipped that sprint, and the slot bar went to the ops manager's Monday review, where it passed once capacity graphs were shown.
The headline: cart abandonment between cart review and payment, first month post-ship — 38% → 19%, read from Funnel analytics. A second check: guest checkouts converting to accounts within 30 days at +26%.
The checkout argument ended, which changed the team's week more than the number did. Instead of relitigating guesses, the Tuesday standup reviews per-step funnel numbers the team now trusts, and design changes ship with an expected direction they can check. Support stopped receiving account-creation complaints, and the phones ring for actual grocery questions again. The elderly regulars who used to phone in orders now arrive in the app occasionally — and when they struggle, there's a testing group who hear about it before churn does.
The result was read from Funnel analytics against the pre-engagement baseline over the stated window, with a guardrail check on guest checkouts converting to accounts within 30 days. Where platform-reported numbers and business outcomes differ, this record says which layer it is quoting.
What we would do differently
We would have run the first usability round in week one — the account-wall finding was suspected but unproven for months because nobody tested.
[ Related service ]
[ Related builds ]
[ Next step ]
Next case study