Logistics
In logistics the software is always behind reality. The truck has already left, the pallet has already moved, the scan happened four minutes ago in a yard with no signal. Systems that assume otherwise produce confident answers that are wrong.
Your data is a lagging, incomplete record
A consignment's state arrives from carrier APIs of varying honesty, driver devices that were offline, EDI messages in inconsistent dialects, and scans that occasionally happen out of order. Treating any of it as the authoritative present tense is the root of most logistics data problems.
What works is modelling events rather than current state — an append-only record of what was reported and when, with current position derived from it. That makes late and out-of-order arrivals a normal case instead of a corruption, and it means you can answer what you knew at the time, which is the question that matters in a dispute.
Where we work
Transport management
Planning, tendering and execution across carriers, including the exception handling that is most of the operational day.
Route optimisation
Constraint-aware routing that accounts for time windows, vehicle limits and driver hours, and degrades sensibly under a tight deadline.
Warehouse systems
Receiving, picking and inventory accuracy, designed for handheld use in cold, noisy places by people wearing gloves.
Track and trace
Shipment visibility that reconciles conflicting carrier reports rather than displaying whichever arrived last.
Freight settlement
Rating, audit and invoice reconciliation, where the disagreement is usually about which accessorial applied.
Carrier and EDI integration
Onboarding carriers whose interfaces range from a clean REST API to a fixed-width file at 2am.
Constraints that shape the work
Every carrier disagrees
Status codes, timestamps and event granularity differ by partner and by lane. Normalisation is the system; the tracking screen is the easy part.
Events arrive late and out of order
A scan uploaded six hours after it happened is normal. Anything that assumes ordered, timely events will show customers a confidently wrong status.
Exceptions are the workload
The happy path is a small fraction of operator time. Design for the delayed, split, damaged and re-routed consignment or you have automated the easy part only.
Settlement follows the data
Freight invoices are disputed against the same event stream. If tracking and billing disagree, someone reconciles it by hand, every week, forever.
Exceptions are the product
Almost every logistics interface is designed around the shipment that goes to plan, and almost every hour of operational effort goes to the ones that do not. A screen that shows a green path beautifully and buries the failed delivery three clicks deep has optimised for the wrong case.
We design the exception path first: what an operator sees when a scan is missing, a carrier contradicts itself, or an address will not geocode. Getting that right is worth more than any amount of dashboard polish, because it is where the labour actually is.
- Event-sourced shipment state, so late data is normal rather than corrupting
- Exception queues designed as the primary workflow, not an afterthought
- Conflicting carrier reports reconciled with a visible, explainable rule
- Offline-tolerant mobile capture, syncing without duplicate events
- Time zones and daylight saving handled once, properly, at the boundary
When not to hire us
If your operation runs on a carrier portal and a spreadsheet and it works, a custom transport system is unlikely to pay for itself. We would rather tell you that than build it.
We also avoid route optimisation projects scoped without the dispatchers. They carry constraints that never appear in the data — which driver knows which site, which customer will refuse a late delivery — and a solver that ignores those produces plans nobody follows.
Common questions
Practically, yes, though effort varies enormously. A modern REST API is days; a carrier with a bespoke EDI dialect and no sandbox is weeks, most of it spent discovering undocumented behaviour. We size each one individually rather than quoting an average that will be wrong in both directions.
Related work
Bring us the part that is stuck.
Send the constraint you are working around and we will come back with an approach, a rough shape of the work, and what it would take to hand it over.