Post

How to raise a freelance change order without awkwardness

A scope-change protocol with pricing language you can paste. Name the change, price it, and keep the relationship when the brief grows mid-project.

On this page

Years ago I rebuilt a small business site for a fixed €2,600. Halfway through, the owner asked if, while I was in there, I could add a simple gallery page. It sounded like an hour. I said yes. A week later it was a map on the contact page. Then a little seasonal banner that could be switched on from the admin. Then the gallery needed categories.

None of those requests was unreasonable on its own, and the owner was lovely the whole way through. By launch I had put about fourteen extra hours into things that were not in the quote. At the €70 an hour I plan with, that is €980, more than a third of the fee, given away one friendly "sure" at a time.

The annoying part is that I could not even be cross with the client. I never told them any of it cost money. From their side, the extras were free because I had made them free. They learned exactly what I taught them.

They learned exactly what I taught them.

What I do now is boring on purpose. The moment a request leaves the written scope, I run the same short routine, the same day, in the same plain language. Change orders feel awkward when they arrive late and emotional. When they arrive early and predictable, most clients barely notice.

Illustration · 4:5three paths on one note, add it, park it, or swap it, so a scope change is a menu rather than a favour, plain paper, 4:5, AI illustration

The thirty-minute rule

Not every request deserves paperwork. Clarifying questions, small copy edits inside an open revision round, and bugs in work I already delivered are part of the job. So are my own estimating mistakes: if I underestimated something that was clearly in the brief, that is my cost to carry, and a personal estimate postmortem is where I deal with it, not the client's invoice.

My line is simple. If a request takes more than about thirty minutes, or changes what "done" means for a milestone, it is a change order candidate. Under thirty minutes and no change to acceptance, I do it and note it in the project log. Over that, I run the routine.

Things that are usually over the line: new pages or screens, new integrations, extra review rounds beyond what was agreed, a new design direction after approval, "while you're in there" extras, and support work that is not in the retainer.

The routine, step by step

I run these in order on the day the request arrives. The worst thing you can do is "think about it overnight" while quietly starting the extra.

1. Find the original boundary. Copy the line from the estimate or statement of work that the request goes beyond. Facts first.

2. Name the gap in one sentence. "You asked for X; the agreed scope covers Y; the difference is Z."

3. Offer three paths. Approve the extra at a price with a date impact. Keep the current scope and park the extra for later. Or swap it in by removing something of similar size. Three options give the client a real decision, rather than "pay more or I'm being difficult".

4. Pause the extra, not the project. Keep working on agreed scope. Do not build the extra on hope.

5. Confirm in writing. One short message once they choose: which path, the price, the new date, and what is still out of scope.

A real request and the message I sent

Recently I was building a small loyalty-card Android app for a local business, fixed at €4,200. Two weeks before the beta, the owner messaged: "Could the app also send people a reminder the day before their appointment? Should be simple, right?"

It is not huge, but it is not simple either. I listed what it actually involved: scheduling the reminders (about three hours), the notification permission prompt that newer Android versions require plus a settings toggle to turn reminders off (two hours), testing across a few Android versions and devices (three hours), and updating the store listing and privacy text to mention notifications (one hour). That adds up to nine hours, or €630 at my rate.

This is roughly what I sent, the same afternoon:

Hi, thanks for this, it's a good idea and people will use it.

Appointment reminders aren't in the current scope (the agreed
feature list covers the loyalty card, the stamp history and the
offers screen). Here are three ways we can handle it:

A) Add it now as a change: €630, about nine hours of work.
   The beta moves from the 12th to the 14th.
B) Launch the beta as planned and add reminders as a small
   follow-up after launch, same price.
C) Swap it in for the offers screen, which is about the same
   size, and keep the beta on the 12th.

I'll keep going on the agreed features in the meantime and won't
start on reminders until you pick one. Any of the three is fine
by me.

The owner picked B within the hour, because they wanted the beta out before a local event. I sent a one-line confirmation, added the item to the log, and built it the week after launch. Nobody was awkward about anything, because the message did not ask them to agree that they had done something wrong. It just showed them the menu.

Notice what the message does not contain: no apology, no justification for my rate, and no paragraph explaining how much work notifications are. The list of steps was for me, so I could price it honestly. The client only needed the outcome and the choice.

Lines you can adapt

Here are the phrasings I reuse, adjusted for the kind of project. Swap the brackets for your own numbers.

Soft open, early in the project: "Happy to help with [extra]. That sits outside [scope line]. I can add it as a change for [fee] with a [N]-day shift, or we keep the current scope and put it on a phase-two list. Which do you prefer?"

Firm open, when the schedule is already tight: "[Extra] changes what's needed for [milestone]. Options: (1) change at [fee], delivery moves to [date]; (2) keep scope and I'll note it as out of scope in the handoff; (3) swap it in for [equal item]. I'll hold off on [extra] until you confirm."

On hourly projects: "[Extra] is billable at the project rate. My estimate is [low] to [high] hours. Reply 'approve' and I'll log it as change [number]."

When it is really an extra revision round: "The agreed scope includes [N] revision rounds for [milestone]. This would be round [N+1], so it bills as a change rather than an included revision."

When they need it on the original date: "If [extra] has to land on the original date, a rush fee of [percent] applies because it squeezes the rest of the work. Without rush, the date moves to [date]."

Change orders go down much easier when the estimate already mentioned them. A single line like "requests outside this scope are quoted separately before work starts" turns the mid-project message into a reminder rather than a surprise. A sensible buffer helps too, so that every tiny wobble does not need its own conversation.

The replies that make people cave

Most freelancers I know can send the first message. Where they fold is the reply. These are the ones I hear most, and what I say.

"We thought this was included." "I can see why, it's close to [related item]. The agreed scope lists [boundary]. Good that we caught it now. Here are the three options again so it doesn't hold up [milestone]."

"Could you do this one as a favour?" "I keep favours out of the scope so the dates stay honest. I can take [amount] off this change once, or we schedule it as a paid follow-up. I can't add it unpaid and still hit [date]."

"Our last developer never charged for this." "Different scope, different fee. I price changes separately so the delivery date stays real. Happy to go with whichever option suits you."

Silence. Do not build it. After two business days, one short nudge: "Just need A, B or C on the reminders change so I can keep the schedule accurate." Then carry on with agreed work. Silence is also a feedback delay, and how feedback delays should affect pricing covers what to write about that before the project starts.

Keep a ledger the client can see

I keep a tiny table in the project doc and paste it into the weekly update:

DateRequestIn scope?PathFeeDate impact
2026-04-14Appointment remindersNoB€630After launch
2026-04-20Swap button colour on offers screenYes, in revision roundIncluded€0None

The second row matters as much as the first. Showing the client the things you did include, for free, inside the agreement makes the paid rows look fair rather than greedy. Over a few weeks the table becomes a shared record, and the next change order feels like the next line, not a confrontation.

Clients rarely hate change orders

In my experience, what clients dislike is a surprise invoice and a vague "that'll cost more" with no number attached. An early message with a price, a date and three options reads as professional. A late, numberless complaint reads as personal, even when you are right. If you are still choosing between fixed and hourly for the next job, fixed price versus hourly is worth reading before you quote, because the model you pick decides how often you will need this routine.

Run it while you still like the client. That gallery page cost me €980 because I waited until I was resentful to notice the pattern, and by then it was too late to send anything except a very quiet invoice.

End of this piece

Writer

PrimedEcho

Independent notes on remote work, focus, and freelance practice. About this site.

All posts