Logistics Control Tower

Operations monitoring and exception management

WEB
Logistics Control Tower
Role: Product DesignerPlatform: B2B SaaS · Web applicationScope: Domain research, product model, UX/UI, prototyping, measurement

A logistics operations product I worked on for teams coordinating hundreds of shipments across carriers, vehicles, drivers, customer commitments, and external data sources. It brings fragmented operational signals into one place and helps dispatchers act before an exception becomes a failed delivery.

The case is structured around the full operating loop rather than a single feature: understand the domain, build a reliable shipment model, detect and prioritise exceptions, coordinate resolution, and verify whether the shipment returned to plan.

Product model

From a transport signal to a resolved exception

Location alone does not explain whether a shipment is healthy. The system combines milestones, ETA, route, documents, driver and carrier context, data quality, and SLA impact, then preserves every decision in one operational timeline.

  1. 01

    Ingest

    TMS, GPS, documents, messages

  2. 02

    Detect

    Delay, missing signal, conflict, risk

  3. 03

    Prioritise

    SLA impact, urgency, confidence

  4. 04

    Assign

    Owner, team, escalation path

  5. 05

    Resolve

    Action, communication, decision

  6. 06

    Verify

    Back on plan, delivered, learned

Core operating scenarios

Design the work around exceptions, not screens

The interface follows the questions a dispatcher asks during a shift. Each level narrows the scope without losing shipment context or responsibility.

01

See the network

Which shipments need attention now, and what is the operational impact?

02

Triage the queue

What is critical, what can wait, and which alerts are uncertain or duplicated?

03

Understand the case

What changed, which source says so, and which milestone or SLA is at risk?

04

Coordinate a response

Who owns the exception, what is the next action, and when should it escalate?

Scenario 1 · Schedule

One shift, one critical shipment, one control room

The prototype replays a single working day at a freight broker: 48 active shipments, 11 exceptions, and one dispatcher starting her shift at 09:12. The data is consistent across screens, and every action changes the shared state: owners, severity, the queue, the plan and the shift results.

The central story: a refrigerated load for a VIP grocery chain is predicted 42 minutes late. The tracking sources disagree, the distribution centre accepts changes only until 11:00, and nobody owns the case yet. In the guided scenarios only the control the story needs is live: follow the steps under the screen and watch the map, the panel and the timeline change with each decision.

NORTHLINEControl TowerDay shift · Tue 13 Oct07:00–15:00 CT09:12CT10:12 ETDO
Exceptions10 open · by time to breach
HANDOVER · ALEX BROOKS · NIGHT4 items · 2 for you
6570752494554080714376!
NL-48213 · Truck 2214MM 134 · 0 mph since 09:31 ET
Crash · I-24 E MM 1352 of 3 lanes · clear ≈ 10:45 ET
Brightway DC #4Window 13:00–13:30 ET
ChicagoIndianapolisLouisvilleNashvilleSt. LouisMemphisDetroitColumbusMilwaukeeKansas CityCharlotteBirminghamGreen BayCincinnatiJolietRockfordMinneapolisOmahaDenverAtlanta
Critical 3At risk 3Data 4On plan 34
TrafficInterstatesWeatherFacilities
48 ACTIVE · 14 NEED ATTENTION · 34 ON PLAN100 MI
Commitments todayWindowNot confirmedPredictionLateUncertain34 on plan hidden · CT
0708091011121314151617
09:12
NL-48231Pickup · RockfordDwell
NL-48177Pickup · JolietNo-show risk
NL-48213Delivery · McDonough
NL-48090Delivery · LouisvilleTemp > 46°F
NL-48244Pickup · Green BayNo tracking
NL-48155Delivery · St. LouisMissing event
NL-48066Delivery · DetroitSlot unconfirmed
NL-48120Delivery · BirminghamHOS
Demo flowTime is simulated and moves only when you act.
  1. 01Accept the night handover
  2. 02Open the exception
  3. 03Take ownership
  4. 04Confirm position with the carrier
  5. 05Move the delivery window
  6. 06Notify the customer
  7. 07Confirm arrival and resolve
  8. 08Review shift results
01

Exceptions queue

Only what needs attention, sorted by time to breach, not by severity. A critical case without an owner is outlined in red; the night handover is pinned below.

02

Network map

Hover an exception to preview its route; click it and the map shows only that route, framed, with the truck, the incident and the receiver’s window.

03

Exception panel

The commitment against the prediction, every source with its age and conflicts, and the next actions in lifecycle order.

04

Commitments timeline

It encodes time only: a tick outside the window is a schedule risk, a hollow tick is an unreliable prediction, a dashed window is unconfirmed.

Scenario 2 · Commercial

Detention that can be billed, not absorbed

Same shift, 09:33. A Brightway truck has waited at the shipper for over an hour, and nobody picked up the exception for 40 minutes, so the rule escalated it to the team lead. Marcus hands it to Priya Nair, and you play her seat.

