Your largest customer generates $4M/year at 35% gross margin. The commercial team defends them as "our strategic customer." Three years later you do the exercise: you allocate the real cost of serving them — 25 delivery points, 90-day terms, 8% returns, dedicated account team, per-order customization. Real contribution drops to 6%. The largest customer is one of the least profitable. And the commercial team keeps defending them because they keep looking at gross margin.
This happens because gross margin doesn't include cost-to-serve — non-COGS costs the customer consumes through their behavior. Logistics, service, returns, credit financing, customization, setup. Those costs are hidden in overhead, allocated uniformly across all customers. When you allocate by real BEHAVIOR (not uniformity), the profitability ranking inverts for 20-30% of customers.
In this module you learn to build a simple but defendable cost-to-serve model. How to identify the components that matter, how to allocate by behavior (order frequency, complexity, terms), and how to use the output for three specific decisions: differential pricing, commercial-condition renegotiation, and disciplined exit from value-destroying relationships.
Let's go.
Customer A: $2M revenue/year, 35% gross margin, 4 deliveries/month, pays day 30, 0% returns. Customer B: $2M revenue/year, 24% gross margin, 30 deliveries/month, pays day 90, 9% returns. Which is more profitable?
In plain language
Before the mechanics, the four basic questions.
Why do this at all?
Because gross margin systematically misleads in companies with heterogeneous customer behavior. A customer with 35% gross margin can have 6% real contribution due to their service profile. A customer with 22% gross margin can have 22% real contribution because they're cheap to serve. Without cost-to-serve, decisions on pricing, customer mix, and commercial investment are made on data that confuses "premium" customers with "premium-but-costly" customers. CTS reveals real per-customer economics and enables surgery: renegotiate conditions, adjust differential pricing, withdraw effort when the cell can't be fixed.
Who builds it and who uses it?
Senior FP&A builds the model, ideally with operations support (who knows logistics and service costs) and commercial (who knows customer behavior). Output is used by three roles: (1) Commercial director — to renegotiate conditions of customers with high CTS. (2) CFO — to validate that differential pricing reflects real cost-to-serve. (3) CEO — for exit or portfolio re-segmentation decisions when renegotiation fails. Without the commercial director at the table, the model becomes analysis without action.
When does it show up?
In annual review of large accounts, where you decide next year's conditions. In proposals for large new customers — the model tells you if the proposed "premium" customer really is one after serving them. In M&A due diligence — buyer always reviews cost-to-serve by customer cohort to understand revenue quality. And critically: in the RENEWAL conversation of existing customer contracts — where cost-to-serve gives you the argument to renegotiate terms without seeming arbitrary.
What if we never model it?
Three predictable patterns: (1) You subsidize customers that destroy value. The "customer-centric" company that defends difficult relationships eventually discovers those customers never paid the real cost of serving them — and the subsidy comes from strategic customers' margin. (2) Single pricing for heterogeneous portfolio. Easy-to-serve customer pays the same price as costly-to-serve customer. The easy customer eventually asks for a discount (because others offer it), the costly one stays. (3) Late discontinuation. When someone finally builds the model, you discover you were losing money 5 years on specific customers. The correction is painful because the relationship is already invested in.
Andina S.A. — the largest customer wasn't the best
Andina has 200 active customers. The largest generates $4M/year revenue, 35% reported gross margin. Commercial treats them as key account. CFO commissions a simple cost-to-serve model — 5 components, 4 customer segments, 1 quarter of FP&A effort.
The model allocates five buckets by real customer behavior: logistics (based on delivery points and frequency), service (based on account team hours), returns (based on actual %), terms cost (financing of credit on long terms), customization (based on non-standard orders).
Result for the largest customer: aggregated cost-to-serve of 29 points over revenue. Real contribution: 35% gross − 29% CTS = 6% real. Over $4M = $240K of contribution. Compare to a "standard premium" segment customer generating $1.5M at 28% gross, 4% CTS, 24% real contribution = $360K. The "largest" customer generated $120K LESS contribution than the "smaller" one.
CFO presents to CEO. Decision: renegotiate the large customer contract. Three levers: (a) minimum order frequency $50K (vs current micro-orders), (b) terms to 45 days (vs 75), (c) separate billing for customization ($15K per custom order). Customer accepts two of three after 3 months of negotiation. Cost-to-serve drops to 18%. Contribution rises from 6% to 17%. Over $4M = $680K contribution (vs $240K before). Same customer, same relationship, +$440K of EBITDA from one well-prepared conversation.
In parallel, Andina identified 12 customers with cost-to-serve >25% where renegotiation did NOT work. Disciplined decision: 6 are kept with new higher tariff, 6 are let go gradually. Following year, total EBITDA +3.2pp. Without changing products, without changing market. Just understanding the real cost of serving and acting accordingly.
The visual below lets you explore 4 customer archetypes — from strategic (low CTS) to value-destroyer (prohibitive CTS).
Cost-to-serve waterfall, live
4-archetype picker. For each, the waterfall: revenue → COGS → gross margin → five cost-to-serve components → real contribution. Plus the visible delta — how much of gross margin evaporates along the way.
The critical experiment: alternate between Strategic and Value-destroying. Same price, approximately same COGS, real contribution that goes from +30% to −6%. The difference is NOT in product economics — it's in customer behavior. And look at the typical-behavior panel for each archetype: the value-destroying customer isn't "bad," it's one with 40 micro-deliveries, 90-day terms, 12% returns. Behavior, not character.
Interactive visual
Cost-to-serve · how customer behavior eats your margin
Gross margin lies. What matters is real contribution after serving the customer: deliveries, returns, customization, payment terms, service. Same price, same COGS, contribution of 22% or 8% depending on behavior.
Cost-to-serve components
- Logistics & delivery5.5 pp
- Service & support6.0 pp
- Returns & credits4.0 pp
- Payment terms cost4.5 pp
- Customization & setup4.0 pp
Typical behavior
"Premium" but demanding customer: 25 delivery points, pays on day 75, requests custom packaging per order, returns 8% due to logistics errors, calls account team 3 times per week.
CFO action
RENEGOTIATE. Raise price 4-6%, reduce delivery frequency, charge for customization separately, shorten payment terms. If rejected, reduce commercial effort.
What you are seeing
Four lessons: (1) Same price, same COGS, very different contribution. The gap between 22% and 8% is NOT in pricing — it's in how the customer consumes your non-COGS resources. (2) Gross margin is misleading because cost-to-serve is hidden in overhead. It only appears when you allocate it by customer behavior. (3) The action is not to discontinue the "marginal" customer — it's to renegotiate the conditions that generate cost-to-serve. Raise minimum order frequency, charge for customization separately, shorten terms. (4) If the customer rejects renegotiation, discipline says exit. Keeping a value-destroying customer is subsidizing them with margin from your strategic customers.
The critical reading of the visual: hidden margin (the gap between gross margin and real contribution) varies between 5pp for the strategic customer and 35-40pp for the value-destroyer. That hidden margin does NOT appear in any standard report — it's dissolved in overhead. Cost-to-serve is the lens that extracts it.
Second reading: the action is NOT "discontinue the costly customer." It's renegotiate the conditions that generate the cost. Minimum order frequency, payment terms, customization billed separately, returns penalized. When you renegotiate well, you convert a Marginal customer (8% contribution) into a Growth one (15-20% contribution) without changing revenue. That's the most profitable improvement you can make in operating finance.
And critical: if the customer REJECTS renegotiation, discipline says exit gradually — because every additional dollar sold to that customer comes from the margin of your strategic customers. Keeping them "because of brand" is silently subsidizing them. Cost-to-serve makes the subsidy explicit and forces the committee to decide consciously: do we want to keep subsidizing, or not?
The mechanics: how to build a simple cost-to-serve model
- Start with 5 components, not 15. Logistics, service, returns, payment-terms cost, customization/setup. Those five capture 80%+ of real cost-to-serve. Models with 15 components are academically impeccable and operationally useless — the team can't maintain them.
- Allocate by BEHAVIOR, not by revenue. Logistics by delivery points × frequency, not by % of customer revenue. Service by account team hours, not by customer size. That's the key difference: allocating by uniformity hides the problem; allocating by behavior reveals it.
- Model at customer SEGMENT level, not individual customer. 4 archetypes × 5 components = 20 manageable data points. 200 customers × 5 components = 1,000 points impossible to maintain quarterly. Fine granularity is the enemy here.
- Use the model for 3 specific decisions: differential pricing, condition renegotiation, disciplined exit. Not for "general reporting" — general reporting doesn't generate action. The right question before building the model is "what decision will I take with this output?".
- Payment-terms cost is real and almost always forgotten. Customer paying on day 90 finances their working capital with your balance sheet. At 8% cost of capital, 60 extra days of terms = 1.3pp of hidden cost. Include it in CTS or you subsidize terms unknowingly.
- Refresh annually, not quarterly. Cost-to-serve is structural; it changes with big shifts in customer profile or operations, not with quarterly fluctuation. Quarterly is over-engineering that the team abandons after 6 months.
- Output goes to commercial director FIRST, not the board. Commercial needs ammunition to renegotiate before the board has to make exit decisions. The right sequence: model → renegotiation conversations → results → exit decisions only where renegotiation failed.
- Cost-to-serve (CTS). Non-COGS costs attributable to serving the customer: logistics, service, returns, terms financing, customization. Without CTS, gross margin lies.
- Real contribution. Gross margin minus cost-to-serve. The metric that matters for pricing and customer-mix decisions, NOT gross margin.
- Hidden margin. The gap between gross margin and real contribution. In Marginal/Loss customers it can be 30-40pp hidden. Without CTS, that hidden margin is buried in overhead and nobody sees it.
- Cost driver. The customer behavior that generates cost. For logistics: delivery points × frequency. For service: hours dedicated. For returns: % of revenue returned. Each CTS component needs its driver.
- Differential pricing. Pricing structure that reflects real cost-to-serve. Customer with high CTS pays more (or has lower product gross margin) than customer with low CTS. Without CTS, single pricing subsidizes.
- Disciplined exit. Decision to withdraw commercial effort from value-destroying customers when renegotiation failed. NOT "discontinue the customer" abruptly — it's gradually withdrawing investment and letting the relationship migrate.
- Practical rule: in mid-market with heterogeneous customers, the cost-to-serve model reveals 15-25% of the base destroying value. Improving 5-10 accounts = +2-4pp of EBITDA in 12 months, without changing products or markets.
Adversarial check
Adversarial check
1.Your commercial director defends Customer X: "$3M revenue, 30% gross margin, important brand, must protect." What do you ask BEFORE approving more resources?
2.Your CTS model reveals 15 customers with real contribution <5%. Commercial says "we can't lose customers, they're our installed base." What is the right answer?
3.Why build a cost-to-serve model with 5 components refreshed annually, instead of one with 15 components refreshed quarterly?
Exit checklist
Suggested re-review: annual with commercial portfolio planning and before each large contract renewal. Cost-to-serve also belongs in M&A due diligence — the buyer always reviews revenue quality, not just aggregate.
Optional
Go deeper
Sources and books to dig into the original material