AI for Checking Freight Invoices: What It Can Do
AI can check every line of every carrier invoice against your contracts; your team still decides the disputes and keeps the rates current.
Explainer · 6 min · Alexandre de Perregaux, CEO, Intellyse · Published · Last updated
Most teams check freight invoices by opening each PDF, finding the shipment and comparing the total with what they expected. That works when volumes are low and the carriers are few. What it misses is everything below the total: the surcharge that should not be there, the wrong exchange rate, the charge that belongs to the other party.
Can AI check freight invoices for us?
Yes. AI can read carrier invoices in any layout, split them into individual charges, match each charge to a shipment and an agreed rate, and flag the ones that do not fit. Your team then reviews a short list of exceptions, each with its reason, instead of every invoice. This is what an AI freight audit is.
An AI freight audit is the automated check of every carrier invoice line against shipment data and contracted rates. The checks are the same ones a careful analyst would run. The difference is that AI runs all of them on every line:
The last two rows are where totals-only checks fail most often. Our air and parcel audit for a machine manufacturer found FX markups of 5 to 8 percent above the ECB reference rate, worth CHF 74K a year, and 366 shipments billed on DDP instead of CIF or CPT, worth CHF 648K a year. Neither shows in an invoice total.
How does an AI freight invoice audit work?
An AI freight invoice audit works in four steps: it reads the invoice, structures every charge, matches each charge to shipment and rate data, and decides approve or query with the source behind the decision. The first two steps replace data entry; the last two replace the analyst's lookup.
- Read. Invoices arrive as PDFs, e-invoices or portal downloads. AI reads each layout without a template per carrier, including new carriers and changed formats.
- Structure. Each invoice becomes a list of charges with the carrier reference, charge type, quantity, unit price, currency and amount. Charge names differ by carrier, so AI maps them to one set of charge types.
- Match. Each charge is joined to a shipment by the carrier reference (bill of lading, air waybill or consignment number) and priced against the rate valid on the shipment date.
- Decide. Lines that fit are approved. Lines that do not are held, each with the rate clause, shipment record or earlier invoice that explains why.
AI does not guess which charges are wrong; it shows which charges do not match what you agreed.
What does AI need from your team?
AI needs three inputs: the invoices, a shipment record for each invoice, and your rate agreements with validity dates. All three can usually be supplied as forwarded emails and scheduled file exports, so checking can start before any system integration, as described in our post on reconciliation without ERP integration.
The rate agreements are the real work. They sit in contracts, tender spreadsheets and emails, and they change after every tender and surcharge notice. They have to be structured once per carrier and kept current. The shipment export needs the carrier reference; without it, matching falls back to dates and lanes and produces false queries.
Your team also keeps the decisions that need judgement:
- Whether to dispute a charge or accept it, for example to protect a carrier relationship
- Which of two conflicting documents applies, such as a contract and a later rate notice
- When a new surcharge is agreed and should be added to the rates
Why does manual checking miss charges?
Manual checking misses charges because it checks the level people can see. With hundreds of invoices a month, a team checks totals or a sample, and a wrong line inside a correct-looking total passes. Line-level errors also repeat: a surcharge billed wrongly once is usually billed wrongly on every shipment on that lane.
Our ocean freight audit for an adhesive manufacturer found 137 terminal storage cases in two months, worth EUR 93K. Our road freight audit for a consumer healthcare company found EUR 91,000 in billing errors, of which EUR 17,500 has been recovered to date. In both, the errors sat in individual lines rather than in invoices that looked wrong. The time saved matters too: the air and parcel audit removed 263 hours a year of manual effort.
What can you do about it this week?
- Pick the carrier with the most invoices and take one month of them.
- Ask for a shipment export for the same month that includes the carrier reference.
- Put that carrier's current rates, surcharges and free time into one sheet with validity dates.
- Check the month line by line against the export and the sheet, and count how many lines fail each check in the table above.
If the count is more than you expected, the case for AI checking is the volume of lines, not the difficulty of each one. Our Invoice Approval module runs these checks on every invoice line and holds anything that fails for a query, with the source attached.

