Skip to main content
JOB COSTINGCASH FLOWWIP REPORTINGFRACTIONAL CFOOVERHEAD RATEPAY APP BILLINGAR RECOVERYCONTROLQORESUBCONTRACTOR FINANCECFOSBILLING VELOCITYNET PROFIT JOB COSTINGCASH FLOWWIP REPORTINGFRACTIONAL CFOOVERHEAD RATEPAY APP BILLINGAR RECOVERYCONTROLQORESUBCONTRACTOR FINANCECFOSBILLING VELOCITYNET PROFIT
THE CONSTRUCTION CFO BOOK A FREE CALL
ESTIMATING · JOB PROFITABILITY · CONSTRUCTIONCFO.NET

MARKUP AND MARGIN ARE NOT THE SAME NUMBER.

QUICK ANSWER

Markup is the percentage added to cost to set a price. Margin is the percentage of revenue that is gross profit. They sound similar. They produce different numbers. A 25% markup on a $100,000 job produces a $125,000 bid. But the gross margin on that job is 20%, not 25%. If you are targeting a 25% gross margin and using 25% markup, you are short on every single job.

This is one of the most expensive math errors in commercial subcontracting. It is also one of the most common. CFOS corrects it in the first 30 days of every engagement and rebuilds estimating from the correct gross margin target.

BY JOSH LUEBKER Published: June 2026 Updated: June 2026
25% markup
= 20% Margin
A 25% markup applied to cost produces a 20% gross margin. Not 25%. The gap compounds on every job.
33.3% markup
= 25% Margin
To hit a 25% gross margin target, markup must be 33.3% — not 25%. Most contractors are short by this gap.
$40K/year
Typical Shortfall — $2M Sub
A $2M subcontractor using 25% markup when targeting 25% margin loses roughly $40,000 per year in uncollected gross profit.
THE MATH
Why Markup and Margin Produce Different Numbers

Markup is calculated on cost. If a job costs $80,000 and you add 25% markup, you get $100,000. Your gross profit is $20,000. But that $20,000 is 20% of the $100,000 revenue — not 25%.

Margin is calculated on revenue. A 25% gross margin on a $100,000 job means $25,000 in gross profit. To get $25,000 in profit on an $80,000 cost job, you need to charge $105,000 — which is a 31.25% markup.

The formula: Markup = Margin divided by (1 minus Margin). To hit 25% margin: 0.25 divided by 0.75 = 33.3% markup. To hit 20% margin: 0.20 divided by 0.80 = 25% markup.

THE BIDDING ERROR
What Happens When You Use the Wrong Number

A concrete subcontractor targeting 24% gross margin bids a $300,000 job using 24% markup. They price the job at $372,000. Their gross profit on the job is $72,000 — which is actually 19.4% of $372,000. They are 4.6 points short of target on every job they bid this way.

On $3M in annual revenue, that 4.6-point gap is $138,000 in gross profit that was estimated but never collected. Not lost to cost overruns. Not lost to slow GCs. Lost in the bid math before the job ever started.

THE OVERHEAD CONNECTION
Why Getting the Margin Right Matters Even More Than You Think

Gross margin covers overhead and produces net profit. If you need 14% overhead rate and 8% net profit, you need 22% gross margin minimum. If your estimating is using 22% markup instead of 22% margin, your actual gross margin is 18% — not enough to cover overhead and generate the net profit you need.

This is why contractors who are winning work and staying busy still end up short on cash. The math was wrong from the first bid.

