Skip to main content
AboutResources888.999.0280Schedule a Call
ConstructionConstruction

Construction Job Costing: The Complete Guide for Contractors

Job costing is the backbone of construction accounting. Without it, you can't tell which projects are making money, which are bleeding cash, and where your margins are actually going. This guide covers the full job costing framework from cost codes to WIP reporting.

By Lorenzo Nourafchan | April 12, 2026 | 14 min read

Key Takeaways

Every construction job should be tracked against five cost categories: labor, materials, subcontractors, equipment, and overhead. Missing any one of these distorts your true job profitability.

The most common job costing mistake is failing to allocate indirect costs (insurance, equipment depreciation, shop overhead) to specific jobs, which makes profitable jobs look more profitable and losing jobs look less bad than they are.

Weekly job cost reporting, not monthly, is the standard for well-run contractors. By the time you see a margin problem in a monthly report, it's usually too late to fix it.

What Job Costing Is and Why It Matters in Construction

Job costing is the process of tracking every dollar of cost against the specific project that generated it. In construction, this is not optional. Unlike a retailer or a SaaS company that can analyze profitability at the product or subscription level, a construction company earns its money one project at a time. Each project has a unique scope, a unique set of subcontractors, unique site conditions, and a unique risk profile. A general contractor running eight active jobs could have three making 18% margins, two breaking even, and three losing money. Without job costing, all the owner sees is a blended P&L that might show 8% net profit while three projects quietly destroy value.

The purpose of job costing is to answer four questions for every active project, every week:

1. How much have we spent to date? Total costs incurred across labor, materials, subs, equipment, and overhead. 2. How does that compare to budget? Are we over or under on each cost category relative to where we should be at this stage of completion? 3. What will this job cost when it is finished? The estimate-at-completion (EAC), incorporating everything we now know that we did not know at bid time. 4. What is the projected final margin? The gap between contract value (including approved change orders) and the EAC.

If your accounting system cannot answer these four questions for every job on a weekly basis, you do not have job costing. You have a general ledger that happens to have job numbers attached to some transactions.

The Five Cost Categories Every Job Must Track

Every construction job generates costs across five categories. Missing any one of them means your job cost reports are lying to you.

1. Labor

Labor includes wages, payroll taxes, workers' compensation insurance, union benefits, and any other burden costs associated with your field crews. The critical metric here is loaded labor cost per hour, not the base wage. A carpenter earning $38/hour may cost $58/hour fully loaded once you add FICA, FUTA, SUTA, workers' comp (which runs 15% to 25% of payroll for many trades), health insurance, and retirement contributions. If your job cost system tracks only the $38 base wage, you are understating labor costs by 35% to 50% on every project.

2. Materials

Materials include everything purchased and installed on the job: lumber, concrete, rebar, drywall, mechanical and electrical supplies, fixtures, and finish materials. Material costs must be tracked at the purchase order level, matched to delivery tickets, and reconciled against invoices. The most common failure point is materials purchased for one job but diverted to another. Without a disciplined PO and delivery tracking process, material costs migrate between jobs and your cost reports become unreliable.

3. Subcontractors

For most general contractors, subcontractor costs represent 60% to 75% of total project cost. Each subcontract should be tracked as a committed cost from the date the subcontract is executed, not from the date the first invoice arrives. The original subcontract amount, approved change orders, invoices received, amounts paid, and retainage held should all be visible in the job cost ledger. A $280,000 electrical subcontract with $35,000 in approved change orders and $190,000 invoiced to date tells a very different story than just the $190,000 showing in accounts payable.

4. Equipment

Equipment costs include owned equipment (depreciation, maintenance, fuel, insurance) and rented equipment. Owned equipment should be charged to jobs at an internal rate that covers the true cost of ownership. If your company owns a $320,000 excavator, that machine needs to generate enough internal rental revenue across all jobs to cover depreciation, maintenance, insurance, and a return on capital. The Construction Financial Management Association (CFMA) publishes equipment cost guidelines, and most contractors with significant equipment fleets use a rate structure based on either the CFMA rates or their own historical cost data.

5. Overhead (Job-Level and Company-Level)

