1. The rate card someone uploaded once and never updated
Pattern looks like this. A rate card was uploaded to the WMS in 2022 when the client was onboarded. The contract had an annual CPI clause that should have triggered a 4.2% increase in 2023 and a 4.8% increase in 2024. Neither got reflected in the rate card sitting in the WMS. Two amendments were signed mid-year for new services. Those amendments live in an email folder somewhere, not in the system.
Result: storage is still billed at the 2022 rate. After-hours dispatch is billed at a rate that was raised twelve months ago. The dollar impact per invoice line is small enough to be invisible at the totals level. Over the contract term it adds up to somewhere between 3% and 7% revenue erosion versus what was agreed.
2. The activity types performed but never priced
This is scope creep. It's worth naming separately here because operators tend not to think of it as “revenue lost on contracted rates.” They think of it as “extra services we threw in.” The framing matters. You contracted to provide a defined scope. You're providing more than the scope. The contracted rate isn't paying for what you're actually delivering.
Seven out of every ten operations we've looked at have at least three activity types performed daily that aren't on the rate card. Rework, returns processing, kitting, custom labelling, DG handling, and after-hours operations are the usual suspects.
3. Minimum volume clauses that no-one checks
Contract says minimum 500 pallets per month. Client averages 380. The minimum charge should be invoiced because it's right there in the agreement. But in most operations nobody runs the report monthly. The shortfall doesn't get flagged. The client pays for what they used, not the contracted minimum.
This one is one of the most preventable leaks. The data to detect it lives in your WMS in cleartext. Count pallets per client per month, compare against the contracted minimum, flag the difference. Most operators discover the leak at contract renewal, by which point it's eighteen months of foregone revenue.
4. Surcharges that exist on paper but not in practice
Fuel levy, after-hours, dangerous goods handling, residential delivery, wharf cartage. Each is typically a percentage uplift or a fixed per-instance fee. All of them are routinely contracted. Most of them are routinely forgotten in invoicing, often because the surcharge logic lives in a spreadsheet on someone's desktop instead of in the WMS billing module.
We've come across operators contractually entitled to a 12% fuel levy that hasn't applied to a single invoice for six months. The levy rate updates quarterly. The invoicing flow doesn't pick it up. The customer pays the base rate. Forty thousand dollars walks out the door every quarter.
5. Rate card amendments that never propagated
An account manager agrees a mid-year amendment with a key client. There's a handshake on the call, then a signed letter a week later confirming the new service and the new rate. The letter goes into the client folder. Nobody enters it into the WMS billing config. The new service starts running. The new rate doesn't apply.
Six months pass before anyone connects the dots. Often it's the account manager themselves who finds it, asking customer success why margin on their key client has dipped, only to discover the amendment they negotiated never went live.
6. The handover gap when billing staff change
The person who knew which client gets the special rate left in March. Their replacement bills the default rate. The client doesn't complain because they're paying less than contracted. Three months later somebody notices. The dollar gap is real and recoverable in principle. The conversation with the client about the back-bill is harder than the dollar gap deserves.
This category isn't a software problem. It's a knowledge-management problem. The symptom though (under-billing against contract) looks identical to the other five.
How to spot which of the six is hurting you most
Three diagnostic questions you can run today:
- When was your last rate card change, and did it get pushed to all clients consistently? If the answer is “I'd have to check,” you've likely got exposure to categories 1, 4, and 5.
- Do you run monthly reports on minimum volume compliance per client? If the answer is “we look at it at renewal,” you've got exposure to category 3.
- Is anyone reconciling invoiced charges back to activity logs systematically? If the answer is “not really,” you've got exposure to categories 2 and 6.
Answer “no” or “I don't know” to any of those, and that's where the leak is.
Frequently asked questions
What percentage of revenue do 3PLs typically lose on contracted rates?
Mid-market ANZ 3PLs typically leak 3–8% of revenue across the six structural categories combined. Operations with simple rate cards and stable client relationships tend toward the lower end. Operations with complex rate cards, multiple amendments, CPI clauses, and high client churn tend toward the higher end. On a $20M operator, that's $600,000 to $1.6 million a year of unrecovered margin.
How often should rate cards be reviewed?
Quarterly at minimum, with a full reconciliation against actual billed activity. Annual reviews catch the headline drift but miss the month-to-month leakage from missed surcharges and minimum volume shortfalls. Operators running a continuous reconciliation layer effectively review every billing cycle.
Who in a 3PL is responsible for catching contracted-rate leakage?
There's almost never a single owner, which is part of the problem. Operations runs the work, finance bills, account management owns the client, commercial owns the contract. Leakage lives in the gaps between those four. The most successful operators we've seen designate a commercial analyst whose explicit job is to monitor billed-versus-contracted across all clients monthly.
Can a WMS prevent contracted-rate leakage on its own?
Partially. WMS billing modules can enforce a rate card at the point of invoice generation, which prevents some leakage. But they only know about activities they're configured to track. New activity types, amendments, surcharges that live outside the WMS billing config, and minimum volume clauses are typically invisible to the WMS layer. A reconciliation layer above the WMS is what catches those.
What's the difference between rate erosion and scope creep?
Rate erosion is when contracted rates fail to keep pace with costs or with contracted CPI adjustments. The rate is documented but the wrong number is being billed. Scope creep is when you're performing services that aren't in the contract at all. No rate is documented because no rate was ever agreed. Both reduce margin. They need different fixes: erosion is fixed by syncing the WMS to the contract; scope creep is fixed by amending the contract.