Article
Job costing: which of your jobs actually made money?
Most contractors know whether the year was good. Far fewer know which jobs made it. That gap is a bookkeeping structure problem.
Most contractors can tell you whether last year was good. Far fewer can tell you which jobs made the money. That gap is not carelessness, it is a bookkeeping structure problem, and it is fixable.
What job costing actually is
Every dollar in and out gets tagged to the job it belongs to, so each job has its own profit and loss. Materials, labour, subs, equipment, permits, dump fees, fuel. Instead of one company-wide statement, you get one per job, and the company statement becomes the sum of them.
The change that makes is larger than it sounds. A company-level profit and loss can only tell you that the year worked. Job-level detail tells you why, which is the only version you can act on.
The thing it almost always reveals first
In a set of books that has never been costed by job, the most common finding is that the biggest job of the year was among the least profitable. It felt like a success because it was large, it kept everyone busy, and the invoices were the biggest you sent. Costed properly, the margin is thin or negative.
This happens because large jobs absorb the overruns. A change order nobody priced. Three extra days that came out of your own time. A sub who came in over. Individually small, invisible at company level, decisive at job level.
Setting it up
Start with the chart of accounts
Most contractor files have one long list of expenses. What job costing needs is a split between direct costs, the ones attributable to a specific job, and overhead, the costs of being in business at all. Insurance, your truck, the phone, software, your own admin time: those are overhead. Materials for the Smith job are direct.
Get this wrong and every job margin is wrong in the same direction, which is worse than useless because it looks credible.
Then commit to tagging everything
This is the part that fails, and it fails at the supply house. A card statement showing one lump at the merchant tells you nothing about which of four active jobs the materials went to. The habit that fixes it is boring and it works: one purchase, one job, one receipt photographed at the counter.
Splitting a single supply run across three jobs from memory two weeks later is guesswork, and guessed job costs are worse than none, because you will trust them.
Decide how labour gets allocated
Labour is usually the largest direct cost and the most commonly unallocated. Hours have to land against jobs, and the cost of an hour is not the wage. It includes payroll taxes and whatever else you carry. If you are on the tools yourself, your time is a real cost even though it never appears on a payroll run.
Payroll is not something I run. But whoever does, the figures have to land in the ledger split properly between wages, taxes and employer costs. Imported as a single monthly number, labour becomes impossible to read against revenue.
What it lets you do
- Estimate from evidence. What the last three of these actually cost, not what you remember them costing.
- See which work to chase. Job types sort themselves into profitable and not, and the answer is frequently a surprise.
- Price change orders properly. When you know the real cost of a day, an extra two days stops being absorbed silently.
- Judge subs on numbers. Who comes in on budget, consistently, across several jobs.
- Answer a lender. Anyone financing you will ask about margins by job type. Guessing shows.
The related things that distort job margins
Three more, briefly, because they undo good job costing if they are wrong. Deposits are a liability until the work is done, not revenue on the day they arrive. Retainage is money you have earned and not been paid, and it needs tracking as its own receivable or nobody chases it. Progress billing almost never matches work completed, which is what a work in progress schedule exists to reconcile.
There is more detail on all three on the contractor bookkeeping page.
Is it worth it for a small operation?
Honestly: if you run one job at a time and buy materials per job, you are already close, and a tidy chart of accounts gets you most of the way. The return climbs sharply once you have several jobs running at once, subs on the books, or jobs long enough to span months. That is the point where a company-level profit and loss stops being able to tell you anything useful at all.
Want this looked at properly?
Tell me where things stand and you get back a scope, a flat monthly fee and a start date within one business day.
Book a call