Cooperbuild.AI

Insight No. 29

Markup vs Margin in Construction: How GCs Price Jobs

Markup vs margin in construction: formulas, a conversion table, and how GCs set markup from overhead so the margin they bid is the margin they earn.

Published
Reading time
6 min read
Author
Adam Hicks
On this page8 sections
  1. What is the difference between markup and margin in construction?
  2. How do you convert markup to margin (and back)?
  3. Why does mixing them up lose money?
  4. How do you set your markup from your overhead?
  5. Should a GC mark up subs, materials and labor differently?
  6. How do you know if you actually hit your margin?
  7. Where CooperBuild AI fits
  8. FAQ
  9. What is the difference between markup and margin in construction?
  10. What margin does a 20% markup give you?
  11. How do I calculate a bid price from a target margin?
  12. How do I figure out what markup my construction company needs?
  13. Should overhead be included in direct job cost before markup?

By Adam Hicks, CooperBuild AI · November 7, 2026

Markup vs margin in construction comes down to what you divide by. Markup is profit as a percentage of your cost; margin is profit as a percentage of the selling price. A 20% markup on a $100,000 job gives a $120,000 price, but that is only a 16.7% margin, so a GC who "marks up 20%" thinking they are earning 20% is short on every bid.

This guide gives you the formulas, a conversion table, a way to build your required margin from your own overhead, and how to check that the margin you bid is the margin you actually earned. For the cost side, see our construction job costing guide.

What is the difference between markup and margin in construction?

Markup is the amount you add on top of direct job cost, stated as a percentage of that cost.

  • Markup % = (Price − Cost) ÷ Cost
  • Price = Cost × (1 + Markup)

Margin (gross margin) is the share of the selling price left after direct job cost, stated as a percentage of price.

  • Margin % = (Price − Cost) ÷ Price
  • Price = Cost ÷ (1 − Margin)

Both describe the same gross profit dollars. Because price is always bigger than cost, the margin percentage is always smaller than the markup percentage for the same job. Markup can go above 100%. Margin can't.

Direct cost here means money that only exists because the job exists: subcontracts, materials, burdened field labor, equipment rental, permits, dumpsters. Office rent, the estimator's salary and your insurance program are overhead, and they get covered by the margin, not by the direct cost line.

How do you convert markup to margin (and back)?

Two formulas cover it:

  • Margin = Markup ÷ (1 + Markup)
  • Markup = Margin ÷ (1 − Margin)

Here's the conversion table most estimators end up taping to the monitor:

Markup on cost Margin on price
10% 9.1%
15% 13.0%
20% 16.7%
25% 20.0%
33.3% 25.0%
42.9% 30.0%
50% 33.3%
66.7% 40.0%
100% 50.0%

The gap widens as the numbers climb. At 10% the difference is under a point. At 50% markup you're earning a third of the price, not half.

Why does mixing them up lose money?

Take a job with $80,000 of direct cost (illustrative numbers):

  • At a 20% markup: price = $80,000 × 1.20 = $96,000. Gross profit is $16,000, a 16.7% margin.
  • At a 20% margin: price = $80,000 ÷ 0.80 = $100,000. Gross profit is $20,000, a 25% markup.

Same "20%," a $4,000 difference on one bid. If your overhead runs 15% of revenue, the first price leaves you under 2% net before anything goes wrong in the field. One bad buyout or an unbilled change and the job is underwater.

This is one of the most common pricing mistakes contractors talk about. A recent r/Contractor thread titled "I kept underpricing jobs for 2 years until I learned the difference between markup and margin" is exactly this problem, and contractor licensing exam prep courses treat it as a core pricing concept for the same reason.

How do you set your markup from your overhead?

Don't borrow a number from a forum. Build it from your own books:

  1. Pull 12 months of overhead from your P&L. Everything that isn't a direct job cost: office and admin salaries, a real salary for the owner, rent, vehicles not charged to jobs, insurance not charged to jobs, software, accounting, marketing.
  2. Divide overhead by revenue for the same period. That's your overhead percentage. Example: $600,000 overhead on $4,000,000 revenue = 15%.
  3. Pick a net profit target as a share of revenue. Say 8%.
  4. Add them to get your required gross margin. 15% + 8% = 23%.
  5. Convert to the markup your estimators apply. 0.23 ÷ 0.77 = 29.9% markup, or a cost multiplier of about 1.30.