Job-level overhead includes project-specific costs that are not labor, materials, subs, or equipment: project management salaries allocated to the job, temporary facilities, permits, bonds, insurance specific to the project, temporary utilities, and dumpster service. Company-level overhead (office rent, administrative salaries, accounting, IT, general insurance) must also be allocated to jobs, either as a percentage of direct costs or as a fixed monthly charge. We will cover this allocation in the next section.

Setting Up a Cost Code Structure

A cost code structure is the numbering system that categorizes every cost transaction. Think of it as the chart of accounts for each individual job. The most widely used framework in the industry is the CSI MasterFormat system, which organizes work into divisions (Division 03 for concrete, Division 09 for finishes, and so on). Many contractors adopt a simplified version with 20 to 40 cost codes that match their typical scope of work.

A practical cost code structure for a commercial GC might look like this:

  • 01-xxx: General conditions (supervision, temporary facilities, cleanup, permits)
  • 02-xxx: Sitework and demolition
  • 03-xxx: Concrete and foundations
  • 04-xxx: Masonry
  • 05-xxx: Structural steel and metals
  • 06-xxx: Carpentry and wood framing
  • 07-xxx: Thermal and moisture protection (roofing, waterproofing, insulation)
  • 08-xxx: Doors, windows, and hardware
  • 09-xxx: Finishes (drywall, paint, tile, flooring)
  • 10-xxx through 14-xxx: Specialties, equipment, furnishings
  • 15-xxx: Mechanical (HVAC, plumbing, fire protection)
  • 16-xxx: Electrical

Within each division, the sub-codes break down by cost type: labor, material, subcontractor, equipment. So cost code 03-100-L might be "Concrete, Foundations, Labor" while 03-100-M is "Concrete, Foundations, Material" and 03-100-S is "Concrete, Foundations, Subcontractor."

The key discipline is consistency. Every estimator, project manager, and accounts payable clerk must code costs to the same structure. If the estimator budgets framing labor under 06-100-L but the payroll clerk codes framing crew hours to 06-200-L, your variance reports are meaningless.

Direct vs. Indirect Cost Allocation

Direct costs are easy. The lumber delivered to Job 2024-017 gets coded to Job 2024-017. The subcontractor invoice for electrical rough-in on the Main Street project gets coded to the Main Street project.

Indirect costs are where most contractors lose accuracy. These are real costs that benefit multiple jobs or the company as a whole, and they must be allocated to specific jobs to produce a true picture of job profitability. Common indirect costs include:

  • Shop and yard overhead: Rent or mortgage on your shop facility, yard maintenance, shop utilities, tool and equipment storage.
  • Equipment ownership costs: Depreciation and insurance on owned equipment that moves between jobs.
  • General and administrative (G&A): Office rent, administrative staff, accounting, legal, IT, marketing.
  • Vehicle costs: Fuel, insurance, and maintenance for supervisors' trucks, company vehicles.

The allocation method matters. A simple approach is to allocate G&A and shop overhead as a percentage of direct job costs. If your annual G&A is $480,000 and your annual direct job costs are $6,000,000, your G&A allocation rate is 8%. A job with $400,000 in direct costs absorbs $32,000 in G&A. More sophisticated contractors use activity-based allocation, charging supervisory time based on actual hours spent on each project and equipment costs based on actual usage logs.

The point is not perfection. The point is that every job carries its fair share of the costs required to run your company. A job that appears to earn a 22% gross margin but does not carry any G&A allocation is not really earning 22%.

How to Track Costs in Real Time

Job costing is only useful if costs are captured while there is still time to act on them. A cost overrun identified six weeks after the fact is a historical curiosity. A cost overrun identified this week is a problem you can solve.

Daily Field Reports

Every superintendent and foreman should complete a daily field report that captures crew size, hours worked by trade, equipment on site, materials received, subcontractors on site, weather conditions, and a narrative of work performed. This report is the source document for labor cost allocation. If your daily reports say eight carpenters worked nine hours on the tenant improvement job on Tuesday, that is 72 hours of loaded carpenter time hitting cost code 06-100-L. Daily reports also capture the context that explains cost variances later: "Rain delay, 3 hours. Crew stood down until noon."

Certified Timesheets

