Work / Waybill
Waybill
Customs paperwork checked against itself and the tariff before the freight lands, with no document leaving the building.
- Type
- Program
- Status
- Released, 2026
- Our role
- Document vision pipeline, reconciliation engine, broker review interface
- Timeframe
- 2026
Waybill is a pre-arrival audit for customs paperwork. Every cross-border shipment comes with at least three documents written by different people at different times: a commercial invoice from the seller, a packing list from the warehouse, and a bill of lading or air waybill from the carrier. Each one describes the same freight in its own way. Customs only holds a shipment when the descriptions disagree, or when one of them is wrong in a way an officer can see.
Waybill reads all three, lines them up item by item, checks the declared tariff codes against the goods being described, and gives the broker a short list of what will cause trouble and why. It runs entirely on the client's own machines. The documents involved, including supplier pricing, consignee details and origin claims, never reach a cloud OCR service or an AI vendor.
- Documents reconciled per shipment
- 3
- Documents reconciled per shipment
- Bytes sent to a cloud service
- 0
- Bytes sent to a cloud service
- Ranked exception list per file
- 1
- Ranked exception list per file
Where the money actually goes
Most of the cost in customs isn't duty. It's time. A hold at the port means the container stays on the terminal past its free days and demurrage starts. If the hold drags on, the trucker waiting to collect it starts billing detention as well. Neither charge has anything to do with the goods. Both come from paperwork somebody could have caught a week earlier.
The errors are mundane. An invoice says 1,200 units and the packing list says 120 cartons of 10, and nobody converts. A tariff code is valid at six digits but wrong at the national level. A description such as "parts" or "accessories" is too vague for an officer to accept. Country of origin is claimed for a preference programme the paperwork doesn't support. Each one is easy to spot when someone is looking, and nobody has time to look at every file.
How a file moves through it
Documents arrive however they arrive: a PDF from the shipper's ERP, a scan of a scan, a phone photo of a packing list taped to a pallet. A layout-aware vision model finds the tables, headers and totals on each page and extracts line items with their quantities, units, weights, values and descriptions. Every extracted field keeps the page coordinates it came from.
A reconciliation pass then matches lines across the three documents. That is harder than it sounds, because the same item appears as a SKU on the invoice, a carton count on the packing list and a gross weight on the bill of lading. The engine normalises units, rolls cartons up into pieces, and compares declared weights against the sum of the lines. It also checks that values in different currencies add up to the invoice total.
Last, every line gets a classification check. The declared tariff code is compared with the product description, and lines where the two don't plausibly agree are flagged, with the heading the description points to instead. The output is not a verdict. It is a ranked list of exceptions, each one tied to the exact spot on the exact page, for a licensed broker to accept or dismiss.
Why it runs on-premise
A customs file holds a supplier's unit pricing, a buyer's margin and the names of everyone in the chain. That is exactly what a forwarder has promised its clients not to spread around, and exactly what a cloud OCR or AI API needs to see to be useful. Most forwarders end up either not automating at all or quietly accepting the exposure.
Waybill avoids that choice by running on one workstation-class machine with a modern GPU, inside the client's network. The models are open-weight and quantised to fit. Tariff data is shipped as a versioned data pack, and the system makes no outbound calls while it processes a file. When the tariff schedule changes, the update arrives as a signed pack. It is never a live lookup.
What it deliberately does not do
It does not file anything. It doesn't submit to customs, it doesn't pick a final tariff classification, and it doesn't sign. Classification is a regulated judgement that a licensed broker is accountable for. A tool that quietly overwrote their call would be a liability, not a feature. Waybill's job is to make sure the broker sees the problem in time, with the evidence in front of them.
For the same reason, every flag can be traced back. A broker can click any exception and see the cropped region of each source document that produced it, so a reviewer never has to take the model's word for anything.
Where it stands
The extraction and reconciliation pipeline is in use on live import files, and the review interface is where brokers work through each day's exceptions. Classification checks run against the international six-digit Harmonized System, which nearly every customs authority shares. Each country's national tariff digits, duty rates and documentation rules plug in as a separate data pack, so adding a new jurisdiction means configuring a pack, not rebuilding the system.
Next is pulling exceptions into the forwarder's existing operations system, so flags show up in the queue people already work from rather than a separate screen. After that, the plan is to learn from how brokers resolve each flag, so the ranking adapts to what each team actually treats as urgent.
Technology
Python, Layout-aware vision models (open-weight, quantised), PostgreSQL, FastAPI, Next.js review interface, On-prem GPU inference