An agency sends over a Figma file and asks for a number by Friday. The file has eleven frames, all desktop. There is no mobile, no hover state, no empty state for the listing page, and the copy in three sections reads “Lorem ipsum.” You quote it anyway, because the client is waiting and the relationship is new.
Six weeks later the build is forty per cent over the hours, the agency is frustrated because they sold a fixed price too, and both sides are quietly deciding this partnership was a mistake. Nothing went wrong in development. Everything went wrong in the estimate.
Where fixed-price work actually breaks
Across several years of agency subcontracting, overruns cluster into three causes. Not unclear requirements in general, but these three specifically.
1. Undefined states
A design file shows the happy path. Production needs the rest: what the listing looks like with two items instead of twelve, what a form says when it fails validation, what the mega-menu does at 900px, what happens to a card when the client uploads a portrait image into a landscape slot. Each of these is a decision. If the estimate does not name them, someone invents them mid-build, and the invention gets rejected in review.
2. Content ownership
“Copy to follow” is the most expensive sentence in a project brief. Real copy changes layout. A headline written to fit becomes three lines once the client’s legal team has been through it. Building against placeholder text means building twice.
3. Revision rounds without a definition
Everybody writes “two rounds of revisions.” Almost nobody defines what a round is. Is a round one consolidated list, or every message the client sends over a week? Does moving a section count as a revision or a scope change? Without an answer, a round becomes whatever the client decides it is.
The estimate is not an administrative step before the work. It is the first deliverable, and it is the one that determines whether the rest is profitable.
The four questions that resolve most of it
We ask these before quoting anything. They take ten minutes and remove the majority of downstream ambiguity.
Is the copy in this file final, and if not, who signs it off and when?
Which breakpoints are designed, and which are we free to interpret?
Who will edit this site after launch, and how technical are they?
Does feedback come from you, or directly from your client?
The fourth question matters more than it looks. When an agency consolidates feedback, revisions converge. When a client’s comments arrive raw, they contradict each other, and someone has to arbitrate, usually the subcontractor, who has the least standing to do it.
Price the design review separately
Reading a design file properly takes two to four hours on a mid-sized site. Doing it for free, under time pressure, is how bad estimates get made. Charging a small fixed fee for a written design review, a document listing gaps, assumptions and risks, changes the incentive on both sides. The agency gets something useful even if they never hire you. You get to quote from knowledge instead of optimism.
Most agencies say yes to this. The ones who refuse to pay for two hours of thinking are usually the same ones who will argue about the invoice later, which is itself worth knowing early.
What a good estimate contains
Not a single number. A template-by-template breakdown, so the agency can see what is expensive and choose to cut it. Explicit assumptions, written as a list, each one falsifiable. A named definition of a revision round. A delivery date that accounts for their review time, not just our build time. And a line for what is excluded, which is often the most-read part of the document.
An estimate written this way takes longer to produce and gets accepted more often. It is not a sales document. It is the first evidence an agency has about how you think, which is the only thing they are really evaluating.