How to Quote a Freelance Project Without Underpricing
You've got the brief, the client seems great, and now there's a blank space where a number should go. Quote too high and you might lose the job; quote too low and you'll resent every hour of it. Here's how to land on a project price that's fair to the client and protects you from the thing that quietly kills freelance profit: scope creep.
Why "hours × rate" is a floor, not a quote
The instinct is simple: estimate the hours, multiply by your rate, send it. The problem is that human time estimates are reliably too optimistic — the planning fallacy. The 10-hour job becomes 14 once you count the back-and-forth, the "small" extra request, and the revision you didn't budget for. So hours × rate isn't your quote — it's your floor.
Add a buffer for what you can't see
- 20% buffer for familiar work with a clear brief.
- 35–50% buffer for unfamiliar work, vague briefs, new tech, or clients you don't know yet.
This isn't padding for profit — it's pricing the risk you're taking on.
Fixed price means you carry the risk
When you bill hourly, the client absorbs overruns. When you give a fixed quote, you do — if the job runs long, that's your time, unpaid. That's why a fixed-price quote should always be higher than a raw hourly estimate for the same work. You're not just selling hours; you're selling certainty, and certainty is worth a premium.
Turn your hours estimate into a defensible number in seconds with the Project Quote Estimator — it adds your buffer and fixed extras and shows a safe range to quote within.
Define scope before you define price
Undefined scope is the number-one cause of scope creep. Before you send a number, write down:
- Exactly what's included (deliverables, formats, quantities).
- How many revision rounds are covered, and what happens after.
- What's explicitly not included — this line saves more arguments than any other.
Then add a change-request rate: "Additional revisions or scope beyond the above are billed at $[rate]/hour." Now extra work means extra pay.
Quote a range, and anchor high
- Present options, not a single number. A good/better/best structure lets the client choose their budget — and quietly raises your average project value.
- Anchor high. The first number sets the reference point. Start at the top of your range and negotiate down, not up.
Don't forget the invisible costs
- Kickoff calls, emails, and feedback meetings — real, billable time.
- Fixed extras you'll buy for the job — stock assets, fonts, plugins.
- A deposit. Ask for 30–50% upfront, especially with new clients.
Frequently asked questions
How big should my buffer be? 20% for familiar work; 35%+ when the brief is unclear.
Should I show the client my hourly rate? Usually no — quote the project as a whole. (Use the Hourly Rate Calculator to set yours privately.)
What if the project runs over? If it's within scope, your buffer absorbs it. If it's new scope, that's a change request — bill it.
Build a project quote →