RevOpsXL
GTM Diagnostic Request the audit

Customer profitability analysis: which clients actually make you money

Alexandra-Emily Kokova

Alexandra-Emily Kokova

Published 20 November 2025 - 7 min read

Rank your clients by revenue and then by profit, and the two lists come out in a different order. The difference sits in costs the CRM doesn’t record.

In short

Customer profitability is the revenue a client brings in, minus what it costs to win and serve them, over a set period. Revenue sits in the CRM. Cost to serve is spread across time tracking, the help desk, discounts and payment terms. Bring both onto the company record, allocate shared costs by what drives them instead of by revenue, and plot clients on a revenue against cost-to-serve matrix.

On this page

Sort your clients by revenue and the top of the list is the one everybody talks about in pipeline meetings. Sort them by profit and the order changes, sometimes enough that the second-biggest client turns out to lose money. The CRM shows the first list because deals record revenue. Almost nothing in it records what each client costs to keep.

What customer profitability analysis is

Customer profitability analysis works out, client by client, the revenue each one brought in over a period, minus the cost of winning and serving them. The result is a profit and a margin per client. Finance teams sometimes call it a customer P&L or client P&L, and services firms call it client profitability.

It looks backwards at what happened. Customer lifetime value is the forward-looking cousin, and it needs this number first, because a lifetime of a loss-making client is still a loss.

What goes into cost to serve

Revenue is the easy half. Cost to serve is everything spent on a client beyond the product or service itself, and it is scattered across tools that were never set up to report by client.

CostWhere it livesHow to get it per client
Discounts and free monthsDeals and quotes in the CRMNet revenue per closed deal, so the discount is already out
Delivery or service hoursTime tracking or timesheetsHours by client per month, times a loaded hourly cost
Support loadThe help deskTickets by company, times an average handling cost
Account managementMeetings, calls and emails logged in the CRMActivity count or hours by company
Custom work and exceptionsChange requests, scope notes, SlackHours spent outside the agreed scope
Late paymentAccountingAverage days to pay, and what that money costs while it’s outstanding
Winning the clientSales and marketing spendSpread over the first year or the expected life of the client

Not every business needs every row. A software company with self-serve onboarding can skip delivery hours. A services firm can’t, because hours are most of its cost.

A worked example (made up)

Three clients of an invented services firm, over one year. Revenue is net of discounts. Delivery is hours times a loaded hourly cost, support is tickets times an average handling cost, and account management is logged time.

ClientRevenueDeliverySupportAccount mgmtProfitMargin
A€120k€72k€9k€10k€29k24%
B€60k€30k€2k€3k€25k42%
C€95k€70k€14k€12k−€1k−1%

By revenue the order is A, C, B. By profit it is B, A, C. Client C brings in €95k and costs €96k, mostly because delivery runs close to the fee and support is the heaviest of the three. Nothing about C looks wrong in a revenue report. It pays on time and it renewed last spring.

Client B is half the size of A and earns almost as much profit. Its delivery runs at half the fee and its support bill is the smallest of the three.

Allocating shared costs

Some costs belong to no single client: the office, the finance team, the software everyone uses. The easy way to spread them is by share of revenue. It also flattens the answer. If every client carries overhead in proportion to what it pays, overhead lowers every margin by the same percentage points and the ranking barely moves.

Allocate by whatever drives the cost instead. Support tooling follows tickets, project management overhead follows hours, finance time follows invoices and late payments. It takes longer to set up, and it is the version that shows which clients use more of the shared resources than they pay for.

The customer profitability matrix

Plot each client on two axes, revenue and cost to serve, and four groups appear. Each group gets its own decision.

Low cost to serveHigh cost to serve
High revenueThe clients to protect. Find out what makes them easy and look for more like them.Reprice or rescope at renewal. The revenue is real and the work behind it has grown.
Low revenueFine as they are. A standard package keeps them cheap to serve.Move to a standard package, change the terms, or let the contract end.

The usual cause is scope that grew one favour at a time while the price stayed where it started. That makes it a pricing conversation at renewal, with the numbers on the table.

Putting it on the company record

The analysis gets used when the numbers sit where account managers already look, which is the company record in the CRM. Four properties cover most of it: revenue over the last twelve months, rolled up from closed-won deals; hours logged, imported monthly from time tracking; ticket count, from the help desk association; and a calculated margin.

Monthly updates are enough. Live syncs from timesheets break easily, and a margin that changes daily invites arguments about the decimal places. Before any of it goes on the record, check that companies match across the CRM, the help desk and the time tracker, because a client split across two company records will show up as two half-sized clients with half the costs each.

What the number leaves out

Hours are the weakest input. People under-log time on the clients they like and on work that feels like a favour, so the friendliest accounts look cheaper to serve than they are.

The margin also misses what a client is worth beyond its invoices: a logo that wins other deals, a referral, a case study, a product idea. Those can justify keeping a thin-margin client. Write that reason next to the margin on the company record, so it can be checked at the next renewal.

Run it once a quarter, starting with the clients whose contracts renew next.

Alexandra-Emily Kokova

Hands-on practitioner, ecosystem architect and GTM strategist, in and around HubSpot since 2014, building the systems B2B revenue runs on across the EU, UK, Nordics, the Gulf and North America.

Published 20 November 2025

Contact me on LinkedIn

Common questions

A profit and margin for each client over a set period, usually a year. It compares what the client paid with what it cost to win and serve them. Finance teams call the same thing a customer P&L.

Take a client’s net revenue for the period and subtract delivery costs, support, account management, custom work and their share of acquisition and overhead. Divide the result by revenue to get the margin.

Everything spent on a client beyond the product or service itself: support tickets, account management time, out-of-scope work, discounts and the cost of late payment. It’s spread across the help desk, time tracking and accounting.

A two-by-two grid of revenue against cost to serve. High revenue and low cost are the clients to protect, high revenue and high cost need repricing or rescoping, and low revenue with high cost need a standard package or new terms.

Customer profitability measures what a client earned you over a past period. Lifetime value projects what a client will earn over the whole relationship, and it depends on getting the profitability figure right first.

Get the next field note by email

New field notes twice a month. One short email when one goes up, nothing else.