← Back to blog

Job Profitability for a General Contractor: When the Estimate, the Field Hours, and the Billing Never Meet

May 13, 2026

The problem: You can see what a job was bid at, what the crews charged to it, and what the customer was billed, but never all three side by side, so whole-job margin stays a guess.

The solution: Connect the estimate, the field hours, and the billing to the same job so real margin shows up at closeout instead of being rebuilt by hand months later.

The math

On a $250,000 job bid at 18 percent, $9,000 of change order work that never got billed plus $6,000 of extra field hours turns a $45,000 margin into $30,000, and a dozen jobs like that in a $10 million contractor is roughly $180,000 of margin nobody can name.

Your accountant can tell you what the company made last year. That number is real, and it is almost useless for running the business, because it is the sum of your best jobs and your worst jobs with the difference cancelled out. The question you actually want answered is narrower: of the forty jobs you finished, which ones earned what you thought they would, and which ones paid you back less than the trouble they caused?

Most contractors your size cannot answer that, and it is not for lack of information. Every piece of the answer exists somewhere in the business. The trouble is that the three pieces have never been in the same place at the same time.

You know your overall margin. You do not know it job by job.

Ask an owner which of last year's jobs made the most money and you usually get a confident answer, followed by a pause. The confident answer comes from memory: the job that ran smoothly, the customer who was easy, the crew that liked being there. The pause comes from realizing that smooth and profitable are not the same thing, and that the job everyone hated might have been the one that carried the year.

Memory rates jobs on how they felt. The books rate the company on the total. Neither one tells you what a specific job earned, which means the decision you make next, which customers to chase, which work to bid harder, which superintendent to put where, is made on a feeling about a job rather than on what the job actually did.

The three places a job's money lives

Walk the number backwards and it splits into three parts that live apart.

The estimate lives in your estimating tool or in a spreadsheet on the estimator's machine. It holds the assumed hours, the material takeoff, and the margin you intended to make.

The field hours live in whatever the crews use to record time, and from there they go into payroll. Payroll cares that people get paid correctly, so that is where the hours stop. Whether those hours matched the estimate is a question payroll was never built to ask.

The billing lives in the accounting system. It knows what went out the door and what came back in. It does not know what the job was supposed to cost, and it usually does not know about the work the crew did in week six that nobody wrote up.

Each of the three is accurate on its own terms. Whole-job margin is the number you get when you put them next to each other, and nothing in the business puts them next to each other. Someone can do it by hand for one job when the owner asks, which takes half a day and happens maybe four times a year, always for the jobs that already smelled wrong.

Change orders are where the number goes wrong

The single largest gap between what a job was supposed to earn and what it earned is usually not the estimate being bad. It is work that got done and never got billed.

The pattern is familiar. The customer asks for something on site. The superintendent says yes, because saying yes is how the relationship works and stopping to write it up costs a day. The crew does it. The hours land in payroll against the job, so the cost is real and recorded. The billing side never hears about it, so the revenue is not. The job absorbs the cost and shows no matching income, and the margin drops for a reason that will never appear in any report.

A single unbilled change is a few thousand dollars. What makes it expensive is that it is invisible, so it repeats. The same superintendent does the same generous thing on the next job, and nobody has any evidence to hand him that would suggest otherwise.

What closeout looks like when the three connect

When the estimate, the field hours, and the billing are connected to the same job, closeout stops being an accounting exercise and becomes an answer. The bid hours sit next to the recorded hours. The billed total sits next to the recorded cost. The variance has a name and a cause, not just a size.

Automation is what keeps that current without a person maintaining it. Hours land against the job when they are recorded rather than being retyped later. Extra work flagged in the field turns into a draft change order the same day and goes to a person to approve, so the billing side finds out while the customer still remembers asking. A job whose hours cross the estimate raises its hand in week six instead of at closeout, when it is still a job you can steer.

None of that is the point. The point is that at the end of a job, and increasingly in the middle of one, you know what it earned. The connecting and the automating are how that number becomes available.

A look at a general contractor

Consider a general contractor doing about $10 million a year with 50 employees, running roughly forty jobs averaging $250,000. The books are clean, the accountant is good, and the company is profitable. The owner bids at 18 percent and believes the company lands somewhere near it.

Put the estimate, the field hours, and the billing against the same jobs for a year and you would expect the spread to be wider than the owner assumed. Some jobs would come in above the bid margin. A group of them would come in well below, and the reason on most of those would not be a bad estimate. It would be work performed and never billed, plus field hours drifting past the estimate on a job type that keeps getting bid the same way.

Take a job of that size bid at 18 percent, so about $45,000 of intended margin. If $9,000 of change order work is done and never billed and the crews run $6,000 of hours past the estimate, the job earns $30,000. It still looks like a good job. Nobody investigates a job that made money. Run a dozen jobs a year that way and roughly $180,000 of margin has gone somewhere the owner could not point to.

The likely response is not dramatic. It is bidding that job type differently, having a conversation with one superintendent backed by numbers rather than suspicion, and billing the extra work that is already being done. The work does not change. What changes is that the owner can finally say which jobs are worth chasing more of.

The four jobs to test this on

You do not need to do this across the whole company to learn something. Pick four finished jobs and reconstruct them by hand once.

Choose the one everybody remembers as the best job of the year, the one everybody remembers as the worst, one ordinary job, and one for your largest customer. For each, put the estimated hours next to the recorded hours, the recorded cost next to the total billed, and list every change that happened on site next to every change that got invoiced.

That exercise takes a day and answers three things: whether your best job by feel was your best job by margin, how much work is being performed for free, and whether the gap is concentrated in a job type, a customer, or a person. If all four come back close to the bid, you have a genuinely good answer and you can stop. In most contractors that size, one of the four does not, and the reason it does not is the thing worth fixing.

The takeaway

You know what the company made. You do not know what the jobs made, because the estimate, the field hours, and the billing have never met on the same page. That is a gap in how the information is arranged, not a gap in the information itself. Reconstruct four jobs by hand and you will see the size of the question. Connect the three permanently, and keep them connected without anyone maintaining it by hand, and the answer arrives at closeout on every job, in time to change what you bid next.

Every business has a number like that hiding in it.

Text us where your team loses its time, and we’ll put a real number on yours, then show you what’s worth organizing and automating first. No forms, no sales call.