Nobody hands you the arithmetic. You get a total, a list of deliverables and a payment schedule, and you are left to guess which part of that number is design, which part is risk, and which part exists because of something you said in the kickoff call.
Having written a lot of these, here is the inside of one — and, more usefully, which lines move when you change your mind about something.
What is actually inside the number
Almost every fixed-fee quote starts life as an hour estimate with a rate on it, a project-management percentage, and a contingency to cover the parts nobody can see yet. It looks roughly like this:
txt
Discovery, content model, information architecture 18h
Design — 6 unique templates, 2 rounds each 64h
Front-end build + responsive QA 92h
CMS modelling, editor training, documentation 26h
Integrations — CRM push, booking embed 34h
URL map, redirect table, staging verification 12h
QA — accessibility, performance budget, browsers 22h
Project management (~12% of the above) 32h
Contingency (~10% on build lines only) 26hThree things follow from that shape. Design and build hours scale with unique templates, not with page count. Project management is a percentage, so it inflates every other decision you make. And contingency is a direct measure of how much the estimator does not know yet — which is the one line you can reduce by doing nothing more than answering questions.
The lines you control, biggest first
Template count
This is the biggest lever by a wide margin. Cut a bespoke layout and you remove design hours, build hours, responsive QA hours, the project-management percentage on all of it, and the contingency. One template is rarely one unit of cost; it is closer to four.
The conversation worth having is not "can we do fewer pages" — it is "can these three pages be the same template with different content". Usually two of them can.
Who writes the words
A build priced on the assumption that final copy arrives in week two, then run on copy that the agency drafts and six stakeholders review, is a different project with a different number. Deciding this up front costs nothing. Discovering it in week five costs a re-plan.
Decision latency
The cheapest thing a client can do is answer quickly with one voice. The most expensive is a review process where feedback arrives in fragments from people who disagree with each other. Estimators cannot put "slow approvals" on a quote, so they put it in contingency instead — and if they have worked with a committee before, they put a lot in.
Name one decision-maker with the authority to sign off a design round. It is worth more than any discount you will negotiate.
What quietly adds a risk premium
A good estimator is not pricing the work, they are pricing the work plus the odds that it is not what it looks like. Four things reliably widen that spread:
- An integration with a system nobody has read the docs for. "It has an API" covers everything from a clean REST endpoint to a SOAP service behind a VPN with a sandbox that is down. Until someone has looked, that line is a range, not a number.
- An existing site with traffic and no URL inventory. Migrating a site is low-risk when you know what is on it. If nobody can say how many URLs are indexed, the redirect work is unbounded.
- Unnamed stakeholders. "We will need to run it past the board" introduces a review round that has not been scoped and cannot be scheduled.
- Content that does not exist yet in any form. Not "needs rewriting" — genuinely absent. Case studies nobody has written, photography nobody has taken, a services list that has never been agreed internally.
You can collapse all four before you ask for a quote, and every one of them makes the number both lower and more likely to hold.
Four cuts that do not cost you later
- Launch with fewer templates and add them when you have the content. A site with six excellent templates beats one with eleven, three of which are filled with placeholder text a year later.
- Use well-chosen existing components for solved problems. A booking calendar, a map, a video player. Bespoke versions of commodity components are where budgets go to die with nothing to show for it.
- Phase the integrations. Launch with a form that emails and spreadsheets the lead; add the CRM sync in month two, once you know the fields you actually want. The second version is always cheaper than the first guess.
- Supply photography and brand assets in usable form. Sourcing, licensing and retouching are real hours that nobody enjoys paying for.
Three cuts that will cost you more than they save
- Dropping the redirect map. It is one of the smallest lines on the estimate and the only one that can cost you organic traffic you spent years earning. Cutting it to save a few hours is the worst trade available in a website project.
- Dropping the accessibility and performance pass. Both are cheap as requirements held from the first commit and expensive as a retrofit, because the retrofit means revisiting decisions baked into the design. If a quote does not mention either, it is not a saving — it is a different scope.
- Skipping the content model. A site where adding a service, a case study or a location needs a developer is a site you will rebuild early. Ask what it looks like with three times the content on it.
Comparing two quotes that are not comparable
Most of the time the gap between two quotes is not margin, it is scope. Before you compare totals, normalise four things: the number of unique templates, who writes the copy, whether the redirect map is included, and what month two costs. Once those four match, the remaining difference is the actual price difference — and it is usually much smaller than the headline suggests.
The same normalising applies when you are weighing different kinds of supplier, which is a scope question before it is a price question. We walk through that in agency versus freelancer and custom build versus template.
What we do
We scope by template, name the content arrangement in writing, price integrations as individual lines, and include the URL map in every redesign. When a smaller build would serve you better, we say so, because a site you can afford to maintain beats one you cannot. The current ranges are on the pricing page — actual numbers, no form in front of them.