Project Quote Calculator

Turn your hours, rate, project expenses and profit margin into a fixed project price. See what your own time really earns, and how far the job can run over before it stops paying your rate.

Your numbers

1. The work

Your best estimate of the hours the job will take.
Currency. What you charge for one hour of your time.
Extra hours you expect for revisions, rework and communication, as a percentage of your estimate. Enter 0 for none.

2. Costs and margin

Optional. Currency. Costs you expect to incur for this project. They sit inside the quote and earn margin.
Optional. The share of the final price you keep as profit. Must be below 100.

What a fixed-price quote actually has to cover

When you quote a fixed price, you are not selling hours. You are selling a finished result for a number you cannot change later. That number has four jobs to do at once.

It has to pay for the hours you expect to work, including the ones that are easy to forget: the revision round, the rework after feedback, the calls and the email. It has to recover anything you buy for the job, like stock assets, a font licence or a subcontractor day. It has to leave you a profit above all of that. And it has to survive the job running longer than you planned, because once the price is fixed, every extra hour comes out of your own pocket.

That last one is the difference between a quote and an estimate. An estimate says what you think the work will cost. A quote commits you to a price for the scope and terms you defined, and work outside that scope is a change order or a new quote rather than something the original price absorbs. Moving from one to the other means taking on risk, and the price has to reflect that.

This calculator takes your hour estimate, your rate, a scope buffer, your project expenses and your target profit margin, and turns them into a single number you can say out loud. Then it tells you two things most quoting tools do not: what your own time actually earns at that price, and how many hours you could work before that price stops covering your rate.

Why hours times rate is not a quote

The instinct is to multiply. Forty hours at $100 an hour is $4,000, so quote $4,000.

Run those numbers through the calculator with no buffer and no margin and that is exactly what you get: a quote of $4,000, a base cost of $4,000, a profit of $0.00, and an effective rate of $100.00 an hour. The arithmetic is right. The pricing is not.

Two things are missing. The first is the work you have not counted. Actual hours can differ from an estimate, and revisions, communication and rework that were never counted are where that difference tends to show up. On a fixed price, that difference is yours to carry. The second is profit. At $4,000 you have covered your costs and earned nothing for carrying the risk of a fixed price.

Notice what the effective rate tells you there. It reads $100.00 an hour, which is exactly your input rate. That is the signature of a quote with no margin in it. You are working at cost.

The scope buffer: pricing the hours you actually expect to spend

The scope buffer adds hours to your estimate before the price is worked out. If you enter 40 hours and a 25% buffer, the calculator prices 50 hours.

Two things about the buffer are worth being precise about, because getting them wrong leads to bad quotes.

The buffer is labour, not profit. Those extra hours are priced at your hourly rate exactly like every other hour. They go into your cost base. They are not a risk premium and they are not margin. The buffer is you saying "this job will really take fifty hours, not forty" and pricing it honestly.

The buffer is not a guarantee. It prices the revision and rework time you anticipate. It does not protect you against a client who changes what they asked for. Work outside the assumptions your quote was built on is a scope conversation and a new quote, not something a bigger buffer absorbs after the fact.

Here is what the buffer does to the price on a 40 hour, $100 an hour job at a 20% margin:

BufferHours pricedQuote
0%40.00$5,000.00
10%44.00$5,500.00
25%50.00$6,250.00
50%60.00$7,500.00

How big should yours be? This page does not publish a recommended percentage, and you should be suspicious of any that does. The right buffer depends on things only you know: how clearly the scope is written down, how many revision rounds you have agreed to, how fast the client responds, and how often work like this has run long for you before. Look at your last few projects, compare the hours you estimated against the hours you actually logged, and start there.

Margin is not markup

This is the section worth reading twice, because the two words get used interchangeably and they produce different prices.

Markup is a percentage of your cost. Margin is a percentage of your price. They are not the same thing, and margin is the one that tells you what you actually keep.

Take a $5,000 cost base and a target of 20%.

  • A 20% markup means cost times 1.20, which is $6,000.00. Your profit is $1,000 on a $6,000 sale, so the margin you actually delivered is 16.67%, not 20%.
  • A 20% margin means cost divided by 0.80, which is $6,250.00. Your profit is $1,250.00 on a $6,250.00 sale, which is 20% exactly.

The gap is $250 on a single job, and it goes the wrong way every time.

This calculator uses margin. The formula is your cost divided by one minus your margin. If you want to see the relationship from the other direction, the Profit Margin and Markup Calculator does exactly that.

It appears in published pricing guidance, where a formula labelled as margin is sometimes the markup formula written out. If you are copying a pricing rule from somewhere, check which one it is by testing it: take the price it produces, subtract the cost, divide by the price. If that does not give you the percentage you asked for, you were using markup.

What counts as a project expense, and how this calculator prices it

Project expenses are the things you buy specifically for this job. Stock photography, a font or plugin licence, print costs, a subcontractor's invoice, travel, a paid API tier you spun up for the build.

