Ensuring a smooth and satisfactory last-mile delivery is part of the promise DoorDash makes to consumers. Keeping this promise requires augmented mapping capabilities that understand the complexities of where consumers are relative to their address. Consumers expect their deliveries to be reliable and fast. A delivery that goes missing or is undelivered due to a wrong address being entered or Dashers, our name for independent contractor delivery drivers, not being able to find the address is a customer experience we want to avoid. In this article, we will explain why DoorDash needed to build an in-house mapping platform. We will describe challenges in using Google Maps Platform for doorstep delivery, and how DoorDash was able to overcome these challenges by augmenting Google Maps by capturing correct addresses and micro-routing Dashers with precise delivery locations and contextual navigation data during every step in the delivery journey. Finally, we will explain how to leverage solutions created by DoorDash to solve similar problems in other domains.
Why DoorDash needed to augment the Google Maps Platform
Google Maps Platform is a best-in-class geospatial platform used to power many real-world experiences for customers across many industries, but is not necessarily optimized for timely last-mile delivery. The geocoding and place search APIs available through the platform are considered to be the best in the industry. Naturally, this leads many to believe that if an address can be found on Google Maps, it must exist. If it exists, it must be valid and deliverable. While often true, this conclusion is not always the case and there are four general reasons why.
- Google Maps Platform is designed for places, not people locations
- Google Maps does not store subpremise level data, as such data is not required to return coordinates for places.
- There is a disconnect between address autocomplete and geocoding
- Data between autocomplete suggestions and place APIs can be different for some addresses. Therefore, using the autocomplete suggested addresses as-is for delivery can cause the actual address used for delivery to be different from the original address intended by the consumer.
- While very good Google Maps address data quality is not perfect
- Google Maps address data can be inaccurate and or wrong, and in some cases that leads to challenges explained below in completing deliveries successfully.
- Google Maps may be slow at supporting new addresses
- As consumers and merchants place orders from new residential and commercial areas that have been developed recently, Google may not recognize such areas, which can cause problems for consumers and merchants located in these areas.
Subscribe for weekly updates
Google Maps Platform is designed for places, not people locations
Google Maps is designed to find places and points of interest, not where people are physically located. As an example, consider the location of Avalon Mountain View, an apartment community with multiple buildings, located at 1600 Villa St, Mountain View, CA 94041.
It’s unclear whether the coordinates returned when entering the address are for a specific building in the apartment complex. In this example, attempting to refine the location by using a valid sub-premise (apartment unit in this case) in the address does not yield better results as Google simply drops the apartment information, even though the address/apartment is valid.
These behaviors are because Google often does not contain accurate sub-premise/unit level data in its location database. For Google Maps, which primarily focuses on providing addresses, accurate subpremise/unit level data is not needed in order to return a set of coordinates.
There is also a lack of emphasis in the Google Maps API documentation, which recommends avoiding subpremise level information when attempting to find a location, even though it could be useful for delivery.
In addition, the geocoding API is expected to be used only with complete, unambiguous addresses, as called out in the documentation. Attempting to use the API with ambiguous addresses may lead to unexpected results.
Unfortunately, it can be difficult to know whether an address is ambiguous/incomplete before calling the geocoding API. As an example, the address 1, Snyder Drive, Wellesley, MA which looks complete is not a valid address and produces an unexpected result when geocoded.
Google Maps will not flag an error when an address input is invalid. When Google receives an invalid address, it uses internal heuristics to find the closest possible match for the address, which can lead to unforeseen issues when using such an address for delivery.
Impact of missing or inaccurate subpremise information on deliveries
DoorDash has historically had challenges with large complexes/apartment communities at identifying the exact consumer location to help the Dasher complete the delivery on time. We’ve seen significantly worse Never Delivered rates, failure to complete the order by the quoted delivery time due to inability to pinpoint where the order should be delivered, and a reduction in deliveries completed per hour for the Dasher. The same issue extends to complex commercial locations such as casinos, which can be difficult to navigate internally. Multiple buildings and entry points with casinos make identifying the precise consumer location difficult with a standard Google Maps pin. The root cause of delivery inefficiency at complex locations is because Google Maps Platform focuses on identifying place locations instead of where people might be located in those places.
Disconnect between address autocomplete and geocoding
Address autocomplete and geocoding APIs are designed to offer address suggestions and location metadata. However, the address data backing these APIs is not guaranteed to be in sync. Getting both to work well together is challenging because addresses found in one system may not exist or may look completely different in the other.
DoorDash implements this pattern which enables consumers to type a freeform address, pick an address suggestion from the Place autocomplete API and geocode the suggestion to a location to be used for delivery. The goal of the autocomplete API is to be fast but not always match real-world addresses. In our experience with the autocomplete API, we’ve discovered that an address recommended by the API may not exist in the Google Maps database. In some cases the place identifier recommended by the autocomplete API for a particular address links to a different address in the Google Maps database.
Therefore an address recommended by autocomplete suggestions that visually looks correct to the consumer may be geocoded into an address that does not match what the user originally entered. This can result in an address getting resolved that is different from where the user is located and cause downstream problems due to address inaccuracy.
Building an address entry system that uses a combination of autocomplete suggestions and geocoding can make identifying an accurate consumer location difficult as the final address may be distorted from what the consumer entered.
Google Maps address data quality is not perfect
The address data quality in Google Maps Platform may be insufficient for delivery purposes in some cases - even when an exact address match is found, it may contain errors that would lead to bad outcomes if the address were used.
Geocoding is the process of transforming a description of a location - such as an address, or a name of a place—to a location on the earth's surface. Google geocoding results may contain a random sub-premise injected in the address even if the address input did not contain a sub-premise. For example, geocoding the address 3737 St Johns Bluff Rd D, Jacksonville, FL returns an address with a random sub-premise Apt 509 injected in the address.
The user never intended for Apt 509 but is now stuck with this address as it is the best address available on Google for this location.
Occasionally, Google Maps will get confused with streets that have matching names located in neighboring cities. Stoneham and Melrose are neighboring cities located in Massachusetts that both have an address at 10 Main Street. Geocoding 10 Main Street, located in Stoneham, returns the location of the street in Melrose.
A consumer that intended for his address to be at the Stoneham location can expect to be given an address located 6 miles away.
Postal code accuracy is highly important for tax calculation. Using the wrong postal code to determine the tax that a consumer should pay during order checkout may lead to the consumer getting overcharged or undercharged. Doing so may invite subsequent penalties and audits. Our team found that the accuracy of Google postal codes was a challenge, especially in some of the countries we operate in.
The examples above show the Google address data quality lacking, which may introduce subtle bugs in the address that was used and create obstacles in completing the delivery successfully.
Google Maps may be slow at supporting new addresses
New addresses get created over time and any mapping platform is expected to refresh its address database periodically to recognize the newly added locations. DoorDash has found Google Maps to refresh slower with new addresses when compared to other mapping platforms. Slow address refresh rates cause delivery problems when a consumer or merchant is located in an area that was recently developed and has not been added to Google maps because they may not be easily found on the map. When looking up a new address that is not yet available on Google Maps, Google uses heuristics to look up and suggest the next best available address. Unfortunately, the next best address may not be the address the consumer or merchant is located at, leading to pickup or delivery issues.
As an example, consider the current address on Google for an upcoming Chipotle in New York, located at 110 Veeders Mill, Amsterdam, NY 12010. As Google does not recognize the address, it suggests the next address in the middle of a state highway intersection, which is incorrect.
The merchant’s actual location is 2.2 miles away, represented by the pin on the top.
Supporting consumers located in new developments or merchants in newly established commercial zones is important to growing orders and offering consumers more options to order from on the marketplaces. Slow adoption of new addresses can make achieving these goals challenging.
Using address validation to improve delivery address precision
DoorDash built a mapping platform to augment Google Maps to overcome the limitations described previously. One of the goals of the platform is to capture correct consumer addresses at various stages of the consumer journey from entering an address to exploring DoorDash merchants, to finally placing an order to a delivery address. We introduced an address validation layer that checks if a consumer address will be hard to deliver to and prompts the consumer to fix the address and avoid delivery problems.
The goal of address validation is to:
- Check the address exists
- Verify the address data is accurate before using it
- Minimize cost and improve efficiency
- Improve DoorDash’s reputation as a reliable logistics platform with consumers
- Reduce fraud
Detecting if an address is hard for delivery
Address validation uses a combination of third-party address information as well as in-house signals generated through Dasher movement and prior delivery successes and failures to the address to determine the likelihood that a delivery to an address will be successful. The more DoorDash delivers to an address, the more our platform learns from the delivery experience and the more accurate we get for future deliveries.
Currently, we are able to validate addresses that fall into the following categories:
- Generic addresses (e.g. delivery to a city or the middle of a highway)
- Multi-unit addresses missing a subpremise
- Multi-unit addresses with an invalid subpremise
- Areas with high delivery failure rates or high Dasher delivery times
To detect generic addresses we use the place types field returned from the Place Details API. If an address selected for delivery has a place type that is part of a whitelist of generic place types we prompt the consumer to select a new address that is not generic.
To detect problems with multi-unit addresses we use third-party address verification services. Behind the scenes, these services use authoritative address databases for the country, for instance, USPS for US addresses and CanadaPost for Canadian addresses.
DoorDash has access to large amounts of Dasher movement data as they pick up and drop off deliveries. By combining this data with delivery lifecycle events (e.g. Dasher arrived at merchant, Dasher dropped off order) and running data science and machine learning pipelines we are able to identify which addresses perform the worst when compared to the baseline metrics. By analyzing historical delivery data we can predict the probability that a future delivery to a nearby address is likely to be troublesome and proactively prompt the consumer to improve the dropoff address information.
When the address is determined to be in one of the categories above, we prompt the consumer to provide additional information which varies depending on the particular address type and identified issue. For certain categories, we prompt consumers to select a new address. In other cases, we ask the user to pin-drop the location or add Dasher instructions. Address validation is now supported across all consumer platforms where DoorDash is available, namely iOS, Android, and Web, and is helping DoorDash deliver more accurately, reduce delivery times, and keep our consumers and Dashers happy.
Application to domains beyond delivery
Address validation is relevant to other industries beyond logistics such as e-commerce, healthcare, and insurance.
- E-commerce companies can ship products to consumers with confidence, and they can avoid missed deliveries due to inaccurate addresses or paying double shipping costs due to redelivery.
- Healthcare providers can validate patient address data in their medical records, ensuring that addresses entered into the systems are accurate for pinpoint precision. With access to accurate patient addresses, hospitals can make better recommendations of care to patients such as referring them to healthcare providers based on their proximity.
- Insurance companies can provide more accurate quotes to their consumers by knowing the exact address and can prevent fraud when processing claims.
Although Google Maps Platform solves many use cases in the geospatial domain, it has notable limitations described previously. Due to these limitations, it cannot be applied directly to logistics and many other domains, especially where address accuracy is critical to success. Address validation allied with Google Maps can provide the boost your business needs on the path to success.