Skip to content
How I quote fixed-price websites without getting burned (my scope doc, stolen from my own mistakes)
article3 min read165 viewsSep 25, 2026

How I quote fixed-price websites without getting burned (my scope doc, stolen from my own mistakes)

Ben Carter@bencarter_web

September 25, 2026 · 3 min read

165 views2 comments

Quick intro: I build websites for small businesses in Austin. Restaurants, gyms, and a taco truck with very strong opinions about fonts. For years I quoted fixed prices and got burned on about half of them. Not because clients were evil, but because "a website" means something different to everyone. Here's the scope doc I use now. It turned my projects from loss making to boring, and boring is the dream.

1. The discovery call is free, the quote is not a guess

30 minute call. I ask: how many pages, who writes the content, what has to happen on the site (book a class, order food, just look pretty), and who says yes at the end. That last one matters alot. If the answer is "me and my brother-in-law", budget an extra round of revisions for the brother-in-law.

2. The "not included" list is longer than the "included" list

This is the whole trick. Every quote has a section called Not Included with things like copywriting, logo design, product photos, online ordering integration, migrating old blog posts, and "small changes" after launch. Clients don't read it until it matters, and then its already there in writing and nobody has to be the bad guy.

3. Two rounds of revisions, defined

A round is one consolidated list of changes sent in one message. Not 14 texts across a weekend. Round three is billed at my hourly rate, and I say the rate up front.

4. The content deadline clause

The thing that killed my timelines was never code. It was waiting for content. Now the contract says if content isn't delivered 3 weeks after design approval, we either launch with placeholder text the client replaces themselves, or the project pauses and restarting has a fee. I've charged the restart fee exactly once. Everyone else suddenly found time to write their About page.

5. 50% deposit, 50% before launch

Not after launch. Before the DNS switch. Once a site is live the urgency to pay drops to roughly zero. I learned this from a gym. The gym was very strong. The invoice was very weak.

6. A care plan, offered at the end

Hosting, updates, backups and up to an hour of small changes a month for a flat fee. This is where "small changes" go to live instead of eating my weekends. About half of clients take it and its now a third of my income.

None of this is clever. Its just writing down the arguments before they happen. Anyway that's my scope, hope this post wasn't out of scope for the site. I'll see myself out.

Written by

Ben Carter

Freelance web dev in Austin. Websites for restaurants, gyms and one very demanding taco truck. WordPress refugee, now mostly Next.js. Dad jokes included at no extra charge.

Get the best of Dynamo Geeks weekly

One email each Monday with the most useful posts. No spam; unsubscribe in one click.

Comments

2

Sign in to join the conversation.

Sign in to comment
Chloe Barnes@chloebuilds
the content deadline clause would have saved my entire agency career. we once waited 4 months for a bakery to send 'the good photos'. they never came
2 net votes
Kevin Tran@kevtran_dev
the gym was very strong the invoice was very weak 😭 saving this for when i start freelancing on the side
0 net votes