← Back to blog

Cost Code Variance Analysis for Trade Subs: Spot a $3,000 Labor Gap

October 15, 2026
Cost Code Variance Analysis for Trade Subs: Spot a $3,000 Labor Gap

Cost code variance analysis compares each cost code's budget or baseline to posted actuals, and to earned value when you track it, so you can spot overruns by code and correct them before they sink job profit. Instead of waiting until a job closes to find out it lost money, you catch the losing cost codes while there's still time to act, adjust your crew mix, renegotiate a supplier price, or flag a change order before the budget disappears.


TL;DR:

  • Use identical cost codes across estimates, timecards, invoices, purchase orders, and change orders; otherwise, you cannot trace overruns to the work driving them.
  • Label earned value variance separately from budget minus actual, because they answer different questions; a CPI below 1 signals actual costs exceed earned value.
  • Review current period and cumulative variances against project specific thresholds, and include commitments, remaining forecast, percent complete, cause, action owner, and due date.
  • Use linear extrapolation for short jobs with stable conditions; adjust forecasts for known productivity changes on longer jobs, while checking unposted invoices and open commitments.
  • When a code crosses its threshold, classify the cause, assign an owner and due date, estimate its forecast impact, and explain the task issue plainly.

Subascent
Catch Cost Overruns Before Closeout
Subascent serves trade contractors managing bids, jobs, and finances, including teams working to understand job profitability before closeout.
Visit Subascent

Table of Contents

What the Analysis Compares and Why Consistent Cost Codes Matter

At its core, cost code variance analysis stacks your baseline against reality. The baseline can be the original estimate, a revised budget after approved change orders, or, when you track progress formally, earned value. Actuals come from posted costs: labor burden, material invoices, equipment rental, and subcontracted work.

None of this works unless the same cost codes show up everywhere. If your estimator uses one labor code, your timecard system uses another, and your accounting software buries equipment costs inside a general ledger account, you can't trace a dollar from bid to invoice. Consistent coding across the job costing chain is what turns raw numbers into a usable signal.

Typical cost categories for specialty trades include:

  • Labor: crew hours by task, often the first place overruns show up.
  • Material: conduit, pipe, ductwork, drywall sheets, priced against your takeoff quantities.
  • Equipment: rented lifts, compressors, or owned equipment allocated by job.
  • Subcontract: lower-tier work you've passed to another trade or specialist.

Core Calculations: CV, SV, CPI, and SPI With a Worked Example

Earned value management uses several formulas. Cost variance is CV = EV − AC, and schedule variance is SV = EV − PV. Other performance measures can also be used. A positive CV means the work you've earned cost less than planned; a negative CV means you're overrunning, according to AACE's terminology guidance.

Some contractors instead use a simpler budget-minus-actual convention for job-cost reporting, which is not the same question as EV-based CV and should be labeled clearly in any report, per Carnegie Mellon's project cost-control material. Mixing the two conventions without a label is one of the fastest ways to confuse a PM reading last month's report against this month's.

A compact example for one electrical labor code:

  1. Budgeted value of work performed (EV) = $18,000
  2. Actual cost incurred (AC) = $21,000
  3. CV = $18,000 − $21,000 = negative $3,000
  4. CPI = $18,000 / $21,000 = 0.86

A CPI below 1 means actual costs are exceeding the value of the work earned, per AACE guidance.

AACE recommends reviewing both current-period and cumulative variances, and setting project-specific thresholds rather than assuming a universal limit applies to every job.

Designing Cost Code Structures That Hold Up in the Field

A cost code structure only works when the same logic is used in the estimate, the budget, purchase orders, timecards, invoices, and change orders. Standardized, MasterFormat-style code books help here because they let you aggregate and report consistently across estimating and accounting systems, as Carnegie Mellon's cost control chapter explains.

A few principles make this durable:

  • Separate controllable cost types (labor, material, equipment, subcontract) so you can see which one is driving a variance.
  • Leave gaps in your numbering scheme for codes you'll need later, rather than renumbering everything when you add a trade or task.
  • Avoid so many codes that foremen mis-code timecards in the field. If a crew can't quickly tell which code to charge, you have too many.

For an electrical job, that might mean separate codes for rough-in labor, trim labor, gear and panel material, and low-voltage subcontract. An HVAC job might split duct fabrication labor from duct material, equipment set, and controls subcontract. Codes of accounts guidance from AACE's 20R-98 standard recommends defining clear usage and structure up front so transactions map cleanly at every roll-up level.

