Aaron ButlerCreative Design

Transit GO Ticket

My first personal case study. Tracing a bus ticket that wouldn't scan to three small failures in the Transit GO app, then redesigning only the screens that caused them. The app later shipped a similar fix.

RoleUX Designer
Year2017
Skills
MOBILE
01
Overview

The ticket that wouldn't scan

Transit GO Ticket is the app Seattle-area riders use to buy and show bus tickets. The first time I rode at peak hours, my ticket wouldn't scan. I'd bought an off-peak ticket without realizing it: Google Maps always quoted $2.50 regardless of the time or how many zones I was traveling, and nothing in the app told me otherwise.
I showed the driver the error, and they didn't know what it meant either. It took a call to the transportation department and five transfers to learn the problem. That one confusing screen became my first UX case study.
The original error — vague and unhelpful.
The original error — vague and unhelpful.

Default ticket screens

The image on the left is the default Ticket Purchase screen and one of the screens I set out to improve. The image on the right is the info screen the customer can access if they tap on a ticket in the image on the left. Note there are no obvious signifiers letting you know you can touch a ticket for more info.
Default purchase screen (left) and the tap-to-reveal info screen (right).
Default purchase screen (left) and the tap-to-reveal info screen (right).
02
Challenge

What actually went wrong

Three separate failures stacked up to produce that error message. Each one is small on its own, and each one is fixable without redesigning the app.

Problems

Problem 1: App does not inform the user upfront when a ticket they are about to purchase is the ticket that is currently active.
Problem 2: To see when a ticket is active, the customer has to tap it, but nothing signals that tapping is possible.
Problem 3: The screen that tells the user they're using the wrong ticket isn't explicit about why.

Desired solutions

Solution 1: Customer is informed of the time and day(s) a ticket is active before they purchase it / while they are browsing options.
Solution 2: The error window presented to the customer when a ticket can't be used properly informs the customer of why the ticket can't be used.

Restrictions

Don't completely redesign the app. Continue utilizing what works and only redesign the screens that address the problems.
03
Process

Working within the app

The fix had to work inside the existing app, so rather than a long research phase I worked directly from the screens and where they'd failed me. The guiding idea was simple: show riders what they need to know before they buy, not after the ticket fails.

Pulling the active ticket to the top

With this in mind the first sketch placed the current active ticket price(s) at the top of the list with callout signifiers on either side to draw the customer's attention. This made it obvious. A downside is it would change the general order of the ticket prices depending on the time of day. This raised the question of what the repercussions might be if the app dynamically shifted the tickets around.
Lo-Fi v.1 — active ticket pulled to the top with call-out signifiers.
Lo-Fi v.1 — active ticket pulled to the top with call-out signifiers.

Isolating the active ticket

This mockup takes the dynamic encapsulation of the active ticket further and completely surrounds the current active ticket(s) in an orange ring and adds "Active Ticket" as a header to make it clear what the customer is looking at. The other tickets are placed below.
My dilemma with the tickets rearranging is it might confuse some customers should their intention be to purchase a ticket for later use that is not currently active.
Lo-Fi v.2 — the active ticket fully encapsulated in an orange ring under an "Active Ticket" header.
Lo-Fi v.2 — the active ticket fully encapsulated in an orange ring under an "Active Ticket" header.

Pin the active ticket

This wireframe places the current active ticket(s) at the top of the app and outlines them with a border along with descriptive text at the top informing the customer that what they are looking at is the current active ticket.
I moved the day/time information for tickets onto the ticket itself so all information is present upfront with no need for further action.
Hi-Fi v.01 — bordered active ticket with descriptive header; day/time moved onto each ticket.
Hi-Fi v.01 — bordered active ticket with descriptive header; day/time moved onto each ticket.

Marking the ticket instead of moving it

This mockup does away with dynamically moving and encapsulating the current active ticket and instead uses a signifier and iconography to inform the customer which ticket(s) are currently active.
Hi-Fi v.02 — tickets stay in place; a signifier and iconography mark the active one.
Hi-Fi v.02 — tickets stay in place; a signifier and iconography mark the active one.

The simplest version

For an even simpler version, this third mockup removes all of the visual and dynamic additions and keeps only the text on each ticket saying when it's active. The user needs to glance at the time on their phone to verify.
Hi-Fi v.03 — the simplest take: informative text on each ticket, no dynamic reordering.
Hi-Fi v.03 — the simplest take: informative text on each ticket, no dynamic reordering.

Which one would I ship?

If I were shipping one, I'd start from v.01 and test it with riders first. Someone who needs a ticket right now can buy one knowing it will work, and anyone buying ahead for later can still find every ticket below it, the same way they do today.
The open question for testing is whether moving the active ticket to the top, which changes the list's order through the day, confuses anyone.

An error that explains itself

This is a mockup of the error window you see when trying to use a ticket during an invalid time. I've updated the text to directly tell the customer why they can't use their ticket. Now even if you are using the app for the first time, as I was, you'll understand the problem and be presented with an option to get help should you need it.
Redesigned error — explicit about why the ticket can't be used, with a path to get help.
Redesigned error — explicit about why the ticket can't be used, with a path to get help.

Functional prototype

This working prototype takes you up to the purchase screen. The end however simply shows the updated Error screen which in turn takes you back to the start of the app.
Transit GO Ticket — interactive Adobe XD prototype
04
Outcome

What Bytemark shipped later

I never sent the redesign to Bytemark, who make Transit GO Ticket. They have since updated the app with a "Tap for more info" signifier on each ticket, which suggests they were aware of the same problem and were working on it independently.
A later shipped Transit GO Ticket update — Bytemark added a "Tap for more info" signifier to each ticket.
A later shipped Transit GO Ticket update — Bytemark added a "Tap for more info" signifier to each ticket.