← All posts

8 Estimating Mistakes That Quietly Kill Contractor Profit

July 4, 2026

Bad estimates rarely fail loudly. Nobody notices a 5% underbid on any single job — it just shows up months later as a business that's busy but somehow not profitable. Here are the mistakes that cause it, in order of how often they actually happen.

1. Pricing labor from memory instead of from records

"That kind of job usually takes about two days" is a guess dressed up as an estimate. Without tracking actual hours against past estimates, labor pricing drifts toward optimism — every contractor remembers the job that went smoothly and forgets the three that didn't. The fix is unglamorous: track estimated vs. actual hours on every job, even roughly, and let real numbers correct your instincts over time. A spreadsheet or a notes app is enough to start; the point is having any record instead of none.

2. Underpricing "small" jobs

A $500 job and a $50,000 job both require an estimate visit, a written quote, scheduling, invoicing, and follow-up — fixed overhead that doesn't scale down with job size. Pricing small jobs as if overhead were proportional to job size quietly makes every small job a loss leader. Many contractors solve this with a minimum job charge or a higher effective rate on small jobs specifically to cover the fixed cost of taking them on at all.

3. Forgetting waste factor on materials

Ordering the exact calculated quantity of tile, lumber, or flooring — with no allowance for cuts, mistakes, or damaged pieces — means either a mid-project supply run (which costs a trip and sometimes a price change) or eating the cost of coming up short. Waste factors of 10% for most materials, 15% for anything with a pattern to match (tile, patterned flooring) should be built into the estimate by default, not calculated separately every time and sometimes forgotten.

4. Quoting off old prices

Material prices, lumber especially, move — sometimes significantly within a single quarter. An estimate priced from memory or from a bid folder six months old can be meaningfully wrong before the job even starts. This is exactly why price history matters: knowing not just today's price but the recent trend helps you decide whether to quote at current pricing or build in a buffer for a volatile material.

5. No contingency margin, or one that's too small

Every project has unknowns — rot behind a wall, a pipe that isn't where the plans say, weather delays. A contingency margin (commonly 10%, sometimes more on older properties or renovation work where hidden conditions are likely) isn't padding — it's pricing in a known risk. Contractors who skip it aren't being more competitive, they're gambling that nothing goes wrong, and eventually something does.

6. Not itemizing labor by task

A single lump labor number is where the most estimating errors hide, because it's impossible to audit. When labor is broken into named tasks — demo, framing, electrical rough-in, finish work — each with its own hours, both you and the client can sanity-check individual pieces. It's also the only way to accurately price a job where multiple people at different rates work the same task, which lump-sum pricing tends to average out incorrectly.

7. Confusing markup with margin

These are not the same percentage, and mixing them up quietly erodes profit. Markup is the percentage added to cost to reach your price. Margin is the percentage of your price that's profit. A 25% markup on a $100 cost gives you $125 — but that's only a 20% margin ($25 profit / $125 price), not 25%. Contractors who target "25% profit" but calculate it as markup are systematically underpricing relative to their actual goal, in a way that compounds across every job.

8. Reusing an old estimate as a template without re-checking it

Copying a similar past job's estimate is efficient and reasonable — but only if the labor rates, material prices, and margins get re-verified against current numbers rather than carried forward unchanged. An estimate template from a year ago, reused without updating prices, quietly bakes in a discount nobody intended to give.

The pattern underneath all eight

Every one of these mistakes is a version of the same root cause: treating an estimate as a one-time creative guess instead of a structured calculation built from current data. The fix isn't any single trick — it's a consistent structure (labor by task, materials by item and current price, an explicit contingency, margins applied deliberately) run the same way every time, so errors get caught by the structure instead of slipping through.

That consistent structure is exactly what JobPencil is built around — task-level labor, a materials catalog with price history instead of memory, and margins you set once and apply every time. Build your next estimate free, no account required.

Ready to build your estimate?
Free to use — no account needed until you save.
Start an estimate