All posts

Customer Profitability Analysis for a Service Business

Updated 11 min read

Customer profitability analysis means totalling every job you did for a client over a period, subtracting the real labor, material, and subcontractor cost of those jobs, and ranking clients by the dollars left over. Your biggest customer by revenue is often not your most profitable one, and a small share of accounts usually earns most of your profit. CRMb makes this a report rather than a spreadsheet project: every job carries its real labor cost from punched crew hours and its average-cost materials, and every job is tied to a client, so profit rolls up per customer automatically.

Most owners can name their biggest customer instantly. Almost none can name their most profitable one. Those are different questions, and the gap between them is where a service business quietly bleeds. The account that sends the most invoices is often the one that demands the most revisits, the tightest pricing, and the slowest payment.


Revenue tells you who is loud, profit tells you who is good

Ranking clients by revenue answers "who writes the biggest checks." Ranking by profit answers "who is worth the work." A customer at $180,000 a year on 8% margin contributes $14,400. A customer at $60,000 a year on 34% margin contributes $20,400. The smaller one is the better business, and the revenue list gets it backwards.

The pattern repeats across the trades. The accounts that erode profit share recognizable habits:

  • Constant scope creep. Small unbilled additions on every job, none big enough to fight over.
  • Revisits and callbacks. Work that gets done twice while you bill it once.
  • Price pressure. A client who negotiated hard once and set the ceiling for every job since.
  • Travel and fragmentation. Many small jobs spread across town, each carrying drive time you absorb.
  • Slow payment. Revenue you financed for 75 days, which is a real cost even when margin looks fine.

None of these show up on a revenue report. All of them show up on a profit-per-client report.

What you need before you can measure it

Customer profitability is only as honest as the job costs underneath it. Three inputs have to be real, not estimated:

  1. Labor at actual hours. Not the hours you quoted, the hours the crew was on site. This is the input most often wrong, and it is almost always wrong in the same direction.
  2. Materials at real cost. What the stock actually cost when it was consumed, including the last price increase, not the price from the quote you copied.
  3. Subcontractor and equipment cost. Anything you paid out that belongs to that job.

If those three are accurate at the job level, client profitability is just addition. If they are not, you are ranking your customers by guesswork. Our job costing guide covers getting the job-level numbers right; this article assumes you have them.

How to run the analysis in five steps

1. Pick a window

Use twelve months if you have it. A quarter is enough to spot the extremes but too short for seasonal work, and a snow removal or landscaping client will look very different depending on which quarter you grab.

2. Total revenue per client

Every invoice issued to that client in the window, excluding anything you never collected. Uncollected revenue is not revenue.

3. Total direct cost per client

Add up the labor, material, subcontractor, and equipment cost of every job for that client. Labor should come from actual punched hours at each person's real cost, including labor burden, not a rounded shop rate.

4. Compute profit and margin, and look at both

Gross profit is revenue minus direct cost. Margin is that profit divided by revenue. You need both numbers: margin tells you how efficiently you serve the client, dollars tell you how much they matter. A 60% margin on $4,000 is a nice ratio and an irrelevant contribution.

ClientRevenueDirect costGross profitMargin
Northgate Property Mgmt$180,000$165,600$14,4008%
Hollis Residential$60,000$39,600$20,40034%
Cedar Ridge HOA$44,000$30,800$13,20030%
Vance Builders$22,000$20,900$1,1005%

5. Sort by profit dollars and read the shape

Almost every service business finds the same curve: a handful of clients produce most of the profit, a long middle contributes modestly, and a short tail at the bottom is at or below break-even. The tail is the finding. It is also usually the group consuming the most scheduling attention.

Add the costs that hide outside the job

Direct cost is where to start, but three client-specific costs sit outside the job record and change the ranking:

  • Payment lag. Track days sales outstanding per client. An account at 75 days is financing itself with your cash.
  • Estimating cost you never billed. A client who requests ten quotes and awards two is buying your estimating time for free. Compare quotes sent to jobs won per client.
  • Admin drag. The account that generates a dozen calls and three invoice disputes per job costs real hours that never land on a timesheet.

You do not need to allocate these to the penny. Rank the bottom accounts on each factor and see which names keep appearing.

What to do with an unprofitable client

Finding a money-losing account is not an instruction to drop it. Work the options in order:

  1. Reprice. The most common cause is old pricing. Quote the next job at your real rate and let the client decide. Our guide on raising prices without losing customers covers the conversation.
  2. Change how you serve them. Batch their small jobs into one visit, tighten the scope of work so additions get billed, or require a deposit.
  3. Fix the estimate. If every job for this client runs over, the problem may be your estimating on their type of work, not the client.
  4. Bill the change orders. Unbilled extras are the single most common reason a decent client shows a bad margin.
  5. Let them go last. Release the account only after repricing failed, and only if you have the backlog to replace it. Do it cleanly, finish committed work, and leave the door open.