Labor is the cost category most likely to be miscoded. Field employees move between jobs, sometimes within the same day. A certified payroll and timesheet system that requires employees to log hours by job number and cost code, reviewed and approved by the foreman, is the minimum standard. Digital time tracking apps (Busybusy, Hcss, ExakTime) have largely replaced paper timesheets for contractors above $3 million in revenue and offer GPS-verified job site check-in.

Purchase Order Tracking

Every material purchase and equipment rental should be initiated through a purchase order that references a job number and cost code. When the invoice arrives, it is matched against the PO and coded accordingly. This creates a committed cost the moment the PO is issued, not weeks later when the invoice is processed. For a $1.2 million project, the difference between tracking committed costs in real time versus waiting for invoices can be $80,000 to $150,000 in costs that are incurred but invisible to the project manager.

Job Cost Reports Explained

Three reports form the core of construction job cost reporting.

Cost-to-Date Report

This report shows, for each cost code on each job, the original budget, approved change orders, revised budget, costs incurred to date, committed costs not yet invoiced, and the remaining budget. It answers the question: "Where are we right now?"

Estimate-at-Completion (EAC) Report

The EAC adds a forward-looking dimension. For each cost code, the project manager provides a current estimate of total cost at completion. This is not simply "budget minus costs to date." It is a fresh assessment based on current conditions: "We budgeted $85,000 for framing labor, we have spent $62,000, and we are 70% through the framing scope. At this burn rate, we will finish at $89,000, which is $4,000 over budget." The EAC report forces project managers to confront problems before they fully materialize.

Variance Analysis

Variance analysis compares the revised budget to the EAC and identifies every cost code where the projected final cost exceeds the budget. A well-formatted variance report highlights anything over 5% or $5,000 (whichever is less) and requires a written explanation from the project manager. This is the early warning system. When framing labor is trending $4,000 over budget and concrete is $7,000 over, the project manager knows the current trajectory will consume $11,000 of the job's gross profit before the drywall crew even arrives.

Sample Job Cost Summary: $1.2M Commercial Tenant Improvement

Cost CategoryOriginal BudgetApproved COsRevised BudgetCost to DateCommittedRemainingEACVariance
Labor (Direct)$168,000$12,000$180,000$114,000$0$66,000$186,500($6,500)
Materials$132,000$8,500$140,500$91,200$22,800$26,500$141,000($500)
Subcontractors$696,000$41,000$737,000$488,000$189,000$60,000$734,000$3,000
Equipment$48,000$0$48,000$31,500$6,200$10,300$46,800$1,200
Overhead (Job)$36,000$2,500$38,500$26,800$4,000$7,700$39,200($700)
G&A Allocation$48,000$3,200$51,200$34,100$0$17,100$51,200$0
Total$1,128,000$67,200$1,195,200$785,600$222,000$187,600$1,198,700($3,500)

Contract value: $1,200,000 + $67,200 in change orders = $1,267,200

Projected gross profit: $1,267,200 - $1,198,700 = $68,500 (5.4% margin)

Original estimated profit: $1,200,000 - $1,128,000 = $72,000 (6.0% margin)

This job is experiencing profit fade. The labor overrun of $6,500 is the primary driver, partially offset by favorable subcontractor and equipment performance. The project manager should investigate the labor variance immediately. At 63% complete (based on costs to date versus EAC), there is still time to adjust crew size, overtime, or scope sequencing to recover some of the lost margin.

Connecting Job Costing to WIP Reporting

Job costing feeds directly into your WIP (Work-in-Progress) schedule, which is the financial statement that your surety, your bank, and your CPA all care about most. The WIP schedule takes the cost-to-date and EAC data from your job cost system and uses it to calculate the percentage of completion on each active project. That completion percentage determines how much revenue you have earned, which determines whether you are overbilled or underbilled on each job.

If your job costing is sloppy, your WIP is wrong. If your WIP is wrong, your financial statements are misstated. Misstated financial statements lead to audit adjustments, surety concerns, and bank covenant violations. The chain of consequences starts with a foreman who codes eight hours to the wrong job or a project manager who has not updated a cost-to-complete estimate in three months.

At Northstar, the first thing we examine when onboarding a new construction client is the integrity of their job cost data. We audit a sample of cost transactions against source documents (timesheets, POs, subcontractor invoices) and compare EAC estimates against actual cost trends. In about 70% of cases, we find material discrepancies that are flowing through to the WIP and distorting reported profitability.

