Guide

How to audit a 3PL warehouse invoice against your rate card

Warehouse invoices are long, itemized and mostly correct. The errors that cost money hide in a few lines: a rate that was never updated, a fee nobody agreed to, a line billed twice. This is the method behind WarehouseBillCheck.

1. Build the rate card CSV

Copy the agreed rates from the contract or the latest signed rate sheet into one row per rule: rule_id, fee_code, billing_unit, rate, currency, description. Use the same fee codes the 3PL prints on its invoices. Start from the rate card template.

2. Export the itemized invoice

Ask your 3PL for the line-level detail behind the invoice total as CSV, or export it from their portal. You need line_id, fee_code, billing_unit, quantity and amount; rate, invoice_number, service_date, description and currency are used when present. See the invoice template.

3. Match fee code and billing unit

A line is priced by the rule with the same fee code (case does not matter) and the same billing unit. Units are normalized only for common spellings: ea, unit and pcs are each; plt is pallet; hr is hour; pallet per month and plt/mo are pallet/month. A fee code on the card with a different unit is a unit mismatch, not a match.

4. Recompute quantity × rate exactly

Expected amount = quantity × agreed rate, computed with exact decimals and rounded once to cents, half away from zero. For example 1,431 parcels × $0.0125 = $17.8875, which rounds to $17.89. Spreadsheets using floating point can disagree by a cent; WarehouseBillCheck shows each calculation so you can check it by hand.

Rate mismatch
The invoice prints a rate other than the agreed one: 1,200 pallets at $2.75 instead of $2.40 is $420.00 overbilled.
Amount mismatch
The billed amount is not quantity × agreed rate, whatever rate the invoice printed.
Invoice math error
The invoice’s own quantity × rate is not its amount (1,430 × $0.60 is $858.00, not $868.00).

5. Duplicate line IDs, not duplicate descriptions

A real duplicate charge is the same invoice line billed twice: the same line_id appears more than once. Lines that merely share a description (“Labeling”, “Unit picks”) are normal, because the same service is performed many times a month, so they are never flagged on their own. Repeat occurrences of a line ID are totaled separately.

6. Unknown charges and ambiguous rules

7. Audit checklist

Audit your invoice Try the demo

WarehouseBillCheck audits the files you give it. It does not read your contract, so it cannot tell whether a fee code itself is allowed; it tells you which lines do not match your rate card.