How to write a construction estimate, line by line

Scope, quantities, unit costs from your own jobs, the items estimates forget, overhead and profit, and the page the client signs, worked through on a bathroom.

10 min read

A construction estimate is two documents wearing one name. One is what the job will cost you: labor, materials, subs, the dumpster, the permit. The other is the price the client signs. Most estimates that lose money don't fail on the second one. They fail on the first: a line priced from memory, a cost nobody wrote down, a markup that was really a smaller margin than it looked.

This guide walks through an estimate the way a small remodeler or trade contractor can build one in an evening, with a worked bathroom remodel at the end of each step. Disclosure: we make Obra, which writes estimates; it comes up once, near the end, and everything before it works on paper or in a spreadsheet.

Two numbers on every line

Every line on a good estimate carries two numbers: what it costs you and what the client pays. Keep them apart from the first line. If you only write the price, you can't tell later whether a job lost money because the estimate was wrong or because the job went wrong, and you can't fix the next estimate either way.

The cost side stays private. The client sees the price, the scope and the terms; they never see your cost, your markup or your margin.

1. Write the scope before any number

Walk the job with a notebook or your phone. Take photos, take measurements, and write the scope in plain words, room by room or phase by phase, specific enough that a stranger could check the work was done. "Remodel bathroom" is not a scope. "Remove tub, tile and vanity; new curbless shower with tile to ceiling; new vanity, toilet and mirror; new fan and two GFCI outlets" is.

Write down what you are not doing in the same pass. Exclusions written now are arguments you don't have in week six: painting outside the bathroom, moving the window, anything behind the walls you can't see yet.

2. Break it into sections and lines

Group the work into sections that follow how the job is built: demolition, plumbing, electrical, tile, fixtures, general conditions. Under each, one line per thing you buy or pay for, as quantity times unit cost: 40 hours of tile labor at $45, 110 square feet of tile at $9.

Use the same categories you'll track costs in once the job starts. If your cost codes are Demolition, Plumbing, Electrical and so on, the estimate's sections should be the same words. That's what lets the accepted estimate become the job's budget instead of a PDF nobody opens again.

3. Price each line from your own costs

Where a unit cost comes from decides whether the estimate is right. In order of trust:

  1. What it cost you on your last jobs. Actual cost from a finished job of the same kind beats any price list, because it includes your crew's real speed and your real suppliers.
  2. A written quote from this week. For subs and big material orders, get the number in writing with what's included, and keep it with the estimate.
  3. A supplier's price list or a cost book. Fine for materials you rarely buy; check the date.
  4. A reference price you looked up. A starting point, labeled as one, until you confirm it.

Three things to get right while pricing:

  • Labor at its real cost. A $30 wage costs you more than $30 an hour once payroll taxes, workers' comp, insurance and paid time are on it. The labor burden calculator gives you the burdened rate; our example uses $45.
  • Waste. Tile, flooring, drywall and lumber get cut. Add the waste factor to the quantity (10% is common for tile), not as a vague pad at the bottom.
  • Sales tax on materials is your cost. Put it in the unit cost.

4. The items estimates forget

These are the lines that turn up as receipts with no line to land on:

Often forgotten Why it matters
Dumpster, haul-off, dump fees Every demo job has one; nobody remembers to price it
Permits and inspections Plus the trip to pick them up
Delivery and fuel Lumber delivery, the second trip to the supply house
Protection and cleanup Floor protection, dust walls, the final clean
Equipment rental The tile saw, the lift, the dehumidifier
Disposal of old fixtures The old tub doesn't leave on its own
Punch list and callbacks A day at the end that every job uses

Read the list against every estimate before it goes out. If a line doesn't apply, skip it on purpose rather than by accident.

5. Add overhead and profit

Direct costs are only the job. Your truck, phone, insurance, office, software and your own salary are overhead, and every job has to carry a share of it before anything is left as profit.

Say last year's numbers put overhead at 20% of revenue, and you want 10% left as profit. The price has to leave a 30% gross margin above direct cost. To get there, divide cost by 0.70; don't multiply it by 1.30. On $9,800 of cost, a 30% markup gives $12,740: a 23% margin, which pays the overhead share and leaves about $390 of profit instead of $1,400. The markup vs. margin guide has the full table; the markup and margin calculator does the conversion.

6. Handle what you can't know yet

