# Why do my quotes keep going over budget? Start with your last ten jobs
Source: https://korrel.ai/blog/why-quotes-go-over-budget
Published: 2026-08-10
Updated: 2026-08-04
Topic: why do my quotes keep going over budget
Tags: estimating, cost-tracking
---
## Key points

- Chronic overruns are a pricing problem, not a run of unlucky jobs with unusual conditions.
- Compare quoted labour against actual labour across ten finished jobs before you change anything.
- Optimism bias responds to evidence from your own past jobs, but deliberate underpricing does not.
- Every overrun has a plausible excuse, which is why the pattern matters more than the job.
- A rate corrected from historical actuals loses the bids that were never profitable anyway.

Nobody searches for "estimating variance analysis". They type "why do my quotes keep going over budget" into a phone at half past nine at night. Third job of the year to come in under its own price. A quote goes over budget when the price you agreed is lower than what the work costs to deliver. That gap opened on the day you signed, not on the day the plaster cracked.

Every answer to the question says the same three things. Bad weather. Scope changes. Poor communication.

All true. None of them tells you which one is taking your margin, or how much of it.

There is a narrower question that can. On your last ten jobs, where exactly did the estimate and the final cost part company?

## Why do my quotes keep going over budget?

Because the price came from memory, and memory is edited.

You remember the day rate you charged. You do not remember the two Saturdays, the second skip, or the hour on the phone about the tiles. Nor the fortnight the job sat waiting for a part somebody ordered late. Those hours happened. They just never made it into a record the next quote could read.

