Here is how to estimate construction costs: measure what the drawings call for, price each measured quantity from a source you can name, and then add the costs that no single line carries. Those are general conditions, risk, overhead and profit, and together they turn a pile of unit costs into the pre-bid number you carry to bid day. The steps below show the arithmetic on an invented interior fit-out. Swap in your own wages, quotes and records.
How to estimate construction costs in seven steps
Cost estimation in construction projects follows the same seven steps in outline, whether the job is a bathroom remodel or a school.
Fix the scope and the documents you are pricing.
Take off quantities and write down assumptions.
Price labor, material, equipment and subcontracts.
Carry allowances and contingency on purpose.
Add general conditions, overhead and profit.
Check the number a second way.
Record it so the next bid is faster.
A federal guide shows the same bones at a larger scale. The GAO Cost Estimating and Assessment Guide lists twelve steps in its table 3, from defining the purpose to updating the estimate with actual costs, and says the steps need not run in order. It was written for federal programs. The page on how a priced estimate is assembled shows the sequence Takeoff Services LLC runs for a delivered package.
Step 1: Fix the scope and the documents you are pricing
Price only what you can point to. Start the bid file with a one-page scope sheet that holds:
The drawing sheets and specification sections you received, with issue dates.
Every addendum number and the date you read it.
The bid date, the place, and the items the form asks for: base bid, alternates, unit prices (a bid form fill-in checklist lists them).
Items the owner furnishes or installs.
Notes from the site visit and the pre-bid meeting: existing conditions, staging area, utilities and anything the drawings do not show.
Working hours, phasing, access and schedule limits.
Payment terms, retention, insurance and bond requirements.
Read the front-end specification sections and the bid form before you measure anything. Scope hides there. A general note can add work that no sheet draws. When a drawing and a specification disagree, the contract's order of precedence decides which one wins, so read it first.
Then write an in-and-out list, one line per item: "Paint new walls: in. Paint existing doors: out." If the documents do not settle whether an item is in or out, ask before the question deadline and write the answer on the list. The classic miss is pricing from a superseded sheet because nobody compared the sheet index with the sheets received.
Step 2: Take off quantities and write down assumptions
A takeoff turns drawings into counted and measured quantities, each in the unit its work item is priced in. The measuring itself is its own craft, worked through in a step-by-step takeoff guide. This step covers only what the estimate needs from the result.
Tie every quantity to a sheet and a detail so a reviewer can find it.
Keep net quantity apart from order quantity. Net is what gets installed. Order quantity adds waste and rounds up to the pack size.
Use one unit for the quantity and the price. Convert once and show it.
Write each assumption as a sentence: "Ceiling height 9 ft where no section is drawn."
The worked item in this guide is one face of drywall, hung and finished. The net quantity is 3,200 SF. At 10% waste the order quantity is 3,520 SF. A 4 by 12 sheet covers 48 SF, so 73.33 sheets rounds up to 74. Buying 74 sheets means 3,552 SF, an effective waste of 11.0%. Pack rounding quietly adds waste.
If the takeoff will not fit in the days before the bid is due, the problem is capacity, not method. Run your own hours through a break-even worksheet to see where an outside desk starts to pay. Takeoff Services LLC sells outsourced takeoffs, and the worksheet is written so it can end in keeping the work in house.
Step 3: Price labor, material, equipment and subcontracts
Every self-performed line follows one formula. Replace each variable with a number from your own records.
Every dollar figure in this example is illustrative. The numbers are round so the arithmetic stays easy to follow. None of them is a market price, wage rate or quote, and yours will come out different. The first table lists the variables with illustrative values.
Variable | Meaning | Illustrative value |
|---|---|---|
Qn | Net quantity installed | 3,200 SF |
w | Waste factor | 10% |
Qo | Order quantity, rounded up to whole packs | 74 sheets |
p | Labor hours per 100 SF | 2.5 |
r | Loaded labor rate per hour | $50.00 |
m | Material price per pack | $12.50 per sheet |
a | Accessories as a share of board | 20% |
e | Equipment days x daily rate | 8 days x $30.00 |
Direct cost is labor plus material plus equipment. Labor is Qn / 100 x p x r. Material is Qo x m x (1 + a), where Qo = Qn x (1 + w) / 48 SF per sheet, rounded up: 3,200 x 1.10 / 48 = 73.33, so 74 sheets. The next table runs the illustrative values to the cent.
Line | Calculation | Result |
|---|---|---|
Labor hours | 3,200 / 100 x 2.5 | 80 hours |
Labor cost | 80 x $50.00 | $4,000.00 |
Board | 74 sheets x $12.50 | $925.00 |
Accessories | 20% of $925.00 | $185.00 |
Equipment | 8 days x $30.00 | $240.00 |
Direct cost | $4,000.00 + $925.00 + $185.00 + $240.00 | $5,350.00 |
Unit cost | $5,350.00 / 3,200 SF | $1.67 per SF |
Labor is 74.8% of this item ($4,000.00 of $5,350.00), so the production rate matters far more than the sheet price. Step 6 tests that.
A subcontract line swaps the formula for a quote. The quote already holds the sub's overhead and profit, so compare it to your cost, not your price. Say a sub quotes $5,750.00 for the same scope. Against your $5,350.00 of direct cost, the quote is $400.00, or 7.5%, higher. Check it against your scope sheet line by line: what it includes, what it leaves out and how long the price holds. When two quotes disagree, level the sub quotes onto one scope before you compare totals. Keep all of this in one sheet, using the columns from an estimate template built from quantities.
Where the labor rate and unit costs come from
The $50.00 rate is a wage plus the costs that ride on every hour. Here the illustrative wage is $40.00 an hour, and every burden row except the first is a placeholder for your own records.
Burden item | % of wage |
|---|---|
Employer Social Security and Medicare | 7.65 |
Unemployment taxes (illustrative) | 2.35 |
Workers' compensation (illustrative) | 6.00 |
General liability on payroll (illustrative) | 1.00 |
Paid time off and benefits (illustrative) | 8.00 |
Total burden | 25.00 |
The loaded rate is $40.00 x 1.25 = $50.00 an hour. The first row is set by law: the IRS lists 6.2% for Social Security and 1.45% for Medicare as the employer share. Workers' compensation is generally charged as a rate per 100 of payroll by class code, and your policy also carries an experience modifier that reflects your past claims. The other rows come from your payroll and insurance records. On public work with a wage determination, the wage floor and the fringe requirement come from the determination, so the labor rate is built another way, as the prevailing wage labor line shows.
Unit costs follow a ladder. Use the highest rung you have, and tag each line with its rung so a reviewer sees which lines rest on a quote and which rest on judgment.
Rung | Source | Best for | Watch for |
|---|---|---|---|
1 | Written quote for this job | Material, rentals, subcontracts | Scope match, exclusions, expiry date |
2 | Your recent purchases and job records | Hours per unit, supplier prices | Different site, size or crew |
3 | Published data | Moving a price forward, checking a rate | National averages, not your supplier |
4 | Your judgment | Gaps only | Mark it as an assumption and carry risk for it |
Rung 2 supplies production rates. Suppose your last job took 96 hours for 3,900 SF, which is 2.46 hours per 100 SF, so the build-up uses 2.5.
Rung 3 includes the Bureau of Labor Statistics Producer Price Index, which tracks changes in the prices domestic producers receive, and its wage estimates by occupation for states and metro areas. Pick the index series that matches the product, because the index tracks producer selling prices, not what your supplier charges you. To bring an old price forward, multiply it by the ratio of two index readings. With illustrative readings of 138.0 then and 150.0 now, the factor is 150.0 / 138.0 = 1.0870, so a board price of $11.50 becomes $12.50, up 8.7%. Use that as a date adjustment only, and replace it with a quote before bid day.
Step 4: Carry allowances and contingency on purpose
An allowance holds a place in the price for an item the owner has not chosen yet. AIA Contract Documents explains how AIA defines allowances: the allowance covers the delivered cost of the material or equipment, with taxes and less trade discounts. Unloading, handling, installation labor, overhead and profit stay in the contract sum, and a change order settles the difference once the real cost is known. So the estimate carries an allowance as a material-only line and prices the rest in its own rows. In the stack in Step 5, the fixture allowance is $2,000.00 of material, and the example assumes the unloading, handling and install labor sit inside the electrical quote.
On houses, finishes are often picked after the bid, so allowances come up often. Options and contract type matter there too, and how a residential estimate differs covers them.
On a complete bid set, contingency is money for risks you can name but cannot yet pin to a cost. It is not a cushion for a rough takeoff. Quantities you missed belong in the quantities. List each risk, give it a chance and a cost if it happens, and multiply. The table below does that for three risks, with illustrative chances and dollar costs.
Named risk | Chance | Cost if it happens | Expected cost |
|---|---|---|---|
Hidden conditions behind existing finishes | 30% | $1,500.00 | $450.00 |
Board price held 30 days, award expected later | 50% | $200.00 | $100.00 |
Occupied-building access limits stricter than the documents imply | 25% | $1,200.00 | $300.00 |
Contingency | $850.00 |
The sum is an average across many bids. On one job each risk either costs its full amount or nothing, so look hard at the largest one and decide whether to carry its full cost. The GAO guide notes that decision makers choose the confidence level for a budget and that no set rules say how much contingency is enough. Whether contingency shows as its own line or sits inside unit prices depends on the bid form and the contract. On commercial work the owner's own reserve and the delivery method change what you carry, and how a commercial bid is priced keeps allowance, contingency, reserve and escalation apart.
Step 5: Add general conditions, overhead and profit
Direct cost is not the price. Three kinds of rows come next.
General conditions are the costs of running this job that no work item carries: supervision, temporary protection, cleanup and job insurance. Price them by time, as weeks x weekly cost, not as a flat percent.
Overhead is office cost spread across all jobs. Your rate is yearly office cost divided by the yearly job cost it must be recovered from. Apply it to the same base you measured it on. It comes from your books.
Profit is what you want to keep after cost and overhead. It is a decision, not a measurement.
The illustrative stack below carries the drywall item and four other lines of one invented job, plus the contingency from Step 4. Every dollar figure in it is made up.
Row | Basis | Amount (illustrative) |
|---|---|---|
Drywall, self-performed | Step 3 build-up | $5,350.00 |
Flooring | Written quote | $5,000.00 |
Painting | Written quote | $3,000.00 |
Electrical | Written quote | $8,000.00 |
Fixture allowance | Material only | $2,000.00 |
Direct cost | Sum of the five lines | $23,350.00 |
General conditions | 4 weeks x $500.00 per week | $2,000.00 |
Cost before risk | $23,350.00 + $2,000.00 | $25,350.00 |
Contingency | Three named risks, Step 4 | $850.00 |
Cost with risk | $25,350.00 + $850.00 | $26,200.00 |
Overhead | 8% of $26,200.00 | $2,096.00 |
Subtotal | $26,200.00 + $2,096.00 | $28,296.00 |
Profit | 6% of $28,296.00 | $1,697.76 |
Price before bond | $28,296.00 + $1,697.76 | $29,993.76 |
Bond premium | 1.5% of final price | $456.76 |
Bid price | $29,993.76 / (1 - 0.015) | $30,450.52 |
As one line: bid price = (direct cost + general conditions + contingency) x (1 + overhead rate) x (1 + profit rate) / (1 - bond rate). Here that reads ($23,350.00 + $2,000.00 + $850.00) x 1.08 x 1.06 / 0.985, which comes to $30,450.52 to the cent, the same number the rows give.
The $850.00 of contingency is 3.4% of the $25,350.00 cost before risk. Treat that percentage as a check on your list, never as a rule.
Other rows are easy to miss: sales or use tax on material, permit and inspection fees, testing, and escalation when work starts months after award. Ask whether the bid documents assign each one to you or to the owner.
The order is a choice. Some firms add contingency after overhead and profit. Pick one order, write it on the sheet and keep it on every bid so bids compare. The bid form and the contract decide whether the price goes out as one number or as separate rows, and the estimate keeps the rows either way.
Markup vs margin: why a 20% markup is not a 20% margin
Markup is the amount added on top of cost, as a share of cost. Margin is the same amount as a share of price. When the amount covers overhead and profit together, the margin is a gross margin, and net profit is smaller. Price equals cost x (1 + markup), and also equals cost / (1 - margin). To convert, margin = markup / (1 + markup), and markup = margin / (1 - margin).
The next table converts five sample markups for an illustrative cost of $100.00.
Markup % | Price at that cost | Margin % |
|---|---|---|
10 | $110.00 | 9.1 |
15 | $115.00 | 13.0 |
20 | $120.00 | 16.7 |
25 | $125.00 | 20.0 |
30 | $130.00 | 23.1 |
To earn a 20% margin you need a 25% markup. Take the stack's illustrative cost with risk of $26,200.00. A 20% margin means a price of $26,200.00 / 0.80 = $32,750.00. Typing a 20% markup gives $26,200.00 x 1.20 = $31,440.00, which earns a 16.7% margin and leaves the price $1,310.00 short of the one that earns a 20% margin.
Stacked markups compound. Overhead at 8% and then profit at 6% multiply: 1.08 x 1.06 = 1.1448, a total markup of 14.48%, or a margin of 12.65%. In the stack, the profit row is 6.0% of the subtotal before it but 5.6% of the bid price.
Some estimators instead add overhead and profit as two percentages of the same base. On $26,200.00, 8% plus 6% is 14%, so the price before bond is $29,868.00, which is $125.76 under the compounded $29,993.76. Either works if the sheet says which one you used.
A cost charged as a share of the final price, such as a bond premium, is divided in, not multiplied. The bond row therefore uses $29,993.76 / (1 - 0.015) = $30,450.52. Some contracts also set the overhead and profit you may add to changed work. The contract controls.
Every line above rests on an assumption somewhere. A price is only as firm as the quantities under it, so open the assumptions sheet of any estimate before you trust its total.
Step 6: Check the number a second way
Test the number two ways before it leaves. First, compare unit costs. Set the drywall item's $1.67 per SF against your own drywall history. Then set the whole bid against your last similar jobs: $30,450.52 over an assumed 1,800 SF is $16.92 per SF. Suppose your last three similar fit-outs ran from $15.00 to $19.00 per SF. That band is made up for this example and is not a benchmark; yours comes from your own closed jobs. Here $16.92 sits inside it. A number outside your band is not wrong. It needs a reason written next to it. The GAO guide lists cross-checks of major cost elements with other methods as part of a credible estimate.
Second, run a sensitivity test, which the same guide describes as changing one assumption at a time. Change one input, rerun the whole stack and record the move in price. The table below does that on the illustrative stack, whose base bid price is $30,450.52, with each change rounded to the nearest dollar.
One change | Change in price | Share of base price |
|---|---|---|
Production 2.5 to 3.0 hours per 100 SF | +$930 | 3.05% |
General conditions run 5 weeks, not 4 | +$581 | 1.91% |
Electrical quote up 5% | +$465 | 1.53% |
Board price up 10% | +$129 | 0.42% |
Waste 10% to 15% | +$52 | 0.17% |
Raising the production rate from 2.5 to 3.0 hours per 100 SF is 20% more labor hours, and it moves the price more than seven times as much as a 10% jump in board price does ($930 against $129). Spend review time where the table says the price is sensitive. The electrical quote and the drywall item together hold 57.2% of direct cost ($13,350.00 of $23,350.00), so check those two lines first. Contingency stays at $850.00 in every run, and the waste run orders 77 sheets (3,200 x 1.15 / 48 = 76.67, rounded up), 3 more than the base case.
A sensitivity test checks the inputs you chose. It cannot find a scope you left out. Step 1 and the checklist below do that job.
A pre-bid review checklist you can copy
Run this list on every bid, ideally with someone who did not build the number.
Every sheet and addendum on the scope sheet is the latest issue.
Each quantity names its sheet, and its unit matches its price.
Waste is a visible factor, not hidden inside the quantity.
Every unit cost carries a rung and a date.
Each subcontract line has a written quote that holds past the expected award date.
No scope sits in two quotes, and none sits in zero.
The labor rate follows the wage rules of the job.
General conditions use the schedule duration, not a flat percent.
Allowances hold delivered material only, with handling and install labor priced elsewhere.
Each contingency line names a risk.
The markup rows use the basis you meant, and the totals re-add.
The bid form's required items match the estimate.
Step 7: Record it so the next bid is faster
Save the bid file as it went out: the scope sheet, the quantity sheet, the price sheet with a rung on each line, the quotes you used, the assumption list, and the final number with the time you submitted it. Use one cost-code list on every job so lines compare across jobs.
After the result, log whether you won. If you did, compare actual hours with the estimate. Say the drywall took 88 hours against 80 estimated, which is 2.75 hours per 100 SF and 10.0% over. Log it with the job conditions. After a few jobs, the average rather than one result becomes your production rate.
The estimate is an internal file. What you send is a bid, a quote or a proposal, and the difference matters, as the guide on what each priced document does explains. For the work around the number, from bid or no-bid to addenda control and bid-day timing, see the bid desk routine.
How accurate can a construction estimate be?
AACE International sorts estimates into five classes, from Class 5, the least defined, to Class 1, the most defined. Its guide calls maturity of project definition the primary characteristic of class. It also says the accuracy ranges that go with each class are indicative, not targets, and that only a quantitative risk analysis gives the range for one estimate. For most building work, AACE points to recommended practice 56R-08. Read that practice itself, not a summary, before you quote any percentage range to a client.
ASTM E2516 sets out a similar five-class matrix for buildings. Alberta Infrastructure's one-page summary, adapted from that standard, puts a Class 2 estimate, one of its two bid or tender classes, at roughly 5 to 10 percent under and 5 to 15 percent over, and a Class 1 at roughly 3 to 5 percent under and 3 to 10 percent over. It also says the range for a project should come from risk analysis of that project and never be pre-determined.
The table is a plain reading of the same idea, not AACE's own wording.
What you hold | How to price it | What to say |
|---|---|---|
A sketch or program | Square-foot method: cost per SF from your own finished jobs | Give a range and list what is undecided |
A design development set | Assembly method: assemblies built from partial quantities | Carry large risk lines and name them |
Construction documents not yet issued for bid | Unit-price method where quantities are drawn, assemblies for the rest | Expect addenda, name each risk and price it |
The bid set with every addendum | Unit-price method: the seven steps above | One price with the assumptions behind it |
A lump-sum bid has one number, so the range lives in your contingency and your sensitivity table. At every stage the habit is the same: each number traces back to a quantity, a source or a written assumption.
Frequently asked questions
What are the steps in estimating construction costs?
Fix the scope and the documents. Take off quantities and write down assumptions. Price labor, material, equipment and subcontracts. Carry allowances and contingency on purpose. Add general conditions, overhead and profit. Check the number a second way, then record it so the next bid is faster.
How accurate does a construction estimate need to be?
It depends on how finished the design is. A bid set with every addendum can support one firm price, while a sketch supports only a range. AACE says class ranges are indicative, not targets. One public owner's ASTM-based table puts one bid-stage class at roughly 5 to 10 percent under and 5 to 15 percent over. Measure your own accuracy against actual hours on finished jobs.
What is the difference between markup and margin?
Markup is the amount added to cost, divided by cost. Margin is that amount divided by price. A 25% markup makes the price 125% of cost. The amount added is 25 of those 125 parts, which is 20% of the price. So a 25% markup earns a 20% margin, and a 20% markup earns only 16.7%.
Where do unit costs come from?
Use the highest rung you have. First a written quote for this job, then your recent purchases and job records, then published data such as price indexes and wage tables. Use judgment only for gaps and mark it as an assumption. Tag every line with its rung so a reviewer sees what each cost rests on.