01
USE THE CORRECT MARKUP FORMULA
Markup = Target Margin divided by (1 minus Target Margin). If you are targeting 25% gross margin, your markup is 33.3%. If you are targeting 22% gross margin, your markup is 28.2%. Print this formula. Put it in your estimating template. Use it on every bid.
02
BUILD FROM YOUR REAL OVERHEAD RATE
Before you can set a gross margin target, you need to know what overhead actually costs you. If overhead is 14% of revenue and you want 8% net profit, you need 22% gross margin minimum. If overhead is actually 18% and you are bidding at 22% gross margin, you are making 4% net — not 8%.
03
VERIFY MARGIN AFTER EVERY BID
After building a bid, calculate the gross margin as a percentage of the total price — not cost. If your bid total is $420,000 and your estimated cost is $320,000, gross profit is $100,000. Gross margin is $100,000 divided by $420,000 = 23.8%. Is that the margin you targeted? If not, the markup was wrong.
04
ALIGN ESTIMATING TO JOB COSTING
The gross margin in your estimate must match the gross margin you track in job costing. If you estimate a 24% margin and your job costing tracks in cost codes that do not match the estimate structure, you cannot compare actual to estimated. CFOS aligns estimating and job costing so every variance is visible in real time.
$2.1M+
Client AR Recovered Since 2023
18
Active Trade Specializations
60 DAYS
Average Onboarding Time
PRICING

FLAT MONTHLY FEE. NO SURPRISES.

Two tiers based on trailing 12-month revenue. No hourly billing. No payroll. No add-ons.

RevenueCore FinancialExecutive Financial
Under $1M$1,900/mo$2,900/mo
$1M–$3M$2,600/mo$3,600/mo
$4M–$6M$3,800/mo$5,500/mo
$7M–$9M$5,100/mo$6,900/mo
$10M–$12M$6,100/mo$8,500/mo
$13M+QuotedQuoted
What's Included →
WHICH TRADES FEEL THIS MOST

WHERE THE CONFUSION COSTS MOST BY TRADE.

Concrete: Compounding on Material-Heavy Bids

On material-heavy concrete bids, the markup/margin gap compounds fast: 25% markup on a $800K-cost job yields $200K — which is a 20% margin, not 25%. If the estimator promised the owner 25% margin, the bid is short $66K before mobilization. Material-heavy trades feel the five-point gap in real dollars.

Electrical: Blended Confusion Across Work Types

Electrical subs often markup labor and material at different rates, then report a single blended 'margin' that's actually neither. The honest math prices each work type at a target margin — rough-in, trim, service — and lets markup be whatever the conversion requires. Margin is the goal; markup is just the dial.

Civil & Excavation: Unit-Price Translation

Unit-price civil work hides the confusion inside the rate: a $14/yard cost marked up 30% bids at $18.20 — a 23% margin. Multiply a five-point misunderstanding across 80,000 yards and the job is $56K short of the margin the owner believes it carries. Unit-price trades need the conversion table taped to the estimating desk.

T&M and Service: Rate-Sheet Reality

T&M rate sheets built on markup logic — cost plus 20% — deliver 16.7% margin before unbillable time. Add the utilization gap (techs billable 70% of paid hours) and the realized margin can be single digits while the rate sheet looks healthy. Service trades should build rates from target margin backward, never cost forward.

WHAT CHANGES WHEN THIS IS FIXED

WHAT GETTING THE MATH RIGHT CHANGES.

5 Points
The gap on every job at 25/20. A sub using 25% markup believing it's 25% margin gives away five points of every contract. On $5M of annual volume, that's $250K a year of phantom margin — profit the owner believes exists, plans around, and never collects. The fix costs nothing. It's division instead of multiplication.
÷ (1 − m)
The only formula that matters. To hit a target margin m, divide cost by (1 minus m): a 25% margin on $100K cost means $100K ÷ 0.75 = $133,333 — not $125,000. The $8,333 difference per $100K is the entire confusion, repeated on every bid the company sends.
3.3% → 22.7%
What honest pricing math contributed. The $4.9M concrete sub netting $161K (3.3%) had pricing built on understated overhead and markup-as-margin habits. Corrected math — real overhead, margin-based pricing — was part of the system that took net to $1.1M. Same crews, same market. Different arithmetic.
COMMON QUESTIONS

FREQUENTLY ASKED.

