Contractor Pricing

Contractor Markup Guide: How to Price Jobs for Profit

Most contractors guess at markup. Then wonder why busy months still feel broke. Here's how to calculate it properly — by trade, by job type, and by what your overhead actually costs you.

By BidStack Editorial · May 6, 2026 · 7 min read

A contractor who can build anything but can't price profitably is running a charity. Markup is the mechanism that turns your cost to do a job into a business that actually makes money. Most contractors learn a number — "I charge 30% over cost" — and never revisit it. The problem: that number was usually picked up from a competitor, applied to a different overhead structure, and may not cover your actual costs at all.

This guide covers the fundamentals: what markup means, how it differs from margin, what the industry benchmarks are by trade, and how to calculate the right number for your business.

Markup vs Margin: The Difference That Costs Contractors Money

These two terms are used interchangeably in the field. They are not the same number.

Markup is calculated on cost. If your cost is $1,000 and you apply a 25% markup, you charge $1,250. The markup is $250.

Margin is calculated on revenue. If you charge $1,250 and your cost is $1,000, your margin is $250 ÷ $1,250 = 20%.

Same job. Same money. 25% markup = 20% margin. The confusion matters because financial targets are usually stated as margins ("we need a 20% gross margin"), but most contractors apply markups. If you're targeting 25% margin and applying a 25% markup, you're leaving money on the table on every job.

Convert Margin to Markup
Markup % = Margin % ÷ (1 − Margin %)
Example: 25% margin target → Markup = 0.25 ÷ 0.75 = 33.3% markup on cost
Convert Markup to Margin
Margin % = Markup % ÷ (1 + Markup %)
Example: 30% markup → Margin = 0.30 ÷ 1.30 = 23.1% margin
The Bottom Line

Set your financial targets in margin (what percentage of revenue is profit after direct costs). Then convert to markup to apply it at the job level. A 20% profit margin target requires a 25% markup. A 30% margin target requires a 43% markup. Most contractors undercharge because they confuse the two.

Industry-Standard Markup Percentages by Trade

These are practical ranges based on typical overhead structures and competitive market rates. Your actual number depends on your overhead — these are starting points, not targets.

Trade Typical Markup Range What It Covers
HVAC 25–50% High equipment costs, specialized labor, seasonal demand swings, warranty obligations on installs
Plumbing 20–40% Materials markup, truck stock, licensing overhead, emergency call frequency — see Plumbing Pricing Guide
Electrical 30–50% Licensed electrician premium, permit costs, inspection overhead, liability exposure
HVAC 25–50% Equipment cost volatility, refrigerant pricing, seasonal demand swings, load calculation overhead — see HVAC Estimate Guide
General Contracting 15–25% Project management overhead, subcontractor coordination, higher revenue base per job
Roofing 20–40% Material cost volatility (shingles, underlayment), crew size, weather dependency — see Roofing Estimate Guide
Painting 30–50% Labor-heavy, lower material costs, crew management, prep time variability — see Painting Estimate Guide
Landscaping 20–35% Equipment depreciation, seasonal labor, plant material markup

These ranges reflect industry surveys and contractor community benchmarks. A contractor at the low end of the range is likely running lean on overhead or competing on price. At the high end, they're typically in higher-demand markets or have established premium positioning.

How to Calculate Markup on Materials and Labor

The cleanest approach: calculate markup separately for materials and labor. They have different cost structures and different risk profiles.

Markup on Materials

Your materials markup needs to cover more than just profit. It needs to cover:

A common approach is a flat materials markup of 20–35% on supplier cost. Some contractors use tiered markups: higher percentage on low-cost items (screws, couplings, fittings), lower percentage on high-cost equipment (HVAC units, panels), because a flat 30% on a $4,000 unit may be more than the market will bear, while 30% on a $40 fitting is easy to absorb.

Materials Billing Price
Billing Price = Supplier Cost × (1 + Markup %)
Example: $800 in copper pipe at 25% markup → Bill $1,000

Markup on Labor

Your labor markup needs to cover your fully-loaded labor cost — not just what you pay the technician per hour. The fully-loaded rate includes:

After calculating fully-loaded cost, add your target profit margin. A common result: if you pay a tech $32/hour, your fully-loaded cost including overhead allocation might be $55–65/hour. Your billing rate then targets $70–90/hour to hit a 20–25% margin.

