Rethinking order pick ups to ensure a 19 min delivery

My role
I was in owning the end to end experience and was responsible for delivering it. I also helped product team in defining strategy and vision for the feature.
Team
1 designer, 2 product managers, 10+ engineers
Timeline
Feb 2022 - Jul 2022
Dunzo
One of the largest 24X7 delivery platforms in India, that picks and delivers anything and everything within the city.
Dunzo Daily
Org’s primary focus, Dunzo Daily is a quick e-commerce service which full-fills your daily needs through its micro-warehouses & local merchants.

How does Dunzo Daily work?

Customer places an order
Nearest merchant receives and prepares the order
Delivery partner picks up and deliver the order

Why is it so important to deliver in 19 mins?
Our business is focused on fulfilling the urgent/instant needs of grocery. To stay in the competition, we have to be as quick as our competitors if not faster who are promising 10 mins, 15 mins delivery.
Why 19 mins and not other number?
When we first launched Dunzo Daily, the leadership team collaborated with the analytics team to determine the time frame in which we could deliver with the available resources.
How it leads to a user problem?
Our entire marketing and advertising pitches Dunzo Daily as a 19 mins grocery delivery. This results in a breach of trust anytime we do not deliver the order within the specified time range.



Time distribution in order journey
1. Partner reaching the store
What if we can eliminate this time?? 🔥
2. Merchant preparing an order
Handled by Merchant team
3. Partner delivering an order to the customer from the store
Out of scope - tackled in a different project
🤨 Existing system

Partner assigned to an area (multiple stores)
A partner within the designated area can be assigned an order from any store depending on its proximity to the store.
✨ New system

Partner assigned to a store
A partner can deliver the orders only from its assigned store, which means certain no. of partners will always be available at the store.
With the new system
Potential problems we’ll face
🛍
Order assignment related
👉 Since there’s no pre-order assignment, when and how an order will be assigned to a partner?
👉 How do we know which order has been picked up by which partner?
🚶🏻♂️
Partner queue management related
👉 How does the system know whether or not the partner has arrived at the store?
👉 Which partner should take the order first, and which one will have to wait should?
👉 How do partners qualify to pick up an order?
👉 How do we make sure that partners don’t create any kind of chaos?
Updated approach for order picking
TL;DR - When a delivery partner arrives at the store, they will be given a queue no. based on their time of arrival. An order will be handed over to the partner once they reach the top of the queue.

Strategy
Collaborated with the product team to develop this plan of action, which allowed us to experiment with and validate the new system.

MVP - Order assignment
Possible ways
🔢
By typing 4 digit OTP
Each order bill will have its own OTP, which the partner must enter and verify before picking up the order.
⌨️
By typing order ID
We are already using order IDs for other use cases. We can reutilize the same. Partner has to type an order ID available on a bill to verify the order.
☑️ Secondary solution
🤳🏻
By scanning order QR code
Each order bill have a QR code. Partner has to scan and verify before picking the order up.
☑️ Primary solution
Order bill which will be attached to an order

MVP - Order assignment
Existing flow of order picking

MVP - Order assignment
New experience
When a partner reaches the front of the queue (which is managed operationally), they will be given an order by a store person. The partner will scan an order bill attached to order before starting the delivery.

MVP - Order assignment
Interaction - Happy flow

MVP - Order assignment
What if scanning fails..
If for any reason they are not able to scan or if scanning is getting failed, partners can manually type order ID mentioned in order bill and pick up the order.

MVP - Order assignment
Interaction - Incase scanning fails

Results from MVP
We launched it in 2 new stores and compared the results to the other 5 control stores that were operating under similar conditions.
~75%
Improvement in time taken from ‘order being ready to pick up by a partner’
~68%
Orders delivered within 19 mins compared to ~36% in control stores

Feedback from partners and ops. team on MVP

