top of page
Click Click Studio home
ContactContact

Not built

Shipping Planning & Reporting

A planning and reporting tool for the Shipping Department. I built it as a clickable prototype with Figma's AI tool, then checked it for ease of use and accessibility and improved it.

Case study · Metal building manufacturer

Problem

Shipping schedules didn't line up with production or jobsite readiness, and exceptions lived across too many tools and people. The result was late trucks, out-of-order deliveries, and costly claims.

My Role

UX Lead for the Shipping Department redesign.

Tools

Figma Make (Figma's AI tool that builds clickable prototypes) · Figma · NN/G heuristics (Nielsen Norman Group's well-known usability rules) · WCAG 2.2 AA (the web accessibility standard)

Outcome

A 19-screen clickable prototype, a UX audit with 18 findings, 7 refined screens (record panels included), and a reusable component library with accessible colors and text styles. Not built: development hadn't started when I left the company. Everything is documented for handoff.

A shipping planner's hand pulls one carrier card, with a truck icon and a rating, from a desk card file, while an old computer terminal sits off to the side. Through the open dock door, a flatbed truck waits with a load of steel beams.
A shipping planner's hand pulls one carrier card, with a truck icon and a rating, from a desk card file, while an old computer terminal sits off to the side. Through the open dock door, a flatbed truck waits with a load of steel beams.

​

Understanding the shipping problem

IT was looking for a quick win for the Shipping Department. I worked from the department's own list of pain points, and seven recurring problems stood out. Here's each one, what the module does about it, and where:

  1. Shipping schedules don't line up with production and jobsite readiness. What the module does: load-ready risk is a top-level dashboard tile, and each order has planning stages and a checklist, so "ready" is visible before a truck is booked. Where: Dashboard, Order Pipeline.

  2. Shipments loaded in the wrong order cause construction delays downstream. What the module does: orders are sorted by ship and delivery dates, and each one shows whether it's linked to a shipment in the transportation management system, so gaps in the sequence show up early. Where: Order Pipeline.

  3. Missing, damaged, or wrongly documented materials lead to costly claims. What the module does: every exception records its fault, root cause, and notes. Notes survive new data imports, so a claim has a paper trail. Where: Needs Attention, shipment record.

  4. Truck delays and inefficient loading cut transportation productivity. What the module does: the carrier scorecard ranks on-time pickup and delivery against a target, and Costs flags high cost per mile and loads over benchmark. Where: Carrier Scorecard, Costs.

  5. Scattered communication makes shipment exceptions hard to resolve. What the module does: one work queue with owners, bulk assign, and saved views. Each record has contacts and an activity log with notes. Where: Needs Attention, records, Carrier Profile.

  6. Physical loading limits and transportation compliance complicate dispatch. What the module does: this is execution work, so it stays in the existing dispatch tool. The module shows weight and estimated trucks, then hands off with a link that opens the dispatch tool. Where: the handoff to the dispatch tool (see "Defining the quick win" below).

  7. Unpredictable material availability and production changes break shipping commitments. What the module does: at-risk loads are ranked by severity, with a milestone tracker, and the top bar always shows how fresh the data is. Where: At Risk, the app bar.

None of these could be fixed by one screen. They pointed to a shared problem: the people planning shipments couldn't see risk early enough, and when something went wrong, nobody clearly owned it.

Key insights

  • Readiness must be visible before dispatch. Several problems started upstream, in production timing and material availability, but only showed up once a truck was late.

  • Exceptions needed an owner. Communication was scattered. Without a clear owner and history, exceptions were hard to track down and resolve.

  • Execution already had a home. The existing dispatch tool already handled truck assignment and loading. Rebuilding those tools would have slowed the quick win down.

​

Defining the quick win

To deliver value fast, I drew a clear line around the product. The new Planning & Reporting module would cover planning, schedules, exceptions, performance, and cost. The existing dispatch tool would keep truck assignment, loading, staging, and shipment creation.

