Cost to serve is the full cost of getting a product to a customer after it has been made or bought: order handling, warehousing, transport, inventory carrying, returns, customer service and trade terms. Measured per customer, channel, product or order, it shows which revenue earns a profit.
Two customers can buy the same products at the same price and leave you with very different profit. One takes full pallets once a week at a regional distribution center (DC). The other orders mixed cases three times a week for small stores and sends back more than it keeps. Gross margin reports the same number for both. Cost to serve shows where the second customer’s margin goes.
What Is Cost to Serve?
Cost to serve (CTS) is the sum of every cost between a finished product and a paid invoice, assigned to the customer, order or channel that caused it. Costs follow activities: an order that needs 40 picks costs more to handle than one that needs a single pallet move, even at the same revenue.
Cost to Serve vs COGS vs Gross Margin
| Measure | What it includes | What it tells you |
|---|---|---|
| Cost of goods sold (COGS) | Materials, production or purchase cost | What the product costs to make or buy |
| Gross margin | Net revenue minus COGS | Profit before the product leaves your network |
| Cost to serve | Order handling, warehousing, transport, inventory carrying, returns, service, trade terms | What it costs to deliver to this customer |
| Cost-to-serve margin | Gross margin minus cost to serve | Profit after delivery, per customer, channel or order |
Most P&Ls stop at gross margin for customer decisions and spread logistics and service costs evenly by revenue or volume. That spreading is where the distortion comes from: easy customers subsidize difficult ones and nobody can see it.
What Is Total Cost to Serve in a Supply Chain?
Total cost to serve (TCTS) applies the same idea to the whole network: what it costs to deliver at the service level you promise, counting transport, facilities and handling, inventory carried at every node, production cost by location and lost sales. Two items set the network view apart from a customer-level model: production cost by location, which changes when you move sourcing, and the cost of lost sales, which finance models rarely book. A plan that cuts freight but pushes stock into the wrong DC, or misses orders, has not lowered total cost to serve. As the Supply Chain Analytics & Visibility page puts it, lower freight spend can bring higher warehouse cost, more inventory and weaker service.
What Costs Are Included in Cost to Serve?
Cost to serve includes nine cost pools: order processing, warehouse handling, storage, inventory carrying, transport, returns and claims, customer service and admin, trade terms and lost sales. Each pool needs a driver, the activity that makes it go up.
| Cost pool | Typical driver | What makes it high |
|---|---|---|
| Order processing | Orders, order lines | Manual or phone orders, many small orders, frequent changes |
| Warehouse handling | Picks, cases, pallets | Mixed-case and each picking, special labeling or packaging |
| Storage | Pallet positions, days on hand | Slow sellers held for one customer, safety stock for erratic demand |
| Inventory carrying | Average inventory value at each node | Stock held close to the customer, dedicated stock, long lead times |
| Transport | Drops, kilometers, loads, weight | Frequent small drops, less-than-truckload (LTL) shipments, remote locations, tight delivery windows |
| Returns and claims | Returned units, credit notes | Damage, overstock returns, disputes |
| Customer service and admin | Contacts, cases, account time | Disputes, custom reporting, key account teams |
| Trade terms | Rebates, payment days, promotions | Off-invoice deals, long payment terms |
| Lost sales | Unfilled units at margin | Stockouts caused by how the customer is served |
Count trade terms here only if net revenue does not already deduct them. Lost sales rarely appear in finance-built models because they are not a booked cost. Leaving them out makes a lean, low-stock service policy look cheaper than it is.
How to Calculate Cost to Serve
The method is activity-based costing applied to the order-to-cash flow. Calculate cost to serve in six steps:
- List the activities that serve each order, from order entry to returns.
- Move each activity’s cost from the P&L into a cost pool.
- Pick one driver per pool: orders, lines, cases, drops or kilometers.
- Divide each pool by its driver volume to get a rate per activity.
- Multiply each rate by the customer’s driver volumes and add them up.
- Subtract cost to serve from gross margin to get the cost-to-serve margin per customer.
The Cost to Serve Formula
Cost to serve per customer = sum of (activity rate × customer’s driver volume)
Activity rate = cost pool / driver volume at practical capacity
Cost-to-serve margin = net revenue − COGS − cost to serve
Cost-to-serve ratio = cost to serve / net revenue
Use practical capacity in the rate, not actual volume. If a warehouse runs at 70% of what it can handle, dividing its full cost by actual picks loads idle capacity onto every customer and makes all of them look worse. Robert Kaplan and Steven Anderson, writing on time-driven activity-based costing, suggest assuming practical capacity at 80% to 85% of theoretical capacity when you have no better measure.
Worked Example: Two Customers, Same Gross Margin
A distributor sells the same range to two customers at the same prices and similar annual revenue. Both leave a gross margin of 38 per 100 of net revenue. The figures are illustrative round numbers per 100 of revenue; storage, inventory carrying and trade terms are assumed equal for both and left out.
| Per 100 of net revenue | Customer A: regional DC, full pallets, one delivery a week | Customer B: small stores, mixed cases, three drops a week |
|---|---|---|
| Gross margin | 38 | 38 |
| Order processing | 1 | 4 |
| Warehouse handling | 3 | 10 |
| Transport | 4 | 16 |
| Returns and claims | 1 | 6 |
| Service and admin | 2 | 5 |
| Cost to serve | 11 | 41 |
| Cost-to-serve margin | 27 | −3 |
Customer B buys as much as Customer A and loses money because of how it is served: small mixed-case orders, three drops a week and a high return rate. Each of those is a service policy you can change.
Per Order, Per Unit and as a Ratio
The same model gives three views. Cost to serve per order shows whether minimum order sizes and cut-off times are set right. Cost per unit or per case compares channels with very different order sizes. The cost-to-serve ratio (cost to serve divided by net revenue) compares customers of different sizes on one scale: 11% for Customer A and 41% for Customer B in the example. There is no universal good ratio. Compare it with your own gross margin; a ratio above gross margin means the customer loses money.
Cost to Serve Model vs Cost to Serve Analysis
A cost to serve analysis is a snapshot: last year’s costs, allocated to last year’s customers, usually in a spreadsheet. A cost to serve model is the reusable structure behind it: cost pools, drivers and rates you can refresh and run against new volumes, prices or service policies.
Six Steps to Build a Cost to Serve Model
In an April 2025 press release, Gartner set out a six-step approach for supply chain leaders:
- Map the cost components, especially costs now spread across transactions by revenue or volume.
- Agree the scope, often starting with a pilot in one country or product line.
- Link each cost component to its cost drivers.
- Model an approximation of the actual cost per activity; direct costs are easier, indirect ones need stated assumptions.
- Reveal the true profitability of each transaction.
- Use the findings to improve business performance.
“Many companies overlook service differentiation or product attributes when calculating the profitability of their transactions,” said Marco Sandrone, VP Analyst at Gartner, in the same release.
From Yearly Report to Decision Model
Much cost-to-serve work stops at step 5. The analysis shows which customers lose money, the slide goes to the sales director, and the network keeps running the same way. The bigger return comes when total cost to serve becomes the objective that planning decisions are optimized against: which DC serves which store, which node ships each order, how often to deliver, where to hold stock and whether a new facility pays back.
That is the approach behind Solvoyo’s Strategic Network Design. The model is a digital twin of every node, flow path, cost structure and capacity constraint. It optimizes against an objective you choose: maximize profit, minimize total cost, maximize service, or a combination of them. Each scenario reports total cost to serve and CO2 side by side, and you can run as many as you need before committing to a DC, a lease or a route. For the method in more detail, see network design with total cost to serve and CO2.
How to Read Cost to Serve Results
Once every customer has a cost-to-serve margin, two views make the results usable: a whale curve of cumulative profit by customer and a matrix of gross margin against cost to serve.
The Whale Curve
Rank customers from most to least profitable after cost to serve, then plot cumulative profit. The line climbs past 100% of total profit, peaks, and falls back as the loss-making customers are added. The height of the hump is the profit the tail gives away.
Read the tail as a list of service models to fix before it is read as a list of accounts to drop: those customers cost more to serve than they pay for.
Margin vs Cost to Serve Matrix
| Low cost to serve | High cost to serve | |
|---|---|---|
| High gross margin | Protect: keep service levels, watch for drift | Re-serve: change delivery frequency, order rules or the serving node |
| Low gross margin | Grow: efficient to serve, test volume and price | Reprice or restructure: surcharges, minimums or a different channel |
Sales, finance and supply chain each own part of the answer, so agree the action per quadrant before the analysis goes out.
How to Reduce Cost to Serve
To reduce cost to serve, change the drivers behind it: order minimums and cut-off times, delivery frequency, service tiers, DC mapping, the fulfillment node per order, inventory placement, load building and range. Each lever also moves service, so price the trade-off before you pull it.
| Lever | Driver it moves | Service trade-off |
|---|---|---|
| Order minimums and cut-off times | Orders, order lines | Customer orders less often |
| Delivery frequency by segment | Drops | Longer gaps between deliveries for small sites |
| Service tiers and surcharges | Picks, drops, contacts | Customers pay for premium service |
| DC-to-store or DC-to-customer mapping | Kilometres, loads | Can lengthen lead time for some sites |
| Fulfillment node per order | Kilometres, split shipments | Needs inventory visibility across nodes |
| Inventory placement across echelons | Inventory carrying, lost sales | More stock upstream, less at the edge |
| Load building and consolidation | Loads, truck fill | Orders may wait for a fuller truck |
| SKU and range rationalization | Storage, picks | Narrower range for some customers |
The levers interact. Fewer deliveries lower transport but raise store inventory. A cheaper DC mapping can add lost sales if the new DC carries less stock. This is why single-lever projects often move cost from one budget to another. A model that solves inventory, fulfillment and transport together shows the net effect. Solvoyo’s Transportation & Fulfillment Planning runs these as scenarios side by side and quantifies what each additional point of on-time in-full (OTIF) delivery costs.
Cost to Serve Examples in Retail and Manufacturing
Published Solvoyo case studies on cost-to-serve decisions (figures describe the scope where the solution runs, not company totals):
- Aftermarket spare parts, global automaker. A network redesign optimized against total cost to serve tested more than 120 scenarios and delivered €18M in short-term recurring annual savings, 4% of total cost to serve, plus €11M in long-term net savings. Read the aftermarket parts case study.
- Energy management, Schneider Electric. Scenario-based total cost to serve optimization across an Asia-Pacific network of 18 DCs and 1,200 customer locations led to fewer DCs and $16M a year in supply chain savings. Read the Schneider Electric case study.
- Consumer electronics, Vestel. Fulfillment and transportation planned together, minimizing transport cost while keeping stock available, for 1,100+ dealer locations served through 40 cross-docks: 18% in annual recurring transportation savings and $10M in one-time savings after closing 4 distribution centers, with a 100% plan acceptance rate. Read the Vestel case study.
- Grocery discount retail, A101. The team compares 15 to 20 network scenarios a year, and Solvoyo recommends the DC-store mappings that reduce total cost to serve as the store network grows. Read the A101 case study.
For a service parts version of the same idea, where total cost to serve covers multi-echelon spare parts inventory, handling and expediting, see the Applied Materials case study.
Cost to Serve Software: Spreadsheet, Analytics or Decision Automation?
Cost to serve software comes in three levels: a spreadsheet model for a pilot, analytics for regular reporting, and decision automation that optimizes network, fulfillment and transport plans against total cost to serve.
| Approach | Good for | Limit |
|---|---|---|
| Spreadsheet model | A first pilot, one country or channel | Breaks at transaction level, hard to refresh, no scenarios |
| Cost-to-serve analytics | Regular reporting of past cost by segment and route | Explains past cost, does not change the plan |
| Decision automation | Network, fulfillment and transport decisions optimized against total cost to serve | Needs clean master data and agreed cost drivers |
A spreadsheet is the right place to start. Move up when the same questions come back every quarter, or when the answer needs a change to the network rather than a price list. Solvoyo’s Supply Chain Analytics & Visibility tracks total cost to serve across the network, and its AI planning agent, Solvi, flags when cost to serve, service levels or carbon drift from what the network model projected. See all Solvoyo solutions.
Cost to Serve FAQ
There is no universal benchmark, because the ratio depends on your gross margin and channel mix. Read it against gross margin: if a customer’s cost-to-serve ratio is higher than its gross margin percentage, that customer loses money after delivery. Compare customers within the same channel, track the ratio over time and look at the drivers behind any customer whose ratio rises faster than its revenue.
Cost to serve is one input to customer profitability. Customer profitability is net revenue minus COGS, minus cost to serve, minus customer-specific costs not already in cost to serve, such as sales commissions. Two customers with the same gross margin can have very different profitability once cost to serve is included, which is why gross margin alone is a poor guide to which accounts to grow, reprice or serve differently.
Cost to serve uses activity-based costing as its method, applied to the order-to-cash flow. Activity-based costing assigns costs to activities and then to the customers or orders that consume them. Time-driven activity-based costing simplifies this by estimating the time each activity takes and the cost per hour of capacity, which makes the model easier to keep up to date.
You need four sets of data: order and shipment history at line level (customer, SKU, quantity, date, ship-from node), cost pools from the general ledger (warehouse labor, freight, storage, customer service, returns), driver volumes for each pool (picks, drops, kilometers, contacts) and customer terms such as rebates and payment days. Inventory by node adds carrying cost, and stockout records add lost sales.
Refresh the rates at least once a year and whenever a large cost changes, such as a new DC, a freight contract or a wage agreement. Refresh the volumes monthly or quarterly so customer results stay current. When cost to serve drives network or fulfillment decisions, rerun the scenarios whenever demand, capacity or costs move enough to change the answer.
Yes, for a pilot. A spreadsheet can hold cost pools, driver volumes, rates and customer totals for one country or channel. It struggles at transaction level, with many customers and SKUs, and it cannot test what happens if you change delivery frequency or DC mapping. At that point a cost-to-serve model in analytics or planning software is easier to maintain.




