Clariox · Scope disputes
What to do when a client says you agreed to something you didn’t.
Find the moment before you answer. Quote what was actually said and when, state what it covers, and put the extra work forward as a priced change rather than a disagreement about memory.
The short answer
Do not reply from memory. Go back to the material — the thread, the call notes, the kickoff recap — and find the moment the thing was actually discussed. Then answer in three parts: what was agreed and when, in the wording that was used; what that does and does not cover; and what the additional work would cost and do to the date.
The reason this order matters is that it removes the argument. Once a quoted decision with a date is on the table, nobody is being called unreliable, and the conversation moves from who remembers correctly to what do we do now — which is the only version of the conversation that has a good ending.
They are almost certainly not lying
The instinct is to assume the client is trying it on. In our experience of the material, that is rare. What happens far more often is this: someone said the thing out loud on a call, nobody contradicted it, and both sides left the room with a different understanding of what had just happened.
Silence reads as agreement to the person who spoke. They said “and you’ll handle the German version too, right?”, nobody said no, and from that moment the German version was in scope as far as they were concerned. Six weeks later they are not inventing anything. They are describing a real memory of a real conversation that never became a written decision.
This matters practically, not just diplomatically. If you open with an accusation you will get a defensive client, and defensive clients stop telling you things. The expensive outcome is not the extra work — it is the next three problems they decide not to mention.
What to do in the next hour
1. Establish the record before you write anything
Search the thread for the topic, not for your position on it. Read the messages in order, because the position that matters is the last one, not the loudest one. Note the date of every mention. If the last word on the subject was a question nobody answered, that is your answer: it was raised and never closed.
2. Separate what was decided from what was assumed
Write two short lists. Decided means stated and confirmed — ideally quoted. Assumed means mentioned once, or implied, or met with silence. Most scope disputes live entirely in the second list, and naming that distinction out loud is usually enough to end them.
3. Reply with the record, then the offer
Lead with what you found, in their words: “On 16 July you wrote that the budget moves to CHF 18’000 and the dashboards come out — everything else stands.” Then state the boundary: the German version was raised on the 12th and never priced. Then make it easy to move: here is what it costs, here is what it does to the date, tell us which you want.
4. Do not absorb it quietly
Absorbing unquoted work to keep the peace is the most expensive habit in agency life, because it is invisible. It never appears in a margin report as a decision — it appears as a project that ran hot for no obvious reason. If you decide to do it anyway, say that you are doing it and what it would have cost. Goodwill you never mention buys nothing.
On a real thread
Four messages, and a decision nobody wrote down.
Scope moves three times across four messages. One question is asked and never answered. This is what a same-day record of it looks like.
>>> 14 Jul, Marc: scope is implementation, custom dashboards,
training for 6. CHF 24’000, delivery mid-August.
>> 16 Jul, Elena: two changes — budget is CHF 18’000 not 24’000,
and drop the custom dashboards for now. Everything else stands.
> 17 Jul, Priya: our data lead says this needs the warehouse
migration finished first. That’s not in Phase 2. Who’s doing
that, and by when?
20 Jul, Elena: confirming what we agreed — CHF 18’000, delivery
end of August. Treat this as go-ahead.
- Establish who owns the warehouse migration and by when
- Quote the migration separately — it sits outside Phase 2 and was never priced
- Resolve which delivery date applies — mid-August per 14 Jul, end of August per 20 Jul
Decisions, in the wording used
“budget is CHF 18’000 not 24’000, and we’d like to drop the custom dashboards for now. Everything else stands.”
“we go with the Looker setup, budget CHF 18’000, delivery by end of August. Please treat this as go-ahead.”
Never answered
Who is doing the warehouse migration, and by when? Asked 17 July.
Is training for six people still included at the reduced budget?
Notice what the record refuses to do
It does not give the migration an owner, because the thread never named one. It does not pick a delivery date, because the thread contains two and choosing one would hide the problem rather than solve it. It does not quietly drop the training for six people, because dropping it was never actually agreed — it simply stopped being mentioned.
Those refusals are the point. A summary that fills the gaps reads better and is worth less: the gaps are the commercial risk. Anything that smooths them over hands you a document that looks finished and leaves you exposed in exactly the places you needed to be warned about.
How to make it not happen next time
Every one of these arguments is an undocumented moment weeks earlier. The fix is unglamorous and works: on the day of the call, write down what was decided in the words that were used, name what is still open, and send it to the client. Not a polished summary — a record.
Two properties make it effective. First, quoting rather than paraphrasing: six weeks later the argument is about the words, and a paraphrase is arguable in a way a quotation is not. Second, listing the open questions: a decision that was never made is far more dangerous than one recorded imprecisely, and it is only visible if something is looking for it.
Send it the same day, while both sides still remember the room. Correcting a misunderstanding on Tuesday costs one email. Correcting it in September costs a margin.
Common questions
Scope, memory and awkward emails
What if I genuinely can’t find where it was discussed?
Then say so, plainly: you have looked, you cannot find it, and you would rather agree it now than argue about a conversation neither of you can produce. That answer is defensible. Insisting it never happened, when you cannot prove it, is not.
What if it turns out we did agree to it?
Say so quickly and without hedging. Being wrong once and admitting it costs far less than being defensive about it, and it buys you credibility the next time you push back — which you will need.
Does this work on anonymised material?
Yes. Redact names before pasting if the material is sensitive. The record still shows the decisions, the dates and the gaps, because those come from the structure of the conversation rather than from who was in it.
Isn’t this just what a good project manager does?
It is exactly what a good project manager does, on the days they have time. The difference is what happens on the days they don’t — Friday evening, after the fourth call, when the recap gets postponed and the undocumented moment is created.
Take the thread you’re arguing about and read it properly.
Paste it in. You get the decisions in their original wording, what was never answered, and the work nobody priced — before you write the reply.