You probably check your ad spend every week. Maybe every day around a sale.
When did you last go through your 3PL invoice line by line?
Your 3PL touches every single order. Every pick, every satchel, every parcel. That makes it one of the most important partners you have, whether you're the founder or the one running ops. It's also one of the least checked.
Most of us pick a 3PL, sign, and only look again when something goes wrong. Or when the invoice jumps.
I get it. Checking a 3PL properly is tedious work. But it's one of the checks that pays for itself.
This year, the bills moved
When a 3PL bill goes up, the first reaction I usually hear is: "Our 3PL is overcharging us." In my experience, that's rarely the full story.
This year, I saw carrier fuel surcharges jump. In Australia, for example, the Australia Post contract fuel surcharge went from 4.8% in early April to 19.5% by June (their announcement). In the US, UPS adjusts its fuel surcharge weekly.
Those are carrier costs. Your 3PL doesn't set them. It passes them on.
Carriers publish these changes, so ask your 3PL to flag them to you as they happen. That way you can plan for them, instead of finding them on the invoice.
Read the full rate card, not just the quote
A quote usually leads with the big numbers: pick, pack, storage. The full rate card has more, and it's those smaller lines that quietly add up:
- Receiving fees when stock arrives
- An admin or software fee
- A minimum monthly spend, which matters when sales slow down
- One-off labour for special jobs
Some 3PLs invoice weekly, some monthly. Either way, add the weekly lines up for a full month. They look a lot bigger that way.
How I check if my 3PL is still the right one
I usually do this around end of financial year. That way I'm ready before the big season, with enough time to sort things out with the 3PL, or move if I need to. Your timing might be different. Some do it at the end of the calendar year, others right after their peak. What matters is doing it when you still have time to act.
One thing people often miss is the exit notice. If your contract needs 60 days' notice, waiting until renewal is already too late.
I put the contract next to the last three invoices. The contract tells me the rates. Then I pull an order export from the store platform (or whatever sales tracker the business uses) to check the quantities. Then I go line by line.
Pick fees. I count the orders and the items per order and work out what the pick fees should be. Then I compare that with the invoice. I also check how "additional pick" is charged: per extra item, or per extra product line? It makes a difference.
Packaging and inserts. Does the number of satchels match the number of orders? Is the insert fee charged on every order, even ones that didn't get an insert?
Storage: pallets and pick faces. I ask for their stock report from the billing date and count the pallets and pick faces myself. Half-empty pallets are often billed as full ones. Slow-moving stock sitting in a pick face costs you every single week.
Admin and software. If it's a weekly fee, I check how many weeks were billed. Some months have five.
Receiving. I match the charges against the deliveries that actually came in. Was it charged per pallet or per carton? Loose cartons usually cost more to receive than palletised stock.
Returns. I count the returns in the order export and compare them with the returns charges.
Minimum spend. In quieter months, was the business topped up to the minimum? How often?
Shipping. I check the carrier charges, including surcharges, then take off what customers paid for shipping. That's the real shipping cost.
One-offs. Any labour or special-project charge: did someone approve it?
Then the terms, and how I check each one:
- Contract length and exit notice: I find both clauses in the contract and put the dates in the calendar.
- Daily order cut-off: for one week, I compare order times with dispatch times. How many orders placed before the cut-off still went out the next day?
- Store integration: I compare the 3PL's stock report with the stock levels in the store, and check that tracking numbers sync back to orders. If they don't match, someone is fixing it by hand.
Then I check what the market is offering right now. I ask two or three other 3PLs to quote on exactly the same list, and run one real month through every rate card. That gives me the all-in cost per order. Not the headline pick fee. The real number.
Honestly? It's not glamorous work. It's slow, it's line by line. Three invoices, a contract, an order export, and a few hours of checking every charge. Most founders know they should do it. They just never get to it.
Should you switch?
Not now. With peak season weeks away, moving stock is how orders go missing. If it were me, this check would have happened months ago. Right now, it's late.
So protect your margin instead:
- Ask your 3PL and carrier now about any peak surcharges for November and December.
- Confirm the dispatch and Christmas cut-off dates.
- Check your storage and minimum spend still make sense with peak stock.
- Compare what customers pay for shipping against your real net cost, and adjust your free-shipping threshold if you need to.
If the numbers say switch, plan it for after the peak, once returns settle down.
This is the kind of line-by-line work we do at KATOS. We audit your backend and hand you a clear plan. Then you choose: do it yourself, or have us build or run any part of it. One-time, monthly, or as needed.
Quick questions
Why does my 3PL bill change so often?
Your volumes, storage and carrier surcharges all move, and some carriers adjust their surcharges as often as weekly.
How often should I compare 3PLs?
Tedious as it is, at least once a year.
Is the cheapest 3PL the best one?
Not always. Look at the terms and the service levels (SLAs) too, like dispatch times and order accuracy. That's the service you're promising your own customers, so keep an eye on those numbers after you sign.
What's the one number to compare?
The all-in cost per order, using one real month of your own orders. Not the pick fee.
