Skip to content
Mar – May 2026 · Self-directed concept

Forecasts, not counts.
Dock planning: 100%.

My impact
Lyft bike ride flow with dock availability prediction at station selection
Role
Solo designer, end to end
Scope
Research, journey mapping, interaction design, testing
Tools
Figma, Maze

I checked availability at home, rode 15 minutes, and found every dock taken. Then it happened again the next week.

Overview

Lyft already monitors stations, pays riders to rebalance, and forecasts dock availability. None of it reaches the rider. I designed the layer that surfaces what already exists.

My impact

Riders planned around docks instead of gambling on them. The pricing hypothesis took a hit, and the numbers below are honest about their sample sizes.

  1. 01Mapped rider pain against Lyft’s stack: every fix already existed inside.
  2. 02So I designed the missing layer, dock forecasts and pricing in the ride flow.
  3. 03Ten riders tested it, and their data pushed back on my pricing hypothesis.
0.0/5
dock confidence

How confident participants felt they would find an available dock at the destination. n = 10.

0%
dock planning success

Every recorded session completed the dock planning flow. 10 sessions.

0 / 4
features already running at Lyft

Station state, rider incentives, forecasts, and mid-ride alerts all run today. The contribution is the display layer.

The gap

Everything needed already runs. None of it reaches the rider.

The forecasts, the incentives, and the live station state all exist inside Lyft. They stop at the operations layer.

What Lyft already runs
AirControl
Real-time station monitoring across the network.
Bike Angels
Pays riders to rebalance docks. Top users earn $3K a month.
Demand prediction
Forecasts dock availability internally.
Live Activities API
Ships passive mid-ride updates on iOS.
What the rider sees
Bike count, right now
A number that is already stale by the time you arrive.
Dock availability on arrival
Not shown anywhere in the ride flow.
Why this station is cheaper
Not shown. The rate moves without explanation.
What happens if the dock fills
Not shown until you are standing at it.
Three of four gaps are display problems, not modelling problems.
Shipped today · counts, right now
The shipped Lyft app: four counts, all of them currentThe redesign: availability on arrival, with the price that follows from it
The station sheet, as it ships and as I redesigned it. Toggle to see what the rider gains.
Evidence

The display meant two different things to two halves of the room.

Half read the predicted-versus-actual count correctly. The other half took it as walking-speed variance, or as riders currently unlocking. A split is worse than a low score.

Lyft built internal tools for what the app could not do.

These tools exist because the rider-facing product could not steer the network. When a company builds tooling around its primary product, the product usually has a gap. That is the question I now ask first.

Solution 01

The incentive lives inside a number riders already compare

Overstocked stations price lower to clear bikes, understocked price higher to protect what is left. No badge, no banner, no new UI.

At the station

Riders already compare price and time. Putting the nudge inside that comparison means no new behavior has to be adopted.

Overstocked·$0.39/min
Three tiers
Overstock
75% or more bikes · $0.39/min
Normal
25 to 74% · $0.44/min
Understock
under 25% · $0.49/min
Before the ride

Very likely, likely, or limited availability at the arrival station. All three options comparable in one glance.

Dock prediction on every route option
FastestCheapestClosest
When it fails

The system owns the mistake, or the rider stops believing the prediction.

Dock filled before arrival
Live Activity · reroute issued
$1.00 credit, automaticNo app to openglance-only by design
What the numbers rest on

Dynamic pricing is not a proposal, it is a measured result

Pricing as a rebalancing lever has been studied on real systems. I used the published figures to size the argument rather than to promise an outcome.

Verified
+300% revenue versus fixed pricing
PMC, 2025
Establishes that price-led rebalancing is worth the engineering, not just tolerable.
Verified
−76% rebalancing cost
PMC, 2025, same study
The operational case. Trucks are the expensive half of the current approach.
Verified
Zero trucks needed under price-led rebalancing
arXiv, 2025
Cited as an upper bound, not a target. Real networks keep some manual capacity.
Directional
Bike Angels top users earn $3K a month
Public reporting on the existing programme
Evidence that riders already respond to incentives, which is the behaviour this design assumes.
None of these came from my own testing. They are the reason the direction was worth testing at all.
The flow

One ride, end to end

The three states underneath are what happens when the prediction turns out to be wrong.

The nine screen ride flow and three edge case states
A design that predicts has to say what it does when it is wrong.
Who rides

Three riders, one failure

None of them asked for a better map.

Three rider personas with their quotes and the point where the system fails each of them
None of them asked for a better map.
Exploration

Three ways to move a bike

The chosen direction adds the least, and that was the deciding argument.

Three dock rebalancing alternatives: incentive badges, credit banner, dynamic pricing
The chosen direction adds the least. That was the deciding argument, not the strongest incentive.
Why the docks empty

The imbalance is a commute, not a bug

Bikes move with people. Every morning the city empties one side of the network and fills the other, then reverses at night.

Residential
Stations empty
Riders leave. No bike to start with.
Downtown
Stations full
Riders arrive. No dock to end at.
0 bikes
The trip does not start. The rider walks, or opens a different app.
0 docks
The trip does not end. The bike gets left somewhere it should not be.
Under the hood

Every feature maps to something Lyft already runs

Station state, rider incentives, mid-ride alerts, demand forecasts. All four already run. The contribution is the display layer, not the technology.

Zero
new technology required
+300%
revenue vs fixed pricing, PMC 2025
−76%
rebalancing cost, same study
$1.00
credit when prediction fails

Why this problem

I checked availability at home, rode fifteen minutes, and found every dock taken. Then it happened again. Getting burned by a full dock is an anecdote. It became a brief when I started logging it and looking for the systemic cause. What I found was that Lyft already monitors stations, pays riders to rebalance, and forecasts availability internally. None of it reaches the rider.

How the evidence was graded

Three figures on price-led rebalancing are Verified, from published work on real systems: revenue up against fixed pricing, rebalancing cost down, and no trucks needed. I used them to size the argument, not to promise an outcome on Lyft specifically. The Bike Angels earnings figure is Directional, a single public report, and it supports only the weaker claim that riders will rebalance for an incentive.

What testing did not settle

Ten sessions found a comprehension split, not a preference. Half read the predicted-versus-actual count correctly and half read it as something else entirely. A split is worse than a low score, because trust requires everyone reading the same thing the same way. Round 2 has three fixes queued and no results yet. This project is ongoing and the numbers are honest about their sample sizes.

Reflection
01

Reframing the brief was the design decision

Moving from add dock info to surface existing infrastructure changed what I was solving for, how success would be measured, and which directions were worth exploring at all. Two obvious approaches died the moment the brief shifted.

02

Frustration becomes research only when you treat it as data

Getting burned by a full dock is an anecdote. It turned into a brief when I started logging it, mapping the journey, and looking for the systemic cause instead of riding around the problem.