How to make Grocery Delivery work-The inside story

Many things have been written and speculated over regarding the on-demand delivery space. There is still, however, little evidence on how it really works, whether it is possible to make money and whether or not there is light at the end of that long tunnel. Even though companies are adopting on-demand and same-day grocery delivery models and investing billions in them, there are still many questions left to answer. Unit economics seems to be the challenging topic and with the disappointing numbers from various delivery startups, companies in the sharing economy space are being scrutinised more than ever before.

In this article I will share what I have learnt after running an online grocery delivery business in the UK for almost five years. I will talk about profitability, scale, operations and technology and the role that each of these play in the viability of such a business. The reason I am writing this is to shed some light on the industry and hopefully provide a more complete understanding of how such models work, or don’t work.

My background

Between 2014–2019 I’ve been the CEO and co-founder of Home Run, an on-demand grocery delivery startup based in London, UK. We delivered close to a million groceries, raised a few million pounds in funding, on-boarded 100+ people and partnered with some of the largest grocers in the country, delivering groceries to customers’ homes in as little as 1 hour.

In early 2019 we decided to shut down our operations. The reasons for this and more info on our Home Run journey can be found in another article I published here. This current article takes a more industry-focused approach concerning the on-demand grocery model, where I will share what I’ve learnt and what really goes on behind the scenes.

Summary of Home Run

Home Run was an on-demand online grocery delivery service based in London, UK. Similarly to Instacart in the US, we built a platform where customers could shop their weekly groceries from the supermarkets they love and get them delivered in as little as one hour. Everything from the online customer journey to the tech and physical operations (picking, packing and delivery) were designed, built and run by Home Run. Unlike other grocery models, we didn’t own any warehouses, stock or delivery vans. We partnered with supermarkets and used their physical stores, which we turned into what we called “real-time fulfilment centers”. We also had part-time and self-employed workers handling the picking and delivery using their own equipment and vehicles. All this contributed to building a capital light model, having great product variety and delivering orders at great speed..

Does it work?

A few months ago I was invited to a dinner with the founders of a data analytics company that works with online grocery retailers around the world. One of the founders turned to me and asked, so, does the model of on-demand online grocery delivery work? It’s a simple question if you think about it. It either does or it doesn’t. But with everything that is happening with grocery delivery companies around the world, it would not be accurate to sum things up in a single word. There are companies raising billions that still haven’t proven any profitability, while at the same time others are being acquired for staggering multiples of their value and considered success stories. So, what is the question “does it work” actually asking? Is it asking whether the model can become cash flow positive? Or whether it can have a good exit for founders and investors alike? Can it acquire lots of customers and add incremental sales to their retail partners? Or can it achieve something in the middle? My answer was: it depends on what you are optimising for.

Most startups optimise for growth. Some might say that if you are doubling in growth every quarter then that’s a great sign that your business “works”. After running a low margin business in which almost no one makes any money however, I began reevaluating what it meant to say that a business “works”. And I’ve certainly reevaluated the “grow at all costs” mentality which is spreading across many industries in the startup ecosystem. It goes back as far as business itself does. Today I believe a business that works is a business that makes a profit. The rest is irrelevant. To achieve that though, in grocery delivery, you need to get many things right. Spending money on acquiring customers without building proper foundations to support that growth will take you nowhere. The same goes for profitability. Proving profitability on a small scale doesn’t mean you can make money as the business grows. Both angles have difficulties, but the things you need to get right are mostly similar.

I believe that in order for a model like this to operate and be profitable it requires a number of factors to be working simultaneously. In my experience, these are:

  1. Margins & unit economics
  2. Scale
  3. Operations
  4. Tech

Some clarifications before we move on.

The model I am mostly focusing on is the on-demand grocery delivery model, which primarily uses existing stores for picking and an uber-like delivery fleet of drivers for delivery. Instacart, Postmates, Doordash, Shipt, Rappi and many more around the world have adopted such a model. Much of what will be discussed however, is applicable to slightly different models that use warehouses or dark stores, but I’m not going to touch on those specifically.

What do I mean by “to operate”

