Why You Don't Know What a Job Made Until It's Too Late
In most shops, job profitability isn't measured. It's reconstructed, weeks after anyone could act on it.
From Handy Ventures
Your P&L can tell you whether the company made money in March. It cannot tell you whether the job your crew is standing on this morning is making money right now. Those sound like the same question. They're separated by about six weeks, and those six weeks are where contractors lose money they never see leaving.
Every owner knows the experience. A job feels good the whole way through. The crew moved fast, the customer was happy, nothing burned. Then, a month or two after closeout, the final numbers arrive and the job that felt like a winner made four percent. Somewhere between the feeling and the report, fifty or eighty thousand dollars of margin went missing, and by the time you're looking at the autopsy, the crew is three jobs down the road and nobody remembers Tuesday of week six well enough to explain it.
The instinct is to blame estimating, and sometimes that's fair. But just as often the estimate was fine and the real problem is simpler and stranger: for the entire life of the job, nobody could see it.
Where the picture goes dark
Job costing lags because every kind of cost arrives on its own schedule, and none of those schedules is "when it happened."
Labor is the biggest and the blindest. The hours were worked Monday; they reach the office Friday, from memory, in a text. Then someone has to put them on the right job, and until they do, the biggest cost on the project officially doesn't exist. When a crew splits a day between two sites, or swings back for a callback on a job that already closed, the hours land wherever the guess puts them. Ask anyone who's found a closed job eating a live job's payroll.
Materials arrive on the vendor's clock. The lumber hit the site in week two; the bill shows up in week five, gets coded in week six, whenever someone works through the stack. Anything bought on the house account sits in limbo until statement day, and a few charges never find their job at all. They just quietly join overhead, which is where untraceable margin goes to hide.
Change orders are the most expensive lag, because they cut both ways. The customer asked for it on the phone, the crew built it that week, and the paperwork happened later or never. Until it's entered, the job carries real costs with no revenue against them, so the report reads like the job is bleeding. Or the opposite: the change never gets billed, and the job pays for work the customer got free.
Billing runs on its own calendar too, so revenue and cost rarely land in the same week. Look at any active job's numbers mid-stream and you're seeing costs from three weeks ago against billings from last month.
Stack the lags and the truth about a job assembles itself four to eight weeks behind the work. The job report isn't a measurement. It's archaeology.
What the lag actually costs
A late number isn't just late. It's expensive in specific ways.
The job that's trending over budget gets six more weeks of the same, because nobody could see the trend while it was forming. The overrun you catch in week three costs you week three; the one you catch at closeout costs you the whole job.
The hard conversations happen after the leverage is gone. Repricing a change, flagging a scope problem, telling a customer their Tuesday requests are adding up: all of it is possible mid-job and nearly impossible after the money is spent and the crew is gone.
And the estimating never improves, because the feedback arrives cold. By the time you learn the real cost of that foundation detail, you've bid four more jobs carrying the same wrong number.
Meanwhile the company runs on the only signals available: the bank balance and the gut. Both are real, and both lie. The bank balance is a company-wide number that can look healthy while one job quietly consumes another's margin. The gut is why the four-percent job felt like a winner.
The job that stays lit
None of this is caused by laziness, and it can't be fixed by demanding the office "keep up." The office is keeping up. The information itself travels slowly, because at every step a person has to carry it: read the text, allocate the hours, code the bill, create the change order, update the budget.
The fix is to shorten the distance between something happening and something being recorded, until they're the same event. Hours texted from the field land on the job that day. The vendor bill arrives already pointed at its project. The phone call about the island outlet creates the change order while it's still a conversation, so the cost and the revenue show up together. Billing draws from what's actually built.
Do that, and the job report stops being archaeology. Margin becomes something you watch, like the schedule, instead of something you learn, like a verdict. The over-budget job announces itself in week three, while the estimate can still be defended, the change still billed, the lesson still warm.
Here's the test, and it takes one phone call. Pick your biggest active job and ask what its margin is as of today. Time how long the answer takes, count how many people it involves, and notice how many caveats it arrives with.
However long that took is exactly how far behind your money you're running. The job's been trying to tell you what it's making all along. The information just keeps arriving after it matters.
If it's a question you're sitting with right now, we'd rather talk it through than have you read about it.