Leeway is a mobile app that takes the guesswork out of paratransit. It predicts whether a ride will arrive in time for an appointment, and when it won’t, it calls ahead to reschedule on the rider’s behalf.
The idea came from a teammate’s former boss, who lives with primary progressive multiple sclerosis and uses a specialized wheelchair. Paratransit is essential for getting him to appointments, but its unpredictability means building in hours of buffer or paying far more for a less accessible Uber, a burden shared by him and his caretaker.
The Americans with Disabilities Act requires transit agencies to offer paratransit to people who can’t use fixed-route transit. The service exists, but it is hard to rely on. East Bay Paratransit can only be booked by phone, and a ride counts as on time as long as the van arrives within 30 minutes of the booking window. Even so, 5% arrive later than that, and drivers wait only five minutes before leaving.
For someone riding to and from work each day, that means a wait of more than half an hour roughly every other week.
Leeway recommends booking windows based on historical ride data and books the ride by phone using Cartesia’s voice agent. During the trip, it predicts live how likely the rider is to arrive on time. If the ride falls behind, it calls the appointment to ask about rescheduling, so the rider waiting at the curb doesn’t have to.






We read forums and public discussions and ran street interviews. Two priorities came out of them:
We wireframed in Claude Design, starting broad and narrowing to the key screens of a single user flow. After several rounds of feedback from street interviews, the design files went to Claude Code to build the front-end prototype.

The design aimed to reduce cognitive load, take action proactively and preserve the rider’s agency.
We aimed for WCAG 2.2 AAA conformance where feasible. Next steps include adjustable text size, voice input and control, colour-vision preferences and stronger screen-reader support, validated with real riders and caregivers.
Leeway estimates arrival as the start of the booking window plus two uncertain parts: how late the van picks the rider up, and how long the ride takes.
For a new rider, the best estimate is how trips behave in general. East Bay Paratransit publishes how many pickups fall within or past the booking window:
We model the delay as a shifted log-normal distribution and fit its parameters to those shares, fixing the shift at −5 minutes to allow for early pickups.
Time of day makes a big difference, since a van caught in rush hour is more likely to be late. East Bay doesn’t publish delays by hour, but New York’s transit authority does. Our hypothesis: when New York’s system runs later than usual, East Bay’s does too. We shift the mean delay by New York’s hourly lateness, then refit so the overall shares still match East Bay’s figures.
New York reports one value per hour, but riders book at any minute, so the points need a smooth curve through them. A polynomial swung wildly between them (Runge’s phenomenon), so we settled on a cubic spline. We didn’t smooth the points further, since each hourly value already rests on 30,000 to 2 million trips.
Once a rider has taken a few trips, their actual pickup times sharpen the estimate. We add two personal offsets: one that follows the rider everywhere (perhaps their building is hard to find) and one per recurring trip (perhaps the Tuesday dialysis ride is always rough). Both start at zero, and a trip only counts by how much it surprised us. Fifteen minutes late is normal at 5 pm, but not at 10 am.
Under the hood this is a Bayesian linear regression, with older trips treated as noisier measurements.
Travel timeGoogle Maps accounts for traffic, so we use the Google Routes API to estimate drive time. Shared vans pick up and drop off other riders along the way, though, so we scale Google’s estimate by about 2.2. The average East Bay trip is 11.43 miles and takes 48.9 minutes. We sampled 120 trips between BART stations across the service area, weighted them to match that length and got an average Google drive time of 22 minutes: 48.9 ÷ 22 ≈ 2.2.
That covers the average case, but the slow tail matters most, since that is when a rider may need to reschedule. We used New York data again to set the spread.
The rider is on time if pickup delay plus travel time fits between the start of the booking window and the appointment. There is no closed formula for the sum of the two distributions, so we work one pickup delay at a time: if the van is 15 minutes late, how likely is the ride to fit in the time left? Averaging over 2,000 evenly spaced quantiles is deterministic and takes about a millisecond, so it reruns whenever something changes.
Every Leeway trip records when the van came and how long the ride took, without saving the exact GPS path. Pooled across riders, anonymised and with consent, that becomes live East Bay data. If vans in Hayward are running late right now, riders waiting there could reschedule before their own van is late.
East Bay Paratransit publishes on-time rates per month, not individual rides. To test the predictions, we simulated a full day of service and tuned it until its punctuality matched the published numbers.

We tuned only one thing, how optimistic the van scheduler is about travel times, using a bisection search until the on-time rate matched. The other figures were left untuned:
East Bay Paratransit only takes bookings by phone, and clinics are reached by phone too. When a ride runs late, someone has to call the appointment, usually the rider waiting at the curb. In Leeway, a Cartesia phone agent makes that call, and riders can talk to Leeway instead of typing.
Three phone agentsBuilt on Cartesia’s Agents API, with Claude Haiku as the language model and one shared voice.
In the app, riders hold the mic and say what they need. Ink-Whisper transcribes it, and Sonic 3.6 reads Leeway’s reply aloud in the phone agents’ voice.
Responsible callingLeeway only calls within each trip’s permissions and asks before calling about a delay. The agents say they are automated and share only the rider’s name, the appointment time and the delay. The server dials only approved US and Canada numbers, never real agency lines, and at most four times an hour per number. The East Bay Paratransit booking call is a mock.