Case study · Logistics
Six systems, one truth.
Meridian's customers asked where their freight was. Answering took a person, three logins and about eleven minutes. Now it takes a page load.
- 63% fewer enquiries
- 19% on-time improvement
- 40M events/month
- Sector
- Freight forwarding
- Duration
- 10 months
- Squad
- 7 engineers
- Scale
- 40M events/month
Overview
The situation
Meridian moves freight across road, sea and air, using a transport management system, two warehouse systems, a customs platform and two carrier portals. Each held part of the truth about any given shipment.
The customer service team reconciled them by hand, one enquiry at a time.
Challenge
The challenge
The systems did not share identifiers. A shipment was a booking reference in one, a consignment number in another, and a container ID in a third — with the mapping living partly in a spreadsheet and partly in people's heads.
None of the systems could be replaced within the programme's horizon.
- No shared identifier across the six systems
- Partner data arriving as EDI, API and emailed CSV
- Field staff working in areas with no reliable connectivity
- Customer service resolving each enquiry manually
Approach
What we did
We built an event backbone rather than a new system of record, and solved identity resolution as a first-class problem rather than a mapping table.
01
Ingest everything as events
Every system's changes captured as immutable events — CDC where the database was reachable, API polling where it was not, parsed files where it was neither.
02
Resolve identity properly
A resolution service linking identifiers by deterministic rules first and probabilistic matching second, with every uncertain link routed to a human queue rather than guessed.
03
Build the timeline
One ordered event timeline per shipment, exposed through an API that both the customer portal and internal tooling consume.
04
Lead with exceptions
Rather than a dashboard, an exception queue: delays, mis-scans and customs holds routed to the person who can resolve them, with the full timeline attached.
05
Make the field app offline-first
Local-first data with explicit conflict resolution, so a driver in a dead zone keeps working and their scans reconcile cleanly on reconnection.
Results
The outcome
Customer enquiries fell by 63% once the portal could answer the question directly. The bigger surprise was operational: routing exceptions to a named owner improved on-time delivery by 19% without any change to planning.
Fewer status enquiries
Within two quarters of launch
On-time delivery improvement
From exception routing alone
Events processed monthly
Across six source systems
Saved per enquiry
Manual reconciliation eliminated
“We assumed we needed to replace the TMS. What we actually needed was for our existing systems to agree with each other.”
Industries
Technologies
Published 11 August 2025
More work
Other systems we have shipped
Have a problem shaped like this one?
Bring us the constraint your last partner called impossible. We will tell you on the call whether we believe it.