Skip to content

Job Costing: Know Which Jobs Make Money

Track every job from estimate to closeout so you can see which work pays and which work just keeps your crews busy.

9 min readEstablishedLesson 1 of 3

You finished the year busy. Crews were booked, the phone kept ringing, and revenue was up. Then your accountant hands you the tax return and the profit is thinner than last year. Somewhere in that pile of jobs, some made good money and some quietly lost it.

Job costing is the habit of tracking every dollar of labor, material, equipment, and subcontract cost against the specific job it belongs to. It turns a vague feeling about which work is good into numbers you can price from.

The four buckets of job cost

  • Labor: every hour your people spend on the job, at the burdened rate (more on that below), including drive time to the site if you pay for it.
  • Materials: lumber, fixtures, wire, pipe, drywall, fasteners, plus delivery charges and the restocking fees on what you returned.
  • Equipment: rentals, plus a fair hourly or daily charge for equipment you own (a skid steer you own still costs money to run, insure, and eventually replace).
  • Subcontractors: electricians, plumbers, painters, or anyone you hire to perform part of the scope.

Labor burden: the number most estimates get wrong

If you pay a carpenter $30 an hour and estimate labor at $30 an hour, you are underpricing every job. Labor burden is everything you pay on top of the wage: payroll taxes, workers' comp, health insurance, paid time off, and the hours you pay for that you cannot bill.

Building a burdened rate (illustrative)

  1. 1

    Start with the wage

    $30.00 per hour paid to a lead carpenter.

  2. 2

    Add payroll taxes

    Social Security and Medicare at 7.65% ($2.30) plus federal and state unemployment (roughly $0.40 averaged over the year): about $2.70.

  3. 3

    Add workers' comp and benefits

    Workers' comp for carpentry codes can be expensive; say $3.00 per hour here. Health insurance contribution $3.50, paid holidays and vacation $1.50.

  4. 4

    Total cost per hour paid

    $30.00 + $2.70 + $3.00 + $3.50 + $1.50 = $40.70.

  5. 5

    Divide by billable percentage

    If 85% of paid hours land on a job (the rest is shop time, supply runs, rain days), the true cost per billable hour is $40.70 / 0.85, or about $48.

Workers' comp varies enormously

Workers' comp rates depend on your state, the classification code for the work, and your claims history (your experience modifier). Roofing and framing codes can cost many times what an office code does. Pull your actual rates from your policy rather than guessing.

Overhead: the costs that belong to no single job

Your office rent, estimator, trucks, software, insurance, and your own salary do not belong to any one job, but every job has to help pay for them. Many contractors allocate overhead by labor hour: divide annual overhead by annual billable field hours. If overhead is $220,000 and your crews bill 10,000 hours, each field hour carries about $22 of overhead.

Allocating by labor hour is not perfect (a materials-heavy job uses less of your office than its dollar size suggests), but it is consistent and easy to explain. Pick a method, use it every time, and revisit it once a year. For more on fixed and variable costs, see Break-Even Analysis.

Two jobs closed the same month (illustrative)
Kitchen remodelBathroom remodel
Contract price$48,000$22,000
Direct costs (labor, materials, subs, equipment)$35,300$12,700
Gross profit$12,700 (26.5%)$9,300 (42.3%)
Field labor hours320180
Overhead at $22/hour$7,040$3,960
Net job profit$5,660 (11.8%)$5,340 (24.3%)

The kitchen brought in more than twice the revenue, yet the bathroom earned nearly the same profit in 140 fewer crew hours. That is $51.67 of gross profit per labor hour on the bathroom against $39.69 on the kitchen. If your calendar is full, that difference decides what kind of work you should chase.

The estimate-versus-actual review

Run this on every job within two weeks of closeout

  1. 1

    Lay the estimate beside the actuals

    Use the same cost codes for both (demo, framing, rough plumbing, finish, and so on) so you compare line to line.

  2. 2

    Flag variances over 10%

    Any cost code that ran 10% over or under deserves a sentence explaining why.

  3. 3

    Separate scope changes from misses

    Owner-requested changes should have been change orders. If they were not billed, that is a process leak, not an estimating error.

  4. 4

    Ask the crew lead

    Your lead knows why tile took three days instead of two. Ten minutes with them is worth more than a spreadsheet.

  5. 5

    Update your unit costs

    Feed what you learned back into your estimating database so the next bid starts from reality.

Owner story

Marcus, owner of a six-person remodeling company outside Columbus
Marcus started reviewing closed jobs and found his tile work was running 30% over estimate on almost every bathroom. The cause was not his tile setter; it was that he estimated from square footage and ignored niches, benches, and pattern layouts. He added line items for each, raised his average bathroom price by about $1,400, and lost almost no bids.

Illustrative composite, not a real customer.

Quick check

Your lead tech earns $32 an hour. What should your estimate use for labor cost?

Words to know

Labor burden
Costs on top of wages, such as payroll taxes, workers' comp, benefits, and paid time off.
Cost code
A category for tracking job costs consistently, like demolition or rough electrical.
WIP schedule
A report that compares earned revenue to billed revenue on every open job.
Overbilling
Billing ahead of the work completed, which creates a liability for work still owed.

Finished reading?

Track your progress through Construction & Home Services.