Sunday 11 August 2019

Online food delivery in India - a case study


Swiggy and Zomato are like duopoly in the high growth online food delivery space. I decided to do some data analysis based on my orders on these two platforms. It took around 3-4 hours of manual effort to collate all data from my order history and emails.

The analysis is derived from my orders in my home area(Hoodi, Bengaluru) and therefore may not represent the overall performance or user behavior on Zomato and Swiggy. All users may not have same behavior and typically there are multiple cohorts based on different mindsets and needs. 

Both the platforms - Swiggy and Zomato are doing well and this case study is a mere reflection of my observations and not their overall performance.




It was all Swiggy until June 2018 when suddenly Zomato picked up and became a clear winner for me. What happened? There were various factors:

Swiggy started manipulating restaurant ratings: I used to order from Madurai idly shop regularly on Swiggy. One fine day I saw the rating of this restaurant has drastically improved from 3.8 to 4.2. It was simply not possible in such a short time. This did not dilute my trust in the restaurant but diluted the trust on the platform (Swiggy). I could not trust Swiggy with ratings anymore. If I had to explore a new restaurant I would rather go to Zomato!

Lesson: Never take a step which will erode customer trust even if it gives short term benefits.

Swiggy could not meet its own delivery time commitment: Swiggy mentions delivery time below each restaurant it shows up on its home page. It is one of the crucial factors in deciding which restaurant you want to choose. In essence it is setting an expectation whether 25 minutes or 55 minutes. The problem happens when you do not meet your own set expectations. Around May 2018(look at the twitter screenshot below), I observed that Swiggy started assigning multiple deliveries to one agent based on the restaurant and delivery locations. This is an awesome feature to have for any company. I am sure this would have saved a lot of supply chain cost as Orders/delivery guy would have gone up drastically; also cumulative distance travelled would reduce sharply. However this led to a problem – Swiggy started breaching its expected delivery time very often. Had it increased its expected delivery time to factor in the effect of combining multiple deliveries this would not have been the case.

Lesson: Never set an expectation you can’t meet for at least 90% of the times. Never launch a half-baked product, it should be thought through end to end. In the above case the cost per delivery went down but the % of orders meeting expected delivery time dropped.



Zomato ties up with big brand names:  Zomato made an exclusive tie up with brands like Eat fit, Box8. Also Zomato tied up with other popular restaurants/kitchens which had a good brand recall. Eat fit has a clear USP of hygienic and healthy food. Box8 promises to make deliveries within 38 minutes and has an amazing customer service. I personally like both these brands and they contribute to ~20% of all my orders. Swiggy has launched a few private labels which are exclusive but they did not appeal to me.

Lesson: Exclusive tie ups with big names corners the competition.

Offers: Order data also shows that Swiggy orders caught up again during March-April 2019 but fizzled out later. What happened? 

I had at that time acquired a free yearlong Swiggy super membership: This gave me a free delivery option on any order. It was the IPL time and Swiggy was running crazy offers – one of my favorites was Swiggy6 which gave 60% discount.

I decided to use the above two offers to order ice cream and deserts frequently at dirt cheap prices. Even if the order was delayed, it was not a problem for me because I continued using Zomato for my main orders (dinner).  This was the main reason I gained a few kilos during this time: / This user behavior stopped once IPL came to an end and the offer was withdrawn.

Lesson: Deep discounting offers will bring users to your platform temporarily but they won’t stick around if there are core issues (eg: cooked up ratings, breach in promise time)

How bad is bad?



Platform/Year
Cancelled
Delivery time <40 minutes
Delivery time >40 minutes
Grand Total
Swiggy
2017
3.33%
83.33%
13.33%
30
2018
3.92%
68.63%
27.45%
51
2019
7.94%
61.90%
30.16%
63
Zomato
2018
7.14%
67.14%
25.71%
70
2019
4.10%
78.69%
17.21%
122

I have taken a liberal benchmark of 40 minutes for order delivery assuming food taking 20 minutes to be prepared and rest for delivery so that it remains hot when delivered.

Swiggy set itself a very strong benchmark in 2017 with ~83% deliveries within 40 minutes but the performance has gradually taken a beating to ~62%. What is worse is that ~8% orders got cancelled. On the contrary Zomato has improved drastically on these parameters.

Insights into user behavior and operations planning:

Type of Order
Sun
Mon
Tue
Wed
Thu
Fri
Sat
Grand Total
Breakfast
33.73%
8.43%
6.02%
9.64%
8.43%
7.23%
26.51%
83
Dinner
19.08%
8.40%
14.50%
14.50%
9.92%
19.85%
13.74%
131
Lunch
56.14%
8.77%
5.26%
8.77%
0.00%
7.02%
14.04%
57
Others
37.68%
4.35%
2.90%
4.35%
4.35%
10.14%
36.23%
69
Grand Total
32.65%
7.65%
8.53%
10.29%
6.76%
12.65%
21.47%
340

About 54% of my orders were placed during weekends. That roughly translates to 3x volumes on weekends. However this skew at 1.2x is relatively manageable for dinner time.  This is a tricky supply chain problem to solve. Few ways in which this can be done is:

1) Building capacity to cater highest volume days – however this will lead to underutilization of capacity on weekdays

2) Shift planning - based on the order spread, I have tried to solve for capacity planning in a crude way. I have taken morning/evening shifts and 5 day week. Weekly offs could be staggered to ensure max capacity on weekends. However 4x volumes on weekends in morning shifts require temporary staff on weekends. Lesser temporary staff will be required if workers are asked to switch shifts on certain days, however this is not a good practice and may lead to higher attrition. (This problem can be solved in a scientific way too using OR techniques.)

Shift
Sun
Mon
Tue
Wed
Thu
Fri
Sat
permanent staff required
temporary staff required on weekends
Morning
28
7
7
7
7
7
28
18
10
Evening
42
35
35
35
35
35
42
52
0

3) Another way in which this could be solved is by implementing a combination of combining deliveries and increasing the promised time during weekend along with a mix of capacity planning.

Below is a comparison Swiggy and Zomato on various parameters. I have not included parameters like customer service and App experience. Will try to write about it in a different post.

Parameters
Swiggy
Zomato
Winner
Restaurant Pricing
Controlled by the restaurant, Swiggy earns a % commission (This I came to know from a known restaurant owner who uses all online delivery platforms)
Ditto
NA
Delivery charge
Controlled by the platform – Swiggy Super membership brings delivery charges to 0
Controlled by the platform
Swiggy
Restaurant ratings
Can’t be trusted
Seems trustworthy
Zomato
Promised time
Lots of breaches
Mostly kept
Zomato
Delivery speed
Average
Fast
Zomato
Offers
Cool payment offers, restaurant offers, reactivation offers
Ditto
NA
Exclusive tie ups
None in my area
Box 8, Eat fit
Zomato

In conclusion my perception that Zomato is better in my area does not seem to be misplaced. Do share your feedback.

This case study is also published on linkedin:  https://www.linkedin.com/pulse/online-food-delivery-india-case-study-nikhil-kumar/?published=t