A 20% markup is not a 20% margin. Markup is profit divided by cost. Margin is profit divided by the selling price. Mark a $400,000 job up 20% and it sells for $480,000 with $80,000 of gross profit — a 16.7% margin, not 20%. A builder who sets overhead and profit targets as a percentage of revenue but prices jobs as a percentage of cost loses that 3.3-point gap on every contract. The job still shows a profit. It is just not the profit that was planned, and nothing on the estimate says so.

Same dollars, different denominators

The markup vs margin construction problem is not a vocabulary problem. Both numbers describe the same gross profit. They divide it by different things, and the thing they divide by is where builders get caught.

  • Markup — gross profit ÷ direct job cost. Used when building a price up from cost. It is the percentage that sits in the estimate, applied to labor, materials and subs.
  • Margin — gross profit ÷ contract price. Used when reading results. It is the percentage that shows on a profit and loss statement, and the one overhead and net profit are usually measured against.

Because price is always bigger than cost, margin is always smaller than markup for the same dollars. The gap is small at low percentages and widens fast as the numbers climb.

The conversion table

Margin = markup ÷ (1 + markup). Here is what common markups actually produce as gross margin:

  • 10% markup — 9.1% margin
  • 15% markup — 13.0% margin
  • 20% markup — 16.7% margin
  • 25% markup — 20.0% margin
  • 30% markup — 23.1% margin
  • 35% markup — 25.9% margin
  • 40% markup — 28.6% margin
  • 50% markup — 33.3% margin

Going the other way, markup = margin ÷ (1 − margin). A 15% target margin needs a 17.6% markup. A 20% margin needs 25%. A 25% margin needs 33.3%. A 30% margin needs 42.9%. These are not rules of thumb. They are fixed arithmetic, and they are worth printing and taping above whatever screen the estimates get built on.

Where the gap goes: one year, worked through

Take a builder doing $3 million a year in contract revenue. Overhead — office staff, insurance, trucks, rent, software, the owner's salary — runs $360,000, which is 12% of revenue. The owner wants 8% net profit. That means jobs need to produce 20% gross margin: 12% to cover overhead plus 8% to keep.

The owner says "20%" and the estimator applies 20% to cost. Every job comes in at 16.7% gross margin instead of 20%. On $3 million of revenue that is $500,000 of gross profit instead of $600,000. Overhead still takes its $360,000. Net profit lands at $140,000 — 4.7% — instead of the $240,000 that was planned.

No single job looks wrong. Every one of them made money. The estimate says 20%, the job closes out under budget on cost, and the only place the $100,000 shows up is the year-end P&L, where it reads as "a slow year" or "overhead crept up". Nothing crept. The target was stated in one unit and executed in another.

Three places the confusion compounds

The base gap is bad enough. Three ordinary events make it worse, because each one is measured against a profit that is already smaller than the builder thinks it is.

Discounts off the price

The $400,000 job priced at $480,000 has $80,000 of profit in it. A client pushes back and the builder takes 10% off to close — $48,000. Price drops to $432,000, cost stays at $400,000 and profit falls to $32,000. A 10% discount just removed 60% of the gross profit and left a 7.4% margin. Discounts come off the price, which is the margin denominator, but they come entirely out of the profit, which is the small number.

Change orders priced on cost

Change orders tend to get priced fast, often on site, often by someone other than the estimator. If the standard change order markup is 15% and it gets treated as 15% margin in the job budget, every change order dilutes the job's overall margin a little further. On a job with a long tail of changes, that adds up — and change orders are exactly where builders expect to recover, not lose, profit. If subs are marking up their own change order work before it reaches the builder, the builder's markup applies to an already marked-up number, which is fine as long as everyone knows whose margin is whose.

Cost overruns

A 5% overrun on $400,000 of cost is $20,000. Against a planned $96,000 of profit (20% margin) that would sting. Against the real $80,000 of profit (20% markup) it is a quarter of the job's gross profit gone. Overruns are measured against actual profit, and actual profit is smaller than the budget assumed.

Fixing it: decide in margin, price in markup

