The invoice follows the data. The contract sits in a folder nobody has opened since signing.
Warehouse, freight and customs invoices are generated from system events, not from what you signed. A peak surcharge that never came off in January is still internally consistent — and it arrives as one number, which is very hard to argue with.
Three months of invoices against your rate card and shipment log. 30% of what comes back, or $1,800 fixed — $900 for the first three.
Two lines by email · no obligation · answered by the person who would do the work
Three lines to check on the last invoice you approved
Pick and pack, against the rate card
Open the contract, find the per-order and per-unit rates, and compare them with what's on the invoice. Surcharges introduced "temporarily" for peak are the usual finding — they went on in November and nobody took them off in January.
Storage, against occupancy
Storage is usually billed per pallet position per period. The question is whether you're paying for positions that emptied mid-period, and whether the count was taken on the day that suits the invoice.
Accessorials, against events
Re-labelling, special handling, receiving fees on a standard inbound, pallet build, rework. For each one: is there an event in the shipment log behind it? A charge with no matching event is the cleanest kind of dispute.
Most warehouse agreements have a window after which an invoice counts as accepted — usually weeks, not months. If something has drifted for a year, only the recent months may be recoverable, so it’s worth knowing yours before you go looking.
It isn't fraud. It's drift.
“Our 3PL wouldn’t do that.” Deliberately, mostly they wouldn’t. Their billing engine runs off system events: when an event fires twice, or a rate table isn’t updated after a renegotiation, the invoice follows the data rather than the contract.
Nobody has to be dishonest for you to be overbilled. Somebody just has to not re-read the rate card, on both sides, for six months.
The test is one question: when the invoice arrives, does anyone compare it with the contract line by line? At most brands it reaches finance as a number, and the rate card lives with whoever signed it.
| What we look for | Evidence needed |
|---|---|
| Rate above contractpick, pack, receiving, per unit or per order | rate card |
| Peak surcharge still appliedout of season | rate card + dates |
| Storage on emptied positionsbilled as occupied | stock ledger |
| Accessorial with no eventhandling, re-labelling, rework | shipment log |
| Same shipment on two invoicesduplicates across periods | invoices |
| Minimums applied twicemonthly minimum charged per site and per account | invoices |
| Freight class or weight roundingrounded up consistently in one direction | shipment log |
| Customs and duty linesbrokerage fees charged per line instead of per entry | entries |
See the charges with no event behind them
A 3PL invoice checked against the provider’s own shipment export. The three findings here are the ordinary ones: billed for more than they shipped, a duplicated line, and one service charged at two different rates.
Line by line: what was billed, what the contract says, the difference and the clause to quote. Two lines are marked «not identified» rather than guessed at — those are questions for your provider, not findings.
A dispute file, not a report
Each line carries the invoice reference, the contract clause, the expected amount and the difference — the format you need to send it back rather than argue from memory.
Forwarder invoices, not just the warehouse
If you buy FOB and manage your own ocean freight, the forwarder invoice is the other half of this job, with its own vocabulary for the same problem: quoted rates against billed, demurrage after a free-time window nobody tracked, chargeable weight rounded one way, brokerage billed per line where the agreement says per entry.
Same check, different documents — tariff on one side, invoice and shipment file on the other, every difference tied to the clause behind it.
Two 3PLs, one comparison
With warehouses in two regions the useful question isn’t “is this invoice right”. It is what an order actually costs at each site once accessorials, storage and re-work are counted — which neither invoice shows, because each is written in its own format.
Normalising both onto one cost-per-order basis gives you a like-for-like comparison for the renegotiation, and a short list of charges that exist at one site and not the other.
Supplier invoices against what you ordered and received
Half the people who come here for logistics invoices have the buy side in mind: purchase orders, goods receipts and supplier invoices that are supposed to agree and regularly don’t. Quantities received against billed, prices against the agreed list, short shipments credited on paper but never in the ledger.
Same check, three files instead of two — and the one place where we have a hard public number rather than an industry estimate.
In a public event log of a real multinational’s purchase-to-pay process — with three-way matching configured in SAP — 4.51% of received items had no invoice recorded against them, and 4.06% were invoiced more than once.
That is what the failure rate looks like with automated matching, audit trails and a finance team. If your three-way match is a person checking a PDF against a delivery note when they have a spare hour, the honest expectation is not better than that. The dataset, in full →
We need purchase orders, goods receipts and supplier invoices for the same period. Same price and terms as the logistics audit. If the same list is cleared by hand every month-end, it’s usually cheaper to fix the matching than the queue. The reporting side of it →
What we won't claim
Freight audit routinely recovers a few percent of spend — an old, well-served market. For warehouse invoices there is no published benchmark at all, which means anyone quoting you a recovery percentage for 3PL billing is making it up.
So we don't quote one. What we'll say is narrower and true: the drift we look for is mechanical, it's visible in three documents you already have, and if it isn't there you'll have that in writing within a week.
Three documents, no access
Three months of invoices, the rate card or contract schedule, and the shipment log for the same period. Nothing else — no system access, no customer data, no names or addresses.
If your rate card is a PDF from a negotiation two years ago, that's normal and fine. Reconstructing what was actually agreed is part of the work.
We don't contact your provider on your behalf unless you ask us to. The dispute is your relationship; our job is to make it a documented one.
A share of what comes back
- Three months reviewed line by line
- Every finding tied to a contract clause
- Written up so you can send it as-is
- A fixed-fee option instead, if you prefer: $1,800
Ongoing checking of each new invoice as it arrives is $600 per month. Full pricing →
A share of what comes back
- Three months of invoices against the rate card and shipment log
- One row per charge: agreed rate, billed rate, difference, the clause behind it
- Warehouse, freight and customs, or purchase orders against goods receipts
- Fixed-fee option instead, if you would rather keep the upside: $1,800
Checking each invoice as it arrives, against a rate card we keep current, is $600 per month. Full pricing →
You pay when the credit note lands
The fee is a percentage of money that actually moved — credited, refunded or written off in your favour. Not of what we “identified”. A list of theoretical findings is easy to produce and worth nothing.
If the audit finds nothing worth disputing, you owe nothing and you keep the written confirmation that your billing is clean — which is a useful thing to have in a renegotiation.
The ones that come up
Won't this damage our relationship with the 3PL?
A documented, specific query about four lines on one invoice is a normal business conversation, and good providers fix them without drama — their billing team usually didn't know either. The version that damages relationships is the vague accusation, which is exactly what you avoid by having line-level evidence.
We renegotiated recently, so the rates are current.
That's the highest-yield moment to check, not the lowest. Rate table updates after a renegotiation are a manual step on their side, and it's the single most common source of drift we look for.
Our finance team already approves the invoices.
Approval usually means the total is within budget and the period is right. That's a different check from comparing each line against a contract schedule — which takes documents finance typically doesn't hold.
What about freight and customs, not just the warehouse?
Same exercise, different documents: carrier invoices against agreed tariffs and accessorial schedules, brokerage against the entry, duty against the classification. Included in the same audit if you have the files.
Two lines by email. No form, no calendar link.
Which two systems, roughly what size, what you have already tried. You get a straight answer the same working day — including “this is not something we would help with”, when that is the honest one.
Two lines by email · no obligation · answered by the person who would do the work