⏵ NEW · AR MEASUREMENT ON LIDAR DEVICES · LIVE NOW
§ Sheet BL / 06 · § contractor job costing

The Contractor's Guide to Job Costing (Without an Accountant)

How to set up job costing in a small contracting business in one weekend — categories, allocations, and the three reports that tell you which jobs actually made money.
§ Quick answers

KEY QUESTIONS.

Do I need an accountant to set up job costing?

No. Three categories tracked per job (material, labor, subs/overhead) and a job number on every receipt gets you 90% of the value of a full accounting setup.

What's a loaded labor rate?

Hourly wage plus 28-35% for taxes, workers' comp, benefits, and paid time off. A $25/hr wage is a $32-$34/hr cost to the business. Use the loaded rate for job costing, not the wage.

How long does job costing take to set up?

One weekend if you have an existing bookkeeping tool. Two weeks for the crew habit to stick (job number on every receipt). One month before the patterns show up in the data.

§ Body

The Contractor's Guide to Job Costing (Without an Accountant)

Most contractors know their revenue per job. Half know their gross margin. Almost none know their true margin after labor allocation, equipment depreciation, truck fuel, and the hour their estimator spent re-bidding a change order on a Sunday. The gap between gross margin and true margin is where contractors who think they're making 30% find out they're making 11%.

What job costing actually requires

You don't need an accountant. You need three categories tracked per job:

  1. Direct material — every receipt, tied to a job number.
  2. Direct labor — every payroll hour, tied to a job number, at the loaded labor rate (wage + 28-35% burden for taxes, comp, benefits).
  3. Direct overhead — sub costs, permit fees, equipment rental, dump fees.

That's it. Everything else (truck, tools, office, owner draw) lives in indirect overhead and gets covered by the markup.

The setup

Three columns in whatever bookkeeping software you already have (QuickBooks, Wave, Xero, a spreadsheet — the tool doesn't matter):

  • Job Number — sequential, one per project. JOB-2024-001.
  • Category — Material, Labor, Subs, Permits, Equipment, Other.
  • Amount + Date.

Train the crew to write the job number on every receipt. Train the office to enter the receipt against the job number, not against "Cost of Goods Sold" generic. Two weeks of habit and you have data.

The three reports

Once the data is flowing, three reports answer every question worth asking:

Job P&L. For every closed job: revenue minus direct costs equals gross margin. Sort by gross margin %. The bottom 20% of jobs is where you're leaking money. Pattern-match them. Same crew? Same trade? Same customer? The fix is usually obvious once the data is in one place.

Trade-mix P&L. Aggregate gross margin by trade. Maybe roofing makes 38% and kitchen remodel makes 22%. That's a sales-team conversation, not a bidding conversation. The contractor who knows this stops bidding the 22% scope as aggressively.

Customer P&L. Aggregate gross margin by customer. Repeat customers usually run higher margin because the trust premium reduces the time-to-bid and the change-order friction. The contractor who knows this stops chasing first-time customers and starts re-engaging the third-time customer.

Where most contractors leak

Three categories where the leak is usually obvious in the data:

  • Crew labor on change orders. The change order added $1,500 of material and 8 hours of work. The bid covered the material. The 8 hours got eaten because the contractor "rounded down."
  • Equipment rental. The mini-excavator rental for a 3-day job ran 5 days. Nobody updated the job costing. The bid covered 3 days.
  • Markup on subs. The drywall sub charged $4,200 and the contractor billed the customer $4,200. No markup on the sub means no margin on the sub. Add 15% minimum.

How Estimate.Pro handles it

The bid review pass inside Estimate.Pro carries forward the assumed labor hours, material cost, and sub markup into the job. Once a job closes, the actuals get tagged against the bid — the contractor sees variance per category in one click. The pattern that took six months to spot in a paper P&L shows up in week two on the Estimate.Pro dashboard.

The bottom line

Job costing isn't an accounting exercise. It's a survival mechanism. The contractor who knows their true margin per job sets their bidding floor with data instead of optimism.

Set up job costing inside Estimate.Pro.

By
Editorial team

The Estimate.Pro editorial team — practicing contractors, estimators, and the engineers who built the bid engine. Every article is reviewed by at least one trade pro before it ships.

§ Equip the crew

Bid faster. Sharper math. Better margins.

14-day Pro trial. No credit card. Free forever fallback.