Planning & Reporting module

What this redesign covers:

  • Order planning status and links to shipments

  • Schedules for visibility (load, pickup, delivery)

  • Exceptions: Needs Attention, At Risk

  • Performance: carrier scorecard, reports

  • Costs and lane analysis

  • Owners, notes, contacts, and activity

The existing dispatch tool

The existing tool, unchanged:

  • Truck assignment

  • Loading board

  • Load staging

  • Shipment creation

  • Corrected shipments

  • Hands-on actions in the transportation management system

Wherever someone needed to move from reviewing to doing, the design hands off with a link that opens the dispatch tool. Two physical issues, loading limits and compliance, stayed in the dispatch tool as execution work. The module shows the information that feeds those decisions, such as weight and estimated trucks.

​

Design

I started from the business users' own prototype and kept their terminology and report structure. Then I rebuilt it in Figma Make as a full desktop prototype with 19 screens in seven groups:

  • Overview: Dashboard

  • Planning: Order Pipeline, Purchase Order Report, Shipment Links

  • Schedules: Load, Pickup, Delivery

  • Exceptions: Needs Attention, At Risk, Missing Milestones

  • Performance: Load Ready, Pickup and Delivery reports, Carrier Scorecard

  • Financials: Lane Report, Costs

  • Data: Imports, Column Map, Backup

The first design focused on:

  • Bringing planning, exceptions, and cost into one place

  • Keeping the dense, row-level tables business users relied on

  • Calming the "button wall" and stacked colored bars of the original

  • Using color by meaning: navy for actions, orange for warnings, red for critical, green for complete

  • Staying compatible with the dev team's Material 2 / MudBlazor components

​

UX audit

I audited the prototype against Nielsen Norman Group's 10 usability heuristics, NN/G's dashboard and table guidance, and WCAG 2.2 Level AA, rating each finding on NN/G's 0–4 severity scale. The audit found 18 issues:

2

Catastrophic

8

Major

7

Minor

1

Cosmetic

Three themes stood out:

  • Accessibility was the biggest gap. Labels were 9–11px. Gray helper text measured 2.3:1 contrast, against a required 4.5:1. Status was shown by color alone: red, orange, and green dots, donut charts, and colored percentages.

  • The dashboard had no priorities. Eight metric cards had equal weight and none had targets. A drop of "↓ 2.1%" didn't say whether it meant percent or points, or whether it mattered.

  • Records were hard to work in. Owner, notes, and root cause sat on tab 7 of 8 in a narrow panel. "Unassigned" was shown in faded gray, with no way to act on it.

​

Refined design

I created 7 refined screens, record panels included, using a small set of shared components: status chips, metric cards, the app shell, and record panels. Every text color passes AA contrast, and every status pairs color with a shape and a word.

The refined shipping dashboard, led by a 'Needs action' band ordered by urgency.
The dashboard's 'Needs action' band: four issue counts, ordered by urgency, each with a priority label.

Leads with a "Needs action" band, ordered by urgency. Performance metrics show the number, the change, and the target, for example "Down 2.1 pts · target 95%". Donut charts became labeled bars that are easier to compare.

Screens are studio redraws. Names and data are invented.

Order pipeline with planning stages as filters, and an open order record showing its owner, key facts, and planning checklist.
Order pipeline with planning stages as filters, and an open order record showing its owner, key facts, and planning checklist.

Eight summary cards and eight duplicate tabs merged into one row of planning stages that doubles as the filter. The order record works like a customer record in a sales tool (CRM, or customer relationship management): owner first, then key facts and a planning checklist.

Before

The first exceptions list: a flat table of issues with priority tags, owners, and next actions.
The first exceptions list: six issues in a flat list, each with a priority tag, an owner, and a next action.

After

