How we scope a fixed-price project so it doesn't fall apart by week three
Most fixed-price disputes aren't really about price. They're about a scope document that was vague enough to mean two different things to two different people, and neither side noticed the gap until the project was already underway. We learned this the expensive way early on, on a project where "a modern homepage" turned out to mean a five-section scrolling layout to us and a twelve-page microsite to the client, discovered three weeks in when the first draft landed and clearly wasn't what either of us had actually pictured.
We rebuilt how we scope every project around one rule since then: if a line item can reasonably be read two different ways by two reasonable people, it gets rewritten until it can't be. That sounds obvious. In practice it means most of our proposals are longer and more specific than what clients expect from an agency at this stage, and that specificity is the entire point.
List pages, not vibes
"A modern, professional website" is not a scope, no matter how confidently it's written into a brief. "Twelve unique page templates, including a homepage, three service pages, a team page, a blog index and post template, and a contact page with an embedded booking form" is a scope. We list every page and every distinct template by name, with a one-line description of what's unique about it, before a number ever gets attached to a proposal.
This matters because "how many pages, and how many of them are genuinely unique templates versus variations of the same layout" is the single biggest driver of both cost and disagreement later. A client who assumes their four regional office pages are "one page, four times" and an agency that scopes each as a unique template are going to have a very different conversation at delivery if that assumption was never written down and confirmed by both sides.
Name the integrations before the number goes on the proposal
A payment gateway, a CRM sync, a booking system tied to practice-management software, an inventory feed from a warehouse system: each of these can double a timeline depending entirely on how well documented the third party's API actually is, and how responsive their support team is when something doesn't behave as documented. We ask for API documentation, or at minimum a named technical contact at the third-party vendor, during scoping itself, not after a contract is signed.
"It should just work, it's a standard integration" is the phrase that precedes almost every timeline blowout we've seen on projects we've inherited from other agencies. Standard rarely means simple once you're actually inside a specific vendor's implementation, and finding that out during scoping costs nothing. Finding it out in week four of a six-week project costs the whole relationship some trust.
Define what a revision round actually includes
"Two rounds of revisions" means almost nothing until both sides define what counts as one round. Ours means: consolidated feedback on a complete set of pages or screens, delivered at once by one person with the authority to make that call, addressed in a single coordinated pass by our team. A client sending five separate one-line emails over two weeks, each contradicting the last, isn't using two rounds. It's using an open-ended one, and pretending otherwise just delays the moment everyone has to have the actual conversation.
We say this plainly in the proposal itself, with an example of what a well-consolidated revision round looks like versus a scattered one. Most clients appreciate the clarity once they see it spelled out, because the alternative, an agency quietly getting frustrated and never saying why, is worse for everyone involved and usually shows up as passive friction rather than a clear conversation.
"Two rounds of revisions" means almost nothing until both sides define what counts as one round.
Write down what's explicitly out of scope
The most useful line in most of our proposals is the one that says what we're not doing. Copywriting, professional photography, ongoing maintenance after launch, a second language version of the site, integration with a tool the client mentioned once in passing but didn't formally request: if it's not happening as part of this engagement, we say so in writing, in a dedicated section, not buried in a footnote.
This isn't about being defensive or trying to avoid extra work. An assumption left unstated has an uncomfortable habit of becoming a disagreement three weeks later, usually right around the moment a client is reviewing an invoice or a delivery and expecting something that was genuinely never part of the agreement. Writing it down costs five minutes at the start. Not writing it down can cost a client relationship at the end.
None of this makes scoping fun, and it usually adds a day or two to how long a proposal takes to put together. It makes scoping boring in a genuinely useful way: by the time a project actually starts, both sides already agree on what "done" looks like, in writing, which is the entire point of choosing fixed price over an open-ended hourly arrangement in the first place.
What happens when a client's own stakeholders disagree on scope
A surprising amount of scope ambiguity doesn't come from us and the client disagreeing. It comes from two people on the client's own side who never actually aligned on what they wanted before the project started, a marketing lead picturing one thing and a founder picturing another, both signing off on the same proposal without realizing they'd read it differently.
We now ask directly during scoping who the single final decision-maker is for sign-off, and we route every scope confirmation through that one person specifically, copying the rest of the team for visibility. It feels slightly bureaucratic to set up. It has quietly prevented more disputes than any clause we've ever added to a contract.
We also keep a short internal glossary of terms that have caused confusion before, things like "page" or "integration," with a one-line definition of exactly what we mean by each. New team members read it before their first scoping call, and it's saved more than one awkward mid-project clarification that used to happen every few months before we wrote it down properly.