I mean that you can fulfil multiple orders from several stores at any given time and day at scale, without things breaking and leaving customers dissatisfied (late orders, missing products etc). I mean that the necessary processes need to be in place between the customer, the platform, the pickers, the drivers and the stores. And a constant feedback loop is generated in order to manage and fulfil groceries on time and with speed.

What do I mean by “be profitable”

I mean to be at least operationally profitable. Another way to put it is “unit economics positive”. Simply put, the money you make from the orders that come through your platform at any given period of time (day, week, month, quarter) has to cover the cost of delivering those orders (including VAT, transactional, labour, operations costs etc). I am not talking about being cash flow positive as a business. That is something I can’t speculate about, because I have no insight into the internal costs of each individual business.. What I can speak about is operations, since it is very similar across different businesses and even across different geographies.


This model is very interesting when it comes to revenue streams and margins. Most sharing economy businesses have two revenue streams. One comes from the customers (delivery or service fee) and the other from the suppliers as a commission (restaurants, uber drivers etc). Uber, for example, gets a commission from their drivers and a fee from their customers. Similarly, Deliveroo gets a commission from the restaurants and a delivery fee from their customers and so on. Groceries however, not only have a third and quite important revenue stream, but also their initial two can vary to a great extent. The extra revenue stream comes from promotions and CPG (Consumer packaged goods) deals. Similar to the offline world, where the number one profit source for supermarkets comes from trade and promotional deals, in the online world this also plays a significant part. This can be a significant revenue stream, especially in countries where promotions and coupons haven’t been digitised completely. For the sake of simplicity and because I don’t consider this to be an operational revenue stream, I won’t include it in my operations calculations and will only focus on the first two.

We basically have two revenue streams. Revenue share from grocers (they pay for each order that they get) and a delivery fee which is paid for by the customers. These can vary based on the deal the company has with the grocers and, in the case of delivery fee charges, based on a variety of factors such as distance, volume, day, time etc.

On a unit economics level, in theory, it’s easy to prove profitability. You average out the number of orders per hour per employee, add in the margins, extract the costs per order per hour and see what you get. Let’s look at the example below. The numbers I am using are real numbers we had when running Home Run. None of this is made up. The only number which is rounded up, for the sake of simplicity, is the orders per hour.

Unit economics analysis

Every number in this calculation is important. Having low AOV (average order value) will reduce your margins, while having high labour costs will suck up most of your profits. From the beginning one needs to evaluate their costs and most importantly, their margins. If you don’t have the necessary margins this model can’t make money. In the UK there are grocers that have 33% gross margins and others that have less than 10%, hence some have never made a profit in online grocery. If your margins are thin and you don’t want to sacrifice them, then you might decide to stay away from the online space. You need to prepare for someone else to steal your market share however. Can you handle this? In an industry where margins are slim, losing 5% of your market share will have a serious impact on your bottom line. Additionally, with online, you can add incremental sales and increase the overall spend and LTV (life-time value) of your customers. Looking at online sales as a pure P/L exercise is dangerous, and in my opinion, wrong.

For an on-demand business things are clearer. If the margins from the grocers are sufficient, then all you need to do is make sure you have enough scale to reach a critical number of i.e. two orders per hour. A task easier said than done.


What does scale mean? Is it two orders per hour per picker/driver? Is it ten? Is it the necessary number to cover an entire country? A key indicator in delivery is drop density, which measures the number of orders a driver can “drop” per hour at a pre-defined geography. Since this article is looking into whether on-demand grocery delivery can work or not I will define scale as the necessary drop density for operations to be profitable while processes and systems are in place to be able to reach many geographies.

To test it one would just need to run a minimum viable experiment. This experiment will take into account one shopper/driver in one store in a predefined location and prove that by the end of the day/week/month/quarter there is enough drop density to cover the operational cost for delivering those orders. Using the calculations above, we can easily see that by having two orders per hour per shopper/driver this can work. Eventually you will have a fully booked day and operations will be profitable. There is a dangerous caveat here, though. What could work on a micro level, won’t necessarily work on a macro level.

