Feb 2022 - Jan 2023 • Lyft

Upleveling LyftNav

ROLE

Led the design of end-to-end experience. I also ran an alpha testing in collaboration with an engineering team, analyzed feedback using affinity mapping technique, and used the outcome to further refine the user experience.

outcome

We were able to improve key operational KPIs such as active users, reschedule rate, and operational expenditure, which translated in saving 34K in operational cost within less than a month after the official launch.

team

Aditya Dere |  Backend engineer
Josh Griffin |  Frontend engineer
Nathan Cozlowski |  Data science
Samantha Willis |  Ops
Shereen Idani |  Product
Sangwoo Kim |  Design
Context

By the time I joined the Mapping team at Lyft in late 2022, they had just launched the pilot version of their in-house navigation product made with Open Street Map and couple of other data sources such as TomTom and MapBox. It was a bold move for the transportation company to develop its own mapping solution while there already exist a reliable map provider like Google Maps.

I joined at a time when the team’s focus was achieving parity with Google Maps, which served the vast majority of our drivers and riders. Striving for parity was a reasonable direction when the product was in a nascent stage but along the way usability issues and rideshare-specific use cases were left unaccounted for. On top of that, our team set a goal of converting 70% of drivers to Lyft Nav by H2 2023. So it became apparent  that we needed to come up with unique set of values beyond parity so that our users would feel compelled to try out our new navigation system in place of Google Maps, which they were already used to.

solution
Problem & Opportunity

Glanceability
40% of color pairs in Light mode, 53% in Dark mode failed to meet our accessibility standard across our cartography and map UI elements. It led to users complaining how “the rendering on the map compared to the regular app is horrible.”

Functionality
Rideshare-specific nuances were not captured as the priority was set to achieve parity with Google Maps. Having full control over our map and routing API unlocked new set of possibilities but those weren’t utilized to its full potential.

Brand
Our product was devoid of brand personality, which led to poor recognizability and lack of differentiation. In light of those, there was an opportunity to imbue more Lyft spirit to stand against competitors.

MILESTONE 1

Reinventing Puck and Pill

On the road, all kinds of unexpected situations can impact driving. Especially as a team that puts our users safety first, it was crucial to provide pertinent heads up at the right moment so that drivers can adjust  accordingly.  But the challenge was that bombarding users with too much auxiliary information could not only increase cognitive load but also compete with other primary information. That’s where the idea of using existing navigation elements, puck and pill, in a dynamic manner came to birth.

Attention grabber
  • Helps orienting users
  • Communicates status
  • Provides visual guidance
Context explainer
  • Indicates current street
  • Elaborates status
  • Provides text guidance

Puck anatomy

Brand easter egg

Brand could be manifested in myriads of different ways. But in light of graphic-heavy aspect of navigation product, it needed to be done in a subtle way. Among available brand assets, the iconic Pink Mustache seemed like a great option because it used to be a physical identifier of Lyft drivers in the early days. So I started experimenting with it and ended up landing on the idea of extracting the distinctive shape and apply it in the compass.

Application

Default state

During normal driving condition, Puck indicates normalcy with primary color, which also helps it stand out against the map and Pill shows the current street you’re on.

Low connection

Puck and Pill both turn gray and Pill states the cause of such change. Explaining the external condition is important because it affects the loading time of the turn-by-turn guidance.

Special Conditions

When drivers enter work zone or school zone where the speed limit changes, LyftNav inform them of those changes via Puck and Pill color, along with speed limit shield that reflects such change in the environment.

Safety alerts

In tricky situations like when the pick up location is in the vicinity of bus stop or restricted curb, LyftNav not only informs users via Puck and Pill but also signals which side of street via Halo so that they can adjust their pull over spot.

MILESTONE 2
Lane guidance revamp

According to our user research it was found that lane guidance with “ghosts” (invalid turn types) and hyper- accurate intersection geometries would be the most prized banner information. However, the initial implementation failed to generate optimal visibility of the very information drivers attended the most.

Space constraint

Because we overlaid icons via code on the fly, icons had to be designed in such a way that enables all kinds of permutations without repositioning. Such approach posed signifiant constraint on the use of space, leading to low visual weight.

Imbalanced alignment

Center of mass for each icon was different, resulting imbalance of visual alignment. This issue seriously impaired overall glanceability of the information.

Illegible icons

Overall size and lack of space between ghost and solid icons deteriorated legibility of icons. Problem exacerbates when two icons are pointing in the same direction as arrow heads would almost overlap.

