Skip to main content

When Should You Fire a Customer? Run the Numbers Before You Walk Away

Published 11 min readMike ThriftMike Thrift
When Should You Fire a Customer? Run the Numbers Before You Walk Away
On this page

What if your biggest customer is the reason you cannot afford to hire? It sounds backwards, but for many small businesses the account with the largest top-line revenue is also the largest drain on profit. The invoices look impressive. The hours behind them — the revisions, the rush orders, the support calls, the net-60 payments that arrive on day 89 — quietly erase the margin. One classic analysis found a company where the most profitable 1% of accounts generated all of the profit, while a long tail of unprofitable accounts consumed the surplus. Your business is probably less extreme than that. But if you have never measured profit per customer, you are pricing and staffing on a guess.

This guide shows you how to run a customer-profitability analysis with nothing fancier than your invoices, your time records, and a spreadsheet — and then what to do with the answer, from repricing to a graceful goodbye.

Why Revenue Lies and Profit Per Customer Tells the Truth​

Revenue is easy to measure, so it becomes the default scoreboard. The customer who buys the most must be the best customer. The problem is that revenue counts only what comes in. It ignores everything it costs to earn it.

Consider two customers who each pay you $24,000 a year. The first places four large orders, pays within two weeks, and never calls support. The second places forty small orders, each needing a custom quote, returns a fifth of what it buys, pays late enough that you carry the receivable for months, and emails your team weekly with requests that fall outside the contract. Same revenue. Radically different profit. The second account may cost you money every month it stays.

Management accountants call the full burden the cost to serve: everything beyond the product itself that an account consumes. Common components include:

  • Order handling: quoting, order entry, small-order picking and packing
  • Customization and revisions outside the standard scope
  • Support time: calls, tickets, on-site visits, training
  • Logistics extras: rush shipments, split deliveries, special packaging
  • Commercial costs: discounts, rebates, returns, warranty claims, credit notes
  • Financing costs: late payment, extended terms, collections effort

Plot customers from most to least profitable on a cumulative-profit chart — often called a whale curve — and a familiar shape appears: a small group generates more than 100% of your profit, a middle group roughly breaks even, and a tail actually destroys value. The tail is the subject of this article.

How to Run a Customer-Profitability Analysis in Five Steps​

You do not need activity-based costing software to get a useful answer. A quarterly analysis over the trailing twelve months, refreshed once or twice a year, is enough for most small businesses.

Step 1: Start With Net Revenue Per Customer​

Pull total invoiced revenue per customer for the period, then subtract everything that reduced what you actually kept: discounts, rebates, volume incentives, returns, and credit notes. Allocate each adjustment to the customer it belongs to, not to a general ledger bucket.

This step alone surprises owners. A 15% standing discount plus two waived rush fees can turn a headline $50,000 account into $40,000 of real revenue before you have counted a single cost.

Step 2: Attach the Direct Costs​

Next subtract the costs of what the customer bought: materials, subcontractors, direct labor, transaction fees, and delivery. If you sell services, this is the delivered hours valued at loaded cost (wages plus payroll taxes and benefits), not at your billing rate. Using the billing rate here hides the very margin you are trying to measure.

Step 3: Add the Cost to Serve​

This is where unprofitable accounts reveal themselves. For each customer, estimate the service activity they consumed and multiply by a simple unit cost:

  • Orders: count sales orders and quotes. If each order costs roughly $35 in staff time to process, forty small orders cost $1,400 where four large ones cost $140.
  • Support: count tickets, calls, or hours from your helpdesk or inbox. Even a rough per-hour rate works.
  • Custom work: tally out-of-scope revisions, custom reports, and one-off requests at your loaded hourly cost.
  • Logistics extras: total rush-shipping surcharges you absorbed and the cost of split or failed deliveries.
  • Payment behavior: estimate the carrying cost of late payment. A $20,000 balance paid 60 days late at an 8% cost of capital costs you about $260 in financing alone — before the reminder emails and the collections call.
  • Travel and entertainment: allocate trips and meals that served a single account.

Be honest but pragmatic. Time-tracking data beats memory; where you lack data, ask the staff who serve the account to estimate weekly hours per customer for two typical weeks and annualize it.

Step 4: Rank and Plot the Result​

Customer profit equals net revenue minus direct costs minus cost to serve. Compute it per customer, sort from highest to lowest, and add a running total. The running total climbs steeply, flattens, then falls — the fall is the tail paying you to keep serving them.

Segment the list into three groups: clearly profitable accounts to protect and grow, borderline accounts to fix, and loss-makers to reprice or release. Most small businesses find that 10% to 20% of accounts sit in the last group.

Step 5: Decide — Fix, Reprice, or Release​

Never fire an account straight from the spreadsheet. The numbers tell you where to look; judgment decides what to do. A new account still ramping up, a marquee logo that brings referrals, or a customer mid-contract deserves a plan, not a termination letter. For the rest, work through the options in the next two sections.

Seven Warning Signs of an Account That Costs More Than It Pays​

