How to quote a freelance project without underpricing
Quoting raw "hours × rate" feels logical, but it almost always loses money, because human time estimates are reliably too optimistic. This tool turns your hours estimate into a defensible quote by adding a buffer for scope creep and any fixed extras, then showing a safe range to quote within.
Why "hours × rate" is a floor, not a quote
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, the minimum before reality adds its surcharge.
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.
A worked example
Say you estimate a project at 40 hours, your rate is $75, and you add a 20% buffer for the inevitable extras. Here's how the estimator builds the quote:
| Input | Value |
|---|---|
| Estimated hours | 40 |
| Your hourly rate | $75 |
| Base (40 × $75) | $3,000 |
| Complexity buffer (20%) | + $600 |
| Suggested quote | $3,600 |
| Safe quoting range | $3,600 – $4,320 |
The $3,000 "hours × rate" figure was never the quote — it was the point at which you stop losing money. The buffer is what keeps the job profitable when it runs long, which it usually does. Not sure your underlying rate is right? Set it first with the Hourly Rate Calculator.
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 quote should always be higher than a raw hourly estimate: you're selling certainty, and certainty is worth a premium. For when each model fits, see hourly vs fixed-price.
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, how many revision rounds are covered, and what's explicitly not included. Then add a change-request rate so extra work means extra pay.
Tip: present good/better/best options and anchor high. Letting clients pick a tier quietly raises your average project value. For the full method and wording, see how to quote a freelance project.
Frequently asked questions
How do I quote a freelance project? Estimate hours, multiply by your rate for a base, then add a complexity buffer and any fixed extras. Quote the whole project as one number, not a list of hours, and define the scope in writing first.
How big should my buffer be? About 20% for familiar work with a clear brief; 35–50% for unfamiliar work, vague briefs, or new clients. The less certain you are, the bigger the buffer.
Should I quote hourly or fixed? A fixed quote means you carry the overrun risk, so price it above a raw hourly estimate. See hourly vs fixed-price for which suits which job.
Should I show the client my hourly rate? Usually no — quote the project as a whole and frame it around the outcome, not the hours.
Should I take a deposit? Yes — 30–50% upfront is standard and filters out non-serious leads. See should freelancers ask for a deposit.
What if the client says it's too expensive? Hold your rate and cut the scope, not the price. There's a calm way to do it in this guide.