Markup vs. Margin in Construction Bids: The Math Error That Eats Profit
One of the persistent mathematical confusions in construction pricing is the difference between markup and margin. They sound similar. People use the terms interchangeably. They're different, and the difference matters every time a bid gets priced.
Markup is a percentage applied to cost to set the selling price. Cost is $100, markup is 20%, selling price is $120. Margin is profit as a percentage of the selling price. Cost is $100, selling price is $120, profit is $20, and margin is $20/$120 = 16.7%. The same $20 of profit is a 20% markup and a 16.7% margin — different numbers describing the same transaction.
The confusion matters because a contractor targeting a 20% profit margin and pricing bids at 20% markup isn't actually achieving their target. They're achieving 16.7% margin. Over 50 projects a year, the gap between "thought we were at 20%" and "actually at 16.7%" is real money — and it compounds with every missed bid and every cost overrun.
The formulas:
Markup and margin formulas
- Markup = (Selling Price − Cost) / Cost — the profit as a percentage of cost
- Margin = (Selling Price − Cost) / Selling Price — the profit as a percentage of selling price
- Selling Price from markup: Selling Price = Cost × (1 + Markup%)
- Selling Price from target margin: Selling Price = Cost / (1 − Margin%)
- Converting markup to margin: Margin% = Markup% / (1 + Markup%)
- Converting margin to markup: Markup% = Margin% / (1 − Margin%)
A few reference points: 10% markup = 9.1% margin. 15% markup = 13.0% margin. 20% markup = 16.7% margin. 25% markup = 20.0% margin. 33.3% markup = 25.0% margin. 50% markup = 33.3% margin. 100% markup (doubling the cost) = 50% margin.
A contractor who wants a 25% gross profit margin needs to apply a 33.3% markup. Applying 25% markup and calling it a 25% margin is off by 5 percentage points — the actual margin is only 20%.
Consider a $1M construction project where the contractor's cost is $800K. At 25% markup, the selling price is $1M (target hit, bid submitted). The gross profit is $200K, which is 20% margin — not 25%.
If the contractor intended 25% margin, the correct pricing is: $800K / (1 − 0.25) = $1,066,667. At that selling price, gross profit is $266,667, and margin is 25%. The contractor who applied 25% markup instead of calculating for 25% margin gave away $66,667 on this one bid.
Over a year of bids where this math error is systematic, the lost revenue adds up. A contractor doing $30M in annual revenue at a target 25% margin (but pricing at 25% markup) is leaving approximately $1.5M on the table in mispriced bids. That's the cost of confusing the two terms.
The cleanest fix: run every bid through the margin formula explicitly. Cost is a known number. Pick the margin target. Selling Price = Cost / (1 − Margin). The markup is a consequence of the math, not the input.
The confusion creeps in at a few places. Contract templates that use "overhead and profit at 20%" without specifying whether it's markup or margin are ambiguous — the two interpretations produce different numbers. Bid-review sheets that compute profit as a percentage of cost train estimators to think in markup, but report financial results as a percentage of revenue (margin), so the two views don't reconcile.
Subcontractor pricing sheets that reference "15% markup" are using the markup framing. Financial reports that show "18% gross margin" are using the margin framing. When these two documents are in front of the same person making a pricing decision, the mental math has to convert. When it doesn't, the pricing drifts.
Get AP insights in your inbox
A short monthly roundup of construction AP + accounting posts. No spam, ever.
No spam. Unsubscribe anytime.
Markup's Legitimate Use
Markup isn't wrong as a concept — it's how a pricing sheet typically presents costs when starting from the cost side. A materials list priced at $45,000 cost with a 15% materials markup generates a sell price of $51,750. This is straightforward and the right tool for a materials line.
The key is being explicit about which frame is in use and what the target is. Markup is fine when applied to individual cost lines with consistent cost categories. Margin is the right frame when assessing whether the overall bid hits profitability targets. The same estimate can be viewed through both lenses at different stages of the bid process — the error is treating them as interchangeable.
On bids that flow through multiple tiers, markups stack. A sub's labor cost of $100 becomes $115 at the sub's 15% markup; the GC applies their own 15% markup to the sub's $115 to get $132.25 on the prime's bid. Two 15% markups stacked don't equal a 30% markup on the underlying cost — they equal 32.25%. The stacking introduces a multiplicative effect, not an additive one.
When a contract limits total markup (some public work and cost-plus contracts do), the stacking effect has to be unwound. If the contract caps markups at 15% across all tiers, the contractor has to decide how to allocate the 15% between tiers — not just let each tier apply 15% independently.
The conversion formula: Margin% = Markup% / (1 + Markup%). So if someone quotes a 30% markup, that's 30% / 130% = 23.1% margin. If someone quotes a 30% margin, the equivalent markup is 30% / 70% = 42.9%.
A useful internal practice: every bid review sheet should show both numbers. The estimator's pricing page shows the markup applied to each cost category. The bid summary page shows the resulting gross margin. When both appear side by side, there's no ambiguity about what's being priced to what.
Markup is cost-based. Margin is price-based. They're not the same percentage on the same transaction, and treating them as interchangeable is the math error that quietly erodes construction profitability. The discipline is: pick the frame deliberately, convert between them explicitly when needed, and make sure the bid review sheet shows both so nobody confuses them under time pressure. Five percentage points of "margin" that turn out to be markup is the difference between a profitable year and a break-even one.
Written by
Marcus Reyes
Construction Industry Lead
Spent twelve years running AP at a $120M general contractor before joining Covinly. Lives in the world of AIA G702/G703, retainage schedules, and lien waiver deadlines. Writes about the construction-specific workflows that generic AP tools get wrong.
View all posts