Guide · 3PL Billing & Freight Settlement

3PL billing: the accessorials that never make it onto the invoice

Every 3PL contract has a rate card with a long tail: rework, relabelling, special packaging, rush orders, returns processing, pallet exchange, extended storage. The base rates get billed because the system counts receipts and picks. The tail gets billed when somebody remembers it at month end, and by the thirtieth nobody remembers week two. The gap is not a pricing problem; the rates are in the contract. It is a capture problem, and it has a shape.

Published 4 October 2026 · From the 3PL & B2B logistics practice in Houston, Texas. Business hours, US Central; an engineer replies within one business day.

Why the base rates get billed and the accessorials do not

Storage, receiving and picking are counted by the warehouse system as a side effect of doing them. A receipt creates a record, a pick creates a record, and the billing run reads the records. Accessorial work mostly does not. Relabelling fifty cartons for a customer's retailer that changed its spec produces no transaction in a system that only knows about receipts and picks, so the work exists on a whiteboard, in a supervisor's memory, or in an email asking whether anybody did it.

Month-end capture then asks people to reconstruct a month of exceptions from memory. The careful ones under-report and the rest guess, so the invoice is wrong either way, and the customer who checks it finds the guesses rather than the omissions.

The seven most often missed

  • Rework and relabelling: new labels, new cartons, kitting and de-kitting, usually triggered by a retailer changing a rule
  • Rush and same-day orders: the pick happened, the premium was never coded
  • Returns processing: inspect, grade, restock or dispose, each a separate line on most rate cards and each recorded nowhere
  • Special packaging and materials: dunnage, shrink wrap, pallets supplied, branded inserts
  • Extended storage: the pallet that crossed into a second period, missed because storage was billed off a snapshot taken on the last day
  • Detention and dock time: a carrier held past free time on your dock, chargeable to the customer whose freight it was
  • Customer-requested work with no item code: counts on demand, photographs, document retrieval, a visit from the customer's auditor

Each one has a rate. None of them has a transaction, which is the whole problem.

What the floor already records

More than it seems. The labour system and the scanners log who did what and for how long; the warehouse system logs every inventory move, including the ones that only happen during rework; the dock log holds trailer arrival and departure; the returns area usually keeps its own sheet; and email holds the customer's request for nearly every one of these. The evidence of the work exists. It is just not in the shape of a billable line.

So the fix starts from those records rather than from a new form for the floor to fill in. A form is month-end capture with extra steps; a record that already exists is captured by definition.

Capture at the moment, not at month end

  • A billable-event code on the handheld, chosen from the customer's own rate card, at the point where the work is done: rework starts, a rush pick is released, a return is graded
  • Automatic events from the records that already exist: an inventory move of the rework type, a trailer past free time on the dock log, a pallet crossing its storage anniversary
  • A queue for the ones that need a human decision, reviewed weekly rather than monthly
  • Every event tied to a customer, an order or a receipt, and a date, so the invoice line can be defended when the customer asks

Then the billing run reads the events the way it reads receipts and picks, and the accessorial lines appear on the invoice without anyone having to remember anything.

Reconcile continuously, argue never

The second half is comparing activity against invoices as a report rather than as a month-end argument: for each customer, the events recorded, the events billed, and the difference. Run every week, the difference is a handful of lines somebody can explain. Run once a quarter, it is a dispute.

The same comparison answers the question most 3PLs cannot: which customers are actually profitable. Cost to serve per customer is the activity priced at cost set against the activity priced at the rate card, and it only works once the activity has been captured.

That report is the billing reconciliation the 3PL reporting layer exists to produce, from the records above, in a database the warehouse owns. The rate engine and the invoicing that read the captured events are the 3PL billing and settlement work on our logistics page. For the vocabulary, the glossary's billing section covers rate cards, anniversary billing and accessorial capture, and says why it carries no leakage figure.

Where this sits in the logistics practice

One row of our 3PL & B2B logistics software page does this work: 3PL Billing & Freight Settlement. The page that goes deepest on it is 3PL Reporting Layer, and the vocabulary is defined in the logistics and EDI glossary. Every engagement starts by mapping the actual path of one order through the systems you run.

More guides

Other questions this practice gets

EDI & Trading-Partner Onboarding

EDI 940 vs 945: what a 3PL actually needs to support

The 940 is the order in and the 945 is the answer back. What each one carries, where the mismatches come from, and the three documents that complete the warehouse set.

Read the guide →
EDI & Trading-Partner Onboarding

Why retail chargebacks happen and how to trace them to the file

A deduction is a symptom. The cause is in the ASN, the label, the acknowledgement log or the clock, and each one leaves evidence in a file you already have.

Read the guide →
EDI & Trading-Partner Onboarding

What it really takes to onboard a Walmart EDI connection

The weeks go to the test cycle, the labels and the ASN clock, not to the mapping. The order of work for a first Walmart connection, and what to have ready before it starts.

Read the guide →
Get in touch

Send a rate card and one month of invoices.

One customer's rate card and the invoices you sent them for a recent month, amounts masked if you prefer. You get back which accessorial lines are missing and which records on the floor would have supplied them.

Prefer to talk?

Call 832-598-8234 or email msco@stoneagesoftware.com. Houston, Texas — serving Houston, The Woodlands, Conroe, Sugar Land, Katy, Pearland, and the Greater Houston metro.

What happens next

We read your message, an engineer replies with questions or a straight answer, and if a call would help, we book one. From the first reply on, you're talking to the people who'd do the work.

No obligation — we reply within one business day. This form sends your details to Stone Age Software LLC so we can respond to you. See our privacy policy for how we handle them. This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.