# Why We Fire Clients (And Tell You Before We Do)

**Author:** John Morabito (Founder, /winston)
**Published:** June 14, 2026
**Reading time:** 10 minutes
**Canonical:** https://www.winstondigitalmarketing.com/playbooks/why-we-fire-clients/

Most agencies cling to every retainer until the client leaves first. We do the opposite. When an engagement turns un-winnable, we say so out loud, give it a real chance to turn, and then end it cleanly. Here is the question of when an agency should fire a client, the four conditions that make a fit impossible, and the conversation we run before anyone walks.

## The short version

We fire clients when the engagement can no longer succeed and staying would mean billing for work that cannot win. That sounds harsh until you watch the alternative: an agency quietly collecting a retainer on an account everyone has given up on, padding reports to look busy, hoping the client does not notice. We would rather name it. The honest move is to flag a bad fit early, try to fix it in the open, and leave before the relationship curdles. This is the operator companion to the exit clause we write into every retainer (https://www.winstondigitalmarketing.com/playbooks/leave-before-you-fire-us/).

## When an agency should fire a client

There is a clean test for when an agency should fire a client: the engagement is un-winnable and a direct conversation has not moved it. "Un-winnable" is not "hard." Hard is the job. Un-winnable means the conditions for success are absent and no longer in reach. Four conditions push an account there, and the firing decision almost always comes down to two or more of them being true at once.

### 1. Access is withheld

We run an 85/15 split: we do 85% of the work, the client owns the 15% only they can, which is mostly access and approvals. The full framework lives in the 85/15 client model (https://www.winstondigitalmarketing.com/playbooks/85-15-client-model/). When the logins never arrive, the analytics stay locked, the dev queue ignores every ticket, and approvals sit for three weeks, that 15% swells until it strangles the work. We cannot ship what we cannot touch. An account where access is permanently withheld is not a client we can serve, it is a retainer we are renting in exchange for nothing.

### 2. Scope expands past the fee

We price on a productized floor and cap on purpose, because predictable scope is what lets us guarantee predictable work. When a marketing retainer quietly becomes a help desk, a design studio, and a one-off-favor machine, the math stops working. We will flex for a good partner. But when every week adds an unbilled "while you're in there," the engagement has drifted from the thing we agreed to do into something neither side priced.

### 3. The relationship turns hostile

This is the one most agencies will not say out loud. A client who berates the team, treats people as disposable, or makes the work miserable does not get protected by the fact that they pay. No retainer is worth a team that dreads the Monday call. Tension is normal. Sustained contempt is a dealbreaker, and we will end an account over it without apology.

### 4. The goal is impossible on the budget

Sometimes the fit fails on arithmetic. A client wants enterprise outcomes on a starter budget, or category dominance in a timeframe that physics does not allow, and no amount of honest expectation-setting moves them off it. Continuing means signing up to fail in slow motion. Better to say it now: this goal needs a different budget, a different timeline, or a different agency.

| Condition | What it looks like | What we try first |
|---|---|---|
| Access withheld | Logins, approvals, and dev tickets stall for weeks | Name the blocked items and the cost of the delay |
| Scope creep | Unbilled "while you're in there" work every week | Re-anchor to the agreed scope and the cap |
| Hostility | Contempt or abuse aimed at the team | One direct conversation, then we leave |
| Impossible goal | Enterprise outcome on a starter budget or timeline | Reset expectations with the real math |

## The conversation we run before we fire anyone

We never fire a client out of nowhere. The first move is a direct it-is-not-working conversation, and it is specific: here is the exact problem, here is what we need to change, here is the timeline to change it. Most of the time that conversation saves the engagement, because the real issue was a single withheld login or an expectation nobody said out loud, not an actual dealbreaker. The firing only happens when nothing moves after we have said it plainly. We started doing more of this honest up-front work when we replaced the discovery call with a 48-hour audit (https://www.winstondigitalmarketing.com/playbooks/discovery-call-replaced-with-48-hour-audit/), which catches a lot of bad fits before a contract ever exists.

The order of operations: name it, give it a real window to change, then act. We do not stew silently and ghost, and we do not blow up an account over a single bad week. The same 30-day mutual notice from our standing exit clause governs the handoff, so even a firing ends with a clean transfer of accounts, files, and access rather than a hostage situation.

## Why ending a bad fit early protects both sides

Keeping an un-winnable client is not loyalty, it is a slow tax on everyone. It burns the team's energy, drags down the results we can show the clients who can win, and blocks the capacity we would rather spend on accounts that move. The client loses too: every month they stay with a vendor that cannot serve them is a month they are not finding the one that can. Pricing on a floor and a cap, which we explain in why we publish our pricing (https://www.winstondigitalmarketing.com/playbooks/why-we-publish-our-pricing/), exists so we are never chasing revenue we cannot earn cleanly. Firing a bad fit is the same principle applied to a relationship instead of a price.

## This is the partner-not-vendor position

A vendor takes the money as long as the check clears. A partner tells you the truth even when the truth costs them the account. Firing clients honestly, with a warning and a clean exit, is the most concrete proof we can offer that we mean the partner framing rather than just printing it on a slide. If we will tell a paying client the engagement is over, you can trust what we tell you while it is working.

## Frequently asked questions

### When should an agency fire a client?

An agency should fire a client when the engagement has become un-winnable and staying would mean billing for work that cannot succeed. The four common triggers are: access is withheld so the work cannot ship, the scope keeps expanding past what the fee covers, the relationship has turned hostile or abusive toward the team, and the goals are impossible on the budget or timeline. When two or more of those are true and a direct conversation does not move them, the honest move is to end the engagement rather than keep collecting the retainer.

### Do you warn a client before you fire them?

Yes. We never fire a client out of nowhere. The first move is a direct it-is-not-working conversation that names the specific problem, what we need to change, and the timeline to change it. Most of the time that conversation fixes the engagement, because the issue was a withheld login or an unspoken expectation, not a real dealbreaker. The firing only happens if nothing moves after we have said it plainly. The same 30-day mutual-notice exit clause we put in every retainer governs the handoff.

### Why would an agency end a paying engagement?

Because keeping a bad-fit client costs more than the revenue. A stuck engagement burns the team's energy, drags down the results we can show future clients, and quietly blocks the capacity we would spend on accounts that can actually win. We price on a floor and a cap precisely so we are not chasing revenue we cannot earn cleanly. Ending an un-winnable engagement frees both sides: the client to find a vendor that fits, and us to do work we can stand behind.

Book a call: https://www.winstondigitalmarketing.com/contact/#book-a-call
Audit: https://www.winstondigitalmarketing.com/contact/#audit
