Somewhere in your customer list is an account that looks fine on the surface: steady orders, a name you recognize, revenue that shows up every month like clockwork. And somewhere in the details of that same account is a customer who calls constantly, demands rush turnarounds, negotiates a discount every renewal, and pays on the slowest terms you offer.

Most owners can name that customer without pulling a single report. What's harder is answering the real question honestly: is keeping them actually making you money.

Revenue Isn't the Same as Profit, Even Per Customer

We've spent this series making the case that revenue and cash aren't the same thing at the business level. The same logic holds true one level down, at the individual customer level, and it's usually where the extended payment terms and thin margins we've already covered are actually coming from.

A customer generating $200,000 a year in revenue sounds valuable until you account for what it actually costs to serve them: the discount they negotiated, the rush fees you never charged for, the extra support hours, the 90 day payment terms tying up your cash the whole time. Run the real numbers, and some of your biggest accounts by revenue are among your weakest by contribution.

How to Actually Calculate It

Customer contribution margin is simpler than it sounds. Take what a customer pays you over a set period, and subtract everything it costs specifically to serve them: direct labor, materials, support time, shipping, the cost of capital tied up while you wait to get paid. What's left is what that customer actually contributes to covering your overhead and profit.

Do this exercise across your full customer list, even roughly, and a pattern almost always shows up: a small group of customers generating a disproportionate share of your actual profit, and a handful quietly costing you money once you account for what they really consume.

What to Do Once You See the Number

Firing a customer should be the last option on the list, not the first move.

  • Reprice before you release. A customer that's unprofitable at their current rate might be perfectly fine at a rate that reflects what they actually cost to serve. Raise the price, adjust the terms, or remove the free extras that were never priced in to begin with.
  • Change the terms of the relationship. If a customer's payment timeline is the real problem, a deposit requirement, shorter terms, or a small early payment discount can fix the economics without ending the relationship.
  • Set a floor and hold it. Decide what contribution margin a customer needs to hit to stay on the roster, then apply it consistently instead of making exceptions for whoever complains loudest.
  • Let go of the ones that stay negative. After you've tried repricing and adjusting terms, some accounts will still be losing you money every month they stay. Every hour and dollar spent serving them is an hour and dollar not spent on the customers actually funding your business.

The Real Cost of Avoiding This

Owners avoid this analysis because it feels uncomfortable to put a number on a relationship, especially with a long standing customer. But the discomfort of running the numbers is smaller than the cost of not running them. Every dollar of capacity spent on an unprofitable account is capacity your best customers, and your cash position, don't get the benefit of.

You don't need to fire every difficult customer. You need to know, with real numbers instead of a gut feeling, exactly which ones are worth keeping.