The problem with the fees nobody reads
You fought hard over the pick-and-pack rate. That was when you signed with your warehouse, your Third-Party Logistics (3PL) partner. The monthly bill has stayed about the same ever since. So the contract must still be fine. Right?
Wrong. The rate you fought for is the one line that rarely moves. Below it sits a long list of small fees. Kitting. Receiving. Storage minimums. Returns handling. Peak surcharges. Warehouse people call them . That is just their name for the small extra fees on top of the base rate. Almost nobody reads that list after signing day.
And those small fees drift. One rises a little every year, by contract. A new one appears. Another gets redefined to cover more. The total bill barely moves. So nothing jumps out. But the mix inside it has shifted. You are quietly paying more per order than you agreed to.
This article is about the fifth one: shipping and warehouse fees. The big rate on your 3PL contract is not where the cost creeps. The small fees under it are. And they repeat on every order until somebody audits them.
1. An example showing you the numbers
You run a specialty coffee subscription brand. Customers pay $100 for a box each quarter. Inside: four premium bags picked around a theme, plus a printed insert. Your 3PL stores the coffee, builds each box, and ships it.
Three years ago you signed a clean contract. $12 per order for shipping and warehouse work, all in. That was $6 of carrier postage. $3 of pick-and-pack. And $3 of small fees, kitting, receiving, and a storage minimum.
You have not read the fee list since. This quarter you finally pull three months of invoices. You go through them line by line. Here is what you find.
Same box, same 3PL, same customer, only two fee lines drifted
Per order, whole dollars. Standard costs for this store are in the appendix.
| Invoice line (per order) | At signing | Today (drifted) | After the audit |
|---|---|---|---|
| Carrier postage | $6 | $6 | $6 |
| Base pick-and-pack | $3 | $3 | $3 |
| Kitting (box assembly) | $1 | $2 | $1 |
| Receiving (per-order share) | $1 | $2 | $1 |
| Storage minimum (per-order share) | $1 | $1 | $1 |
| Shipping and 3PL, total | $12 | $14 | $12 |
| Profit left per order (all six costs paid) | $10 | $8 | $10 |
| Yearly profit on 20,000 orders | $200,000 | $160,000 | $200,000 |
Look at the two drifted lines. The kitting fee rose $1. Your contract lets it rise a bit each year. The receiving fee doubled. The 3PL changed what it covers, from each shipment to each pallet. Nobody hid anything. It was all on the invoice. In the lines nobody reads.
Two dollars an order does not sound like much. But this store keeps $10 per order when all goes to plan. The drift cut that to $8. That is a 20% pay cut on every order. Same box. Same coffee. Same customer. On 20,000 orders a year, $40,000 walked out through two small fee lines.
One honest note. The audit gets back money you had already agreed to give away. It is a recovery, not new revenue. And it lands only if the other five costs hold still. Your own number depends on your contract and your 3PL. Some brands find more, in storage minimums or returns fees. Some find no drift at all. The two hours tell you which store you are.
The sentence that changes how you think about 3PL fees
The rate you negotiated is not where the money leaks. The fees you stopped reading are.
The pick-and-pack rate gets fought over at signing. Then it stays put. The small fees below it drift a little every year. And each drifted dollar repeats on every order, until you audit it back.
2. How to run your own accessorial audit
The audit takes about two hours once the invoices are pulled. The output is a short list of fee lines to fix. Plus a dollar figure to bring to your 3PL account manager.
- Pull three months of invoices in full detail. Not the summary email. Get the line-item export that shows every fee. Your 3PL portal or account manager has it. One month proves nothing. Three months shows the pattern.
- Sort every line into buckets. Pick-and-pack. Kitting. Receiving. Storage. Returns handling. Surcharges. And other. Total each bucket. Then divide by your order count. Now every fee is a per-order number you can compare.
- Compare against the contract you signed. Put the original rate card next to today's invoice. Drift often hides in changed meanings, not changed prices. Receiving that was per shipment at signing may be per pallet now. Flag every line that grew or changed meaning.
- Write a specific ask for each flagged line. Fold the kitting fee into the base rate. Waive receiving at your current volume. Put the redefined line back to its old meaning. Vague complaints get nowhere. Specific asks with numbers get meetings.
- Take the list to your account manager, then re-audit every quarter. Frame it as a contract review at your current volume. Not a complaint. Most 3PLs have room to move when you arrive prepared. Drift starts again the day after the handshake. Put the next audit on your calendar now.
3. One warning before you act
Do not try to wipe out every fee. Kitting is real work. Receiving pallets takes real staff time. Peak-season staffing costs your 3PL real money. Push a partner below their own cost, and they become a partner you cannot rely on. A 3PL you can trust in December is worth more than the last dollar of fees.
The rule: negotiate the drift, not the service. Ask for what you first agreed to, at the volume you now bring. And get one or two informal quotes from other 3PLs first. Not as a threat. So you know the market rate before you sit down.
4. Frequently asked questions
How often should I run this audit?
Every quarter. Plus a deeper yearly pass against the contract you first signed. Drift is slow. One month of invoices shows nothing. Three months shows the pattern. A full year against the first contract shows the shape.
What if my 3PL refuses to talk?
That is an answer in itself. Most 3PLs will talk about the biggest lines, even if they cannot move on everything. A flat refusal is your cue to get formal quotes elsewhere. And the quote itself often gets the talk started.
Should I just switch 3PLs instead?
Usually not first. Switching costs real money. Moving stock. New systems. Retraining. And things can break. Most drifted contracts can be fixed in place. Switch when the 3PL refuses to engage, or when service has slipped. Not on principle.
I use Fulfilled by Amazon (FBA). Does this still apply?
Amazon rarely budges on its fees. But the habit still helps. Check your FBA fee reports monthly. Look for wrongly measured units, surprise storage charges, and fees on aged stock. Amazon refunds proven errors when you raise a ticket. The amounts add up.
5. Quick reference: what to avoid and apply
What to avoid
- Auditing the pick-and-pack rate and ignoring the fee list below it.
- Reading the invoice as one monthly total instead of line by line.
- Assuming the contract you signed still matches the fees you are billed.
- Bringing rival quotes to the meeting as a threat instead of a market fact.
- Running the audit once and never again, drift restarts the next day.
What to apply
- Pull three months of 3PL invoices in full line-item detail.
- Sort every fee into buckets and turn each bucket into a per-order number.
- Compare today's fee lines against the original signed rate card.
- Bring a specific ask for every drifted line to your account manager.
- Re-audit every quarter so the fees cannot drift again.
Want your six costs mapped for you?
Our free 31-Point Profit Diagnostic puts a dollar figure on where your profit is leaking. Or get a quote for done-for-you eCommerce accounting.
Definitions, modeling notes & rate-basis disclosures
Definitions
- The six profit levers
- (1) Discounts, (2) Refunds, (3) Product cost (landed COGS), (4) Sales channel and payment fees, (5) Shipping and 3PL fees, (6) Advertising spend.
- Accessorial fees
- The small charges on a 3PL invoice that sit on top of the base pick-and-pack rate: kitting, receiving, storage, returns handling, and surcharges.
- Base pick-and-pack rate
- The core per-order fee for picking the items, packing the box, and printing the label. Usually the hardest-fought and most stable line.
- Kitting
- The work of putting several items into one package, like a subscription box.
- Storage minimum
- A monthly charge that applies when your stored stock falls below an agreed level.
- Contract drift
- The slow rise of a fee list over time: built-in yearly increases, new fees appearing, and old fees redefined to cover more.
- Contribution per order
- Selling price minus all six costs. What one sale really leaves behind.
- Fulfilled by Amazon (FBA)
- Amazon's warehousing and shipping service for sellers; its version of a 3PL.
Modeling notes
- This article uses the series' standard teaching store: a $100 order, product cost $40, a standing 10% discount, advertising $20 per order, refunds 5%, payment and channel fees 3%, and shipping and 3PL of $12, the at-signing rate, which the audit restores. Contribution per order: $10 at signing and after the audit; $8 on the drifted contract.
- The $12 line splits as $6 carrier postage + $3 pick-and-pack + $3 accessorials ($1 kitting + $1 receiving share + $1 storage minimum share). Drift added $1 to kitting and $1 to receiving, taking the line to $14.
- Yearly reconciliation: $2 drift × 20,000 orders = $40,000. Contribution check: $10 × 20,000 = $200,000 at plan; $8 × 20,000 = $160,000 drifted.
- Industry ranges, for context only: accessorials often run 30 to 40 percent of total 3PL cost on unaudited contracts. A proper review typically recovers 1 to 3 percent of yearly fulfillment cost. Your contract will differ; the audit tells you your number.
Rate-basis disclosures
- Product baseline: quarterly specialty coffee subscription box, four 12-ounce bags plus insert, $100 order value.
- At-signing shipping and 3PL: $12 per order ($6 postage, $3 pick-and-pack, $1 kitting, $1 receiving share, $1 storage minimum share).
- Drifted contract: $14 per order (kitting $2, receiving $2; all other lines unchanged).
- Recovered by the audit: $2 per order; $40,000 per year at 20,000 orders. Scales in a straight line with volume.
- All figures rounded to whole dollars for easy reading.