Estimating Systems & Pricing Strategy

The Markup Trap: Why Most Builders Are Leaving $200K on the Table

Most builders price on instinct, not math. A 20% markup doesn't produce a 20% margin — and that one formula error alone costs the average $2M builder $60K–$200K annually. Here's how the math actually works and how to price so your margin is designed, not hoped for.

The Short Version

Markup and margin are not the same thing. A 20% markup produces a 16.7% margin — not 20%. That single misunderstanding, applied to every estimate across a year, explains why builders who feel busy and booked still end the year lighter than expected. But the markup trap is wider than one formula. It's the habit of pricing based on what a similar past job cost, what competitors seem to charge, or what it takes to close the deal — instead of building from a documented cost structure with actual overhead allocation, true labor burden, and an intentional profit target. We've audited the pricing models of 312+ construction companies. The pattern is the same at $500K as it is at $5M: the closer you look, the more you find you've been leaving money on every job, every year. This article covers how the markup trap works, how to calculate your real cost structure, and how to build a pricing model that produces consistent, predictable margins — regardless of who builds the estimate.

Sound Familiar?

If three or more of these describe your estimating process, the markup trap is active in your business right now.

What We Found

The Markup-to-Margin Math Every Builder Needs to Know

In working with 312+ builders, we've traced this formula error at every revenue level — from $500K builders running their first estimates to $5M GCs who set their markup structure years ago and never revisited it. It's the most common pricing mistake in construction, and it's invisible until you run the actual math.

Here's the math most builders get wrong every single day.

If your costs on a job are $80,000 and you add a 25% markup, your price is $100,000. That feels like 25% profit. It isn't. Your profit is $20,000 on a $100,000 contract — a 20% margin, not 25%.

The formula:

To hit a 25% gross margin, you don't mark up 25%. You mark up 33.3%.

The annual cost of the math error

A builder doing $2M in revenue with a target margin of 20% but actually using a 20% markup (which produces 16.7% margin) is leaving $66,000 on the table annually — just from the formula. This assumes no other pricing problems, which is almost never the case. NAHB's Cost of Doing Business Study shows residential builders average 6.6% net margin — making every unrecovered markup dollar significantly more costly as a share of take-home profit.

Most builders who discover this gap have been operating on it for years. The fix is a one-time recalibration of your markup targets, followed by a documented pricing model that converts desired margin to the correct markup every time.

Here's the conversion formula you'll want on your wall:

Every job you price from today forward should start with your target margin and convert to markup — not the other way around.

📊
Free download: 5 Margin Killers Every Builder Misses
Get It Free →

What "True Cost" Actually Includes — and What Most Estimates Miss

The markup math problem is the easy fix. The harder fix is making sure your cost number — the number you're marking up — actually reflects what the job will cost to produce.

Most builders undercount costs in three consistent places:

1. Labor burden
Your estimator writes "framing labor: $8,500" based on hourly rates. But the real cost of an employee isn't their hourly rate. It's their rate plus employer FICA (7.65%), state unemployment tax (1-6%), workers' compensation (5-25% depending on trade), health insurance, paid time off, and tool allowances. For a framing carpenter at $35/hour, the total employer cost is often $50-60/hour. Estimating at $35 and billing at a markup based on $35 means your "profit" is subsidizing payroll taxes.

Typical labor burden multiplier: 1.25x to 1.45x base wage, depending on your benefit structure and trade risk classification. The Bureau of Labor Statistics Employer Costs for Employee Compensation report confirms that benefits add 30%+ above wages on average — and construction trades run higher due to workers' comp classification risk. Every estimate should use loaded labor rates, not base wages.

2. Overhead allocation
Your overhead — office rent, admin salaries, software subscriptions, vehicles, insurance, Grant's salary — doesn't disappear on a job where you're only marking up direct costs. It gets paid from somewhere. If it's not allocated in your pricing, it comes out of "profit."

The correct approach: calculate your annual overhead as a percentage of annual revenue. If your overhead is $300K on $2M revenue, that's 15% overhead burden. Every estimate needs a 15% overhead allocation before profit markup.

