How to Write an Estimate That Wins the Job (With Examples)
Step-by-step guide to writing a job estimate: the 9 required elements, a full worked example with real numbers, and the mistakes that lose bids.
A good estimate does two jobs at once: it wins the work, and it protects you when the work gets messy. Most contractors and service pros only optimize for the first one — then eat the cost of change orders, forgotten overhead, and "I thought that was included" arguments.
This guide walks through how to write an estimate that does both, with a full worked example and real numbers.
Estimate vs. Quote vs. Bid vs. Invoice
These get used interchangeably on job sites. They shouldn't be — they carry different levels of commitment.
- Estimate — your best-effort approximation of cost, based on what you can see and measure today. Not binding. Final cost can move as conditions change, and a professional estimate says so in writing.
- Quote — a fixed price for a defined scope. Once the client accepts, you're committed to that number. Use a quote when scope is nailed down; use an estimate when it isn't. (Full breakdown here: how to write a quote.)
- Bid — a formal offer submitted in competition, usually against other contractors on a spec the client wrote. Common in commercial and government work. A bid is typically binding like a quote.
- Invoice — the request for payment after (or partway through) the work. Different document, different moment. Never send an invoice for work the client hasn't agreed to via an accepted estimate or quote.
The practical rule: estimate when there are unknowns, quote when there aren't, bid when someone else defines the scope, invoice when you've earned the money.
The 9 Elements Every Estimate Needs
Skip any of these and you either look amateur or leave yourself exposed:
- Your business details — name, license number (required on estimates in many states for trades), contact info, and logo.
- Client details and job site address — the site matters; the same bathroom remodel prices differently on a third-floor walkup.
- Estimate number and date — you'll reference it in the contract and every change order.
- Scope description — what you will do, in plain sentences, before any line items. "Demolish existing 8×5 bathroom to studs; replace tub with 60-inch alcove tub; retile floor and wet wall."
- Itemized line items — labor, materials, equipment, subcontractors, permits. Separate lines. Lump sums lose jobs (more on that below).
- Exclusions — what you will not do. "Excludes: mold remediation, structural repair, painting." This list saves more arguments than any other section.
- Total, with tax handling stated — is sales tax included, added, or not applicable? Say which.
- Expiration date — "Valid for 30 days." Material prices move; your estimate shouldn't be an open-ended option contract.
- Terms — deposit required, payment schedule, how change orders work, and a line stating this is an estimate, not a fixed quote.
A free estimate template with these fields already laid out is faster than rebuilding this structure in a spreadsheet every time.
How to Write One, Step by Step
Step 1: Scope the job — in person if possible
Walk the site. Photos and client descriptions hide the things that blow up budgets: knob-and-tube wiring behind the wall, a subfloor that flexes, no vehicle access to the backyard. Write the scope statement during the walkthrough, and note anything you can't verify ("assumes subfloor is sound; inspection at demo").
Every unknown you record becomes either an exclusion or a contingency. Every one you don't becomes free work.
Step 2: Do the takeoff
A takeoff is just counting: quantities of everything the job consumes. Square feet of tile, linear feet of railing, number of fixtures, cubic yards of concrete. Measure, don't eyeball — a 10% miss on quantities is a 10% miss on your materials budget, straight out of your pocket.
Add standard waste factors: 10% on tile and flooring, 15% on anything with pattern matching or diagonal layout, 5–10% on lumber.
Step 3: Price the labor
Estimate hours per task, then multiply by your loaded labor rate — not the wage you pay. Loaded rate includes payroll taxes, insurance, workers' comp, and non-billable time. A carpenter you pay $35/hour costs you $50–55/hour loaded, and bills out at $75–95/hour once overhead and profit are on top.
If you're a one-person shop, the same logic applies to you. Your rate has to cover the hours you spend estimating, driving, and invoicing — not just the hours swinging a hammer.
Step 4: Price materials — with markup
List materials at your cost, then apply markup. Typical contractor materials markup runs 15–35%. That markup isn't padding; it pays for sourcing, pickup, returns, warranty handling, and the risk of price movement between estimate and purchase. Contractors who pass materials through at cost are quietly working those hours for free.
If the client supplies materials, say so in the estimate — and note that you don't warranty client-supplied product.
Step 5: Add contingency for the unknowns
For work with genuine unknowns (anything behind walls, underground, or in a building older than 40 years), add a stated contingency line of 10–15%. Put it on the estimate as its own line, labeled. Hidden padding inflates every number and makes you less competitive; a visible contingency line makes you look experienced and gets refunded goodwill when you don't need it.
Step 6: Apply overhead and profit, then write the terms
Overhead — truck, insurance, tools, software, phone, that estimating time — typically runs 10–20% of revenue for small contractors. Profit on top of that is what keeps the business alive; 8–15% net is a healthy target. Both need to be in your numbers before you look at the total and ask "will this win?"
Then write the terms: deposit (a third down is common; some states cap deposits — California limits home improvement deposits to 10% or $1,000, whichever is less), payment schedule tied to milestones, change-order process, and the expiration date.
Worked Example: 12×16 Composite Deck
Here's a realistic 2026 estimate for a 192 sq ft attached composite deck with aluminum railing, mid-range materials, in a mid-cost U.S. market.
Scope: Remove existing 10×12 wood deck. Build 12×16 attached composite deck: concrete pier footings, pressure-treated frame, composite decking, 40 linear feet of aluminum railing, one 4-step stair. Includes permit and haul-away.
Exclusions: Landscaping repair, electrical, gas line relocation, repairs to house rim joist if rot is found (would be a change order).
| # | Item | Qty | Unit price | Amount |
|---|---|---|---|---|
| 1 | Demolition & disposal of existing deck | 1 | $850.00 | $850.00 |
| 2 | Building permit & plan submittal | 1 | $420.00 | $420.00 |
| 3 | Concrete pier footings, dug & poured | 6 | $185.00 | $1,110.00 |
| 4 | Pressure-treated framing package (materials, incl. markup) | 1 | $2,340.00 | $2,340.00 |
| 5 | Composite decking, hidden fasteners (materials, incl. markup) | 192 sq ft | $14.50 | $2,784.00 |
| 6 | Aluminum railing system (materials, incl. markup) | 40 ln ft | $68.00 | $2,720.00 |
| 7 | Stair kit & landing pad | 1 | $640.00 | $640.00 |
| 8 | Labor — framing & footings (2-person crew) | 34 hrs | $85.00 | $2,890.00 |
| 9 | Labor — decking, railing, stairs, finish | 30 hrs | $85.00 | $2,550.00 |
| 10 | Contingency — ledger/rim joist condition unknown (10% of labor & frame) | 1 | $880.00 | $880.00 |
| Subtotal | $17,184.00 | |||
| Sales tax on materials (7%, est.) | $604.00 | |||
| Estimated total | $17,788.00 |
Terms: This is an estimate, not a fixed quote; final billing reflects actual quantities and site conditions. Valid 30 days. Deposit of $3,500 due on acceptance; $8,000 at framing complete; balance on final walkthrough. Changes to scope are priced and approved in writing before work proceeds. Unused contingency is not billed.
Notice what this format does. The client can see labor is $85/hour, not $185. The contingency is visible and refundable. The rot risk is named before demo, so if the rim joist is bad, the change-order conversation starts from "we flagged this" instead of "you never mentioned this."
Trade-specific layouts help here — a construction estimate template or contractor estimate template comes pre-structured with these sections.
Presenting and Following Up
Send it fast. Speed is a competitive weapon. Surveys of home-service buyers consistently show a large majority go with a contractor who responds first, and same-day estimates dramatically outconvert ones delivered "by end of week." The contractor who shows up with a professional estimate that evening looks like the contractor whose job site will run the same way.
Deliver it, don't just email it. A two-minute call walking through the total, the contingency line, and the exclusions closes more work than the PDF alone. You're preempting the sticker-shock moment.
Use the expiration date. "Valid for 30 days" isn't just protection against lumber prices — it's your legitimate reason to follow up. Day 3: "Any questions on the estimate?" Day 10: "Happy to adjust scope if the number's not working." Day 25: "Estimate expires Friday; material pricing may shift after that."
Ask for the deposit in the estimate itself. A stated deposit amount and start-date offer ("$3,500 secures a start week of August 10") turns acceptance into a single decision instead of the start of a negotiation.
Mistakes That Lose Jobs (or Make Winning Them Worse)
- Lump-sum totals. "$17,800 — deck" gets you shopped against every lowball number in town, because the client can't see what they're comparing. Itemized estimates win on trust even when they're not the cheapest.
- No exclusions list. Whatever you don't exclude, the client assumes is included. The exclusions section is where disputes go to die.
- Skipping overhead. Pricing at labor + materials + "a little on top" is how contractors stay busy for years while going broke. If your estimate doesn't carry its share of the truck, the insurance, and the unpaid estimating hours, you're funding the client's project.
- Underpricing to win, planning to make it up on change orders. Clients talk, reviews are public, and change-order-heavy jobs generate the angriest ones.
- No expiration date. Material prices in 2026 still move quarter to quarter. An undated estimate from March can come back to bite you in September.
- Vague scope language. "Update bathroom" means something different to you and to the client — guaranteed. Specific scope plus specific exclusions is the whole game.
FAQ
Is an estimate legally binding? Generally no — it's an approximation, and courts treat it that way if it's labeled as an estimate and your terms say final costs may vary. A quote or signed contract is binding. Some states require written contracts above certain amounts regardless, and grossly exceeding an estimate without change orders can still land you in trouble.
How far off can the final bill be from the estimate? There's no universal legal threshold, but the working norm many pros and some jurisdictions use is roughly 10–15%. Beyond that, you should have a signed change order — not a surprise on the final invoice.
Should I charge for estimates? Free estimates are the norm for straightforward residential work. Charging (often credited back if you win the job) is reasonable for estimates requiring significant design time, engineering, or multiple site visits.
How many estimates should a client expect to get? Assume you're one of three. That's exactly why itemization, fast delivery, and a follow-up call matter — most of your competition does none of the three.
Estimate accepted — what's next? Convert it to a contract or signed quote, collect the deposit, then invoice against the milestone schedule you stated.
Once the structure is second nature, the writing takes minutes. If you want the format handled for you — line items, totals, terms, clean PDF — the free estimate maker at InvoicePenguin builds one in a couple of minutes, no account needed, and converts it to an invoice when you win the job.