Customer profitability analysis: who actually makes you money
The account at the top of your revenue list is rarely at the top of your profit list. Build a view that counts discounts, cost to serve and payment delay.
Late December, in the office of an industrial supplies distributor. The sales lead is assembling the top-ten-by-revenue list for the year-end review; the name at the top has not moved in two years, and the team refers to it as the account of the year. That same afternoon, two doors down, the bookkeeper runs the receivables aging report. The longest payment terms, the most chased invoices and the highest number of credit notes belong to the same company. Two reports, one building, a few hours apart, never placed side by side. The following year the account renews on the same discount, the same delivery flexibility and the same payment habits.
Customer profitability analysis is the work of putting those two reports on a single line: what a customer brings in, what it directly costs to deliver, and what it costs to keep the relationship running. What follows covers why revenue cannot stand in for profit, which items belong in the calculation, how to estimate cost to serve without timesheets, where hidden costs accumulate, how to prepare the data, how to group customers by contribution, in what order to act on an unprofitable account, when keeping one is the right call, where a single-year view misleads, and how often the whole exercise should be repeated.
Why revenue cannot stand in for profit
Revenue is an output number: it tells you how much work went through the door, not what the work left behind. Taking the same amount from two customers is not the same outcome. One places twelve orders a year, buys the standard product, pays on terms, and calls you only when ordering. The other splits the same amount across a hundred and forty small shipments, wants custom labeling on every batch, returns something every other month, and pays after the third reminder. The invoice totals match. What remains does not.
Teams miss the difference because revenue collects in one system while cost is split across three. Some of it sits in accounting on invoice lines, some in the warehouse on shipping records, and the largest share sits where nobody records anything at all: in your people's calendars. Profitability analysis is not a new accounting system. It is the habit of pulling those three pieces onto one customer row. The arithmetic is trivial; the assembly is not.
Product-level gross margin is a reasonable starting floor, but on its own it deceives. Margin describes a product, not a relationship. Two customers can buy the same item at the same margin while one never calls and the other consumes half a person's day every week. A margin table cannot separate them. A profitability table can, and it usually rearranges the ranking the team has carried in its head for years.
Which items belong in the calculation
The formula is simple; drawing the boundary around each item is the hard part. From the net revenue a customer generates, subtract the direct costs of serving that customer and the cost of running the relationship. What remains is net customer contribution. Lengthening the list of items does not buy accuracy — it buys argument. The set below is both calculable and sharp enough to change a decision in most small and midsize companies.
- Net revenue: Not list price, but what actually remains after discounts, volume rebates, returns and credit notes. A surprising share of profitability disputes trace back to never having looked at this line.
- Cost of goods or services sold: The direct cost of delivery — hours the delivering person spent on that account in services work, materials and direct labor in trade and manufacturing.
- Customer-specific logistics: Shipment count, rush deliveries, partial drops, installation and return freight. Each one is small; collected on a single line at month end, they stop being small.
- Pre-sale effort: Quote revisions, demos, site surveys, security and compliance questionnaires. On a won account this effort is direct cost, and it is almost never recorded anywhere.
- Post-sale service: Support tickets, repeated training, field visits, custom reports and complaint handling. This is the most underestimated line and the one that most often decides the ranking.
- Financing effect: Cash tied up over the payment term plus the drag created by late collection. A customer who stretches your cash cycle can look profitable on paper while quietly turning you into their lender.
- Standing exceptions: Dedicated stock, custom packaging, a bespoke integration, drawn-out contract negotiation and audit requests. None of it appears in the agreement, and all of it repeats every month.
Some of these are tracked directly; others need an allocation driver. The fundamentals of cost accounting help you build that driver — but there is one goal not worth chasing: full absorption. Teams that try to distribute the last unit of overhead across customers spend months on a model, and when it finally arrives nobody believes it. Accuracy sufficient to change a decision is far cheaper than perfect accuracy, and it arrives while the decision still matters.
How to measure cost to serve
Cost to serve — the value of the time spent working with a customer — explains more of the profitability spread than anything else in most companies, and it is almost never measured. The way to measure it is not to count hours one by one but to pick cost drivers: how many orders, how many shipments, how many support tickets, how many visits, how many quote revisions. Each driver carries an average time cost, and that average estimates total load per customer surprisingly well. We walk through the setup step by step in cost to serve per customer.
One rule is enough when choosing drivers: a driver must be a number that rises as time is spent and that already accumulates in your systems without anyone typing it. Order count is a good driver because the record creates itself. Hours spent with a customer is a bad driver because nobody enters them. Handing the team a new form for the sake of measurement produces thin data in three weeks and an analysis that loses credibility before it starts.
What if your team keeps no time records?
A one-month sample will do. Ask support and sales for four weeks of nothing more than a customer name and a rough time band, convert that sample into an average per driver, and apply it across the year. The sample is an estimate, but it is a good enough estimate to change the ranking — and the ranking, not the decimal, is the point. If calls, emails and tasks are logged properly in the CRM, you can skip the sample entirely; the counter has been running all along.
Where hidden costs accumulate
The table below compares two customers at the same revenue index. The figures are illustrative rather than measured, but the pattern shows up again and again in real portfolios. Both accounts land on the same sales number at year end, both buy from the same product group, and both are considered happy customers by the team.
| Line | Customer A | Customer B |
|---|---|---|
| Annual revenue (index) | 100 | 100 |
| Net revenue after discounts and returns | 94 | 81 |
| Cost of goods sold | 62 | 62 |
| Orders and shipments | 12 | 140 |
| Support and field hours | 40 | 260 |
| Net contribution (index) | 24 | 3 |
The gap comes from touch count, not from discount. In profitability meetings the first item blamed is almost always the discount granted; yet in most portfolios what erodes net contribution is not the customer's price but the customer's way of working. A hundred and forty separate shipments, forty quote revisions and two hundred and sixty support hours appear in no contract and on no report line, and by year end they have quietly absorbed most of the margin.
This does not make discounting harmless. It makes the point that discount is both visible and governable, while behavioral cost is neither. To bring discipline to the price side, a structured customer price list and discount matrix does the work; to make the drag of long terms and late payment visible, the practices in collections and late payment follow-up apply. Build the profitability table on top of both and the conversation moves off instinct.
How to prepare the data
The slow part of this analysis is not the math — it is the matching. The same customer sits in the CRM under one name, on the invoice under a different legal title, and in shipping records under a third abbreviation; group companies appear separately and none of them means anything alone. The first job is to decide which record is the single source of customer identity and to tie every system to it. Skip that step and every number in the table becomes contestable, and the meeting turns into a debate about whether to trust the data.
The second preparation step is definition. When is revenue counted — at order, at invoice, at collection? Which month absorbs a return? Is a setup fee one-off revenue or spread across the year? Without shared answers, two teams will produce two different profitability figures for the same customer. How to write and store those shared definitions is covered in the metric dictionary, and profitability analysis is where such a dictionary earns its keep.
How to group customers by contribution
A simple two-axis split beats a ranked list: revenue on one axis, net contribution on the other. Four boxes appear. High revenue and high contribution are the engines — protect and deepen. Low revenue and high contribution are the quiet earners, the group that gets the least attention in most companies and holds the most growth headroom. High revenue and low contribution is where the actual work sits. Low revenue and low contribution are small burdens whose service model, not price, needs to change.
An invoice tells you what a customer pays you; only your team's calendar tells you what that customer costs.
Four boxes do not turn into action by themselves; each needs its own question. For quiet earners the question is growth. For resource eaters it is how the working relationship is structured. For small burdens it is whether service can be standardized or moved to a lighter channel. If you have no habit of grouping customers by behavior at all, the logic in RFM analysis and segmentation is a good place to start; adding a profitability axis to it is straightforward.
In what order to act on an unprofitable account
The first instinct is usually to raise the price or end the relationship. Both are the most expensive options available, and both belong at the end of the list. The sequence runs: change the behavior that creates the cost, then clarify scope, then talk about price, then change the service channel, and only then discuss parting ways. Most unprofitable accounts turn profitable in the first two steps, and the customer does not experience it as a loss.
Behavior change has to be concrete: a minimum order size, one consolidated shipping day per week, support requests through a single channel, recurring training recorded once instead of delivered five times. Scope clarification means writing down what was never written down; without a line between included and chargeable, every exception hardens into an expectation. Hold that conversation at renewal rather than mid-year — it is both easier to raise and more credible.
When to keep an unprofitable customer on purpose
The standard advice is blunt: fire the unprofitable customer. It is wrong in at least three situations. First, when capacity is idle — an account with a low but positive contribution partly covers the fixed cost of a team that is already standing there, and dropping it lowers profit rather than raising it. Second, when the account carries reference value; some names open doors, and that value appears on no line of the profitability table. Third, when the relationship is young, since a negative first year is the expected shape in many business models.
There is a limit to this argument. If unprofitable accounts make up the bulk of the portfolio, it is no longer a strategic choice — it is a pricing problem, and it will not be solved one customer conversation at a time. Equally, if a single large account that looks profitable is holding up everything else, the table is more optimistic than reality: its departure would leave the remainder unprofitable. How to measure that dependency and where the alarm threshold sits is covered in customer concentration risk.
Where a single year misleads
An annual slice is a photograph; a relationship is a film. Accounts with a heavy onboarding year and almost no cost afterwards look bad in a single-year table, while accounts with a light first year and a fourth year full of support tickets look good. To read the table correctly, profitability has to be considered alongside relationship age — otherwise you cut the customer still in its investment phase and reward the mature, expensive one.
Two metrics complete the picture. To project what a relationship returns in total, calculate customer lifetime value; to see what winning it cost, calculate customer acquisition cost. The profitability table is the bridge between them, showing what the relationship actually leaves behind once acquisition has been paid back. Read separately, all three mislead. Read together, they are hard to argue with.
How often, and with whom
Profitability analysis is a routine, not a project. Once a quarter, one person from sales and one from bookkeeping open the same table at the same desk. Do it annually and the findings are stale before anyone acts; do it monthly and noise rises, ordinary fluctuation gets read as trend, and the team stops trusting the numbers. A quarterly rhythm stays fresh enough and remains manageable for most teams.
How you present it decides what happens next. Open the table as a list of offenders and the sales team defends itself, spending the hour disputing the data. Open the same table as a conversation about how the work is structured and the team starts fixing accounts rather than defending them. A practical rule: walk in with three specific behaviors that could change on those accounts, not with a list of unprofitable names.
What makes this analysis useless
The most common failure is perfectionism: every unit of overhead gets allocated, the model takes six months, and by the time it lands nobody trusts it. The second is the opposite — looking only at gross margin, ignoring cost to serve entirely, and producing an analysis that restates the revenue ranking under a new heading. The third is wiring the output directly into rep commission; do that and the team stops looking for profitable customers and starts looking for ways to make the table look profitable. The fourth is running it once and filing it.
The fastest way to begin is to stay small. Take the twenty customers who generate most of the revenue, take a single quarter, settle for five cost drivers, and produce the table in a day. It will most likely rearrange about a third of the ranking, and that rearrangement is the whole value — not the decimals underneath it. Widen the scope in the quarters that follow.
The hard part of a profitability table is never the arithmetic; it is that revenue, cost and customer touches live in separate places. When the customer record, quote and order history, support conversations and bookkeeping all sit together, customer-level profitability stops being a data-collection project. Rocketly keeps them on the same record — open a free account and run the numbers on your own portfolio.