Job costing is tracking what each job actually costs, category by category, and comparing it with what you estimated and what you charged. For a contractor, that means recording labor (with burden), materials, subcontractors, equipment and permits against each job, then checking the profit before the job closes and again after. It’s how you learn which jobs make money and why, instead of waiting for the year-end numbers.
Below: the cost categories, cost codes, a worked bathroom example with a change order, and how to review profit per job.
Job costing is keeping your books by job. Every cost that belongs to one job is recorded against that job, so you can see three numbers side by side: what you estimated it would cost, what it has cost so far and what the client is paying.
Accountants call it job order costing. Construction job costing is the same idea with more moving parts: crews, subs, deliveries, change orders and jobs that run for weeks or months. It answers questions your profit and loss statement can’t:
A company can be busy all year and still not make money. When every job lands in one pile, a few losing jobs hide behind the good ones, and the same estimating mistake repeats on every job of that kind. Construction job costing splits the pile, so you can see where profit is made and where it leaks.
It also makes your next estimate better. If your last five tile showers each took more labor hours than you priced, that isn’t bad luck. It’s a number to fix in the estimate.
Start with five or six cost categories, and use the same ones in your estimates and your job costs, or you can’t compare the two.
Labor is the easiest category to get wrong, because the wage is only part of what an hour costs. Job cost labor should be hours on the job times a burdened hourly cost: the wage plus the employer costs that ride on it.
These are federal figures. State rates vary, so check yours with your accountant; this isn’t tax advice.
For scale: in June 2026, the Bureau of Labor Statistics found that private construction employers spent an average of $36.13 per hour worked on wages and salaries and $15.84 on benefits. Put another way, benefits added roughly 44 cents to every dollar of wages.
An example with round numbers: say your lead carpenter earns $36 an hour, and taxes, workers’ comp, insurance and benefits add $14. Every hour that carpenter spends on a job costs you $50, and that’s the number that belongs in the job cost. Our guide on how to calculate your labor rate and the free labor rate calculator walk through burden step by step. Your billing rate is higher, because it also covers unbilled hours, overhead and profit.
Everything that goes into the job, at what you paid, plus delivery and sales tax. Record returns and credits against the same job, or a returned vanity will make the job look more expensive than it was.
Track two numbers for every sub: the committed amount (the signed quote or subcontract) and what you’ve paid so far. Committed cost shows an overrun the day you sign it, not the day the last invoice arrives.
Dumpsters, lifts, scaffolding, permits, inspection fees, dump fees, floor protection and final cleaning. Most are small, which is exactly why they slip through. Give them their own lines. If you own equipment, charge jobs an internal day rate so its cost shows up where it’s used.
Overhead is everything not tied to one job: the office, trucks, insurance, software, marketing and the owner’s time spent selling. It isn’t a job cost, but every job has to carry a share. Two common ways to assign it, with example numbers:
Pick one method and use it on every job, so you see each job’s net profit, not just its gross profit.
Cost codes sort costs within those categories: demolition, framing, plumbing rough-in, tile, electrical trim. Good cost codes match how you estimate and how the work gets built.
The free construction budget template is a good starting set: 18 cost categories with budgeted, committed and actual columns, a change order log and variance worked out in Excel.
The math is simple; the discipline is recording every cost against the right job.
Here’s a worked example with round, made-up numbers. A hall bathroom remodel is estimated like this:
The contract price is $27,000: a 50% markup on cost, which is a 33.3% gross margin and $9,000 of planned gross profit. Partway through, the client adds a heated floor on a $2,000 change order with $1,200 of cost ($700 in materials, $500 for the electrician). The revised contract is $29,000, the revised budget is $19,200 and planned gross profit is now $9,800, a 33.8% margin.
When the job closes, the actual costs are:
Gross profit is $29,000 − $21,450 = $7,550, a 26.0% margin instead of 33.8%. If this company’s overhead runs 20% of revenue, the job carries $5,800 of overhead, and net profit falls from a planned $4,000 to $1,750. The job “made money,” but more than half the planned net profit is gone, and most of it went to 40 labor hours nobody priced.
Without job costing, all you’d know is that the year felt busy and the bank balance felt thin. With it, you know which number to fix on the next bathroom estimate. To check the pricing side, use the markup calculator, and see markup vs. margin for why a 50% markup is only a 33.3% margin.
Change orders are where job costs most often go sideways, because extra work gets done before anyone writes it down.
Job cost numbers only help if someone looks at them in time.
It’s tracking the labor, materials, subcontractors, equipment and other costs of each construction job separately, then comparing them with the estimate and the contract price. It shows which jobs made money, which didn’t and why.
Very little. Job order costing is the accounting term for assigning costs to each custom order or job. Contractors usually just call it job costing. The alternative, process costing, averages costs across identical units, which doesn’t fit custom construction work.
According to Intuit, QuickBooks Online has a Projects feature in its Plus and Advanced plans and in Intuit Enterprise Suite for tracking income and costs by project, and Advanced adds project estimates you can compare with actuals. Check Intuit’s current plans, since features change.
Not as a job cost, but yes as an allocation. Record direct costs against each job, then give each job a share of overhead, by percent of revenue or per field labor hour, to see its net profit.
At every payment draw, whenever you sign a sub or a large purchase order, and at close-out. On busy jobs, a quick weekly look at labor hours keeps small overruns small.
In ECHOPS, the profit per job report puts each job’s contract and signed change orders against its materials, sub labor, your crew’s logged hours at each person’s rate and job expenses, shows the margin and flags jobs missing a contract amount, a materials order or a labor sheet. Each project also has a Budget tab: the budget from its signed quotes against what it has cost so far, by materials, subs, crew, fees and other, with signed change orders added and overruns flagged. Expenses come in with receipts the AI reads, and with QuickBooks Online connected, each job’s invoices, payments and costs land on that job in your books. Every report downloads as a CSV for your accountant. Change orders are signed online, and each one bills itself on an invoice of its own. Crew hours count once each person’s rate is set: Labor → Crews & rates, or Payroll on Company. One limit to know: the report doesn’t add an overhead share, so add that when you review a job.
Posts are general information, not legal, tax or financial advice.
Keep reading
Pricing, sales, operations and the legal side of contracting.
Read the blog →Starting a remodeling business, selling kitchen and bath jobs, and choosing software.
Read the guides →Estimates, contracts, change orders, invoices and more, as PDF plus Word or Excel.
Get the templates →Try ECHOPS free for 14 days with your own leads and jobs. No credit card, and your workspace is ready in minutes.
Special price: your first 2 months from $49/mo. Limited spots, so sign up today.