Margin intelligence

Cost-to-serve for 3PLs: what it actually means, and why most operators get it wrong

Ask most 3PLs how their largest client is doing and they'll tell you the revenue number. Ask them the margin number and they go quiet. That's because they know revenue per client but not actual cost-to-serve per client. The two can be wildly different. This piece walks through what cost-to-serve really measures, how to calculate it for one client, and where most operators under-count the real cost.

The textbook definition

Cost-to-serve in third-party logistics is the fully loaded operational cost of providing services to a specific client over a defined period, set against the revenue billed to that client. It includes direct activity costs (picking, packing, storage, transport allocation), allocated indirect costs (warehouse overhead, management time, system costs), and exception costs (rework, returns, complaints handling). True cost-to-serve produces a per-client profit margin that often differs significantly from the headline gross margin reported at the operator level.

Put another way, cost-to-serve answers the question your headline P&L can't: is this client actually making us money?

Why most 3PLs don't run cost-to-serve

Three reasons, in declining order of legitimacy:

  • The operational accounting was set up to bill clients, not cost them. The data needed to cost a client lives in the WMS (activity volumes) and the operational ledger (labour, equipment, overhead allocations). Those two systems don't talk to each other in most mid-market operators.
  • Allocating indirect costs is judgement-heavy. What share of the warehouse manager's time goes to Client A versus Client B? What about the WMS licence fee? Most ops managers don't want to fight that fight quarterly, especially because the answer affects how clients get perceived internally.
  • The output is politically sensitive. “Client X is unprofitable” is a conversation that has to happen with the account team, the commercial team, and eventually the client. Most operators duck it.

These are real reasons. They don't go away by pretending they don't exist. The way to actually do this is to make the math defensible enough that the political conversations can happen on a factual foundation.

The five components of true cost-to-serve

1. Direct activity cost

Labour and equipment cost per activity type, calibrated to your operation. If a pick takes 90 seconds on average and your loaded warehouse labour rate is $48/hour, your direct pick cost is roughly $1.20. Apply the same logic to receivals, despatches, storage cycles, value-added services. Most operators have a rough cost per activity already. The question is whether it's calibrated to current labour rates and current pick times, or whether you're working off numbers from two years ago.

2. Allocated storage cost

Pallet-space-days multiplied by per-pallet cost. The per-pallet cost itself is a derived number: warehouse rent plus utilities plus insurance, divided by usable pallet positions, divided by 365. Most operators carry this number in their head as “something like $3 per pallet per week” but few have it precise enough to defend at a commercial review. The number changes when leases reset.

3. Allocated management cost

Account management, KPI reporting, customer success time. This is the category most under-estimated. The account manager who spends two hours a week on Client A and twenty minutes on Client B is a real cost to Client A that doesn't appear on the WMS activity log. Even rough allocations help. Divide each operational headcount's loaded cost across clients by an estimated time split.

4. Exception cost

Rework, returns, claims, complaints handling. Usually the silent killer. A client that generates twenty claims a month against another that generates two is consuming 10x the customer service load. That load doesn't reflect in their headline rate card. Track claims volume, returns volume, and complaint resolution time per client. Multiply by your loaded cost per hour. The number tends to surprise people.

5. System and overhead allocation

WMS licence, finance system licence, IT cost, executive overhead. Allocate by activity volume share or by revenue share. Either is defensible. Neither is perfect. The goal isn't accounting precision. It's a consistent allocation so client comparisons hold up internally.

The clients who surprise you

The pattern is consistent across the operators we've looked at. The largest-revenue client is often in the bottom quartile of margin. The reasons:

  • They've negotiated the lowest rates because of volume leverage
  • They consume the most management time because their relationship matters
  • They generate the most exceptions because their volume creates more opportunities for things to go wrong
  • Their volume gives them leverage on mid-term amendments. New services get added without commensurate rate increases

Meanwhile your mid-size, less-demanding clients with simpler contracts often produce two to three times the margin per dollar of revenue. Most operators don't know this until someone runs the numbers. When they do, the commercial strategy shifts. Growth focus moves toward replicating the high-margin mid-sized client, not toward chasing more revenue from the headline whale.

