SolisReach
← Journal
Working with us5 min read

How we scope a fixed-price project without padding the estimate

Written by the SolisReach team

Every agency says they do fixed-price work. Fewer can explain how they arrive at the number without either padding it heavily to cover their own uncertainty, or underquoting and clawing the margin back through change orders. We run a specific process before any number goes into a proposal, and it's worth walking through because it's also exactly what we'd tell a client to ask any vendor for.

The short version: padding is what happens when an estimate has to cover uncertainty the agency hasn't actually investigated. The fix isn't a better guess, it's removing the uncertainty before the number gets written down at all.

Scope gets written before price does

The proposal isn't a price with a scope attached. It's a scope document, reviewed by the client, with a price attached to that specific document. Every page, every integration, every piece of content responsibility is named. If it's not named, it's not included, and both sides know that going in rather than discovering it during week six.

We've seen the alternative play out at other agencies clients have left to come to us: a one-page proposal with a number and a paragraph of marketing language about the process, no line-item detail. That kind of proposal isn't actually pricing the project, it's pricing a rough impression of the project, and the gap between impression and reality is exactly where change orders start piling up three weeks in.

We break the estimate into knowns and unknowns separately

A homepage rebuild is a known: we've built dozens, the range of effort is narrow. A custom integration with a client's internal inventory system none of us have seen is an unknown, and we scope it with a discovery phase billed separately before committing to a fixed number for the build itself. Mixing known and unknown work into one blended estimate is exactly how agencies end up padding everything to cover the unknown pieces, which makes clients pay a premium even on the predictable parts.

In practice this means a proposal sometimes has two numbers in it: a fixed price for the parts we can scope precisely today, and a separate, capped discovery engagement, usually one to two weeks, to investigate the unknown piece before quoting it. Clients occasionally push back on this at first because it feels like two sales conversations instead of one. It almost always saves them money, because the alternative is paying a padded premium on the entire project just to cover a risk that lives in one small corner of it.

The number includes one full revision round, not infinite ones

"Unlimited revisions" sounds generous and is usually a sign the estimate was padded to absorb exactly that risk. We scope one structured revision round into the fixed price and price additional rounds separately if needed. In practice, most projects don't need more than that when the brief was clear going in, and the ones that do are usually surfacing a scope gap worth naming directly rather than quietly absorbing.

This is also why the discovery call matters more than most clients expect. A rushed thirty-minute call produces a vague scope, and a vague scope is where padding hides. A real scoping session, even a short one, is the cheapest insurance either side has against a bad number.

What we actually ask in that scoping session

The questions aren't creative, they're deliberately boring: how many unique page templates, not pages, does the site actually need. Who's writing the content, and by when. Which third-party systems does it need to talk to, and does anyone on our side have direct experience with that specific API. What does "done" look like for the client, in terms they'd actually use in a sentence, not a vague sense of satisfaction.

Every one of those answers changes the number. A client who says "we'll have all copy ready before kickoff" gets a different price than one who says "we'll figure out copy as we go," because the second answer means our team is doing content strategy work whether it's named in the contract or not. Naming it up front means pricing it up front instead of discovering it as an unplanned cost mid-project.

The questions aren't creative, they're deliberately boring: how many unique page templates, not pages, does the site actually need.

Why padding actually costs the client more, not less

The instinct to want a fat number "just in case" is understandable from the agency side, but it's a worse deal for the client than it looks. A padded fixed price means the client pays the same inflated number whether the project goes smoothly or hits every possible snag, because the padding is baked in regardless of outcome. A tightly scoped price paired with a clearly priced change-order process means the client only pays extra for the things that actually turn out to be extra.

Most projects, scoped well, don't need many change orders at all. When they do, having a pre-agreed rate for additional work removes the awkward negotiation that would otherwise happen mid-project, when the client has the least leverage because the work is already underway.

How we handle change requests that come up anyway

Even a well-scoped project surfaces genuine mid-project changes: a client's business needs shift, a competitor launches something that changes the brief, or the discovery phase for an unknown piece reveals it's bigger than expected. We log every one of these as a written change order with its own price and timeline impact, signed off before the work starts, rather than absorbing it silently into the existing scope or letting it become an argument at delivery.

This does mean occasionally telling a client "yes, we can do that, and here's what it adds to the price and the timeline" instead of just saying yes. Clients tell us afterward that they actually prefer this, because it means every dollar they're spending is visible and justified rather than buried inside a padded number they never fully understood.

The trust this builds compounds over repeat projects

A meaningful share of our work comes from clients returning for a second or third project. That repeat business is a direct result of the first project's actual cost matching the quoted cost closely, because a client who got burned by scope creep once, whether by us or a previous vendor, becomes deeply skeptical of any fixed number afterward. Being boringly accurate on the first engagement is what earns the benefit of the doubt on the second.

Start a project

Want this applied to your site?

We run a Core Web Vitals and SEO audit before quoting any performance marketing engagement, and we're happy to share what we'd find on yours.