Playbook

Job Costing for Contractors: What Your P&L Won't Tell You

Your P&L shows $200K in annual profit while 40% of your jobs lose money. The winners mask the losers. Here are the five blind spots to fix.

Trey· Co-founder, Engineering
9 min read
Worn contractor cost ledger open on job site trailer desk with yellow highlighted line items

Your P&L can show $200K in annual profit while 40% of your jobs lose money. The profitable ones just mask the losers. Mid-market contractors ($30M to $75M) typically have five blind spots in their job costing: understated labor burden, unallocated equipment costs, buried indirect expenses, missing overhead allocation, and delayed cost reviews. Closing these gaps doesn't require new software. It requires a discipline shift from end-of-job accounting to real-time cost tracking. Contractors who make that shift see 15 to 25% profitability improvements within 18 months.

Your P&L is a company-wide document. It tells you whether the business made money last year. It will not tell you which jobs made money and which ones ate your margin. For general contractors in the $30M to $75M range, that distinction is where the real business lives.

The typical symptom: you close out the year with acceptable net income and still feel like you're constantly chasing cash. That tension usually means your book of work contains a spread of performers, from strong-margin jobs to ones that quietly ran 8 to 12 points negative. Without job-level cost tracking, you can't see which is which, and you can't stop bidding the losers.

Here are the five places that spread hides.

Blind Spot 1: Understated Labor Burden

Most contractors track direct labor wages. Fewer track fully loaded labor burden.

Wages are the base. The burden includes payroll taxes (FICA, FUTA, SUTA), workers' compensation premiums, general liability insurance (often allocated by payroll), health insurance, retirement contributions, and paid time off. When you add those up, the actual cost of a $28/hour field worker typically runs $42 to $48 per hour, depending on your state, insurance classification, and benefit package.

The gap between what you bid and what you actually spend often starts here. If your estimator is using a $32/hour burden rate because that's what the system defaulted to three years ago, and your actual burden is $46, you're starting every labor-intensive job 30% under-recovered on your single largest cost category.

The fix is a burdened labor rate audit, run annually at minimum. Calculate total labor cost (wages plus every associated cost) divided by total productive hours. Update your estimating templates to match. Some contractors run separate burden rates by crew type, which gets closer to true cost on specialty work.

Contractor labor timesheet on a clipboard with hours filled in on a job site

Blind Spot 2: Unallocated Equipment Costs

If your company owns excavators, lifts, compactors, or fleet trucks, those assets cost money whether they're running or sitting. Fuel and operator wages make it onto job tickets. Depreciation, maintenance reserves, insurance, and financing costs often don't.

The CFMA's Heavy Equipment Comparator, developed in partnership with the Association of Equipment Management Professionals, shows that construction companies running best-in-class fleet operations track 32 discrete KPIs across utilization, maintenance costs, and capital. The average company doesn't get close to that level of visibility. What they typically track: fuel and operator hours. What they miss: total cost of ownership allocated per billable hour.

An excavator that costs $180,000 new, runs 1,400 productive hours a year, and requires $22,000 annually in maintenance and insurance has a true ownership cost north of $50 per hour before fuel and operator. If your job tickets show $28/hour for equipment because that's the direct fuel cost, you're subsidizing every job that uses that machine.

The practical solution is an internal equipment rate schedule: a rate per machine-hour that captures depreciation, maintenance reserve, insurance, and financing. Use that rate on every job ticket, the same way a rental company would bill you. At year end, the internal equipment account reconciles. Any surplus builds a replacement reserve; any deficit tells you your rates are too low.

See how the same blind-spot problem appears in quoting at /blog/quoting-process-costing-you-jobs for a related look at how estimating errors compound downstream.

Blind Spot 3: Buried Indirect Job Expenses

Every job has costs that don't fit cleanly into materials, labor, or equipment: job-site dumpsters, temporary power, porta-potties, small tools under your capitalization threshold, concrete washout fees, permit runners, and the project manager's cell phone bill. Small individually, these items aggregate to 2 to 5% of job revenue on a typical commercial project.

The problem isn't that contractors don't pay these expenses. The problem is where they book them. Indirect job costs that land in G&A rather than in the job's cost code don't inflate the job's reported cost. They inflate your overhead rate instead. You end up pricing future work as if indirect field expenses don't exist, because they've disappeared into a general account.