Common Job Costing Mistakes

Not Tracking Change Orders in Real Time

A change order that is verbally approved, executed in the field, and not entered into the job cost system for six weeks creates a period where costs are incurred against a budget that does not include the additional scope. The job looks like it is overrunning when it may actually be on track. Every approved change order, whether it adds $2,000 or $200,000, should be entered into the system within 48 hours of approval, with the corresponding budget adjustment.

Ignoring Indirect Costs

We covered this above, but it bears repeating. A contractor who does not allocate G&A, shop overhead, and equipment ownership costs to individual jobs is systematically overstating job margins. The owner looks at the job cost report, sees 18% margins across the board, and wonders why there is never any cash left at the end of the year. The answer is that $400,000 to $600,000 in real costs are sitting in overhead accounts that never touch a job.

Monthly Reporting Instead of Weekly

Monthly job cost reports are too slow for construction. A framing crew that is burning labor hours 20% faster than budget will consume three to four extra weeks of cost before anyone notices. Weekly reporting (ideally produced by Wednesday for the prior week) gives project managers the ability to identify and correct problems within days, not months. The best-run contractors we work with review job cost reports in a weekly project review meeting with the PM, superintendent, and controller present.

Failing to Update Cost-to-Complete Estimates

The EAC is only as good as the project manager's willingness to revise estimates based on current reality. A PM who entered $85,000 for framing labor at bid time and never updates that number, even as actual costs clearly indicate a $95,000 outcome, is undermining the entire system. Require written EAC updates from every PM on every active job, every month at minimum. Compare their estimates against actual cost trends and challenge any estimate that looks unrealistically optimistic.

Mixing Job Costs Between Projects

This is especially common with materials and equipment. A project manager "borrows" $3,000 in lumber from the warehouse (originally purchased for Job A) to keep Job B moving while waiting on a delivery. If that transfer is not documented and the cost is not moved from Job A to Job B, both jobs have incorrect cost data. Establish a formal material transfer process with paper or digital documentation, and audit inter-job transfers monthly.

Technology and Tools

Modern construction accounting platforms have made job costing dramatically easier than it was a decade ago. The leading platforms for contractors in the $1 million to $50 million revenue range include:

  • Sage 300 CRE (formerly Timberline): The industry standard for mid-market contractors. Deep job costing, WIP reporting, and equipment management modules. Steep learning curve, but unmatched depth.
  • Foundation Software: Strong job costing and payroll integration, particularly popular with specialty contractors and subcontractors.
  • Procore (Financials module): Cloud-based project management with increasingly robust financial tools. Excellent for field-to-office data flow.
  • QuickBooks Online with Construction Add-ons: Viable for contractors under $5 million in revenue who need basic job costing. Limited in WIP reporting and cost code depth.
  • Buildertrend / CoConstruct: Designed for residential builders and remodelers. Good estimating and job costing for projects under $1 million.

The technology is only as good as the processes around it. A $50,000 accounting software implementation does not help if foremen are not submitting daily reports, PMs are not updating estimates, and the accounting team is posting invoices three weeks late.

Building a Job Costing Discipline

Job costing is not a software feature. It is an organizational discipline that starts with accurate estimates, runs through real-time cost capture in the field, requires honest and regular estimate revisions from project managers, and produces weekly reports that drive operational decisions. The contractors who master this discipline know exactly which jobs are making money, which are losing money, and why. They catch margin problems in week three instead of month three. They go into WIP reviews and bonding meetings with confidence because they trust their numbers.

If your current system cannot tell you the projected final margin on every active job within 30 seconds, it is time to rebuild your job costing framework. Track the financial KPIs that matter, build the reporting cadence, and hold your project managers accountable for the accuracy of their estimates. The difference between a contractor who grows profitably and one who grows into a cash crisis almost always comes back to whether they truly understood their job costs.

LN

Lorenzo Nourafchan

Founder & CEO, Northstar Financial

Northstar operates as your complete finance and accounting department, from daily bookkeeping to fractional CFO strategy, serving 500+ clients across 18+ states.

Need help with this?

Schedule a free strategy call with our team to discuss how Northstar can help your construction business.

Schedule a Strategy Call

Or call us directly: 888.999.0280