Case study · GoFood · Android & iOS

Closing the leakiest stage: rebuilding GoFood's checkout.

Role Senior Product Designer
Team GoFood, Gojek
Platform Android & iOS
Status Shipped + A/B live
GoFood checkout redesign — case study visual
+2.9% Sessions-to-booking for new users (Statsig validated)
+0.4% Uplift for promo-sensitive users from the floating offer bar
52% Original checkout-to-booking conversion — the problem to beat
903 Users surveyed in the drop-off study that shaped the redesign
The problem

A funnel that fell off a cliff.

GoFood's ordering funnel had three steps. The first two held up fine. The last one didn't. Almost half the users who made it to checkout — people who had already browsed, chosen a restaurant, built a cart — never placed an order.

This isn't a friction problem. It's a trust problem that only surfaces after the user has already invested.

For years, checkout was treated as a confirmation screen. We started treating it as a conversion screen.

Home → Merchant profile 74%
Merchant profile → Checkout 70%
Checkout → Booking 52%
The evidence

903 users. One clear finding.

We ran a drop-off study to understand why users abandoned checkout. The top four reasons were all about price and promo. Deals existed. Users couldn't see them.

Promo application had stagnated at ~60% for some time, with new users under-applying despite qualifying. The problem wasn't friction in the form — it was discoverability.

Can't find a suitable promo
81%
Delivery and fees too expensive
67%
Went directly to restaurant instead
43%
Price cheaper at competitor
27%
"The problem wasn't friction. It was promo discoverability and relevancy."
Drop-off study finding, n = 903
A second problem

Checkout was leaking after booking too.

Over Jul–Sep, 75,422 cancellations traced back to information that should have been confirmed at checkout. This reframed the work entirely. Checkout isn't just a conversion screen — it's the last reliable point where an order can still be made correct.

Need to edit address 33,239
Multiple booking created 16,915
Need to edit items 15,854
+ 2 more reasons 9,414
Total cancellations (Jul–Sep) 75,422
Framing the work

Three bets, one north star.

I rolled the symptoms into three improvement bets. Together they pointed to a north star: "Help users accurately and quickly check out while having the best deal possible."

01
Promo discoverability & relevancy
Surface eligible deals where users actually look. The data shows they exist — users just can't find them.
02
Component straightforwardness
Fix inconsistent containers and weak visual hierarchy. Clarity at the structural level is usually undervalued.
03
A scalable IA framework
Stop future additions getting bolted on as one-offs. Design a system, not just a screen.
"Help users accurately and quickly check out while having the best deal possible."
North star, GoFood Checkout redesign
The solution

Five components. One end state.

The redesign consolidates five components. Milestone 1 ships proven components; one moves to A/B testing because usability research deliberately split on it.

Component 01
Consolidated savings banner, up top
UT showed users prefer knowing savings up front — it shapes how they read the rest of the screen and reframes the price they're about to commit to.
Savings banner — after Savings banner — before
Before After
Before Savings info lived at the bottom of payment summary, near the CTA. Users saw it after absorbing the total.
After Moved up top, persistent. Savings reframe the price before users commit.
Component 02
Compact address component
UT showed clear preference for the compact form. The previous design was over-instrumented for a job most users only need to do once.
Address component — after Address component — before
Before After
Before Address card with separate "Add address details" and "Notes" actions, eating ~3 lines.
After Single card: address, house note, and edit inline.
Component 03
Consolidated delivery options
Users couldn't compare easily. The most important decision on the screen lacked a layout that supported the decision. Redesigned to support cross-option comparison on ETA, price, and USP in one glance.
Delivery options — after Delivery options — before
Before After
Before Express / Regular / Mode Hemat shown as a vertical list with similar visual weight.
After Supports ETA, price, and USP comparison in one glance. This component moved to A/B testing — more on that below.
Component 04
Best-promo floating nudge
UT showed better discoverability and comprehension — users read it as "the best deal currently available to me" rather than a generic promo slot. This was the component that drove the +0.4% uplift for promo-sensitive users.
Promo nudge — after Promo nudge — before
Before After
Before Promo bar lived above payment summary as a static row, easy to miss.
After Floats above content as users scroll, anchored near the CTA.
Component 05
SKU cart, payment hierarchy, pre/post-savings price
Three quieter changes that compound. The changes nobody would describe as flashy — and the ones that moved the funnel the most.
SKU cart — after SKU cart — before
Before After
Before Menu photo, flat payment list, no savings signal — three quiet sources of friction at the moment of commitment.
After Photo dropped, primary payment method leads visually, pre/post-savings price shown. Small changes that compound.

When the data didn't give a clean answer.

The delivery options component was where UT didn't converge — and we resisted the urge to pick by taste.

In A/B testing Variant A — Horizontal
Variant A — Horizontal delivery options
Default end state ✓ Variant B — Vertical
Variant B — Vertical delivery options
Pros
  • More compact — more info in one fold
  • Felt delightful in usability testing
Cons
  • Scheduled and Hemat options suffer discoverability
  • Not the best layout for comparing
  • Limited character budget for USP copy
Pros
  • Familiar pattern — lower cognitive load
  • More room for USP copy per option
  • Better for comparing ETA, price, and features
  • All options always discoverable
Cons
  • Uses more vertical space
The result

Quiet changes. Real lift.

+0.4%
Promo-sensitive users

From the floating offer bar. Smaller in absolute terms — but pointing somewhere important. Users who weren't promo-sensitive ignored it, which is the right failure mode for a component like this.

Segment-aware
The real insight

The segment-specific lift tells a bigger story: our highest-leverage next step isn't designing one better screen — it's designing the right screen for each user type.

"The interesting finding wasn't the lift itself. It was that the lift was segment-specific — which means our biggest next opportunity is designing the right screen for each segment."
Post-launch reflection
Reflection

What the data confirmed, surprised, and taught me.

01
Segment-aware design is the next bet

The floating offer bar's segment-specific lift is the clearest signal in the dataset. The highest-leverage version of this work going forward isn't a universal redesign — it's a checkout that adapts to who's looking at it.

02
The "boring" components carried the conversion win

The +2.9% for new users came from visual hierarchy and separation work, not from the components I expected to headline. Clarity at the structural level is usually undervalued vs. clever new components.

03
An IA framework is only as durable as the team's commitment to it

The real test isn't this launch — it's whether the next checkout addition respects the framework or breaks it. That requires design and product alignment to hold the line.

04
Cancellation reduction is the harder win to measure

Conversion lift was measurable inside the existing experiment infrastructure. Cancellation reduction requires connecting checkout-time edits to downstream cancellation reasons. I'd invest in that instrumentation upfront next time.

05
What I'd do differently

Pre-experiment, I'd propose the segment cut as a primary metric, not secondary. The story the data tells is clearer by segment than in aggregate — but we set up experiments thinking aggregate would be the headline. That framing cost us a sharper readout.