Field Service Software

Change Orders: Where General Contracting Margin Disappears Without Anyone Noticing

General contractor change order tracking

Quick Links 

A project can finish on schedule, close out with no complaints from the client, and still lose margin. Not because the crew worked slowly. Not because the sub showed no. It loses margin because change orders and added scope weren’t tracked against the original budget while the work was happening, and by the time anyone looks at the final numbers, the money is already gone. 

This is one of the quietest ways a general contracting business bleeds profit. Nothing looks wrong on the surface. The job was done. The client is happy. But somewhere between the original bid and the final invoice, scope grew; costs shifted, and nobody was watching closely enough to catch it while it still mattered. 

This is where general contractor change order tracking earns its keep: not as paperwork, but as the thing that shows you a scope of change or a cost overrun while the project is still open, instead of buried in the final numbers. 

Here’s how it usually happens. 

Added Scope Becomes “We’ll Figure Out Billing Later” 

Mid-project, the client asks for something extra. Move a wall. Add an outlet. Upgrade to a finish. On a lot of jobs, the answer is some version of “sure, we’ll sort out the cost later,” and the crew moves forward with the work. 

The problem is that “later” often means at closeout, when the project manager is trying to reconstruct three months of verbal requests and text messages to figure out what got added and what it should have cost. Some of it gets remembered and billed. Some of them aren’t. On multi-phase projects with several subs and a lot of moving pieces, it’s easy for a handful of small scope additions to add up to a real amount of unbilled work, work that got done, used materials and labor, and never made it onto an invoice because nobody logged it the moment it happened. 

The fix isn’t complicated; it’s just a habit: log the change and price it out when the scope changes, not when the project wraps. A change order that gets written up and approved the same week it happens gets billed. A change in order that lives in someone’s memory until closeout usually doesn’t or gets billed for less than it costs to deliver. 

The Associated General Contractors of America has made the same point at the federal contracting level: delayed change order processing disrupts cash flow and creates exactly this kind of gap between work performed and work billed.

Overruns on One Phase Get Absorbed into the Whole Project

Overruns on One Phase Get Absorbed into the Whole Project

Multi-phase projects have a way of hiding their problems. Say framing runs over on labor hours because of an unexpected structural issue. If nobody’s tracking budget versus actual by phase, that overrun doesn’t show up as “framing ran over.” It just shows up later as “the project made less margin than expected,” folded into a single number that covers every phase from foundation to final punch list. 

That matters because it means the general contractor never finds out which phase actually caused the problem. Was it framing? Was it electrical rough-in taking longer because of an access issue? Was it a sub who quoted low and then needed extra hours to hit the same scope? When cost tracking only happens at the project level, all that gets blended together, and the GC loses the ability to see which part of the process needs attention on the next bid. 

Tracking budget versus actual by phase, while the project is still open, flips this. If framing is running 15 percent over budget halfway through the phase, that’s visible immediately, not three months later in a closeout report. That gives the GC a chance to have a conversation with the sub, adjust the schedule, or at minimum flag it so the same issue doesn’t repeat on the next project with the same crew or the same site conditions.

Last Year’s Rates Quietly Erode This Year’s Margin

A lot of GCs bid on new projects using labor and material rates that are close to what things cost last time, maybe adjusted a little, maybe not adjusted at all if the estimator is busy and reaching for a template. Material costs move throughout the year. Labor rates move too, especially with sub availability tightening in busy seasons. 

If a bid goes out using rates that are even a little stale, the project starts behind on day one. It’s not a single dramatic loss; it’s a small gap between what things cost and what was budgeted for them, and that gap exists from the first invoice, not from some midpoint failure. Over the course of a multi-phase project, that gap compounds. By the time the project closes, what looked like a normal margin on the bid has quietly shrunk, and it’s easy to blame the shrinkage on execution problems when the real issue started with the rates used to build the estimate. 

This is one of the harder problems to catch because it doesn’t look like an error. The bid process ran normally. The rates just weren’t current, and nobody flagged it because there wasn’t a clear point of comparison between “rate used in the bid” and “rate actually being paid this month.”

Catching Problems Mid-Project Instead of at Closeout 

Catching Problems Mid-Project Instead of at Closeout

The common thread across all three of these is timing. Unbilled scope, phase-level overruns, and stale rates all show the same way if you only look at the numbers once, at the end of the project: as a single disappointing margin figure with no clear explanation. 

Tracking budget versus actual by phase, in real time, changes what you’re able to see. If a change order gets logged and priced on the day the scope changes, it gets billed instead of forgotten. If a phase is tracked against its own budget instead of the whole project, an overrun on framing shows up as a framing problem while there’s still time to talk to the sub or adjust to the next phase. If current rates get checked against what was used in the bid, a GC can catch that gap before it’s baked into six more months of billing at the same low numbers. 

None of this requires guessing final numbers before the job is done. It just requires looking at the project in pieces while it’s still open, instead of waiting for one number at the end that blends every phase, every change order, and every rate decision into a single result nobody can unpack.

The Practical Takeaway

Change orders should be logged and priced at the moment scope changes, not batched up and reconciled at the end of the project. That single habit, tracking scope changes and phase costs in real time instead of reconstructing them at closeout, is usually the difference between a GC who can explain exactly where margin went and one who’s stuck guessing after the fact. 

If you’re running multiple phases with subs and crews across several active projects, the earlier you can see budget versus actual at the phase level, the earlier you can fix a problem while it’s still fixable, instead of finding it in the final numbers when the only thing left to do is note it for next time. 

MyWorkbelt’s Budget vs. Actual tracking is built for exactly this: phase-by-phase visibility into cost while the project is still open. Book a demo to see it against one of your current projects.  

Related reading: MyWorkBelt vs. Jobber, for a look at how job- and phase-level profit tracking compares to standard scheduling-first field service software. 

Related Posts

Leave a Reply

Your email address will not be published. Required fields are marked *