The customer list sorted by revenue is the one most distributors look at. It shows who buys the most. It does not show who makes you money, because two customers with the same sales can cost very different amounts to serve. One takes a full pallet once a week; the other takes six cases three times a week, calls in every order, and returns something most weeks.
Per-customer profitability puts a number on that difference.
The formula
Customer contribution = net revenue − cost of goods sold − cost to serve
- Net revenue is what the customer was invoiced, less credit memos, customer rebates and any deal discounts not already in the price.
- Cost of goods sold is what the product cost you. Net revenue minus cost of goods is the customer's gross margin.
- Cost to serve is the cost of the work that customer causes: deliveries, picking, order handling, returns, payment processing and sales time.
The first two come straight from your invoices and inventory costs. The third takes some estimating, and it is where most of the insight is.
Step 1: Get net revenue and margin right
Start from invoices for a full period, a quarter or a year, so one unusual week does not distort the picture. Subtract every credit memo issued to the customer in the same period, and any rebates earned. Then subtract the cost of the goods on those invoices, using the same cost method your books use, such as weighted average cost.
Check one thing before moving on: special prices and deals. A customer on a deep fixed price for a high-volume item can show strong revenue and thin margin, and that is often the first surprise.
Step 2: Turn activities into rates
Cost to serve is easiest to estimate with activity rates: take the total cost of an activity and divide it by how many times it happened. The figures below are an example with round numbers. Use your own costs.
- Delivery. If running your trucks (drivers, fuel, maintenance, insurance) costs $500,000 a year and they make 10,000 stops, that is $50 a stop. The route cost calculator helps you build this number.
- Picking. If warehouse labor costs $300,000 a year and you pick 300,000 order lines, that is $1.00 a line.
- Returns and credits. Estimate the staff time to handle a return or credit, say $25 each, plus any product you cannot resell.
- Order handling. An order phoned in and keyed by your staff costs more to take than one the customer places online.
- Payment. Card processing fees on what the customer pays by card, and the carrying cost of balances paid late.
- Sales time. If a rep spends far more time on some accounts than others, allocate their cost by an estimate of time rather than by revenue.
Count each activity per customer for the same period: stops, lines picked, credit memos, phone orders. Multiply by the rates.
A worked example
Two hypothetical customers over one year, using the example rates above:
| Customer A | Customer B | |
|---|---|---|
| Net revenue | $200,000 | $40,000 |
| Gross margin | 15%, $30,000 | 20%, $8,000 |
| Deliveries at $50 a stop | 100 stops, $5,000 | 150 stops, $7,500 |
| Picking at $1.00 a line | 3,000 lines, $3,000 | 2,000 lines, $2,000 |
| Credits at $25 each | 10 credits, $250 | 30 credits, $750 |
| Contribution | $21,750 | −$2,250 |
Customer B has the better margin percentage and still loses money, because it takes more deliveries than Customer A for a fifth of the sales. Nothing about B looks wrong on a revenue report or a margin report. It only shows up when the cost to serve is counted.
Read the result with care
- Rates are averages. A stop on a dense downtown route and a stop forty miles out do not cost the same. If the answer depends on that difference, refine the rate for those customers.
- Not every cost goes away. If you stop serving Customer B, the truck still runs the route and the warehouse still has the same staff. You save the product cost and some of the variable cost, not the full allocated amount. Before you act, ask which costs would actually disappear.
- Some customers are strategic. An account may fill a route that is already running, anchor a new area or bring in other business. Note it, then decide.
- Keep it simple. Rough rates, applied the same way every quarter, are more useful than a precise model nobody updates.
What to do with a customer that loses money
- Review the price. Check whether their prices and deals still reflect what it costs to serve them. A customer whose costs went up while their prices stayed fixed is a common finding.
- Change the service. Fewer delivery days, a minimum order, a delivery fee for small drops, or ordering online instead of by phone. Each one changes the cost to serve without changing the price per case.
- Grow the account. More lines on the same stop costs little extra to deliver. A rep who knows an account is marginal has a reason to sell it more.
- Part ways. If nothing else works, end the relationship politely and give notice. Do this last, and only after checking which costs really go away.
Credits are often a large part of the cost to serve. Credit-memo discipline covers how to tag and review them.
Share it with the sales team
The largest effect often comes from reps seeing the numbers. A rep paid on revenue has every reason to chase volume at any margin. A rep who sees contribution by account, and is paid on margin, starts asking for the order minimum and the better delivery day. Review the list with the team each quarter.
How APFoodz helps
APFoodz shows the customer's price, stock and margin on every line in the order builder, and can pay sales commissions on margin rather than revenue.