When a construction company's revenue goes up but profit goes down, the cause is almost always one of two things: the overhead rate didn't keep up with how the business grew, or job costs are running over estimate without anyone catching it in time. Both problems are fixable, but only if you have job cost data while jobs are still running — not after they close.

REVENUE UP PROFIT DOWN OVERHEAD RATE PROBLEM NO JOB COST VISIBILITY GREW AND MADE LESS MONEY SUBCONTRACTOR CFO REVENUE UP PROFIT DOWN OVERHEAD RATE PROBLEM NO JOB COST VISIBILITY GREW AND MADE LESS MONEY SUBCONTRACTOR CFO
THE CONSTRUCTION CFO Schedule a Free Call
Financial Diagnosis

Revenue Up. Profit Down.
Here's Why.

You grew. Your revenue is up 30, 40, maybe 50 percent from two years ago. But your bank account doesn't show it. You're making less money on more work. This is one of the most common problems SPM sees in subcontractors between $2M and $8M — and it almost always comes down to two things: an overhead rate that didn't keep up with growth, and job costs bleeding without anyone tracking them in real time.
Published: May 2026 Updated: May 2026
The Two Causes

This Is Almost Always One of Two Problems.

Most contractors who grew and made less money aren't pricing wrong on purpose. They're pricing the same way they always have — the problem is the business changed and the numbers didn't follow. Overhead crept up. Jobs ran over. Neither showed up until the year-end P&L made everyone uncomfortable.
01

The Overhead Rate Problem

You priced jobs at $2M with 12% overhead built in. Now you're at $5M and overhead is 18% — because you added a project manager, a second truck, a bigger office, and upgraded software. But you're still pricing jobs at 12% overhead. Every job ships with a built-in loss that doesn't show until the year closes.

02

The Job Cost Visibility Problem

You don't know a job is losing money until it's done. Labor went 15% over on phase two. A material call-out came in late. A sub ran a change order you hadn't priced. By the time the job closes, there's nothing left to do but absorb it. The next job prices the same way and bleeds the same amount.

Cause One

Your Overhead Rate Didn't Keep Up.

Overhead rate is your total SG&A divided by revenue. At $2M it might be 12%. At $5M it might still be 12% — or it might be 18%, depending on what you added. The problem is most contractors don't recalculate it when they grow. They price the next job the same way they priced the last one.

Here's what typically happens between $2M and $5M in a growing subcontracting business:

You hire a PM or estimator — $80–$120K fully loaded
You add a second service truck or equipment — $20–$40K/year
You upgrade from QuickBooks Desktop to something with a monthly seat fee
Your insurance goes up as you add employees and revenue
You move to a bigger office or storage yard

None of those are bad decisions. But together they can add $150–$250K in annual overhead without anyone formally recalculating what that means for job pricing. The jobs go out the door at last year's overhead assumption. The margin shrinks by 3–5 points. At $5M revenue, that's $150K–$250K of profit you priced away before the first nail went in.

The fix: Recalculate your overhead rate every quarter at current cost levels. Price future work to recover the actual overhead burden — not last year's. This one adjustment, done correctly, is often the entire answer.

3–5%
Typical overhead rate creep between $2M and $5M when expenses grow faster than the pricing model adjusts
$150K+
Profit left on the table annually when a 3% overhead undercount is baked into $5M of work
Cause Two

You Don't Know Until The Job Is Done.

Job cost visibility means knowing — while a job is still running — how much has been spent versus how much was estimated, and what it will cost to finish. Without it, every job is a black box until it closes. With it, you catch overruns in time to act.

Most subcontractors in the $2M–$8M range track job cost in one of two ways: they don't, or they do it manually in a spreadsheet after the job closes. Neither works.

The monthly rhythm that actually fixes this looks like this:

1. Cost-to-Complete on Every Active Job

Every month, each job gets a cost-to-complete update: budgeted cost vs. actual cost to date vs. estimated cost at completion. If a job is running 8% over budget at 40% completion, you know now — not when the last invoice comes in.

2. Labor Variance by Phase