Detention is money only when it can be proven and was approved in time. The workspace turns waiting into a process: the dwell timer against free time, the reason from the shipper, customer pre-approval before 10:15, and one evidence packet for billing.

NORTHLINEControl TowerDay shift · Tue 13 Oct07:00–15:00 CT09:33CT10:33 ETPN
Exceptions9 open · by time to breach
HANDOVER · ALEX BROOKS · NIGHTAccepted 07:05 CT
6570752494554080714376!
NL-48213 · Truck 2214In crash queue · confirmed by Ridgeline
Crash · I-24 E MM 1352 of 3 lanes · clear ≈ 10:45 ET
Brightway DC #4Window 14:30–15:00 ET
ChicagoIndianapolisLouisvilleNashvilleSt. LouisMemphisDetroitColumbusMilwaukeeKansas CityCharlotteBirminghamGreen BayCincinnatiJolietRockfordMinneapolisOmahaDenverAtlanta
Critical 1At risk 3Data 3On plan 34
TrafficInterstatesWeatherFacilities
48 ACTIVE · 14 NEED ATTENTION · 34 ON PLAN100 MI
Commitments todayWindowNot confirmedPredictionLateUncertain34 on plan hidden · CT
0708091011121314151617
09:33
NL-48231Pickup · RockfordDwell
NL-48177Pickup · JolietNo-show risk
NL-48213Delivery · McDonoughNew slot
NL-48090Delivery · LouisvilleTemp > 46°F
NL-48244Pickup · Green BayNo tracking
NL-48155Delivery · St. LouisMissing event
NL-48066Delivery · DetroitSlot unconfirmed
NL-48120Delivery · BirminghamHOS
Demo flowTime is simulated and moves only when you act.
  1. 01Open the exception
  2. 02Acknowledge the escalation
  3. 03Confirm the reason with the shipper
  4. 04Get customer pre-approval
  5. 05Let free time run out
  6. 06Record the departure
  7. 07Submit evidence and the charge
  8. 08Review shift results
Scenario 3 · Documents

Delivered is not closed

13:15, after the late-delivery story is resolved. A load delivered yesterday still has no proof of delivery, and the invoice cannot go out. Dana owns it from the night handover.

The first photo from the driver fails the signature check. Instead of chasing the driver again, the system asks the receiver for exactly the missing piece. The shipment closes only when the billing packet is complete and synced to the TMS.

NORTHLINEControl TowerDay shift · Tue 13 Oct07:00–15:00 CT13:15CT14:15 ETDO
Exceptions1 open · by time to breach
HANDOVER · ALEX BROOKS · NIGHTAccepted 09:14 CT
6570752494554080714376
Brightway DC #4Arrived 14:09 ET
ChicagoIndianapolisLouisvilleNashvilleSt. LouisMemphisDetroitColumbusMilwaukeeKansas CityCharlotteBirminghamGreen BayCincinnatiJolietRockfordMinneapolisOmahaDenverAtlanta
Critical 0At risk 0Data 0On plan 34
TrafficInterstatesWeatherFacilities
48 ACTIVE · 14 NEED ATTENTION · 34 ON PLAN100 MI
Commitments todayWindowNot confirmedPredictionLateUncertain34 on plan hidden · CT
0708091011121314151617
13:15

Every commitment left today is on plan.

Demo flowTime is simulated and moves only when you act.
  1. 01Open the exception
  2. 02Follow up with the carrier
  3. 03Receive the driver's upload
  4. 04Reject the unsigned copy
  5. 05Receive the signed copy
  6. 06Accept POD: billing ready
  7. 07Sync to TMS and close
  8. 08Review shift results
Free prototype

Walk the shift yourself

The same control room without a script. Hover and open any exception, switch filters, follow routes on the map and in the timeline, and take ownership of the cases that need it. The deep chains stay in the guided scenarios above; here every exception gets its basic actions.

NORTHLINEControl TowerDay shift · Tue 13 Oct07:00–15:00 CT09:12CT10:12 ETDO
Exceptions10 open · by time to breach
HANDOVER · ALEX BROOKS · NIGHT4 items · 2 for you
6570752494554080714376!
NL-48213 · Truck 2214MM 134 · 0 mph since 09:31 ET
Crash · I-24 E MM 1352 of 3 lanes · clear ≈ 10:45 ET
Brightway DC #4Window 13:00–13:30 ET
ChicagoIndianapolisLouisvilleNashvilleSt. LouisMemphisDetroitColumbusMilwaukeeKansas CityCharlotteBirminghamGreen BayCincinnatiJolietRockfordMinneapolisOmahaDenverAtlanta
Critical 3At risk 3Data 4On plan 34
TrafficInterstatesWeatherFacilities
48 ACTIVE · 14 NEED ATTENTION · 34 ON PLAN100 MI
Commitments todayWindowNot confirmedPredictionLateUncertain34 on plan hidden · CT
0708091011121314151617
09:12
NL-48231Pickup · RockfordDwell
NL-48177Pickup · JolietNo-show risk
NL-48213Delivery · McDonough
NL-48090Delivery · LouisvilleTemp > 46°F
NL-48244Pickup · Green BayNo tracking
NL-48155Delivery · St. LouisMissing event
NL-48066Delivery · DetroitSlot unconfirmed
NL-48120Delivery · BirminghamHOS
Free prototype · click through exceptions, filters, the timeline and the map

