Markup and margin are different numbers. Markup is profit divided by cost. Margin is profit divided by price. Price an estimate with one and report results with the other, and every job comes in short of plan.

The Two Formulas

  • Markup = (price − cost) ÷ cost
  • Margin = (price − cost) ÷ price

The profit dollars are identical. The denominator changes. Because price is always larger than cost, margin is always the smaller percentage. Your bank, your surety, and your CPA read margin. Your estimating sheet often runs on markup.

The confusion starts in the supplier world. Distributors quote you cost plus a percentage, so contractors copy the habit: "we add 30% to everything." That works on a materials invoice. It fails when the same 30% is compared to a P&L, where gross margin is calculated on revenue. The wider the markup, the wider the gap. At 50% markup, margin is only 33.3%.

Worked Example: One $12,000 Job

Illustrative numbers. A residential reroof with $12,000 in direct cost: materials, burdened labor, dump fees, and permits. The goal is a 30% gross margin.

30% markup on cost 30% margin on price
Price to customer $15,600 $17,143
Gross profit $3,600 $5,143
Actual gross margin 23.1% 30.0%
Difference per job $1,543

The margin price is cost divided by 0.70 ($12,000 ÷ 0.70 = $17,143). The markup price is cost times 1.30 ($15,600). Same job, same crew, $1,543 apart.

What It Does to Net Profit

Gross margin is not what you keep. Assume overhead runs 18% of revenue (office, trucks, insurance, software, owner salary).

  • Priced at 30% markup: $3,600 gross less $2,808 overhead (18% of $15,600) leaves $792, a net margin of 5.1%.
  • Priced at 30% margin: $5,143 gross less $3,086 overhead (18% of $17,143) leaves $2,057, a net margin of 12.0%.

That is a $1,265 difference in net profit per job. Across ten jobs, $12,650. The contractor using markup is not doing worse work. The formula is doing it for them.

Overhead is the reason this matters more than it looks. Overhead does not shrink when the price is low. Rent, insurance, and software cost the same either way, so every point of missing margin comes straight out of net profit. A 7-point gross margin shortfall turned a 12% net into a 5% net in the example above, which is a 61% cut in profit from one formula.

Markup Needed for Each Target Margin

Markup required = margin ÷ (1 − margin).

Target gross margin Markup on cost required
20%25.0%
25%33.3%
30%42.9%
35%53.8%
40%66.7%
💡 Work backward from net: Add the overhead percentage you carry to the net profit you want. At 18% overhead and a 10% net target, price for a 28% gross margin, which is a 38.9% markup (0.28 ÷ 0.72).

Fixing It in Your Estimates and Books

  1. Pick one language. Quote targets in margin. Convert to a markup multiplier only inside the estimating sheet, with the table above pinned to it.
  2. Check the markup fields in your software. A percentage markup applied to cost, including billable expense markup in QuickBooks Online, is markup, not margin. Confirm what your tool calculates before trusting the label.
  3. Compare estimate to actual by job. Gross margin by job, from QuickBooks job costing, tells you whether the price held once real costs landed. If actual margin lands 6 to 7 points below target on every job, look at the formula before the crews.
  4. Update prices when costs move. A margin target only holds if cost inputs are current. See material cost increases and job costing.

For the full cost side of the equation, including labor burden and overhead allocation, read the true cost of a roofing job.