Markup vs Margin for Contractors —
The Difference That Costs You Thousands

Updated 2025 · 6 min read · Free calculator included

Here is one of the most expensive mistakes a contractor can make: quoting a job with a "20% profit" when you actually applied a 20% markup. You didn't earn 20% profit. You earned 16.7%. On a $500,000 annual revenue, that confusion alone costs you $16,500 every year — and most contractors never catch it.

The Common Mistake

Contractor targets 20% profit. Adds 20% to costs. Thinks the job is profitable. But 20% markup = 16.7% margin. The math is wrong before the job even starts.

What Is Markup?

Markup is the percentage added on top of your cost. It is calculated based on what you spent, not what you charged.

Markup % = (Bid Price − Direct Cost) ÷ Direct Cost × 100
// Example: ($12,500 − $10,000) ÷ $10,000 = 25% markup

Simple enough. The problem is that markup percentage is not the same as your profit percentage. Contractors commonly say "I want 25% on this job" meaning they want 25% profit — but then they calculate markup and apply the wrong number.

What Is Margin?

Gross margin (also called profit margin) is calculated based on your revenue, not your cost. It tells you what percentage of every dollar you charge is actual profit.

Margin % = (Bid Price − Direct Cost) ÷ Bid Price × 100
// Example: ($12,500 − $10,000) ÷ $12,500 = 20% margin

Same job. Same numbers. 25% markup. But only 20% margin. This is the gap that matters.

Side-by-Side Comparison

Markup Applied Cost Bid Price Gross Profit True Margin
10% $10,000 $11,000 $1,000 9.1%
15% $10,000 $11,500 $1,500 13.0%
20% $10,000 $12,000 $2,000 16.7%
25% $10,000 $12,500 $2,500 20.0%
33% $10,000 $13,300 $3,300 24.8%
50% $10,000 $15,000 $5,000 33.3%
The Right Formula

If you want a specific profit margin, use this formula to find the correct bid price:

Bid Price = Total Cost ÷ (1 − Target Margin %)

Example: $10,000 cost, want 20% margin → $10,000 ÷ 0.80 = $12,500 bid

Why This Matters for Overhead

The markup vs. margin confusion becomes even more damaging when you factor in overhead. Most contractors add overhead as a percentage to their direct costs — but if they use markup math instead of margin math, they systematically under-recover overhead on every single job.

Consider a contractor with $80,000 annual overhead, $400,000 annual revenue, and 20% overhead rate. If they target a 20% profit margin but calculate it as a 20% markup, they lose $16,500 per year just from the math error — before accounting for any actual job problems.

Use the Margin Formula — Every Time

The correct approach is to calculate your true all-in cost (direct costs + overhead allocation + contingency), then apply the margin formula to find the bid price that delivers your target profit:

Step 1: Direct Costs = Labor + Materials + Subs + Equipment + Permits
Step 2: Overhead = Direct Costs × Overhead Rate
Step 3: Contingency = Direct Costs × Contingency Rate
Step 4: Total Cost Base = Direct Costs + Overhead + Contingency
Step 5: Bid Price = Total Cost Base ÷ (1 − Target Margin %)
// This is exactly what the BidMarkup.com calculator does

Markup vs Margin By Trade

Different trades have different standard markup ranges, but what matters is your specific overhead structure. These are industry reference points — not targets to blindly copy:

TradeTypical MarkupTrue MarginOverhead Range
Electrical20–35%17–26%12–18%
Plumbing25–40%20–29%14–20%
Roofing20–40%17–29%15–22%
HVAC25–50%20–33%15–20%
General Contractor15–25%13–20%14–22%
Painting25–50%20–33%10–15%
Landscaping15–30%13–23%12–18%

Calculate Your Exact Bid Price — Free

Enter your real costs, overhead rate, and target margin. Get the precise bid price, markup %, true margin, and break-even point — for your trade.

Open the Calculator →

Quick Reference Cheat Sheet

MARKUP → MARGIN conversion:
Margin = Markup ÷ (1 + Markup)
Example: 25% markup → 25 ÷ 125 = 20% margin

MARGIN → MARKUP conversion:
Markup = Margin ÷ (1 − Margin)
Example: 20% margin → 20 ÷ 80 = 25% markup