Pricing from memory has a direction, and it is always the same one. One trade pricing guide states it flatly: [most tradespeople underestimate by 20 to 30% until they start tracking properly](https://proplaybooks.co.uk/blog/how-to-price-trade-jobs).

Sit with that range for a second. A firm turning over £400,000 with a 20% blind spot is not running a thin margin. It is running someone else's.

## Delusion and deception, the two real causes

Two mechanisms produce chronic underestimation, and only one of them is an accident.

Bent Flyvbjerg, who has spent a career on cost overrun in large infrastructure, sets out [two models for why budgets break so predictably](https://arxiv.org/abs/1303.7403) with Massimo Garbuio and Dan Lovallo. They call them delusion and deception. Delusion is optimism bias: you picture the job running the way it runs when nothing interferes, and you price that version of it.

Deception is strategic misrepresentation. You shade the number down because an honest one loses the work.

Nobody uses that language on a domestic extension. It still happens, every time you shave half a day off the labour because you know the client is getting two other prices. Both end in the same object: a quote that was never survivable.

The difference shows up when you try to fix it. Optimism responds to evidence. Deception responds only to a decision about which jobs you are willing to lose.

An audit deals with the first one directly. Put ten rows of your own numbers in front of yourself and optimism has nowhere left to stand. The second one needs a harder conversation, because it is a choice about pricing rather than an error in it.

## How do you audit your last ten jobs?

Pull the last ten completed jobs and write down, for each one, the quoted figure and what it actually cost you. Five columns will do it.

- The quoted price, and the cost you assumed inside it
- Labour hours quoted against hours actually worked
- Materials quoted against materials invoiced
- Work you did and never charged for, priced at what it would have sold for
- The finish date on the programme, and the real one

Pick the ten you finished most recently, not the ten you remember best. Memory selects for drama. The quiet profitable job is exactly the one it drops, and that job is your baseline.

Hours are the line that goes wrong. That is why practices billing by work stage bother with [tracking time against RIBA stage fees](/blog/track-time-against-riba-stage-fees) rather than against the job as a lump.

The awkward part is reconciling the records. Hours live in one system, invoices in another, and the truth about the job lives in somebody's memory. Korrel holds the estimate and the actuals against the same project, which turns the ten-job comparison into a report instead of an excavation.

A spreadsheet works too. What matters is that the actual sits next to the estimate, job after job, until the pattern stops being deniable. Everything published here on [estimating from evidence rather than memory](/blog/topics/estimating) rests on that one habit.

## Reading the pattern in the variance

Ten rows is not a statistical sample. It is enough to see a direction, and a direction is all you need.

| Job | Quoted labour | Actual labour | Variance | The reason you gave |
|---|---|---|---|---|
| Loft conversion | 120 h | 154 h | +28% | Awkward access |
| Bathroom refit | 60 h | 71 h | +18% | Client changed the tiles |
| Kitchen extension | 240 h | 300 h | +25% | Bad winter |
| Rewire | 40 h | 42 h | +5% | Nothing unusual |
| Garage conversion | 90 h | 115 h | +28% | Steel arrived late |

Every reason in that last column is true. That is what makes them so expensive.

The access was awkward. The winter was bad. Steel did arrive late, and the client really did change the tiles at the worst possible moment. Each one felt like an exception at the time, and together they describe an ordinary year in the trade.

So the unusual event is not unusual. It is your operating condition, and it has been for as long as you have been quoting.

Which means the number worth having is not the variance on one job. It is the variance that survives across all ten. If eight of the last ten ran over on labour, your labour rate is wrong, and no explanation about job seven changes the arithmetic.

Labour is the usual culprit. It is not the only one. If the hours held and the money still went, read the unbilled row instead: the extra visit, the second delivery, the drawing redone for nothing. No invoice sits behind that work, which is exactly why it never gets priced into the next job.

## What do you change once you know?

The rate. Not the story you tell about the job.

If labour consistently runs a fifth over what you priced, add that fifth to the rate and stop treating it as bad luck. Then add contingency on top of the corrected rate, not instead of it. Somewhere in the region of 10 to 25%, depending on how much of the building you cannot see before you start.

Round the corrected figure up rather than down. A rate that lands precisely on your historical average makes every future job a coin flip, and half of those flips are losses you have already agreed to absorb.

Extras deserve the same evidence. Price a change from what delivering it costs you. That is the argument in the guide to [charging for extra revision rounds](/blog/how-to-charge-for-extra-revision-rounds).

Then watch the job while it runs. The [leading indicators that a fixed-price job is losing money](/blog/job-losing-money-before-it-finishes) turn up in week three, months ahead of the final account. Early enough that the information is still worth acting on.

Yes, a corrected rate will cost you some work. Good. It costs you the bids you were going to lose money on, and it hands them to a competitor who has not done this exercise yet.

## What is guessing actually costing you?

More than the jobs you can name. The Get It Right Initiative found [the direct cost of error running at roughly 5% of turnover for Tier 1 contractors](https://getitright.uk.com/reports/research-report/chapter/results), inside a range of 2.5 to 10%. The same report concluded that the total cost of error in construction runs considerably higher than 10% of what construction costs.

Those are the errors that got recorded. The rest are buried in jobs that finished, invoiced, and never got looked at again.

So take the ten files off the shelf tonight. Two columns, quoted hours and actual hours, then the percentage difference between them. If most of that column is positive, stop hunting for causes and change the rate.

## Common questions

### Why do my quotes keep going over budget?

Because the quote is priced from memory rather than from records. Memory drops the unbilled hours. Optimism bias pulls the figure down. Competitive pressure pulls it down again. The repair is a comparison of quoted against actual cost on your last ten completed jobs, followed by a correction to the rate of whatever gap survives across all ten.

### How many past jobs do I need to review?

Ten is enough to see a direction. Fewer than five, and one unusual job distorts everything you conclude from it. You are not after statistical significance. You are after whether the variance points the same way most of the time. A rate that lands low by a fifth on job after job is a pricing decision rather than bad luck.

### Should I add a contingency instead of raising my rate?

Do both, because they cover different risks. A corrected rate fixes what you already know you underprice, such as labour hours on every job of a given type. A contingency covers the specific unknowns of one job, like an unopened floor or an unverified drawing. Using contingency to absorb a known pricing gap only hides the gap.
