What Is Margin Leakage in a 3PL — And Where Does It Hide?
· 7 min read
The short answer
Margin leakage in a 3PL is revenue lost to work that happened but was never billed, was billed at a stale rate, or cost more to fulfill than the invoice recovered — not one bad invoice, but a structural gap between warehouse activity and warehouse billing. It shows up as unlogged receiving, below-cost packaging, duplicate labels, rate-card drift, and unclaimed carrier adjustments. You find it by comparing activity logs to invoices, line by line.
What margin leakage actually means
Margin leakage in a 3PL is the gap between the work your warehouse actually performed and the revenue your invoices actually captured for it. The pallet got received, the box got packed, the label got reprinted — and none of that activity ever turned into a line item on a client's bill. The warehouse is busy. The invoice just doesn't reflect it.
That's different from a discount or a rebate, which is how pricing-software glossaries usually define margin leakage — a sales rep giving away margin on purpose, or at least on paper. In a 3PL, leakage is operational, not a pricing-policy decision. Nobody approved giving the work away. Somebody just forgot to log it, or the rate card never caught up to how the work is actually done now.
It's also different from a billing error. An error is a single mistake — a wrong rate typed into one line, a credit issued twice. You fix it and move on. Leakage is structural: the same gap repeats every week because the process meant to catch the work and bill for it either never existed, or quietly broke six months ago and nobody noticed, because the warehouse kept running fine. Leakage doesn't show up as a complaint. It shows up as a margin that's thinner than the rate card says it should be.
Where it hides: three categories
Unbilled warehouse work
This is work that happened on the floor but never reached the billing engine. A pallet gets received on a busy Friday, counted and put away, but the receiving event never gets logged as a billable line because the associate was working off a paper sheet or skipped a step in the app. A box gets upgraded from a standard mailer to a padded one because the SKU changed, but the rate card still bills the old box. A label gets reprinted after a jam and the second print isn't flagged, so the material and labor are free. None of these are big on their own. They add up because they happen every day, on every shift.
Rate card drift
A rate card gets negotiated once, against a mix of orders and SKUs that existed at the time. Eighteen months later the client's product line has smaller units, more kitting, or more single-item orders, but the per-unit or per-order rate on the card hasn't moved. The loaded labor cost of fulfilling that order has gone up. The bill hasn't. Nobody did anything wrong — the rate card just drifted away from the work it was supposed to price.
Carrier-side adjustments
A label gets quoted at one weight and dimension in the WMS. Three weeks later the carrier reweighs the package, applies a dimensional-weight adjustment, an address correction, or a surcharge, and the actual cost on the carrier invoice is higher than what was quoted — and higher than what the client was billed. Unless someone is matching tracking number by tracking number, that difference just sits on the 3PL's carrier bill as a quiet, permanent cost. See carrier invoice reconciliation for how that matching actually works.
| Category | Typical example | Who usually notices first |
|---|---|---|
| Unbilled warehouse work | Receiving logged on paper, never billed | Nobody — it shows up as thin margin, not a complaint |
| Rate card drift | SKU mix changed, rate card didn't | Controller, months later, comparing cost to revenue |
| Carrier-side adjustments | Reweigh or surcharge not passed through | Whoever reconciles the carrier invoice, if anyone does |
A worked example: finding your own number
There's no single industry number for how much a 3PL loses to leakage, and anyone citing one is guessing on your behalf. The only number that matters is the one you build from your own activity logs. Here's the method, with round numbers as an example.
Say a warehouse logs 50 receiving events in a week. Pull the physical receiving records — inbound manifests, dock logs, whatever paper or scan trail exists — and count how many pallets were actually received that week. Say it's 58. The gap of 8 pallets is unlogged receiving. At an example rate of $4 per pallet on that client's rate card, that's $32 of unbilled work for one client in one week. Multiply by client count and weeks in a quarter and the number stops being trivial.
For carrier-side leakage, take a month of shipped labels — say 3,000 — and match each tracking number against the carrier's final invoice amount. If 40 of them were reweighed or dimensionally reclassified, at an example extra cost of $1.10 each, that's $44 the 3PL absorbed and never passed through or claimed. Run that every month and it's a line item, not a rounding error.
The output of this exercise should be a literal list: one row per leak, a dollar value, and a category. That's the shape a leakage monitor should produce — a dollar-valued list you can work through, not a dashboard that tells you leakage exists somewhere.
Three decisions once you find a leak
Finding a leak isn't the end of the job. Every leak on the list needs one of three decisions, not a default to 'fix it.'
- Bill it retroactively — if the work falls under the client's existing rate card and the contract allows adjustment invoices, raise the charge. This works for unlogged receiving and missed accessorials, where the rate already exists; you're just applying it late.
- Claim it against the carrier — address corrections and some reweighs fall inside a carrier's claim window. If the original label was accurate and the adjustment looks wrong, file the claim before the window closes. This only works carrier-side; it doesn't apply to warehouse work.
- Accept it consciously — sometimes the work was a genuine favor, the cost of chasing it exceeds the leak, or the claim window already passed. That's a legitimate outcome, but it should be a decision someone made on purpose, logged with a reason, not a default because nobody looked.
The point isn't zero leakage
Some leakage will always exist — goodwill gestures, one-off favors, small adjustments not worth chasing. The goal is that every dollar of it was a choice, not an accident.
Margin leakage vs. a client profitability problem
These get confused because they look similar from the bank balance: the client isn't making the money it should. But they're different problems with different fixes.
Margin leakage is work that happened but wasn't billed, or was billed below cost because the rate card drifted. The fix is operational: close the gap in the process, bill what's owed, correct the rate.
A client profitability problem is different: every line item is billed correctly, at the agreed rate, every time — and the client is still unprofitable, because the rate card itself was set too low for that client's real cost structure from the start. No amount of catching unbilled work fixes that; the rate needs to be renegotiated. Rate card drift sits between the two — left unfixed long enough, a drift becomes a profitability problem. Tracking both together, rather than running a one-time leakage audit and calling it done, is what client profitability reporting is for.
Questions people ask
What causes margin leakage in a 3PL warehouse?
Three recurring causes: warehouse work that happens but is never logged as billable (receiving, packaging upgrades, reprinted labels), rate cards that haven't kept pace with how the work changed, and carrier adjustments — reweighs, surcharges, address corrections — that never get passed through or claimed.
How much revenue do 3PLs typically lose to leakage?
There's no reliable industry-wide figure, and it varies enormously by operation size, SKU mix, and how mature the billing process is. The only number worth acting on is the one you build yourself, by comparing activity logs to invoices line by line.
How is margin leakage different from a billing error?
A billing error is a single mistake on one invoice that you correct and move past. Leakage is structural — the same gap between activity and revenue repeats every cycle because the process that should catch it isn't working.
What's the difference between margin leakage and a client profitability problem?
Leakage means work happened and wasn't billed correctly for it. A profitability problem means everything was billed exactly as agreed, but the agreed rate was too low for that client's real cost to begin with — a pricing fix, not an operations fix.
Once you find leakage, should you always rebill the client?
No. Rebill when the work falls under the existing rate card and the contract allows it. File a claim instead when it's a carrier-side adjustment inside the claim window. Otherwise, accept it on purpose and record why, rather than chasing every dollar regardless of cost.