3. Non-billable time and waste
That three-hour conversation with a demanding client. The materials run your foreman made because the order was wrong. The punch list revisit six weeks after close. These hours exist in every job — most builders never estimate them. A 5-10% general conditions allowance on labor catches these costs before they eat your profit.

True Cost Formula

True Job Cost = (Direct Labor × Burden Rate) + Materials + Subcontractors + Equipment + (Annual Overhead ÷ Annual Revenue × Job Contract Value) + General Conditions Buffer

Most builders are estimating 3 of these 6 elements. A master budget template built on this structure ensures every estimate captures the full picture.

Building a Pricing Model That Produces Consistent Margins

Once you know your real cost structure, the next step is a pricing model your whole team can use — not just you.

Here's what a documented pricing model contains:

The output is a pricing model your estimators can run through your estimating system without needing to know all the math by heart.

"I thought I had a 25% margin business. When we actually built the pricing model and ran our last 12 jobs through it, the real number was 14%. Same revenue, very different business." — Residential GC, Portland, OR

Building the model takes time. Running it through historical jobs — before you deploy it on future ones — tells you the full scope of what the markup trap has cost. Most builders find it's more than they expected.

The good news: once the model exists, it compounds. Every future estimate is more accurate. Every win is more profitable. And when you run a master budget template through the model, estimates get faster and more accurate simultaneously.

Our estimating systems service builds the full pricing model — loaded rates, overhead allocation, markup structure — into your construction management software so the math is automatic, not manual. For a quick snapshot of where your current markup-to-margin math stands, the JobTread Diagnostic is a 5-minute starting point.

📊

5 Margin Killers Every Builder Misses

The 5 pricing and cost mistakes that silently drain 8–18% from your margins on every project. Free guide with quick-fix checklist.

Get the Free Guide →

Frequently Asked Questions

Markup is profit divided by cost. Margin is profit divided by revenue. They're related but different. A 25% markup produces a 20% margin, not 25%. Most builders use the terms interchangeably and end up targeting the wrong number. Always start with your desired margin and convert to markup using: Markup % = Margin % ÷ (1 − Margin %).

Industry benchmarks vary by trade and volume, but most residential GCs should target 20-30% gross margin (not markup). Custom home builders often target 15-20% on larger jobs. Remodelers typically aim for 25-35% because of higher complexity and client management overhead. The right number for your business depends on your overhead structure — calculate your overhead burden percentage before setting margin targets.

Start with base hourly wage, then add: employer FICA (7.65%), state unemployment tax (varies, typically 1-4%), workers' comp premium (5-25% depending on trade classification), health insurance contribution, paid time off value, and any tool/vehicle allowances. A typical multiplier lands between 1.25x and 1.45x base wage. If you're estimating labor at $35/hour but your true burden rate is $50/hour, every labor-heavy estimate is structurally underpriced.

Variable margins on similar projects almost always trace back to inconsistent cost structure in estimates. Common causes: different estimators using different labor rates, overhead applied inconsistently or not at all, change orders that got done but not billed, and material waste underestimated on some jobs. A master budget template with locked rates and overhead allocation standardizes the cost structure so margins become more predictable.

No. Labor and materials carry different risk profiles and different overhead requirements. Labor is typically marked up at your target margin plus overhead allocation. Materials may carry a lower markup (10-15%) since the overhead cost of purchasing and managing materials is lower than the overhead of managing field labor. Subcontractors are often marked up 10-15% to cover coordination overhead. Build separate markup rates into your pricing model.

Add up all your annual overhead costs: office rent, admin salaries, software, vehicles, insurance, utilities, owner's management compensation, and any other fixed or semi-fixed costs that exist regardless of job volume. Divide by your annual revenue target. If overhead is $300K and revenue target is $2M, your overhead burden rate is 15%. Every estimate should include a 15% overhead line before profit markup is applied.

After true cost (including overhead allocation and full labor burden), a well-run $2M residential GC should generate 8-15% net profit. If you're below that, the markup trap is likely part of the story. Builders who implement a documented pricing model with correct overhead allocation and labor burden typically see net margin improve by 3-8 percentage points within the first year — without raising prices dramatically.

Want systems advice specific to your company?

Book a free diagnostic call. In 30 minutes, we'll identify what's broken in your systems and what to fix first.

Book Your Free Diagnostic Call