BID PRICE from target margin:
Bid = Cost ÷ (1 − Margin%)
Example: $10,000 ÷ 0.80 = $12,500 bid for 20% margin

Save this page. Share it with your estimating team. The contractors who win consistently aren't always the cheapest — they're the ones who know their numbers, price correctly, and deliver profitably every time.

How to Price a Job Using Margin — Step by Step

Most contractors price jobs by adding a markup percentage to their costs. The problem is they often confuse the percentage they want to earn (margin) with the percentage they need to apply to costs (markup). Here is the correct process:

Step 1 — Calculate total direct costs. Add labor (burdened), materials, subcontractors, equipment, permits, and any other direct expenses. This is your cost base.

Step 2 — Add overhead. Multiply direct costs by your overhead rate (typically 15–22%). This recovers the cost of running your business — vehicles, insurance, office, admin.

Step 3 — Add contingency. Multiply direct costs by 5–10% for unforeseen conditions. On renovation or remodel work, use 10%. On clear-scope new construction, 5% is reasonable.

Step 4 — Apply the margin formula. Divide total cost base (direct costs + overhead + contingency) by (1 − your target margin). Example: $15,000 total cost base ÷ (1 − 0.20) = $18,750 bid price, delivering exactly 20% gross margin.

Why not just add 20% to cost? If you add 20% to $15,000 you get $18,000 — but your margin is only 16.7%, not 20%. On $500K annual revenue, that 3.3% gap is $16,500 in missing profit per year. The formula above is the only way to guarantee your target margin.

Markup vs Margin: Common Contractor Mistakes

The markup-margin confusion shows up in four specific ways that cost contractors money:

Mistake 1 — Applying margin % as markup. "I want 20% profit" → adds 20% to costs → earns only 16.7% margin. On a $250,000 annual cost base, that's $8,250 in missing profit every year.

Mistake 2 — Not recovering overhead on every job. Treating overhead as a year-end accounting item instead of a per-job cost. If you don't recover overhead on every job, some jobs subsidize others — and slow months can sink you.

Mistake 3 — Using base wages instead of burdened labor. A $30/hr worker costs $39–42/hr fully burdened (FICA, workers' comp, benefits). Bidding with base wage means every labor hour loses $9–12 before material costs even hit.

Mistake 4 — Using a markup from years ago. Your overhead changes every year — new insurance rates, new vehicle payments, new hires. A markup that worked in 2022 may be dangerously thin today. Recalculate annually.

Markup vs Margin by Project Type

The correct markup isn't just a trade issue — it also depends on the type of project, the client relationship, and the risk profile of the work.

Project Type Typical Markup Why
New residential construction15–20%Clear scope, lower risk, volume builds efficiency
Residential remodel / renovation20–35%Hidden conditions, occupied space, scope changes
Commercial construction (large)10–18%Competitive bidding, high volume, thin but reliable
Service & repair work35–60%Dispatch overhead, small jobs, urgency premium
Insurance restoration (Xactimate)10% O + 10% PIndustry-standard adjuster pricing, negotiated
Government / public works8–15%Disclosed cost breakdowns, prevailing wages, compliance

Key Formulas Reference

Save these. They belong on a notepad next to your estimating software:

Bid Price (from target margin) = Cost ÷ (1 − Margin%)
// Example: $10,000 ÷ (1 − 0.20) = $12,500
Markup % = (Price − Cost) ÷ Cost × 100
// Example: ($12,500 − $10,000) ÷ $10,000 = 25%
Margin % = (Price − Cost) ÷ Price × 100
// Example: ($12,500 − $10,000) ÷ $12,500 = 20%
Markup → Margin = Markup ÷ (1 + Markup)
// Example: 25% ÷ 1.25 = 20% margin
Margin → Markup = Margin ÷ (1 − Margin)
// Example: 20% ÷ 0.80 = 25% markup
Overhead Rate = Annual Overhead ÷ Annual Revenue × 100
Break-Even = Direct Costs + Overhead Allocation
Coming Soon

Take BidMarkup
On Every Job Site

The full contractor markup calculator — in your pocket. Calculate bids, check margins, and price jobs on the go. iOS and Android apps coming soon.

📧 Get notified when the app launches →

App Launch Notification
Be first to know when the BidMarkup iOS & Android app goes live.