An invoice can be mathematically correct and still be wrong for the customer. The totals may add up while a shipment is assigned to the wrong account, a storage rate is applied after its expiry, or a carrier correction is passed through without the evidence the customer expects. The final check before invoicing should therefore test both the numbers and their entitlement under the customer agreement.
The best point to catch a discrepancy is before the invoice reaches accounts payable. After issue, a correction can mean a query, a credit note, a reissued invoice or a longer route to approval. A pre-invoice check does not require every charge to be investigated by hand. It needs a clear set of automated matches and a short queue of exceptions that a named person can resolve.
Start with the billable event
For pick and pack, the billable event might be a completed order, a picked unit, a parcel packed or an additional handling step. For storage, it might be a pallet, bin or cubic measure captured at an agreed point in time. For transport, it is normally a shipment or consignment, with separate corrections or accessorials as allowed by contract.
Identify the event before applying a price. A billing export that contains only a description and amount makes it hard to establish whether a duplicate came from two legitimate actions or the same action entered twice. Each invoice line should link back to a stable source identifier. If the WMS does not expose that identifier in the billing export, preserve a reproducible cross-reference.
Check quantity, scope and account allocation
Reconcile billable counts against warehouse activity and shipping manifests for the period. Compare orders, picks, parcels, pallets and returns using the unit of measure in the agreement. Check cut-off dates, cancellations and work completed around month end. An order placed on 31 August but despatched on 1 September may belong in a different billing period from its order date.
Then check ownership. Shared carrier accounts and warehouse operations can produce valid charges with the wrong customer code. Multi-parcel orders complicate the mapping. A customer invoice should reflect the correct account even if the 3PL’s total carrier liability is unchanged. Unassigned entries are exceptions, not a rounding difference.
Apply the right rate-card version
Rate cards need effective dates, service definitions, tiers, minimums and any agreed exceptions. A rate change partway through a billing cycle requires the agreed effective-date rule. A contract might price per order plus additional units, for example, while an export treats each pick as a separate base event. Minimum charges may apply by month, order or shipment; the scope changes the result.
Keep the customer agreement separate from the carrier tariff. Carrier cost and customer price are different calculations. A fuel surcharge on the carrier’s invoice may be recoverable as a pass-through, built into the agreed customer rate or excluded altogether. Document which rule applies to each customer rather than inferring entitlement from the fact that the 3PL paid the carrier.
Reconcile transport and adjustments
Match each carrier line to its shipment where the carrier supplies enough identifiers. Compare the service booked with the service charged and investigate changes in weight, size or destination band. Verify surcharge applicability and the version in force for the relevant transaction. For a retrospective adjustment, show both the original shipment and the later carrier invoice line.
Credits deserve the same attention as charges. A carrier may reverse a charge in a later period. The customer treatment depends on the contract and the amount previously billed. A process that imports charges but overlooks credits can produce a one-sided result. Equally, a credit should not be passed to a customer who was never charged the original amount.
Why a spreadsheet alone gets stretched
Monthly billing joins data with different grains: a carrier line, a parcel, an order, a pick and a storage snapshot. Descriptions and reference formats are rarely identical. A lookup against the current rate card cannot prove the correct historical rate. An analyst can produce a plausible total while silently dropping unmatched rows or counting a one-to-many join twice.
Use control totals as well as line checks. Record row counts and values before and after import; flag unmatched shipments, duplicate identifiers, negative entries and unexpected new charge codes. Keep both raw inputs and transformed output so a reviewer can reproduce a decision. Manual review should focus on the exception list and the underlying evidence, not on visually scanning every row.
A release process finance can use
Give each exception a status: corrected, supported, awaiting evidence or deferred under an agreed policy. Set a materiality threshold for sign-off and a separate rule for recurring low-value patterns. A repeated 30p difference across thousands of parcels can matter more than a one-off £20 adjustment.
Before release, finance should see the invoice total by charge category, movement against the prior period, exceptions open and any customer-specific changes. Operations should be able to answer questions about physical events. Account management should own contract interpretation. Record who approved the invoice and which exceptions were knowingly carried forward.
Practical checklist
- Reconcile completed warehouse events and manifested shipments to the billing population.
- Confirm customer ownership and billing period for every material line.
- Apply the customer rate-card version and minimum-charge rule in force for that event.
- Match carrier pass-throughs to original shipments and contractual entitlement.
- Investigate duplicate references, missing references and new charge codes.
- Match later carrier credits to any original customer charge.
- Compare category totals with the prior period and explain material movements.
- Retain the evidence and approval decision for unresolved exceptions.
Pre-invoice validation is a control over the path from event to price to customer. It gives finance a reason to trust an invoice and an answer when a customer asks. If you want to understand whether this is happening in your billing, start with one month.