Project Cost Calculator

A three-point estimate turned into a quote: PERT expected hours, a 90 percent range, non-billable time, and contingency as a line you can defend.

Live output

Enable JavaScript to customise; default output below.

Everything goes right. This is the number most people give when asked for one estimate.

What would have to go wrong, and how long that would take. If you cannot name it, the estimate is not ready.

Meetings, email, context switching. It does not change the fee; it changes how long the work takes to deliver.

The price of the uncertainty you have written down. A line item you can defend, rather than padding you will give away.

For the calendar estimate. Zero skips it.

Live preview project-cost.txt
Optimistic                40.0 h
Likely                    60.0 h
Pessimistic               120.0 h
Expected, PERT weighted   66.7 h
Standard deviation        13.3 h
68% range                 53.3 to 80.0 h
90% range                 44.7 to 88.6 h

Rate                      £85.00 an hour
Billable work             £5,666.67
Contingency at 15%        £850.00
Net                       £6,516.67
Tax at 20%                £1,303.33
Total                     £7,820.00

Quote as a range
  90% low                 £5,247.22
  Expected                £7,820.00
  90% high                £10,392.78

Non-billable time at 25%
  Calendar hours needed   88.9 h
  Weeks at 30.0 h a week  3.0

The expected figure is the PERT weighting: (40.0 + 4 × 60.0 + 120.0) ÷ 6
= 66.7 hours. It sits above the likely case whenever the bad case is
further away than the good one, which is usually, and that gap is the
estimate people leave out.

Quote the range rather than the point. £5,247.22 to £10,392.78 covers 90
percent of the outcomes if the three estimates were honest. A single
number is read as a commitment, and the commitment you can keep is the
top of that range rather than the middle.

25% of the working day is not billable, so 66.7 hours of work occupies
88.9 hours of calendar. That is meetings, email, context switching and
the fifteen minutes after an interruption. A plan built on billable
hours alone is late before it starts.

Contingency is not padding. It is the price of the uncertainty you have
already written down: £850.00 here. Padding is a number added quietly
and removed under pressure; contingency is a line item you can defend,
and the way to defend it is the pessimistic estimate that produced it.

The order of the arithmetic matters: contingency is a share of the work,
the discount comes off the subtotal, and tax is charged on what is left.
Taxing before discounting overstates the total, and it is the most
common mistake in a hand-built quote.

The standard deviation is only as honest as the pessimistic case. If it
was written down to look reasonable rather than to describe what could
actually happen, the range is decoration. The useful question for that
field is "what would have to go wrong", and the answer usually adds
hours.

Output is valid and updates as you type.

Asked for one number, people give the optimistic one. The planning fallacy is among the most replicated findings in the field: a single estimate lands near the tenth percentile of what actually happens.

A three-point estimate asks for the best case, the likely case and the bad case, and combines them:

expected = (optimistic + 4 × likely + pessimistic) / 6

The value is not the precision. It is that writing down the pessimistic number forces the conversation about what could go wrong, and the spread gives you a range with a confidence attached instead of a figure with a shrug attached.

The other thing this insists on: a day is not eight billable hours, and an estimate that assumes it is will be wrong by a third before anybody writes any code.

How to use

  1. Put in the three estimates in hours. If you cannot name the pessimistic case, the estimate is not ready.
  2. Put in your rate and the share of the day that is not billable.
  3. Set contingency as a line you are prepared to defend.
  4. Quote the range.

Example

40, 60 and 120 hours at £85, with 25 percent non-billable time, 15 percent contingency and 20 percent tax:

Expected, PERT weighted   66.7 h
Standard deviation        13.3 h
68% range                 53.3 to 80.0 h
90% range                 44.7 to 88.6 h

Billable work             £5,666.67
Contingency at 15%        £850.00
Net                       £6,516.67
Tax at 20%                £1,303.33
Total                     £7,820.00

Quote as a range
  90% low                 £5,247.22
  Expected                £7,820.00
  90% high                £10,392.78

Non-billable time at 25%
  Calendar hours needed   88.9 h
  Weeks at 30.0 h a week  3.0

The expected figure is 66.7 hours, not the 60 somebody would have said. The gap is the pessimistic case doing its job.

Pitfalls

Quote the range, not the point. A single number is read as a commitment, and the one you can keep is the top of the range rather than the middle. £5,247 to £10,393 is an honest quote; £7,820 is a promise you will be held to.

The standard deviation is only as honest as the pessimistic case. If it was written to look reasonable rather than to describe what could actually happen, the range is decoration. The useful prompt for that field is “what would have to go wrong”, and the answer usually adds hours.

Non-billable time is real and it is about a third of the day. Meetings, email, context switching, and the fifteen minutes it takes to get back into the work after an interruption. It does not change the fee; it changes how long the work takes to deliver, which is what the client is actually asking about.

Contingency is not padding. Padding is a number added quietly and given away under pressure. Contingency is a line item with a reason attached, and the reason is the pessimistic estimate that produced it.

The order of the arithmetic matters. Contingency is a share of the work, the discount comes off the subtotal, and tax is charged on what is left. Taxing before discounting overstates the total, and it is the most common mistake in a hand-built quote.

Hours are not the only cost. Software, hosting, stock images, a subcontractor, the hour spent on the proposal. If those are not in the rate, they need their own line.

Fixed price transfers the risk to you. That is a commercial decision and it has a price: the 90 percent figure rather than the expected one. Quoting the expected figure as a fixed price means being wrong half the time, by definition.

Compatibility

Arithmetic in the browser: nothing is uploaded and nothing is stored. The share link carries the figures, which is a straightforward way to show a client where a number came from.

The PERT weighting and its standard deviation, (pessimistic − optimistic) ÷ 6, come from the beta distribution the technique assumes. The 90 percent range uses 1.645 deviations either side, which is the standard normal figure; with only three estimates behind it, treat the range as an indication rather than a probability you would bet on.

Calendar hours are the expected hours divided by the billable share, so 25 percent non-billable time turns 66.7 hours of work into 88.9 hours of working time. That is the figure to divide by your weekly availability, and it is the reason a “two week” job takes three.

The tax line is charged on the discounted net, which matches how an invoice works in the UK, the EU and most other VAT and GST systems. For US sales tax on services, check whether the service is taxable at all before adding a line.

Frequently asked questions

Where do the three estimates come from?
From whoever will do the work, asked three separate questions rather than one. “How long if everything goes right”, “how long normally”, and “how long if the thing you are worried about happens”. The third question is the one that produces new information.
Why weight the likely case four times?
It is the PERT convention, and it makes the estimate a weighted average that leans towards the likely case while still being pulled by the extremes. The exact weights matter less than having a pessimistic number in the calculation at all.
Should I show the client the range?
Yes, with the expected figure named. A range with a reason is more credible than a single number, and it gives you somewhere to go when the scope changes. Clients who insist on one number are asking for the top of the range, whether they know it or not.
What contingency percentage is right?
Ten to fifteen percent for work you have done before, twenty-five or more for anything with an unknown in it: a third-party integration, a data migration, somebody else’s legacy code. If the honest answer is fifty percent, that is a sign to break the project up and estimate the first part properly.
How do I handle scope changes?
Separately, with their own three-point estimate. Absorbing them into the contingency is how a project runs out of contingency in week two.
Weekly drops

New tools, when there are new tools

One email when something worth using ships. No schedule to fill, so no filler.

Your address goes nowhere else, and one click unsubscribes.