Logistics / Supply ChainVerified Real deployment at a named or precisely described company, with a measured result from a primary source.

Stop paying freight charges you don't owe: AI flags surcharges, detention and billing errors before payment

Added 2026-10-14 · Last updated 2026-10-14

Role

Logistics & trade compliance · Typical users: logistics / transportation coordinator, AP clerk, logistics manager

The problem

Carrier and forwarder invoices usually go straight to finance, and finance pays what is on the invoice: the amount matches a supplier and a PO, so it looks fine. The logistics technician who booked the truck or container often never sees the invoice, so they never learn that a detention fee, a dry-run fee or a fuel surcharge was added, and can't dispute it, even though they are the only one who knows whether the truck waited, whether the pickup was cancelled in time, or what fuel table was agreed. The most common unjustified charges are: (1) late or delay fees: detention (truck or container kept too long) and demurrage (container left at the port or terminal too long), billed even when free time was not exceeded or the delay was the carrier's; (2) missed-pickup fees: 'dry run' or 'truck ordered not used', billed when the pickup was cancelled in time or the truck never showed up; (3) fuel surcharges that were not announced in advance or do not match the agreed index and table; (4) charges billed to the wrong party, for example export/import document preparation fees that are outside the carrier's scope, or that the customer refused so the carrier rebills the seller, although under the agreed Incoterm the buyer should pay; plus duplicate invoices and charges not in the contract. Dispute windows are short: in US ocean shipping, the FMC rule (46 CFR Part 541, effective May 2024) gives the billed party at least 30 days from the invoice date to request a waiver or refund of demurrage or detention, and a carrier that invoices more than 30 days after the charge was last incurred cannot require payment. Once finance has paid, recovering money is much harder.

Step by step

  1. Change the flow first: freight invoices (carrier, forwarder, broker, port/terminal) go to a 'freight check' queue before finance approves them, and each shipment has a named logistics owner (the person who booked it).
  2. Build the reference file: contracted rates per lane, the agreed accessorial list with prices, free time for detention and demurrage, the dry-run / truck-ordered-not-used rule and notice period, and the fuel surcharge table with the index it follows (e.g. US DOE/EIA diesel weekly price) and which week's price applies. Add the Incoterm (e.g. EXW, FCA, DAP, DDP) of each customer order and supplier PO, and who is responsible for documents, customs clearance and destination charges.
  3. For each invoice, collect the evidence by shipment: BOL and PO, appointment times, gate-in/gate-out and arrival/departure timestamps (ELD, yard or terminal records), container availability and return dates, pickup confirmations and cancellation emails with their time.
  4. Have the AI extract every invoice line and match it to the shipment and the reference file. Calculate the expected charge in a spreadsheet or script: base rate, fuel = table value for the index on the shipment date, detention/demurrage = days or hours beyond free time × contract rate.
  5. Flag lines by type: detention or demurrage where timestamps show free time not exceeded or a carrier-caused delay; dry run where the pickup was cancelled within the notice period or the truck did not show; fuel not matching the table or index week, or a surcharge never announced; accessorials not in the contract; document preparation or other charges that, under the Incoterm and agreed responsibilities, belong to the customer or supplier or are outside the carrier's scope (wrong party: dispute, or rebill the customer); duplicate invoice or shipment billed twice; rate above contract.
  6. Hold flagged lines and send them to the logistics owner before payment, with the evidence, the amount at stake and the dispute deadline (e.g. invoice date + 30 days for US ocean demurrage/detention, or the deadline in your carrier contract). Finance pays the undisputed part on time.
  7. The logistics owner confirms or rejects each flag; the AI drafts the dispute with the evidence attached; the owner sends it. Track each dispute until credited and check that the credit note actually arrives.
  8. Monthly, review charges by type, carrier and site: recurring detention or dry runs usually point to a process problem (dock scheduling, late cancellations, missing liftgate info) that is cheaper to fix than to dispute.

Tools

  • Pando Pi (AI freight audit & pay agent): used at the aluminum extrusion and forging maker
  • ITS Traffic Systems (freight audit, accessorial analytics and rules): used at the appliance manufacturer
  • Intelligent Audit (freight audit, recovery, AI anomaly detection): used at the electrical manufacturer
  • Other tools to evaluate: Cass Information Systems, nVision Global, Trax, Freehand, CTSI-Global, and the freight-settlement module of your TMS
  • Do-it-yourself: a spreadsheet or Python script for expected charges, plus an LLM to read invoices, match evidence and draft disputes (prompt below)

Result

