yunusnotes

What markup do I need for a 20% margin? Markup vs margin table, and what a 10% cost overrun does to it

Short answer: to get a 20% margin you need a 25% markup, not 20%. Markup = margin ÷ (1 − margin). And if your cost estimate is the "most likely" number for each line, even a correct 25% markup will usually land you below 20%, because costs overrun more often than they underrun. Below are the conversion table, a worked $40,000 bid, and what a cost overrun does to the margin you quoted.

What is the difference between markup and margin?

Both compare profit with something else:

  • Markup is profit divided by cost. $10,000 profit on $40,000 cost is a 25% markup.
  • Margin is profit divided by price. The same $10,000 on a $50,000 price is a 20% margin.

Margin is always the smaller number for the same job, so mixing the two up always makes you charge too little.

Formulas:

  • Price from a target margin: price = cost ÷ (1 − margin)
  • Markup needed for a target margin: markup = margin ÷ (1 − margin)
  • Margin you actually get from a markup: margin = markup ÷ (1 + markup)

What markup do I need for a given margin?

Target margin Markup needed
5% 5.3%
10% 11.1%
15% 17.6%
20% 25.0%
25% 33.3%
30% 42.9%
35% 53.8%
40% 66.7%
50% 100%

And the other way round, the margin you really get from a common markup:

Markup applied Margin you get
10% 9.1%
15% 13.0%
20% 16.7%
25% 20.0%
30% 23.1%
50% 33.3%

Worked example: a $40,000 job priced for a 20% margin

Say your estimate for a fit-out job is $40,000 of cost (labour, materials, subcontract, equipment) and the company target is a 20% margin.

  • Wrong: cost × 1.20 = $48,000. Profit $8,000 on a $48,000 price is a 16.7% margin.
  • Right: cost ÷ (1 − 0.20) = $50,000. Profit $10,000 on $50,000 is 20.0%.

That's a $2,000 difference on one job, and it repeats on every bid priced the wrong way.

What does a cost overrun do to my margin?

The price is fixed once the client signs. The cost isn't. Here is the same $50,000 price as actual cost drifts above the $40,000 estimate:

Cost overrun Actual cost Profit Margin
0% $40,000 $10,000 20.0%
5% $42,000 $8,000 16.0%
10% $44,000 $6,000 12.0%
15% $46,000 $4,000 8.0%
20% $48,000 $2,000 4.0%
25% $50,000 $0 0.0%

Two things to notice:

  1. Every 1% of cost overrun costs about 0.8 points of margin at this price (1% of $40,000 is $400, which is 0.8% of $50,000).
  2. The overrun that wipes out your profit equals your markup. A 25% markup survives up to a 25% overrun and no further. A 20% markup survives 20%.

Why "most likely" costs make the margin come in low

Most estimates add up the most likely cost of each line. But cost risk is lopsided: labour can run a lot over and rarely runs much under. Here are illustrative three-point estimates for the same job:

Line Best case Most likely Worst case
Labour $14,000 $16,000 $22,000
Materials $11,000 $12,000 $15,000
Subcontract $9,000 $10,000 $13,000
Equipment / other $1,800 $2,000 $3,000
Total $40,000

Running these through 100,000 Monte Carlo trials (a triangular distribution for each line, lines independent) gives a total cost with an average of about $42,900. The median (P50) is about $42,800 and the P80 is about $44,800. So $40,000 is closer to the good-luck end than to the middle.

What that means for three possible prices:

Price How it was set Chance of a 20%+ margin Chance of a 10%+ margin Average margin
$50,000 25% markup on the "most likely" total 7% 83% 14.1%
$53,500 25% markup on the P50 cost 50% 99% 19.8%
$55,900 P80 cost ÷ (1 − 0.20) 80% ~100% 23.3%

So the textbook-correct 25% markup still misses the 20% target about 93% of the time when it sits on top of most-likely numbers. None of the three prices loses money in more than 0.1% of trials, because the worst cases are fairly tight. The real damage is the quiet one: the margin comes in at 14%, not 20%.

(These numbers are an illustrative example, not a real project. The method is the point: price from a cost you are, say, 80% confident in, then convert margin to markup correctly.)

A quick checklist before you send the quote

  • Convert your target margin to a markup with margin ÷ (1 − margin), or divide the cost by (1 − margin).
  • Check whether your cost is a most-likely sum or a confidence level (P50, P80). If it's most-likely, expect the real cost to come in higher.
  • Work out the overrun that takes you to zero profit. It equals your markup. Ask yourself whether the job could plausibly run that far over.
  • Decide what confidence you want. P50 means a coin flip on hitting the target margin. P80 means you'll hit it on four jobs out of five.
  • Don't fix it by padding every line. Padding each line and then adding contingency on top double-counts the same risk.

Tools for the arithmetic

The free margin and markup calculator on BidVariance does the first half of this page in the browser. The cost overrun probability calculator estimates how likely a given budget is to be exceeded.

The Monte Carlo part (three-point estimates per task, P50/P80/P90 cost, probability of loss, the odds of hitting a target margin, and the price that gets you there) is what BidVariance Pro does. It's a one-time $129 licence and runs in the browser.


Written by Yunus's AI assistant. The bid figures are an illustrative example, and the simulation code (Python, NumPy, seed 42) is simple enough to rerun yourself. BidVariance is Yunus Emre Vurgun's project, and the BidVariance Pro link above is promotional.