How Deliveroo could increase orders with a better user experience
I have a problem with too much choice on Deliveroo. So I asked myself: ”What would I do if I worked on their product team?”.
It’s a cold Friday night, 8 pm, in London. I just got back from a quick run. I’m tired and sweaty. My partner suggests we order dinner and asks me what I’d like to eat. As we both know orders usually take a good 30–40min to arrive, we try to choose something quickly.
I ask her about what she wanted. She shrugs her shoulders, hands me her phone, and says: “Here, check if you find something you like.” The Deliveroo app is open on the home screen and the odyssey to choose dinner starts.
📜The tl;dr version
I have a problem with too many choices on Deliveroo. Every time I open the app and try to order food, I end up quitting. So I asked myself, “what would I do if I worked on their product team?”.
Here are the answers I came up with during a selfish, pure product and UX-related exercise:
Deliveroo should know what I like and don’t like.
Deliveroo should do the filtering work for me. Just like my mum when she cooks for me.
Deliveroo should only show me relevant restaurants and dishes. More dishes, fewer restaurants. I eat dishes, not restaurants.
As you can see below, the home screen of the app has multiple sections and a ton of content! Let’s break it down:
Header: by default, it’s on ‘Delivery’, and it includes information about when and where you‘d get your order. It also contains the ‘My account’ icon on the far right.
Search bar: very straightforward to use + filters are available to refine your search.
Food category bar: a horizontal scrolling function to let you quickly find your favourite type of food (e.g. ‘Grocery’, ‘Pizza’).
Promotional bar: the place where you find offers, discounts, and other stuff they want you to be aware of.
Restaurants: finally, you start seeing restaurants sorted in categories such as ‘Featured’, ‘Up to 50% off’, ‘Meal deals’, etc.
This ‘Restaurants’ section is a vertical scrolling section. It overwhelms you with dozens and dozens of options as you scroll down through it.