There is nothing wrong with pricing in markup. Estimates are built from cost up, and markup is the natural way to do that. The error is mixing the two without converting. The fix is a short sequence done once and then applied everywhere.

  1. Pull last year's overhead from the books and divide it by last year's revenue. That is overhead as a margin percentage.
  2. Add the net profit margin the business actually needs. The total is the target gross margin.
  3. Convert that target to a markup with margin ÷ (1 − margin). A 20% target becomes 25%. A 22% target becomes 28.2%.
  4. Put the converted markup in the estimating template as the default, and label the column "markup on cost" — not "profit" or "O&P", which invite the wrong reading.
  5. Show both numbers on every estimate and every change order: the markup applied and the resulting margin on price. If they ever read the same, something is wrong.
  6. Review job results in margin terms, against the same target margin set in step 2, so the plan and the result use the same denominator.

Step 5 does most of the work. When the estimate says "25% markup / 20% margin" on the same line, nobody in the office can confuse them, including the person who agrees to a discount on the phone.

What software fixes, and what it does not

Software does not choose a margin. It cannot tell a builder what overhead really costs or what net profit the business needs to survive a bad year. Those are decisions, and they come from the books.

What software can do is stop the two numbers from living in different places. The usual failure is structural: markup sits in an estimating spreadsheet, margin sits in the accounting system, and nobody lines them up until the year is over. In BuilderSolve, line-item estimating on a shared rate library means the markup is applied the same way on every estimate, instead of being retyped per job. The job budget is built from that estimate, and budget vs. actual tracking compares what was planned against what was spent while the job is still running. BuilderSolve reads QuickBooks one way — QuickBooks stays the book of record, so the overhead and revenue figures in step 1 come from the same place the accountant uses.

For builders who would rather not do the setup themselves, the BuilderSolve estimating and finance team can work the numbers from the existing books, build the conversion into the templates and check change orders against the target margin as they come in. It is still arithmetic. It just gets done every time instead of when someone remembers.

What to do this week

Open the last three closed jobs. For each one, divide gross profit by the final contract price, change orders included. Compare that number to the percentage the owner would have said the business "makes". If the job margins are running three or four points under the stated target, the gap is almost certainly this: a margin goal priced as a markup. Then do steps 1 through 3 above, change the default markup in the estimating template and add a margin line to the next estimate that goes out. It takes an afternoon. It is the cheapest raise a builder will ever give themselves.

Common questions

what is the difference between markup and margin in construction

Markup is gross profit divided by job cost; margin is gross profit divided by the selling price. They describe the same dollars with different denominators, so margin is always smaller. A $400,000 job marked up 20% sells for $480,000 with $80,000 profit. That is a 20% markup but only a 16.7% margin, because $80,000 is divided by $480,000 instead of $400,000.

what markup do I need for a 20% margin

A 25% markup on cost produces a 20% gross margin. The formula is markup = margin ÷ (1 − margin), so 0.20 ÷ 0.80 = 0.25. Other common targets: a 15% margin needs a 17.6% markup, a 25% margin needs 33.3% and a 30% margin needs 42.9%. Convert once, set it as the estimating default and label it clearly.

how do I convert markup to margin

Divide the markup by one plus the markup. A 20% markup is 0.20 ÷ 1.20, which is 16.7% margin. A 30% markup is 0.30 ÷ 1.30, or 23.1%. A 50% markup is 0.50 ÷ 1.50, or 33.3%. The gap between the two numbers widens as the percentages rise, so the error matters more on higher-margin work like remodels than on thin-margin new construction.

should contractors use markup or margin

Use both, for different jobs. Set business targets as margin, because overhead and net profit are measured against revenue on the P&L. Price estimates with markup, because estimates are built up from cost. The mistake is using the same percentage for both without converting. Showing markup and resulting margin side by side on every estimate prevents it.

why does a discount hurt margin so much

A discount comes off the price but lands entirely on the profit, which is a much smaller number. On a $480,000 job with $80,000 of profit, a 10% discount removes $48,000 — 60% of the profit — and drops the margin from 16.7% to 7.4%. Before agreeing to any discount, recalculate the margin on the reduced price, not the percentage off.