SKIP TO CONTENT
25% MARKUP IS NOT 25% MARGINEVERY UNDERBID STARTS WITH THIS CONFUSIONKNOW YOUR NUMBERS OR YOUR NUMBERS WILL KNOW YOUCFOS FOR COMMERCIAL SUBS $1M–$12M25% MARKUP IS NOT 25% MARGINEVERY UNDERBID STARTS WITH THIS CONFUSIONKNOW YOUR NUMBERS OR YOUR NUMBERS WILL KNOW YOUCFOS FOR COMMERCIAL SUBS $1M–$12M
THE CONSTRUCTION CFO BOOK A CALL
FINANCIAL FUNDAMENTALS · C.F.O.S EXECUTION LAYER

MARKUP VS MARGIN: THE CONFUSION THAT CAUSES UNDERBIDDING.

QUICK ANSWER

Markup is calculated on cost. Margin is calculated on revenue. A 25% markup gives you a 20% gross margin — not 25%. If you're bidding jobs thinking your markup equals your margin, you're underpricing every job by the difference. On a $500,000 contract, confusing a 25% markup for a 25% margin means you're $27,500 short of your target profit before the job even starts.

This is one of the most common and costly mistakes in subcontractor estimating. It's not a complex math problem — but it is a consistent one. The formulas are different, the percentages don't match, and mixing them up at bid time is how profitable-looking jobs turn into breakeven jobs or worse.

BY JOSH LUEBKER Published: May 2026 Updated: May 2026
THE DEFINITIONS

WHAT EACH ONE ACTUALLY MEANS.

MARKUP — CALCULATED ON COST
Markup % = (Revenue − Cost) ÷ Cost × 100
You start with your direct cost and add a percentage on top of that cost to get to your price. A $100,000 job cost with 25% markup = $125,000 revenue. The $25,000 profit divided by the $100,000 cost = 25% markup.
MARGIN — CALCULATED ON REVENUE
Margin % = (Revenue − Cost) ÷ Revenue × 100
You start with your revenue and express profit as a percentage of that revenue. Same job: $125,000 revenue, $100,000 cost. The $25,000 profit divided by the $125,000 revenue = 20% gross margin — not 25%.

The critical point: On the same job, with the same numbers, markup is 25% and margin is 20%. They are not the same number. If you target a 25% gross margin but calculate your bids using 25% markup, you're 5 points short on every job — before overhead and any field variance hits.

THE CONVERSION TABLE

WHAT MARKUP EQUALS IN ACTUAL MARGIN.

Use this table when bidding. The left number is the markup you apply to your cost. The right number is the gross margin percentage that produces on the resulting revenue.

10%
↓
9.1%
Markup → Margin
15%
↓
13.0%
Markup → Margin
20%
↓
16.7%
Markup → Margin
25%
↓
20.0%
Markup → Margin
30%
↓
23.1%
Markup → Margin
33%
↓
25.0%
Markup → Margin
43%
↓
30.0%
Markup → Margin
67%
↓
40.0%
Markup → Margin

To hit a 25% gross margin target, you need a 33.3% markup on cost. Most subcontractors using a 25% markup are actually producing a 20% gross margin — and wondering why the P&L never hits their targets.

THE REAL-WORLD IMPACT

WHAT THIS CONFUSION COSTS ON A REAL JOB.

Let's run it on a $1.2M electrical subcontract. Direct cost is $900,000. The estimator targets 25% gross margin and applies 25% markup instead of 33%.

WHAT HAPPENED (25% MARKUP)
Direct Cost: $900,000
Markup: $225,000 (25% of cost)
Contract Price: $1,125,000
Gross Profit: $225,000
Actual Gross Margin: 20.0%
WHAT WAS NEEDED (25% MARGIN)
Direct Cost: $900,000
Markup: $300,000 (33.3% of cost)
Contract Price: $1,200,000
Gross Profit: $300,000
Actual Gross Margin: 25.0%

The gap: $75,000 per job. On a $5M revenue book with 4–5 projects at this scale, that's $300,000–$375,000 in margin left on the table annually because of one formula confusion. That's not overhead. That's not field variance. That's a math error repeated on every bid.

THE OVERHEAD LAYER

WHY THE MATH GETS WORSE WHEN OVERHEAD IS IN THE MIX.