Labor is the most common bleed point. Rough-in ran 120 hours. You estimated 90. That 30-hour overrun, multiplied across three jobs, is $15K–$25K in margin that didn't exist when you priced the work. Catching it by phase means you can adjust field supervision, renegotiate scope, or at minimum price the next job accurately.

3. Change Orders Logged Before Closeout

Verbal approvals expire. GCs forget. If your crew did the work and you logged the change order at closeout, you have a negotiation problem — not a documentation problem. Change orders need to be in writing within 48–72 hours of direction. That's a discipline issue, and it's fixable with the right system.

How SPM Fixes It

What We Actually Do.

SPM doesn't show up with a framework. We show up with questions: what's your current overhead rate, when did you last calculate it, can you tell me the cost-to-complete on your three biggest active jobs? The answers tell us everything we need to know about where the margin is going.
Calculate the current overhead rate at actual cost levels — not last year's budget
Align job costing structure to how you estimate — so the comparison is apples to apples
Build cost-to-complete reporting in ControlQore on every active job
Set up a monthly WIP schedule to catch underbilling and overbilling
Review job performance monthly — not quarterly, not at closeout
Reprice future work based on actual overhead burden

Most contractors start seeing the impact in 60–90 days. Not because we're magic, but because the data was always there — it just wasn't organized in a way anyone could act on it.

Frequently Asked Questions

Common Questions.

The two most common causes are overhead rate creep and invisible job cost bleed. As revenue grows, overhead often grows faster — or you're still pricing at an old overhead rate that no longer reflects your actual costs. At the same time, without monthly job cost tracking, overruns accumulate job by job without anyone catching them until the year-end P&L lands.

Overhead rate creep is when your SG&A expenses grow proportionally faster than revenue as the business scales — but your job pricing doesn't adjust to match. A contractor at $2M might run 12% overhead. At $5M they might actually be running 16–18% overhead after adding staff, equipment, and insurance. If jobs are still priced at 12%, every job ships with a 4–6 point margin deficit baked in before a single crew member shows up.

Fix the job costing first. You cannot manage what you cannot see. Every active job needs a cost-to-complete updated monthly against its estimate. Then recalculate your overhead rate at current revenue and cost levels and reprice future work to recover it. Most contractors find the answer is not complicated — it just requires looking at the right numbers at the right time. Schedule a call if you want SPM to walk through the numbers with you.

Job cost visibility means knowing — while a job is still running — how much has been spent versus how much was estimated, and what it will cost to finish. Without it, you find out a job lost money after it's done. With it, you catch overruns in time to adjust: negotiate a change order, pull labor, find a cheaper material source, or at minimum protect the next job's pricing.

A bookkeeper records what happened. We tell you what it means and what to do about it. We align job costing to your estimates, track WIP monthly, and hold strategic accountability meetings so problems get fixed — not just documented.

Josh Luebker — Fractional CFO, The Construction CFO
Josh Luebker
Fractional CFO · The Construction CFO

Former commercial construction project manager and master electrician. Managed 150+ projects totaling $300M+ including Google data centers, military bases, hospitals, and high-rises. Now fractional CFO for commercial subcontractors doing $1M–$12M through Sulphur Prairie Management. About Josh →  |  LinkedIn →

Related Resources
Reference
Construction Financial Questions Answered
Every common financial question a subcontractor asks, answered directly
Cash Flow
Can't Pay Suppliers
What to do when AP is stacking and cash isn't moving
Positioning
Why Trade-Specific CFO Matters
A generalist learns job costing on your dime. We already know your trade.
Benchmark Data
Overhead Rates by Trade
What normal overhead looks like across all 18 commercial trades
Benchmark Data
Gross Margin by Trade
Gross margin benchmarks for every commercial trade SPM serves
Get Started
Schedule a Free Call
Talk through the numbers with Josh — no pitch, just answers

GROWING AND MAKING
LESS MONEY?

That's not bad luck. It's a fixable system problem. Let's figure out which one you have.

Schedule a Free Call →
THE CONSTRUCTION CFO
Overhead Index Gross Margin Index Financial Q&A Schedule a Call Josh@ConstructionCFO.net
© 2026 SULPHUR PRAIRIE MANAGEMENT · SULPHUR ROCK, AR
0