The goal is not a shorter client list. It is a client list where you know what each name is worth before you say yes to the next job.

Make it a standing number, not a one-time project

A profitability analysis done once is a curiosity. Done quarterly, it changes who you chase. Review the ranking each quarter, watch which clients are moving up or down, and check it before you take on a large commitment for an existing account.

This is only sustainable if the numbers assemble themselves. In CRMb, crew hours punched in Punch land on the job as real labor cost, materials come off inventory at average cost, and every job belongs to a client record, so Reports show margin on actual punched hours rather than estimates. Profit by client becomes something you read, not something you rebuild in a spreadsheet each quarter.

Cost-to-serve measurement for roofing jobs

Cost-to-serve is customer profitability with the hidden costs put back in. The job cost report says what a roof cost to install; cost-to-serve says what the customer cost to keep, which includes everything that happened around the install. For a roofing company the gap between the two numbers is unusually wide, because so much of the work happens before the crew arrives and after it leaves.

Measure it per customer, over a trailing twelve months, in four buckets:

  1. Direct job cost. Labor at the loaded rate from punched hours, shingles and underlayment at landed cost, dumpster and disposal, any subcontracted flashing or gutter work. This is the number the job report already gives you.
  2. Pre-sale cost. The estimator's hours on the roof measuring, the drone or ladder time, the quote revisions, and the sales calls. A customer who took three site visits and two revised quotes before signing cost more to win than one who signed off the first number, and a customer who never signed cost the same visits for nothing. Count the hours your estimator logs against the quote and multiply by their loaded rate.
  3. Callback and warranty cost. Every return trip for a leak, a lifted ridge cap or a missed nail is labor and materials the invoice never covered. Track it against the original job so it lands on the right customer; how to track callback and warranty costs covers the mechanics.
  4. Collection cost. Days between the final invoice and the payment, reminder calls, lien paperwork on a commercial account, and any insurance-claim back and forth on a storm job. A roof paid in 9 days and a roof paid in 74 days have different costs to serve even when the installs were identical.

Add the four buckets, subtract from what the customer paid, and rank. A property manager who sends twelve re-roofs a year at a thin margin but signs off the first quote, never calls back, and pays in ten days often lands above a homeowner who paid full price and then needed three return visits and four reminders. That ranking is the one that should decide who gets your best crew's calendar in storm season and whose next quote carries a higher number.

Keep the measurement light. Three fields on each job, the estimator's hours before the sale, the callback hours after it and the days to payment, are enough to make the shape visible. The point is not a precise cost-to-serve to the dollar; it is knowing which accounts are cheap to keep and which only look that way on the revenue report.

Frequently Asked Questions

How do I calculate customer profitability?

Total the revenue you collected from a client over a period, subtract the direct cost of every job you did for them, labor at actual hours with burden, materials at real cost, plus subcontractors and equipment, and the remainder is that client's gross profit. Divide by revenue to get margin. Review both: margin shows efficiency, dollars show how much the account actually contributes.

Why is my biggest customer not my most profitable?

Large accounts usually negotiate the lowest prices, request the most scope changes, and pay the slowest, all of which compress margin. Volume also hides waste: a client that generates enough work to keep everyone busy rarely gets audited job by job. Ranking by profit dollars instead of revenue is what surfaces it.

What is a good customer profit margin for a service business?

It varies by trade, but most service businesses target 30% to 50% gross margin per job, with overhead and net profit coming out of that. Compare clients against your own average rather than a benchmark: any account meaningfully below your portfolio margin deserves a look, and anything near zero needs repricing or a change in how you serve it.

Should I fire an unprofitable customer?

Only after trying to fix the account. Reprice the next job, tighten the scope, bill the change orders you have been absorbing, and batch small visits. Most unprofitable clients become acceptable ones on corrected pricing. Release an account only when repricing has failed and you have enough backlog to replace the revenue.

How often should I review client profitability?

Quarterly is the right cadence for most service businesses, with a twelve-month trailing window so seasonality does not distort the ranking. Also check an individual client's numbers before committing to a large job or renewing a maintenance agreement with them.

What is cost-to-serve, and how is it different from job profit?

Job profit is the invoice minus the direct cost of doing that job. Cost-to-serve adds what it took to win the job, return to it under warranty and get paid for it, and measures that per customer over a period. A roofing job can show a healthy margin on its own report while its customer, counted across three estimate visits, two callbacks and a 70-day wait for payment, is one of the least profitable accounts in the book.


Getting started with CRMb

Start with your top ten clients by revenue and compute profit for each. If the two lists disagree, and they usually do, you have found the work that pays and the work that only looks like it does.

CRMb keeps the numbers ready: jobs carry real labor cost from punched crew hours, materials cost out at average cost, and every job rolls up to a client, so margin by customer is a report instead of a spreadsheet. It runs on Mac, iPad, and the web. Start your 14-day free trial and find out who your best customers really are.

More from the blog