Replacing eleven spreadsheets with one operations dashboard
Primary Measured Result
11 → 1
spreadsheets replaced
Screenshot slot
Operations dashboard — live delivery board
1440 × 900
- Client
- Trackline Logistics
- Industry
- Logistics & delivery
- Timeline
- 14 weeks
- Year
- 2024
- Core Stack
- Next.jsTypeScriptNode.js
The problem
What was broken before we arrived
Operations ran on eleven linked spreadsheets maintained by three people. Each had grown its own conventions, two contained formulas nobody still understood, and a single mistyped cell could silently misroute a day of deliveries.
Clients called for delivery status because there was no way for them to check it themselves, which consumed most of one staff member’s day answering questions the data could have answered.
Invoicing took four days at month end, because reconciling delivery records against rate cards was a manual exercise across several files.
Strategy & Discovery
How we solved it
We mapped every spreadsheet and interviewed the three people maintaining them before designing anything. Roughly a third of the columns turned out to be unused or duplicated — a finding that shrank the build considerably.
The rollout was deliberately phased. Deliveries and drivers first, then invoicing, then the client portal, with the spreadsheets running in parallel for the first month so the team could compare outputs and trust the new numbers before relying on them.
Because the operations team lives in this tool all day, we prioritised keyboard shortcuts, fast search, and bulk actions over visual polish in the internal views. Time-on-task was the metric that mattered.
The Build
The system in detail
Screenshot slot
Operations dashboard — live delivery board
1440 × 900
One live operations view
Active deliveries, driver assignments, exceptions, and today’s completion rate on a single screen, filterable without a page reload. Dispatchers stopped switching between files to answer a question.
Screenshot slot
Client portal — delivery tracking
1440 × 900
A client portal that ended the calls
Clients log in to see their own deliveries, statuses, proof of delivery, and invoices. Data separation is enforced at the query layer, so a client can only ever see their own records.
Screenshot slot
Invoice generation with rate card configuration
1440 × 900
Invoicing that runs itself
Rate cards are configured per client, so invoices generate from delivery records automatically with a review step before sending. Month-end went from four days to an afternoon.
Screenshot slot
Internal admin — audit log and impersonation
1440 × 900
Tooling for the support case
Internal admin for correcting bad data with a full audit trail, plus impersonation so support can see exactly what a client sees when reproducing a reported problem.
The Outcome
Measured results in production
- 11 → 1
- Spreadsheets replaced
- 4 days → 1
- Month-end invoicing
- −70%
- Inbound status calls
- 120+
- Daily users
The verdict after rollout
The operations team stopped maintaining spreadsheets entirely within six weeks of the final phase. The client portal removed the majority of inbound status calls, which freed a full-time staff member for work that actually needed a person. Month-end invoicing now completes in an afternoon with a review step, and the audit trail has settled several billing disputes that previously came down to whose spreadsheet was believed.
Screens & Views
Interface gallery
Screenshot slot
Driver assignment view
1440 × 900
Driver assignment view
Screenshot slot
Client portal on mobile
390 × 844
Client portal on mobile
Screenshot slot
Reporting and exports
1440 × 900
Reporting and exports
Architecture
Why we chose this stack
Next.js
One codebase serving both the internal dashboard and the client-facing portal, with access enforced server-side.
PostgreSQL
Row-level access control for multi-tenant data separation, so a query cannot accidentally cross client boundaries.
Redis
Background job queue for invoice generation and scheduled reports, which are too slow to run in a request.
Ready to build a system like Trackline Logistics's?
Tell us what your business actually needs. We will come back with an honest view of scope, timeline, and cost.
No obligation · We reply within one business day