Tranzport Cards: Optimizing Dashboard Table
Enhancing user experience for dispatchers
- Roles
- UI/UX Designer · UI Engineer
- Duration
- 6 weeks
- Year
- 2020
Adobe Illustrator
Google Docs
Miro
Slack

The problem
The table was unstable, slow to load, and had a horizontal scroll. The original team built the app on Material Design to ship fast and stay focused on profitability. As features and customization piled up, the table slowed down and got harder to navigate — most of the pain was the horizontal scroll. Dispatchers had to scroll down and sideways to check a single load, which slowed them to a crawl.
The solution
Custom problem, custom solution. A custom lane component packed about 3× more information into the same space, organized in a way that made sense to dispatchers. Notifications consolidated into one part of the table. Fully responsive, so dispatchers can keep eyes on loads from any device.
Redesigning the dashboard
I ran a survey with five dispatchers — their process, where it hurt, and what they wanted the next version to do.
Research questions
Understanding the dispatcher day
Six questions guided every interview — surfacing what mattered, not what was convenient.
Daily routines
Describe daily routines?
Driver interaction
How is a typical driver interaction?
Exceptions
Tell me about a time when the load had exceptions?
Non-responsive drivers
How is your process when the driver is non-responsive?
Critical dashboard elements
What are the critical elements in the dashboard to keep track of?
Most important information
What is the most important information in the dashboard?
Takeaways
- Dispatchers always multitask, always against the clock
- The load ID and the lane (pickup, dropoff, dates) are what dispatchers actually scan for
- They need status updates constantly
- The competitor apps are decades old and pack too much into too little space
“The market is old-school, and the dashboards look like Excel sheets.”
The first attempt: prioritize parts of the table
The first idea was to keep the table and just freeze a few key columns. That gave dispatchers a visual anchor for the load ID and the available actions. Next step was putting it in front of dispatchers to see if it actually helped.
Validating the idea: it was a bandaid
I went back to the dispatchers with the design. It helped a little, but they still struggled to scan the dashboard, and the horizontal scroll was still painful. The problem wasn't going to be solved by tweaking the table.
Out-of-the-box thinking
The developers, CTO, product manager, and I argued about whether the interface should change at all. Their position was that the dashboard had been there a long time and didn't need a big rewrite. I was sure we could build something better and more useful, even if it meant accepting some risk. We took the risk.
Explorations: variations and progress
I needed to group information more aggressively, and do it in a way that worked across screen sizes. The groups had to make sense for how dispatchers scan: around the lane (pickup, dropoff, dates, miles) — the fields they actually rely on.
We validated again with stakeholders and dispatchers, getting fantastic feedback and excitement.
Worth the risk: custom components made it easy to scan
The dispatchers were on board. The developers and stakeholders could see my vision and the benefits of taking the long road.
The impact

About an order of magnitude faster to scan
Side-by-side with the old table, dispatchers got through the dashboard roughly ten times faster. Numbers recalled from observation sessions in 2020.

Information grouped by how dispatchers think
Lane fields, status, and actions cluster the way dispatchers actually use them, instead of in column order.

Faster dashboard load
Replacing the heavy Material table with a custom component cut load time noticeably — somewhere around 5× in our internal comparisons.

Works on any screen
The cards collapse cleanly to mobile. Dispatchers can keep an eye on loads from a phone without losing the dashboard layout.

Loads identifiable at a glance
Visual anchors on load ID and lane mean dispatchers spot the right row without reading the table cell by cell.
The custom-component card layout has been in production since 2020. Dispatchers got more productive, and the table became one of the parts of the platform the company is known for.
Explore more case studies
Waco3.ioAI-Powered Proposal Platform
Full-stack SaaS with AI proposal generation, RAG pipeline, LangGraph agents, client analytics, Stripe integration, and session recordings.
ReactZeroZero-Dependency Component Libraries
4 accessible React primitives shipped to npm: combobox (ARIA 1.2), datepicker (WCAG 2.1 AA), animation orchestration, and cell-first data grid. All zero-dependency.
GitHub PrimerDesign System Analysis
Reverse-engineered GitHub's Primer in Figma to study token architecture, component APIs, and how a mature system holds together.