Detention is one of the most common line items on a carrier invoice, and one of the most commonly disputed. A carrier says the driver sat at a dock for four hours past the free time and bills accordingly. You check the BOL and POD timestamps and the math doesn't add up. Now you've got a dispute on your hands, and the strength of your documentation decides how it lands.
Industry audits consistently show that a meaningful share of detention invoices contain billing errors. Not always intentional — often just the driver's time estimate not matching what the BOL and POD actually show. Either way, you only catch the errors if you're comparing the charge against the underlying timestamps. And you only compare efficiently if that data is structured, not buried in PDFs.
What detention actually is
Detention is the charge a carrier bills for a driver waiting at a pickup or delivery location beyond the agreed free time. Most rate confirmations include a free-time window — typically two hours at pickup and two hours at delivery. If the driver sits longer than that, detention kicks in, usually by the hour or partial hour.
The key numbers are the "in" and "out" timestamps on the BOL at pickup and the POD at delivery. Those are the clock that determines how long the driver was actually on site. A detention dispute lives or dies on those timestamps.
The common patterns in overbilled detention
A few scenarios show up over and over on invoices that get disputed:
Clock starts before the appointment. The driver arrives an hour before the scheduled appointment and the carrier bills detention from the arrival time, not from the appointment time. Unless your rate con explicitly agrees to this, the clock should start at the scheduled window, not when the driver showed up early.
Clock runs through the free period. The invoice charges detention for the full on-site time without subtracting the free hours. If the BOL shows a 3-hour on-site stay and the rate con granted 2 free hours, the detention should be billed for 1 hour, not 3.
No matching dock timestamp. The carrier claims detention but the BOL or POD doesn't have an "in" and "out" stamp to back it up. Without those timestamps, there's no evidence the driver was actually there for the time claimed.
Round-up creep. An 11-minute delay billed as a full hour of detention. Some carriers round aggressively; some rate cons specify minimum increments. If the rate con says "billed per 15 minutes" and the invoice bills a full hour for 11 minutes of overage, that's a mismatch.
Wrong site. Detention at an unrelated stop — a fuel stop, an overnight parking break — showing up as pickup or delivery detention. This one is rare but it happens.
Why manual review catches so few of these
You can only audit detention if you have the rate con, the BOL, the POD, and the invoice all in front of you with the timestamps visible. In most small brokerages, these documents live in four different places: the rate con in your TMS, the BOL in an email attachment, the POD in another email attachment, and the invoice in your AP folder.
Gathering them takes time. Reading the timestamps takes more time. Running the math — start time, free time, actual detention hours — takes more time still. For a single load, it's 10–15 minutes of careful comparison. Across 50 loads a week, that's a significant chunk of someone's schedule.
So it usually doesn't happen. The invoice gets paid unless the total is big enough to prompt a second look. The small overcharges — a quarter-hour here, an extra hour there — get absorbed because nobody has the time to challenge them.
What a documentation trail looks like
To dispute a detention charge successfully, you need four things pulled together into one clean record:
The rate confirmation — showing the agreed free time, the detention rate, and any minimum billing increment. Extracted rate con data keeps this lookup simple instead of pulling a PDF.
The BOL timestamps — showing when the driver arrived at pickup and when the shipper released the truck. Extracted BOL data includes those timestamps as structured fields.
The POD timestamps — showing the delivery "in" and "out" times at the consignee. Extracted POD data does the same thing for the delivery side.
The invoice — showing the specific line item, the claimed hours, and the billed amount. Extracted carrier invoice data pulls the detention charge out as a separate field, not buried in a charge breakdown.
When all four are in structured form, the comparison is a spreadsheet query. Load ID, free time from the rate con, actual on-site minutes from the BOL/POD, claimed detention from the invoice. Any row where the claimed time exceeds (on-site time − free time) is a potential dispute.
A sample dispute
Here's what a clean detention dispute looks like in practice:
Load #: 48291 Lane: Atlanta, GA → Orlando, FL Rate Con free time: 2 hours at pickup, 2 hours at delivery Detention rate per rate con: $65/hour, billed in 15-minute increments after free time
Carrier invoice line: Detention at pickup — 3 hours — $195.00
BOL pickup times: Check-in 08:14, released 09:42. Total on-site: 1 hour 28 minutes.
Actual detention: None. Driver was on-site under the 2-hour free window.
Requested correction: Remove $195.00 detention charge. Attached: rate con, signed BOL with timestamps.
That's a dispute any AP clerk at a reputable carrier will approve in a day. The documentation is complete, the math is transparent, and there's no room for interpretation.
What automation actually gives you here
The automation isn't the dispute itself — that's still a human email with attached documents. The automation is getting the underlying timestamp data out of the PDFs fast enough that running the audit is practical on every invoice, not just the big ones.
When every BOL, POD, rate con, and invoice is extracted into structured data automatically, building the dispute packet for any given load is a matter of pulling four records and formatting an email. No manual re-keying, no hunting through folders, no eyeballing timestamps from scanned PDFs.
The brokerages that recover the most on detention aren't the ones with the best lawyers — they're the ones who audit every invoice because the audit is cheap enough to run.
Start with your next few invoices
Pick 10 recent loads where a carrier billed detention. Sign up free on CargoParse and upload the rate con, BOL, POD, and invoice for each. Compare the extracted timestamps against the billed hours. You'll probably find at least one overbilling worth disputing — and you'll have a complete documentation packet ready to send.
For a full playbook on checking carrier invoices against rate cons, read how to audit a carrier invoice. And for more on the POD side of the workflow, proof of delivery processing covers the timestamps and exception notes in more detail.