Three tools, and each has a place:

  • Allowances for what the client hasn't chosen: a $1,800 fixture allowance at cost, with the rule written down that anything over it is billed as a change. The allowance overages guide covers the wording.
  • Exclusions with a unit price for hidden conditions: "rotted subfloor, if found, replaced at $35 per square foot." That turns a surprise into a change order the client already saw a price for.
  • Contingency for real unknowns you can't price as a unit, like an old house with no drawings. Name it as a line so it can be explained, not hidden inside every other price.

The worked example: a bathroom remodel

Here's the cost side for the scope in step 1:

Section Line Quantity Unit cost Cost
Demolition Demo labor 16 hours $45 $720
Demolition Dumpster, 10-yard 1 $450 $450
Plumbing Plumber's quote: valve, drain, set fixtures 1 $2,400 $2,400
Electrical Electrician's quote: fan, GFCI outlets, lights 1 $850 $850
Tile Tile and setting materials, 10% waste included 110 sq ft $9 $990
Tile Tile labor 40 hours $45 $1,800
Fixtures Vanity, toilet and mirror (allowance) 1 $1,800 $1,800
General Permit 1 $430 $430
General Floor protection and final cleanup 8 hours $45 $360
Total cost $9,800

At a 30% gross margin the price is $9,800 ÷ 0.70 = $14,000: $4,200 above cost, which is a 42.9% markup. Hidden rot is excluded at $35 per square foot, and a heated floor goes on the page as an optional item the client can add.

7. Write the page the client signs

The client document is short, and every part of it prevents a specific argument:

  • Scope and exclusions from step 1, in the same plain words.
  • The price, by section if the client wants to see where the money goes, never with your cost.
  • Allowances, with the amount and the overage rule.
  • Optional items priced separately, so the client says yes to extras now instead of in week four.
  • Payment schedule: a deposit, then draws tied to milestones, so the client's money stays ahead of your costs. The progress billing guide has a schedule that works for remodels.
  • Valid until, usually 30 days, because material prices move.
  • How changes work: written, priced and approved before the work.
  • A signature line. On paper, or electronic: a typed name with a clear consent statement can be an electronic signature under the US ESIGN Act and UETA. For large contracts, check what your state and your contract require.

8. After the yes: the estimate becomes the budget

The estimate's cost side is now the job's budget, by the same sections. As receipts and bills arrive, they land against those lines, and you see each one drift while there's still time to do something about it. When the job is done, compare each section's estimate with what it really cost. That comparison is where the next estimate's unit costs come from, and it's why step 3 starts with your own jobs: an estimate gets better only if the last job's real numbers feed it.

The job costing spreadsheet guide sets that up in a sheet; committed costs covers the bills you know are coming before they arrive.

Doing it in Obra

Obra keeps every line's cost and price apart and shows the gross margin as you price. Lines come from your price book, a CSV or XLSX import, or by hand. Give the estimate a kind of work and it shows what your financially closed jobs of that kind spent per category, next to this estimate. Draft with AI turns a description, a recorded voice note or a photo of the job into proposed lines, each with a reference cost labeled as not your cost until you change it; it can also list what estimates like this one commonly forget.

Issue it and the client gets a PDF and a private link with no account, where they tick the optional items they want and sign by typing their name. Obra sends reminders 3, 7 and 14 days after you email it if they haven't answered. When the client accepts, the project opens with the estimate's total as its contract and its cost per category as its budget, and the crew's receipts land against it from WhatsApp, email or a photo. Estimates are on every plan, including Free; Pro is $12 per user a month.

Questions people ask

What's the difference between an estimate, a quote and a bid? In everyday use, an estimate is your best price for the work, a quote is a fixed price you'll hold, and a bid is a price submitted when several contractors are asked for one. What decides it legally is the wording on the page, so say whether the price is fixed and for how long.

How much should I mark up? Enough to cover your overhead and leave the profit you want, as a margin on the price. With overhead at 20% of revenue and 10% profit, that's a 30% margin, or a 42.9% markup on cost. Start from your own overhead number, not a rule of thumb.

How detailed should the client see it? Detailed enough that the scope can be checked, and no more. Many contractors show sections with subtotals and keep line-level pricing internal.

How long should an estimate be valid? Thirty days is common for residential work; shorter when material prices are moving.

Get the template

Once the estimate is signed, the free job costing spreadsheet keeps the job honest against it: one sheet per job, the contract and change orders in one section, costs in the other. Enter your email and the download starts right away.

Free download

Not ready for an app? Start with our free Excel template.

A ready-made spreadsheet to track costs and income per project — with categories and the totals already set up.

The download starts right away. We'll also follow up by email with more job-costing help — no spam, unsubscribe anytime.