❝ Businesses that sell time almost universally count their physical stock and ignore their sold hours. Parts are barcoded, signed for and chased. Labour is quoted once from a book or a habit, then never reconciled against what the work actually took. The gap runs at 5 to 12% of labour revenue in the businesses we look at, sits on top of a net margin that is usually smaller than that, and is invisible because the two numbers involved are recorded in different systems and never joined.
An electrical contractor in Newcastle employs 14 electricians and prices most work fixed. A rewire on a three-bedroom terrace is quoted at 38 hours because it has always been quoted at 38 hours.
Ask the owner what a rewire actually takes and he will say about 38 hours. Ask him where that figure comes from and he will say experience. Ask when it was last checked against a completed job and the answer is that it never has been, because the quote lives in the estimating file and the hours live in the timesheets, and joining the two would take an afternoon nobody has.
He counts every cable drum in the van.
The asymmetry
Every business selling time runs two kinds of stock. One is physical, and the systems around it are excellent. It is ordered against a purchase order, checked in, counted, allocated to a job, and if £180 of it goes missing there is an investigation.

The other stock is hours. It is bought at a fixed monthly cost whether it is used or not, sold at a marked-up rate, and consumed on jobs. £180 of it going missing produces nothing at all, because there is no count to notice it against.
The reason is historical rather than sensible. Stock control was solved by systems built when stock was the expensive thing. In a modern service business labour is usually 60 to 70% of cost of sale, and the controls around it are a quote written before the work and an invoice generated from that quote afterwards. The two documents agree with each other perfectly. Neither of them has any relationship with what happened.
The number is already in your building
The part that makes this worth acting on is that almost nobody needs new data.
If a business quotes labour, the quoted figure is in the estimate. If it employs people who record their time, whether on a workshop terminal, a timesheet, a job app or a practice management system, the actual figure exists too. In the garage group we mapped this week, both had been recorded for six years.
What is missing is the join. Quoted hours live in the sales system and actual hours live in the operations system, and no standard report puts them side by side because the two systems were bought at different times to solve different problems. Producing the comparison means exporting two files and building something, and the person who could build it is the person running the business.
So the comparison never happens, and the absence of the number gets mistaken for the absence of the problem. This is the same shape as most of what process bottlenecks actually cost: the loss is not hidden, it is simply never totalled.
Why one bad estimate is invisible and two hundred are not
A single job overrunning looks like circumstance, and usually is. The bolt was seized. The client changed their mind. The site was not ready.
Every one of those explanations is true individually and useless in aggregate. The garage group had 47 job types running consistently over quote, and the workshop manager could name two of them. He was right about both. He had no way of seeing the other 45, because each instance arrived as a separate small event separated by weeks, and human memory does not aggregate that way.
This is the entire argument for measuring it mechanically. Not because the manager is careless, but because pattern detection across 19,400 events is a task humans are poor at and computers are trivially good at, and the events were already being logged.
The part that is genuinely new
The variance calculation has been possible for thirty years. Subtracting quoted hours from actual hours is not a technology problem and never was.
What was not possible is knowing why. The reason a job overran is typed in shorthand into a notes field by whoever did the work, in the language of the trade, differently by every person and site. Reading six years of that and turning it into causes was a job nobody was ever going to fund.
Language models are reliable at exactly this: taking messy human shorthand and mapping it onto a fixed list of categories, with a confidence score, checkable by a person. Narrow, dull, verifiable work. In the garage case it produced a finding that changed the decision entirely. 36% of the lost hours were caused by the parts supplier sending the wrong thing, which is a supplier conversation rather than a pricing change. Without the causes, the obvious response would have been to raise labour times across the board and quietly charge customers for a supplier's failure. Whether the fix is worth building at all is the sort of question the economics of an agent answers before you start.
The part nobody wants to hear
Once the number exists it belongs to somebody, and the first instinct is usually to point it at the staff. Efficiency percentages by technician are the easiest report to build from this data and the fastest way to destroy the data quality, because people who feel measured will fix their clocking rather than their work.
The number is about the quote and the supply chain. If the first month of output is used to challenge individuals, the second month's data will be fiction.
This week
Take the ten largest jobs you completed last month. For each, write down what you quoted in hours and what it actually took. Two columns, ten rows, one afternoon.
Then total the difference and multiply it by your charge-out rate. That figure is a month. Multiply by twelve and compare it against your net profit for the year.
For most businesses that sell time, the second number is smaller than the first.
The AdAI newsletter maps one of these bottlenecks end to end every week, free to read. Subscribe here.
The hours are stock. They are bought, held and sold, and they are the only stock in the business that leaves without anybody signing for it.