You can often spot the tail before you finish the math. Watch for customers who:

  1. Negotiate the price down, then expand the scope up. The discount was granted on a standard package, but every delivery sprouts custom extras billed at zero.
  2. Order in dribs and drabs. Ten $300 orders cost far more to serve than one $3,000 order, and the customer capturing your volume price on retail quantities knows it.
  3. Pay late as a policy. Chronic 60- and 90-day payment on 30-day terms is an interest-free loan you never agreed to make, plus the chasing time.
  4. Monopolize your experts. If one account consumes a third of your senior technician's week while paying a standard rate, you are reselling senior time at junior prices.
  5. Return, dispute, or reopen constantly. Returns cost double: the reverse logistics plus the rework. A customer with triple your average return rate is running a different business on your margin.
  6. Demand channels you do not offer. Rush everything, custom invoicing formats, dedicated phone lines — each exception is a fixed cost amortized over one account.
  7. Abuse your team. The cost here is turnover. An account that burns out staff carries a recruiting and training bill no invoice captures.

Any one of these can be managed. Three or more in a single account, persisting quarter after quarter, is the profile of a customer to confront with data and a new arrangement.

Before You Fire Anyone: Three Fixes to Try First​

Termination is the last resort. Most borderline accounts become acceptable — and some become excellent — with one of these moves.

1. Reprice to match the service. Convert the hidden extras into explicit line items: quoting fees above a monthly quota, rush surcharges, minimum order sizes, or a higher rate tier that reflects actual support hours. Give 30 to 90 days' written notice with an effective date, explain briefly what changed in your costs, and put new customers on the new price immediately. A surprising number of "unprofitable" customers simply accept the honest price, which tells you the relationship was worth more to them than the discount.

2. Right-size the service. Offer the standard package at the standard price and price the exceptions separately. Replace unlimited email support with a defined response-time tier. Consolidate small orders into scheduled weekly shipments. Move custom reporting to a paid add-on. You are not punishing the customer; you are letting them choose which extras are worth paying for.

3. Tighten the commercial terms. Shorten payment terms, require deposits on custom work, enforce late fees you already have on paper, and put credit limits in writing. For chronically late payers, switching to payment on delivery or automatic card billing can convert a loss-maker to a neutral account overnight.

Set a review date — typically one quarter out — and measure again. Accounts that meet the new terms stay. Accounts that refuse all three fixes have priced themselves out, which makes the final conversation honest rather than adversarial.

How to Raise Prices or Walk Away Without Burning Bridges​

Even a well-handled goodbye costs less than another year of subsidy. The key is professionalism: short, factual, and generous with transition help.

Give written notice and a clear end date. Thirty days is the minimum for ongoing services; sixty is kinder for customers who must find a replacement. State the decision plainly, thank them for the business, and avoid relitigating every grievance. A long list of complaints invites argument; a brief statement of fit does not.

Offer a bridge, not a cliff. Where you can, recommend two or three alternative providers, hand over their data and documentation promptly, and finish work in progress cleanly. For product customers, honor existing orders and warranties. The customers you release today talk to the customers you want tomorrow — a graceful exit is marketing.

Protect yourself in writing. Confirm the termination terms by email or letter: final invoice dates, payment deadlines, return of property, and any surviving obligations such as confidentiality. Update your accounting system the same day so no subscription renews and no shipment goes out after the end date.

Tell your team first. Staff who serve the account should hear the decision from you, with the business reason, before the customer tells them. Nothing damages morale like learning from an angry phone call that a difficult account is now angrier.

Watch the revenue dip without panicking. Releasing the bottom 10% of accounts typically costs 2% to 5% of revenue while recovering far more in capacity and morale. Fill the freed capacity with profitable work — or with nothing, if the team needs to recover — rather than discounting to refill the roster with the same profile.

The Bookkeeping That Makes This Possible​

None of this works without per-customer numbers. If your books record revenue in one pile and costs in another, every customer looks average, which is exactly how the tail hides. Three habits change that:

  • Track revenue by customer, net of adjustments. Record discounts, returns, and credit notes against the originating customer so net revenue is always available. Your invoicing tool already knows this; make sure it flows into the ledger that way.
  • Tag costs to accounts where they belong. Project codes on timesheets, order numbers on shipping surcharges, and customer references on travel expenses turn a month-end guessing exercise into a report you can run. For allocation guidance and chart-of-accounts patterns that keep customer-level reporting clean, the documentation under /docs/ is a good reference.
  • Review receivables aging monthly. An accounts-receivable aging report is an early-warning radar for the payment-behavior costs above. Customers sliding from current to 60-plus days, quarter after quarter, are voting for tighter terms.

Visual learners can take this further: once the per-customer figures exist, charting the whale curve or a simple profit-ranked bar list makes the tail visible to the whole team in a way a spreadsheet never will. Dashboards and balance-sheet views like those in /fava/ turn the quarterly review into a ten-minute conversation.

Keep Your Customer List Profitable​

Firing a customer is never the goal; a customer list where every account earns its place is. Run the profitability analysis, fix what repricing and tighter terms can fix, and release the rest with professionalism — then keep the per-customer books that stop the tail from growing back. Maintaining that level of financial clarity is far easier when every posting is transparent and every report reproducible. Beancount.io offers plain-text accounting that gives you complete transparency and control over your financial data — no black boxes, no vendor lock-in. Get started for free and see why developers and finance professionals are switching to plain-text accounting.

Source: https://beancount.io/blog/2026/10/08/fire-unprofitable-customer-profitability-analysis-guide

Published: October 8, 2026