Job Costing for Small Commercial Contractors: Phases and Margin

By Joy Gomez•Published on September 3, 2026•Reviewed by Bhargavi Halthore
Job Costing for Small Commercial Contractors: Phases and Margin
A pillar guide to job costing on small commercial work: phase-level work breakdown, committed cost from POs and subs, burdened labor, pay-app billing, and margin you can actually defend.

Your Invoice Ledger Is Not a Job Costing System

Your accounting system records invoices. Your jobs are what make or lose the money. This gap is the main reason that almost every commercial contractor I've worked with keeps a spreadsheet open alongside an otherwise flawless accounting program.

The P&L tells you the company made money last quarter. It cannot tell you that the rough-in on the third-floor build-out went 11 points under bid while trim-out bled 19, because the ledger never asked which phase the hours belonged to. Level's contractor dataset makes the scale of that blind spot uncomfortably clear: 91% of jobs had revenue logged but no labor, material, or subcontractor cost coded to the same job. Revenue lands. Cost floats somewhere in a general bucket. Margin then becomes a guess dressed up with a decimal point.

This post is written for trade contractors doing small commercial work: tenant improvements, build-outs, retrofits, service divisions that also run projects. Not the general contractor on a $50M civil job with a controller and a cost engineer. If you are running six to forty people and three to twelve live projects, the mechanics below are the ones that pay for themselves. For the underlying document that holds all of this per job, start with our guide to the job cost sheet.

Break the Job Into Phases Before Anyone Swings a Hammer

A phase is essentially an organization of work within an occupation, which is how Trimble defines it in its documentation on job costs. It is also the smallest unit in which a cost can actually be assigned to something. Examples include demo, rough-in, equipment set, trim, start-up and commissioning, and punch.

The principle that makes phases work is that each work order for the project is connected to the project and assigned to its own phase. There are no orphan tickets and no "misc labor" catch-all that consumes 14% of closing hours. Each ticket is tied to an hour and a phase, and costs are added by phase without any need to re-key information on Friday.

A structure that is especially useful for small businesses is to make your plan of action align one-to-one with your schedule of values (SOV) line items. The same structure can serve as the basis for cost tracking and billing. Contractors on r/ConstructionManagers frequently ask each other how granular an SOV should be and how to cost-load it because there is no shared convention, and every owner wants it split differently. When your phases and SOV lines are aligned, the argument only needs to happen once.

A starting structure that a small commercial mechanical or electrical contractor could use is: 100 General Conditions, 200 Demo, 300 Material Procurement, 400 Rough-In, 500 Equipment Set, 600 Controls and Wiring, 700 Trim and Devices, 800 Start-Up and Testing, and 900 Punch and Closeout. Each phase can be tracked across four cost classes: labor, materials, subcontractors, and equipment.

Project work breakdown showing work orders grouped by phase with scheduled versus actual hours and cost
Every work order linked to the project under its phase, with scheduled hours against actual and planned cost against actual, per phase.

Committed Cost: Money You Have Already Spent That Is Not in Your Books

This is the part that separates a true job-costing perspective from a slower one. Trimble's definition is a good one: committed costs are costs that have been arranged but not yet paid, such as open purchase orders, subcontractor agreements, and field time that has not yet been processed through payroll.

Four types of commitments are commonly found on small commercial jobs:

  • Open purchase orders for materials and rented equipment.
  • Signed subcontractor agreements for work that has not yet been completed.
  • Field labor that has not yet been processed through payroll.
  • Materials purchased on-site using a company account or truck account.

The math used in most job-cost reports often looks like this:* *

Phase budget minus actual to date minus open commitments equals what is actually left.

It can be run on an actual phase. The budget for material procurement for a $310,000 build-out is $86,000. To date, $41,000 in invoices have been paid, making it appear that there is $45,000 remaining. Then subtract the remaining open PO of $28,500 for the equipment provider and the remaining balance of $12,000 on the controls subcontract agreement. The actual remaining amount is $4,500. The version that does not account for commitments can make it appear that you have far more runway than you actually do. It also fails to account for the three weeks it may take for a supplier's invoice to arrive.

A good PO is one that carries a status, not just a number: it is requested, anticipated, and received, then billed and paid. Subcontractor agreements work similarly. Costs are committed when the PO is issued. Any view of job costing that simply counts invoices is structurally lagging behind by the length of your supplier billing cycle.

Labor at Its Real Cost, Not Its Wage Rate

The cost of a technician at $32 per hour, based solely on what the paycheck shows, is the most frequent margin error I've seen and it's never a small amount. The true cost of the position includes wages and burden, plus an hourly allocation for tools, truck fuel, phones, and the truck itself.

Burden includes the employer's payroll taxes, workers' compensation, general liability, and benefits. The adder includes vehicles and equipment that do not generate a separate invoice. This is the same reasoning Deltek and other companies use when accounting for equipment ownership. They assign an hourly rate roughly equivalent to what it would cost to lease the equipment in the market, because no provider will ever send you a separate bill for the use of your own vehicle.

