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.
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:
- Your time to source, order, and pick up materials
- Freight, delivery, or fuel costs
- Storage and carrying costs for truck stock
- Waste factor (typically 5–15% depending on trade)
- Price risk — materials ordered today at one price, job done in 30 days at potentially a different cost
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.
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:
- Base wage or salary
- Payroll taxes (FICA, FUTA, SUTA — typically 12–18% of wages)
- Workers compensation insurance (varies by trade — electrical can run 8–15% of wages)
- General liability insurance allocated to labor
- Benefits, if provided
- Paid time off, holidays, sick days (add roughly 10–15% to effective hourly rate)
- Overhead allocation — rent, vehicle costs, tools, admin
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.
When to Adjust Your Markup
Standard markup is a starting point. These situations warrant a different number:
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.
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.
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.
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.
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.
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
Related Reading
Contractor Pricing Guide — Free
Markup formulas, overhead calculators, and trade-specific rate benchmarks — straight to your inbox.