Short answer: compare each new request with what was agreed in writing: the deliverables and the number of revisions. If it fits, do it. If it doesn't, say so politely and offer a choice, either an extra fee or scheduling it as separate work. The point is to make the decision visible instead of absorbing the work silently.

How it happened to me

On a content project, requests for extra research and further revisions kept piling on top of what we had agreed. I hadn't set an additional fee for anything beyond the original estimate, so my hours rose while my revenue stayed the same, and my effective hourly rate fell. No single request felt big enough to push back on, which is exactly how it adds up.

Since then I write the deliverables and the number of revisions into the contract, and when a request falls outside them I raise an additional fee.

A decision flow: a new request is compared with the agreed deliverables and revision count. If inside, do it. If outside, offer an extra fee or separate scheduling, then confirm in writing.

Three steps for each request

  1. Compare. Does the request fit the agreed deliverables and the revision count? If you never wrote those down, that is the first thing to fix.
  2. Answer with options. Something like: "Happy to help with that. It's outside the current scope (X deliverables, Y revisions), so I'd quote it separately. Would you like an estimate, or should we plan it for next month?" It keeps the tone friendly and gives the client a clear way to say yes.
  3. Confirm in writing. Whatever is agreed, put it in a message or an updated scope so the next request has something to be compared against.

When the client says the budget is fixed

That came up for me on a separate engagement: when I asked about a higher rate I was told it would be difficult within that year's budget. Instead of pressing on the number, I proposed keeping the rate, keeping the work to what that rate covers, and billing anything beyond it separately. The longer version is in our piece on scope creep and rate increases.

To prevent this at the start, a one-page proposal that names the deliverables and what is billed separately gives you something concrete to point to.

How one extra-work conversation went

On one project I was asked, a little at a time, for revisions to materials and extra tabulation that weren't in the original request. Each item was small, so I handled them at first, and then I realized I had spent far more time than planned. I put the extra items and an estimate in order and raised them separately. The result was a partial yes: not everything became paid work, but the higher-priority items were billed and the rest went to the next round.

My contracts now allow two revisions as a rule, and revisions are limited to adjusting what was originally agreed. If the specification itself changes, that counts as extra work and gets a new estimate, even within the revision count.

This is one freelancer's approach, not legal advice. For a contract with significant value, have the terms reviewed by someone qualified.