What happens when you add a second shopper/driver? This extra person might not be fully utilised from the first day, so for some time profits will be negative. To run the experiment correctly you would need to have scaled that small area, even if you are fulfilling from one single store. And this is where it starts getting complicated.

To get enough demand and scale in a single town, means that you have to have enough orders coming in and enough workforce to fulfil them. There is a magic threshold where with the necessary number of orders or the right AOV throughout the day, you could make a profit. To support this number of orders and to deliver on time however, you would need to have built serious operations and tech. Having untrained pickers or slow drivers will not get you there. In on-demand every minute counts, so the applications your workforce is using need to support them in accomplishing these tasks quickly and accurately.

When demand < supply = idle workforce and when demand > supply = lost orders.

It’s usually a chicken and egg problem. To run scaled operations you need robust systems to handle the demand, and to build those systems you need to have the demand in order to know what is required to build. This is a constant exercise between ops and tech and that is why in the beginning you will have to spend money to get it right. If there were a solution for it then everyone would do it. There is a reason for all these companies building custom software. Once you reach enough scale then it’s easier to replicate the systems, processes and scale the tech. You will always have custom requirements but those are easily adjusted.

Another reason you need scale is directly linked to your margins. To get a good revenue share deal with a grocer (or your suppliers) you need to demonstrate sales, ideally incremental sales. If you are adding ten orders per day per store to Tesco, that’s insignificant. But if you are adding 5% of their in-store sales and 20% of those are incremental revenue then the game changes. You have increased leverage and you can now demonstrate that this is a service customers want. Now, if you are a grocer and run your own online channel then, naturally, you own the margins. You will still struggle to get things done however, if you are not contributing to the overall sales. When Instacart got their first contract with Whole Foods, which paved the way for many others to follow, it had hundreds of thousands of dollars in Whole Foods sales per week. This made Whole Foods executives pay attention and helped Instacart get a good revenue share deal. Similarly, and probably most importantly, to get CPG deals you need to be selling a great number of their products for them to care enough. Selling one hundred Colgate toothpastes is different to selling ten thousand. So scale is not only required to support the operations and technology, but it is also vital to get the margins that are required to build a profitable business.


Operations in grocery delivery often require customised solutions and there is not much you can copy from existing businesses because their needs will most likely greatly differ from those of your business. The way on-demand generally works is using the existing store infrastructure to do the picking, while drivers with either cars or scooters do the delivery. On some occasions you have people doing both, but once you reach a certain number of orders per store, it really helps to separate these two functions. In many cases you even separate the functions within the stores and have dedicated people doing the picking, others the checkout and the rest the sorting and handover to drivers. You are running a labour-intensive business, since you are using humans to do most of the work. And the problem you are trying to solve is the sum of multiple elements all interconnected and interchangeable, in which efficiency is your number one priority.

In-store operations and tasks pickers and drivers need to complete

On the one hand you have the demand which comes in many different forms. Small orders, large orders, different times of the day, from different stores, each of these having their own characteristics. And on the other hand you have the supply of pickers and drivers. How can you maintain an even distribution between those two? If supply is greater than demand you will end up with an idle workforce, whereas if demand is more than you can cope with, your customers won’t be able to shop from you and will either give up trying to check out or go elsewhere altogether. How do you match this every hour of every day between all the different retailers/stores you have? Effective operations results from the combination of efficiency (speed of doing things) and utilisation of your staff (pickers and drivers).

Wednesday at 6pm at Store A looks very different from Saturday 2pm at Store B. You need to adjust your operations accordingly, for every hour of the day and every store you are operating in. One order might consist of forty different items of three different temperatures and products of different sensitivity levels, whereas another order might contain just five items which can be picked from the same aisle. But both of these orders might make you the same amount of money due to their value. Can you optimise for the expensive items only? How do you make sure that the forty item order and the five item order both make you money, to justify the shopper’s and the driver’s salaries?

