Unchecked
Every operations leader knows their freight spend to the dollar. Almost none can say what share of it was billed correctly. On international lanes, where the charge is built from documents nobody reads twice, that gap is where the money goes.
By Kelly Breakstone Roth, Co-Founder & CEO of Prysmic · July 2026 · 7 min read
Every operations leader knows their freight spend to the dollar. Almost none can say what share of it was billed correctly.
That gap is not a reporting problem. It is a number nobody owns, and it stays unowned because finding it has always cost more than anyone could justify.
For the brands we work with, most of them importing the bulk of what they sell, between 5% and 20% of billed freight does not match what was agreed. That is the range on the money moving goods across an ocean before they ever reach a shelf.
What the gap is worth
You know your annual freight number. Put it through that range.
A brand spending $5 million a year lands between $250,000 and $1 million. At $15 million, between $750,000 and $3 million. At $25 million, over a million even at the low end. These are not rounding errors buried in a P&L. They are the size of a headcount plan, and they are sitting inside invoices the company already paid.
Set that against what it costs to find. One experienced person, checking international invoices full time, is a fraction of the low end of those ranges. The brands that staff it are making an obvious trade. The ones that do not are usually not choosing to absorb the loss. They are out of the hours it would take, and the number is invisible enough that nobody has to defend it in a budget review.
This leak does not show up as a line called billing errors. It shows up as freight costing what it costs, and everyone assuming that is the price.
Why the errors happen
These errors are built into how an international charge gets assembled.
A single ocean or air shipment is priced from a stack of documents that were created at different times, by different parties, for different purposes. A commercial invoice. A packing list. A bill of lading. A customs entry. A rate agreement negotiated months ago and typed into a forwarder's system by hand. The final charge is a calculation run across all of them, and every place two documents can disagree without anyone noticing is a place the charge can be wrong.
Then there is the part most teams never audit: duties and taxes. On a DDP shipment, the forwarder or broker pays them on your behalf and bills them back, and the amount is a product of the declared value, the tariff classification, and the destination VAT rate. Get the classification wrong, carry a declared value that does not match the commercial invoice, or apply the wrong VAT regime, and the number is off before anyone questions it. Most companies check the freight line and wave the duty line through, on the one category where the math is hardest to verify and easiest to get wrong.
The most common billing errors on international freight
- Contracted rates and discounts that were never applied. The most expensive category, because nothing on the invoice looks wrong. Every line reconciles. You negotiated a rate for a lane, or a volume discount, and the number that governs the billing is the old one, or the default one, which is almost never the lower one. A review that asks whether you were billed correctly passes this every time. The only question that catches it is whether you were billed at the rate you actually agreed.
- Duties and VAT billed wrong. On DDP shipments, duty and tax are computed from the declared value, the tariff code, and the destination VAT rate. A wrong classification, a declared value that does not match the commercial invoice, or the wrong VAT treatment produces a charge that looks official and is simply incorrect. This is the least-audited line on most invoices and often the largest.
- Demurrage and detention. Once a container sits past its free time, at the terminal or in your yard, time itself becomes billable. These charges are legitimate in principle and routinely wrong in practice: billed for days the equipment could not have been returned, or for free time miscounted from the wrong start date. They accrue fast and get waved through because reconstructing the clock takes longer than the charge seems to be worth.
- Duplicate and misdirected invoices. A broker sends an invoice, then sends it again, because resending is how busy vendors follow up and an inbox has no memory of what it has already processed. The same charge arrives billed to the wrong legal entity in your group, or lands before the shipment file it references even exists. Where a duplicate carries no matching reference, it bypasses reconciliation entirely.
- Classification and incoterms errors. The wrong incoterm, the wrong customs code, or an internal transfer between your own facilities billed as a commercial shipment. Each one puts duties, taxes, and liability on the wrong party under the wrong rules, and each one repeats on every shipment that follows the same path until someone looks. And the stakes on this line are climbing: US Customs collected $216.7 billion in duties, taxes and fees in fiscal 2025, up from $88.1 billion the year before (CBP trade statistics, 2026). The same misclassification costs a multiple of what it did two years ago.
What is actually disputable
Finding a wrong charge and getting the money back are different jobs, and the second one is governed by rules you did not write.
Disputing works. Carriers and forwarders correct charges every day. But every one of them sets its own terms for how, and by when, and with what evidence, and those terms are not generous. Ocean is the sharpest example. Maersk's standard terms provide that where the bill of lading and the carrier's invoice disagree about charges, the invoice governs, and that freight is payable without set-off or deduction (Maersk Terms for Carriage). You pay the number on the invoice, in full, and pursue the correction separately. You cannot simply hold back the disputed amount.
The money does not go to whoever was overcharged. It goes to whoever can prove it, in the format the contract demands, before the window closes.
What determines whether a disputable charge converts is almost never whether you were right. It is whether you can produce the contracted rate, the shipment record, and the document that contradicts the bill, assembled and submitted inside a window measured in months for some charges and days for others. An error found after its window closes is not a recovery. It is a write-off. Which means the entire game is timing, and timing is decided long before the dispute, by how fast you can see the error at all.
Why nobody caught this sooner
This is not a story about teams that failed to look. It is a story about work that could not be staffed, because the evidence was never in a form a machine could read.
To check one international charge, you have to know the rate that governed that lane on that date, the surcharges in effect, whether the accessorial condition actually occurred, the declared value, the tariff code, and the VAT rate, then reconcile all of it against a bill. That material does not live in a database. It lives in PDF invoices, bills of lading, customs entries, contract amendments buried in email threads, and portal exports whose columns change month to month. International trade still runs on documents in a way domestic shipping does not: the OECD reported in 2025 that roughly 1.2% of maritime bills of lading are issued electronically, against 68% in air freight (OECD, 2025). Tens of millions of ocean bills a year, on paper or PDF, each one a document someone has to read to bill against.
Rules-based software was never going to read that, so the checking stayed manual, and manual work gets rationed. Once shipment volume outruns the people available, checking everything becomes checking a sample, by drift rather than decision. And a sample is the one method guaranteed to miss what it did not look at, because these errors do not scatter. They repeat wherever a rate is misconfigured or a lane is mispriced, which means they cluster, and a sample either lands on a cluster and alarms you or misses it and tells you everything is fine.
What changed
The arithmetic was never the hard part. Multiplying a declared value by a duty rate is trivial. The hard part was reading, at volume, documents that were never structured for a machine. That is the constraint that lifted.
Reading is necessary but not sufficient, and two other properties matter as much:
- The math has to be deterministic. The reading can be probabilistic; the number cannot. A dispute backed by a figure that changes when you run it again is a dispute you lose. The same invoice has to produce the same answer, to the cent, every time.
- It has to remember. The value compounds when the system knows what it checked last cycle, which disputes were filed, which were conceded, and which patterns came back. A one-off analysis finds a number. Something that runs every cycle finds a pattern, and a pattern is what gets a wrong rate fixed at the source instead of recovered forever.
The economics move with it. When checking every line no longer takes a person per thousand shipments, sampling stops being the only option, and coverage goes to everything without a headcount conversation.
How we do it
This is the work Prysmic does, and it is the workflow where a customer sees a real number on their own invoices within weeks. Our agents read every freight invoice as it lands and reconstruct what the charge should have been from the contract, the rate, and the shipment it belongs to.
Finding the error is where most tools stop. We take it the rest of the way. When a charge does not match, the agent assembles the case, the contracted rate, the shipment record, and the document that contradicts the bill, files the dispute with the carrier or forwarder in the form their terms require, tracks it against the deadline, answers the back-and-forth, and closes it out as recovered or credited. A flagged discrepancy is a finding; a resolved one is money back, and we own the distance between them. That is what a system of action means here: it does the disputing, not just the catching.
It runs inside our Inbound crew, alongside shipment tracking, freight procurement, customs reconciliation, and the three-way match run on everything rather than on a sample. Auditing does not need the others to be worth doing, but it gets sharper next to them. Checking a duty charge properly means knowing what was booked, what was quoted, what actually arrived, and what the customs entry declared, and when the agents holding each of those pieces are already running the same operation, that context is assembled instead of reassembled by hand.
You decide which actions run on their own and which wait for a yes. When something needs judgment, it arrives with the evidence and a recommendation attached, and every action traces back to what triggered it and what it used.
See it run on your own invoices
Prysmic agents read, match and dispute every charge as it lands, against the contract, the rate and the shipment it claims to belong to.
Go back to the first question. Most operations leaders can name their freight spend to the dollar, because that number sits on a report someone already runs. The share of it that was billed correctly has never sat on any report, and that is the only reason it has been acceptable not to know.
An unchecked invoice is not a neutral document. It is a bet that every rate, every duty, and every declared value made it through intact, placed on every shipment you move, across documents nobody read twice. The errors are in the numbers, on your lanes as much as anyone's. What your team still controls is how much of the bill goes unchecked.