Contractor Markup vs. Margin: How to Price Jobs Without Losing Money
Updated March 12, 2026 · 8 min read
Here's a scenario that plays out every day: a contractor calculates their costs at $8,000, slaps on a "25% markup," charges $10,000, and thinks they're making 25% profit. They're not. They're making 20%. And over a year of jobs, that 5% gap adds up to tens of thousands in lost profit.
The markup vs. margin confusion is one of the most expensive mistakes in contracting. Let's fix it for good.
What's the Difference?
Markup
How much you add on top of your cost.
Markup = (Price - Cost) / Cost × 100
Example: $8,000 cost + 25% markup = $10,000 price
Margin
How much of the selling price is profit.
Margin = (Price - Cost) / Price × 100
Example: $10,000 price - $8,000 cost = 20% margin
See the trap? A 25% markup gives you a 20% margin. A 50% markup gives you a 33% margin. They are never the same number (except at 0%).
The Cheat Sheet
Print this out. Put it in your truck.
| Target Margin | Required Markup | On $10K Job |
|---|---|---|
| 10% | 11.1% | $11,111 |
| 15% | 17.6% | $11,765 |
| 20% | 25.0% | $12,500 |
| 25% | 33.3% | $13,333 |
| 30% | 42.9% | $14,286 |
| 35% | 53.8% | $15,385 |
| 40% | 66.7% | $16,667 |
Real-World Examples by Trade
🔨 Roofing
A typical residential re-roof: $4,500 in materials (shingles, underlayment, flashing, nails) + $3,500 in labor (crew of 3 for 2 days). Total direct cost: $8,000.
- Industry average markup: 40-50% (overhead + profit)
- At 43% markup → $11,440 price → 30% margin
- Most roofers charge $10,000-12,000 for this job
❄️ HVAC
AC system replacement: $3,200 equipment + $1,800 labor + $400 materials = $5,400 cost.
- Industry average markup: 50-70%
- At 54% markup → $8,316 price → 35% margin
- HVAC has higher margins because of technical licensing requirements
🔧 Plumbing
Whole-house repipe (copper to PEX): $2,000 materials + $3,000 labor = $5,000 cost.
- Industry average markup: 35-55%
- At 43% markup → $7,150 price → 30% margin
- Emergency/service calls carry much higher margins (60%+)
The Golden Rule: Never Use Markup When You Mean Margin
When you tell yourself "I want to make 30% on this job," do you mean 30% markup or 30% margin? If you mean margin (you probably do), you need a 42.9% markup. If you accidentally use 30% markup, you're only making 23% margin — and 7% of your revenue just evaporated.
On $500K in annual revenue, that's $35,000 in lost profit. Every year.
The Formula You Need
To hit your target margin, use this markup formula:
Markup % = Target Margin / (1 - Target Margin)
Example: Want 30% margin? → 0.30 / (1 - 0.30) = 0.30 / 0.70 = 42.9% markup
Don't Forget Overhead
Most contractors price like this: Materials + Labor + Profit. Wrong. It should be: Materials + Labor + Overhead + Profit.
Overhead includes:
- Insurance (GL, workers comp, auto)
- Vehicle costs (gas, maintenance, payments)
- Office/shop rent
- Tools and equipment
- Licenses and permits
- Phone, software, advertising
- Your own salary (yes, you need to pay yourself)
A good rule of thumb: overhead runs 25-35% of revenue for most small contractors. If you're not accounting for it, your "profit" is actually paying for your truck and insurance — not going into your pocket.
Stop Doing Math in Your Truck
This is exactly the kind of thing that costs you money when you're doing it by hand on a napkin at the job site. The formulas aren't hard, but getting them wrong is expensive.
BidForge handles all of this automatically. You enter the job details, set your overhead percentage and target profit margin in your settings, and every proposal applies them correctly — materials, labor, overhead, profit, all broken out on a professional PDF.
Try a free quote — no signup needed
Describe a job, see what BidForge generates. Takes 60 seconds.