The markup-vs-margin confusion compounds when overhead is factored in. If your overhead rate is 12% of revenue and you're already 5 points short on gross margin due to the markup confusion, you may be running negative net profit on jobs that appear to have healthy gross margins in the estimate.

The full picture: A job estimated at 20% gross margin (from a 25% markup) with a 12% overhead rate leaves 8% for net margin before any field variance. If labor runs 5% over — common on commercial work — net profit is 3%. One more overrun and you're at breakeven. That's not a performance problem. It's an estimating math problem compounded by overhead miscalculation.

Know your overhead rate as a percentage of revenue — not a lump dollar amount added to bids
Use margin targets in your estimating — not markup percentages — to ensure your bid price produces the gross margin you need after overhead
Reconcile estimated margin to actual job cost variance monthly — if the margin miss is systematic across multiple jobs, the estimating formula is wrong
Compare your gross margin % to trade benchmarks — civil contractors should target 21–25%, electrical 25–29%, concrete 21–24%
COMMON QUESTIONS

FREQUENTLY ASKED.

Markup % = Margin % ÷ (1 − Margin %). To hit a 25% gross margin: 0.25 ÷ (1 − 0.25) = 0.25 ÷ 0.75 = 0.333 = 33.3% markup on cost. To hit 20% margin: 0.20 ÷ 0.80 = 25% markup. Save this formula in your estimating template so the conversion is automatic.
Consistency matters — but the problem isn't inconsistency, it's the language. Your P&L reports gross margin as a percentage of revenue. Your banker looks at gross margin percentage. Your trade benchmarks are expressed in margin. If your estimating uses markup, you need to translate before comparing results. Most owners don't do that translation consistently — which is why the confusion compounds at reporting time.
Gross margin benchmarks vary by trade and revenue band. For commercial subcontractors in the $3M–$8M range: civil and concrete typically target 21–25%, electrical 25–29%, SWPPP and specialty trades 26–30%. These are gross margin percentages — revenue minus direct job cost, before overhead. CFOS tracks your actual gross margin monthly against trade benchmarks in the CEO Report so you can see whether your bids are landing where they need to.
CFOS aligns job costing with your estimating structure so that every bid assumption gets tested against what actually happened in the field. If your labor estimate is consistently 8% over actual on a particular phase, that shows up in the monthly job cost variance report — and your next bid gets adjusted. Over time, your estimates get tighter because they're calibrated against real field data instead of industry averages or gut feel.
Josh Luebker — The Construction CFO
Josh Luebker
Fractional CFO · The Construction CFO

Former commercial construction project manager and master electrician. Managed 150+ projects totaling $300M+ through Sulphur Prairie Management. About Josh →  |  LinkedIn →

RELATED RESOURCES
CFOS MODULE
Trade Benchmarking System
Gross margin, net margin, and overhead rate benchmarks for 18 trades — where you stand vs where you should be
CFOS MODULE
Job Profitability System
Job-level cost tracking that reconciles bid assumptions against field reality every month
RELATED
How to Calculate Your Overhead Rate
The correct way to express and apply overhead in construction bids
SYSTEM CONNECTIONS
CFOS SPINE + MODULES
Run on CFOS — Full System IndexTrade Benchmarking SystemJob Profitability SystemOperating Model Definition
RELATED CONTENT
Overhead Rate CalculationGross Margin BenchmarksRework as Untracked Margin Loss
SERVICE LAYER
Fractional CFO for ConstructionConstruction BookkeepingConstruction Controllership

DO YOU KNOW YOUR ACTUAL GROSS MARGIN — NOT YOUR MARKUP?

If your P&L gross margin doesn't match what your estimates projected, the formula confusion may be part of why. A 30-minute diagnostic will tell you where the gap is.

BOOK A FREE 30-MIN DIAGNOSTIC →

30 minutes. Free. No sales pressure. We'll tell you exactly what's broken before we talk about anything else.

OR SEE YOUR NUMBERS FIRST → FREE CEO REPORT TOOL
THE CONSTRUCTION CFO
Run on CFOSTrade BenchmarkingJob ProfitabilityFractional CFOSchedule a CallJosh@ConstructionCFO.net
© 2026 SULPHUR PRAIRIE MANAGEMENT · SULPHUR ROCK, AR
0