What are we trying to achieve?
1) We want to optimize the way food is delivered to the customers. For this we plan to improve the batching algorithm using which multiple orders ordered by the customers from the same geo-hashcode and to the same restaurant, around a particular window of time are delivered by the same delivery executive. We also plan to show the customers a timer that tells them that if they order from a particular hotel/restaurant before the given time, they will receive the order faster. This will not only increase the number of orders for Swiggy but also increase batching for these orders, which in turn will increase the profits as well as the customer experience significantly.
2)What observations made us do this?
As we analyzed the data that we had received from the Core team we realized that in the csv file :- batch_timestamps.csv , there were a total of 1,05,305 records out of which only 4796 records had a duplicate Batch id. Thus, we could see that more than 96.5% of the total orders were delivered individually by a delivery executive for a single customer, and there was minimal batching of orders. This did not seem like an optimized approach. So we plan to use the Order_data(restaurantId, geo-hashcode, order-time, delivery time and delivered time) to optimize the batching algorithm . This is coupled with a timer on the Swiggy main page for the restaurant Ids for a particular customer from where his order can be batched with some other order. This seemed like a win win situation for all as Swiggy is saving precious resources and the customer saves time.
3) How did we do it?
1) Firstly, we analyzed the data of the number of orders for a particular pair of restaurant id and geohash code. We found out the peak hours during which Swiggy received the maximum orders and classified the number of orders according to this analysis.
We inferred from the graph[fig 1] in attachment, that the orders can be classified under 5 windows. They are: 0-7 [HH] 8-11[HH] 15-18 [HH] 12-14,19-20 [HH] 21-23 [HH]
This data will help us optimize the average time on the basis of the time at which the customer is looking at the restaurant in the app.
2) We used the data on the delivered time, pickup time and ordered time to come up with the Avg time that is taken for an order to get delivered from a particular restaurant to a particular geo hash code.
3) Next we superimpose the 2 data sets to come up with a normalized value for the batch time. This is the time that a customer will see as a timer on a restaurant in the app when he tries to book from a restaurant from where somebody from his region has already booked. From the chart [fig 3]in the attachment (X axis :- Batch time in minutes, Y axis :- Number of unique pairs of restaurant_id and Geo_hashcode) shows that after using our algorithm majority of the orders will have a batch time of 0-15 mins, hence batching will be significantly increased for that particular segment of orders and others logically follow.
Log in or sign up for Devpost to join the conversation.