In the situation where my partner hands me her phone, I could be 3 very different people:
Someone who knows exactly what I want (i.e. the 1–2 restaurants I’ll order from and 1–2 dishes I‘ll choose)
Someone who knows the category of food I want (e.g. after a workout, I may feel like I deserve a pizza OR that I want to get something healthy and light instead)
Someone sweaty, tired, and who’s not thinking about dinner
Scenario 1️⃣
If I was person number 1, things would be easy. I would search for the restaurant name on that top search bar. I’d click on it, spend 2–3min scrolling the menu, and I’d add what I wanted to the basket. Nice and easy.
Scenario 2️⃣
Here’s when things get complicated. Let’s say I want pizza for dinner. What do I do? Easy. I’d simply choose ‘Pizza’ from the Food category bar at the top and enter, what I call, the world of pizza on Deliveroo! Easy, right? In theory, yes. In reality, no. But why?
As soon as I click on ‘Pizza’, I’m presented with 100+ restaurants that sell pizza. Sure, the one(s) I’ve ordered from in the past are shown at the top. But holy moly! So much offer after that! What do I do now? How do I choose? Deliveroo, help me!
I’m tired. I want a pizza. I deserve a pizza! But … there are too many options. I didn’t like the last one I’ve ordered from, and none of the filters help.
Here, I need Deliveroo to know what ingredients I like. What I don’t like. How many calories I’m looking to ingest. And so on. Instead, I can sort by ‘Distance’, ‘Hygiene’, ‘Recommended’ (whatever this is based on), ‘Time’, and ‘Top rated’. Not to mention I see irrelevant filters like ‘Burgers’ or ‘Wings’ even though I’ve selected ‘Pizza’. Argh … I just wanted a nice, easy, and quick way to order a pizza I like!
Fast-forwarding, I find myself scrolling through pizza restaurants the same way a 15-year-old does on Instagram. The thing here is that Deliveroo should not be looking to maximize the time I spent on the app. It should help me order food really fast instead. We’d both win.
It’s been 10min now. I opened and closed a few restaurant menus, and I still don’t have a clue about which pizza is the best. I ask my partner for help, and we spend the next 20min trying to choose a pizza that has ingredients we both like.
It’s 8:30 pm now, I still didn’t shower, and we both grow impatient. “Let’s just stick to something quick we can cook with what’s in the fridge. We wouldn’t be eating before 9 pm anyway. Even if we ordered now.” — my partner says.
The takeaway here is that Deliveroo’s app is not personalised enough to make ordering food a quick and easy experience. On top of the delivery time, the time people spend choosing will weigh on the order/don’t order decision. To overcome this, the app’s user experience (UX) should acknowledge and address three critical points:
1) Too much choice eats too much of your time ⏱️
Less is more when it comes to asking someone to choose. The more choices you have, the longer it will take to go through all of them and finally land on one. If you have 10 options, you might immediately exclude 5. You’ll consider the other 5, exclude 2 more, and spend 10min deliberating about the remaining 3. Now, imagine you have 100 options. Considering only the time it will take you to go through all 100, that’s 10x the time you would spend if you only had 10.
On top of that, knowing we had many choices increases our regret when we inevitably make the wrong one. As the psychologist Barry Schwartz lays out in his book, while many choices should theoretically provide a sense of freedom of choice, they instead cause us paralysis. Decision paralysis occurs when we have to select one option from a large pool of choices that are difficult to compare (e.g. 100+ identical pizza places on Deliveroo). And when we can’t decide, when it becomes too much to process, we quit. Like we quitted ordering pizza that Friday’s evening.
2) FOMO (fear of missing out)😨
We want the best for us. Always. And in this case, as someone looking to order a pizza, we want the best one (duh!). If given a lot of choices, we’ll scroll through as many restaurants as we can. The fear of missing out on a great Neapolitan pizza place makes us spend time considering all options available. This adds up and turns the discovery process into a frustrating one.
Deliveroo’s teams work hard to give us the best experience and best restaurants. But do we get the best when we are getting everything?
3) Curiosity 🤓
This is a less critical point but still important. As avid scrollers of Instagram and TikTok, we are used to the behavior of scrolling down a screen to check what’s happening. But, is this what we want on a food delivery app?
Look, I get it. This is Deliveroo’s discovery tool to expose customers to more restaurants and restaurants to more customers. However, curiosity-driven behaviors make us increase the available pool of options, which makes us take longer to choose, and increase the chances we don’t choose at all.
Tiktok makes more money when you view more clips. But Deliveroo makes more money when you order more food more frequently. Not when you view more restaurants! (One could argue more restaurants help people order more often. I would be curious to see unbiased data on this. And by unbiased, I mean separating restaurant growth from monthly active consumers and monthly order frequency growth. Something probably very hard to do.)
Scenario 3️⃣
This is the most difficult one. How do you help people who are not thinking about dinner order dinner through an app? You become their mum.
Mums know what we like. Mums either simply go ahead and cook what we like or suggest dishes we like. Mums do the work for us. Deliveroo, when I’m too tired to think about dinner, you have to become my mum. See me taking too long to order? Suggest me my favs! Pre-fill my basket with some of my favs (but tell me about them!). Make it a one-click thing. Do everything my mum would do to feed me the good food I like with minimal effort. But do not ask me to scroll through hundreds of restaurants, please!
Defending Deliveroo
I have to make this parenthesis here. Things are more complicated than what I write about here. Deliveroo is a 3-sided marketplace and it has to consider the value it provides to Restaurants, Customers, and Riders. Money comes when customers order, so it might make sense to focus on these at first glance. However, food only exists because of Restaurants and it only gets to Customers because of Riders.
Looking at all 3 stakeholders, Riders are not an issue here. The issue is finding the perfect balance between Restaurants and Customers. Too many restaurants hurt customers’ experience in the app. Too few hurt the chances of getting to more customers (whether they have different tastes or are located in different neighbourhoods). So what can they do? Can they privilege certain restaurants to the detriment of others? Can they do this in a reasonable manner that does not make restaurants go away?
Also, Deliveroo is doing pretty well. In Q4 2021, they reported a 37% increase in monthly active consumers compared to Q4 2020, and a 123% increase compared to Q4 2019. So, who am I to suggest some improvements? Well, no one. I just enjoyed coming up with solutions to my problems.
⚒️ Some solutions to test
These proposed solutions might not make sense. Or they might have already been tried. I don’t know. What I have here is the result of an exercise I did when I asked myself “If I worked on Product at Deliveroo, how would I try to improve that Friday’s night pizza ordering experience?”.
1) Look at the data
First things first, what do we know, today?
1.1) Average session duration per results page vs number of restaurants shown. Do people actually spend more time scrolling on a results page (e.g. after a search, after selecting a food category, after applying some filters) when we show them a high number of restaurants available? Confirm assumptions first.
1.2) Average session duration per menu page vs number of items on the menu. Applying the same “too much choice is bad” assumption to menus will help understand if shorter menus are better or not.
1.3) Average session duration vs order success rate. Looking at this will help find the time people are willing to spend on the app before they give up ordering. What is the percentage of people who order food after spending 5min on the app? What about 10min? 20min? See how much time can be asked from them. Going a step further: look at the number of pages visited (and actions taken) to assess how much effort users can be asked to put in. Time and effort are both important.
1.4) Average number of restaurants a user orders from. This one is pretty easy and Deliveroo people must know it quite well. I bet is not very high. We are habit creatures. Loss aversion makes us choose what we know it’s good over new (and better) restaurants we don’t know are better yet. This will also help knowing how to limit the number of restaurants people view at the same time in the experiments proposed below.
2) Proposed experiments to run
2.1) A/B test reducing the number of restaurants shown.
This experiment includes limiting the number of restaurants shown on a results page. This could be the ‘Pizza’ page you see after selecting this food category or the restaurant category if you open the ‘Featured’ restaurants page, for instance.
One could start by comparing the results of showing only 5, 10, 20 vs all restaurants. The success metric would be the percentage of people who orders in each scenario (e.g. 25% of the people who are shown 5 restaurants order food vs 10% of the people who are shown 20 restaurants).
To avoid user frustration, a ‘refresh’ like button could be shown at the bottom with something on it like ‘Nothing you’d like to eat here? Click to see more restaurants.’. This button would refresh the page but the number of restaurants shown would still be limited (i.e. you get to see 5 new restaurants on that page but the first 5 you saw would be gone.). Of course, one could play with it and show a selected few restaurants more than once.
2.2) Personalize the in-app experience with quick onboarding questions
These questions can be shown only to new users or to existing users the app would need more information from. The goal here is to personalize what is shown to each user to maximize the number of orders. In order to become their mum, you have to know what their mums know.
Example questions:
What food do you like? + What food do you not like? (always show options the user can choose from when answering these questions) The goal here would be to hide all ‘Sushi’ restaurants if the user tells you they don’t like sushi, for instance. Or to privilege ‘Burgers’ to the detriment of ‘Pizza’ if they tell you they like burgers but do not tell you if they like/do not like pizza.
What are your favourite ingredients? + “What ingredients are an absolute “No” for you? These would assume we have ingredients catalogued in each dish, so we know which dishes that user is likely to order vs will never order. For example, dishes with spinach in them would not be shown to people who hate spinach. The goal here is to do the filtering job for the customer and show them restaurants the chances of ordering from are higher.
Do you usually order for someone else too? What are the ingredients you both like? What ingredients are absolute “No’s” for you? This is a less important one. Yet, it’s useful when the average order value indicates the customer usually orders for more than one person. It helps increase the number of orders with higher order value. It’s a win-win situation as both a couple, family, etc and Deliveroo would benefit.
One needs to find the balance between asking users to go through a lot of unfiltered restaurants vs asking people too many questions. However, the questions would be a one-off investment that will compound over time. The experience would be optimal for each person every time they use the app to order food. Also, Deliveroo does not have any onboarding questions at the moment. The sign-up process is super short. There could be space for 1–2 quick questions.
2.3) Include an “Only for you” section in the main Home Screen
This section’s goal is to make people feel special. To tell them “We got you. We know what food you like. Here it is. Just for you.”. It’s a personalised approach to an app that deals with an extremely personal thing: food. This section needs to be good. It needs to go beyond the “Order again” section Deliveroo has based on restaurants you’ve ordered from in the past. It can be based on the 5-star reviews we gave, and the dishes we’ve ordered repeatedly. But, it should also include new restaurants, restaurants the app knows we’ll like based on our preferences. Also, I would argue in favour of showing dishes instead of restaurants here. We order dishes, not restaurants, right?
Furthermore, the “Enjoy restaurant X? People who’ve ordered here also go for:” does not cut it. This assumes 1) people who’ve ordered from restaurant X, enjoyed it (which you don’t know unless people left good reviews) 2) people who’ve enjoyed restaurant X will also enjoy restaurant Y because others do. I’m not saying the data does not support this. It likely does. But a restaurant has a lot of dishes. Assuming people who’ve ordered from X will like Y is only acceptable if, deep down, Deliveroo is mapping customer-dish instead of customer-restaurant relations. And they probably are. But, showing restaurants and not dishes here may not be the most effective way to convince people to order from Y.
Here’s an example: I’ve ordered a vegetarian ramen dish from Wagamama. You can infer I like ramen and vegetarian options from it. Then, in “Enjoy Wagamama? People who’ve ordered here also go for:” I’m shown Pizza Express and Franco Manca. What is the connection here? Not super clear, right? What does Wagamama have to do with these pizza places? Is it that all offer vegetarian options? I don’t know. And because I don’t know, I don’t see the connection and don’t get convinced by the recommendation.
Instead, I would find a “Enjoy ramen? Here are other ramen dishes you may like:” way more clear and useful.
3) Additional extra ideas
3.1) Show calories per dish (and introduce it as a new filter)
We’ve seen this trend increasing in many restaurants, including Deliveroo’s exclusive partner Wagamama. While it would be easy for some to place a calorie count on each dish, it would represent additional investment from other, smaller restaurants. I would suggest trying it out with a group of restaurants who already do it, measuring engagement with the filter, and deciding whether to extend it or not to others. If knowing how many calories I’d be ingesting, would help me order more often, why not do it, right?
3.2) Catalogue and show macros per dish (carbs, fats, proteins)
If a restaurant has invested in knowing the calories in each dish, it very likely also got its nutritional profile. Showing people the carbohydrate, fat, and protein (and maybe other stuff like fiber, salt, etc) content might help them order more often. In an era where people are becoming more mindful of what they eat, more information means more control. Think of athletes. Or people trying to get fitter/healthier or even someone following medical guidance. For them, ordering food they know everything about might make them order most of the food they eat vs cooking it.
Conclusion
At the end of the day, what matters to people is time. And we don’t have much available nowadays. Making food ordering an easy and quick experience is crucial to cut the time it takes to actually do it. And cutting the time may help people order more often, leading to more orders.
Three main takeaway messages:
We are shown too many restaurants on food delivery apps. This means too much choice. Too much choice is bad because it asks for more time and effort from us. Reduce it.
Food delivery apps are not personalized based on people’s preferences. Like our mums, these services should know what we like and don’t like.
When you want people to do something, make it really easy to do it. If that involves doing most of the work for them, do it.
BONUS: Unanswered questions
Will a personalized app mean some restaurants are never shown? If so, is that a bad thing? What message would it send to existing and potential restaurants?
How can a reduced choice impact customers’ perception of the offer available?
What is the optimal number of restaurants per food category per neighborhood needed to satisfy most customers? Do we really need 100+ very similar pizza places in an X-mile radius?
Disclaimer: I don’t work at Deliveroo. I do not know anyone who works at Deliveroo. I have also not spoken to other Deliveroo customers to understand if this is a common pain. These are personal assumptions I’ve used to have fun coming up with solutions to my own problems with their app. They probably do not make sense at all to someone who works there and knows more than I do.
Good thoughts here. You may want to consider breaking down into a few posts though as it hard to read the whole thing in one sitting.
I do like the problem statement of having too many options to choose from. I am the same way when it comes to movies. Sometimes (thinking in movie terms) I feel that I want the choice to be made for me where all I want to provide is
1. In the mood for "suspense" or "movies with a twist"
2. Along the lines of "6th sense", "The skeleton key", "Fracture"
3. Something I have not seen before
4. English or English subtitles at least
5. I can pay up to $5 to watch it
6. Rating of at least 55% on Rotten Tomatoes
Similar with food
1. Asian
2. Under $30 for 2
3. Soup or noodles
4. With rating not less than 4 within last month
5. Can be delivered in under 1 hour since ordered
Thanks for the feedback, Vlad! Glad you enjoyed reading it. I’m already breaking down newer articles into different posts.