Markup is the percentage added to cost to set a price. Margin is the percentage of revenue that is gross profit. A 25% markup on an $80,000 cost job produces a $100,000 price and a 20% gross margin. To hit a 25% gross margin, you need a 33.3% markup. Using the wrong number means you are collecting less than you intend on every job.
Markup equals target margin divided by one minus target margin. To hit 25% gross margin: 0.25 divided by 0.75 equals 33.3% markup. To hit 20% margin: 0.20 divided by 0.80 equals 25% markup. To hit 30% margin: 0.30 divided by 0.70 equals 42.9% markup. This formula belongs in every estimating template.
Because both are percentages applied to a job and the difference is not obvious in a spreadsheet. Markup feels like margin because adding 25% to cost feels like you are making 25%. You are not. You are making 20% of revenue. The error compounds invisibly across every bid until it shows up as a cash shortfall that has no obvious cause.
CFOS serves commercial subcontractors doing $1M to $12M. Core Financial starts at $1,900 per month. Executive Financial starts at $2,900 per month. Onboarding takes 60 days.
Core Financial includes ControlQore setup, job costing aligned to your estimates, full-service bookkeeping, and bank reconciliations. Executive Financial adds monthly CFO advisory meetings, controllership, and strategic accountability. No payroll. No scope gaps.
Convert before you type. Markup = margin ÷ (1 − margin). Want 25% margin? Enter 33.3% markup. Want 30% margin? Enter 42.9%. Tape the conversion table next to the monitor: 20% margin = 25% markup, 25% = 33.3%, 30% = 42.9%, 35% = 53.8%. The software doesn't care which philosophy you use — it just multiplies. The discipline is deciding margin first and letting markup be the translated input, never the other way around.
More than anywhere — because the fee structure is the contract. 'Cost plus 15%' is a 15% markup, which is a 13% margin on revenue; if your overhead runs 13%, the job nets approximately zero before any execution risk. Subs negotiate cost-plus fees thinking in margin and signing in markup all the time. Before agreeing to any cost-plus number, convert it to margin and stack it against your real overhead rate. The GC drafting the contract knows the difference. Both sides should.
Josh Luebker
Josh Luebker
Fractional CFO · The Construction CFO

Former commercial construction PM and master electrician. 150+ projects, $300M+ in volume. Now fractional CFO for commercial subcontractors doing $1M–$12M through Sulphur Prairie Management. About Josh →  |  LinkedIn →  |  CONTROL Book →

RELATED
Estimating
How to Price for Profit
Setting bid prices that actually produce the net profit the business needs to survive
Tool
Overhead Calculator
Calculate your real overhead rate so gross margin targets mean something
Reference
Markup vs Margin Reference
The complete reference guide to markup and margin math for subcontractors
CFOS SYSTEM CONNECTIONS
SYSTEM SPINE
Run on CFOSJob Profitability SystemTrade Benchmarking System
RELATED
Overhead Rate Wrong by DesignEstimating Is Why You're Not ProfitableEstimating and Finance
PROOF
Civil MCA Payoff Case StudyElectrical AR RecoveryFractional CFO Services

IS YOUR MARKUP ACTUALLY
HITTING YOUR MARGIN TARGET?

30 minutes. We will show you the math on your actual bids before we talk about anything else.

BOOK A FREE DIAGNOSTIC CALL →

OR SEE YOUR NUMBERS FIRST → FREE CEO REPORT TOOL
THE CONSTRUCTION CFO
Run on CFOSCash Control SystemFractional CFOSchedule a CallCONTROL Book
© 2026 SULPHUR PRAIRIE MANAGEMENT · SULPHUR ROCK, AR
0
Josh Luebker, The Construction CFO
JOSH LUEBKER
FOUNDER & CFO

Master electrician and former project manager, 150+ projects and $2.1B+ in commercial work. Now runs the numbers for subcontractors instead of standing on the job site.

LinkedIn About
Stewart Bohrer, The Construction CFO
STEWART BOHRER
VP OF OPERATIONS

Keeps the system running day to day: job costing, WIP, monthly financial reviews, and the follow-through between calls. Josh handles onboarding.

LinkedIn About
LinkedIn YouTube About Run on CFOS