Nobody closes the month, so the owner bids off numbers that are already stale
In a lot of HVAC, plumbing, and electrical shops, the books get touched when the office manager has a spare hour between dispatch calls. Bank feeds pile up, supply house bills sit unentered for weeks, and nobody sits down on a set date and says this month is done. There is no checklist, no deadline, and no one person accountable for closing it out.
Meanwhile the owner is still bidding new jobs using labor and material costs from six months ago because that is the last time anyone pulled a clean job cost report. A price on copper, a wage rate, or a permit fee that changed since then never makes it into the bid.
Left alone, this means jobs get bid at margins the shop can't actually make once true costs are counted, cash gets spent on trucks or a new hire based on numbers that are two quarters old, and the owner finds out the shop lost money on a whole job type only after the season is over.