One watch-out in the field is non-billable travel and paperwork time. If a two-hour service visit includes 70 minutes of driving and 20 minutes of paperwork, and only two hours are charged to the job, the job may appear efficient — but the week isn't.

The full burden calculation, the adder math, and how to turn all of it into a defensible sell rate deserve more room than a pillar page can give them. We cover the pricing side in depth in the guide to pricing HVAC jobs the profitable way, and the mechanics apply to any trade running burdened labor into a commercial phase budget.

Billing the Job: Pay Applications, T&M, Retainage and Change Orders

The billing structure and the cost structure should match; otherwise, you'll spend an evening each month reconciling them manually.

Fixed-price contracts are billed according to a schedule of values (SOV) using AIA G702 or G703 payment applications. Each SOV line tracks the percentage completed, work completed prior to the current period, work completed during the current period, stored materials, retainage, and the remaining balance to be completed. Time-and-material jobs are billed per order, with an invoiced balance visible on each order and new items flagged when an order that has already been paid adds additional labor or parts.

This manual approach is a real problem. The r/Construction forums frequently have discussions about how to prepare G702 or G703 applications without paying for specialized software. The solution is usually spreadsheets or Word templates that are rebuilt each period, along with continuation sheets, while the summary is reconciled manually. In our experience, a meaningful share of manually prepared G702/G703 pay applications used by a typical small commercial shop are returned for formatting or arithmetic errors, including total mismatches, retainage miscalculations, and erroneous changes. Each rejection adds 30 or more days to an already lengthy payment cycle. Data from industry sources such as CFMA and specialty-contractor filings puts subcontractor commercial DSO at 83 days, compared with a 60-day industry-wide benchmark.

Two topics get their own deeper treatment and should not be squeezed in here. Retainage, which owners describe on Reddit as held wrong, held past practical completion, or simply never released, with nobody able to point at a single place showing what is held and when it releases. And change orders, where scope moves faster than paperwork and crews end up doing unbilled work. If you want the front end of that tightened, our post on estimate disclaimers covers the language that keeps unforeseen conditions from becoming your problem, and when to send invoices, before or after the job covers the timing side for T&M work.

AIA G702 summary and G703 continuation sheet with percent complete, retainage and balance to finish
A G702 summary and G703 continuation sheet raised from a locked schedule of values, on a draft, submitted, approved, paid workflow.

Scheduled Versus Actual, While There Is Still Job Left to Fix

The entire point of phase costing is to ensure that an overrun doesn't become a problem before you have a chance to take action. Planned hours are compared with actual hours, and planned costs are compared with actual costs, based on the work ordered per phase.

This is the math that drives decisions on small commercial projects. A 10% labor overrun on a $120,000 labor budget can silently wipe out around 25% of a project's gross margin, reducing an initial $45,000 margin to $33,000 before anyone notices. In our experience, shops that switch from end-of-month reconciliation to real-time labor tracking and PO monitoring against the job can catch these issues within the first week instead of waiting until closeout. The difference is between adjusting the scope and taking the loss.

Contractor reporting addresses precisely the failure-prone mode that phase costing is designed to prevent. One mechanical contractor's rough-in was 11 points below bid, while trim-out was down 19 points - a gap that only became apparent after the phase codes were reconfigured, weeks after closeout. The same job, the same numbers, two totally different lessons, but neither was available in time to act.

A review from one of our construction customers shows the practical version of this.* *They described managing commercial, multi-phase construction as having to juggle papers and spreadsheets before discovering that their PMs could monitor every project and dispatch their team on one screen, cutting down on daily administrative work.

Per-work-order billing dashboard showing unbilled balance and newly added labor and parts
Per-work-order billing for T&M work, with unbilled balance per order and new items flagged when a billed order picks up extra labor or parts.

Cost to Complete, WIP, and Catching Overbilling Early

Work-in-progress reporting requires five inputs. You already have four if your phases are in order:

  • Contract price
  • Total cost estimate
  • Costs to date
  • Amount billed to date
  • Estimated costs to complete

If a project is 50% complete but only 30% of the cost has been billed, you are effectively financing 20% of the project from your own cash. Turn that ratio around, and you've billed ahead of production, which functions like cash and can help reveal a future shortfall.

The fifth input is the one that nobody can tell a contractor who isn't a controller how to handle. Three practical sources that can be used are the percentage of completion of the phase reported by the field supervisor, the remaining open commitments applied to the remaining phases, and the labor burn rate during the last two weeks applied to the rest of the scheduled time. Select the highest of those three. Optimism in the cost-to-complete number is expensive.

On margin expectations: in Level's benchmark dataset, the report shows a median gross margin of 44.3% across 1,747,089 completed jobs that include cost data that include job-level cost information. It also notes that commercial projects usually have between 10% and 20% gross margin* *because they're pass-through-heavy, while time-and-materials work ranges from 35% to 45%. If your construction projects pencil out at around 40%, that number may be wrong before the job begins.

Distribution of Gross Margins in Completed Jobs

Honest Margin, or No Margin at All

This is the principle I advocate for most, and it's not popular with those who prefer dashboards.