Not surprisingly, we saw increasing number of driver complaints around how our lane guidance system fell short of their needs.
“Lyftnav fails to provide all turns so driver can see which of multiple left or right turning lanes to be in. This is very critical for safety.”

Solution  | New system

In the process of solving the problem, I first asked my engineer counterparts to walk me through how the backend is designed. The purpose was to understand how our lane data looked like and they are processed in a form of lane guidance icons. After the deep dive, we started to form an idea of how to tackle the problem.
Architectural change
Audit of the backend architecture gave us an insight that it would require architectural change in order to solve the root cause. My proposal was to match each lane data with corresponding icon rather than drawing icons on demand with few building blocks.
Custom icon set
The architecture proposal was well received but it meant that we needed a whole new set of custom icons to support architectural change. So I combed through our lane data set and identified 140 unique use cases, which later translated into custom icons.
Final Polish
Along with rearchitecting backend and creating new icon set, we made other auxiliary improvements to achieve ideal result. Most notably we increased the size of the lane guidance from 24pt to 32pt. Secondary to that, we opted for darker background to generate greater contrast. Lastly, separators were added for visual clarity. And the following was the culmination of all the work that went in.
MILESTONE 3
Route line improvement

Route visualization is arguably one of the most important piece of information, if not the most important, in navigation space. It guides users where to go, make turns, and informs them of congestion level. The challenge is that the route needs to be highly visible against any part of the map, whether it be park or highway. Especially since route itself contains congestion information, ensuring visibility of the route and congestion at all times is not an easy feat. After the initial launch, we learned that there are few more cases to be thought through more deeply.

Insufficient contrast

Heavy traffic against the primary color didn’t generate enough contrast, making it hard to catch at glance.

Color similarities

Medium traffic color was too similar to the highway, reducing utility of the information.

Dark mode confusion

Due to inverse color scheme in dark mode (lighter colors being primary and darker colors secondary), users were confused which line represents the main route.

Approach

In this milestone, I had to consider couple of constraints. First, cartography color scheme goes hand in hand with route line visualization, but due to its scope, cartography change was ruled out for this milestone. Second, design systems team had just updated the UI color palette so we had to work within the palette they provided. Lastly, time. Since this issue was affecting overall trip time and route compliance, we had to fix the problem with urgency. With these in mind, I came up with a principle.

Anchoring
Start with brand primary color as the basis
Methodical
Use color theory to find harmonic pairs
Accessible
Ensure key color pairs are accessible
Quality
Stress test colors on the actual map
Step 1
Identifying colors using triadic pairs

In terms of visualizing route line, we needed four colors – main route, heavy traffic, medium traffic, and light traffic. Also they needed to be balanced so that the congestion information would be highly visible without overpowering the main route. When these factors were taken into consideration, tetradic pairs seemed like the best color scheme to adopt, since they produce even saturation.

Step 2
Matching colors from the brand palette

After identifying core colors, the next step was find the closest color from the brand palette by looking into properties such as hue, saturation, and luminance.

Traffic 1

To gain their full trust, we changed our qualification history to display both qualified AND unqualified orders along with reason code (why certain orders were considered unqualified).

Traffic 2

For traffic 2 (medium traffic), Amber was chosen due to its proximity to the base color in terms of hue.

Traffic 3

For traffic 3 (light traffic), the baseline color contained high level of green, which made it look less like traffic data. So for this one, we decided to draw color from Yellow family. Luminance wise, Yellow 40 and 50 was the closest to the baseline but Yellow 40 was chosen because it produced greater contrast with the main route color than Yellow 50.

Final palette

Once light mode palette was defined, dark mode palette was derived from it. For dark mode palette, the key was to keep the core color scheme consistent with light mode to address user confusion between two modes. Simply put, rather than using light indigo, we chose more saturated indigo color to be the primary.

Step 3
Stress testing
Regular
Protanopia
Deuteranopia
Achromatopsia
outcome
Impact

Nav 2.0 was a year-long project, proposed and advanced by my personal proposal. It was an attempt to impact our business through set of design-driven initiatives, while keeping users' needs at the core. And the results manifest the efficacy of this endeavor.

78%
Google Maps-free rides
734M
LyftNav-powered rides in 2024
22M
Per-ride cost savings
4.7%
Reduction in drivers' speeding
takeaways
Learnings

Design can and should influence the org to be forward-thinking

Form and function should be sought after as a package

Leverage momentum to continue pushing til execution is complete