AI & Automation · Case study

Catching the freight charges that don’t match the contract

A logistics operator paid carrier invoices largely on trust. We built a check that compares each charge against the agreed rate before payment — and routes the disputable ones to a person.

A logistics operator was paying a large volume of carrier invoices every month, and checking almost none of them line by line. There was no time to.

Each invoice carried a base rate, fuel surcharges that changed week to week, and a list of accessorial charges — liftgate, detention, residential delivery — any of which could be wrong.

The finance team knew some of what they paid was overcharged, but not which charges, and the effort of finding out by hand was more than the leak appeared to be worth. So they paid, and absorbed it.

The challenges we had to solve

  • The agreed rates lived in contracts and rate cards that were not in any system the invoices could be checked against.
  • Fuel surcharges followed formulas that moved weekly, so a static rule would quickly go stale.
  • Not every mismatch is an error — some accessorials are legitimately variable — so the tool had to flag for review, not auto-reject.
  • Disputing a charge is a relationship matter with a carrier, so a person had to decide whether to raise it.

How we approached it

Most of the early work was unglamorous: getting the agreed rates, accessorial schedules and fuel formulas into a structured form the system could compare against. Without that, there was nothing to audit.

Once the reference data was clean, the check was almost simple — each invoice line is compared to what was agreed, and anything that does not match within tolerance is flagged before payment, with the contract clause it appears to breach attached.

The system does not refuse to pay and it does not contact the carrier. It produces a short, evidenced list of charges that look wrong, and a person in finance decides which to query and which to let go.

We built the check to run before payment rather than after, so the conversation with the carrier happens while the money is still in hand.

We measured against the value of charges queried and recovered against a target the team set, and watched the false-flag rate so the tool stayed worth reviewing rather than crying wolf.

Where it stands

The team now sees, before each payment run, a manageable list of charges worth challenging — with the evidence already assembled. They raise the ones that matter and waive the trivial ones, which keeps the carrier relationships steady.

Charges that used to be paid without question because nobody had time to check them are now caught while there is still time to do something about it.

Next step

Talk to us about your project.

A short conversation is usually enough to tell whether we are the right fit for the work. We will be straight with you either way.

Cookies on this site

We use only the cookies this site needs to work. With your permission we’d also use optional cookies to measure how it’s used and improve it — nothing is set until you choose. Read our Privacy Policy.

Cookie preferences

Choose which optional cookies we may use. Strictly necessary cookies are always on because the site cannot work properly without them.