UCOOK
Conversion optimisation
Sign-up drop-off, diagnosed and rebuilt
- Role
- UX/UI Designer
- Client
- UCOOK, via Silvertree
- Year
- 2025
- Origin
- Self-initiated
The challenge
Why were people abandoning sign-up while still expecting their meal boxes to arrive?
What it turned out to be
They thought they had finished. Payment came days later, so nothing told them they had not.
Customer service kept logging the same call. People were waiting for meal boxes against subscriptions that had never activated.
60+
incomplete sign-ups
In a single week
1.43%
retention through sign-up
56%
of first billings
Landed 1 to 5 days after sign-up
~R1.3m
a year
Revenue leaking through the funnel
This was not on the roadmap. I started looking because the complaints and the data were describing different things, and I wanted to know which one was right.
The gap
They thought they had finished
Every test participant expected to pay immediately. In the old flow the charge came days later, so nothing at the end of sign-up told them they were not finished.
The problem
What it looked like from each side
User pain
- Sign-up was confused with simple account creation
- Meals could not be found, and there was no way back a step
- Subscription against on-demand ordering was unclear
- Plan, meals, and delivery decisions arrived early and without context
Business pain
- Over 60 incomplete sign-ups in a single week
- Roughly R1.3m a year leaking through the funnel
- 56% of first billings landed 1 to 5 days after sign-up
- No defined baseline funnel, so nothing could be tested against it
Constraints
Why payment could not simply move
The obvious fix is to charge at sign-up. Delivery and billing run on different cycles, which is where the mismatch comes from, so moving payment was not straightforward.
Model complexity
Delivery cycle
Weekly › Sunday or Monday
Billing cycle
Wednesday 9am › Wednesday 9am
The billing logic was complicated and did not match what people expected. Moving payment earlier created a refund problem, because a reduced order takes more than two days to reflect. That would put a billing error right at the point someone had just handed over their card.
Research
Seven ways of asking the same question
I used more than one method because a single source would not have been enough to get this prioritised. The interviews and tests told me what was happening. The analytics told me how much of it there was.
- 01
Customer service interviews
Tracked complaint categories and flagged incomplete sign-ups.
- 02
Internal survey, 16 respondents
55% flagged unclear communication. Sign-up scored 6 out of 10.
- 03
Competitive benchmarking
Marley Spoon, Taste Box, Hello Fresh. All use clear step patterns.
- 04
Heuristic evaluation
Against Nielsen's 10. Findings clustered into three themes.
- 05
Unmoderated testing in Maze
Blocked. There was no defined happy path to test against.
- 06
Moderated usability testing
Three sessions. Navigation and pricing clarity issues surfaced.
- 07
Heatmaps and session recordings
Validated the drop-off points and interaction patterns.
- 08
Measurement planning
Tag Manager triggers defined across each step of the funnel.
Evidence
Heuristic evaluation
Nielsen's 10 heuristics across the sign-up and reactivation flows. Three theme clusters came out of it: communication, navigation, and UI optimisation.
Clicking Activate Now returned a no-address-associated error, and nothing happened beyond it. No efficiency of use.
Global navigation changed at least three times during sign-up, alongside inaccurate information. Flagged and fixed as a quick win.
After phone verification, the order summary showed the wrong configuration.
Insights
Four things that decided the redesign
Synthesis
- 01
Users did not understand the journey upfront
"What am I signing up for?" was unclear from the start.
- 02
Too many decisions, too soon
People were asked to choose plan, meals and delivery before committing to anything.
- 03
Weak sense of progress
No way to tell how far in they were, or what remained.
- 04
Trust gaps at the critical moments
Pricing, commitment, and flexibility were not communicated clearly.
People needed to understand what they were signing up for before being asked to commit to it.
The principle everything else was measured against
Design
What changed
- 01
Restructured the flow
Easy steps first. The bigger decisions moved later, once someone had already put something in.
- 02
Introduced clear progression
Five steps with a progress indicator, so people can see how much is left.
- 03
Simplified decision points
Fewer choices per screen, each with the context needed to make it.
- 04
Improved trust and transparency
A full pricing breakdown, and skip or cancel stated where people were hesitating.
- 05
Defined scroll and interaction behaviour
Nothing hidden below the fold. The main action stays visible.
- 06
Made payment the finish line
A payment step at the end, which is where everyone expected it.
Option considered
Pay on sign-up
Move payment to the start, use the cart as the entry point, and build the customer profile from the order. I worked it through and it did not hold up.
01
Meal kit page
02
Add to cart
03
Checkout
04
Address and banking
05
Pay
06
Auto-profile
Why it was rejected
- 01
The subscription model is not communicated before payment
Users commit without understanding recurring billing.
- 02
Pause and cancel are unclear at the point of commitment
Neither is explained anywhere near the payment step.
- 03
It solves acquisition only
The retention problem stays exactly where it was.
- 04
Post-payment order changes introduce refund risk
Reduced orders take more than two days to reflect, so the refund problem stays.
Solution
Two workstreams
The quick fixes shipped while the structural work carried on, so they did not wait on the payment timing decision.
Quick wins
Structural redesign
Four entry paths, one outcome
People arrive at sign-up from four different places. All four now end in the same activated state.
Wireframes
The funnel, drawn
In production
The redesigned funnel, shipped
Five steps in a single flow. These are live app screens, not mockups.








Handoff
Specs developers can build from
Annotated prototypes with the interaction detail written down, so the behaviour was settled before build.
scrollIntoView()
Step transitions and error states.
Sticky header
Keeps users oriented throughout sign-up.
Form validation
Inline errors that prevent incomplete submits.
Progress tracking
GTM triggers on each funnel step.
Result
What moved
Bars are proportional within each row. Top bar before, bottom bar after.
+5.6%
Absolute increase in completion
Top-of-funnel abandonment dropped from 91.1% to 75%, so more people reached the later steps.
~R255k
Six-month impact, Aug 2025 to Jan 2026
R405k × 63%, the relative lift from 3.7% to 9.3%.
Still open
- Payment timing decision outcomes
- A/B testing results
- Post-release refund and billing impact
Outcome
Completion went from 3.7% to 9.3%. The old funnel saw 405 users enter step 1 with 91.1% abandoning. The new funnel had 1,994 enter with abandonment down to 75%.
Reflection
What I took from it
- 01
People rarely drop off for one reason. It accumulates
- 02
Explaining things earlier did more than any persuasion later in the flow
- 03
Scroll behaviour mattered as much as the bigger structural changes
- 04
This was not on the roadmap. The numbers are what got it on there