Skip to content
Abdul Alzokm
All case studies

WestJet

Booking a flight when you barely fly

A two-round usability redesign of WestJet's flight search and checkout, built for people who book once or twice a year.

The redesigned WestJet flight search shown on a desktop monitor, with the hero image, trip controls and Search Flights action in view
Role
Prototype build, heuristic evaluation methodology and analysis, usability testing
Team
Abdul Alzokm, Anam Malik, Jacob Marquez, Maecel Enriquez, Tina Siassi
Timeline
4 months
Tools
Figma, Microsoft Teams
Context
INF2171, Master of Information (UX), University of Toronto

The short version

The problem

The live flow buries pricing, splits attention across competing calls to action, and gives an infrequent flyer no way to change a flight without starting the search over.

What I did

I built the first flight selection flow in Figma and contributed to the rest of the prototype. I ran interviews, usability sessions and heuristic evaluations.

  • 5/5

    Search for a round-trip flight

  • 5/5

    Compare fare options

  • 5/5

    Complete booking and checkout

  • 3/5Partial

    Modify a previous selection

Built for people who don't book often

Booking is where most of WestJet's customer relationships start and end, so the flow carries the whole first impression of the brand.

We designed for infrequent flyers: people who are not fluent in fare breakdowns or airline jargon. Someone who books once a year has no muscle memory to fall back on, so every unclear label and every hidden fee costs them real effort.

Two flows were in scope. Search and selection, then booking and checkout. Four goals held across both:

  1. Find and compare flights with confidence
  2. Understand pricing before purchase
  3. Navigate checkout with ease
  4. Modify a flight without restarting

The live flow works against the person using it

We assessed the live site against Nielsen's heuristics and Norman's design principles. Pricing is buried. Error styling fires before anyone has typed. Attention splits across competing calls to action. Fare types nest in a structure that is hard to compare, and there is no way to change a flight without starting over.

WestJet live landing page: empty destination field already styled red, and a promotional block competing with the search form
Empty fields styled red before any input. Search competes with a promo block and a hero image.
WestJet live search results: 47 unranked flights, with the same savings message repeated as a banner, a date-cell tag and a fare-card tag
Dozens of results, no ranking. The same savings message repeats three different ways in one viewport.
WestJet live fare interstitial asking the user to reconsider the cheapest fare they just chose
Choosing the cheapest fare triggers an interstitial arguing against the choice just made.

Two rounds, not one

  1. 01

    Heuristic evaluation

    The live site assessed against Nielsen's heuristics and Norman's principles.

  2. 02

    First redesign

    Both flows rebuilt in Figma against the violations that surfaced.

  3. 03

    Usability testing

    Five infrequent flyers, four tasks, think-aloud, moderated over MS Teams.

  4. 04

    Second redesign

    Three findings from the sessions turned into three specific changes.

Round one: ten problems, ten decisions

Ten problems were documented across the two flows. The four with the largest effect on the flow:

01

One action, not three

Landing page before and after, side by side: the old page splitting attention across search, a promo block and a hero image, beside the redesign anchored on a single Search Flights action

Before

The landing page split attention across the search container, a promotional offer and a hero image. The search box, the whole point of the page, was the narrowest thing on it.

After

A single primary action anchors the page. The label changed from Get Flights to Search Flights, because searching is what the button does and get implied a purchase. Validation only fires once someone has touched a field.

02

Stop making people remember their departure date

Date picker before and after, side by side: the old calendar with no trip context, beside the redesign showing departure, return and a seven day duration under the calendar

Before

Picking a return date meant holding the departure date in your head. Disabled dates sat at a contrast too low to read as a rule, and there was no way to see how long the trip would be.

After

A summary bar under the calendar shows departure, return and duration. Hovering a return date previews the full range, so trip length is visible instead of calculated.

03

Five ranked options instead of endless scroll

Search results before and after, side by side: the old nested fare types and repeated savings tags, beside one row from the ranked list carrying a single Lowest Price tag

Before

Results ran to dozens of flights with no ranking, and the same extra savings message appeared three times in close proximity: a banner, a date-cell tag and a mini banner on the fare card.