US maker of aluminum extrusions and forgings (anonymous; 12 plants, 9 warehouses, more than $5M a year in freight, 1,200 ocean shipments a year), Pando 'Pi' AI agent: before, manual 4-way invoice matching let overpayments and duplicate charges reach more than $200K a year; the agent now matches invoices against contracts, shipment details and delivery confirmations, flags issues such as incorrect ocean detention charges or rail fuel surcharges, reports 98% exception-free invoice processing, and over $200K of annual overpayments eliminated; detention and demurrage penalties fell 25%, which Pando attributes to proactive shipment monitoring and automated carrier communications (Pando case study). Leading North American appliance manufacturer (anonymous; $40M+ freight, about $4.5M a year in accessorials), ITS Traffic Systems: analysis of recurring accessorials (36,000+ beyond charges, 6,300+ weight verification charges, 2,600+ liftgate charges a year) led to automated audit rules, carrier-vs-shipment weight matching and address validation before dispatch; $4.185M documented process savings over 2024–2026, about 10% of accessorial spend (ITS case study; this is rules and analytics, not an LLM). Global electrical and power-management manufacturer (anonymous), Intelligent Audit freight audit with AI anomaly detection: $15.4M in annualized savings and a stated 1,906% ROI, of which $10.4M audit and recovery ($9.2M freight, $1.2M parcel), $1.74M from AI anomaly detections, and $3.02M from optimization (service downgrades, consolidations, address corrections) that is not invoice checking (Intelligent Audit case study, undated). All figures are vendor-published.

As reported by the source; most figures are vendor or self-reported and not independently verified.

Human review: cautions

  • The logistics owner, not the AI, decides whether a charge is valid: a waiting time can be your dock's fault, and a dispute without evidence harms the carrier relationship.
  • Never let the LLM calculate fuel surcharges, detention time or totals; use the spreadsheet or script, and spot-check a sample of invoices by hand.
  • Watch the deadlines: a dispute raised after the contract or regulatory window may be refused. Record the invoice date and the deadline on every flag.
  • Incoterms define who pays which costs only if the order or contract states the Incoterm and place (e.g. 'FCA Montreal, Incoterms 2020'); if it is missing or contradictory, the logistics owner and sales decide who pays before disputing or rebilling.
  • Check the fuel index and the week it applies to in the contract; carriers often use a different week or region than agreed.
  • Make sure holding a disputed line does not make the whole invoice late; pay the undisputed part to avoid late fees and keep payment terms.
  • The FMC 30-day rules apply to US ocean carriers and terminals; trucking, rail and other countries follow your contract and local rules.
  • Company results are published by the vendors and the companies are anonymous; measure your own baseline (charges disputed, credits received) before claiming savings.

Try it yourself

You are a freight invoice checker for a manufacturer. Finance must not pay a charge the logistics team has not validated.

I will paste:
(A) Our reference file: contracted rate per lane, agreed accessorial list and prices, free time for detention and demurrage, the dry-run / truck-ordered-not-used rule and notice period, and the fuel surcharge table with the index and which week applies; and the Incoterm and place on the order or contract, with who is responsible for export/import documents, customs clearance and destination charges.
(B) A check table ALREADY calculated in our spreadsheet or script: per invoice line, the billed amount and the expected amount (base, fuel from the table for the shipment date, detention/demurrage hours or days beyond free time).
(C) The invoices and the shipment evidence: BOL, appointment times, gate-in/gate-out or arrival/departure timestamps, container available and return dates, pickup confirmations and cancellation emails with times.

Do NOT recalculate any amount. For each invoice line:
1. Classify it: base rate, fuel surcharge, detention, demurrage, dry run / truck ordered not used, document preparation fee, other accessorial, duplicate, or not in contract.
2. Check it against the evidence: for detention/demurrage, do the timestamps show free time exceeded, and was the delay ours or the carrier's? For dry run, was the pickup cancelled within the notice period, or did the truck not show? For fuel, does the billed amount match the expected amount from table (B), and was the surcharge announced? Is the same shipment billed twice? WHO SHOULD PAY: under the Incoterm and agreed responsibilities, is this charge ours, the customer's or the supplier's, and is it within the carrier's scope? (E.g. export document fees the customer refused and the carrier rebilled to us.) Mark wrong-party charges 'dispute' or 'rebill customer/supplier'.
3. Output a table: invoice, line, charge type, billed, expected (from B), evidence found (quote it), who should pay (us / customer / supplier / unclear), verdict (OK / dispute / rebill / need info), dispute deadline (invoice date + [30] days or our contract term).
4. For each 'dispute' line, draft a short dispute email to the carrier citing the evidence; for each 'rebill' line, draft a short note to the customer or supplier citing the Incoterm; and a one-line note to finance listing what to hold and what can be paid now.
Use only the data I paste in; if evidence is missing, mark 'need info' and say exactly what to fetch. Do not send, post or change anything in any system: produce drafts for review by the logistics owner.
Use only the data I paste in; if something is missing, write 'not found' or list it as a question instead of guessing. Do not send, order, post or change anything in any system: produce drafts for my review and approval.

Want more like this? Join the newsletter

Sources

Weekly: 1–2 practical AI use cases for your plant

Newsletter in

Free, one email a week. By subscribing you agree to receive the weekly newsletter (and its sponsor message) from AI Agents for Manufacturing. Every email includes an unsubscribe link, and you can unsubscribe anytime. See our Privacy Policy.