Simple Overhead Check
Breakeven Rate = Annual Overhead ÷ Billable Hours Per Year
Example: $120,000 overhead ÷ 1,600 billable hours = $75/hour needed just to break even

When to Adjust Your Markup

Standard markup is a starting point. These situations warrant a different number:

↑ Charge More

Emergency Work

After-hours, weekend, same-day calls carry real overtime and logistics costs. 50–100% premium over standard is standard practice. Line it out explicitly.

↓ Negotiate Down

Large Projects

Volume reduces overhead per dollar of revenue. A $50,000 job may warrant a lower margin than five $10,000 jobs — but only if your fixed costs are genuinely spread across the larger base.

↑ Charge More

Difficult Access or Conditions

Confined spaces, high-rise, contaminated materials, unusual hours — anything that slows your crew or adds risk needs to be priced in, not absorbed.

↓ Consider Lower

Repeat Customers

Reduced sales cost, faster site familiarity, lower accounts-receivable risk. A small loyalty discount (5–10%) can be justified by these real savings — but only if you're tracking your customer acquisition cost.

↑ Charge More

Tight Timelines

Rush jobs displace other scheduled work, require expedited material delivery, and often pull crew off higher-margin backlog. Price the displacement cost, not just the labor cost.

↓ Know the Floor

Slow Periods

Reducing markup to fill slow periods can make sense — but only down to your true breakeven rate. A job that doesn't cover overhead is worse than no job. Know your floor before you discount.

How BidStack Automates Markup in Every Quote

The problem with doing markup manually is that it's easy to get wrong at the end of a long day. You build out a quote, total up materials and labor, then add "about 25%" — but you haven't consistently applied it to every line, or you've included tax before the markup, or you've forgotten the delivery charge.

BidStack lets you set your markup rate once — separately for materials and labor — and it applies consistently to every quote you build. You enter your actual costs; BidStack applies your markup and shows the customer the correct billing price. No mental math, no missed lines, no leaving money on the table.

Stop Guessing at Markup

Set your rates once in BidStack. Every quote applies them consistently — materials, labor, the whole job. Professional quotes in 30 seconds, priced right every time.

Build a Quote Free →

$19/mo · No credit card required for trial

FAQ: Contractor Markup

What is the average markup percentage for contractors?
Most contractors mark up jobs between 15% and 50%, depending on trade and job type. HVAC contractors typically charge 25–50%, plumbers 20–40%, electricians 30–50%, and general contractors 15–25%. Your actual markup should cover overhead, labor burden, equipment, insurance, and a target profit margin. If you're not sure what your overhead costs, calculate your break-even first — then add 10–20% profit on top.
What is the difference between markup and margin?
Markup is calculated on cost. Margin is calculated on revenue. A 25% markup on a $1,000 job means you add $250, billing $1,250 total. A 25% margin on that same job means $250 of the $1,250 revenue is profit — which requires a 33% markup on cost. Most contractors think in markup but need to target a specific profit margin. Use the formula: Markup % = Margin % ÷ (1 − Margin %) to convert between the two.
Should I markup materials and labor at the same rate?
Not necessarily. Materials markup typically covers your cost to procure, transport, store, and manage materials — plus a profit component. Labor markup covers overhead allocated to labor hours — insurance, payroll taxes, benefits, and profit. Many contractors apply a higher markup to materials (20–40%) and a separate overhead + profit rate to labor. The key is consistency: know your costs, apply your rates, and don't leave it to gut feel.
How do I know if my markup is too low?
If you're busy but not profitable, your markup is too low. Signs: you're cash-poor after paying suppliers and employees, you're winning most bids (winning too many jobs usually means you're underpriced), or jobs that looked profitable at quote end up breaking even. Calculate your actual overhead costs — all of them — divide by revenue, and add a target profit. If your current markup doesn't cover that, you need to raise it.
Can I charge different markup on emergency vs standard jobs?
Yes, and you should. Emergency work — nights, weekends, same-day service — carries higher real costs: overtime labor rates, after-hours supplier charges, disrupted scheduling. A 50–100% premium over standard rates is common and justifiable. Be transparent: include it as a line item ('Emergency Service Fee') rather than hiding it in an inflated material cost. Customers understand emergency pricing; they don't appreciate hidden markups discovered after the fact.

Related Reading

Contractor Pricing Guide — Free

Markup formulas, overhead calculators, and trade-specific rate benchmarks — straight to your inbox.