After

Results open under Top Departing Flights: five options ranked on price and convenience, with Show all for the rest. The three savings treatments collapsed into one Lowest Price tag.

04

Show the total, and where you are

Trip summary before and after, side by side: the old nested fare cards, beside the redesigned review with a five step progress stepper, a full price breakdown and a fare hold timer

Before

The total sat alone in a corner with no breakdown, choosing the cheapest fare triggered a modal arguing against it, and nothing told you where you were in the process.

After

The summary opens with a stepper. Fees break out alongside the grand total, cancellation coverage is an explicit choice rather than fine print, and a 15 minute timer shows how long the fare is held.

Six smaller changes

  • Discount code moved to checkout

    It sat between the route fields and the dates, interrupting the core search inputs with a step users expect much later.

  • The loading screen says something

    It read as an empty state. It now carries a status message, a progress bar and a summary of the trip being searched.

  • Fare types flattened

    Class first, then fare type inside it, was two layers too many. Fares are now parallel cards showing name, price and features side by side.

  • A consistent three column grid

    Tiles used to change shape row to row, implying that bigger meant different. Unavailable fares now show as a labelled Not Available tile instead of vanishing.

  • Modify without backing out

    Changing a flight meant stepping back through every page of the search. A Modify your flight control now opens the search fields in place.

  • Guest and member side by side

    Continue as Member and Continue as Guest now sit together, instead of pushing guests through an interstitial.

Round two: putting the prototype in front of people

Moderated sessions of about 20 minutes over MS Teams, think-aloud protocol. Screening criteria were 18 or older, flying three times a year or fewer, and having booked a flight in the last 12 months. Notes went into a shared spreadsheet and were anonymized before synthesis.

In a five second impression test, every participant recognized the booking page, the input fields and the primary action.

01

Flight evaluation

What changed

Sorting became consistent across departure and return. Filter and sort controls gained visual weight, sort options gained helper text, and information density on the results page came down.

What we saw

Three of five wanted results sorted more clearly and more consistently. Telling the departure list from the return list was harder than it should have been, and the cheapest option was not always first.

  • Selecting my return flight, it didn't put the lowest option at the top, it was the second option. Lowest goes in the top to begin with.

    Participant 4

  • I think typically price is probably top priority.

    Participant 5

02

Modifying a flight

What changed

Modify your flights moved onto the summary itself and opens an overlay with the search fields in place. A confirmation modal warns that changing dates removes the current price lock, so the tradeoff is visible before committing.

What we saw

Three of five struggled to find how to change a flight, and four of five were frustrated by the idea of restarting the search. This was the one task that did not reach full success.

  • If it was more like visible, how to change the flight dates without restarting, then it would have been easier.

    Participant 3

  • I wouldn't say it was intuitive.

    Participant 2

03

Checkout navigation

What changed

Back navigation between steps, with selections preserved when moving backward. The progress stepper carries through every screen, and Back and Skip Seat Selection are explicit controls rather than implied ones.

What we saw

Four of five had trouble moving back and forth to change information during checkout. They completed the task, but they did it without feeling in control of it.

  • I would try to go back, like, all the way. Oh, I guess I can't.

    Participant 3

  • Unless I wanted to change something, like pick a new flight entirely, I don't see why I have to restart.

    Participant 5

The redesigned flows

Both flows, walked end to end after the second round.

Flow 1: search and selection

Landing and search. One primary action, with the promotional block demoted below it.
Selecting the departing flight. Five ranked options under Top Departing Flights, fares reading left to right at one level.
Trip review. The stepper, the price breakdown, and Modify sitting on the summary itself.

Flow 2: booking and checkout

Seat selection, with the legend beside the map and an explicit skip.
Checked bags, organised by passenger first and flight second.
Payment through to confirmation, with the booking summary alongside.

What I would do next

Modify was the only task that did not reach full success, at three of five. The second redesign put the control on the summary and added a price lock warning, but that fix has not been tested. It is the first thing I would put in front of users if this continued.

The heuristic evaluation caught real problems, but it could not have told us that people would not find the modify control. Only watching someone look for it did that. Every round surfaces something the last one could not.