Job costing is where contractor margin goes to die

    By Lucent CFO · · 6 min read · Home services

    A contractor doing three million a year can have a great year and a terrible one at the same time. The busy crews, the full schedule, the new truck. And a net margin that quietly slid from nine percent to four while nobody was looking.

    The reason is almost always the same. The company knows its total revenue and its total costs. It does not know which jobs made money and which ones ate it. Without that, every bid is a guess dressed up as a price.

    Job costing is the fix. It is not complicated. It is just rarely done right.

    What job costing actually is

    Job costing means every dollar of direct cost gets tagged to the job that caused it, so each job can be measured on its own. Revenue on the job, minus the costs of that job, equals the job's gross margin. Add them all up and you get the company's gross margin, which is the number that decides whether the year works.

    Four buckets of direct cost, every time:

    • Labor, with burden. Not just wages. Wages plus employer payroll costs, workers' comp, benefits, and paid time off, spread over the hours actually worked on jobs.
    • Materials. What went into the job, at what it cost, including the trip to the supply house for the part nobody expected.
    • Subcontractors. What you paid them for this job.
    • Equipment. The share of the truck, the lift, or the trencher that this job used.

    Everything else is overhead: the office, the dispatcher, marketing, insurance, the owner's time selling. Overhead is real, but it is not a job cost. Mixing the two is how contractors convince themselves a losing job was fine.

    Labor burden, the number most contractors price wrong

    Most owners quote labor at the hourly wage. The wage is not the cost. A technician paid twenty-eight dollars an hour costs the company somewhere between thirty-eight and forty-five once employer costs, comp, benefits, and unbillable time are counted. If the bid used twenty-eight, the job's margin was overstated from the first line.

    Work out the burden rate once, per role, and update it twice a year. Then every labor hour on every job carries its real cost. This one change moves more contractors from "busy" to "profitable" than any other.

    The chart of accounts is the problem

    Most contractor books were built by the accounting software's default template. Revenue in one line. Cost of goods sold in one line, or worse, materials in cost of sales and labor in payroll expense where it can never be matched to a job.

    That structure cannot job cost. It was never meant to.

    The fix is a chart of accounts built for margin: cost of sales broken into labor, materials, subs, and equipment, each tracked by job, and overhead kept cleanly below the line. With that in place, the software can produce a job profitability report that is actually true. Without it, the report exists and lies.

    This is the first thing we rebuild in a Foundation engagement, because nothing else works until it is done.

    What good looks like

    The ACCA's 2024 financial benchmarking study put the median net margin for home services contractors near six percent, with the top quartile above thirteen. The difference between those two companies is rarely the quality of the work. It is that one of them knows its margin by job and by type of work, and prices from it.

    A company with real job costing can tell you, from the last twelve months:

    • Gross margin by job type: service calls versus installs versus maintenance agreements.
    • Gross margin by crew or by lead technician.
    • Which customers are consistently the low-margin ones.
    • What a change order actually adds, or costs.
    • Which jobs went over on labor hours, and by how much.

    Those five reports change the bid sheet, the schedule, and who gets the next raise.

    Five things to do this month

    1. Pick the last twenty jobs. Pull the real labor hours, materials, subs, and equipment for each. Do it by hand if you have to.
    2. Work out your labor burden rate per role. Use it, not the wage.
    3. Rank the twenty jobs by gross margin. Look hard at the bottom five. They will have something in common.
    4. Fix the chart of accounts so this stops being a manual exercise.
    5. Put job margin on the one-page report you look at every month. What gets looked at gets managed.

    How we help

    Foundation rebuilds the chart of accounts and closes the books monthly so job costs land where they belong. Clarity adds the 13-week cash forecast and a one-page KPI report with gross margin by job type on it, every month, with written notes on what moved. Momentum takes the job data into pricing, labor burden, and the forecast for the next crew or the next location.

    The work starts with a discovery call and an on-site visit. We want to see the shop, the trucks, and the whiteboard before we touch the books.

    Source: ACCA (Air Conditioning Contractors of America), Financial Benchmarking Study, 2024.