You short-paid demurrage on four containers at Long Beach because your visibility platform put the availability date two days after the one the carrier billed from. The reply came back three weeks later. The carrier's records show the earlier date, the charge stands, escalate if you like.
Count the evidence on the table. You hold one timestamp from one vendor. The carrier holds one timestamp from its own system. Nothing in front of either party makes the other's record wrong, and an argument that comes down to whose screenshot looks more official gets settled by whoever has less to lose.
A rebuttal goes after the source, not the day count
Demurrage arithmetic is rarely where a dispute dies. Free time sits in the tariff, the daily rate sits in the tariff, and multiplication is not controversial. What the carrier contests is the event you anchored the count to.
That makes provenance the whole argument. If the discharge time you cited came out of a feed, the first question is where the feed got it. The answer is often the carrier, which means you have handed the carrier's own number back with a different logo on it.
Your feed already records where each event came from
This is not a hidden property. Vizion's API documentation states that every milestone carries a source field, with values of carrier, ais, terminal, rail and vizion. The docs call carrier the most common of the five, because the event comes directly out of the carrier's systems.
The other values are the interesting ones. Vizion notes that it can report a departure from AIS vessel tracking when the carrier never reports one, and that terminal-sourced milestones include free time to expire and available for pickup. Those observations did not originate with the party sending you the invoice.
Terminal49 works the same ground from the other direction. Its data page claims direct connections to more than 150 sources, a refresh under one hour across important milestones, and that it cross-references everything so a customer does not have to check several portals. Treat the figures as the vendor's own, but the design intent is plain: collapse many inputs into one clean answer.
One clean answer is what an operations team wants and the opposite of what a dispute needs. Once inputs are merged into a single event record, you lose the ability to say which party actually saw the box.
DCSA standardises the envelope, not the clock
Carrier event data does have a real standard behind it. DCSA's Track and Trace Interface Standard reached version 2.2, which added a Subscription Callback API so shippers and consignees receive shipment event updates automatically, along with document events covering cargo survey, customs inspection, verified gross mass and dangerous goods declaration.
That is genuine progress on structure. A standard fixes what an event is called and how it is shaped in transit. It does not make two systems observe the same minute, and it has nothing to say about which observation to believe when they differ by six hours.
What the second provider is actually for
Corroboration is narrower than coverage. You are not buying a second feed to see more events. You are buying one event, observed by a party with no stake in the invoice.
| Event in dispute | The record you usually hold | Independent corroboration | What agreement settles |
|---|---|---|---|
| Vessel discharge | Carrier-sourced discharge event | Terminal operator's discharge record, AIS berth times | Whether free time started on the day billed |
| Available for pickup | Carrier portal availability flag | Terminal availability status, with customs, freight and line holds | Whether the box could actually be collected |
| Gate out | Carrier event feed | Terminal gate transaction and the drayman's gate receipt | Whether demurrage stopped when it should have |
| Empty return | Carrier per diem stop date | Depot or terminal ingate receipt | Whether detention ran past the return |
Read down the third column. In every row the corroborating record belongs to a terminal operator, a depot, a drayman or a satellite. None of them bills you demurrage.
Match the record to what the invoice has to prove
The regulation has already named the fields worth contesting. Under 46 CFR 541.6, effective May 28, 2024, a demurrage or detention invoice must carry the bill of lading and container numbers, the port of discharge for imports, allowed free time in days, the free time start and end dates, the container availability date for imports, the earliest return date for exports, and the specific dates charged.
Each of those is a field a corroborated event record either supports or contradicts. Section 541.5 supplies the consequence: failing to include any of the required minimum information eliminates the billed party's obligation to pay the applicable charge.
The rule survived its court test in the part that matters here. On September 23, 2025, in World Shipping Council v. FMC, the D.C. Circuit vacated section 541.4, which had restricted who may be invoiced. Holland & Knight's October 2025 analysis of the decision describes the vacatur as limited to that provision, leaving the invoice content and timing requirements in place.
What Penny does with two feeds
Penny audits the invoice before it is paid, so the evidence question reaches her rather than a dispute analyst six weeks later. She keeps every event alongside the party that reported it instead of flattening two feeds into one date.
On a demurrage line she looks for the availability event from somebody who is not the biller. Three outcomes follow.
- The feeds agree, and one of them is terminal-sourced. The clock is established. If the billed free time start is still wrong, the dispute goes out carrying a record the carrier did not produce.
- The feeds agree, and both trace to the carrier. That is one observation wearing two badges. Penny marks the line uncorroborated and pulls the terminal gate record before anyone drafts a position.
- The feeds disagree. She does not quietly adopt the cheaper date. The container goes to a person with both timestamps, their origins, and the dollar value of the gap already attached.
The upstream half of this belongs to Chase, who is watching the box while it is still sitting on the terminal. An availability event that only one provider has seen is worth raising on day one rather than discovering at audit.
The same discipline decides the harder questions downstream. Establishing who caused each billed day is hopeless when the day itself rests on a single unverified record.
What to do next
Take the demurrage and detention disputes you lost last quarter and open the event you cited in each one. Tag it by origin: carrier, terminal, AIS, rail, or a provider's own estimate.
The carrier-sourced rows are the finding. You argued with the carrier using the carrier's record, and no amount of escalation was going to win that on evidence.
Book a walkthrough to see Penny audit a container charge against two feeds and show you where every date came from.
