I've sat across the table from contractors who've been running their business for two decades and watched their face change when I explained this. It's not a complicated concept, but the consequences of getting it wrong are quietly devastating.
Markup and margin both express "how much more than cost am I charging", but they're calculated differently, and the gap between them grows as your percentages increase.
The Definitions
Markup is a percentage of your cost. You have $10,000 in costs. You add 20% markup. You charge $12,000. Your actual profit is $2,000.
Margin is a percentage of your revenue. That same $2,000 profit on $12,000 in revenue gives you a 16.7% margin, not 20%.
Same dollar amount. Different percentage. Most contractors think about margin but calculate markup, and the difference means they're consistently underpricing every job.
Why This Matters at Scale
On a $20,000 job where you think you're making 20% profit: if you used markup instead of margin, you actually made 16.7%. That's $660 less than you expected on a single job.
On 30 jobs a year at $20K each, that's $19,800 that you thought you made but didn't. On a $400,000 commercial job 'at 20%', the gap between markup and margin is $13,333. That is real, recoverable money.
Most contractors aiming for 25% profit are applying 25% markup, and actually making 20%. On a good year. Before surprises.
The Formula You Need
To hit a target margin, use this formula to find the correct markup:
The Formula
Markup = Margin ÷ (1 − Margin)
Example: To hit 25% margin → 0.25 ÷ (1 − 0.25) = 33.3% markup
| Target Margin | Required Markup | What Most Contractors Apply |
|---|---|---|
| 10% | 11.1% | 10% |
| 15% | 17.6% | 15% |
| 20% | 25.0% | 20% |
| 25% | 33.3% | 25% |
| 30% | 42.9% | 30% |
How to Fix This Permanently
Stop thinking in markup. Start thinking in margin. When you set your pricing, ask: "What percentage of the check I receive do I want to keep?" That's your margin. Use the formula above to find the markup that gets you there.
Build it into your estimating template so you're never doing this math from memory. Your estimate should automatically calculate cost, markup multiplier, and resulting margin, so you can verify before you send the bid.
If you've been adding 20% to your costs and expecting 20% profit, you've been running every job at 16.7% margin. Every job. For however long you've been doing this. Fix it on the next estimate you write.

