Role
Designer, Researcher
Team
2 designers
Timeline
4 weeks
Tools
Figma
GO transit uses a pay-by-distance fare system — the more riders ride, the more they pay. This requires riders to tap off their PRESTO card at the end of their trip but if they forget, they are charged the full trip.
Never miss a tap off with real-time reminders and tap offs in the PRESTO app
As a UX design intern, I designed and pitched a proof of concept to solve riders' missed tap offs.
SEE THE FINAL SOLUTION
⋆ ˚。・*⋆
While we had the numbers behind the missed tap offs, we didn't have the why
200,000+
missed tap offs a month
2/3
of missed tap-offs are never reported to the call centre - most go unresolved
30%
of riders report there's clear instructions of when to tap on and off
Overcoming user research constraints
As a UX designer, I knew I needed to understand the "why" through our users but due to budget constraints, I couldn't conduct user interviews. That's when I turned to platforms like Reddit, where riders shared their frustrations for tap offs.
100+ posts later and what did we discover?
All that to say, riders didn't realize when they needed to tap off and experienced multiple pain points when trying to resolve their missed tap off
⋆ ˚。・*⋆
Mapping riders' pain points
To better understand the problem, I mapped out riders pain points to their trips. This made it easier to identify pain points and the opportunities to improve them.
How might we empower riders to easily recognize and recover from missed tap offs?
How are others solving the problem?
PRESTO is unique in requiring riders to tap on and off, but I wanted to see how other transit systems were empowering their riders.
10+ analyses later and what did we discover?
⏳
Real-time alerts and reminders
Riders rely on timely notifications to navigate their journey. Leading transit apps deliver real-time tracking and feedback to users.
🔗
Self-serve, end-to-end experience
Riders' journeys are often fragmented. Leading transportation apps connect riders' journey into one seamless flow and offer self-serve capabilities to stay in control from start to end.
👁️
Clean and clear visuals
On the go, riders are busy and distracted. Leading transit apps use clean layouts and clear visuals so riders can focus and find the information they need at a glance.
⋆ ˚。・*⋆
What does success look like?
After defining the problem space, I worked with my manager to set design goals to guide our solutions.
📍
One-stop solution
Riders currently use up to three different platforms to plan and pay for their trips - yet none provide everything they need
🔔
Proactive, real-time communication
Riders' top dissatisfaction with PRESTO is the lack of timely communication, highlighting an opportunity to offer proactive, real-time alerts and reminders
✊
Self-serve capabilities
Another top dissatisfaction with PRESTO is poor problem resolution. Most missed tap-offs go unreported and unresolved, highlighting an opportunity for self-serve solutions
📱
Mobile first
Riders are on the go and prefer to receive information on mobile, highlighting an opportunity to streamline the transit experience on mobile
Then, I ideated solutions across the user journey and design goals, presenting them to my manager to prioritize. In the end, we had 10 features we wanted to tackle!
⋆ ˚。・*⋆
Mapping features to the users flow
From our ideation, we defined the features and ideated different flows for the best user experience. The key features are highlighted in yellow.
Then, it was finally time to dive into design! I started with the key features first, then worked my way to the supporting features.
Never miss a tap off with real-time reminders
Riders are often distracted during their trip, and to make matters worse, the current tap off reminders were audio only and therefore easy to miss on noisy trains. I designed a visual trip tracker that displays real-time trip status and reminds riders to tap off before they forget.
✅ Real-time reminders to tap off
How should riders receive real time reminders?
I explored different displays before deciding on a widget, for its ability to customize and deliver instant updates without requiring riders to open the app.
Recover from missed tap offs with tap offs in the app
2/3s of missed tap offs are unreported and therefore unresolved. To reduce the number of missed tap offs, riders need a way to resolve them on their own. The problem was that by the time riders realized they’d missed their tap off, they were already too far from the station.
But what if riders could tap off anywhere?
I designed a self-serve tap-off feature that detects when riders miss a tap off and reminds them to tap off in the app. This helps riders recover from missed tap offs before being charged the full fare.
✅
Tap-off anywhere from the app
What's the best way to integrate in-app reminders and tap offs in the app?
I knew didn't want to overwhelm riders with a new flow. I also knew the only information required was riders' departure and arrival stations and times, and this could be technically collected through the existing trip planning flow.
However, I discovered major usability issues with the trip planning flow.
Before
❌
Plan trip based on train line — misaligns with riders' mental model
❌
Unclear labels
I redesigned the trip planning flow to be more intuitive, reflecting how riders actually think about their trip by departure and arrival station and times, rather than train lines. Riders can also select from saved trips as shortcuts.
After
✅
Plan trips by selecting arrival and departure stations and times, and saved trip — aligns with riders’ mental model
✅
Clear, actionable labels
From there, riders can search for their trip, just as they currently do before boarding their train. The only additional step is to start the trip - it's that simple!
How might we help riders feel less overwhelmed?
I wanted to make the most of the trip tracker feature to resolve riders' pain points. One key pain point was that riders were overwhelmed when there were delays and cancellations.
While we can't change cancellations or delays, how they're communicated can make all the difference. Through research, I discovered that riders often coordinate trips with friends and family. To reduce the stress from constant check-ins, I designed a feature that lets riders share their trip in real-time.
✅
Reminder to tap on
✅
Share live trip details with others
Before
❌
Low visibility; lack of colours and icons
❌
Poor readability; placement of the reminder doesn't align with users' reading pattern
After
✅
Reminder at the top with colours and icons draws attention and prompts action
✅
Info on payment devices provides contextual details for new riders
⋆ ˚。・*⋆
Bringing all the designs together into the final flow

To start, riders plan their trip based on their departure and arrival station and time.

Next, riders select the trip they want to start and can toggle between map or non-map view, depending on their preference.

Next, riders can start tracking their trip, both in the app and on their lock screen. They can also share their trip with anyone they would like to.

Riders can view their trip progress on their lock screen, viewing details like estimate time of arrival and transfer window.

Lastly, if riders forget to tap off, the app will detect a missed tap off and prompt them to tap off in the app.
⋆ ˚。・*⋆
What did I learn?
⚙️
Designing within systems
It's not about how well I design a feature, but how well it fits into the existing system, and importantly, riders' mental models. For this reason, I designed beyond a tap off feature but for the entire end-to-end journey.
🚧
Designing with constraints
Since this was a proof of concept, the project came with many constraints—limited budget, time, and team members. I learned to make the most with what I had, even if that meant conducting user research without users!
















