Most leadership teams can tell you their gross margin to one decimal place. Very few can tell you their margin by customer.
That gap is where a quiet subsidy lives, running from your best customers to your worst ones, year after year.
It happens simply enough. Your pricing assumes an average customer. No customer is average. Some order predictably, pay on time, accept standard terms, and barely touch your service team. Others order erratically, negotiate every renewal, want custom work, stretch payment terms, and soak up hours of senior attention. Both often pay close to the same price.
The first group funds the second. Not loosely, as a figure of speech. Real money, moving in a direction your reporting was never built to show you.
Nobody designs this. It accumulates. A discount given to win a deal five years ago that nobody revisited. Free freight granted in a soft quarter that quietly became the arrangement. A service level that grew to match the loudest customer. Each decision was small and defensible at the time. Together they add up to a pricing structure that rewards being difficult.
Why the P&L doesn't see it
The P&L aggregates. Revenue at the top, costs underneath, margin at the bottom. Every number is a blend, and blends are where subsidies hide. A business can hold a respectable blended margin while a third of its customers lose money on every transaction, as long as another third is profitable enough to cover for them.
Cost accounting makes it worse. Service, freight, credit, rework and management attention usually sit in overhead, spread evenly or not allocated at all. The customer who calls your operations lead every week costs the same on paper as the one who never calls. On paper. The hours still went somewhere, and they came out of the margin of the accounts that never needed them.
Find out who's really funding who
Customer level margin is not a systems project. It's a spreadsheet, an afternoon, and some honesty about where the hours go. Here is exactly how to run it.
Start by pulling your top fifty customers by revenue out of Xero or your ERP. Fifty covers most of the truth in almost any business, and keeping the list short is what makes this an afternoon instead of a project.
Then build four columns against each name. One, what they actually pay, net of every discount, rebate and credit, because list price is fiction for a decent chunk of most customer books. Two, what they cost to serve: freight, returns, custom work and support time. Three, how they pay, as average days to pay, because a customer sitting on sixty days is borrowing your working capital for free. Four, their revenue, so you can see size against profit, because the biggest names are often the worst rows.
The cost to serve column is where people get stuck, because the data doesn't exist. It doesn't need to. Ask the people who actually deal with the customers to score each account out of five for how much of their time it takes, then put rough dollars against the scores. Estimates are fine. The pattern survives rough numbers, and the pattern is what you're after.
If you want one more column, add order pattern: how many orders a year and the average size. Two accounts with the same revenue are different businesses when one places four big orders a year and the other places forty small ones your team has to pick, pack and invoice separately.
Sort the list by profit and look at the shape. It's almost always the same. A small group at the top makes more than all of the profit. A middle group washes its face. The bottom group loses money on every order, and it nearly always includes at least one name the leadership team considers strategic.
Strategic is the most expensive word in commercial management. It's the label a loss making account earns once it has been unprofitable for long enough that nobody wants to own the conversation.
There's a clean test for whether an account actually deserves the label. Would you sign this customer today, at this price, on these terms, knowing what you now know? If the answer is no, the account isn't strategic. It's historic.
Reprice, don't fire
The first instinct on seeing the bottom group is to fire them. It's usually the wrong move. Most unprofitable customers aren't bad customers. They're mispriced customers, paying a rate that was set for someone who behaves nothing like them.
The fix is to price the behaviour, not just the volume, and to do it through the normal renewal cycle rather than a big announcement. Payment terms priced openly. Service levels priced openly. Custom work quoted, not absorbed. Delivery frequency priced at what it costs. Some customers will change how they behave, which fixes the margin. Some will accept the new price, which also fixes the margin. A few will walk, and the profit line will improve when they do. Expect revenue to dip and profit to rise in the same quarter, and hold your nerve while it happens.
None of it needs to be adversarial. The conversation is straightforward: here is what the account looks like on its current terms, here is the standard we price against, here are the options. Most customers know exactly which group they sit in, and plenty have quietly been expecting the conversation for years.
The middle group can mostly be left alone. The work is at the two ends: protect the top, reprice the bottom. The customers funding the subsidy never asked to. They're your most profitable relationships, they're overpaying relative to how easy they are to serve, and they're exactly the accounts a sharper competitor will go after first.
So here is the thing to do this week. Pull your top fifty customers, build the four columns, get your team to score the service load out of five, and sort by profit. One spreadsheet, one afternoon, before your next pricing review. You'll know who is funding whom by dinner.




