← All posts

[ Blog ]

How to Calculate Construction Job Costs (Before You Bid)

September 8, 2026

How to Calculate Construction Job Costs (Before You Bid)

An electrical contractor on Mike Holt's forum described a losing streak most owners recognize: "Every estimate or proposal I give - they get 2 other prices or more and the other guy is 10-20% lower. The low prices can't be making any money." In another thread an electrician who lost a bid by $1,500 asked the group "Did I over bid?" and got the answer that should be tattooed on every estimator: "You cannot bid based on what other people are pricing their jobs at or you will go bankrupt."

The alternative is to build the price from the cost. This post is the cost-side math: how to calculate what a construction job will cost you before you commit to a number. It pairs with our Complete Guide to construction job costing, which covers the tracking system, and with How to Calculate Profit on a Construction Job, which is the same math run after the job closes. This one is the bid.

Every dollar figure in the worked example is demo math for illustration, not a market rate.

The cost of a demo re-roof built up in five layers, from wages and burden through overhead, then priced at a 20 percent margin

The formula

Job cost has six parts. Price has one more step.

Job cost = burdened labor + materials + subcontractors + equipment + other direct costs + overhead share

Price = job cost ÷ (1 − target margin)

Most losing bids are not bad at the parts they include. They are missing parts. Two that go missing again and again are labor burden and overhead, which is exactly why a wage-only bid can come in 20 to 30 percent under a real one, as the worked example below shows, and still feel profitable to the contractor who wrote it. A part-time equipment operator on Heavy Equipment Forums admitted his rates had been built by "adding % per year" to old numbers and that customers were telling him he was too high and too low at the same time. Building from cost ends that argument.

The worked example below is a 30-square tear-off and re-roof (about 3,000 square feet, architectural shingles, one layer coming off) run by a four-man crew. Each step adds a line.

Step 1. Turn the work into hours

The takeoff gives you quantities: squares of roofing, feet of trench, fixtures, sheets. Hours come from quantities times a production rate, the crew hours your people need per unit.

Production rates are the whole game in labor estimating, and the only ones worth trusting are yours. A hardscape contractor on LawnSite put it as plainly as it gets: "You have to estimate correctly, and that starts with tracking things right." If you have never tracked hours by job, you have no production rates; you have guesses, and the fix is step 7.

Demo job: tear-off one day (4 crew × 8 hours = 32 hours), install two days (64 hours), plus load-out, setup, and cleanup (4 crew × 2 hours = 8 hours). 104 crew hours.

Count the hours that are not on the roof: loading the trailer, the supply-house run, the walk-around with the homeowner. They are paid hours, and they belong to this job.

Step 2. Cost the hours at the burdened rate

Wage is what the crew sees. Cost is wage plus employer payroll taxes, workers comp, liability insurance, and any benefits, spread across the hours you can actually bill. Owners rarely have a method for this line. A second-year plumbing contractor on r/estimators asked the sub "What's the correct formula to calculate my hourly cost per man once overhead is factored in?" An estimator on the same sub admitted he was pricing a $60/hr journeyman package at $98/hr with "little guidance from my owners" on how the conversion should work.

Burden varies widely by trade and state. In a Reddit thread comparing crew costs, a Hawaii contractor figures 40 to 50 percent for construction while a poster who once worked for a large masonry sub recalls wage plus 28.5 percent. Work yours out once from last year's payroll tax, comp, and insurance bills, and reuse it on every bid.

Demo job: average wage $30/hr, burden 45 percent (roofing tends to sit toward the high end because of workers comp rates), so the burdened rate is $43.50/hr. 104 hours × $43.50 = $4,524. (Wage-only, the same hours would show $3,120. Remember that number.)

The Job Costing Calculator does the loading for you: hours, wage, and burden percent in, burdened labor out.

Step 3. Materials at delivered cost, with waste

Price materials at what they will cost landed on the job: unit price, plus tax, plus delivery, times a waste factor for the cuts, breakage, and overage you will not get back. Skipping waste and delivery is how a bid loses a few hundred dollars before the first bundle goes up.

Then there is the markup question, which is not a cost question. A veteran remodeler on Fine Homebuilding, answering a peer whose client was complaining about a 6.5 percent materials markup, said "I'd be losing money if that was all I marked the materials up" and that a markup like that used to cover his insurance and overhead but no longer did. In this method, overhead lives in step 5 and profit in step 6, and the handling, returns, and warranty that a materials markup is usually meant to cover belong in those two places too. The material line stays clean: what the material costs you, nothing more.

Demo job: 30 squares with a 12 percent waste factor rounds to 34 squares of shingles at $130 per square = $4,420. Underlayment $600, starter, ridge, and ice-and-water $650, flashing, drip edge, and vents $550, nails and sealant $180. Subtotal $6,400. Tax and delivery $560. Materials: $6,960.

Step 4. Subs, equipment, and the direct costs everyone forgets

Subcontractors go in at their quoted price. Rentals go in at invoice. Equipment you own still costs money every day it is on a job (fuel, maintenance, wear, the payment), so charge the job a daily or hourly rate for it, or that cost will hide in overhead and inflate every future bid instead.

The forgotten lines are the small ones: permits, dump fees, disposal, fuel for the trip, parking, portable toilet, the plan-check fee. None is large. In the demo job below, the dumpster and the permit alone come to $1,050, and a bid that leaves them out is a bid that eats them.

Demo job: sheet-metal sub for the chimney cricket and counter-flashing $650. Dumpster with dump fees $700. Owned equipment (compressor, nailers, roof jacks, trailer) charged at $100/day for three days, $300. Permit $350. Subs and other direct: $2,000.

Running direct cost so far: $4,524 + $6,960 + $2,000 = $13,484.

