If you run a construction business and someone asks which of your jobs made money last year, you should be able to answer in about ten seconds. Most contractors I meet can't, and it's almost never because they're careless. It's because their books were set up to answer a different question.
What job costing actually is
Job costing means every dollar you spend gets attached to the job it was spent on. Labor, materials, equipment, subcontractors, permits, and a fair share of overhead. When it's done properly, you can pull up any project and see what you billed, what it cost you, and what you kept.
Standard bookkeeping tracks money by month. Job costing tracks it by project. Construction needs both, because your jobs don't politely start and finish inside a calendar month.
Why a healthy P&L can still hide a problem
Here's the situation I see constantly. A contractor finishes the year with a profit and feels reasonably good. But that single number is every job blended together. Inside it, two or three projects carried the whole business while several others quietly lost money.
Without job costing you can't see that. So next year you bid the same way, take on more of the work that loses money, and grow yourself into a tighter spot. Growth built on bad numbers is genuinely how profitable-looking companies get into trouble.
A busy year and a profitable year are not the same thing, and job costing is how you tell them apart.
What to track on every job
- Direct labor. Hours worked on that job, at real loaded cost. Not just the wage, but payroll taxes, workers comp, and benefits.
- Materials. Coded to the job when purchased, not lumped into a general supplies bucket at the end of the month.
- Subcontractors. What each sub billed, tied to the job and to their 1099 for the year.
- Equipment. Rental costs, or an internal rate if you own the machine. Owned equipment isn't free just because there's no invoice.
- Overhead allocation. A consistent share of the costs that keep the doors open. Your office, insurance, and truck payments are real, and jobs need to carry them.
The one people skip: loaded labor cost
If you pay someone $25 an hour, that person does not cost you $25 an hour. Add payroll taxes, workers comp (which is not cheap in construction), and any benefits, and the real number is often closer to $33 to $38. Costing jobs at the raw wage makes every job look better than it is, and the gap compounds across a year.
Getting started without overhauling everything
- Set up a job list. Every active project gets an identity in your accounting software before work begins, not after.
- Code as you go. Every bill, receipt, and timesheet gets a job attached at entry. Reconstructing this later is the expensive way.
- Get labor flowing in. Connect payroll so hours land on jobs automatically. This is usually the biggest single improvement.
- Review monthly. Look at margin per job while the job is still running. A project going sideways in month two is fixable. Finding out in month six is a post-mortem.
- Feed it back into bidding. Your own cost history is the best estimating tool you will ever own.
What changes once you have it
The first month is usually uncomfortable, because a job you were proud of turns out to have been thin. That discomfort is the whole point. After that, bidding stops being a guess, you can say no to the kind of work that never paid, and conversations with your banker or bonding company get a lot easier.
This is the core of what I do on the contractor side of my practice, and it's the same work I do as CFO of a 7-figure construction company. If your books can't tell you which jobs pay, bring me one job and we'll cost it out together.