A shared model keeps every screen consistent

The product is organised around a shipment and its operational state, not around the systems that supply the data. This prevents the dispatcher from reconstructing one case across multiple tools.

01

Shipment

Route, stops, cargo, promises, milestones

02

Execution

Vehicle, driver, carrier, live signals

03

Exception

Type, severity, confidence, impact, state

04

Resolution

Owner, actions, communication, outcome

Design for imperfect operations

A logistics product cannot assume complete data or a clean happy path. The critical states are where sources disagree, signals disappear, responsibility is unclear, or automation needs a human decision.

Missing data
Show last known state, age, source, and confidence
Conflicting statuses
Keep both sources visible and explain the chosen state
Duplicate alerts
Group symptoms into one operational exception
No owner
Make responsibility explicit and escalate by time
Manual override
Require a reason and preserve the previous value
Resolved but recurring
Reopen the case without losing its history
Design system

A control room where colour means a commitment is at risk

A dispatcher looks at the product for a whole eight-hour shift, so it is dark, flat and quiet: graphite panes split by hairlines, no cards, no decoration. Colour appears only when a commitment is at risk: four severity levels, blue for uncertain data, green for on plan, and amber for “now” and the one action that matters next.

Every id, time, countdown and count is set in IBM Plex Mono, so a column of times can be compared at a glance; the interface itself is IBM Plex Sans at 12 px. The map and the commitments timeline have their own grammar: the timeline encodes time only, and anything that is not about time becomes a chip next to the row.

Graphite panesDark steps for an eight-hour shift; panes are split by hairlines, never lifted into cards.
  • graphite.990#07090bBehind the map
  • graphite.950#0c0e11App background
  • graphite.900#111418Exception panel
  • graphite.850#171b21Selected row
  • land.800#161c23States on the map
  • road.600#3a4552Interstates

Text and hairlines

  • text.primary
  • text.muted
  • text.faint
  • line
  • line.soft
  • line.strong

Three text tiers and two line weights; nothing else separates the panes.

Semantic tokensScreens use roles, not hex values.

Background & surface

  • color.background.appgraphite.950
  • color.surface.panegraphite.900
  • color.surface.selectedgraphite.850
  • color.surface.mapgraphite.990

Text & border

  • color.text.primarytext.primary
  • color.text.mutedtext.muted
  • color.text.fainttext.faint
  • color.border.defaultline
  • color.border.softline.soft

Now & action

  • color.action.primaryamber.400
  • color.time.nowamber.400
  • color.on-actionamber.950

Severity & state

  • color.severity.criticalred.400
  • color.severity.highamber.400
  • color.severity.mediumsky.400
  • color.severity.lowslate.400
  • color.state.on-plangreen.600
  • color.state.datasky.400
Status and timeSeverity, data quality and time are three different questions. The timeline answers only the last one.

Severity

  • Critical#ff5b4d
  • High#ffb224
  • Medium#5cc8ff
  • Low#8b95a3

Data quality

  • Healthy
  • Stale, conflicting, missing
  • Unavailable

Commitments timeline

  • Window
  • Prediction inside
  • Outside, by severity
  • Now

Measure resolution, not dashboard activity

The primary signal is the share of critical exceptions detected and resolved before they break the customer promise. Product analytics should measure the complete operating loop, not page views or raw alert volume.

The measurement plan combines MTTD, time to acknowledgement, time to resolution, ownerless exceptions, reopened cases, data freshness, on-time delivery, and manual checks per shipment. Exact baselines and targets depend on the team’s data and operating model, so the case focuses on what to measure and why.

  1. 01Exception detected
  2. 02Reviewed
  3. 03Owner assigned
  4. 04Action taken
  5. 05Back on plan
  6. 06Completed

Validation approach

01

Domain interviews

Map the real shift, handoffs, escalation rules, and language used by operators.

02

Scenario walkthroughs

Test delay, missing signal, status conflict, and failed handoff with realistic timelines.

03

Task-based walkthroughs

Measure whether dispatchers identify the priority, owner, and next action without assistance.

04

Analytics review

Confirm event definitions, source reliability, baselines, and feasible success thresholds.

What the work brings together

This work connects the product model, screen architecture, edge cases and measurement framework in one operational flow. A dispatcher can move from a network-level signal to a clear owner, action and verified outcome without rebuilding the story across several tools.

The three scenarios show the same system handling daily triage, billable detention and document closeout. In each case, the source data, responsibility, next action and final result remain visible from start to finish.