Drive360 · dispatch UX exploration sprints#2853
Workshop · live

A driver. A day. A list of jobs in order. The smallest UI that makes that obvious wins.

Holz Heavy Haulage today plans every driver's day in a hand-edited Excel program (HHH Program). Linfox dispatches via Google Sheets. Horne and Gatt book direct. Three contractors, three workflows, one universal job to be done: point a driver at a sequence of jobs and ship the day.

What follows is three candidate shapes, each grounded in a pattern proven by an app that already solves this for thousands of operators. Pick one, we build it, every contractor benefits.

Holz
~12 drivers · 5–7 jobs / day each
WEM Float Report import + manual program. Sequenced runs with cascading start times. Pilots on oversize loads.
Linfox
~120 drivers · 1 long job / day
Google Sheet allocations imported daily. One driver per route. Visible schedule across the depot.
Horne · Gatt
~6 drivers · 2–4 jobs / day
Direct booking. Job entered, then driver and truck assigned later. No import. No sheet.

How others solve this

Five apps that ship dispatch UI at scale. Each tackles "driver + day + sequenced jobs" with a different primitive. We borrow from the patterns that match our scale and contractor mix.

O

Onfleet

Last-mile dispatch · ~$80M ARR

Map + driver-lane sidebar. Unassigned tasks float in a tray, dispatcher drags onto a driver lane. Sequence inferred by drop position.

What we borrow: the unassigned tray + drag-onto-driver metaphor. Sequence by position.
R

Routific

Route optimisation

Plan view: pick a driver, see their day as a draggable list of stops with cascading times. Drag a stop, the rest re-time.

What we borrow: the draggable stops with cascade as the build primitive.
S

Samsara · Dispatch

Public · ~$1B ARR

Resource-timeline calendar: rows = drivers, columns = days. Coloured blocks per assigned job. Drag between rows to reassign.

What we borrow: the glance pattern — see a whole week, every driver's day, at once.
L

Linear

Issue tracking · reference set

Multi-select with checkboxes, contextual action bar, keyboard-driven. Same row = N issues, one bulk operation.

What we borrow: the multi-select + action bar entry to bulk assign.
O

OptimoRoute

Multi-stop routing

Drag-and-drop dispatch board. Driver lanes vertical, time horizontal. Drop a stop into a lane, it inserts at the right time.

What we borrow: time-aware drop — when you drop, the tool finds the right slot.
T

Things 3

Personal task list

The gold standard for sequenced lists. Drag handles, gentle re-animation, cascading times. Feels physical.

What we borrow: tactile reorder feel — handle, lift, rest, snap.
A

Calendar + Right Rail + Plan Day

Recommended

Borrows from Onfleet's tray + Routific's day list + Linear's multi-select. The week calendar is the glance. The Plan Day slide-over is the build.

Routes overview / Calendar
Mon 18 — Sun 24 Apr 2026
Mon 18
Tue 19
Wed 20
Thu 21
Fri 22
Sat 23
Sun 24
06:00 · Nic 806
25t Exc · Lucas → Rouse
07:30 · Nic 806
14t Exc · DMA → 6B
09:00 · Nic 806
Grader · Glenfield → Mary
12:00 · Mick 842
Z50 · Depot → Bulla
14:00 · Mick 842
D6 · Bendigo
06:00 · Jason 828
24t Exc · Menangle 3A → 6B
08:30 · Jason 828
25t Exc · Figtree → Rouse
21:00 · Luke 804
25t Exc · Bargo → Cassnock
22:30 · Luke 804
50t Exc · Bringelly

Right rail filters to the date range visible on the calendar. Click a card to select; ⌘ / ⇧ to multi-select. Action bar appears at first selection. Drag a card straight onto a calendar slot bypasses Plan Day for one-off assignments.

Plan Day slide-over

Pick a driver, pick a start time, drag drops to reorder. Times cascade down. Per-row override breaks the cascade for that drop without breaking the rest. One submit assigns all with sequence 1..N.

  • Truck pre-fills from driver's last-used rego ("Last used: 806")
  • Drops re-time when you drag the ⋮⋮ handle
  • Click any time pill to override that drop's window
  • "+ Add another drop" pulls more from unassigned for the same date
  • Buffer between drops defaults to 30 min, configurable. Phase 2 = HERE travel-time aware.
