1. Define the scope of work
Price nothing until the scope is written down. Walk the site, photograph existing conditions, and write the work as verbs and quantities: "demolish 240 sq ft of interior partition," not "interior work." Note access limits, stair carries, parking, working hours, and whether the space is occupied — those conditions cost real labor hours.
While you are there, capture the decisions the client has not made yet. Each one becomes an allowance or an exclusion later, and naming them up front is what keeps a change order from feeling like a surprise bill.
2. Do the quantity takeoff
The takeoff converts the scope into measured quantities in the unit each trade actually buys in: roofing by the square (100 sq ft), drywall by the sheet, concrete by the cubic yard, framing by the linear foot and stud count, paint by the gallon at a stated spread rate.
Add waste at the point of takeoff, not at the end: roughly 10% for framing lumber and drywall, 5% for standard shingles and 15% for cut-heavy hip roofs, 5–10% for tile depending on pattern. Measure twice and record where each number came from — a takeoff you can defend line by line is what lets you hold your price under pressure.
3. Price materials line by line
Line-item accuracy is the core of a professional estimate. Every material gets its own row with quantity, unit, unit price, and extended total. Price from current supplier pricing, not last year's job, and note the date you pulled it. Sales tax and delivery are separate lines, not a rounding cushion.
For client-selected finishes, use a clearly labeled allowance — "tile allowance: $6.00/sq ft supplied" — so an upgrade adjusts one line instead of reopening the whole estimate.
4. Calculate labor hours and cost
Labor is where most estimates lose money. Estimate hours by task using production rates from your own completed jobs — for example, a two-person crew framing 100–120 linear feet of interior wall per day, or hanging 35–45 sheets of drywall per day. Then price those hours at a burdened rate.
Base wage $30.00/hr + payroll taxes (~9%) + workers' comp (~12% and trade-dependent) + general liability + benefits ≈ $44–$48/hr. Using $30 understates a 96-hour task by roughly $1,500.
Include the hours nobody bills for but everybody works: mobilization, daily setup and cleanup, protection of finished surfaces, inspection waiting time, and the punch list. Supervision belongs either in a line item or in overhead — never in both, and never in neither.
5. Add equipment, subcontractors, permits
Equipment rentals get real day or week rates plus delivery and fuel. Subcontractor numbers go in as written quotes with the sub's own scope attached, so their exclusions do not silently become yours. Permits, inspection fees, dumpsters, portable toilets, and temporary power are each their own line — they are visible costs clients accept easily and resent finding later.
6. Apply overhead and profit markup
Direct cost keeps the job running; markup keeps the company running. Overhead — your truck, insurance, software, office, and the unbilled time you spend estimating — typically runs 10–20% of direct cost. Profit is separate, usually 8–15%.
Adding 20% to cost yields only a 16.7% margin. To actually earn a 20% margin, divide: price = cost ÷ (1 − 0.20) = cost × 1.25. Contractors who confuse these two lose several points of profit on every job.
7. Add a contingency
New construction with complete drawings can carry 3–5%. Renovation, where you cannot see inside walls until demolition, deserves 8–15%. State the contingency as its own line and explain what it covers — unforeseen existing conditions, not scope the client adds later. Anything the client adds is a change order, priced the same way as the original estimate.
8. Set exclusions and a payment schedule
Write exclusions plainly: hazardous material abatement, structural repair of concealed damage, landscaping restoration, permit expediting, painting unless listed. Then tie payment to visible milestones so cash flow tracks the work in place:
| Milestone | Share |
|---|---|
| Deposit on approval | 20–30% |
| Materials delivered / rough-in complete | 30–40% |
| Substantial completion | 25–35% |
| Final — punch list & cleanup accepted | 10% |
Add a validity period — 15 to 30 days is standard while material pricing moves — and a signature line with a date. An estimate nobody signed is a conversation, not an agreement. Check your state's rules: many cap residential deposits and require specific contract language.
9. Present it and follow up
Client communication decides more approvals than price does. Deliver a clean PDF with your logo, license number, the written scope, the itemized breakdown, exclusions, the schedule, and the signature line. Walk the client through it rather than emailing it cold, and explain what each group of line items buys them.
Offer clear options — good / better / best on the finishes — instead of a single take-it-or-leave-it number; choices move the conversation from "how much" to "which one." Then follow up on a schedule: within 48 hours, again after a week, once more before the price expires. Most lost estimates were never rejected — they were simply never revisited.
Worked example: small addition shell
The same estimate assembled from the steps above — direct costs first, then contingency, overhead, and profit stacked on top.
| Line item | Qty | Amount |
|---|---|---|
| Framing lumber & fasteners (materials) | 1 lot | $3,180.00 |
| Sheathing & housewrap (materials) | 1 lot | $1,240.00 |
| Windows — 4 units (materials) | 4 ea | $2,600.00 |
| Labor — framing crew (burdened $46/hr) | 96 hrs | $4,416.00 |
| Equipment — lift rental | 2 days | $460.00 |
| Subcontractor — electrical rough-in | 1 | $2,150.00 |
| Permit & inspection fees | 1 | $385.00 |
| Dumpster & disposal | 1 | $420.00 |
| Direct cost | $14,851.00 | |
| Contingency (5%) | $743.00 | |
| Overhead (16%) | $2,379.00 | |
| Profit (12%) | $1,785.00 | |
| Total estimate | $19,758.00 | |
Figures are illustrative — substitute your own supplier pricing, burdened labor rate, and market markup.
Six mistakes that cost contractors money
- Pricing from memory instead of a measured takeoff — the fastest way to eat your own margin.
- Using raw wages as the labor rate and forgetting payroll burden, insurance, and workers' comp.
- Burying allowances inside a lump sum, so every client selection turns into an argument.
- No written exclusions, so demolition, disposal, or painting gets assumed into your price.
- No expiration date, so a client approves a six-month-old price after material costs moved.
- One giant line item. Clients cannot compare it, cannot trust it, and negotiate the total instead of the scope.
FAQ
What should a construction estimate include?
Client and project details, a written scope, itemized materials with quantities and unit prices, labor hours and burdened rates, equipment and subcontractor costs, permits and fees, overhead and profit, contingency, exclusions, the total, a milestone payment schedule, a validity period, and a signature line.
How do you calculate labor cost?
Crew hours per task × burdened hourly rate. Burden adds payroll taxes, workers' compensation, liability insurance, and benefits — a $30/hr wage usually lands near $44–$48/hr burdened.
What is a typical markup?
Roughly 10–20% overhead plus 8–15% profit. Use price = cost ÷ (1 − target margin) so your margin matches your intent.
Estimate, quote, or bid?
An estimate is a good-faith projection, a quote is a fixed price valid for a stated period, and a bid is a competitive price against defined documents. Label the document so the client knows which they hold.
How long should an estimate take?
A small residential job takes one to three hours done properly — most of it takeoff. Software that reuses your assemblies, labor rates, and markup cuts that to minutes without cutting the accuracy.