Nobody loses a retainer's margin in a single conversation. If a client asked for double the work at the same price, you would notice and say no.
What actually happens is smaller and much harder to refuse. A quick call added to the week. A second reviewer who needs their own walkthrough. A report that used to be quarterly and is now monthly because it was easy the first time. A Slack channel where questions arrive directly and get answered in twenty minutes because that is faster than logging a ticket.
Each one is individually reasonable, arguably good client service, and not worth a conversation about scope. Together they are a person.
The only detector that works
You cannot spot this by feel, because the change is gradual and the invoice never moves. The signal is on the cost side:
Effective hourly rate = monthly fee ÷ hours actually worked that month
Track it per retainer, every month, and plot it. A healthy account is flat or noisy-flat. A creeping account has a visible downward line, and it is usually visible three or four months before anyone would have raised it in conversation.
See effective hourly rate for the full calculation, including the two things people leave out of it.
Set the trigger in advance
The reason creep persists is that there is never an obvious moment to raise it. Every individual month is only slightly worse than the last, so there is no week where it becomes undeniable.
Fix that by deciding the threshold before you need it. Something like: if effective hourly rate falls more than 20% below the rate this retainer was priced at, for two consecutive months, we have a conversation. Written down, in advance, when nobody is annoyed.
That turns an awkward judgement call into a rule you are following, which is a much easier conversation to have — with the client, and with yourself.
What the conversation actually is
The instinct is to arrive with a complaint. That is the version that goes badly.
The version that works is arithmetic, presented without accusation:
When we set this retainer we scoped it around 30 hours a month. Over the last quarter it has been running at 55 — mostly the weekly check-in, the extra reporting, and ad-hoc requests through Slack, which have been genuinely useful and we are happy to keep doing. But at that volume the retainer no longer covers it. Three options: we go back to the original scope, we increase the retainer to match what it has become, or we agree a monthly hour cap with overage.
Note what is absent. No suggestion that the client did anything wrong — they did not, they responded to what you allowed. No resentment. No implication that the extra work was unwelcome. Just a number, and options.
Clients accept this far more often than agency owners expect. What they react badly to is the version that arrives eighteen months late with an edge to it, after the account has become quietly unbearable and the conversation is really about that.
Prevention, which is mostly structural
Write the scope in units the client recognizes. "20 hours a month" invites an argument about what an hour is. "Two campaign concepts, one round of revisions, a monthly performance report and a fortnightly call" does not.
Name what is out of scope, briefly, in the same document. It is much easier to point at than to introduce later.
Make the hours visible to the client. Agencies fear this and it is the single most effective preventative. A client who can see 44 of 30 hours used by the 20th adjusts their own behavior, without you having to ask.
Review at three months, not twelve. By the annual renewal a year of creep is baked in and repricing feels like a large jump. A quarterly check keeps the adjustments small enough to be uncontroversial.
When to walk
Occasionally the arithmetic says the account cannot work at any price the client will pay. That is worth knowing early and acting on, because the alternative is subsidising it with your better clients indefinitely.
The tell is not that the account is difficult. It is that the effective rate has been below your cost per hour for two quarters and every conversation about it has ended with an agreement that changed nothing.