The job wrapped Friday afternoon. Monday morning, someone builds the invoice. They pull hours from the timesheet, materials from the work order, and assemble the line items. The invoice goes out Tuesday. Wednesday, you realize the job ran 22 hours over estimate and used $800 more in materials than quoted. The customer already has the invoice at the agreed price. The overrun is your problem now.
This is the invoice-as-autopsy model of job management. By the time the data is assembled, the job is history. The only decisions left are how to absorb the loss and whether to have a difficult conversation about a change order the customer wasn't expecting. Both options are bad. Neither was necessary if the overrun had been visible three days earlier, while the job was still running and corrective action was still possible.
Where margin disappears between estimate and invoice
Jobs lose margin in predictable ways. Labor hours creep past the estimate when no one tracks actual-vs-budgeted hours in real time. Materials go over when field techs pull additional parts without logging them against the job cost. Scope expands without formal change orders because the conversation happens on site and never makes it into the system. Each of these is individually manageable - if it's visible when it happens, not after the fact.
The specific point where intervention becomes possible is when the job is at 40-60% completion. At that stage, you can see whether labor is running ahead of or behind pace, whether materials consumption is tracking to estimate, and whether any scope additions have been captured. You can still compress remaining scope, have the change order conversation before the work is done, or adjust crew allocation. At invoice time, none of these options exist.
"Managing a job and reviewing a job are different activities. One happens while you can still change the outcome."
What real-time job costing requires
Real-time job costing is not a report you run at end of day. It's a live view of three numbers against each job: labor hours consumed vs. budgeted, materials cost logged vs. estimated, and change orders captured vs. verbally approved. When these three numbers are current, you have the information you need to make decisions while decisions still matter.
The infrastructure this requires is specific. Labor tracking needs to be geo-verified and job-coded at clock-in, not reconstructed from memory at day's end. Material usage needs to be logged at the moment of installation, ideally by barcode or catalog lookup, not summarized from a paper invoice two days later. Change orders need to be created on site with customer approval captured digitally, not remembered and billed on a hope-they-pay-it basis.
When these inputs are flowing in real time, the job cost dashboard reflects the job's actual state, not a reconstruction of it. The foreman who sees that his labor is 15 hours over budget on a job that's only 60% complete knows he has a problem. He can escalate, compress, or initiate a change order conversation - because he can see the problem while there's still time.
The jobs that always lose money
Every operation has job types that reliably underperform. Certain neighborhoods where access issues add an hour to every call. Certain account types where scope always expands. Certain crew combinations where productivity runs low. This pattern is invisible without historical job costing data by job type, location, and crew - but it's plainly visible once you have it.
The estimator pricing from gut feel is pricing from an average impression of past jobs, weighted toward memorable ones rather than representative ones. The estimator pricing from actual historical cost data by job type is pricing from the real distribution of outcomes. The difference is margin consistency - and margin consistency is what separates a business that grows profitably from one that grows into thin air.