Skip to content
SheetModel
Real EstateE-commerceConstructionB2B SaaSWorkforceAbout
Construction 3 Excel tabs included 11 min read Updated Jan 2026

Contractor job costing & bid estimator

Burden your labour, allocate overhead, then price the job from a real margin instead of a multiplier — and download the cost-code workbook with a client quote tab.

Typical labour burden
28–45%
Typical overhead
8–18%
Target net margin
10–20%
Advertisement
Advertisement

Markup and margin are not the same number

This is the single most expensive arithmetic error in contracting. Markup is a percentage added to cost. Margin is a percentage of the selling price. A 20% markup produces only a 16.7% margin, and a contractor who prices at "cost plus 20%" while believing they are earning 20% is quietly giving away 3.3 points of every dollar — often the entire net profit on a competitive job.

The conversion is exact and worth memorising: margin = markup ÷ (1 + markup). To earn a 20% margin you must mark up by 25%. To earn 25% margin you need 33.3% markup. The calculator shows both numbers side by side in the same result panel so the gap is impossible to miss.

Pricing from a margin targetlive formula
Bid price = Total cost ÷ (1 − margin %)

Effective markup on cost = (Bid − Cost) ÷ Cost

20% margin  →  25.0% markup
15% margin  →  17.6% markup
10% margin  →  11.1% markup
The workbook writes this as =Cost/(1−margin) so you can change the margin in one cell and watch every quotation line move.

Labour burden: why a $38 wage costs $52

You do not pay a wage. You pay a wage plus statutory taxes, workers compensation, general liability allocation, benefits, retirement match, paid time off and the small tools your crews consume. Most estimating errors start here, because the wage is the only part that appears on a timesheet.

Typical burden components for a construction trade
ComponentRateNotes
FICA (employer)7.65%Social Security to the wage cap plus Medicare
FUTA0.6%Federal, capped at the first $7,000 of wages
SUTA1.5–4.5%State and experience rated
Workers compensation3–15%+Class code driven — roofing far exceeds office
General liability allocation1–2%Premium divided by payroll
Health & medical5–12%Employer contribution only
Retirement match0–4%401(k) safe harbour is typically 3–4%
Paid time off & holidays5–9%Paid hours not worked
Small tools & consumables1–3%Usually forgotten entirely
Advertisement

Overhead allocation: pricing the business, not just the job

Direct costs are the materials, labour, equipment and subcontractors that disappear into one specific job. Overhead is the cost of existing at all: the truck, the office, the estimator, the software, the insurance, the owner's salary. If overhead is not allocated into every bid, the volume of work increases while profit goes down — the most common failure pattern for growing contractors.

The practical method is an overhead rate applied to direct cost. Take annual overhead, divide it by annual direct cost volume, and you have your rate. If you run $1.2M of overhead against $8M of direct cost, your rate is 15%, and every bid carries 15% on top of direct cost before any profit.

  • Overhead rate = annual overhead ÷ annual direct cost volume. Recalculate it annually, not once.
  • Below roughly $2M of revenue, most contractors run 10–18% overhead. Above that, 8–12% as fixed costs spread.
  • Jobs that "keep the crews busy" using marginal pricing destroy overhead recovery and rarely improve the bottom line.
  • A job won at a 6% margin with 12% overhead is a loss, no matter what the contract says.

Cost codes turn an estimate into a control system

A bid is a promise; a cost code structure is how you find out whether you kept it. Breaking the estimate into line items — general conditions, site work, concrete, framing, MEP rough-in, finishes — gives you a baseline to compare actual costs against as the job runs, not after it closes.

The workbook ships a line-item cost breakdown that becomes both your client quotation and your cost baseline. That dual purpose is deliberate: quoting from the same structure you control costs with is what makes the feedback loop fast enough to matter on a 12-week job.

  • Keep cost codes consistent across jobs — it is the only way to compare performance.
  • Track committed cost (purchase orders issued) as well as actual cost paid out.
  • Review every job at 50% completion; a variance found then is recoverable, one found at 95% is not.
  • Carry a contingency line in the estimate so that your margin is not the contingency.

How to use this tool

  1. Enter direct costs. Materials, labour hours, base rate, equipment and subcontractor amounts. Use your actual supplier quotes and the crew hours you plan to consume.
  2. Set your burden and overhead rates. Labour burden from your payroll register, overhead from last year’s financials divided by direct cost volume. Update both annually.
  3. Choose a margin, then read the markup. Set the margin you need on the selling price, then look at the resulting markup on cost. If the markup looks too high to win the job, the problem is your cost base — not the margin.
  4. Download and stress-test the price. The workbook includes a margin-versus-overrun grid. Find the overrun percentage that wipes out your profit before you sign anything.

What is inside the download

Three linked tabs: a direct-cost build-up that produces a client-ready quotation, a full labour burden ledger (statutory plus discretionary) with a crew rate table, and a margin-versus-overrun sensitivity grid.

  • Cost Breakdown & Client Quote — a separate worksheet in job-costing-model.xlsx.
  • Labor Burden Calculator — a separate worksheet in job-costing-model.xlsx.
  • Bid & Margin Sensitivity — a separate worksheet in job-costing-model.xlsx.

Where these defaults come from

Every pre-filled value in the calculator above is listed below with its basis. None of it is proprietary to us — we do not run primary research. Statutory figures come from the regulator, fee schedules from the vendor that charges them, ranges from published industry surveys, and conventions are labelled as rules of thumb. When you have your own numbers, replace the default: the workbook formulas do not care where an input came from.

DefaultValue usedBasisSource
Construction labour burdenStatutory plus discretionary. Workers compensation class code is the largest variable in the range.28–45% of base wagesMarket surveyUS Bureau of Labor StatisticsEmployer Costs for Employee CompensationCited by name · link pending verification
Contractor overhead rateBelow roughly $2M revenue, 10–18%; above that, 8–12% as fixed cost spreads.8–18% of direct costRule of thumbNo authoritative source — industry convention
Target net marginGeneral contractors carry less direct labour and therefore thinner net margins.4–8% GC, 8–15% tradesRule of thumbNo authoritative source — industry convention
Margin to markup conversionArithmetic, not convention: markup = margin ÷ (1 − margin). Pricing the two interchangeably is the most expensive estimating error in the trade.20% margin = 25% markupStatutoryNo authoritative source — industry convention
Workers' compensationClass code drives the rate; the range spans clerical to roofing. Get this from your carrier — a wrong default here is a legal exposure, not just a modelling error.$0.30 – $15+ per $100 of payrollMarket surveyNCCI and state rating bureausWorkers compensation class codes and loss costsCited by name · link pending verification

Full source registry, verification status and review cadence: data sources & methodology.

Frequently asked questions

Specialty trade contractors typically target 8–15% net margin on revenue; general contractors often run thinner at 4–8% because they carry less direct labour. Anything under 5% net leaves no capacity to absorb an overrun on a single trade, which is precisely why the sensitivity grid in the workbook matters more than the headline price.

Software that pairs with this model

These are the platforms our models are designed to work alongside, chosen because their pricing or data appears in the model itself. Some links are affiliate links — they cost you nothing, and they never influence a formula, a default value or a result.

Related models