A direct-cost mindset means anything that wouldn't exist if the job didn't exist gets coded to the job, even the $400 dumpster rental. Set up a miscellaneous direct cost code in your job costing system and train your PMs to use it. Auditing jobs monthly for indirect expenses that slipped into overhead is a 30-minute review that pays for itself on the next estimate.

Blind Spot 4: Missing Overhead Allocation

Overhead is real cost. Project managers, estimators, superintendents' non-field time, the office manager, software subscriptions, office rent, and professional fees all support production. If your overhead runs 12% of revenue and you're bidding jobs at 9% margin, you're losing 3 points on every contract before the first shovel hits dirt.

CFMA's 2023 Construction Financial Benchmarker, based on 1,270 companies with detailed financials, showed that the typical general/prime contractor in the industrial and nonresidential segment ran 3.3% net income before taxes in 2022. Best-in-class performers ran 10%, a 6.7-point gap. Overhead allocation discipline is one of the dividing factors.

The mechanics aren't complicated. Take total annual overhead (everything above the gross profit line that isn't direct job cost), divide by total annual revenue, and express it as a percentage. That's your minimum overhead recovery rate. Your bids need to generate that percentage before you're adding real margin.

Where this breaks down for mid-market contractors is scale. At $15M in revenue, your overhead was maybe 9%. At $50M, you've added estimators, a safety director, another layer of PM supervision, and ERP software. Overhead is now 14%, but the bid templates haven't been updated because nobody owns that number. The result is a company that grew revenue and shrank margin simultaneously.

Review your overhead rate quarterly, not annually. When overhead ticks up more than 1.5 points, find out why before it compresses next quarter's jobs.

Blind Spot 5: Delayed Cost Reviews

The five blind spots above are cost-capture problems. This one is a timing problem, and it may be the most damaging.

Most contractors reconcile job costs at project close. By then, the decisions that determined the outcome were made 4 to 18 months ago. Late material deliveries, a crew that ran 15% over on rough framing, a sub that needed constant supervision: you know about these after the fact. You can't adjust the job, and you can't change the bid.

A mid-sized GC we've worked with shifted to bi-weekly cost reviews on every active job over $500K. Within two quarters, their PMs started flagging scope creep earlier, catching labor overruns before they snowballed, and initiating change orders faster. The change order rate on problem jobs went from 11% of contract value (after the fact) to 18% (proactively recovered). That's not a software change. It's a meeting cadence.

The standard for real-time job costing is cost reporting that trails actual incurred costs by no more than 10 business days. If your cost reports at the 60% complete mark reflect costs through last month, you're making production decisions with stale data.

Printed job cost report with red ink annotations circling over-budget line items on a contractor desk

What the Numbers Look Like When You Fix This

Performance Financial, which works with construction contractors on financial management, cites 15 to 25% profitability improvements as typical for contractors who close job-costing gaps within 18 months. The mechanism isn't one big change. It's the compound effect of five small ones: accurate labor burden removes the systematic underbid on labor-heavy work; internal equipment rates stop subsidizing machine costs; direct-cost discipline eliminates the overhead inflation from misbooked job expenses; overhead allocation ensures bids cover fixed cost; and earlier cost reviews allow course corrections that change job outcomes rather than just documenting them.

The contractors who achieve that range do it without changing their core project management software. They add a weekly cost review meeting, update their estimating templates, build an equipment rate schedule, and train their accounting staff on cost code discipline. The tools they use, Procore, Sage 300, Viewpoint, Spectrum, already have the functionality. The constraint is the discipline to use it consistently.

For a deeper look at how ERP and project management systems fit into the broader picture, see /blog/no-erp-does-everything-what-works-instead.

Where to Start

If you're running $30M to $75M and want to know whether you have job-costing gaps, pull your five largest completed jobs from the last 12 months. For each one, calculate what it actually cost in fully burdened labor, internal equipment, direct indirect costs, and allocated overhead. Compare that to what you bid. The spread will tell you which blind spots are active in your business.

Most operators find two or three of the five. That's enough to explain significant margin compression.

If you want a second set of eyes on where the gaps are and how to close them without overhauling your systems, that's exactly the kind of work Granular does with mid-market contractors. Book a discovery call and we'll walk through your actual numbers.


Keep Reading

TaggedGeneral ContractingOperationsQuoting
№ 005Get in touch

Tell us the workflow.

It's a conversation, not a sales call. You tell us what's broken, we'll tell you if we can fix it.

hello@granular.to

No spam. We'll reply within one business day.