Build cost
~1 day. Reuses FullCalendar week view, existing event-by-driver coloring, existing add-driver mutation.
Generic across contractors
Last-mile (Linfox) gets multi-select bulk for Google Sheet imports. SF gets the WEM flow. Direct-booking contractors get the same Plan Day modal.
Risk
Drag-and-drop reorder needs DnD library (dnd-kit ~ 10kb). Cascade math needs care for cross-day buffer.
B

Driver-lane Dispatch Board

The Onfleet / OptimoRoute / Samsara pattern. Rows = drivers, columns = time of day. Drag jobs from a top tray onto a driver's lane.

Routes overview / Dispatch · Mon 18 Apr
Unassigned · 12
TR-018378
25t Exc · Lucas
Figtree → Rouse
TR-018376
24t Exc · DMA
Menangle 3A → 6B
TR-018373
24t Exc · LST
Links → Maryfields
TR-018384
Roller
Jabbarup → Mason
TR-018369
14t Exc
Fairways → Jabbarup
Driver
06
07
08
09
10
11
12
13
14
15
16
17
NC
Nic 806
3 drops
25t Exc · Lucas
14t Exc · DMA
Grader · Glen
MJ
Mick 842
2 drops
Z50 · Bulla
D6 · Bendigo
JR
Jason 828
drag here →
LB
Luke 804
night runs
Build cost
~3–4 days. Custom timeline grid (FullCalendar resource plugin is paid), hit-test math for drop placement, drag-and-drop coupling.
Strength
Best dispatcher view. See every driver's day on one screen, every minute. Closest match to a wall-of-drivers in a control room.
Weakness
Single-day only. To plan the week you flip dates. New mental model for users coming from a calendar.
C

List + Linear-style Multi-select

The simplest cut. Stay on the existing list view, add checkboxes, action bar pops from the bottom. No new surface. No drag.

Routes overview / Unassigned · 12
TR Equipment From To Date Status
TR-018378 25t Exc · Lucas Figtree Rouse Reserve 18 Apr Unassigned
TR-018376 24t Exc · DMA Menangle 3A-2 Menangle 6B 18 Apr Unassigned
TR-018373 24t Exc · LST Links Maryfields 2 18 Apr Unassigned
TR-018384 Roller · Sherrin Jabbarup Mason 2-3 18 Apr Unassigned
2 selected · ⌘D = Plan day · Esc = Clear
Build cost
~4 hours. AG Grid already supports row selection. Action bar is a footer.
Strength
Ships today. No new surface. Linear-quality multi-select pattern is instantly familiar.
Weakness
No glance — you don't see who's doing what when. Sequence still picked in a sub-modal. Falls short of the HHH Program experience.

Recommendation

Ship Shape A.

The calendar is a glance. The Plan Day slide-over is a build. They answer the two questions every dispatcher asks every morning: "who's doing what this week?" and "what does Nic's Monday look like?".

  • Reuses the FullCalendar week view we already polished. New code is the right rail and the slide-over.
  • Generic across contractors. Holz uses it for WEM imports. Linfox uses it for Google Sheet imports. Horne and Gatt use it for direct bookings. The shape doesn't change.
  • Cascading times + drag-handle reorder is the Routific / Things primitive — proven for sequenced work.
  • Multi-select + action bar from Linear. Familiar to anyone who's used a serious B2B tool in the last five years.
  • Ships in ~1 day of focused work. Holz uses it tomorrow. We watch for two weeks. If the dispatch board (Shape B) becomes the gap they ask about, we layer it.
The phasing
  1. 1
    Now · Shape A
    Calendar default + right rail + Plan Day. SF column audit, route naming, auto-jump to imported week.
  2. 2
    +2 weeks · evidence
    Watch Holz use it. Ask which moments hurt. Travel-time cascade? Pilot lane? Multi-day plan?
  3. 3
    If asked · Shape B
    Build the dispatch board on top — driver lanes, all-day glance, drag-between-drivers.
Generic across contractors — confirmed.

Same surface. Different data flowing in. Last-mile Linfox dispatchers get the same multi-select + Plan Day they always wanted but never had. SF dispatchers get WEM import → unassigned → Plan Day. Direct bookings (Horne, Gatt) flow into the same unassigned tray. One pattern, three contractor types, zero per-tenant code.