Work

Demo case study. The story, team and numbers are placeholders that show how a real case study will read.

(Case study 02) SaaS dashboard

An operations dashboard for a logistics company running 400 delivery vans. Dispatchers had 60 charts and no idea where to look. I redesigned the dashboard around the daily decisions they actually make.

Role
Product designer
Team
1 PM, 4 engineers, 1 data analyst
Timeline
Mar to Nov 2025
Platform
Web (desktop first)
Scope
Research · UX · Data viz · Design system
Status
Live

3 min read · 2025

Placeholder artwork

The 30-second version

For busy readers
A Problem

Dispatchers spent the first hour of every shift hunting through 60 charts for problems.

B What I did

Rebuilt the dashboard around a ranked list of today’s issues, with the charts one click behind it.

C Outcome

Morning triage dropped from 52 minutes to 14, and support tickets fell by 27%.

Sample numbers

01The problem

Everything was on the screen, so nothing stood out

The old dashboard tried to show every metric at once. Each chart was accurate, but together they hid the late van, the empty warehouse slot and the driver who had not checked in.

Dispatchers had built their own workaround: a spreadsheet they updated by hand every morning.

52 min
spent on triage every morning
02My role

I designed it, built it and shipped it.

  1. 01 · design

    Shadowed 12 dispatchers on shift, and designed the issue feed and the chart system.

  2. 02 · build

    Prototyped the feed in React with live data so we could test it on real shifts.

  3. 03 · ship

    Rolled it out depot by depot, with a feedback button on every issue card.

Team: 1 PM, 4 engineers, 1 data analyst

03What I learned

Dispatchers were not reading charts. They were looking for exceptions

Watching people work showed that they scanned for anything unusual, then dug in. The charts were only ever the second step.

  • Insight 01

    Exceptions first

    Nine out of twelve dispatchers started their shift by looking for what was wrong.

  • Insight 02

    The spreadsheet was the spec

    Their hand-made sheet listed exactly the five issues the dashboard should have surfaced.

  • Insight 03

    Shared screens, shared language

    Teams talked about problems out loud, so issues needed names, not chart titles.

04Key decisions

The calls that shaped the product

Why the home screen is a list

Stakeholders asked for “a better dashboard”. Users needed a to-do list.

Shipped

Today’s problems, sorted by cost, each with the chart that explains it.

Why only five colours

The old charts used 23 colours, so nothing could mean “urgent”.

Shipped

If something is coloured, it needs you. Everything else steps back.

05Design to code

Prototyped with live data, not lorem ipsum

Fake data hides the real problems, so I built the feed as a working React prototype on top of the live API. We tested it on real shifts in week three.

Drag the slider to compare the design with the shipped dashboard.

FigmaProduction
  • Chart components shared with engineering
  • Keyboard first, for busy dispatchers
  • Loads in under a second on depot wifi
06Shipping

From first beta to live

~/project-two/releases

→ git log --releases

  1. PilotJun 2025Two depots, live data
  2. v1.0Aug 2025Issue feed for every depot
  3. v1.2Nov 2025Shared views for team stand-ups

✓ Used every day by 90% of dispatch teams.

07Results

Less hunting, more fixing

  • 14 minmorning triageBefore52 minAfter14 min
  • 27%fewer support tickets
  • 90%of teams use it weekly

Sample numbers

The spreadsheet disappeared within a month, which was the result I cared about most.

08Reflection

What I would do next

Sitting next to people on a real shift taught me more in a day than a month of stakeholder meetings. I now start every data product that way.
  1. 01A weekly report view for managers
  2. 02Alerts on mobile for drivers
  3. 03Let teams rename issue types

Where it's at: Used every day by 90% of dispatch teams.

Next case study

Learning platform · 2024 to 2025Project ThreeLessons that keep going when the signal doesn’t.Read it