A good contractor estimate isn't a gut-feel number — it's built line by line from scope, quantities, labour hours, materials, subs and overhead, with a markup on top. Skip a step and you either scare off the customer with a padded price or eat the difference yourself. Here's the process, in order.
1. Scope the job first
Before you touch a calculator, write down exactly what you're doing and what you're not doing. Walk the site, take photos, and note anything unusual — old wiring, uneven grade, access problems. A vague scope is the number one reason estimates turn into arguments later.
2. Measure and quantify
Turn the scope into quantities: square footage of flooring, linear feet of fence, number of fixtures, cubic yards of concrete. Round up slightly for real-world measuring error, but don't pad quantities to hide a soft price — that's what markup is for.
3. Estimate labour hours and rate
Break the job into tasks (demo, rough-in, install, finish, cleanup) and estimate hours for each based on your own job history, not a generic online chart — every crew works at a different pace. Multiply hours by your fully-loaded labour rate, which is wages plus burden (payroll taxes, workers' comp, benefits) — not just the hourly wage you pay out.
| Task | Hours | Loaded rate | Cost |
|---|---|---|---|
| Demo | 4 | $55/hr | $220 |
| Rough-in | 10 | $55/hr | $550 |
| Finish | 6 | $55/hr | $330 |
4. Price materials and add a waste factor
Price materials at what you'll actually pay, including delivery. Add a waste factor for cuts and mistakes — commonly 10% for flooring or siding, less for fixtures you buy exact quantities of. State your waste assumption on the estimate so it isn't a surprise if you need a top-up order.
5. Get real subcontractor quotes
If part of the job goes to a sub (electrical, HVAC, a specialty install), get an actual quote from them rather than guessing. Add your markup on top of what they charge you — you're still managing the sub, scheduling them and carrying the risk if they're late.
6. Account for overhead
Overhead is everything that keeps the business running that isn't tied to one job — insurance, your truck, software, phone, an office if you have one. Roll it in as a percentage of job cost (many small contractors use something in the 10-15% range as a starting point, then adjust based on their own actual numbers) so every job contributes its fair share instead of overhead quietly eating your profit.
7. Apply markup — and know the difference between markup and margin
Markup and margin are not the same number, and mixing them up is one of the most common ways contractors underprice a job. See the worked math in how to calculate profit on a construction job.
8. Add contingency for unknowns
On renovation or repair work where you can't see everything up front, add a contingency line — a percentage held aside for the "we found rot behind that wall" moment. Being upfront that this line exists (and what triggers using it) heads off disputes later.
9. Don't forget tax
Show applicable sales tax as its own line rather than folding it into the total — it's clearer for the client and easier for you to reconcile at bookkeeping time.
10. Present it like a professional
An itemized, clean, signable document builds more trust than a lower number on a napkin. Once your estimate is solid, turn it into a document the client can actually sign — see how to write a contractor estimate for the full anatomy of that document. JobWorks365's quoting software keeps your labour rates, materials and markup as reusable line items so you're not rebuilding the math from scratch every time.

