Firing a Client Without Losing the Team: An Agency Playbook
Some clients cost more than they pay. Here's how to end the engagement cleanly, protect your engineers, and keep the pipeline healthy on the way out.

Every agency has one. The client who pays on time but burns three engineers a quarter. The one whose Slack messages your team screenshots to each other at 11pm. At some point the math stops working, and the only honest move is to end the engagement — without torching your reputation, your margin, or the people who have to execute the handover.
This is the playbook we use. It assumes you actually want to keep your team more than you want next month's invoice.
Know what you're actually firing
Before you draft any email, be precise about what's broken. "The client is difficult" is not a reason — it's a feeling. Difficult clients can be extremely profitable. What you're firing is a specific pattern that your P&L and your retention numbers can see.
In our experience, the patterns that justify ending an engagement cluster into four buckets:
- Scope abuse: every ticket is "a small tweak," change requests outnumber planned work, and the statement of work is treated as a suggestion.
- Respect decay: public blame in shared channels, weekend demands framed as emergencies, personal attacks on individual engineers.
- Payment drift: invoices paid 45, then 60, then 75 days late, with a story each time.
- Strategic drift: the work no longer matches what you want to be known for, or the tech stack is pulling your team away from where you're investing.
Write down which bucket (or buckets) applies, with three concrete examples each. If you can't fill in the examples, you don't have a case yet — you have frustration. Those are different problems.
The quiet fifth reason
Sometimes the client is fine and your team is the problem — a lead developer who's bored, a PM who's over-promised, a pricing structure you set 18 months ago that no longer reflects the work. Rule that out first. Firing a client to avoid an internal conversation is expensive therapy.
Run the numbers before the emotion
Pull a simple table for the last two quarters. You want:
- Realised hourly rate (revenue ÷ actual hours, not quoted hours)
- Gross margin after loaded cost of the team on the account
- Number of engineers who have rotated off the account and why
- NPS or a proxy — ask the team on a 1–10 scale how they feel about the work
Client Realised $/hr Margin Engineer rotations (6mo) Team score
Acme Corp $142 41% 3 (2 cited client) 4/10
Northwind $168 54% 0 8/10
Contoso $95 12% 4 (3 cited client) 3/10
If a client is in the bottom quartile on three of four metrics, you already have your answer. The emotional part is just catching up to the spreadsheet.
One thing we've learned the hard way: the client who looks most profitable on the invoice total is often not the most profitable on the margin line. Big logos are expensive to serve. Audit the realised rate, not the headline.
Decide: fix, re-price, or exit
Firing is the last option, not the first. Before you break the engagement, run through this in order:
- Fix the scope. Call a reset meeting. Put the current list of in-flight asks on a wall and ask the client to rank. Anything below the line goes to a new SOW or gets dropped. This alone resolves maybe a third of the cases we see.
- Re-price. If the account is dragging margin, raise the rate at the next renewal and mean it. Frame it around what's changed on your side — seniority mix, on-call expectations, compliance work. A real rate increase is 15–25%, not 3%.
- Change the interface. Sometimes the problem isn't the client, it's one stakeholder. Ask for a different point of contact, or insert your own senior PM as a buffer. Charge for that PM.
- Exit. Only if the first three fail or if the respect-decay bucket is involved. Respect issues don't get fixed with a new SOW.
If you skip steps 1–3, you lose the right to tell your team "we tried everything." They need to believe that, because they're the ones who'll absorb the transition.
Tell the team before you tell the client
This is where most agencies get it wrong. They draft the client email first, loop in leadership, and the engineers find out when the Jira project gets archived. Do the opposite.
Bring the two or three people closest to the account into a room — physical or virtual — before any decision is final. Share the numbers. Share the pattern. Ask them two questions:
- Is there anything we're missing that would change this?
- What do you need from us during the wind-down?
You're not asking permission. You're giving them agency over something that affects their daily work. The engineer who's been eating the client's Slack abuse for six months needs to hear "we saw it, we believed you, we're doing something about it" before they hear it from a townhall.
What to promise, and what not to
Do promise: no gap in their utilisation, no financial hit, first pick of the next engagement, and that you'll handle the client communication yourself. Don't promise: that the next client will be better, that this will never happen again, or specific project assignments you haven't confirmed with sales. Over-promising here is how you turn a win into a resignation three months later.
Write the exit email like a professional, not a victim
The email itself should be short, factual, and offer a runway. No grievances. No history lesson. The client already knows.
Subject: Transition plan for [Project]
Hi [Name],
After reviewing our 2026 roadmap and team allocation, we've decided
not to renew our engagement beyond [date, usually 60–90 days out].
Between now and then we'll:
- Complete the in-flight work on [milestone]
- Document the current architecture and handover to your team
or a successor agency
- Make our tech lead available for up to two transition calls
per week
We'll send a formal wind-down SOW this week. Happy to jump on a
call if useful.
Best,
[You]
That's it. No "it's not you, it's us," no apology, no door left ajar for them to negotiate. The decision is made. The email communicates logistics.
If the client responds badly — and some will — do not get drawn into a long thread. Reply once, briefly, and move everything else to a scheduled call. Written arguments with an angry client always leak.
Protect the handover, protect the reputation
The 60–90 day wind-down is where you earn your next three referrals or lose them. Treat it like a project with its own PM and its own definition of done.
Minimum deliverables on exit:
- A current-state architecture doc, even a rough one in Markdown
- A README per repo that an outside engineer could follow
- A list of credentials, third-party accounts, and renewal dates handed over in writing
- A final invoice with no surprises
We've picked up two clients in the last few years specifically because the previous agency exited well. Clean handovers get talked about in founder WhatsApp groups. Messy ones do too.
Resist the urge to badmouth
Your team will want to vent. Let them, internally. In public, in sales calls, on podcasts — the former client gets a neutral "it wasn't the right fit for our 2026 focus." That's it. The industry is smaller than you think, and the person you're complaining about will end up on the board of a company you're pitching.
Where we'd start
If you're reading this because a specific client came to mind, do one thing this week: pull the realised hourly rate and the engineer rotation count for that account. Just those two numbers. Then book 30 minutes with your most senior person on the engagement and ask them, on a scale of 1–10, how they feel about going to work on Monday.
If the numbers are bad and the score is below 5, you already know. The rest of this playbook is just how to do it without wrecking anything else on the way out. For how we structure the engagements that replace them, our services page lays out the retainer and project models we actually use.
Want a team like ours?
72Technologies builds production software for the kind of teams who actually read this blog.
Start a projectKeep reading

The Senior Engineer Interview Loop That Actually Predicts Agency Performance
Most agency hiring loops are copied from FAANG and quietly filter out exactly the engineers who thrive in client work. Here's the loop we actually run, and why each stage exists.

The Second Client Problem: Why Your Agency Stalls at Two Big Accounts
Most agencies don't die from too few clients. They die from exactly two — big enough to feel safe, small enough to crush you when one leaves. Here's how to break the deadlock.

The Fixed-Bid Trap: When Milestone Pricing Quietly Bankrupts Your Agency
Fixed-bid contracts feel safe to clients and suicidal to agencies. Here's how milestone pricing actually breaks, and the hybrid structure we use when a client insists on a fixed number.
