Logistics · 2026

Replacing a spreadsheet-run dispatch process with a live platform

A 40-vehicle fleet was being dispatched from a shared spreadsheet. We replaced it with a real-time platform and gave the planners their mornings back.

Client
A UK third-party logistics operator
Duration
14 weeks
Services
Software Engineering, Cloud & Infrastructure
3h → 20m
Daily dispatch planning
Zero
Double-booked vehicles since launch
40
Vehicles live on the platform

The challenge

Every morning a planner rebuilt the day's schedule by hand in a spreadsheet shared across three sites. Two people editing the same row meant double-booked vehicles, and the only way a driver could confirm a change was to phone the office. Nobody could answer 'where is that load right now' without making three calls. The process consumed roughly three hours of senior planner time a day, and got worse every time the fleet grew.

What we did

  1. 01

    Spent the first two weeks on site shadowing planners and drivers rather than gathering requirements in a meeting room. The spreadsheet encoded years of undocumented rules nobody had written down.

  2. 02

    Modelled the domain properly around jobs, vehicles, drivers, and shifts, so scheduling conflicts became impossible to represent rather than merely discouraged.

  3. 03

    Built a live dispatch board backed by WebSockets so every site sees the same state within a second, with optimistic locking to make concurrent edits safe.

  4. 04

    Shipped a lightweight driver app as an installable PWA — the fleet runs on mixed Android hardware, and a native app would have doubled the timeline for no benefit.

  5. 05

    Integrated the existing telematics feed and incumbent ERP rather than replacing them, keeping the change contained to the process that was actually broken.

The outcome

Daily planning dropped from around three hours to under twenty minutes. Double-bookings stopped entirely, because the data model no longer permits them. Drivers self-serve their schedules, which removed most inbound phone traffic to the office. The platform went live site-by-site over three weeks with no interruption to operations.

Built with

  • TypeScript
  • React
  • Node.js
  • PostgreSQL
  • WebSockets
  • Cloudflare
“What surprised me was how much of the first month was them asking questions rather than writing code. By the time we saw software, it already worked the way we actually run.”
Operations Director, logistics client

Next step

Have something
similar?

Most of our work starts with a company that knows something is wrong but isn't sure what to build. That's a good place to begin.