How to calculate cost to serve, step by step
Quick answer. Cost to serve is the full operational cost of fulfilling a customer's orders, once picking, packing, shipping, support, returns and account admin are counted, not just the cost of the goods.
Cost to serve is the full operational cost of fulfilling a customer's orders, once picking, packing, shipping, support, returns and account admin are counted, not just the cost of the goods. You calculate it by timing each activity, costing that time, and attributing it to the orders and customers that triggered it. Here is the exact method we use, and the point where a spreadsheet stops working.
How to calculate cost to serve, step by step
Quick answer. Cost to serve is the full operational cost of fulfilling a customer's orders, once picking, packing, shipping, support, returns and account admin are counted, not just the cost of the goods.
Start with the journey of an order, not the chart of accounts. A typical path is receive, pick, pack, ship, handle support and returns, and run account admin. Five to eight activities is usually enough. The goal is to name the work that consumes cost, in the language the operation already uses.
Estimate the minutes each activity takes for a normal order, then adjust for what makes orders different: size, number of lines, channel, fragility, special requests. This is the heart of Time-Driven Activity-Based Costing. A short time equation, such as 2 minutes per order plus 0.4 minutes per line, captures real variety without surveying everyone. The cost driver library lists which driver to use for each activity, from picking to invoicing.
For each resource pool, warehouse, transport, customer service, take its total cost and divide by its practical capacity in minutes (not theoretical, around 80 to 85 percent of paid time). That gives a defensible cost per minute. The capacity you do not use becomes visible here, instead of hiding inside an inflated rate.
For every order, multiply the minutes each activity consumed by that activity's cost per minute, and sum. Roll the orders up to the customer. Now each customer carries the real cost of the way they buy: many small urgent orders cost far more than one planned bulk order of the same value.
Set cost to serve against the revenue and gross margin each customer brings. Rank them best to worst and the pattern appears: a profitable core, a flat middle, and a tail that quietly gives margin back. That ranked picture is the whale curve, and it is where the decisions start.
Take one wholesale customer billing 240,000 euro a year, on goods that cost 168,000, so the gross margin is 72,000 euro, a healthy 30 percent. Now cost the way they actually buy. Their 320 orders, deliveries, support calls and returns consume, across warehouse, transport and service, about 30,000 minutes of capacity in the year. At a fully loaded 0.80 euro per minute, that is roughly 24,000 euro of cost to serve.
Illustrative. Cost to serve quietly eats a third of this customer's gross margin. Give the same revenue to an account that splits it into many small urgent orders with frequent returns, and those 30,000 minutes can double, halving the net margin from 20 percent to 10. It takes about three times those minutes before the account stops paying for itself, and no price has to change for that to happen.
The five steps above, laid out as a working file: activities, time equations, cost per minute, attribution and the final ranking, with the worked example already in place. Open it in Excel or Google Sheets and replace the example with your own numbers.
Download the template (CSV)WHERE A EURO OF REVENUE GOES
Illustrative. Cost of goods is only the first step down. The four costs of serving, usually invisible in a standard P&L, are what separate a profitable customer from a loss-making one of the same size.
Honestly: nobody can tell you yet. We have looked for a public benchmark of cost to serve as a share of revenue, by sector, and it does not exist. Consultancies quote it in private decks, ERP vendors imply it in case studies, and no one publishes the distribution. So we are building it.
The Cost-to-Serve Index is collecting, in defined ranges rather than exact figures, how much of revenue goes to serving customers, which activities drive it, and how confident finance teams are in their own number. Every response sharpens the picture. Once the sample per sector is large enough to be meaningful, the bands will be published here, on this page, with the method open for inspection. Until then, cost to serve by industry sets out what good looks like, sector by sector.
Eight minutes of questions, no data upload. Contributors receive the full report when it is published, with their position against their sector.
Take the Cost-to-Serve IndexTake the customer above and give an identical 240,000 euro of revenue to a second account, on the same goods, so the same 72,000 euro of gross margin. The only thing that changes is how they buy: instead of 320 planned orders, 1,150 small urgent ones, with returns on roughly one delivery in twelve. Their orders consume about 60,000 minutes of warehouse, transport and service capacity instead of 30,000.
The useful number, though, is the one further along. At 0.80 euro a minute, this account absorbs its entire gross margin at 90,000 minutes, because 90,000 × 0.80 = 72,000 euro, exactly the margin it brings. Below that it still pays for itself. Above it, every extra order is served at a loss, and nothing in the revenue report says so. That threshold, not the average, is the number worth putting in front of a sales director, because it is the one they can act on: it turns an argument about which customers are bad into a question about how many minutes an account is allowed to consume before the terms have to change.
Illustrative figures, chosen to show the arithmetic. The break-even in minutes is specific to each resource pool and rate, but the shape holds: a customer stops paying at the point where minutes consumed multiplied by cost per minute reaches gross margin.
A spreadsheet can show you the number once. It cannot show it to you every month, for ten thousand customers, in a way a board will trust.
The method above is honest work, and a capable finance team can build a first version in Excel. The limit is not the maths, it is the maintenance. The moment the model has to be rerun monthly, survive a data refresh, and be explained line by line to people who will act on it, manual spreadsheets break. That is the point where we build a model that updates itself and that your team owns afterwards.
None of these are silly errors, and I have made most of them myself on a first pass. They are the shortcuts a finance team reaches for when the data is not quite there, and each one moves the answer in a predictable direction, which is what makes them worth naming.
If you want a quick test of whether your current numbers are affected: pull the ten accounts with the most orders and the ten with the largest average order, and see whether your reporting shows any cost difference between them at all. If it does not, one of the five above is in play.
Adjust the parameters of one order and watch the cost to serve recalculate, term by term. Figures are illustrative.
A focused diagnostic runs in a few weeks. A full operating model typically lands in six to ten weeks, built alongside your finance team so they own it and can update it afterwards.
Canonical works behind this method. Each opens in a new tab.
The Profit Check estimates where your cost to serve is hiding in 10 minutes, with no data upload.
Proof
A distributor in New Zealand. €1.335M of cost-to-serve made visible, then halved, and 830 loss-making customers brought down to 295.
Read the case study →Who you would be talking to
Miguel Guimarães, Founding Partner
Cost and profitability practitioner for 25+ years. Presented the Damco cost-to-serve case at Managing for Profit (Amsterdam RAI, December 2009), on the same programme as Robert S. Kaplan.
Call +351 910 313 731
Workshops
One working profitability model, built from real data, that you take home at the end.
Reserve a seatDone. There is nothing here to refuse. This site retired advertising on 27 August 2026, and no advertising or tracking tag runs on it for anyone. Your remaining choices, session recording and audience measurement, are under “Cookie settings” at the foot of any page.
We are asking again. Your last answer is more than 12 months old, so it has been cleared. Nothing is switched on until you answer.
This notice has changed. Your previous answer was given to different wording, so it has been cleared and we are asking again. Nothing is switched on until you answer.
Say yes and we learn which pages help. Say no and nothing on this site changes.
Session recording. Microsoft Clarity records how this page is used - mouse movement, clicks and scrolling - so we can improve it. Form fields are always hidden from the recording.
Audience measurement. Google Analytics 4 counts your visit and the path you take through the site, so we can see which pages are useful. It stores two cookies of our own domain, _ga and _ga_L5HNZN655T, holding a randomly generated identifier for your browser - so these statistics are not anonymous. Nothing is loaded until you say yes.