
We previously highlighted some of the presentations delivered during our second annual Uber Technology Day. In this article, engineering senior software engineer and Uber Tech Day presenter Ines Viskic discusses how we ensure the accuracy of our maps through quality metrics.
On the surface, Uber’s ridesharing technology may seem simple: a user requests a ride from the app, and a driver arrives to take them to their destination. Behind the scenes, however, a giant infrastructure consisting of thousands of services and terabytes of data supports each and every trip on the platform.
At the heart of this infrastructure, both map data and services enable the most basic features powering our business. These features include the ability to find locations and addresses, match riders with drivers by geographic proximity, show drivers and riders their estimated time of arrival (ETA), and navigate them to their destinations. Although map data and services initially grew to support ridesharing, we continue to build new products on this base, such as Uber Eats, Uber Freight, and JUMP Bikes.
Rather than the simple, two-dimensional representations people see when they look at the Uber app, a map is actually a complex data structure. In computational terms, we need to define the size of each geographical portion of a map, as well as decide which objects are included/displayed on a map. For our purposes, roads and crossroads, as well as their attributes, are the most obvious inclusions. On the other hand, features such as contour lines connecting points of equal elevation are irrelevant to our current use cases, so we do not include them on our maps.
As the world around us changes, so should maps. For instance, a new restriction on left turns at an intersection will change the routes we send to drivers; the addition of a stop sign or a temporary road closure due to construction will affect the ETA times we compute; and a challenge unique to ridesharing services involves determining allowable pick-up and drop-off places on the map.
At Uber, the quality of our map data and map services is invaluable to delivering a great user experience. To accomplish this, maps must reflect geographic reality as closely as possible. The geospatial data generated by each of the millions of trips taken daily makes this possible, helping us refine and update our maps to achieve the highest quality. In this article, we define our map regions and show how we compute map quality metrics.
How Uber defines a map region
Before we can compute and report map quality metrics, we first need to define our map regions. For example, we might be interested in the map quality of North America, or the state of California, or Santa Clara County, or even just the most urban (and trafficked) areas of the city of San Francisco.
Before Uber launches operations in a new area, we define and onboard a new region to our map technology stack. Inside this map region, we define subregions labeled with grades A, B, AB, and C, as follows:
Grade A: A subregion of Uber Territory covering urban centers and commute areas that make up approximately 90 percent of all expected Uber traffic. With that in mind, it is of critical importance to ensure the highest map quality of grade A map regions.
Grade B: A subregion of Uber Territory covering rural and suburban areas that might be less populated or less traveled by Uber customers.
Grade AB: A union of grade A and B subregions.
Grade C: A set of highway corridors connecting various Uber Territories.
The Uber Map Model
Maps are intuitively defined by their purpose. A map orients us in space, letting us see where we are in the world. With a map, we can also navigate from where we are to where we want to go.

From the perspective of determining map quality, we define a map as a collection of map features, from man-made places like road segments, junctions, and buildings to natural features such as mountains, lakes, and oceans. Further, for Uber-specific use cases, we include access points, which specify allowed or preferred pick-up and drop-off locations for a certain address point, as map features. For example, access points at the San Francisco International Airport include a set of terminals, gates, and airport-determined gathering spots.
Finally, each map feature has a set of attributes that fully describe it. For example, a road segment’s attributes include geometry, length, name, road class (local road? highway?), and usage (road? bike path?).
Map features and attributes form a data structure which we call the Uber Map Model (UMM). We can visualize the UMM as layers of map features that collectively create a map, as seen in Figure 1, on the right.