$2.1M in fees reviewed · $384K found disputable · $271K credited back · fees per container down 26%
The company
The company is a mid-size freight forwarder that also acts as an NVOCC, issuing its own bills of lading. It moves about 9,000 import containers a year through Los Angeles, Long Beach and Savannah. Most of its clients are retailers and light manufacturers, so volume spikes hard from July to October.
The back office is lean. Four people in accounts payable handle carrier and terminal invoices. Two more bill clients. They do good work, but they work through a queue, not an investigation.

A cost everyone had stopped questioning
Demurrage and detention used to be a rounding error. Demurrage is the daily fee for a container left too long at the terminal. Detention is the fee for keeping the carrier’s container out too long before returning it empty.
Then came the congestion years: chassis shortages, terminals closing on short notice, and appointment systems booked out for days. These fees became a real line on the P&L.

By last year the forwarder was paying $2.1M a year, about $233 per container. Invoices arrived as PDFs from a dozen carriers and terminals, often weeks after the container was gone. AP checked that the container number matched a shipment, paid, and passed the charge to the client where the contract allowed. Where it didn’t, the forwarder ate the cost. Clients pushed back on the pass-throughs, and margins on some accounts went negative.
Nobody believed the invoices could be challenged. The general view was: the carrier sets the rules, and the carrier wins.
The rule that changed the math
In May 2024, the Federal Maritime Commission put a new billing rule into effect for these fees. Three parts of it matter most.
Timing. An ocean carrier or terminal must send the invoice within 30 days of the last day charges ran. An NVOCC billing its own client must invoice within 30 days of receiving the carrier’s invoice. A late invoice does not have to be paid.
Contents. Every invoice must include a defined set of details:
- the bill of lading and container numbers
- the port of discharge
- why this party is the one being billed
- the free time allowed, with start and end dates
- the date the container was available for pickup
- the exact dates charged
- the rate and the tariff or contract rule it comes from
- how to dispute the invoice
- a statement that the charges comply with FMC rules and weren’t caused by the carrier’s own performance

If any of these are missing, the invoice doesn’t have to be paid, and the carrier can’t simply patch it. It has to issue a new, compliant invoice, still within the time limit.
Disputes. The billed party has 30 days from the invoice date to dispute it. The carrier then has 30 days to respond. NVOCCs get extra time to dispute with the ocean carrier above them.
On paper, the forwarder now had real leverage. In practice it used none of it. Checking one invoice properly means pulling the container’s history, the terminal’s availability calendar, the free-time terms from the contract and the invoice itself, then doing the date math. A person can do that for a handful of invoices a day. With thousands arriving every quarter and a 30-day clock on each, the dispute window closed before anyone got to it.
The problem had two sides
The first thing we found had nothing to do with carriers. Because the forwarder is an NVOCC, the same rule applies when it bills its own clients. In peak months its billing team was rebilling clients 40 to 60 days after receiving the carrier’s invoice. Those rebills were late under the rule, so clients had every right to refuse them.

So the forwarder was losing in both directions: overpaying carriers on invoices it didn’t owe, and sending clients invoices they didn’t have to pay.
What we built
We connected four data sources:
- carrier and terminal invoices (PDFs and EDI)
- container event history from their visibility platform
- terminal availability and appointment records
- free-time and rate terms from each carrier contract
The AI read every invoice line by line and ran the checks a careful auditor would:
- Was the invoice sent within 30 days of the last charge?
- Does it include every required detail?
- Is the forwarder actually the right party to bill?
- Does the free-time math match the contract?
- Was the container actually available to pick up on each day it was charged?
- Is the same day billed twice, once as demurrage and once as detention?
- Does the daily rate match the tariff it cites?
Each failed check became a finding, with the invoice, the container’s timeline and the specific rule attached.
Three containers
Container one. A 40-foot high cube left the Long Beach terminal on March 4 and was returned empty on March 11. The detention invoice for $3,150 was dated April 19, 46 days after the last charge. It was late and never had to be paid. The forwarder had paid it in full.

Container two. A Savannah demurrage invoice for $2,240 listed the charge days but not when free time started or ended. Without those dates nobody can check the math, and under the rule an invoice missing them doesn’t have to be paid. The carrier eventually reissued it for $960, after the free time was counted correctly.
Container three. A container sat at a Los Angeles terminal over a four-day stretch when the terminal had no pickup appointments. The forwarder was charged $1,520 for those days. The FMC’s guidance is that these fees exist to get containers moving, so charging for days when pickup was impossible is hard to justify. The charge was credited in full.
What the year added up to
Across 12 months of history:
| Finding | Amount |
|---|---|
| Invoices sent more than 30 days after the last charge | $236K |
| Invoices missing required details | $91K |
| Charges for days the container couldn’t be picked up | $57K |
| Total disputable | $384K |
On top of that, $64K of the forwarder’s own late rebills to clients were flagged and corrected before they were sent.
From findings to credits
For each carrier, the AI built a dispute pack: the invoice, the container timeline, the specific rule and the amount. The billing team reviewed packs in weekly batches and sent them.
The carriers didn’t all respond the same way:
- Credited outright: most credited the late and incomplete invoices quickly, because those failures are clear-cut under the rule.
- Credits on future shipments: two larger carriers settled older items this way instead of refunds.
- Pushed back: one carrier disputed the unavailable-day charges. The forwarder kept the FMC complaint route ready but didn’t need it, and that carrier credited most of the amount in the second round.
After four months, $271K had come back as credits and refunds.
Running every day
The look-back was the proof. The lasting value is what happens now:
- Every new invoice is checked within 48 hours of arriving, so disputes go out well inside the 30-day window instead of after it.
- Containers approaching the end of free time are flagged early, so dispatch can book pickups before fees start.
- Every client rebill is checked against the same rule before it goes out, so the forwarder’s own invoices hold up.
Six months later
Fees per container fell from about $233 to about $172, a 26% drop. Part of that came from disputes, part from catching containers before free time ran out. Client complaints about pass-through charges dropped because every rebill now comes with the evidence behind it. The AP team still works the queue, but the queue now tells them which invoices to stop, not just which to pay.
Representative scenario for marketing purposes, based on a typical mid-size forwarder profile and the FMC demurrage and detention billing rule (46 CFR Part 541, effective May 28, 2024). Figures are illustrative.
Sources: Thompson Hine on the FMC final rule, Husch Blackwell on the rules taking effect









