How do you avoid scope creep on a project?
In this article

    You avoid scope creep by writing down what the project includes and excludes before you start, and by sending every later request through a written change order that carries a price and a new date and is approved before any of the extra work begins. The first half is a document, the scope statement. The second half is a habit: no request is refused, and no request is absorbed in silence. Each one gets an answer of the form "yes, and here is what it adds".

    Neither half requires a hard conversation. Scope creep is rarely a client trying to get something for nothing. It is usually two honest people who pictured different projects when they signed the same page, followed by a series of small favours that nobody counted. The worked example that runs through this article follows one fixed-fee project and shows what six such favours do to the hourly rate the freelancer thought she was earning.

    $66.67effective hourly rate on a project priced at $100 an hour, after 60 unpaid hours
    $6,000of work given away, valued at the rate the fee was built on
    Week 3when a simple 10% variance check would have flagged the drift, on an eight-week project

    Worked example used throughout: a $12,000 fixed-fee website project estimated at 120 hours over eight weeks. Illustrative figures, not market data.

    What is scope creep?

    Scope creep is the gradual growth of a project beyond what was agreed, without a matching change to the price, the deadline or the resources. The word that matters is "without". A project that grows through agreed, priced changes has not crept; it has been extended, and both sides know what the extension costs. Creep is incremental, so no single request is large enough to trigger a renegotiation; it is undocumented, arriving in a call or a chat message and answered with "sure"; and it is unpriced, so the hours are worked but never reach an invoice.

    Related readHow do you structure an invoice that's paid part in fiat and part in crypto?16 min

    Creep is not a freelancer's problem alone. The Project Management Institute reported in its 2018 Pulse of the Profession survey that 52 percent of projects completed in the previous twelve months had experienced scope creep or uncontrolled changes to scope, up from 43 percent five years earlier. Those are organisations with project managers and formal methods; a freelancer working alone has fewer checkpoints, not more.

    What does scope creep cost on a fixed-fee project?

    On a fixed-fee project, scope creep is paid for entirely out of your effective hourly rate, which is the fee divided by the hours you actually work. The fee does not move, the hours do, and the rate falls with every unpaid addition.

    Take a worked example. Call the freelancer Dana, a web designer and developer. She quotes a fixed fee of $12,000 to redesign a company website, based on an estimate of 120 hours spread over eight weeks. Her target rate is therefore $12,000 divided by 120, or $100 an hour. The proposal lists the pages to be built but says nothing about revision rounds, content entry or what happens after launch.

    Over the eight weeks the client makes six requests. Each is reasonable, each is put politely, and Dana says yes to all of them without mentioning money.

    Stage of the project Hours added Total hours Effective rate
    Scope as signed — 120 $100.00
    Third revision round on the homepage 8 128 $93.75
    Two extra page templates 14 142 $84.51
    Moving 40 blog posts into the new site 12 154 $77.92
    Newsletter signup integration 6 160 $75.00
    Rework after late stakeholder feedback 10 170 $70.59
    Tweaks requested after launch 10 180 $66.67

    The largest single request added 14 hours, under 12% of the original estimate. Together the six added 60 hours, half as much again as the project Dana priced. Her rate fell by a third, and the work she gave away would have been worth $6,000 at the rate her fee was built on.

    Related readHow do you track freelance income?19 min

    The table also shows why creep is hard to feel while it happens. The first request costs $6.25 an hour and the last costs $3.92, because each new hour is spread over a larger total, so the sixth yes feels cheaper than the first. The hours also have to come from somewhere: evenings, the next client's start date, or the quality of the original deliverables.

    A useful number to compute before you start is your buffer. Decide the lowest hourly rate at which the project is still worth doing, divide the fee by it, and subtract the estimate. If Dana's floor is $80 an hour, $12,000 divided by $80 is 150 hours, so she can absorb 30 hours of overrun, from any cause, before the project falls below it. She passed that line with the third request.

    Why does scope creep happen?

    Scope creep happens when the agreement leaves room for two readings, when requests reach the freelancer through channels that record nothing, and when saying yes feels cheaper than raising the subject of money.

    The most common cause is a vague scope. "A new website" or "a brand identity" describes an outcome, not a list of deliverables, and a client is entitled to imagine the generous version. Silence works the same way: a proposal that says nothing about revisions has not limited them.

    The second cause is that the person who signed is not the only person with opinions. A marketing manager approves the design, and two weeks later the managing director sees it for the first time. The feedback is legitimate, but acting on it means redoing finished work.

    Related readHow do you write a freelance contract?19 min

    The third cause is discovery. Some work cannot be estimated until it is opened up: the old site turns out to hold three times the content expected, or the data arrives in a format nobody mentioned. An agreement with no assumptions section leaves that risk with you by default.

    The fourth cause is the freelancer. Wanting to be easy to work with, fearing that a price will sour the relationship, or simply not noticing that a request is new, all produce the same unbilled hours. So does gold plating: extra work the client never asked for, added because it would be "better" that way, which cannot be billed at all.

    What should a scope statement contain to prevent scope creep?

    A scope statement that prevents creep contains five parts: the deliverables, the exclusions, the assumptions, a revision limit and the acceptance criteria. The deliverables say what the client is buying; the other four say where that purchase ends.

    The scope statement is one section of the wider agreement. Payment terms, ownership of the work, termination and liability belong to the contract as a whole and are outside this article; the scope section is the part that decides whether a later request is included or new.

    Element What it settles Example wording
    Deliverables What is produced, counted and named "Design and build of 8 page templates, listed in the schedule below"
    Exclusions What a client might assume is included and is not "Copywriting, content entry, photography and hosting setup are not included"
    Assumptions The conditions the estimate depends on "All content is supplied in final form before build starts"
    Revision limit How many rounds of changes the fee covers "Two rounds of revisions per deliverable, each as one consolidated list"
    Acceptance criteria When a deliverable counts as finished "Accepted on written approval, or 5 business days after delivery with no comments"

    Deliverables should be countable: "8 page templates" can be checked against a request for a ninth, and "the website" cannot. Exclusions do the most work for the least effort. Write the list by asking what a reasonable client might assume comes with the job; for a website that is typically content, images, hosting, training and ongoing maintenance. An exclusion is not a refusal. It is a signal that the item is available and priced separately.

    Related readHow does a clause that transfers your work only on full payment protect a freelancer?23 min

    Assumptions turn discovery risk into a shared matter. If the estimate assumes one point of contact, feedback within three business days and content delivered before the build, say so, and add one sentence stating that the fee and the schedule will be revisited through the change process if an assumption proves wrong.

    The revision limit needs a definition as well as a number. A round is one consolidated set of comments from the client, delivered once. Without that definition, five emails in a week are either one round or five, depending on who is counting. A revision adjusts work delivered against the agreed brief; a change of brief is a new request, however it is phrased.

    Acceptance criteria close the project. Without them, a fixed-fee job has no finishing line, and the "tweaks after launch" in Dana's table have no natural end. A deemed-acceptance clause, under which silence for a stated number of days counts as approval, keeps a delivered milestone from staying open indefinitely, and new requests after acceptance are quoted as new work.

    Finally, the scope section should name the change process itself in one or two sentences: changes to scope are made only by written change order, signed or approved in writing by both sides, stating the effect on fee and schedule. That sentence is what turns the next section from a personal preference into an agreed procedure.

    How does a change-request process work, step by step?

    A change-request process has six steps: capture the request in writing, check it against the scope, estimate its effect on fee and schedule, send a change order, wait for written approval, and only then do the work and update the plan. The order matters more than the paperwork, and the fifth step is the one that protects you.

    Related readHow freelancers get paid fast by any client20 min
    The change-request processApplied to the request for two extra page templates in the worked example
    1. Capture the request in writingA request made on a call is confirmed by a short message the same day: "To confirm what we discussed, you would like team and careers page templates added to the site." Nothing has been promised yet; the request now exists on the record.
    2. Check it against the scopeRead the deliverables, exclusions and assumptions. The schedule lists 8 templates and neither of these is among them, so the request is new work. If the scope covered it, there would be no change order and the work would simply be done.
    3. Estimate the effectWork out the hours, the price and the effect on the delivery date. Here: 14 hours, $1,400 at the project rate of $100 an hour, and a launch date four working days later.
    4. Send a change orderPut the description, price, schedule effect and payment terms in one short document, with the alternatives if there are any, such as doing the work after launch as a separate phase.
    5. Wait for written approvalA signature or a reply that says "approved" is enough. Until it arrives, work continues on the original scope only. If the client declines, the request is closed and the project carries on as planned.
    6. Do the work and update the planAdd the hours to the estimate you track against, so the baseline becomes 134 hours and $13,400, move the delivery date, and bill the change as the change order says.

    For small requests the same six steps fit into two messages: one that confirms the request with its price and date, and the client's reply approving it. What must not be shortened is the sequence: a price given after the work is done is a surprise invoice.

    What does a change order look like?

    A change order is a one-page amendment that names the project, describes the added or removed work, and states the change in fee, the change in schedule and when the extra amount is due. It needs no legal language beyond a sentence saying that everything else in the agreement stays as it is.

    A sample, using the second request in the worked example:

    • Change order no. 2 to the website redesign agreement between the two parties named in it
    • Requested by: the client's project lead, by email
    • Description of the change: design and build of two additional page templates, a team page and a careers page, to the same standard as the 8 templates in the original schedule
    • Not included in this change: writing the content for the two pages; staff photography
    • Effort: 14 hours
    • Price of the change: $1,400, which brings the total project fee from $12,000 to $13,400
    • Effect on schedule: the launch date moves four working days later
    • Payment: the price of the change is invoiced on approval and due on the same terms as the other project invoices
    • Revisions: the two-round revision limit of the agreement applies to the new templates
    • Everything else: all other terms of the agreement are unchanged
    • Approval: name, date and signature or written confirmation from each party

    Number the change orders and keep them with the agreement, so the original fee plus the numbered changes equals the total invoiced. On the payment side, the principle is brief: a change order says how much is added and when it is due, either as its own invoice on approval or folded into the next milestone, so that the remaining instalments still add up to the revised total. How to restructure instalments when the scope moves is a subject of its own.

    How do you say yes to a new request with a price?

    You say yes with a price by agreeing to the request and stating its cost and its effect on the date in the same sentence, before any of the work starts. "Yes, I can add that. It is about 14 hours, so $1,400, and it moves launch by four working days. Shall I send a change order?" The client hears agreement first and a decision second.

    Related readHow much deposit should a freelancer take?19 min

    A flat no makes you the obstacle to something the client wants, and a bare yes makes you the funder of it. Offering options makes the choice easier and keeps it away from a yes-or-no on your price. There are usually three. Add the work now at the stated price and date. Swap it for something of similar size already in scope, so the fee and date hold. Or park it on a list for a second phase after launch. Clients often choose the third once they see the price, and a list of parked ideas is the start of your next proposal.

    Run the worked example again with this habit in place. Dana's scope now has a two-round revision limit, an exclusion for content entry and acceptance criteria, and she prices each request at $100 an hour. The client approves three of the six: the two templates, the blog migration and the newsletter integration, 32 hours for $3,200. They decline the third revision round, the rework from late feedback is avoided by consolidating comments before sign-off, and the post-launch ideas go on the phase-two list. Dana works 152 hours for $15,200, which is $100 an hour. Had the client approved all six, she would have worked 180 hours for $18,000, again $100 an hour. The client's decisions change the size of the project; they no longer change her rate.

    Sometimes you will choose to do an extra for nothing. Do it deliberately and visibly. Record it as a change order or an invoice line at its normal price with a 100% discount, so the client sees a gift with a value and not a new baseline for what the fee includes.

    Related readHow to avoid PayPal and processor fees as a freelancer14 min

    How do you spot scope creep early?

    You spot scope creep early by logging your hours on fixed-fee work and comparing them every week with the hours the plan expected by that date. A gap that widens from one week to the next is the signal, and it appears long before the deadline does.

    Many freelancers stop tracking time once a project is priced at a fixed fee, on the logic that hours no longer matter. They matter more: the estimate is the only budget the project has. Dana planned 120 hours over eight weeks, or 15 hours a week. The chart sets that plan against the hours she actually logged in the first version of the story.

    Planned and actual hours, week by weekCumulative hours on the $12,000 project, estimate of 120 hours over eight weeks
    Planned hoursHours logged
    0 50 100 150 200 Wk 0 Wk 2 Wk 4 Wk 6 Wk 8 120 planned 180 logged

    Worked example. The marked points are week 3, week 4 and week 8.

    At the end of week 2 the gap is 2 hours, under 7% of plan and within the noise of any estimate. At the end of week 3 it is 7 hours, 52 logged against 45 planned, which is about 16% over. A rule as simple as "investigate when logged hours run more than 10% ahead of plan" fires here, with five weeks of the project still to run and only 7 unpaid hours behind her. By week 4 the gap has doubled to 14 hours.

    Hours against the calendar are half the picture. The stronger check compares hours with work completed. At the end of week 4 Dana has logged 74 hours and finished half the deliverables. Dividing 74 by 0.5 projects 148 hours for the whole job, and $12,000 over 148 hours is $81.08 an hour. That projection, made at the midpoint, already shows the project heading toward her $80 floor. In the event it finished well below it, because the requests kept coming.

    Related readHow to bill a client in a currency that holds its value20 min

    When the check fires, find the cause before reaching for a change order. Sort the excess hours into three piles: work that was in scope and took longer than estimated, extras you added on your own initiative, and work the client asked for that the scope does not cover. Only the third pile is creep that a change order can address. Tagging each time entry as "in scope" or "extra" as you log it makes this sorting take minutes.

    What do you do when the client is right that the work was in scope?

    When the client is right that the work was in scope, you do the work at no extra charge, say so plainly, and fix your template so the same gap does not open on the next project. A change process that only ever finds in your favour stops being trusted, and deserves to.

    The test is the document, read the way a reasonable client would read it. Suppose, as a variation on the example, that Dana's proposal had listed "contact and signup forms" among the deliverables, and the client asks for the newsletter signup to feed their mailing list. She pictured a form that sends an email; the client pictured a form that does something useful with the address. The wording supports the client's reading at least as well as hers. Those 6 hours are part of the fee, and absorbing them puts her at 126 hours and $95.24 an hour, which is the cost of an imprecise line in her own proposal.

    The law tends to point the same way where the freelancer wrote the document. Under the rule known as contra proferentem, as described by Cornell Law School's Legal Information Institute, an ambiguous contract term is construed against the party that drafted it, on the reasoning that the drafter was best placed to avoid the ambiguity. How and when courts apply that rule varies by country and by state, and this is general information, not legal advice. The practical point holds everywhere: if you wrote the proposal, unclear wording is your risk.

    Related readHow to charge a kill fee when a client cancels late21 min

    Three situations usually belong on your side of the line. Defects in what you delivered are corrected without charge. Work that any professional in your field would consider necessary for the deliverable to function is included even if the list did not spell it out. And an estimate that proved too low is not a change of scope: on a fixed fee, the risk that the agreed work takes longer than expected is the risk you were paid to carry.

    What can you do when scope creep has already happened?

    When scope creep has already happened, you draw a line from today forward: list the additions made so far, state that further requests will be quoted before work starts, and decide separately whether any of the past extras can fairly be billed.

    Start with the facts. From your time log and message history, list each addition, when it was asked for and the hours it took. Then send the client a short, neutral reset: the project has grown by these items since it was agreed, and from here each new request will come with a price and a date for approval first.

    Billing for extras already completed is a harder case. If you agreed to them without mentioning cost, the client had no chance to decline, and an invoice now will feel like a change of terms after the fact. A middle route is to present the list with its value, waive it explicitly as a goodwill gesture, and apply the process to everything that follows. Where the unpaid work is large enough to threaten the project, say so directly and propose a revised fee for the remainder.

    If the requests show no sign of ending, the fixed fee may be the wrong shape for the relationship. A stream of small, unpredictable tasks fits an hourly arrangement or a monthly retainer with a set number of hours better than repeated change orders do. Scope creep changes form under those models without disappearing: hourly work can outrun the client's budget, so agree a checkpoint at which you report hours used, and a retainer needs its monthly hours stated, with a rate for anything over them.

    Then carry the lesson into the next proposal: each line in Dana's table maps to a sentence her scope lacked. Some freelancers also price a contingency into the fee. At 15%, Dana's estimate becomes 138 hours and her fee $13,800, which cushions an honest estimating error. It would not have saved this project: $13,800 over 180 hours is $76.67 an hour. A buffer absorbs uncertainty in the work that was agreed, and only a scope statement and a change process deal with work that was not.

    Kooky
    Written by
    Kooky

    25+ years shipping on the web, onchain since Bitcoin's early days. Kooky built Shaka so that everyone who closes a deal together gets paid together, the day it closes.

    The story behind Shaka