They are not your ongoing overhead. Your laptop, your software subscriptions, your insurance and your desk are generally overhead rather than project-specific expenses. This calculator assumes your hourly rate is sufficient to cover that overhead. If it is not, your rate is the thing to fix, and the Freelancer Hourly Rate Calculator is where to fix it.

How this calculator prices them, stated plainly: project expenses go inside the cost base, and they earn margin along with your labour. They are not passed through at cost.

That is a deliberate choice, and here is what it does. Take the 60 hour job below with $1,200 of expenses at a 30% margin. The quote is $9,107.14. The same job with no expenses at all quotes $7,392.86. The difference is $1,714.28 for $1,200 of spending, so the expenses brought in $514.28 more than they cost.

That extra is not a trick. You paid for those materials up front, you carried the money until the client paid you, and you did the admin of sourcing and invoicing them. The margin on expenses is what pays for that.

The trade-off you should know about: if a client asks to see your expenses itemised at cost, they will be looking at a marked-up number. Some contracts require true reimbursement at cost instead. That is a different arrangement and this calculator does not model it. If that is what you have agreed, quote your labour here and add the reimbursed costs separately outside the tool.

Reading your effective hourly rate

The effective hourly rate is the figure that tells you whether the quote is any good. It is what your own time earns at this price, once the money that exists to cover your project expenses is taken back out.

That subtraction matters. On the 12 hour job below, the quote is $1,360.00 and it looks like $113.33 an hour if you just divide by the hours. But $340 of that quote is there to replace money spent on materials. It is not income. Take it out and the real figure is $85.00 an hour, which is exactly the rate that was entered. Zero buffer and zero margin means you are working at your rate and no more, and the effective rate says so.

Both tables below use the same job, 40 hours estimated at $100 an hour with no project expenses: the first holds the margin at 20% while the buffer varies, the second holds the buffer at 25% while the margin varies, so the overrun tolerance figures are specific to those conditions rather than general.

Now the part that is genuinely not obvious. With no project expenses, your effective rate is your rate divided by one minus your margin, and the scope buffer does not change it at all:

BufferEffective rateOverrun tolerance
0%$125.00/h50.00 h
25%$125.00/h62.50 h
50%$125.00/h75.00 h
100%$125.00/h100.00 h

Every one of those is $125.00 an hour, because the buffer adds hours to both the price and the hours you are dividing by. Margin is what moves the rate:

MarginEffective rateOverrun tolerance
0%$100.00/h50.00 h
20%$125.00/h62.50 h
40%$166.67/h83.33 h

So the two controls do different jobs. Margin is the lever on your effective rate. The buffer is the lever on your overrun tolerance. If the effective rate looks thin, raising the buffer will not help. Raise the margin.

Project expenses push the effective rate slightly above that identity, because the margin earned on them is compensation too.

How many hours you can overrun before your time stops clearing your rate

The overrun tolerance is the hour count at which your effective rate falls to the rate you entered. Past that point, the fixed price is paying you less per hour than you say your time is worth.

Take the first worked example: 40 hours estimated, $100 an hour, a 25% buffer, a 20% margin. The quote is $6,250.00 and the tolerance is 62.50 hours. Here is what the same quote earns you at different actual hours:

Hours you actually workWhat your time earned
50.00 (as planned)$125.00/h
55.00$113.64/h
62.50 (the tolerance)$100.00/h
70.00$89.29/h
80.00$78.13/h

At 62.50 hours you are earning exactly your stated rate and nothing above it. At 80 hours you are working for $78.13 an hour on a job you priced at $100.

How to use this number. Before you send the quote, ask yourself honestly how long this job could take if it goes badly. Not how long you expect, how long it could take. Comparing that figure against your tolerance is decision information. If the two sit close together, that is a reason to revisit your hour estimate, your scope assumptions, your buffer, your target margin, or whether fixed-price billing fits this project at all. The calculator gives you the number; which of those to change is your call.

When to quote hourly instead

A fixed price is not always the right answer, and the calculator can tell you when it is not.

Quote fixed when the scope is written down and specific, you have done work like this before and your estimates have been close, the revision rounds are agreed in advance, and your overrun tolerance sits comfortably above your realistic worst case. A fixed price is easier for the client to approve, it rewards you for getting faster, and it ends the conversation about hours.

Quote hourly when the scope is still being worked out, the client has a history of changing direction, the job depends on things outside your control like third party approvals or content you have not seen, or when your realistic worst case is above your overrun tolerance and raising the price enough to cover it would lose you the job.

The middle option is worth knowing about. Quote a fixed price for a tightly defined first phase, do that work, and then quote the rest once you know what the rest actually is. That converts an unknowable project into a knowable one and gets you paid for finding out.

If what you are really deciding is whether the work covers your costs at all, the Break-Even Calculator answers that question directly.

Common mistakes

Quoting hours times rate and stopping there. No buffer, no margin, all the risk, none of the reward.

Using markup when you meant margin. A 20% markup delivers a 16.67% margin. Every job, quietly, in the wrong direction.