One more thing that does not belong in the bid: unknowns you cannot see. Rotten decking under a tear-off is the classic. Do not pad the price for it. Put it in the contract as a unit price (per sheet replaced, per foot of fascia) so it becomes a signed change order when it appears, not an argument.

Step 5. Charge the job its share of overhead

Overhead is everything that keeps the company alive but belongs to no single job: the shop, the trucks, insurance, the office, the software, the owner's unbillable time. It gets paid by the jobs or it does not get paid. A reply in a Mike Holt markup thread pointed out that plenty of electrical contractors "fail to account for overhead costs" when they quote, and the Complete Guide has a whole section on why that is the most common leak.

Simplest method for a labor-heavy company: an overhead rate per crew hour. Take a year of overhead, divide by a year of billable crew hours, and charge every estimated hour that rate.

Demo numbers: $180,000 annual overhead ÷ 7,200 billable crew hours (four field employees at roughly 1,800 billable hours each) = $25 per crew hour. 104 hours × $25 = $2,600.

Total job cost: $13,484 + $2,600 = $16,084.

That is the number the job has to bring in before the company makes a dollar.

The hours behind step 1's production rates come from one place: hours tracked by job. SiteOps captures those hours without paperwork. Crews clock in with GPS at the job site, so every hour lands on the right job, and every job shows a running profit and loss while it is still open. Start a 14-day free trial.

Step 6. Turn cost into price (margin, not markup)

Now the profit. Decide what margin the company needs on this kind of work, then divide cost by one minus that margin. Do not multiply cost by the margin percentage; that is markup, and it lands short of the margin you meant. Adding 20 percent to cost produces a 16.7 percent margin. Getting a 20 percent margin takes a 25 percent markup.

Demo job: target margin 20 percent. Price = $16,084 ÷ 0.80 = $20,105. Planned profit: $4,021, which is 20.0 percent of price.

What margin to target is your call, and there is no industry number. When excavation contractors compared bid targets on Heavy Equipment Forums, the answers ran from 10 percent to 45 percent. The Contractor Markup Calculator converts whatever margin you choose into the markup that delivers it.

Two bids for the same demo roof side by side: a wage-only bid at $14,496 that really loses $1,588, and a fully costed bid at $20,105 that clears $4,021

Here is one way the low bidder ends up not making money. Take the same roof and build the bid the way a lot of bids get built: labor at wages, no overhead, then 20 percent added on top.

Line Wage-only bid Fully costed bid
Labor (104 hrs) $3,120 (wages) $4,524 (burdened)
Materials $6,960 $6,960
Subs, equipment, permit, disposal $2,000 $2,000
Overhead share not counted $2,600
Cost as bid $12,080 $16,084
Profit step + 20% markup ÷ 0.80 (20% margin)
Price $14,496 $20,105
What the owner thinks he made $2,416 $4,021
What the job really made −$1,588 $4,021

The wage-only bid comes in 28 percent under the real one. The contractor who wrote it believes he is 20 percent up. He is $1,588 in the hole before the first surprise, and the surprise is coming. That could be the undercutter from the opening paragraph, and if it is, he does not know it yet.

Step 7. Close the loop after the job

The estimate is a hypothesis. The job is the test. When it closes, put the actuals next to the bid line by line, the way How to Calculate Profit on a Construction Job walks through, and update the numbers you will use on the next bid:

The estimating loop: estimate, track hours and costs by job, compare against the bid, update production rates, and bid again tighter

The loop has a front end too: check the estimate before it goes out. A cabinet shop owner on WOODWEB discovered after the contract was signed that a quote had gone out at the wrong price and that he "simply could not do the job for the original contracted price". Some replies told him to swallow it and learn. Checking the bid before it leaves and checking the actuals after the job closes are the same habit. The loop is how you learn on purpose, one job at a time, instead of one disaster at a time.

Run your own numbers through the Job Costing Calculator, check the true margin in the Profit Margin Calculator, and for a trade-specific version of this math see Job Costing for Concrete Contractors.

FAQ

How do you calculate the cost of a construction job?

Add burdened labor (estimated hours times the wage plus payroll taxes, workers comp, and insurance), materials at delivered cost with a waste factor, subcontractor quotes, equipment, the other direct costs (permits, disposal, fees), and the job's share of company overhead. That total is the job cost. Price comes from dividing cost by one minus your target margin.

What is the formula for job cost?

Job cost = burdened labor + materials + subcontractors + equipment + other direct costs + overhead share. Price = job cost ÷ (1 − target margin). A $16,084 job at a 20 percent target margin prices at $16,084 ÷ 0.80 = $20,105.

How do I estimate labor hours for a construction job?

Quantity of work times a production rate: how many hours your crew needs per unit (per square of roofing, per foot of trench, per fixture). The only reliable production rates are your own, from hours tracked by job on past work. Until you have them, use conservative figures and track the next job closely.

Should overhead be included in a job estimate?

Yes, every time. Overhead is paid by jobs or it is not paid at all. The simplest method is an overhead rate per crew hour: a year of overhead divided by a year of billable crew hours, charged to every estimated hour.

What is the difference between markup and margin when pricing a job?

Markup is added to cost; margin is the share of price that is profit. Adding 20 percent to cost yields a 16.7 percent margin, not 20. To hit a 20 percent margin, divide cost by 0.80 (a 25 percent markup).

How accurate should a construction estimate be?

Accurate enough that the actuals land inside the margin you priced. The way to get there is the loop: estimate, track actual hours and costs by job, compare, and update your production rates. Each cycle tightens the next bid.

This article is general information for contractors, not accounting, legal, or tax advice. Burden rates, overhead, and margins vary by trade, state, and company; work yours out from your own records.