Tabby Selected as Top 200 Startup by TechCrunch for 2026

How to Bid a Construction Job Without Losing Money

Learn how to bid a construction job the right way: material waste, burdened labor, overhead, and the margin math that keeps you from quietly losing profit.
Author Ahad Ali, CPA
Published August 11, 2026
Reading Time 6 min
How to Bid a Construction Job Without Losing Money

To bid a construction job without losing money, add up four things — materials plus a waste factor, labor at your fully burdened rate, a slice of overhead, and then profit margin — and set your price by dividing total cost by (1 − your margin), not by tacking a percentage on top. That last step is where most contractors leak profit: “adding 20%” to your cost only earns you about 16.7%, not the 20% you think you’re getting.

What actually goes into a bid?

A price you can defend is built from the bottom up, in four layers. Skip one and you’re either underwater or you’re the guy who’s always “surprised” his good months don’t add up to a good year.

  • Materials + waste. Take-off quantities are never what you actually consume. Lumber gets miscut, tile breaks, drywall gets scrapped. Add a waste factor on top of your take-off.
  • Labor at a burdened rate. Not the $22/hour you pay a framer — the real cost once payroll taxes, workers’ comp, and liability insurance are stacked on.
  • Overhead allocation. Your truck, fuel, tools, phone, software, and the hours you spend estimating don’t bill to any one job, but every job has to help pay for them.
  • Profit margin. The part that’s actually yours. It is not overhead, and it is not a tip — it’s the reason you took the risk.

Cost is the first three layers. Price is cost plus margin. Confuse the two and you’ll price like an employee instead of an owner.

Why does “just add 20%” quietly rob you?

This is the single most expensive arithmetic mistake in the trades, and it hides in plain sight. Margin is measured against your selling price; markup is measured against your cost. They are not the same number.

Say a job costs you $8,000 and you want to keep 20%. If you “add 20%” you charge $9,600 — but your $1,600 profit is only 16.7% of that $9,600. To actually keep 20%, you divide by (1 − 0.20):

Price = Cost ÷ (1 − Margin) = $8,000 ÷ 0.80 = $10,000

On one deck the gap is $400. Across 40 jobs a year it’s real money — the difference between a truck payment covered and a truck payment that isn’t. Here’s the conversion you should tape to the inside of your estimate binder:

Margin you want Correct markup on cost What “just adding that %” really nets you
10% +11.1% 9.1%
15% +17.6% 13.0%
20% +25.0% 16.7%
25% +33.3% 20.0%
30% +42.9% 23.1%

If mental math on the jobsite isn’t your thing, run the buildup in the Tabby Job Bid Calculator — it applies the divide-by-(1−margin) step for you so a rushed estimate doesn’t cost you a point of profit.

Worked example: bidding a $10,000 deck

Let’s build a real bid for a mid-size composite deck, layer by layer, so you can see the numbers stack.

Line How it’s figured Amount
Materials (take-off) Decking, framing, fasteners, footings $3,200
+ Waste factor 10% for cuts and breakage $320
Labor 80 hrs × $45 burdened rate $3,600
Overhead allocation $11/labor hr × 80 hrs $880
Total job cost Sum of the above $8,000
Bid price @ 20% margin $8,000 ÷ 0.80 $10,000

Your profit is $2,000 — a clean 20% of the $10,000 you collect. Had you “added 20%” and bid $9,600, you’d have pocketed $1,600 and told yourself you hit your number. You didn’t.

Watch out: Don’t fold your own labor into the “profit” line. If you’re swinging a hammer on this deck, your time belongs in the burdened labor bucket at a real rate. Margin is what’s left after everyone — including you — gets paid for the work. Skip that and you’ve hired yourself for free and called it a good job.

How do you set a fully burdened labor rate?

The wage on the paycheck is maybe 65–75% of what an hour of labor actually costs you. Start with the base wage, then add the loads:

  • Employer payroll taxes (Social Security, Medicare, FUTA/SUTA) — roughly 10–12% on top of wages
  • Workers’ comp — varies wildly by trade and state; roofing and framing run steep
  • General liability insurance
  • Any benefits, PTO, or non-billable/travel time you carry

A framer at $30/hour can easily cost you $40–$45 once those loads land — which is exactly why the example above used $45, not $30. Nail this number down once, keep it current, and your bids stop lying to you.

How much overhead should each job carry?

Add up your annual overhead — insurance, vehicle, tools, software, admin, marketing, the phone — and spread it across the hours you actually bill in a year. If your overhead is $70,000 and your crew bills 6,400 hours, that’s about $11 of overhead per labor hour. That’s the number in the deck example.

Allocating per labor hour works because it scales with job size automatically: a two-day job carries less overhead than a two-week one. The one thing you can’t do is leave overhead out and hope your margin quietly absorbs it — that’s how “profitable” contractors go broke. Plug your real numbers into the job bid calculator and you’ll see instantly what each layer is doing to your bottom line.

Frequently asked questions

What’s the difference between markup and margin?

Markup is measured against your cost; margin is measured against your selling price. A 25% markup on cost equals a 20% margin. If you want a set margin, divide your cost by (1 − margin) rather than multiplying by (1 + margin).

How much of a waste factor should I add to materials?

Commonly 5–15%. Simple, dimensional work like framing lumber runs lower; tile, trim, flooring with diagonal cuts, and anything with heavy breakage risk runs higher. Base it on what you actually throw in the dumpster, not a guess.

What is a fully burdened labor rate?

It’s the true hourly cost of an employee — base wage plus payroll taxes, workers’ comp, liability insurance, and any benefits or non-billable time. It’s typically 25–50% above the raw wage, which is why bidding at the wage alone leaves you short.

How do I allocate overhead to a single job?

Total your annual overhead and divide it by your billable labor hours to get an overhead cost per hour, then apply that rate to the job’s labor hours. It scales cleanly — bigger jobs carry more overhead, smaller jobs carry less.

What profit margin should a contractor aim for?

Net margins in residential construction often land in the 8–15% range, though many trades target 20% or more on smaller jobs to stay healthy after overhead. Set a floor you won’t bid below and hold it — the jobs you lose on price were usually the ones that would have cost you money.

Should I show my markup on the estimate?

Usually no — most contractors present a single all-in price by scope, not a line-item breakdown of cost plus profit. Keep the buildup in your own records so you can defend the number if a client pushes back, without inviting a negotiation over your margin.

Bid tight, then keep the books that prove it

A sharp bid is only half the job. The other half is knowing your real burdened labor rate and your real overhead — and those come straight from clean books. Tabby is AI bookkeeping built for self-employed contractors and trades, so the numbers you bid with are the numbers your business actually runs on. Start a free trial and stop guessing at the figures that decide whether a job made money.

What is Tabby?

Your AI bookkeeper. Categorizes transactions automatically and gives you tax-ready reports. Built by a CPA for small businesses. Start for free today.

Calculate your 1099 Taxes

See exactly how much you’ll owe in taxes and what you can deduct. Free to use, no signup required.

Join The Bottom Line Club

Our free newsletter where we share practical tips to run a more profitable business

Newsletter

Don’t Leave Money on the Table This Tax Season

Tabby finds deductions automatically and keeps your books clean all year. Get your 2025 bookkeeping done in minutes.