Project detail
Enterprise UX for McDonald’s: replacing a duplicated, multi-account verification process with a single trainer-led workflow
A UX case study focused on workflow consolidation, permission logic, and reducing verification friction in high-volume environments to reduce operational interruption and increase availability on the restaurant floor.

FRED is an online workforce training verification platform used by McDonald's restaurants to record, deliver, and track on-the-job training. Managers and crew trainers use this platform to verify trainees' knowledge and competency in work stations.
My role
Crew Trainer, End-to-end UX (research, flows, UI, rationale)
Environment
Shared in-store devices (5 per store)
Timeline
4 weeks
Account switching
FRED’s verification workflow forces trainers to complete the same steps in two separate accounts, once in crew trainer's account and once in trainee's account.
Manual data entry
Manual search for trainees and stations, and re-entering information that’s already known by the system.
Delay in verification
It takes around ~12 to ~15 min for a crew trainer to verify a trainee on a station and a crew trainer verify around 3-5 stations every session. This leads to crew trainer and trainee leaving the floor for hours, resulting in an understaffed floor.
~15 min
per verification / per station, not per session
3–5×
stations verified per session, meaning trainers and trainees could be off the floor for hours
I Observed before designing.
Watched trainers use FRED during real service conditions with no assumptions or secondhand descriptions.
Spoke directly with trainers
Gathered firsthand accounts of friction points and how the tool was affecting their daily workflow.
What I found
Trainers switching between multiple accounts to complete one verification.
Duplicate submissions confusing the system.
Wasted time during busy service periods.
INPUT
Manager interview
Asked what data was genuinely required for a valid verification
PROCESS
Separated signal from noise
Identified what the system collected vs. what compliance actually needed
OUTPUT
Prioritised information hierarchy
Reduced fields to only what mattered — less cognitive load, same business value
KEY INSIGHT
The problem wasn't just duplication — it was that nobody had defined what a verification actually needed to contain. That clarity unlocked the redesign.
Kept existing design system
Rebuilding visual language was out of scope. New UI patterns would create adoption friction for users already familiar with FRED.
Single trainer-led flow
Eliminated account switching entirely — the root cause of duplication, not just a symptom of it.
Automated repetitive data entry
Pre-filled trainee name, trainer name, feedback, scoring, and station suggestions — removing the manual steps that slowed trainers down on every single verification.
This double-entry structure wastes time, shared device dependencies, creates reporting gaps, and pulls staff off the floor during peak hours.

No structured scoring and feedback
Managers expect trainers to give full marks, but the current scoring input is pointless and slows completion. Unnecessary for what is essentially a compliance checkbox, but the current system requires more typing, more time wasted.


Filling repetetive details causing delay
Crew trainers are expected to fill details like Trainee name, coach Name and dates multiple times everytime they verify trainees for every station.
Verification now happens once, in the crew trainer's account.This eliminates cross-account navigation and duplicate data entry inturn, cutting verification time by ~50–60% in busy store environments.
In the new flow:
FRED auto-pulls trainee details (no manual data entry)
Suggested stations based on training history
Checklist completion meets compliance in seconds
Signatures finalize the record in one submission

The goal wasn’t to improve training quality inside FRED.Training happens on the floor. My goal was to make FRED stop getting in the way.
The interface was adapted to support the consolidated workflow. No new navigation model or permissions system was introduced. The UI simply reduced friction to match real-world behaviour on the floor.
Verification starts with the trainee, not the station
Existing workflow starts with choosing stations and selecting the trainees after which does not match how verification works in real life.
These filters produce little to no impact

Before

After
High intent button copy
Course suggestion based on trainee history reduces manual searching for courses
Placed in closed accordian by default to draw attention to "suggested courses"
Search if needed : Flexibility preserved without penalising primary workflow.
Suggested station based on trainee training history
Introduced a smart automated suggestion to reduce manual efforts in finding stations.

Before

After
Example questions to Support floor-based evaluation without needing reference docs
Preset feedbacks commonly used by crew trainers to reduce repetitive tasks
Default score set to 100 intead of 0. Manager interviews confirmed 100 is the standard passing score.
Auto-filled metadata (store, course ID, trainee) resulting in zero manual copy/paste.
Trainee + trainer signatures captured in one step - instant compliance, no second submission.
All verification now happens in the Crew Trainer account — eliminating role switching, duplicate entries, and cross-account updates.
This removed the second verification step entirely and cut average completion time from ~6 minutes → ~3 minutes per trainee.

Compliances that were to be completed previously in trainee's account
I tested this prototype with 6 crew trainers in store during their break hours in shifts and acheived the following projected impact.
This redesign doesn’t reduce screens; it removes work.
Eliminating manual data entry and duplicate submission cuts verification time,errors drop to near-zero, and the flow finally matches the reality of floor training.
↓50%
Average completion time per evaluation will be reduced from ~15 to ~5-7 minutes
150+ Min
A store with 25 trainees completing 2 courses/month saves 150+ minutes/month (~ 2.5 hrs) of trainer time
WHAT THIS TAUGHT ME
The biggest impact came from subtraction. Removing a step and not adding a feature which solved the problem. Complexity in enterprise tools builds up quietly over time.
What I'd do differently
Push to measure real post-launch data. The 50% reduction is a projection I believe in, but live usage would either confirm it or surface the next problem worth solving.