In the early days of Home Run, when explaining to people what we did, I often got responses such as, oh that sounds easy, you just pick a couple of groceries and deliver them. But when you dig deeper you understand that this is far more complex than it sounds. An operations team is constantly focused on making sure everything works smoothly and uninterruptedly optimizing for maximum labour utilisation and efficiency. It’s a quantitative but also qualitative exercise that never stops. Attention to detail is crucial, because when you are delivering orders within an hour every minute counts. Literally every minute. If you can bypass the checkout and pay for the order through API, then you save on average seven minutes per order. If you can reduce the out of stock levels, then your pickers might be able to handle an extra order at the same time. Having a dedicated area for drivers to collect the orders in a fast way by reducing waiting time and errors, will reduce your delivery time and everyone will be able to get more done at the same time.

While in-store operations need to be designed efficiently, a support team is always on call making sure these tasks are also run effectively. On a typical hour of any given day where multiple orders come in and are amended, picked or delivered this designated support team is monitoring everything while communicating with customers. We call them “The operators”. Operators and the rest of the operations team are working together to design, run and improve every process along the way.

Think of an airport control tower in combination with a data analysis and optimisations team. The control tower needs to have a view of what is happening every single second of the day and be able to interfere if necessary. And the data analysis and optimisations team needs to constantly improve to get the maximum out of the airspace. To achieve this though, you need to have some advanced, and most of all, robust tech in the background.


Tech is the enabler of all. More often than not, companies underestimate what needs to be built and how hard and time consuming it can get. In most of my meetings with executives from large grocery stores, they seem to be under the impression that what you need is a product catalogue and a website and by outsourcing the delivery you can have an online offering. This can’t be further from the truth.

The old model of grocery delivery typically consists of a platform that you can order your groceries from and once all orders are gathered, pickers would go around the store or a fulfilment centre/dark store and use printed A4 papers to pick the orders. In the last few years some new tech has been adopted, but delivering groceries the following day is very different from delivering on-demand. If you want to deliver on-demand everything needs to happen in real time. What is shown as available on the customer’s screen is linked to the store they are shopping from, the stock availability of that store, the picker who will perform the picking and the driver who will deliver the order. All these systems are interconnected and updated in real time. If your pickers cannot handle more orders, then this particular slot shouldn’t be available for the customer, whilst if you are ordering groceries with a large volume (a six pack of water, for example), then the system needs to make sure that the necessary vehicle (a car, not a scooter) is in place. The product catalogue needs to reflect the store’s current catalogue and stock availability needs to reflect the actual stock availability at that specific hour. Tech is required to pick the right groceries fast, manage potential replacements in real time, with minimum friction for the customer and checkout needs to happen automatically.

Parts of picker flow: shop — scan — replace — handover

Routing algorithms should utilise drivers efficiently and in many cases deliver more than one or two orders in one route. The technology to support a flawless operational execution is clearly not an easy task. These systems need to be robust and to develop them requires a constant feedback loop from the operations team. Both teams are constantly working together to make sure that solutions are being built to meet the pickers’, the drivers’ and the customers’ expectations and demands.

Routing and job schedule for a single driver(multiple drops, multiple stores)

In my experience, tech is the brain of everything. Without the brain, the body doesn’t function. And the limbs (picking and delivery) are worthless.

At Home Run we needed to know at any given time how many orders we could accept, whether we could pick the right items for these orders, communicate with the customers in case of replacements and have a clear view of product and stock availability. All in real time. Even if the signal in the stores was weak, pickers needed to be able to continue with their work without disruptions. Customer service needed to be able to amend orders even just a few minutes before leaving the store, and those changes needed to appear as instructions for the pickers and drivers. All of the tech mentioned, with well designed and managed operations, can deliver a great customer experience and reach efficiencies which will help you make money eventually.


Online grocery operations can vary among retailers, startups and countries. But the exercise everyone is trying to excel at is how you can deliver a great customer proposition while making money. I believe this can only happen if margins, scale, operations and tech work together. It is evident that the grocery sector is undergoing a major transformation. The way we interact with food has changed dramatically and now, more than ever, companies need to pay attention to these shifts and figure out ways to understand their customers and give them something they truly value. A task that is definitely easier said than done.

Stay safe ✌️
Takis M.


Thanks to Réka Ács and Christian Lerke for reading a draft of this and offering their suggestions and George Malama for the designs.

Founder | Advisor | Learner