Business Growth

Job Costing for Contractors: How to Know Real Profit on Every Job

Stop finding out a job lost money three months after it closed.

By Faizan Khan, Founder, TackOn Labs / BuildCrux10 min readJune 2, 2026
Contractor reviewing job costing and profit margin on a tablet at the jobsite

The job closed last month. It felt like a good one. The customer paid, the crew liked the work, and you moved on to the next bid. Then you sit down to do the books and you cannot actually say whether it made money. The receipts are in the truck. The sub invoices are in your email. The labor is a guess. The mileage never got logged. By the time the picture is clear, the job is long gone and so is your chance to fix anything. That is the problem job costing solves.

BuildCrux is contractor management software that tracks every cost category against the job as the work happens: materials and receipts, labor hours, subcontractor payables, and mileage at the IRS business rate. The profitability report reads off real numbers, not estimates. The method below is the same discipline our software automates, written so you can run it by hand if you have to.

Why contractors fly blind on profit

Job costing means tracking what a single job actually cost you, broken down by category, and comparing it to what you billed. Most small contractors never do it cleanly. The profit picture stays blurry for four reasons.

Costs land in four different places

Material receipts pile up in the truck. Sub invoices sit in email. Labor lives in a notebook or nowhere. Mileage is a number you reconstruct from memory at tax time. Four cost streams, four locations, zero connection to the specific job they belong to. When the costs never meet in one place, the job never gets a real number.

Labor is the cost you cannot see

Materials have receipts. Subs send invoices. Labor leaves no paper trail unless you create one. So most contractors leave it out of the math entirely, or plug in a round guess at the end. Labor is usually 30 to 50 percent of the cost of a job. Leaving it out does not make a job more profitable. It just hides the loss.

You learn the answer too late to act

A job costed three months after it closed is a history lesson. A job costed while it is running is a steering wheel. If you can see on day 12 of a 30-day job that materials are already 80 percent spent, you can call the supplier, tighten the crew, or write a change order. After the job, all you can do is regret the bid.

Change orders never make it into the cost base

The customer adds scope mid-job. You do the work. But the added labor and material never get tagged to the job cost, so the profitability report compares the new, larger build against the old, smaller budget. The job looks like it ran over when it actually earned more. Change orders have to flow into job cost or the margin reads wrong.

The BuildCrux Method for Job Costing

Five disciplines turn a blurry guess into a live profit number. The same five-pillar framework runs through every BuildCrux project.

Pillar 1of the BuildCrux Method →

Accurate Estimating

Job costing starts at the bid. The estimate becomes the budget baseline, broken into the same cost categories you will track against. When materials are a line in the estimate and a line in the actuals, the variance is obvious the moment it appears. An accurate baseline is what makes every later number mean something.

  • The approved estimate becomes the job budget
  • Budget is split by category: materials, labor, subs, other
  • Actuals post against the matching budget line
Pillar 2of the BuildCrux Method →

Structured Planning

Costs get tagged to the job at the moment they happen, not reconstructed at month end. A receipt scanned on site, a sub invoice logged as a payable, a trip recorded on the way home. Capture at the point of cost is the difference between real data and a year-end guess.

  • Every cost is tagged to a specific job when it is incurred
  • Receipt photo, sub payable, and trip all attach to the project
  • No month-end reconstruction from a shoebox of receipts
Pillar 3of the BuildCrux Method →

Controlled Execution

Labor gets captured in the field. Crew clock in to the job, the timer runs, and labor cost accrues against that job at each worker's pay rate. No notebook, no end-of-week memory test. When labor posts automatically, the largest hidden cost on most jobs finally becomes visible.

  • Crew clock in to a project; labor accrues at their pay rate
  • Hours and labor dollars post to job cost in real time
  • Receipts captured on site with AI vendor and amount extraction
Pillar 4of the BuildCrux Method →

Change Order Management

Approved change orders flow into both the contract value and the job cost base. When the customer adds scope, the added budget and the added cost move together, so the profitability report compares the real build against the real budget. The job reads as what it actually was, larger and more profitable, not as an overrun.

  • Approved COs raise contract value and the cost baseline together
  • CO labor and materials tag to the job like any other cost
  • Margin reflects the as-built scope, not the original scope
Pillar 5of the BuildCrux Method →

Financial Visibility

The profitability report reads revenue from paid invoices and costs from receipts, payables, labor, and mileage. Margin shows per job and across the business, live, while the work is still running. Mileage is valued at the current IRS business rate of 0.70 dollars per mile so the deduction is captured, not lost. QuickBooks two-way sync keeps the books reconciled.

  • Per-job and portfolio margin, updated as costs post
  • Mileage valued at the IRS business rate, 0.70 per mile
  • QuickBooks two-way sync keeps job cost and the books aligned

The five cost categories

Every job has the same cost categories. A real job cost captures all five. Miss one and the margin is fiction.