The refined work queue: issues grouped by priority, with saved views, two rows selected, and bulk actions to assign, set root cause, or resolve.
The refined work queue: issues grouped by priority, with saved views, two rows selected, and a button to assign an owner.

Exceptions became a true work queue, grouped by priority. Saved views include "Assigned to me" and "Unassigned," and bulk actions let users assign an owner, set a root cause, or mark items resolved.

At-risk loads ranked by priority, with one shipment's milestone tracker showing each step's time and status in words.
At-risk loads ranked by priority, with one shipment's milestone tracker showing each step's time and status in words.

A five-step milestone tracker uses icons and plain language, such as "1h 30m late" or "3 days overdue," instead of colored dots. Fault and root cause are labeled fields, and saved notes survive new data imports.

Carrier scorecard ranking seven carriers by on-time delivery, each with a bar against a 95% target and a status label.
Carrier scorecard ranking seven carriers by on-time delivery, each with a bar against a 95% target and a status label.

Carriers ranked by on-time delivery, each with an inline bar against a 95% target marker and a status chip. Each carrier's late loads are split into late pickups and late deliveries, so it's clear where the delays happen. Four export buttons became one Export menu.

One carrier's profile: an 8-week on-time trend against fleet average and target, open issues, top lanes, and an activity log.
One carrier's profile: an 8-week on-time trend against fleet average and target, open issues, top lanes, and an activity log.

A record page per carrier: an 8-week on-time trend against fleet average and target, open issues, top lanes, and an activity log for calls and notes.

Cost review panel showing a shipment $6,400 over its target rate, with a rate comparison and a review form.
Cost review panel showing a shipment $6,400 over its target rate, with a rate comparison and a review form.

Cost exceptions open a review panel that shows the variance up front ("$6,400 over target rate (+32%)"), compares rates side by side, and includes a review form with owner, status, and notes.

Design Outcomes

The redesign wasn't built, but it left a clear, accessible direction for the Shipping Department. Every pain point has a defined response, the boundary with the dispatch tool is clear, and the component library is ready for development.

Figma Make let me turn the business users' rough prototype into a full 19-screen experience quickly, and AI sped up the audit and the Figma rebuild. Every finding and design decision still needed my judgment to match real shipping workflows and accessibility standards. AI can speed up the work, but deciding what's right for users is still a human job.

7 pain points mapped

Each problem on the Shipping Department's list has a specific design response or a deliberate handoff to the dispatch tool.

18 audit findings

Rated against NN/G heuristics and WCAG 2.2 AA. The 2 catastrophic and 8 major issues are addressed in the refined screens.

19 → 7 refined screens

A full Make prototype, then 7 refined dashboard and record screens (record panels included), built on reusable components.

Learnings

  1. A quick win needs a clear boundary. Defining what the module would not do (truck assignment and loading) kept the scope small enough to deliver.

  2. Accessibility is a priority from day one. Small text and color-only status were the most serious problems. Fixing them improved the design for everyone, not just users with disabilities.

  3. Dashboards should start with what needs action. Counts without targets or owners don't tell anyone what to do. Grouping by urgency and adding context turned the dashboard from a report into a to-do list.

If the project resumed

  1. Test with the people who use it. Run task-based tests with planners and managers, such as "Find and assign every critical issue" or "Explain why one carrier's on-time delivery dropped."

  2. Confirm the business rules. Check the on-time targets, scorecard bands, the OTIF (on time, in full) definition, and the cost-per-mile limit with Shipping and Finance.

  3. Do accessibility QA in the build. Check keyboard order, sortable table headers, focus moving into side panels, and 200% zoom.

  4. Extend the patterns to the remaining 12 screens, then define success metrics such as fewer late loads, faster exception resolution, and fewer claims.

Read more

Shipped

Design System for 6 Internal Apps

Paused

Manufacturing Scheduling Application

Piloted

Scheduled Weld Drawings

Have a tool that needs this kind of attention? Let's talk about it.

bottom of page