← Back home

Abadoned Basket

Project involvement

Role

Lead Product Designer

Team

Growth

Overview

This project explored ways to reduce basket abandonment within the Deliveroo app. We noticed a high drop-off rate after users had started building an order but hadn’t checked out. I led the design work as part of the Growth team, partnering closely with Product and Data.

Problem

We were seeing a high rate of baskets being abandoned after users had added items. We had a few working theories — distraction, decision fatigue, guilt, or cost — but wanted to test whether a timely reminder could nudge users into completing their order.

Goal

To increase conversion by re-engaging users shortly after they had abandoned their basket.

Success criteria: uplift in conversion rate, retention, and weekly active customers (WACs).

Design Process

Research

We combined internal behavioural data with known heuristics around timing, app usage and notification effectiveness. We also reviewed other consumer apps using re-engagement push strategies, particularly around time sensitivity and message tone.

Key insights:

  • Most users abandoned within 10 minutes of backgrounding the app.
  • The window to convert was small — any reminder needed to feel timely, not disruptive.
  • Users responded better to contextual nudges that mentioned something familiar or specific (e.g. a dish or restaurant).

Ideation & Design

We explored different timings and message formats. Early iterations focused on generic reminders, but these tested poorly in tone and clarity. We then introduced restaurant names, estimated delivery time and item names as variables.

Sketches and message flows were mapped out to weigh trade-offs between backend complexity and value to the user. We also needed to accommodate both server-side and client-only solutions due to potential engineering constraints.

Collaboration

Worked closely with PMs and analysts to shape hypotheses and success metrics. Engaged with engineers to understand backend feasibility and fallback options. Collaborated async on Slack and in sprint rituals for feedback.

Solution

The Design

We defined an “abandoned basket” as a session where a user added at least one item and then either backgrounded or killed the app. A push notification was sent 10 minutes after abandonment.

Key Features

  • Message included restaurant name and, when possible, delivery time or item name
  • Push was sent at an optimised moment — not too soon to be annoying, not too late to lose intent
  • Two implementation paths: full-featured (server-side) and simplified fallback (client-only)

Design Rationale

By anchoring the message in something familiar to the user (the restaurant or item), we made it feel more personal and less generic. We avoided sending messages if the restaurant had since closed, but only when server-side data was available. This meant we could reduce friction while keeping the experience relevant and timely.

Visuals

Outcome & Impact

Results

The experiment showed an encouraging lift in same-day conversions when the push was sent within the 10-minute window. It also helped increase weekly actives modestly in test cities.

Metrics

  • Uplift in conversion rate from abandoned baskets
  • Slight increase in WACs
  • Qualitative improvement in notification tone perception (based on user research feedback)

Qualitative Feedback

Users appreciated the message when it felt personal and well-timed. We received fewer complaints when the message focused on the restaurant or meal instead of being from “Deliveroo”.

Reflection

The biggest takeaway was the power of small personalisation details, especially when used sparingly and with care. If we’d had more robust backend support, we could have created even smarter triggers. Next time, I’d push earlier for technical feasibility alignment to unlock the richer experience faster.