The job that’s going to lose money, flagged in week one
It is Friday of week one in the job trailer and the superintendent is staring at the first job-cost export — labor already running hot on one cost code, quantities barely moved — knowing this is exactly how a job that looked fine in the bid quietly loses money by month three.
Source: ServiceTitan, "Pantheon 2026: Live coverage from ServiceTitan" — https://www.servicetitan.com/blog/pantheon-2026-live-coverage — the coverage describes a construction estimate variance agent planned for a commercial platform, forecasting project variance from historical budget and actual data. This post adapts that idea as a small-shop workflow using exported job-cost reports; it is not a shipped product.
The problem
Most losing jobs do not lose money in one bad week. They bleed a little at a time: a cost code taking more hours than the bid allowed, material bought twice, production that looks busy while installed quantities crawl. By the time the monthly cost report makes it undeniable, the crew is halfway through the work and the cheap fixes are gone.
The early signal is usually in the shop’s own numbers already — this week’s actuals against the budget, read the way the last few finished jobs actually behaved. Doing that by hand means someone senior rebuilds the comparison every week, for every active job, and mostly nobody does. So the variance gets discovered at closeout, when it is history instead of a warning.
How the agent workflow works
- Pull the running actuals, by cost code. Each week the agent takes the exported job-cost report for every active job — labor, material, equipment, percent complete by cost code — in whatever spreadsheet or accounting export the shop already produces. No new field system is required.
- Learn the shop’s own pattern first. Before it flags anything live, the agent reads the finished jobs: where budgets held, where they slipped, and which codes slipped early on jobs that finished over. A shop should be judged against its own history, not a generic benchmark.
- Forecast the finish, not just the week. For each active job the agent projects where each cost code lands if the current burn and production rates hold, and states the projected final variance in dollars.
- Name the drivers, not just the total. The brief names the lines doing the damage — hours ahead of quantities on one code, material committed ahead of install on another — with budget, actual, and forecast side by side, so a superintendent can check it in minutes.
- Put the decision back with the humans, while it is cheap. The superintendent and estimator decide what the forecast earns: re-sequence the work, re-price a pending change, tighten a crew mix, or watch it another week. The agent never reprices or messages a customer. It forecasts; people negotiate.
What you need to set it up
- Finished-job history worth learning from: budgets and actuals by the same cost codes you use today. If every estimator coded work differently, clean that up first — the agent will learn the inconsistency as if it were a pattern.
- A weekly job-cost export someone trusts. Payroll is the source of truth for labor; if hours land a week late, the forecast is a week late too.
- Percent complete recorded honestly, by cost code. Production quantities are the denominator of every forecast — flattering them flatters the projection.
- A threshold and an owner: how large a projected variance earns a conversation, and who gets the brief. Cost, honestly: this runs on exports the office already produces; the real cost is the history cleanup and setting the thresholds.
Where it breaks
Week one is a tiny sample. Mobilization and setup front-load cost before production starts, so an honest early forecast will cry wolf on normal jobs. Treat the first flags as questions.
History can teach the wrong lesson. If a code always finished over because it was always underbid, the agent learns to expect the overrun instead of naming the bid as the problem. Someone who knows the jobs has to review what the pattern means.
Miscoded time poisons everything. Hours charged to the wrong code make one line look doomed and another healthy, and the forecast presents both with equal confidence.
A forecast is not a verdict on the crew. Weather, design changes, and owner delays move variance without anyone in the field failing. Used as a blame report, this brief will get its inputs quietly gamed within a month.
The bottom line
Run it in shadow mode for one job cycle: the agent forecasts every Friday, the team runs the job as usual, and the two get compared at closeout. Where the early flag was right, you bought weeks of options. Where it was wrong is where your job-cost data was lying — worth knowing before the next bid, not after it.