SHORT VERSION
The money you lose on change orders goes missing in the field, not at the invoice. The extra gets done and never gets captured, so by billing time there’s no price, no approval, and no record it happened. You can’t bill what you never wrote down. The fix is a fast way to log and okay the extra the moment it happens, on the job, so it reaches the invoice already documented instead of dissolving into the labor hours.
How to stop losing money on change orders starts with one fact: the extra work gets done and never makes it onto the invoice. It’s gone before you sit down to bill, because nothing captured the extra at the moment it happened.
Where the extra actually goes missing
The loss doesn’t start at the invoice. It starts on the job, the day the extra gets done.
Here’s how this goes in a shop like yours. The GC points at a wall on the way through and says he needs a couple of dedicated circuits added for where the copiers are going now. Just do it, we’ll square up later.
Your journeyman runs them that afternoon. It takes him a couple of hours and some material, and nobody writes down that it happened.
That’s not carelessness. When the customer is standing right there wanting it done, stopping to document the extra means holding up the work to chase a price and an approval. The work wins that fight every time, because there’s no fast way to catch the extra without becoming the thing that slows the job down. So the extra gets done, and the record of it never gets made.

Why “we’ll square up later” never happens
Later never has what it needs. To bill an extra, you need three things: what was actually done, what it should cost, and proof the customer okayed it. None of those get created after the fact.
By the time you’re building the invoice, the extra is invisible. The hours went onto the job’s total. No separate price was ever set. No signature exists. The extra is now indistinguishable from the base work, so there’s nothing to pull out and charge for.
“We’ll square up later” is a promise with nothing behind it. Later was never handed anything to reconcile to. So it doesn’t get billed, and you eat it.
So how do you actually catch the extra?
Not by reminding anyone to write things up. By building a step that logs and okays the extra before the work starts, so it can’t get done as a record nobody made. Nothing extra gets worked until it’s logged and approved, and the logging lives in the field so it doesn’t cost the job any speed.
That means the change gets entered from the phone, on site, in the software you already run. ServiceTitan, Housecall Pro, and Jobber all let you build a change order or a quick estimate in the field and put a price on it in a minute.
That price can be a not-to-exceed or a plain time-and-material number. It doesn’t have to be perfect. It just has to exist before the work does.
And it carries the customer’s yes at that moment. A signature on the phone, or a texted approval that lands on the job. When the okay is captured on site, “later” has something real to reconcile to, and the extra shows up on the invoice already documented instead of dissolving into the labor hours.
The GC who says “just do it” isn’t the problem. The problem is that when he says it, there’s no ten-second way to turn “just do it” into a logged, priced, approved change before your guy picks his tools back up. Build that, and the extras stop disappearing.
FAQ
Should I make my crew stop and call the office for every little extra?
No, and that’s exactly why it doesn’t happen now. If capturing an extra means holding up the job to phone the office, the job wins and the extra goes unrecorded. The point is a capture that lives on the phone in the field and takes a minute, so it doesn’t turn your lead into a bottleneck.
We run everything time and material. Do we still need change orders?
Yes. T&M doesn’t save you here. If the extra hours get logged against the base job instead of the change, they blend into the total and you can’t separate what the customer owes for the addition. The extra still has to be logged as its own thing the moment it starts.
How do I bill for extras the GC already told me to “just do”?
If it wasn’t captured when it happened, you mostly can’t, and chasing it after the fact turns into a fight you usually lose. Going forward, “just do it” has to become a logged, priced, approved change on site before the work starts. That’s the only version of it you can actually collect on.
What if the customer won’t approve the extra in the field?
Then you found that out before you did the work for free instead of after. That’s the capture step doing its job. A no on site costs you nothing. A silent yes that never got written down costs you the whole extra.

