‘Location’ is one of the most critical aspects that drives customer experience through ‘Search & Discovery’ and ‘Online Ordering’ on Zomato. Starting from the different restaurants to be showcased on the app, to delivering orders at the accurate location, it plays a big role in determining how customer-friendly our platform really is.
A correct location input ensures a seamless delivery experience for both, our customers and our delivery partners. More than anything, it helps our delivery partners navigate with ease, and deliver orders without making multiple phone calls to our customers. This allows them to optimise their time and deliver as many orders as they can.
Till around a year and a half back, the map views displayed on our app were not as well defined as we would’ve wanted them to be, and instead looked like broadly mapped block visualisations that could lead to ambiguity and marking of incorrect locations.
In light of these issues and while solving for a better last-mile handshake experience between our customers and our delivery partners, it occurred to us, why not develop enhancements to the existing mapping system? This could be done by building footprints instead of relying on external mapping services.
How did we go about enhancing our system?
We started by taking on two challenges –
- Identifying high volume geographical entities (‘Points of Interest’). For example, Offices, Colleges, Apartments, Hospitals, etc.
- Mapping these geographical entities
Mapping actual buildings / societies / offices is a complex task; especially when the GPS accuracy relies a lot on the devices of our customers.
We started by evaluating customer addresses as the first step.
On a daily basis, there are a large number of customer addresses added, which contain details around their latitude and longitude, as well as information around the names of their localities / societies. We tokenized these customer addresses and started ranking words on the basis of the rarity of tokens similar to TF-IDF. This helped us generate key terms in relation to localities / societies such as ‘vipul’, ‘hiranandani’, ‘ventura’, ‘wellington’, etc.
Managing the local language diversity was another challenge. We had to iterate and smoothen the model inputs for different cities. For example, the spatial density clustering inputs that worked for Gurgaon or Chandigarh failed to produce results for Mumbai.
To tackle this, we started creating density-based clusters for each of the key terms we had defined in Step 1. Post this, we added smoothening models on these clusters and started seeing areas being defined in a much better manner.
- We created GeoJSONs to map the geographical entities and built a moderation queue. It was also important to add some quality metrics in place to check for any incorrect POI mapping.
- Once the moderation process was complete, the POIs were activated for our customers to view.
- Additionally, we built a feedback loop to track a few UX metrics. We released these POIs in A/B mode and utilised the metrics to compare and correct any wrongly mapped POIs, which were live at that point.
To take a step further and make POIs even more helpful, we attributed whether a particular POI entity was an office, home, college campus or a hospital. This allowed us to create dynamic address forms, which helped us share information with our delivery partners in a more structured format.
What was the impact?
1. Better accuracy
Since our customers can now view building footprints on their map, it helps them correct any GPS inaccuracies on their own devices even during a low signal in the area.
With high to medium range devices, we get an average GPS accuracy of 60m to 150m. However, these can be of up to 2-3km as well, depending on the signal and device.
2. Fewer partner-to-customer calls and shorter handshake time
With more accurate delivery locations (lat/lng) and with structured addresses in place, the delivery partner doesn’t have to call and confirm the lane, tower, or floor with the customer. This also results in faster deliveries (which is especially helpful during peak times).
3. Better dining recommendations
POIs also helped us drive better Go Out recommendations. For example, if a customer is within an office complex, it’s better to showcase restaurants within that complex on priority, rather than those outside of it or across the street.
1. Scaling from 1-to-N
In order to scale the POIs, we have started identifying areas with high density addresses and have began generating POIs focused on those specific areas.
2. Order clubbing
We are working on experimenting with POIs to drive POI-based order clubbing.
3. Leveraging learnings
We are learning more about the average handshake times for different POIs (for example, a college or an office might take more time to deliver than a small housing society); and are utilizing these learnings to drive additional use-cases with the sole objective of improving customer experience.
We are constantly working on making our location systems more robust. If you feel you can help contribute towards this goal, do reach out to our team members and tell them why you’d be a great fit at Zomato –
Team: Sumanshu Dwivedi, Aayush Gupta, Yash Gupta, Gaurang Sawhney, Manas Kaushik, Mithran Natarajan, Geetika Garg, Sushant Jain
With contributions from Aayush Gupta and Vaibhav Gupta (ex-Zoman)