Ask ten contractors what the hardest part of the job is, and a surprising number won't say the work. They'll say the number they had to write down before the work started.
Estimating is the one task where you're asked to predict the future, price it to the dollar, and then be held to it for months. It's genuinely difficult — and most of the difficulty isn't a math problem. It's a handful of specific, repeatable traps that quietly eat margin on job after job.
Here are the nine that cause the most damage, and what to do about each one.
1. The scope is still fuzzy when the number is due
You walk the job for twenty minutes. The homeowner describes what they want in general terms. You write a number.
Then the job starts and it turns out the "small bathroom refresh" includes moving a vanity drain, and the subfloor under the toilet is soft, and they assumed the estimate covered paint.
The fix: write the scope before you write the price. A short list of what's included — and a shorter list of what isn't — does more to protect your margin than any pricing formula. Exclusions aren't rude. They're the thing that lets you have a calm conversation later instead of an argument.
2. Material prices moved since the last time you looked
Lumber, copper, drywall, fixtures — prices drift, and sometimes they jump. If you're pricing from a number you memorized in the spring, you're quoting a job at last season's cost and eating the difference yourself.
This one is especially brutal on jobs with a long gap between the estimate and the start date.
The fix: price from something that updates, not from memory. A saved catalog with recent purchase prices beats a mental estimate every time, and a rolling average smooths out the one-off day you overpaid at the counter because you needed it that afternoon. On material-heavy jobs, it's worth re-checking your biggest line items right before you send.
3. Labor hours are a guess dressed up as a number
Materials are easy to be precise about — they have price tags. Labor is where estimates actually go wrong.
The usual failure is optimism. You picture the job going well: no surprises, good weather, everything on site, nobody calls out. You estimate the version of the job where nothing goes wrong, and then you live the version where three things do.
The fix: estimate from what jobs like this actually took, not from how long they should take. If you've done twelve of them, you already have the data — you just have to start writing it down. And build in setup, teardown, and cleanup as real hours, because they are.
4. The small costs never make it onto the page
Blades, bits, screws, caulk, sandpaper, plastic, tape. Dump fees. Permits. Equipment rental. Fuel and drive time. The trip back to the supply house because you were short two boxes.
Individually, none of them feel worth writing down. Together, on a mid-size job, they're often several hundred dollars — which is frequently the entire difference between a good job and a break-even one.
The fix: keep a standing miscellaneous checklist and run it on every estimate. You won't need every item, but you'll stop forgetting the two you always forget.
5. Markup and margin are not the same thing
This one costs more money than every other item on this list, and it's pure arithmetic.
If your costs are $1,000 and you add 20% markup, you charge $1,200 — and your profit margin is 16.7%, not 20%. To actually keep a 20% margin, you'd need to charge $1,250.
The gap looks small on one job. Across a year of jobs, it's real money that you thought you were earning and never did.
The fix: decide which number you're managing to — margin, almost always — and calculate accordingly. Markup percentages are a fine shortcut, but only once you've worked out which markup produces the margin you actually need.
6. Overhead is invisible, so it doesn't get charged for
Your truck payment. Insurance. Your phone. Software. The hours you spend on quotes that don't convert. The Saturday you spend on paperwork.
None of that shows up on any single job, so it's easy to price work as if it doesn't exist. Then you look up at the end of the year, having stayed busy the whole time, and wonder where the money went.
The fix: figure out your annual overhead, divide it by your billable hours, and treat it as a cost on every job. It's not padding. It's the actual cost of being in business.
7. The estimate is one big number with no breakdown
A single line that says "$8,400" gives a customer nothing to evaluate. They can't tell what's driving the price, they can't compare it to the other bid intelligently, and their only real options are to accept it or push back on the total.
Worse, a lump sum makes it look like you guessed — even when you didn't.
The fix: show the structure. Labor, materials, and other costs broken out separately reads as considered, and it moves the conversation from "that's a lot" to "what if we did the tile ourselves?" That's a much better conversation to be having, and it's one you can win.
8. There's no expiration date and no change order process
An estimate without a date on it is an open-ended offer. Customers will absolutely call in four months and ask you to honor it, and you'll feel awkward saying no.
Change orders are the same problem mid-job. If the process for handling a scope change is "we'll figure it out at the end," you will do work you never get paid for. Not because anyone is dishonest — because nobody wrote it down while it was happening.
The fix: put an expiration date on every estimate — 30 days is standard and nobody blinks at it. And price changes in writing when they come up, not after. A quick documented change order is a two-minute task at the time and a two-hour argument later.
9. You're doing this at 9pm after a full day of work
Almost every estimating mistake on this list gets more likely when you're tired. Estimating is real cognitive work, and it usually gets scheduled into whatever's left of the evening.
That's also why estimates get sent slowly — and slow estimates lose jobs. Homeowners frequently hire whoever responded first with something that looked professional.
The fix: make the mechanical parts of estimating faster so the thinking parts get your actual attention. You should be spending your energy on scope and hours, not on rebuilding the same spreadsheet from scratch and double-checking your own arithmetic at 9pm.
The pattern underneath all nine
Look at the list and the same thing keeps showing up: estimates go wrong when they depend on memory.
Memory of what materials cost. Memory of how long the last one took. Memory of which small items to include. Memory of what markup you're using and what it produces. Memory of what you promised to include and what you didn't.
Every fix above is really the same fix — get it out of your head and into a system that shows it to you every time.
That's the whole idea behind JobPencil. Labor and materials priced from a catalog that remembers what you actually paid. Stackable margins that calculate correctly instead of approximately. Miscellaneous costs that are a field on the form rather than something you have to remember. Estimates that break out cleanly for the customer, carry an expiration date, and can be shared as a link they accept or decline — with change orders handled the same way.
You still have to know your trade and read the job. That part isn't automatable, and it shouldn't be. But everything downstream of that judgment can be made reliable — and reliable is what turns a good estimator into a profitable one.
Ready to stop estimating from memory? Build your first estimate free — no credit card required.