Quoted against actual, auditing your own estimates
Job 7118 was quoted at $1.28 and ran at $1.37. Across 3.4 million pieces that is $306,000 the estimate did not carry. Nobody on that floor was careless. The quote was built the way every quote there gets built, and it was 7 percent light in a direction nobody checked.
Quoted against actual is the least run report in estimating and the only one that makes the next quote better. It needs no new software and it takes an afternoon a month. It closes the loop that cutting response time from 10 days to 1 opens.
What a quoted against actual comparison needs
Two numbers per operation, on the same job, at the same level of detail. The quoted routing with its times and rates, and the booked actuals from the job when it ran.
That sounds obvious and it is where most attempts fail. If the quote carries 7 operations and the floor booked everything to one job number with no operation breakdown, the comparison is a single variance with no cause, which tells you the job was late and nothing about why.
The fix is upstream and it is a data collection decision rather than an estimating one. Booking time against operations rather than against jobs is what makes the report possible, and it is the same structure the quote already uses.
Where the quote was written outside the system and never came back in, this gets harder again. A quote that writes its routing into the ERP on award is the arrangement that makes the audit a query rather than an archaeology project.
Reading a single job, operation by operation
On Job 7118 the interesting fact is not the 7 percent. It is that 6 operations were close and one was not. Material, rotary transfer, wash, grind, carbonitride and zinc nickel all landed near their quoted figures.
The hone bore did not. It was carried at $0.135 and ran at $0.141, which is 4.4 percent on that line, and because the hone is one of the larger lines it moves the whole part. At this volume that single operation is worth $7,200 a year.
One line usually carries the miss.
That pattern repeats across jobs. Estimating errors are rarely spread evenly, because most operations on most parts are things the floor does constantly and estimates well. The misses concentrate in the operations that are unusual, tight, or done on a machine whose real cycle time nobody has measured recently.
Finding which operation carried the miss is the entire value of the report. A part that ran 7 percent over teaches you nothing. A hone that runs 4 percent over on every job in a family is a number you can fix once and benefit from for years.
Why the drift is systematic rather than random
Random error averages out and systematic error compounds. If your hone estimates are consistently light, every part in that family is quoted light, and the more of that work you win the worse the year gets.
The causes are usually structural. A burdened rate built on optimistic utilisation makes every line slightly light. A cycle time taken from the machine catalogue rather than from the floor makes one operation light. A setup figure that has not been reviewed since a fixture changed makes short runs light.
The test for systematic drift is simple. Plot enough jobs and look at whether the misses sit either side of zero or mostly on one side. Scatter is noise and needs no action. A consistent lean is a broken input and it is findable.
Winning more work makes systematic drift worse rather than better, which is the counterintuitive part. A floor with a light hone estimate that improves its response time will win more hone work and lose more money doing it.
Drift on one side is a broken input.
There is a selection effect worth naming as well. You only get actuals for jobs you won, and you are more likely to have won the ones you priced light. So the population you can audit is biased toward your own underestimates, which means the true drift across everything you quoted is smaller than the report shows.
That does not make the report less useful. It means the direction is reliable and the magnitude is an upper bound, and knowing which of those you are looking at prevents an overcorrection that then loses work.
The weak match, and quoting with the gap visible
The most useful version of this attaches to the quote rather than to a monthly report. When a new part resembles Job 6975, an estimator should see what that job carried and what it actually ran at, before the number goes out.
That job ran the hone bore at $0.141 against the $0.135 an estimator wanted to carry. Seeing both figures at the moment of quoting is what turns an audit into a decision, and the difference at 1.2 million pieces a year is $7,200.
A weak match is worth flagging rather than hiding. A part where the closest job is only loosely comparable should carry that caveat on the quote, because the estimate is doing more extrapolating than usual and whoever reviews it should know.
Show the gap while it still matters.
Feeding it back without turning it into blame
The report only works if the people who priced the job can look at it without defending themselves. An estimator who expects a variance meeting to be an inquiry will start padding, and padded estimates make the next report useless.
Frame it as calibration. The question is which inputs need updating, not who was wrong, and in almost every case the answer is an input rather than a person. Setup times, cycle times and rates all drift as the floor changes.
Run it monthly on a sample rather than annually on everything. Twelve jobs a month, chosen across part families, produces enough signal to see a pattern without becoming a project nobody has time for.
It also pairs with the loss side of the ledger. A floor that audits the jobs it won and reviews the ones it lost has both halves of the picture, and the 2 reports usually disagree in useful ways. An operation that keeps running over is often the same one making you uncompetitive when you price it honestly.
Then close the loop by actually changing the numbers. A variance report that identifies a light hone estimate and does not update the hone estimate is a meeting rather than a process, and the same finding will appear next quarter.
What this gives you that a model cannot
A should-cost model tells you what a part ought to cost on a theoretical floor. This report tells you what work costs on yours, which is the only number your prices can safely be built from.
It also compounds. Every closed job makes the next estimate in that family better, and after 2 years of it the record contains answers no vendor update will ever ship, because the facts in it happened on your machines.
That is the argument for pricing from history rather than from geometry, and this report is what makes the history trustworthy enough to price from. An unaudited record is just a pile of old quotes.
The floor that runs this has something specific when a customer challenges a line. Not an assertion that the number is right, but a record of what that operation has actually cost across 12 jobs, which is a different kind of conversation from the one a machined part quote can have without it.