Every average job needs to hit that margin. Small, short or high-risk jobs usually need more, because overhead doesn't shrink just because the contract did.

If your books don't split direct cost from overhead cleanly, fix that first. A margin target built on mixed-up cost codes is just a guess with decimals.

Should a GC mark up subs, materials and labor differently?

Plenty of GCs do, and that's fine, as long as the blended number hits your required margin.

  • Subcontracts: you're coordinating, scheduling, carrying payment risk and standing behind the work, so a markup on sub costs is normal. The right rate depends on your contract type and market.
  • Materials: some contractors run a lower markup on items owners can price online and a higher one on everything else.
  • Self-perform labor: price from a fully burdened rate (wages plus payroll taxes, workers' comp, insurance and benefits) before any markup. Marking up bare wages hides real cost inside your "profit."

On cost-plus or GMP work, the fee and markup rules are usually set by the contract, so read the fee, general conditions and change order markup language before you bid. On public work, the contract or the agency's rules may cap what you can add on changes.

Whatever you do line by line, check the blended margin on the whole estimate before it goes out, not just the markup you typed into each row.

How do you know if you actually hit your margin?

Bid margin is a promise. Earned margin is what's left after the job.

  • Compare estimate to job cost by cost code. If the estimate and the budget use different codes, you can't tell where the margin went. Our job costing guide covers a simple cost code setup.
  • Track committed costs, not just actuals. Signed subs and approved POs are already spoken for. See committed costs vs actual costs.
  • Watch margin fade on the WIP. If projected gross profit drops month after month, the bid or the buyout was off. The construction WIP report guide shows how to read it.
  • Price every change order with the same math. Changes billed at cost, or not billed at all, are a quiet margin leak. See our change order process guide.

Close the loop after each job. If closed jobs keep landing three points under bid, adjust the multiplier, not your hopes.

Where CooperBuild AI fits

Most margin problems aren't math problems; they're handoff problems. The estimate lives in one file, the budget in another, actuals in QuickBooks, and nobody lines them up until the job's done. CooperBuild AI keeps estimates, budgets, change orders, billing and built-in accounting (GL, AP and AR) in one system, connects to QuickBooks Online if that's where your books live, and its assistants help you compare bid margin to earned margin while the job is still running.

If you want to see your bid margin and your real margin side by side on the next job, get started with free credits, no credit card needed.

FAQ

What is the difference between markup and margin in construction?

Markup is profit as a percentage of direct job cost. Margin is profit as a percentage of the selling price. The same profit dollars always give a smaller margin percentage than markup percentage.

What margin does a 20% markup give you?

A 20% markup gives a 16.7% margin. The formula is margin = markup ÷ (1 + markup), so 0.20 ÷ 1.20 = 0.167.

How do I calculate a bid price from a target margin?

Divide direct cost by one minus the target margin. For a 25% margin on $60,000 of direct cost, the price is $60,000 ÷ 0.75 = $80,000.

How do I figure out what markup my construction company needs?

Add your overhead percentage of revenue to your net profit target to get your required gross margin, then convert it with markup = margin ÷ (1 − margin). For example, 15% overhead plus 8% profit is a 23% margin, which is about a 30% markup.

Should overhead be included in direct job cost before markup?

No. Direct cost should only include costs that exist because of the job, and the margin covers overhead and profit. Charging overhead inside direct cost and then marking it up again makes the numbers hard to compare from job to job.

This article is general information for contractors, not accounting, tax or legal advice. Confirm pricing, fee and markup rules in your contracts and with your CPA.

Written by

Adam Hicks

Get started

Run your next job in Cooper.

Start on free credit and run a real job this week, or book a 30-minute demo on your own spec set, estimate or card statement. Either way, no card and no contract.

$20 in free credits, no card needed