The situation
The owner knows the quarter was weaker than planned. Revenue was on target, every job was delivered and no customer complained. The explanation offered is that costs are up everywhere.
That explanation is comfortable and wrong. Costs did not rise everywhere.
Job by job
Comparing each job’s estimated margin with its actual margin shows that three of the five closed close to the estimate. Two did not. The school and the clinic lost $175K between them, 96% of the whole shortfall.
| Job | Contract | Estimated margin | Actual margin | Gross profit vs. estimate |
|---|---|---|---|---|
| Office retrofit | $620K | 21.9% | 21.0% | −$6K |
| School HVAC | $1,150K | 20.0% | 11.0% | −$104K |
| Retail build-out | $380K | 23.9% | 25.0% | +$4K |
| Medical clinic | $890K | 21.0% | 13.0% | −$71K |
| Warehouse | $540K | 19.1% | 18.0% | −$6K |
| Total | $3,580K | 20.9% | 15.8% | −$183K |
Three causes, not one
On those two jobs the shortfall splits into three parts. Labor hours ran over the estimate by $96K. Extra work requested on site was done and never billed: $58K. Materials cost $21K more than quoted.
Each has a different owner and a different fix. Labor overruns point to how this type of job is estimated. Unbilled extra work is a process problem between the site and the office. Only the smallest of the three is about prices.
It was visible in month two
By the second month the school job had used 70% of its estimated labor hours with 45% of the work complete. A monthly review of hours used against progress would have raised it while there was still time to act: resequence the work, bill the changes, or at least stop the next similar job from being bid the same way.
What management can do with it
- Review hours used against percent complete every month on every job above a set size.
- No extra work without a signed change order, and a monthly list of changes done and not yet billed.
- Feed actual labor hours back into the estimate for school and medical work before the next bid.
The management questionWhich jobs are losing margin right now, and can we still do something about it?