Skip to main content
Margin vs Markup: What Contractors Get Wrong

Margin vs Markup: What Contractors Get Wrong

Melissa A. Melissa A.
January 22, 2026

Markup is the percentage you add to your costs. Margin is the percentage of revenue you keep as profit. They are not the same number: a 25% markup only produces a 20% margin. Most contractors who target a 20% profit margin but apply a 20% markup are losing 3.3% on every job without realizing it.

Key Takeaways

  • Markup vs. Margin: Markup is what you add to your costs; Margin is what you keep after the job is done.

  • A 20% markup only results in a 16.7% gross profit margin.

  • Specialty trades should target a 6.9% to 8.5% net profit margin (after overhead) [1].

  • To achieve a healthy baseline, target 10% for overhead and 10% for profit [1].

  • It currently takes construction companies an average of three months to collect payment on invoices [3].

What is Markup?

Markup is the percentage you apply to your costs to ensure you aren’t just breaking even. It answers the question: “What percentage am I adding to my costs to set my bid?”

The Formula:

Selling PriceDirect CostsDirect Costs×100\dfrac{\text{Selling Price} - \text{Direct Costs}}{\text{Direct Costs}} \times 100

The Example: You are bidding on a commercial lighting upgrade. After wire, materials, and burdened labor, your total direct cost is $10,000. To remain competitive while covering overhead, you apply a 25% markup.

  • Markup Calculation: 25% of $10,000 = $2,500

  • Selling Price: $10,000 (cost) + $2,500 (markup) = $12,500 Total bid

What Is Margin (aka Gross Profit Margin)?

Think of margin as your breathing room. It answers the question: “Of every dollar the customer pays me, how many cents do I actually keep?”

The Formula:

RevenueDirect CostsSelling Price×100\dfrac{\text{Revenue} - \text{Direct Costs}}{\text{Selling Price}} \times 100

The Reality Check: Let’s look at that same $12,500 bid. Your profit is $2,500.

  • Margin Calculation: $2,500 / $12,500 = 20% Margin

  • The Result: Even though you “marked up” the job by 25%, your margin is only 20%. You kept 20 cents of every dollar.

Check your own numbers. Plug your job cost into the calculator below to see the gap between your markup and your actual margin.

Why Markup Doesn’t Equal Margin

The math trip-up happens because you’re comparing the same $2,500 profit to two different numbers. Since your selling price is always higher than your cost, that $2,500 will always look like a smaller percentage when you calculate it as margin.

If you want this MarginYou must use this Markup
10%11.1%
15%17.6%
20%25.0%
25%33.3%
30%42.9%

Side-by-side infographic showing markup breakdown at 25% ($2,500 ÷ $10,000) versus margin breakdown at 20% ($2,500 ÷ $12,500), illustrating why the same profit produces two different percentages

The ECmag report finds that 38% of all plans received by contractors are incomplete [4]. If you are operating on that 20% margin from the example above, a single miscalculation or a week-long delay due to incorrect specs can start to eat into those margins.

If you need a 20% margin to cover your overhead, but you only apply a 20% markup to your materials, you are losing 3.3% of your profit on every single job. On a $100,000 project, that’s $3,300 gone just because of a calculator error.

Why material price volatility makes these numbers critical

The market is shifting fast. Construction input prices rose at a 6% annualized rate in early 2025, and they aren’t slowing down [3]. Essential materials like copper wire, cable, and switchgear have seen some of the highest and most volatile price hikes in recent years [3].

Three Major Risks to Your 2026 Profitability:

  1. Material Price Volatility: If you are bidding jobs using material prices from even six months ago, you are underbidding. These outdated costs eat into your margins before the project even starts. Keeping a centralized price catalog updated from actual vendor invoices is the simplest way to close this gap.

  2. The “20/20” Math Trap: This is the most expensive mistake a contractor can make. Aiming for a 20% profit margin but accidentally applying a 20% markup results in a 16.7% margin. In real dollars, that means you walk away with 16% less cash than you originally intended.

Infographic showing the 20/20 math trap: aiming for 20% margin but applying 20% markup results in only 16.7% margin — $3,300 lost per $100,000 job

  1. The “Wait Time” Tax: With average collections now stretching past 90 days, your cash is often locked up while your bills are due. To stay afloat, many contractors are now increasing their bids by up to 10% just to cover the cost of waiting to get paid [3].

Contractors who track actual costs against estimates in real-time achieve 15-25% higher margins than those who wait until the project is over to check the numbers [1]. VoltPro shows you your exact margin and profit as you build the estimate, so you know whether the numbers work before you hit send.

Conclusion

Understanding the difference between markup and margin is the difference between owning a job and owning a business. Markup gets you the bid. Margin ensures your business keeps growing.

The math doesn’t change, but the market does. If you are still calculating markup by hand or in a spreadsheet, try our free electrical estimate template to get the formulas right. When you are ready for automatic margin tracking and branded proposals, VoltPro picks up where the spreadsheet leaves off.

Resources

Try It Yourself

Enter your cost and the profit margin you want to keep.

Total job cost (materials + labor + overhead)

$

The percentage of the selling price you keep as profit

%
Profit Margin: $2,500.00 (20.0%)
Cost: $10,000.00
Selling Price$12,500.00
- Cost$10,000.00
Profit Margin (% of selling price)$2,500.00 / 20.0%
Required Markup (% added to cost)25.0%

Most electrical contractors target 20-25% gross margin. Specialty trades often aim for 30%+.

Frequently Asked Questions

Accurate job costing. If you don't know exactly what your labor "burden" (taxes, insurance, benefits) is, your markup is just a guess.