What Clean Books Are Actually Worth
Why this matters
"Clean books" gets sold as a virtue, which is why owners nod at it and never fund it. Reconciled accounts and a tidy chart of accounts are not the payoff. The payoff is that certain decisions become possible, and until the books are clean those decisions are being made on feel, confidently, and sometimes backwards.
What follows is one shop that was about to cut the wrong half of its business. The books were not messy in the way owners picture messy. Every account reconciled to zero. Nothing was missing. The statements arrived on time. They were still incapable of answering the question the owner was betting the business on.
The decision that was about to be made
A residential shop ran two lines: service and repair calls, and installation and replacement work. The owner's read, held for years and shared by everyone in the office, was that installs carried the shop and service roughly broke even. It was not a hunch pulled from nowhere. Install jobs were bigger, the crews came back from them looking productive, and the busy install weeks were the weeks the bank balance felt healthy.
The plan was to stop taking service calls from non-agreement customers, redeploy one technician to install work, and let the service line shrink to a support function for the install base. That is a large, hard-to-reverse decision, and the owner was two weeks from making it.
What the books could and could not answer
The books could answer, precisely: total revenue, total expense, net profit, what was in the bank, who owed what. All reconciled. All on time.
The books could not answer: gross margin by line. Three structural facts made it impossible.
Technician payroll imported as a single lump into operating expense. No split between the person who did the work and the person who answered the phone, and nothing in cost of goods sold. Cost of goods sold is the cost that exists only because you did the job; operating expense is what you pay whether or not a job runs. With labor in the wrong bucket, gross margin for the whole shop was meaningless, never mind by line.
Parts and materials coded to one expense account with no job tag. Total parts spend was knowable. Parts spend on install work versus service work was not.
Subcontracted labor and permit fees sitting in operating expense. Both are direct job costs by any reading - they exist only because a specific job happened - and both landed almost entirely on install work.
None of that is a reconciliation failure. It is a structure failure, and structure failures are invisible to every check a shop normally runs.
Three explanations, tested against the re-coded year
The bookkeeper re-coded a trailing 12 months: revenue split into service and install, direct labor allocated from the time entries already being captured in the field software, parts coded to jobs, subcontract and permits moved into cost of goods sold. Then the three standing explanations for "service breaks even" got tested.
Explanation one: service is priced too low. Eliminated. Re-coded service gross margin came in at 48%. Install came in at 31%. Whatever was wrong, it was not that service pricing failed to cover service cost.
Explanation two: the truck roll eats the service ticket. Eliminated as an explanation, though the underlying fact held up. Average service ticket ran about 1.8 billable hours against about 0.5 hours of drive, so drive was roughly 22% of on-clock time per service call. Install jobs averaged about 6.5 billable hours against a similar 0.5 hours of drive, roughly 7% of on-clock time. Drive really is a much larger share of a service call. It is also already inside that 48% margin, because the re-code allocated technician time from the actual entries. A true fact that does not explain the outcome is still a dead hypothesis.
Explanation three: service technicians are less efficient. Same result. The time entries showed service technicians at about 71% billable against install crews at about 78%. Real gap, real thing to work on, and also already priced into the 48%.
The number that had been lying, and why
Install work was 62% of revenue. At a 31% margin it contributed about 19 percentage points of the shop's roughly 37% blended gross margin. Service was 38% of revenue at 48%, contributing about 18 points. In share of gross profit, install produced about 51% of it on 62% of revenue, and service produced about 49% of it on 38% of revenue.
The owner had been about to cut the line generating nearly half the gross profit on well under half the revenue.
The mechanism was the subcontract and permit costs. Before the re-code, install work appeared to run around a 44% margin, because roughly 13 percentage points of direct cost belonging to install jobs were sitting down in operating expense with the rent and the insurance. Down there they were real, they were paid, and they were invisible as job cost. They made every install look better than it was, and because they were spread as overhead they made service look worse than it was by sharing the burden.
The critical thing to understand about that move: net profit did not change at all. The same costs were in the same year either way. What changed was attribution, and attribution is the entire content of a line-level decision. An owner who insists the restructure "did not really change anything because the bottom line is the same" is correct about the bottom line and has missed why the exercise was run.
What the shop did instead. Kept the service line. Raised install pricing specifically on the job types that carry subcontracted labor, which had been the ones being quoted most aggressively precisely because they looked like the best margin. Started quoting permits as a visible line so the cost stops disappearing.
How they confirmed it was not an artifact. Two checks. First, they re-ran the prior year's profit and loss statement under the old and new structures and confirmed revenue, total expense and net profit were identical, with only the split between cost of goods sold and operating expense moving. If a total had shifted, something had been reclassified wrongly rather than regrouped. Second, they took one month and rebuilt direct labor by hand from the time entries against the allocated figure, because an allocation that matches the source once is trustworthy and an allocation nobody has ever checked is a guess with decimal places.
What would have changed the conclusion. If the subcontract spend had been a standing retainer paid whether or not jobs ran - an on-call arrangement rather than per-job labor - it would have been genuine overhead, moving it into cost of goods sold would have been wrong, and install margin would have been understated instead. The test is not who the cost was paid to. It is whether the cost would have existed had the job not happened.
What the cleanup cost
Worth stating, because the reason this does not get done is that nobody prices it.
The re-code took the bookkeeper about 22 hours across roughly six weeks, most of it on the trailing 12 months of parts coding. The owner spent about 3 hours total, all of it on judgment calls only he could make: which vendors were job cost versus shop supply, how to treat a technician who splits time between field and shop, whether a specific large purchase belonged to one job or to the fleet.
The ongoing cost is about 15 minutes a week of job tagging discipline at invoicing, and that ongoing piece is the one that decides whether any of it survives. A one-time re-code with no change to daily practice decays back to unusable within a couple of quarters, and the second cleanup costs the same 22 hours as the first.
What "clean" means, precisely
Four properties, and a shop either has them or does not:
- Every account reconciles to a zero unexplained difference, against an outside record where one exists.
- Direct job cost is separated from overhead in the accounts, consistently, month over month.
- Every transaction that belongs to a job carries the job, at the time it is entered rather than reconstructed later.
- The structure is stable enough to compare periods. If the shape of the report changed twice this year, you have current numbers and no trend.
Reconciled but structureless is where most shops sit, and it is the state that feels safest because everything ties.
What clean books do not buy
They do not make a bad month good. A clean book of a losing quarter is a precise account of a losing quarter, and owners who expect the cleanup itself to improve results are disappointed on schedule.
They do not replace judgment about what a cost means. The books told this shop that subcontract cost was 13 points of install revenue. Whether that is a pricing problem, a scheduling problem or a capacity problem is a question the books cannot answer and never will.
They do not predict. Everything in this case is retrospective. Clean books make the last twelve months legible, which is a precondition for a good forecast and is not itself one.
And they do not survive on their own. The 15 minutes a week is the whole maintenance cost, and it is also the entire failure mode: the shop that stops tagging jobs at invoicing has clean books for about two quarters and then has an expensive historical record of a period that has ended.
References
- Generally Accepted Accounting Principles (GAAP), classification of cost of goods sold and operating expense
- See related: Job Profitability by Service Type, Reading Your Profit and Loss Statement, How to Set Up a Chart of Accounts You Will Not Outgrow, Cleaning Up the Financials Before a Sale Conversation Starts