Pro Tip: Build your cost code list, test it on jobs, then lock it. Constant renumbering is worse than an imperfect structure everyone understands.

For a step-by-step setup process, our job costing checklist for small trade firms walks through building a chart of accounts from scratch.

What a Cost Code Variance Report Needs to Include

A useful variance analysis report, or VAR, isn't just a budget-versus-actual column. Following guidance from IBM's variance analysis documentation, a report that actually drives decisions includes:

  • Original budget and approved change-order budget, rolled into a revised budget.
  • Actual-to-date cost and committed cost (open purchase orders and subcontracts not yet invoiced).
  • Remaining forecast, or ETC, and estimate at completion, or EAC.
  • Variance in both dollars and percent, plus percent complete for the code.
  • A short cause and action note, an owner, and a due date.

Report cadence matters as much as the columns. A period VAR shows what changed this cycle; a cumulative VAR shows the job's total position. AACE's variance analysis and reporting standard recommends calculating both and using threshold triggers, so a code that's fine cumulatively but swinging badly this period still gets flagged.

Keep the narrative field short: root cause, corrective action, and the expected dollar impact on EAC. A VAR that reads like a diary entry isn't getting read by anyone busy running multiple jobs at once.

Turning Variances Into Action: Thresholds and Root Cause

Not every variance deserves a meeting. Management-by-exception means setting project-specific thresholds for current-period review and a tighter band cumulatively, then focusing your attention only on codes that cross the line. AACE recommends analyzing at the level where a decision can still change the outcome, rather than drowning in every line item.

When a code does trip the threshold, sort the cause into a category, based on IBM's breakdown of variance drivers:

  1. Price or rate: material cost went up, or a supplier substitution hit differently than bid.
  2. Quantity or usage: more material or hours consumed than the takeoff assumed.
  3. Productivity or efficiency: the crew is slower than the estimate assumed, often the hardest to fix mid-job.
  4. Scope or change: work outside the original budget that hasn't been captured in a change order yet.
  5. Timing or posting delay: the cost is real but hasn't hit the books yet, which can look like a favorable variance that isn't.

Once you know the cause, record a corrective action with a named owner, a due date, and your best estimate of the EAC impact. A root cause with no assigned follow-up is just a observation, not control.

Pro Tip: Tag every corrective action with an expected dollar impact, even a rough one. It forces discipline and gives you a number to check against next cycle.

Forecasting Basics: ETC and EAC Methods Subs Can Actually Use

Two forecasting methods cover most specialty trade jobs. Linear extrapolation assumes future performance mirrors past performance: if you're partway through a job and already over budget on labor, you project a similar overrun through completion. It's fast and works fine on short jobs with stable conditions.

Comparison of two trade job forecasting methods

A productivity-based approach adjusts for a known cause, like a crew ramping up after a slow start, and typically gives a more accurate EAC on longer jobs where conditions change mid-stream.

Either way, roll your variance into an adjusted EAC each cycle rather than carrying the original budget forward out of habit. Our piece on how job profitability works for trade contractors goes deeper on EAC mechanics.

Watch for three traps before trusting any forecast: unposted invoices that understate actual cost, open commitments not yet reflected as committed cost, and percent-complete estimates that are more optimistic than the work in place.

Trade-Specific Checklist and Examples

A few realistic patterns by trade: electrical rough-in often overruns on labor hours when ceiling heights or conduit runs differ from the drawings; the fix is tighter productivity tracking on the next similar job. Plumbing underground work commonly shows material variance when fitting counts run high; recheck the takeoff against as-builts. HVAC duct fabrication labor drifts when field dimensions don't match shop drawings. Masonry and concrete both see price variance when material costs shift between bid and pour date. Drywall and painting often show quantity variance from unaccounted-for change areas. Roofing and fire protection frequently carry timing variance from delayed material deliveries. Low-voltage and glazing commonly see scope variance from GC-driven changes not yet documented.

Run this checklist every reporting cycle:

  • Reconcile posted invoices against open purchase orders.
  • Validate timecards against actual crew assignments.
  • Update percent complete per code, not just per job.
  • Record any approved changes into the revised budget.
  • Refresh the ETC for every active code.
  • Assign an owner and due date to every open corrective action.

Pro Tip: A favorable variance isn't automatically good news. Check for open commitments, unbilled subcontractor work, or invoices sitting in someone's inbox before you celebrate.

Integrating Variance Analysis With QuickBooks and Other Accounting Tools