How to build cost-to-serve for one client in a week

A tactical walk-through. One client, 90 days of data:

  1. Day 1. Export 90 days of activity by client. Categorise by activity type. Build the pivot.
  2. Day 2. Map activities to your unit cost model. Use current labour rates. Calculate direct activity cost.
  3. Day 3. Allocate storage cost by pallet-days. Pull average daily pallet count from WMS, multiply by 90, multiply by your per-pallet-day cost.
  4. Day 4. Estimate management and overhead allocation. Use time-split estimates from the account team. Multiply by loaded cost.
  5. Day 5. Pull invoiced revenue for the 90 days. Compare against total cost. Calculate margin percentage. Compare to the operator-level average.

What you've got at the end is revenue, total cost (broken down by the five components), gross margin percentage, and the comparison to your operator-level average. That's the artifact. It changes the conversation.

Why doing this once a year isn't enough

Rates erode. Scope creeps. Volume shifts. Costs rise. The annual cost-to-serve done in May is wrong by August. For renewal conversations, you need monthly visibility, not annual.

The pattern that catches operators out goes like this. Cost-to-serve done at contract signing shows a healthy 18% margin. Annual review eighteen months later shows it's drifted to 8%, but the contract has two years left to run. The conversation about why is harder than it needed to be, because the drift wasn't visible while it was happening.

Continuous cost-to-serve isn't about accounting precision. It's about being able to see margin change as it happens, while the renegotiation conversation is still feasible.

Frequently asked questions

Why is cost-to-serve harder for 3PLs than for other industries?

Three reasons specific to 3PL. First, costs split between fixed (warehouse, equipment, management) and variable (per-activity labour, transport) in ways that don't allocate cleanly. Second, clients share infrastructure: same warehouse, same equipment, same management team. Allocations require judgement calls. Third, exception costs (claims, returns, special handling) vary wildly by client and aren't priced into headline rate cards. The combined effect is that headline gross margin per client can be 40% while true cost-to-serve margin is 8%, and most operators can't tell the difference without dedicated analysis.

How often should a 3PL recalculate cost-to-serve?

Monthly is ideal, quarterly is realistic, annually is the bare minimum that catches the headline drift but misses month-to-month changes. The cadence matters because the most valuable use of cost-to-serve is in renewal conversations, and renewals come up quarterly across a client base of 15+ accounts. If your cost-to-serve is twelve months old when you walk into a renewal, you're flying with stale data.

Can a WMS produce cost-to-serve reports?

A WMS produces activity volume reports, which is one of the five components. It typically can't allocate fixed overhead, management cost, or exception cost, which are the other four. A complete cost-to-serve needs to combine WMS data with operational ledger data and account team time allocation. Most WMS billing modules don't do this natively. It requires a layer above or a custom build.

What's a healthy gross margin for a mid-market 3PL?

Industry headline numbers in ANZ run 8–15% gross margin at the operator level, with 18–25% on individual clients in healthy contracts. True cost-to-serve margin (after all five components) typically sits 5–10 percentage points below headline gross margin. So a client showing 22% headline gross might be 13% on cost-to-serve. The healthy threshold for sustaining the business is around 10% cost-to-serve margin. Anything below that and you're underwriting the client.

Should we share cost-to-serve numbers with clients?

Selectively, in the right framing. Sharing the breakdown wholesale invites a margin negotiation you don't want. Sharing specific cost drivers (“exception handling has grown 40% on your account this year and we need to address it”) gives you a factual foundation for a commercial conversation that would otherwise feel arbitrary. Use the numbers internally to decide what to raise. Use specific drivers externally to raise it.

Want cost-to-serve per client, every month?

Bllbl's Enterprise tier runs cost-to-serve per client every month, using the activity, billing, and exception data the audit layer already collects. The questions your CFO is asking (which clients are profitable, which are eroding, which need renegotiation) answered as a live report, not a quarterly fire drill.

Get your free audit

No commitment. No charge. 48 hour turnaround.