If you pull the last 50 similar jobs out of your accounting system and compare the estimated margin to the actual margin, you'll find a range. Maybe the job type is a panel upgrade - you've done 40 of them this year. Some came in at 32% gross margin. Some came in at 18%. A few were flat. The work didn't vary that much. The materials didn't swing that wildly. What varied was the estimate.

This is what gut-feel estimating produces at scale: not consistent underbidding or overbidding, but margin variance. Some jobs are priced well. Some are left money on the table. Some are underpriced relative to what they actually cost. The pattern isn't predictable, which means the problem doesn't announce itself - it averages out into a margin number that seems acceptable until you look at the underlying distribution.

How the same job gets priced differently

Estimating inconsistency has several causes, and most of them are invisible when you're inside the operation. The same estimator prices differently on different days - a morning estimate after a smooth prior week will often be more aggressive than a Friday estimate after a job that ran over. A second estimator on your team may have a different mental model of how long certain tasks take, developed from different prior jobs, and your estimates will diverge systematically without either of you knowing it. Seasonal pressure shifts estimates - when the pipeline is full, estimators get selective and sometimes careless; when the pipeline is thin, they get aggressive and sometimes undercut margins.

None of these are character flaws. They're the natural outputs of a process that relies on human recall rather than data. The human recall is inevitably influenced by recency, mood, context, and the last job that went sideways. Data is not.

"Profit is made or lost in the estimate, before a single hour is worked on the job."

What historical job data actually reveals

When you systematically track actual hours against estimated hours by job type, patterns emerge quickly. Certain job types consistently run over estimate - not because the estimators are bad, but because the estimate was built on an assumption about crew efficiency that doesn't match reality on that job type. Material overruns cluster around specific categories - certain materials are consistently over-ordered due to waste assumptions that were set years ago and never updated. Change order frequency is predictable by job type: some work categories almost always generate change orders, which should be priced into the estimate structure as a risk premium.

This data exists in most operations - it's sitting in the accounting system, the job management system, and the timesheet records. What's usually missing is the discipline to pull it together and route it back into the estimating process. When it's routed back, the estimate for a panel upgrade isn't "what I remember it taking" - it's "the average actual hours on the last 40 panel upgrades, adjusted for this specific site complexity factor." That estimate is both more accurate and more consistent across estimators.

Knowing your true cost floor

The competitive benefit of consistent, data-driven estimating isn't just margin protection - it's knowing with confidence what your floor is. When a customer pushes back on a price, a gut-feel estimator faces an uncomfortable question: is there genuinely room to move, or are they giving up margin they can't afford? A data-driven estimator knows their floor. They know what the job actually costs to execute at their labor cost and current material prices. They can make a deliberate decision to take a lower margin on a strategic job, or hold the line on a commodity job, rather than guessing.

That knowledge also changes how you respond to competitive pressure. If your competitor is consistently winning jobs at prices that seem below what the work should cost, you have two hypotheses: they're operating more efficiently than you, or they're not making money on those jobs. Historical data on your own cost structure lets you evaluate that question rather than assuming the answer.

The data that should feed every estimate: Actual labor hours from the last 20+ comparable jobs (filtered by crew size, site type, and complexity). Material actuals vs takeoff quantities for this job type - what the average overage or underage has been. Change order frequency and average dollar value for this job category - which should inform a risk reserve in the estimate. Seasonal labor cost adjustments - if you're estimating summer work in winter, current cost assumptions may be stale. Don't estimate from memory when you have a hundred completed jobs that tell you what it actually costs.
← All stories