The hardest part of quoting is not the arithmetic. It is that your buyer has never bought this before. They have bought a website, maybe, from a cousin. They have bought software as a subscription. They have never bought four weeks of someone's attention.
So when you send a number, they cannot evaluate it. They can only react to it: too expensive, or suspiciously cheap.
01What they are actually comparing
You think the comparison set is other developers. It is not. It is:
- Doing nothing — the spreadsheet still works, sort of, and costs zero dollars this month
- Hiring someone — a salary, a contract, months of commitment
- A SaaS tool — $30/month, configured in an afternoon, does 70% of what they asked for
Your quote is competing with all three at once. Which means the quote has to do more than name a price. It has to make the alternative look expensive.
02Three shapes, pick deliberately
There are only three honest ways to price a project, and each one shifts risk to a different party.
Fixed price. One number, agreed scope, you eat the overrun. Best for a buyer who needs certainty and a builder who has done this exact thing before. The risk you carry is scope creep — so the scope has to be written down, including what is not included.
Phased. Break it into two or three stages, each with its own price and its own decision gate. Best for anything over four weeks, or anything where the client is not sure the idea is right. It also solves the trust problem: the first phase is small enough that a stranger will risk it.
Capped hourly. An hourly rate with a ceiling. Rarely the best choice, but honest when the work genuinely cannot be scoped — an unknown codebase, an undocumented API. The ceiling is what makes it tolerable: "up to 40 hours, and I stop and call you at 30."
What I never do is an open-ended hourly rate with no ceiling. It punishes the client for your slow days and punish you for their changes of mind.
03The one-page quote
Whatever shape you pick, the quote itself should fit on one page and answer five questions:
- What am I getting? Named deliverables, not activities. "A working booking flow with email confirmation", not "development work".
- What is not included? This section protects both of you and is the one everybody forgets.
- When? A date, plus what happens if the client is slow to respond — because they will be.
- How much, and when? The split. 50/50 is normal for a first project.
- What if it changes? New scope, new quote, before any work. Say it plainly.
Five sections, half a page of writing. If it needs more than a page, the scope is too big — split it.
04The thing to say before the number
Never lead with the price. Lead with the reason it costs that.
"Most of this isn't the screens — it's the scheduling logic and the
notifications. That's where the edge cases live, and that's roughly
two thirds of the work. Based on that, it's $3,500 and four weeks."
Now the number lands on top of a reason. Without the reason, the same number reads as arbitrary, and arbitrary numbers get negotiated.
05When they say it is too expensive
Almost always, "too expensive" means "I cannot see what I am buying". The fix is not a discount — it is a smaller first step.
Offer to cut the scope, not the price:
"If $3,500 is past the budget, we can do the booking flow alone for
$1,400 and leave the admin panel for later. You'd have something
usable in ten days."
Discounting the same scope teaches the client that your first number was fiction. Cutting scope teaches them that your numbers mean something.
And sometimes the answer is genuinely no. A buyer whose budget is a fifth of the smallest useful version is not a customer yet — they are someone who will be a customer after they have made their first $500 from the idea.
06What I put in writing every time
- The date the quote expires. Two weeks is normal. It stops the quote from being a standing offer you regret.
- What happens if they cancel — usually: you keep the deposit, they keep what exists so far.
- Who owns what. Code transfers on final payment, and I say that plainly rather than burying it.
None of this is legal theatre. Each line removes a question the client is too polite to ask, and unanswered questions turn into hesitation.
Worth keeping
- They compare you to doing nothing, not to other developers — price against that.
- Fixed, phased, or capped. Never open-ended.
- Give the reason before the number; give scope cuts before discounts.