Job costing for contractors: a step-by-step guide
Most contractors know how much money came in last year. Far fewer know which jobs made that money and which ones quietly lost it. Job costing is how you find out. You track every dollar of labor, materials, and expenses against the job it belongs to, so each job has its own profit number.
What counts as a job cost?
A job cost is any cost you wouldn’t have had without that specific job. These are sometimes called direct costs:
- Labor: hours worked on the job times each person’s pay rate, plus labor burden (more on that below).
- Materials: everything that goes into the work, plus freight and delivery.
- Equipment: rentals, and fuel for equipment used on that job.
- Subcontractors: anyone you pay to do part of the scope.
- Job-specific expenses: permits, dumpsters and disposal, hotels and per diem for travel jobs, parking, small tools used up on the job.
Overhead is different. Your office, your own truck payment, general liability insurance, software, and your bookkeeper exist whether or not you land any one job. Don’t spread overhead into job costs. Keep it separate and make sure your markup covers it. (Our guide to margin vs. markup shows how.)
Step 1: Build a budget by cost category
Your bid already has the numbers. Break it into the same handful of categories you’ll track actual costs in, for example Labor, Materials, Equipment Rental, Subcontractor, and Other. Keep it to roughly 6 to 10 categories. Too few and you can’t see where a job went wrong; too many and nobody codes receipts correctly.
Use the same categories on every job in your trade. That’s what lets you compare jobs to each other later.
Step 2: Give every job a name or number, and use it everywhere
Every receipt, time card, supplier ticket, and purchase order should say which job it’s for. When a receipt says only “Home Depot, $412,” it ends up in overhead or gets lost, and your job looks more profitable than it was.
Step 3: Track labor every day, and include burden
Labor is usually the biggest cost that you control, and the one that swings the most. Materials are mostly set when you bid; labor depends on how the job actually goes. Track hours by job every day, not from memory on Friday.
Wages aren’t the whole cost of labor. Labor burden is what you pay on top of wages: the employer’s share of Social Security and Medicare (7.65% of wages), federal and state unemployment tax, workers’ comp premiums, and any benefits. Depending on your trade’s workers’ comp rates and your benefits, burden often adds a meaningful percentage on top of wages. Your accountant or payroll provider can give you your actual rate. Add it to your labor numbers or your jobs will always look better on paper than in the bank.
Don’t forget your own hours if you work in the field, and drive time if you pay for it.
Step 4: Capture receipts the same day
A receipt in a truck console for three weeks is a cost you’ll never see on the job. Snap a photo when you get it, assign it to a job and category, and you’re done. Supplier accounts help too: ask your suppliers to put the job name or PO on every ticket.
Step 5: Compare budget to actual every week
Once a week, look at each category: how much of the budget is spent, and how far along is the job? Spending isn’t a problem by itself. Spending ahead of progress is. If a job is about 60% done and you’ve used 75% of the labor budget, you have a problem you can still fix: a crew issue, a scope change nobody wrote up, or an estimating miss.
Most scope changes show up here first. If costs are running over because the customer asked for extra work, that’s a change order you need to get signed and billed.
Step 6: Close out the job and feed it into your next bid
When the job’s done, write down the final numbers: contract (including change orders), total cost, profit, and margin. Then compare each category to what you bid. If labor ran 12% over on your last four jobs of this type, your labor estimate is wrong, not unlucky. Fix it on the next bid.
A worked example
Say you bid a job at $48,000 with a $34,500 cost budget, which is a 28.1% margin. During the job the customer adds $3,500 of work through a signed change order. Here’s how it closes out:
| Category | Budget | Actual | Difference |
|---|---|---|---|
| Labor (with burden) | $15,000 | $16,800 | +$1,800 |
| Materials | $12,000 | $12,400 | +$400 |
| Equipment rental | $2,500 | $2,100 | −$400 |
| Subcontractor | $4,000 | $4,000 | $0 |
| Other | $1,000 | $1,150 | +$150 |
| Total | $34,500 | $36,450 | +$1,950 |
Contract with the change order: $51,500. Profit: $51,500 − $36,450 = $15,050, a 29.2% margin. The change order saved this job. If that extra work had been done on a handshake and never billed, the margin would have dropped to about 24%. And the table tells you exactly where to look next time: labor.
Common job costing mistakes
- Waiting until the job is over. Job costing is most valuable while you can still change the outcome.
- Leaving out labor burden, your own hours, or paid drive time.
- Mixing overhead into jobs (or job costs into overhead). Keep them separate.
- Doing extra work without a change order, so the cost shows up but the revenue never does.
- Using different categories on every job, which makes jobs impossible to compare.
Doing it without the paperwork
You can job cost with a spreadsheet if you’re disciplined about it. The hard part is getting the data in: time cards, receipts, and change orders from the field. That’s what JobMargin is built for. Crews clock in and out on their phones and hours post to the job’s labor cost. Snap a receipt and the AI reads the vendor and amount. Change orders add to the contract value. Each job shows budget vs. actual by category and a live margin, and you get a warning in the job log when labor runs over budget.
Keep reading
Profit margin vs. markup: the mistake that costs contractors money
The formulas, how to price for the margin you want, and a markup-to-margin chart.
Free toolProfit margin and markup calculator
Margin and markup from cost and price, or the price to charge for a target margin.
GuideConstruction change orders: how to track them and get paid
What to put in writing, when to get it signed, how to price it, and making sure it gets billed.