ChromaWave LogoChromaWave
← All insightsTrades & EstimationJuly 7, 2026 · 3 min read

Markup vs margin: the mistake in half the contractor quotes we see

Marking up 20% does not mean earning 20% — and the gap between those two numbers quietly drains profit from every job. The formulas, a conversion table, and how to make the right math automatic.

Ask a room of contractors what they make on a job priced at 20% markup and most will say "twenty percent." The correct answer is 16.7% — and that missing 3.3 points, applied across every quote a business sends for a year, is often the difference between a company that grows and one that mysteriously never has cash despite being busy.

This isn't an intelligence problem. It's a definitions problem, and it hides inside estimating spreadsheets for years because both numbers feel like "profit."

The two definitions

  • Markup is measured against your cost: how much you added on top.
  • Margin is measured against your price: how much of what the customer pays you actually keep.
Markup = (Price − Cost) / Cost
Margin = (Price − Cost) / Price

Price for a target margin = Cost / (1 − Margin)

Same dollars, different denominators — and the denominator is the whole game.

Watch the gap grow

Take a job that costs you $10,000 in labor, materials, and directs:

  • Apply a 20% markup → price is $12,000 → your margin is 2,000 ÷ 12,000 = 16.7%
  • Want a 20% margin? → price must be 10,000 ÷ 0.80 = $12,500

Quoting $12,000 while believing you're earning 20% means every such job silently underprices by $500. Now the conversion table worth taping to the estimating monitor:

Markup appliedMargin actually earned
10%9.1%
15%13.0%
20%16.7%
25%20.0%
30%23.1%
50%33.3%

And in the direction that matters when your accountant talks targets:

Margin you wantMarkup you must apply
10%11.1%
15%17.6%
20%25.0%
25%33.3%
30%42.9%

The pattern to internalize: to earn a margin, you must mark up by more than that number — and the gap widens fast as targets rise.

Why the mistake compounds

The markup-margin gap rarely travels alone. It stacks with two other estimating habits:

  • Overhead treated as profit. If your markup is supposed to cover overhead and profit, the real margin math is harsher still. A 20% markup yielding 16.7% gross margin, minus 10% overhead, leaves 6.7% — one change order dispute from zero.
  • Labor priced at wages instead of burdened cost. Payroll taxes, insurance, benefits, and non-billable time push true labor cost well above the wage rate. Mark up an understated cost and the error multiplies through every line item.

Underpricing is also self-reinforcing: the lowballed quotes are the ones that win, so the busier you get, the faster the treadmill spins. Being slammed with work and short on cash is the signature symptom.

Making the right math automatic

The fix isn't remembering formulas under deadline pressure at 9 PM — it's making the correct calculation the only path through your tooling:

  1. Standardize on margin as the company's target language (it's what your P&L speaks).
  2. Bake burdened labor rates and overhead recovery into the estimate template, not into a number someone "usually adds at the end."
  3. Make the quote tool compute price from target margin — cost ÷ (1 − margin) — so nobody can accidentally apply the markup number.

That last principle is exactly how we built EstiMate, our estimation platform: margin-first pricing with burdened costs, so the math is right on every quote by construction. And when a trades business has estimating workflows too specific for off-the-shelf tools — price databases, assembly libraries, bid-package generation — custom estimation and workflow automation is one of ChromaWave's core service lines. The spreadsheet got you here; it doesn't have to be what scales.

Get the next one in your inbox

Practical writing on RF tooling, estimation, and AI adoption — a few times a month, no fluff.

Keep reading