CategoryWhat it includesHow most contractors lose it
MaterialsLumber, fixtures, hardware, finishesReceipts stay in the truck, never tagged to the job
LaborCrew hours at loaded pay rateNo time tracking, so it gets guessed or skipped
SubcontractorsTrade sub invoices and payablesLogged in email, not against the job
MileageTrips to the job, supplier, and dumpNever recorded, deduction left on the table
Overhead allocationShare of insurance, vehicles, toolsTreated as fixed, never spread to jobs

See real margin on every job

BuildCrux tracks materials, labor, subs, and mileage against the job automatically and reports live profit. Start free with a 30-day money-back guarantee.

Get Started

Traditional vs BuildCrux Approach

DimensionTraditional Job CostingBuildCrux Method
Cost captureReconstructed at month endTagged to the job when it happens
LaborGuessed or skippedClock in to the job, accrues at pay rate
MileageForgotten, deduction lostAuto-logged at the IRS rate
When you see marginWeeks after the job closesLive, while the work is running
Change ordersSkew the budget comparisonFlow into budget and cost together
Source of revenue figureSpreadsheet estimatePaid invoices, synced to QuickBooks

Case study: the $92K remodel that almost lost money

A remodeler ran a $92,000 whole-home remodel and assumed a 22 percent margin off the bid. Materials and subs were tracked from receipts and invoices. Labor was the missing piece, plugged in at a round 30 percent of the contract at the end of each job out of habit.

Once the crew clocked in to the job in BuildCrux, the real labor came in at 41 percent of the contract, not 30. Materials ran 4 percent over the estimate after a mid-job fixture upgrade. Mileage across the 11-week job added another $640 of deduction that had never been logged. The profitability report read the truth: a 9 percent margin, not 22.

The job still made money. But the contractor had been bidding the next three jobs off a 22 percent assumption that was off by more than half. With real job cost data, the next bid carried a labor line built from actual crew hours, and the margin held where the bid said it would.

Why contractors job cost in BuildCrux

BuildCrux puts every cost category in one place against the job. Scan a receipt and AI pulls the vendor, amount, and category. Log a sub payable. Clock the crew in so labor accrues at their pay rate. Record mileage at the IRS rate. The profitability report reads revenue from paid invoices and subtracts real costs, live, per job and across the business. Pricing starts at $39 per month for solo contractors and $149 per month for crews, with QuickBooks sync on the Crew tier and up.

BuildCrux Feature

Contractor Reports & Analytics

Financial and project reports in seconds

Learn more

BuildCrux Feature

Expense Tracking for Contractors

Snap receipts and track every dollar

Learn more

Frequently asked questions

What is job costing in construction?+

Job costing is the practice of tracking every cost tied to a single job, broken into categories like materials, labor, subcontractors, and mileage, and comparing those actual costs to what you billed. It tells you the real profit on each job instead of a portfolio-wide guess.

What cost categories should a contractor track per job?+

The core five are materials, labor, subcontractors, mileage, and an allocated share of overhead. Materials, labor, and subs make up 85 to 95 percent of direct cost on most jobs, so start there if you are new to job costing.

Why is labor the hardest cost to track?+

Materials have receipts and subs send invoices, but labor leaves no paper trail unless you create one. Without time tracking tied to a specific job, labor gets guessed or skipped. Since labor is often 30 to 50 percent of job cost, leaving it out hides real losses.

How does job costing software calculate profit?+

It reads revenue from paid invoices for the job and subtracts the tracked costs: receipts, subcontractor payables, labor hours at each worker's pay rate, and mileage at the IRS business rate. The result is margin per job, updated as costs post.

How do change orders affect job costing?+

An approved change order should raise both the contract value and the cost baseline. If the added labor and materials are not tagged to the job, the report compares the larger build against the smaller budget and the job looks like an overrun when it actually earned more.

Do I need job costing if I use QuickBooks?+

QuickBooks handles the books, but on its own it rarely tracks field labor or mileage against a specific job in real time. Job costing software captures those costs at the source and can sync the totals back to QuickBooks, so you get live per-job margin and clean accounting.

How does mileage factor into job cost?+

Trips to the job, the supplier, and the dump are a real cost and a real deduction. Valued at the 2025 IRS business rate of 0.70 dollars per mile, the miles on a multi-week job add up. Tracked, they lower your tax bill. Forgotten, the deduction is lost.

The bottom line

You cannot bid the next job well if you do not know what the last one actually cost. Job costing turns profit from a feeling into a number, and it does it while the work is still running, when you can still act on it. Track all five cost categories against the job, capture labor in the field, and read margin live. That is how a busy contractor becomes a profitable one.

Get started

Track real cost on every job from any phone. 30-day money-back guarantee.

Get Started
Faizan Khan logo

Faizan Khan

Founder, TackOn Labs / BuildCrux

Faizan Khan is the founder of TackOn Labs and BuildCrux. He builds tools that help small contractors win commercial bids that used to require a senior estimator, including the AI multi-pass takeoff pipeline that produces estimates inside expert-validated reference ranges.