The person who negotiated your carrier contract and the person who approves the invoices are rarely the same person; one knows what was agreed and how the rates are supposed to work, while the other sees a file with a few thousand lines and a payment date, and has no realistic way to reconstruct all of that before approving it.

That gap costs money:

  • In the Journal of Commerce shipper benchmark study, one in five freight invoices is inaccurate.

  • nShift research with more than 120 companies found that roughly three in four check their invoices by hand or not at all.

  • Published freight audit benchmarks put recoverable overcharges at 3 to 7% of freight spend.

On EUR 5 million of freight a year, that is EUR 150,000 to 350,000.

On 23 September, my colleague Pieter Schalk and I will run a real, anonymized carrier invoice through nShift Audit live. We will upload the raw file, check every invoice line and send a dispute with the supporting evidence. It is the next episode of Solved, nShift's 30-minute webinar series. Save your seat here.

Before we get to the live invoice, we will cover the part that determines how useful the audit can be: what needs to be available on your side, because the software cannot compare an invoice with a contract or shipment record it does not have.

Title-banner-Solved-Audit


Why a freight invoice gets approved without a full check

Most other spend categories come with a purchase order. When the invoice arrives, accounts payable can match it against the order and the goods receipt.

Freight works differently

Freight invoice verification has to rely on the carrier contract and the record of what actually shipped, and those are often nowhere near the person approving the invoice. Procurement may hold the contract while logistics owns the shipment data and finance receives the bill. By the time all of that could be brought together, the payment deadline is already approaching.

Then there's the volume

Pieter has seen a single carrier invoice run to around 80,000 lines. Even a few thousand is enough to make a proper manual check unrealistic. The amount on each line can depend on a base rate by zone and weight band, fuel surcharge, address type, delivery service and other charges defined partly by the contract and partly by what happened to the shipment.

So the manual audit usually becomes a spreadsheet, a sample of the largest charges and whatever time is available at month end.

One comment came up repeatedly in our customer interviews as we were validating the product:

"It is easier to absorb the cost than fight it."

Checking the rate helps, but it only answers one part of the question

The contract can tell you whether the carrier used the right tariff but it can't tell you things like:

  • whether a shipment was cancelled after the label was printed,

  • if the billed weight differs from the weight that left the warehouse,

  • whether a surcharge relates to a service that was never used.

For those checks, you need the shipment record.

When the shipment runs through nShift, the platform already holds much of that history: the booking, shipment details and delivery events. That gives the invoice something much more useful to be compared against than the rate card alone.

Johan Hellman, our Chief Product Officer, wrote about why we built nShift Audit at launch. The practical question we're answering now is whether the right data is there when the first invoice arrives.

Freight audit checklist: what to have in place before checking your first invoice 

nShift Audit runs seven checks on every invoice line: valid shipment, double invoicing, delivery status, agreed service level (SLA), weight and volume, price, and valid surcharge.

 


And they do not all depend on the same information.

Your contracted rates, loaded as a rate card

The price and surcharge checks compare the invoice with the expected cost of the shipment, calculated from the contract in nShift's Freight Rate Calculation service.

Without a rate card, those checks return "not applicable" while the other checks can still run. That leaves some potentially expensive discrepancies outside the audit, including the wrong base rate, an old tariff that is still being applied or a surcharge that does not appear in the contract.

If your contract is a PDF full of zone tables and weight bands, somebody has to turn that into a usable rate card. This is where most of the setup work sits. nShift can help with that work.

Your shipment records in the platform

The valid shipment, double invoicing, and weight and volume checks match the invoice line with a shipment record in nShift Portal.

If you ship through nShift Ship, Delivery, Transsmart or TMS, those records are already there. If shipments are booked elsewhere, they can be brought in through the Shipment Data API.

Where there is no shipment record to match, the invoice line can still be viewed and explored, but it cannot be audited against the shipment. For an initial rollout, it makes sense to start with carriers and shipping flows where that data is already available.

Delivery events

Delivery status and SLA checks use the events collected while the shipment is moving, including carrier scans, delivery confirmation and the timestamps needed to compare actual delivery with the agreed service level.

These are the same kinds of events nShift Track uses to power tracking pages and customer notifications. For freight audit, they have another job. They can show that a shipment billed at the agreed service level arrived late or was never delivered.

One more requirement: the invoice needs to contain line-level data

nShift Audit reads carrier invoices in PDF with selectable text, CSV, Excel, XML or EDI, with one line per shipment. A summary invoice containing only a total gives the audit nothing to reconcile, and an image scan cannot be read. If your carrier only sends a summary, ask for the underlying line-level file.

nshift-audit-macbook-ingest-formats-v7


And the economics change with volume. In our experience, Audit starts to show its best value from around EUR 1.5 million a year in freight spend across several carriers. At that level, invoice volumes are usually large enough, and a 3 to 7% recovery range valuable enough, to justify putting a proper audit process around them.

With the rate card, shipment records and delivery events available, all seven checks can run from the first invoice you upload.

What Pieter will run live on 23 September

We are going to follow one anonymized carrier invoice through the process rather than showing a collection of product screens.

First, Pieter will upload the invoice exactly as it came from the carrier. The AI reads the layout and turns the charge lines into structured data without needing a template or carrier-specific setup. We will also show the human step that remains in the process: the first invoice received in a new format is validated before later invoices in that format process automatically.

Then we will look at what the audit actually found. The seven checks run against the available rate and shipment data. Deviations are ranked by value, starting with the largest, and each one includes an explanation of the discrepancy. That might be the rate charged against the rate agreed, billed weight against shipment weight, or a surcharge that does not match the service record.

From there, Pieter will raise the dispute. He will select the relevant lines and prepare the dispute with the shipment evidence attached. The invoice can continue through payment while the disputed charges are managed alongside it.

We will also look beyond the individual invoice. The dashboard shows recovered cost, recovery rate, open disputes, spend by carrier, service and lane, and the surcharges appearing most often across invoices.

One discrepancy can recover money but a pattern across several invoices gives procurement something more useful: evidence for your next procurement conversation with the carrier, instead of relying on individual examples or suspicions.

Finally, we will export the normalized invoice data to Excel or CSV for use elsewhere.

Both of us will stay on for questions, so if a carrier invoice has ever left you staring at a line you could not explain, bring it up in the Q&A section.

Who should register

This session is mainly for the people who already handle carrier invoices somewhere in their working week.

  • If you manage freight or logistics, we will show what checking every invoice line looks like without adding another manual process.

  • If you own carrier contracts or procurement, the useful part is the history of deviations by carrier and charge type.

  • For finance and controlling teams, it is the link between what shipping should have cost and what eventually appeared on the invoice.

Businesses already shipping through nShift have a head start because the shipment records needed for the audit may already be in the platform.

Before 23 September, pull out a recent carrier invoice and look at what hides behind it. Do you have the contracted rates? Can you match the lines to the shipments? Are the delivery events available when service performance needs to be checked?

Then join us on 23 September at 12 p.m. BST / 1 p.m. CEST and see what happens when we put those records to work. Save your seat and we will also send you the freight invoice audit guide, covering the seven ways carrier invoices go wrong and a sample audit you can run on your own invoices and rate cards.

Luc Altorf

About the author

Luc Altorf

Delivery Management Expert, nShift

Luc Altorf works on ecommerce and parcel logistics at nShift, where he built the company's partner ecosystem. He studied logistics and supply chain management, spent his early career in procurement and operations, and has worked in delivery technology since 2019.

Read more from this author  →