
How to Audit a 3PL Invoice: A Worked Example
Your 3PL invoice arrives. Order volumes look about right, the total is close to last month, and Finance approves it.
But a familiar total does not tell you whether the charges are correct.
The warehouse might have billed the wrong number of additional picks, applied an outdated storage calculation or charged separately for something included in your agreement. Equally, a higher bill might accurately reflect more complicated orders, additional storage or services your team requested.
A useful audit establishes which explanation applies.
This guide shows how to reconcile an invoice against your contract and operational records, investigate differences and track credits through to receipt. It includes a fictional example and a spreadsheet you can use for your own review.
What a 3PL invoice audit checks
A 3PL invoice audit compares three things:
What your agreement allows the provider to charge.
What activity actually took place.
What appeared on the invoice.
For a straightforward quantity-based fee:
Expected charge = verified billable quantity × agreed rate
Billing variance = invoiced charge − expected charge
A positive variance means the invoice exceeds your calculation. You still need to establish why before treating it as an overcharge.
Some fees require a different calculation: minimum monthly charges, bundled fulfilment rates, storage bands or labour billed in minimum time increments. Rebuild those charges using the actual contract rules.
1. Gather the records before checking the numbers
The invoice alone is rarely enough.
Record | What you need it for |
|---|---|
Signed contract, rate card and amendments | Agreed rates, included services, billing units, minimums and effective dates |
Detailed billing export | Fee codes, quantities, rates, amounts and transaction references |
Shipment and order-line exports | Billable shipments, units, additional picks, split shipments and resends |
Receiving records | Deliveries received, cartons, pallets, units and any chargeable additional work |
Daily or periodic storage reports | Occupancy calculated on the basis specified in your agreement |
Returns records | Returns received, processed and charged during the relevant period |
Carrier transaction detail | Shipping charges and adjustments linked to individual parcels |
Previous credit notes and adjustments | Whether a difference has already been corrected |
Ask for transaction-level detail wherever possible.
A monthly total for additional picks is much harder to verify than a file showing the shipment ID, units picked and resulting charge.
Keep the original invoice and exports intact. Perform the reconciliation in a separate working file so you can trace each finding back to its source.
2. Align the billing period and scope
Before comparing quantities, confirm that the files describe the same activity.
Check:
Warehouse and account.
Currency.
Billing dates and time zone.
The event that triggers each fee.
Whether taxes, credits and prior-period adjustments are included.
Different charges may use different dates.
A fulfilment charge could be triggered when a shipment is dispatched. A returns charge might arise when the return is processed. Carrier adjustments can appear after the original parcel was shipped.
Comparing all three against the dates customers placed their orders can create differences that are entirely explainable.
Reconcile current activity and historical adjustments separately.
3. Translate the rate card into billable rules
A rate is only useful when you understand what it applies to.
For every fee category, record:
The billing unit: order, shipment, item, carton, pallet, cubic foot or labour hour.
What the base price includes.
The rate and effective date.
Any thresholds, minimums or rounding rules.
Additional conditions that trigger a charge.
Pay particular attention to bundled services.
Some fulfilment arrangements combine labour, packaging and shipping. Others separate them. Provider pricing structures vary, so your calculation must follow the agreement for that account. ShipBob, for example, describes an all-in fulfilment structure alongside separately priced services.
If standard packaging is included, a separate packaging fee needs an explanation. If your team requested a chargeable custom box, the same fee may be correct.
The question is whether the specific charge matches the agreed service.
4. Recalculate the main charge categories
Fulfilment and additional picks
Start with the number of billable fulfilment events.
That may differ from customer order count. One order could produce two shipments, and a resend could create another warehouse transaction. Whether those events are chargeable depends on your agreement and the reason they occurred.
For additional picks, establish how many items the base fee includes.
If the contract includes one item per shipment, calculate the excess units for each billable shipment and total them. If it includes three items, calculate the excess above three for each shipment.
Check how bundles are handled. A pre-kitted product may have a different billing basis from a bundle assembled during picking.
Storage
Rebuild the quantity using the agreed measurement method.
Storage might be billed using daily pallet occupancy, a monthly snapshot, peak occupancy, bins, cubic volume or reserved space.
These methods can produce different legitimate charges.
For daily pallet storage:
Billable pallet-days = the sum of chargeable pallet positions occupied each day
Ten chargeable pallet positions occupied for 30 days produce 300 pallet-days.
Check whether partial pallets, packaging, quarantined stock and reserved positions are chargeable under the contract. Do not substitute an average stock estimate for the agreed storage report.
Receiving
Match each charge to a receipt reference.
Verify:
The number of cartons, pallets or units.
Whether the fee covers unloading, counting and putaway.
Any separately approved labelling, inspection or rework.
Minimum labour charges and time increments.
Charges associated with missing or incorrect advance shipment information.
A receiving charge may be valid even when the supplier caused the additional work. Record the root cause as well as checking the invoice.
Returns
Match charges to the event specified in the agreement.
A return authorisation does not necessarily mean the parcel reached the warehouse or was processed.
Check whether the fee applies per return, parcel, item or task, and whether inspection, restocking or disposal is included.
Packaging and additional services
Compare billed packaging with usage records.
For kitting, personalisation, relabelling and other additional work, request the task reference, completed quantity and agreed rate.
Where your agreement requires approval, include that approval in the evidence.
Shipping and carrier adjustments
Match charges to individual shipments.
Check service, destination, package dimensions, billable weight and any additional fees. Providers may calculate shipping using several of these factors.
Your agreement may use a negotiated rate card, an all-in price or carrier cost plus a stated margin. Reconcile against that basis.
For adjustments, request the original tracking number, reason and supporting transaction. Check whether any related refunds or carrier credits have also reached your account.
5. Worked example: a $10,705 monthly invoice
The example below is fictional. The rates are illustrative, not market benchmarks or the pricing of a named provider. All figures are USD and exclude tax and existing credit notes.
Assume the contract and records establish:
2,000 billable shipments, with one shipment per order.
3,600 units shipped.
One item included in the $2.10 fulfilment fee.
Additional items charged at $0.45 each.
300 cartons received at $0.50 each.
300 pallet-days of storage at $0.80.
120 returns processed at $2.00 each.
2,000 separately chargeable mailers at $0.25.
A $150 monthly account fee.
$4,200 of supported carrier charges.
Charge | Invoiced | Expected from records | Difference to investigate |
|---|---|---|---|
First-item fulfilment | $4,200 | $4,200 | $0 |
Additional item picks | $810 | $720 | $90 |
Receiving | $150 | $150 | $0 |
Storage | $320 | $240 | $80 |
Returns processing | $260 | $240 | $20 |
Packaging | $500 | $500 | $0 |
Account fee | $175 | $150 | $25 |
Carrier charges | $4,200 | $4,200 | $0 |
Exception handling | $90 | Awaiting detail | Undetermined |
The invoice totals $10,705.
The records support $215 of billing differences, plus a separate $90 charge awaiting explanation.
How the differences were found
Additional picks: 3,600 units less 2,000 included first picks leaves 1,600 additional picks. At $0.45, the expected charge is $720. The invoice bills 1,800 additional picks.
Storage: the daily report supports 300 pallet-days. The invoice bills 400. The difference is 100 × $0.80 = $80.
Returns: the processing report supports 120 returns. The invoice bills 130, creating a $20 difference.
Account fee: the signed rate is $150, with no agreed amendment supporting the $175 charge.
Exception handling: the invoice provides no task reference or charge basis. The correct next step is to request detail. There is not yet enough evidence to classify the $90 as an error.
At this point, the provider has not agreed or issued any credits. The reconciliation identifies what to query.
6. Keep billing errors separate from expensive operations
An accurate invoice can still reveal a costly operation.
Examples include:
Small deliveries creating repeated receiving charges.
Slow-moving inventory increasing storage.
Split shipments increasing fulfilment and shipping costs.
Complex packaging adding labour and materials.
Poor supplier labelling creating rework.
Those require operational changes.
A billed quantity that exceeds the warehouse record requires a billing investigation.
Keep both findings, but report them separately. Otherwise, an invoice review can turn into a pricing negotiation before anyone resolves whether the existing agreement was applied correctly.
7. Raise a query the provider can resolve
Send a short discrepancy schedule with the supporting records.
For each issue, include:
Invoice and line reference.
Shipment, receipt, return or storage period.
Contract clause or rate-card reference.
Billed quantity and amount.
Your calculation.
Evidence.
The explanation or correction requested.
For the additional-pick example, the query would explain that the shipment export contains 3,600 units across 2,000 shipments, giving 1,600 chargeable additional units under the agreed one-item inclusion. It would ask the provider to reconcile that against the 1,800 units billed.
Check the agreement’s invoice-query process and deadlines promptly. Manage disputed amounts and payment according to the agreed terms rather than assuming a query automatically suspends payment.
8. Track the credit until it is applied
A provider acknowledging a mistake is only one stage of recovery.
Track:
Stage | Evidence |
|---|---|
Difference identified | Your calculation and source records |
Query submitted | Date, contact and case reference |
Correction agreed | Written confirmation of amount and reason |
Credit issued | Credit note number |
Credit applied or refund received | Account statement, invoice allocation or bank receipt |
Also confirm whether the underlying billing rule has been corrected.
If the same fee is wrong next month, the process remains broken even if the previous credit arrived.
Build the review into the monthly close
Assign ownership of the reconciliation.
Operations can validate the activity and service rules. Finance can confirm the invoice, tax treatment, account credits and payment position. In a smaller team, one person may perform both roles, but the checks still need completing.
A practical monthly review should:
Reconcile the invoice total to the detailed export.
Test billed quantities and rates.
Investigate new fees and unusual changes.
Review credits and unresolved queries.
Record operational cost issues separately.
Automate repeatable comparisons when the data is reliable. Keep human review for new services, contract changes and charges requiring judgement.
Download the 3PL invoice reconciliation template
The accompanying workbook includes the worked example and a separate sheet for your own reconciliation.
It calculates expected quantity-based charges and billing variances, separates fees awaiting detail, and tracks agreed credits against credits applied.
Use one invoice and currency per sheet. For bundled charges or minimum-fee arrangements, calculate the applicable contract amount separately and retain the supporting calculation.
Frequently asked questions
Does a higher 3PL bill mean we have been overcharged?
No. Volume, order complexity, storage, returns and service changes can all increase a legitimate bill. Reconcile the activity and contract before drawing a conclusion.
Can I audit the invoice using Shopify alone?
Shopify can provide useful order and item data, but you will usually need warehouse records for receiving, storage, processing activity and shipment-level events. Use the system that records the event being charged.
Should we compare the invoice with another 3PL’s prices?
First establish whether the current invoice is correct. Benchmarking is a separate exercise using comparable volumes, service requirements and order profiles. Our guide to choosing a 3PL explains how to structure that comparison.
Should identified differences be reported as savings?
Track identified differences, agreed credits and recovered cash separately. A disputed amount is not yet a realised saving. Future savings also depend on the error being corrected and the relevant activity continuing.
Need help reviewing your fulfilment costs?
Onflair reviews 3PL contracts, invoices and operating performance to establish what is driving cost and where changes could improve the business.
Our supply chain and operations audit examines fulfilment alongside inventory, planning, suppliers and freight, with priorities based on the evidence.
Discuss your operation.