If a portion of a project's work orders is missing labor costs, or too many products have no recorded cost, the proper procedure is to display the cost but not reveal the margin, while identifying the missing items. For example: "Margin unavailable: 6 of 22 work orders have no labor rate, and 4 parts have no recorded cost." That's not a percentage.

In the 14 years I've watched owners make these calculations, I've seen confident margins based on insufficient cost data cause more harm than a blank field. An empty field directs someone to search for the missing rate, while a seemingly reliable number prompts someone to bid on the next project in the same way. Margin figures are an assertion of accuracy. If the data isn't complete, the system should not present a margin as if it were reliable.

Similar logic applies to the reporting layer. Per-job margins and contract margins are distinct issues. A service contract covering twelve sites may have an adequate overall margin, while three of those sites may lose money every time you visit them. You need to report both.

Why Job Costing Breaks in the Field, and the Rhythm That Fixes It

The problem is that it's usually boringly similar: field data is entered late, cost codes are assigned to the wrong phase or job, change orders aren't included in the forecast, and office and field employees are working from different numbers. Owners on r/ConstructionManagers describe projects launching without clearly defined deliverables, so change requests blur into the original contract and crews end up doing unbilled work without realizing it.

The fix is cadence, not software alone.

  • Daily: hours to a work order that carries a phase, materials consumed, field purchases photographed and attached. Digital job cards are how this stops being a paper pile in a truck.
  • Weekly: Review committed versus remaining costs on each active project for 20 minutes between the owner and PM, using the same reporting period.
  • Each pay app: Reconcile the phase percentage complete with the G703 line, confirm retainage, and include approved change orders in the SOV before submitting it.

One pattern to be aware of is a variation we've seen in small multi-trade shops with fewer than ten technicians covering plumbing, HVAC, and light electrical work. The owner had an ongoing review block on Friday afternoons, but it fell apart within a month as Friday afternoons continued to be consumed by emergency calls and parts runs.

Moving the review to 7 a.m. on Monday, immediately after the morning huddle, made it stick. Senior technicians were uncomfortable being reviewed in front of the entire group, so discussions were conducted one-on-one. It was slower, but the method didn't fail.

Cadence ceases to exist when it has to compete with dispatch. That's why it needs to be scheduled at a time and in a place where dispatch is not present.

Job Costing Cadence

What to Require Before You Buy Anything

Skip the list of features. These are disqualifiers, and any one of them is enough to make you walk away from a vendor.

  • Does it record committed costs, not just invoiced costs? If open POs or subcontract agreements don't reduce the remaining budget, your figures will always be late.
  • Does it include labor and materials at burdened rates consistently, including trucks and tool adders, without requiring you to enter an amount for every ticket?
  • Does the phase structure carry over to the pay application, so the G703 lines and cost report can align with each other?
  • Does the field app function offline? Does the ticket retain its phase when it syncs?
  • Does it integrate with your accounting system without requiring data to be re-keyed?
  • Does it withhold margin calculations when cost data is incomplete rather than displaying an unconfirmed number?

The majority of vendors include project-level job costing and AIA billing in higher-tier plans, so compare the features included in the plan you can actually afford, not just those at the top of the pricing structure. A customer from the electrical division put the benefit in plain language in a review, stating that the G702/G703 progress-billing feature is an "absolute lifesaver" for larger commercial jobs because they can generate AIA-formatted payment apps without rebuilding them from scratch every month.

Deep dives in this guide

Deep dives in this guide

Conclusion

Costing jobs for small-scale commercial projects isn't an accounting process you can do after the fact. It's a plan that you establish before the first job, with phases that align with your schedule of values, each work order assigned to its phase, and purchase orders and subcontract agreements that commit budget when they are issued based on the amount it will cost you to put a worker on the job, and billing should follow the same structure as costs. If you do that, an overrun can be discovered in the first week, while there's still time to take corrective action. If you don't, you'll be notified at the time of closing, which is another way of saying you've discovered the problem too late to make any changes other than paying for it. If your team is reconciling costs for each phase on a spreadsheet every Sunday night, this is what needs to be addressed first.

Frequently Asked Questions

Joy Gomez
Joy Gomez

Founder and CEO

Joy Gomez is an engineer, process automation expert, and the Founder of Field Promax. Known for his technical expertise and commitment to field service innovation, Joy writes about transforming traditional business models into paperless, efficient operations. He is a Lean Six Sigma Black Belt based in Rochester, MN, dedicated to helping field professionals work smarter through better technology.

Reviewed by

Bhargavi Halthore
Bhargavi Halthore

Content Creator

Bhargavi Halthore is a content writer at Field Promax, a field service management platform serving trades businesses across the USA and Canada. With over a decade of experience writing for business owners, she brings detailed, ground-level insight to every topic she covers. Her research goes beyond search results - she digs into LinkedIn groups, Facebook communities, and Reddit forums to understand what field service business owners are actually dealing with on the ground. She speaks directly with industry professionals, understands their day-to-day challenges, and translates that into content that is practical and actionable. What you read in her articles reflects real industry patterns, not theory.

Not your average newsletter.

Just straight-up tools and tactics that work.

By entering your information above and clicking button, you agree to our Privacy Policy