Forgetting the hours that are not the work. Kickoff calls, feedback rounds, the email thread about the email thread, exporting and delivering files. These are hours. Either count them in your estimate or cover them in your buffer.

Treating the buffer as profit. It is labour. If you add a 25% buffer and no margin, you have not made a single extra dollar of profit, you have just priced the hours you were always going to work.

Reading the raw quote as income when there are expenses in it. The money covering your materials is not pay. That is the whole reason the effective rate is on this page.

Quoting fixed on a scope nobody wrote down. If you cannot list what is included, you cannot price what is included, and neither can you say what is excluded when it turns up.

Discounting the quote without changing the scope. If the price comes down and the work does not, the difference comes out of your effective rate. Take something out of scope instead.

Worked examples

A clean project with no expenses. 40 hours estimated, $100 an hour, a 25% buffer, no project expenses, a 20% margin.

The buffer prices 50.00 hours. Labour is $5,000.00, which is also the base cost. The quote is $6,250.00, of which $1,250.00 is profit. Your own time earns $125.00 an hour, and you could work up to 62.50 hours before that drops to the $100 you entered.

A small job with expenses and no margin. 12 hours, $85 an hour, no buffer, $340 of project expenses, no margin.

Labour is $1,020.00, expenses are $340.00, so the base cost is $1,360.00 and the quote is $1,360.00 with $0.00 profit. The effective rate is $85.00 an hour, exactly the rate entered, and the tolerance is 12.00 hours, exactly the hours entered. This is what working at cost looks like. Dividing the quote by the hours would have suggested $113.33 an hour, and that figure would have been the $340 of materials counted as if it were pay.

The full chain. 60 hours, $75 an hour, a 15% buffer, $1,200 of project expenses, a 30% margin.

The buffer prices 69.00 hours. Labour is $5,175.00, plus $1,200.00 of expenses, giving a base cost of $6,375.00. The quote is $9,107.14, of which $2,732.14 is profit. Your time earns $114.60 an hour and the tolerance is 105.43 hours, which is over 36 hours of headroom above the 69 you planned.

FAQ

Should I quote a fixed price or hourly?+

Fixed when the scope is specific, your past estimates have been close and your overrun tolerance clears your realistic worst case. Hourly when the scope is still moving or the job depends on things you do not control. Section 8 above goes through the trade-offs, and a phased fixed price is a good middle option.

How big should my scope buffer be?+

This page does not give you a number, because nobody can give you an honest one without knowing your work. Compare the hours you estimated against the hours you actually logged on your last several projects, and let that gap set your starting point. Then adjust for how clear the scope is and how many revision rounds you have agreed.

Is this margin or markup?+

Margin. Your cost divided by one minus your margin. If you want a 20% margin, the calculator prices so that 20% of the final quote is profit. A 20% markup would produce a lower price and deliver a 16.67% margin instead.

Do my expenses earn margin, or are they passed through at cost?+

They earn margin. This calculator puts project expenses inside the cost base before the margin is applied, so they are marked up along with your labour. If your agreement requires true reimbursement at cost, quote your labour here and add those costs separately outside the tool.

What if the project takes longer than I estimated?+

That is what the overrun tolerance is for: it tells you how many hours you can absorb before your effective rate drops to your stated rate. But be careful with this. The buffer prices the rework you anticipated. If the job runs long because the client changed what they asked for, that is not overrun, that is new scope, and it needs a new quote rather than a bigger buffer.

Should I include my own time for calls and email?+

Yes. Those hours are real and they are billable work even on a fixed price. Either put them in your hour estimate directly or make sure your buffer is sized to cover them. Leaving them out is one of the most reliable ways to underquote.

What if the client asks me to itemise the quote?+

You can show the breakdown this calculator produces: hours priced, labour cost, expenses and the total. Be aware that the expense line has margin in it, so it is not a receipt. If the client needs costs shown at cost, agree that before you quote and handle those items separately.

  • Freelancer Hourly Rate Calculator - this calculator assumes your rate already covers your overhead and taxes. That is where you work the rate out.
  • Profit Margin and Markup Calculator - the margin and markup relationship from the other direction.
  • Break-Even Calculator - whether the work covers its costs at all.
  • Invoice Late Fee Calculator - what happens after the quote is accepted and the invoice is not paid.

Disclaimers

This calculator is a pricing model, not financial, tax or legal advice, and not a market study. It tells you what a price would need to be to hit the margin you asked for. It does not tell you whether a client will accept it.

It does not account for taxes of any kind, including self-employment tax and sales tax or VAT. It does not account for payment terms, deposits, milestones, late payment or non-payment, platform or marketplace commissions, or the time value of money on staged payments. It prices one hourly rate across the whole project, so it does not handle different rates for different kinds of work.

The effective hourly rate and the overrun tolerance are figures this calculator defines and computes for you. They are not standard industry metrics and you will not find them published elsewhere under those names. The scope buffer is your own input, not a recommended or established figure.

Check the output against your own judgement and your own records before you send a price to a client.

Scroll to Top