What you need before you start
- Your agreement or rate card. The signed pricing, plus any later emails or addenda that changed a rate. Note the date each rate started.
- The transaction-level export for the month. In ShipBob, billing data can be exported from the billing area of the merchant dashboard as a CSV with one row per charge. The summary PDF alone is not enough: you need the lines.
- Your store's order export for the same dates, if you want to catch fees on cancelled orders.
Step 1: list every fee name on the invoice
Pivot the export by fee name and add up the amounts. You will usually see fulfillment fees (picks, packs, labels or inserts), storage, receiving, B2B or special-project work, shipping, and surcharges. Write down every fee name exactly as it appears. Names on the invoice often differ from the names in your contract, so map each one: "Each Pick Fee" might be the "Additional pick" line in your agreement.
Step 2: put the agreed rate next to each fee
For each fee, record how it is charged (per unit, per order, per pallet or bin per month, a flat fee, or a percentage of other fees), the rate, any minimum, any volume tiers and the dates the rate applied. Fees with no rate in your agreement go on a separate list: they are questions, not proven overcharges.
Step 3: recalculate each line
- Per-unit fees: quantity × agreed rate. Allow a cent of rounding.
- Tiered fees: count volume across the whole month, not per line. If picks above a threshold get a lower rate, check that the lower rate started at the right unit.
- Storage: confirm the unit (pallet, shelf, bin) and the count for the month, then multiply by the agreed monthly rate.
- Percentage surcharges such as fuel: recalculate from only the fees the percentage is meant to apply to.
Step 4: look for repeats and fees on cancelled orders
Sort by order number and fee. The same fee, order and amount twice in a month is worth a second look; sometimes the work really did happen twice, sometimes it is a billing error. Then match order numbers against your store export: fulfillment fees on orders you cancelled before they shipped are worth asking about.
Step 5: raise it with evidence
Group differences by fee and month. For each group, send the invoice lines, the agreed rate (quote the contract wording) and the difference. Keep a log of what you sent, the reply and any credit, then check that promised credits actually appear on a later invoice.
Doing this every month without the spreadsheet
BillProofs does steps 2 to 5 for you: it reads your rate card, matches every line to the rate in force on its date (including other names for the same fee), handles minimums, tiers and percentage fees, flags repeats and cancelled-order fees, and gives you an evidence PDF per finding. You approve the rates once; after that each month is an upload. Try the free check on last month's invoice first.
Questions
Can I audit a ShipBob invoice from the PDF?
Only roughly. The PDF summarises totals; to recalculate charges you need the transaction-level CSV with one row per charge.
How far back should I check?
Start with the last one to three months. Check your agreement for any time limit on billing disputes before going further back.
Does BillProofs contact ShipBob for me?
No. It prepares the evidence; you decide what to send and log the reply.
More guides: How to audit a ShipBob invoice · Common 3PL billing errors · How to dispute a 3PL invoice · 3PL storage fees explained · Spreadsheet vs firm vs software