Issues related operational queue
👉 Some partners would cut the line and end up arguing about picking up the order.
👉 Because order tokens are handled operationally, some partners will take multiple tokens, causing others to wait longer.
👉 Some partners have suggested assigning tokens/orders within the app itself to avoid any kind of confusion/fights
Product solution for Queue Management
Our MVP learnings clearly suggested that we must build product for queue management in order to scale the entire feature. Following are 3 key components of the queue.

1. Checking in at the store
Possible solutions
📍
Using GPS
We enable them to check-in with a simple button directly from their phone when they enter into store radius.
Pros
Easiest way for partners. We can also reuse the existing defined store radius.
Cons
The store radius varies from 200m-300m so it will not be 100% accurate solution.
🤳🏻
Scanning dynamic QR code
We install a Dynamic QR code display (tablet) at the store, which partners have to scan to check-in.
Pros
Quite easy for partners. 100% accurate and refreshes on a regular basis, resulting in almost no potential fraud.
Cons
Because hardware devices can fail, we'll need a backup option as well.
☑️ Finalised solution
😸
Face ID, Finger print scanner
We install Face ID/Finger Print scanner at the store, which partners have to scan to check-in.
Pros
100% accurate and refreshes on a regular basis, resulting in almost no potential fraud.
Cons
Hardware dependency. It will also require the database of all partners' face/finger prints.
Dynamic QR code display
We installed tablets at each store which will display dynamic qr code. It will be managed by a store person.
01. QR code being the most prominent entity which makes easy for partners to scan. It will keep refreshing as partners scan it successfully.
02. In case scanning is not working, partners can manually type the QR number which is displayed below QR code.
03. Partners can manually refresh QR code if the current one is not working due to any technical issue.
04. Since it might be placed outside of the store, to make the logout process more secure, we added one extra step where a store person has to type a pin to log out.

1. Checking in at the store
Partner’s experience
Partner will have to scan the dynamic QR code to check in at the store. On successful check in, partner will be assigned a queue no. based on no. partners who have arrived before him.

Queue management
2. Waiting in the queue
Partner will be waiting in the queue once queue no. is assigned. Queue no. will keep getting updated as the front partners pick up the orders.

Queue management
3. Becomes eligible to pick up the order - UX
When the partner becomes eligible to pick up the order, he or she will receive a notification with a buzzer sound. The partner will have X minutes to scan and pick up the order. X can be customised based on store conditions.

End to end experience
Queue management
🤝
Order assignment (MVP)

Business impact
We started to launch this entire feature in higher order volume stores and planning to scale across all Dunzo stores. Following is the early impact from the 10 stores.
~77% less
Order waiting time
Time taken from order being ready to pick up by partner reduced by whopping X mins.
~79%
Delivery within 19 mins
We saw positive lift in no. of orders delivered in 19 mins which was trending around 40% earlier.
~32% more
Orders completed/hour/partner
Partners are able to complete more orders in the same time which ultimately led to Dunzo saving ₹X per order.
Partners’ feedback
Our team conducted telephonic interviews with old and new partners to understand their experience with the new system.
👉🏻 Easier & faster to deliver
They mentioned that not having to pick up orders from multiple locations saves their time, is more convenient, and allows them to pick up more orders.
👉🏻 Resolved operational queue issues
Building a product solution for queue management streamlined the process by resolving almost all operational issues such as cutting the queue, fighting between partners, taking orders without scanning, and so on.

Learnings
Drive project with the iterations
Because this was a new concept, stakeholders had difficulty imagining how it would work, look, and feel.
While we were brainstorming different solutions, I made sure that with whatever information I had, I could create a few iterations to back up the ideas.
It assisted us in understanding what was not working and made the way for a solution that would actually work efficiently.
Collaborate empathetically with developers to find an optimal approach
In terms of deadlines and especially tech, this project had the most tight constraints I've ever had to work with.
I accepted them as a challenge. I connected with the devs frequently to understand their perspective on questions such as why these constraints, what we can do about it, why such low tech bandwidth, and so on.
As a result, we were able to work together to overcome constraints and find the optimal solution.