Brightwell Freight · 2024
Replacing 14 spreadsheets with one dispatch dashboard
A regional freight company ran dispatch, driver hours and invoicing across 14 shared spreadsheets. We replaced them with one dashboard that dispatchers open at 6 a.m. and close at 7 p.m.
The problem
Brightwell moves pallets for about 300 business customers with a fleet of 46 trucks. Dispatch lived in a shared spreadsheet, driver hours in another, rate cards in a third, and so on, fourteen in all. Formulas referenced other files by path. When someone renamed a folder in March, invoicing broke for four days before anyone noticed.
The finance team spent roughly 22 hours a week reconciling delivered jobs against invoices, and 3 to 4% of jobs were never billed at all. Dispatchers kept a paper notebook as a backup because they did not trust the sheet during busy hours. The owners did not want a large logistics platform with a two-year contract. They wanted their own process, without the spreadsheets.
Process
- 01
Model the work, not the sheets
Copying the spreadsheets into a database would have kept their problems. We mapped the life of one job, from quote to proof of delivery to invoice, and found the same customer stored five different ways. We designed a Postgres schema around jobs, legs and stops, and wrote migration scripts that flagged 1,140 duplicate customers for a human to merge.
- 02
One screen for the morning rush
Dispatchers use the tool for twelve hours straight, so we optimised for keyboard use and density over looks. The board shows today's jobs by truck with drag to reassign, and every action has a shortcut. We used Remix for server-rendered forms that stay usable on the warehouse's old PCs, with optimistic updates where speed mattered.
- 03
Billing straight from the job
A job marked delivered now creates a draft invoice line with the right rate card, fuel surcharge and waiting time. Finance reviews a queue instead of a spreadsheet. We ran both systems in parallel for three weeks and compared outputs nightly, which caught two rate card errors that had been in the old sheets for over a year.
Selected images
Outcome
The spreadsheets were archived in week ten. Reconciliation dropped from 22 hours a week to about four, and unbilled jobs fell from 3–4% to under 0.2%. The recovered revenue paid for the project in seven months. The paper notebook retired itself in the second week.
- −18 h
- weekly reconciliation time
- <0.2%
- jobs left unbilled
- 7 mo
- payback period
I used to dread month end. Now I review a queue on the 1st and I am done by lunch. We also found money we did not know we were losing.
Keep reading
All work