Most specialty trade subs run QuickBooks for the general ledger, which handles payables and payroll well but isn't built to hold cost-code-level job detail on its own. The practical fix is keeping your cost code structure identical between your estimating or job-cost system and your QuickBooks class or job-cost items, so a transaction posted in accounting lands on the same code your estimator used in the bid.

A few habits make this sync work:

  • Set up QuickBooks classes or sub-customers to mirror your cost code list exactly, not a simplified version of it.
  • Post timecards and invoices to jobs promptly; a variance report is only as current as the slowest data entry.
  • Reconcile committed costs (open POs, subcontracts) separately from posted actuals, since QuickBooks alone often won't track commitments well.
  • Export actual-to-date by code on a fixed schedule rather than pulling numbers ad hoc, so your VAR cadence stays consistent.

The goal isn't replacing QuickBooks. It's making sure the cost code discipline from your estimate carries through every transaction QuickBooks records, so the variance report you run at month's end reflects reality rather than a rough approximation.

Communicating Variance Findings to Foremen and Field Crews

Foremen and crews don't need a CPI number. They need to know which task is running hot and what to do differently. Translate the variance into field language, such as explaining that the panel install has used more hours than budgeted, rather than quoting a CPI.

Keep the conversation short and specific to the cost code that's off, not the whole job. A foreman who hears "the job is over budget" shrugs; a foreman who hears "we're burning extra hours on conduit bending because the run lengths changed" can actually do something about it. Share the cause, not just the number, and ask what they're seeing in the field that the report might be missing. Often the root cause they'll confirm in thirty seconds would take you an hour to find in the data.

Close the loop by reporting back next cycle whether the corrective action worked. That feedback is what makes crews trust the numbers instead of treating variance reports as something that happens to them.

Using Variance Data to Improve Bid Accuracy

The real payoff of cost code variance analysis shows up at the next bid. Estimators who review which codes consistently ran over, and by how much, across past jobs can adjust production rates and unit pricing before they get burned again on a similar scope.

If electrical rough-in labor has overrun by a similar margin on recent jobs with comparable ceiling conditions, that's not bad luck, that's a bid factor you should be loading into the next estimate. The same logic applies to material waste factors, equipment rental duration, and subcontract pricing. Closing the loop between historical variance and new bids is how estimating gets sharper year over year instead of repeating the same misses.

Why Subs Need Quick, Code-Level Variance Reporting

Field data is messy. Invoices lag, foremen code timecards to whatever job was open last, and change orders get verbal approval weeks before paperwork catches up. Chasing perfect data delays every report past the point where it's useful.

A simpler, repeatable VAR that runs regularly beats a perfect one that runs infrequently. On one job, catching a labor code running hot before closeout was the difference between a job that broke even and one that lost money.

— Dave

How Subascent Supports Consistent Cost Code Variance Analysis

We built Subascent to help specialty trade contractors manage their bids and jobs.

Subascent

With our platform, you can:

  • Manage estimates and job information in one platform.
  • Collect foreman timecards through the CrewTrack mobile app without manual re-entry.
  • Track job costs and profitability.
  • Use job and profit analytics to review job performance.
  • Sync actuals with QuickBooks so your accounting and job-cost numbers match.

If you're tired of reconstructing variance reports by hand every month, see how our job costing software for specialty trades can help, or visit Subascent for current product details.

FAQ

How does variance analysis work?

Variance analysis compares a baseline, like budgeted or earned value, against actual posted cost for the same scope of work, then sorts the gap into a cause such as price, quantity, productivity, scope, or timing. From there, you record a corrective action, estimate its impact on the forecast, and track whether it worked next cycle.

What is CV and SV in project management?

CV is cost variance, calculated as earned value minus actual cost (EV − AC), and SV is schedule variance, calculated as earned value minus planned value (EV − PV), per AACE's earned value terminology. A negative CV means the work is costing more than budgeted, and a negative SV means less value has been earned than planned.

What is a cost variation?

A cost variation, often called cost variance, is the difference between planned or budgeted cost and actual cost for a given scope of work, according to IBM's variance analysis overview. Common causes include price changes, quantity overruns, productivity shifts, scope changes, and timing delays in posting costs.

How to calculate cost variation?

Using earned value management, cost variance equals earned value minus actual cost (CV = EV − AC). Some contractors instead use a simpler budget-minus-actual comparison for job-cost reports, which answers a different question than EV-based CV and should be clearly labeled, per Carnegie Mellon's cost-control guidance.

Sources