Your Customer's Inventory Habits Are Costing You Money
Slow-moving pallets collecting dust. Constant 'urgent' cycle count requests. Surprise inbound shipments with no ASN. At some point, most 3PLs have to tell a customer their habits are a problem.
Most 3PLs can name the client. Inbound freight arrives with incomplete paperwork. Cycle counts get requested every other week. Two hundred pallets haven't moved in six months but will be needed "soon," and every outbound order is marked urgent. The fix is to measure what those habits cost you for a month, put each one on the rate card or in the contract, and then raise it with the client as a policy backed by numbers, not as a complaint.
You can't fire every difficult customer, and you usually shouldn't. Many of them are good accounts with one or two expensive habits. What you can stop doing is absorbing the cost of those habits for free.
TL;DR: Client friction becomes a billing problem only when nobody prices it. This guide works through six steps: log the exceptions each client creates for a month, set a long-term storage surcharge for aged pallets, write ASN and labeling requirements into the contract with a non-compliance fee, split service into standard and expedited tiers, bill client-requested counts that fall outside your cycle count program, and present the changes with the month's numbers in hand. Start by giving your receiving lead a clipboard and one question: "Which client caused this?"
Step 1: Measure what each client actually costs you
Before changing a single rate, find out where the friction actually is. For one month, log every exception by client:
- Receipts that arrived without an advance ship notice (ASN), or with one that didn't match the freight.
- Cartons that needed labeling, sorting, or counting by hand before putaway.
- Orders marked rush or same-day, and how many of them actually needed it.
- Counts requested by the client outside your normal cycle count schedule.
- Pallets with no movement in 90 days and in 180 days.
Record the labor minutes beside each one. It doesn't need to be precise. A floor lead's estimate written down on the day is far better than a manager's guess at the end of the month.
The result is usually lopsided. A handful of clients tend to generate most of the exceptions, and they aren't always the ones you would have guessed. That log is the evidence for every step that follows. It is also the same exercise as the warehouse billing audit process, pointed at clients rather than at services, so if you have run that audit you already have half of this.
Step 2: Put a price on pallets that don't move
A pallet that has sat untouched for six months occupies a position that could be holding inventory that turns, and earns handling revenue every time it does. If storage is the only fee it generates, you are carrying the lease economics of that position at whatever rate you set when the client was new.
The common fix is a long-term storage surcharge, tiered by age. For example, a standard rate up to 90 days, a higher rate from 90 to 180 days, and a higher one again beyond that. The exact thresholds matter less than having them written down and applied the same way to every client.
Pair the surcharge with an offer. "We're introducing a long-term storage rate for pallets that haven't moved in 90 days. Here's the rate and the effective date. We can also help you plan disposition for aged stock if that's useful." Framed as a policy with an exit route, most clients either move the product or accept the fee, and either outcome works for you.
Zero-movement inventory often turns up during a slotting analysis, too. If you have just run one, the bottom of your pick-frequency list is a ready-made starting point for this conversation.
Step 3: Write receiving requirements into the contract
Surprise freight is a contract problem before it is a dock problem. If your service agreement doesn't say what happens when a trailer arrives without notice, or with an ASN that doesn't match, you are relying on goodwill. Goodwill tends to run out around the third time your receiving crew hand-counts and labels fifteen mystery pallets.
Specify, in the agreement or its operating appendix:
- The ASN format and deadline. Twenty-four to 48 hours before arrival is a common requirement.
- Labeling standards: what every carton and pallet must carry when it arrives.
- What happens when either is missed: a per-pallet or per-hour receiving surcharge, and whether non-compliant freight is received in the normal window or as capacity allows.
Put it in writing at onboarding, so it is never a confrontation later. The receiving dock survival guide covers the floor side: how to triage problem freight when it does arrive, and how to record it so the surcharge can actually be billed.
Step 4: Give "urgent" a price and a cutoff
When every order is urgent, nothing is prioritized, and your crew runs in reactive mode all day. The fix is a tiered service structure: standard orders with one cutoff and price, expedited orders with a later cutoff and a higher price.
The effect is usually quick. Clients who genuinely need rush service keep using it and now pay for the labor it takes. Clients who marked everything urgent out of habit find that standard service covers most of their orders.
Set the cutoffs by working backward from your carrier pickup times, not from what sounds competitive. If the last parcel pickup leaves at 5:00 PM and a rush order takes your crew about an hour to pick, pack, and manifest, a 3:30 PM expedited cutoff leaves room for the afternoon going wrong. A 4:30 PM cutoff promises something you will miss on a busy day.
Keep the tiers simple. Two is enough for most small operations. A third same-hour tier is worth offering only if you can staff it without pulling people off standard work.
Step 5: Put client-requested counts on the rate card
Some clients ask for counts because they don't trust their own numbers. That is understandable, and it is also labor. Your own cycle count program is part of the service. A count a client requests outside that program is an additional service, and it belongs on the rate card at an hourly or per-location rate.
Two things make this easier to introduce. First, share your accuracy results on a regular schedule. A client who sees monthly location-level accuracy is less likely to ask for an ad hoc count to check it. Second, when a requested count finds a variance that turns out to be your error, don't bill it. That keeps the fee about the client's habit rather than about your mistakes.
Step 6: Have the conversation with numbers in hand
By this point you have a month of exception data and a set of written policies. The conversation is simpler than it sounds:
- Lead with the data. "Last month, 14 of your 22 inbound loads arrived without an ASN, which took about 30 extra labor hours to receive."
- Present the change as a policy for all clients, not a penalty for this one. Usually it is both, but the policy framing is what keeps the relationship intact.
- Give notice. Check what your agreement says about rate changes, and give at least that much. If it says nothing, thirty days is a reasonable floor.
- Offer a way to avoid the fee. An ASN template, a labeling guide, a disposition plan for aged stock. The point is better behavior, and a client who changes the habit is worth more than one who just pays for it.
If a contract renewal is coming up, it is the natural moment. If it isn't, a written policy change with notice usually works, provided your agreement allows it. When in doubt about what the contract permits, ask whoever drafted it.
What this isn't
This is not a case for billing every client for everything. Some friction is the cost of doing business, and a 3PL that charges for every exception will lose good accounts over small amounts. It is also not always the client's fault. A receiving delay can be your staffing as much as their paperwork, which is why the log in step 1 should record causes honestly.
The point is narrower: the expensive habits should be visible, priced, and discussed. Clients who respond well to that kind of conversation tend to become better long-term accounts. Clients who don't were often costing you more than they paid.
The minimal version
If a month of logging is more than you can manage this quarter, pick one habit, usually aged inventory. Pull every pallet with no movement in 180 days, group it by client, and send each client the list with a disposition offer and a proposed long-term storage rate. That one email recovers space and starts the conversation.
What changed (October 2026): rewritten as a step-by-step process, with new sections on measuring client friction and billing requested counts. Two statistics in the original version were removed because they did not hold up against their underlying sources.
This post provides general operational and commercial guidance for educational purposes. It does not constitute legal or financial advice. Rate changes and contract terms should be reviewed against your own service agreements.