CONSTRUCTION PROFITABILITY

MORE REVENUE. LESS PROFIT.

QUICK ANSWER

A $4M subcontractor grows to $6M over two years. Revenue is up 50%. Profit is down. The owner works more hours, wins more work, and has less money at the end of the year. The same financial system is now carrying 50% more work, and growth exposed what was already broken: jobs priced on a wrong overhead rate, billing lag that compounds with more projects, and overhead that grew with revenue instead of being managed. The business scaled before the financial system did.

Growth without a system is just faster bleeding. Every error in the estimate gets multiplied by the number of jobs running, every day of billing lag gets multiplied by the revenue moving through it, and every unmanaged overhead line grows into whatever room the new revenue made for it. None of it surfaces as a single bad month. It surfaces as a year where the top line looks like a success story and the tax return doesn't. The fix is the ratios rather than the volume, and it works in the order they get measured.

BY JOSH LUEBKERPublished 2026-08-06Updated 2026-08-07
THE DEFINITION

WHAT IT MEANS.

Revenue up and profit down is what happens when a construction business grows past the financial system it was built on, so every job it adds multiplies a costing, billing, or overhead error it already had.

WHY MORE REVENUE PRODUCES LESS PROFIT

FOUR THINGS GROWTH MULTIPLIES.

01

Overhead grows faster than revenue

Going from $4M to $6M usually means more staff, more equipment, more insurance, and more software, all of which is overhead. If the overhead rate inside the estimate hasn't been recalculated, new work is being bid at an overhead rate that no longer reflects the current cost structure. The company then wins more jobs while losing margin on every one of them, and the win rate looks like proof that the pricing is fine.

02

Billing lag compounds

At $4M with 3 concurrent projects, a 20-day billing lag ties up about $220K in working capital float. At $6M with 5 projects, the same 20-day lag ties up $330K. The cash drain grows in step with revenue while the owner is looking at a bigger top line and wondering why the bank account got tighter. Nothing about the process got worse. There's just more revenue running through the same delay.

03

Job costing breaks down

At $4M with a handful of projects, the owner can manage by instinct and know every job. At $6M with 5 project managers and 8 active jobs, instinct stops reaching far enough. Without job costing, the margin problems accumulate invisibly across multiple projects and surface at year-end, when there's nothing left to do about any of them.

04

Overhead absorbs into revenue instead of being managed

Growth creates a comfortable assumption that the higher revenue will eventually cover the higher cost. Overhead that's not actively managed expands into whatever revenue is available, the way gas fills a container. Most growing contractors have no calculated overhead rate, no overhead budget, and no monthly variance tracking, so nobody is in a position to notice the expansion until the year closes.

THE ARITHMETIC

WHAT IT LOOKS LIKE IN DOLLARS.

Civil, the equipment trap

Growing from $4M to $7M often doubles equipment cost while revenue rises 75%. More iron means more debt service, more idle time, and more maintenance, all of which scale faster than the revenue they support when utilization isn't tracked. Owners blame the market. The real problem is asset efficiency nobody was measuring.

Concrete, the crew-stack problem

Adding crews creates overlapping schedules across jobs, so two crews become four and the peak weeks compound into overtime, rented labor, and delays. Volume went up, price stayed flat, and cost went up faster than both. The margin disappears into weeks where everybody was working and nobody was efficient.

Electrical, the supervision problem

At $2M the owner manages by walking the jobs. At $5M he can't see every job, and the supervision layer hired to replace his eyes goes into overhead while job-level discipline drops at the same time. The company pays more and sees less, which is the worst trade in the business.

Every trade, bid-mix drift

Growth pressure makes a company take work it used to turn down: bigger jobs at thin margins, unfamiliar GCs, and scope outside the core competency. Revenue grows on work the company shouldn't have taken, and the P&L records the consequence twelve months later, long after anybody connects it to the decision.

What fixing the system recovers

One concrete client corrected the overhead rate, rebuilt job costing, and repriced the work. The next year they did $1.3M less revenue and made more money, and paid out $130K in profit sharing for the first time. Another concrete sub went from $161K to $1,112,000 in net income on roughly the same revenue, a 590% increase, with no price increase, no new crews, and no harder work. Job costing made the bleeding visible and the owner managed what he could finally see.

The ratios to run against

CFMA's 2024 Construction Financial Benchmarker puts construction as a whole at 6.3% net income before taxes across all respondents, on 21.8% gross profit margin and 11.8% SG&A, with the best-in-class top quartile at 11.9% net before taxes. An average isn't a goal. The ratio to run against is the one for your trade at your revenue, which sits on /construction-subcontractor-financial-benchmarks-by-trade, and SPM's own floor of 10% net profit before taxes sits underneath it: above what the industry averages, below what the best quartile earns, and the point at which the business starts paying for the payroll and the personal guarantees behind it. A company growing revenue while running below its own trade benchmark is scaling a leak, so fix the ratios first and every dollar of growth multiplies profit instead of multiplying the problem.

THE FIX IS A SYSTEM, NOT MORE REVENUE

WHAT GETS BUILT, AND IN WHAT ORDER.

Recalculate the real overhead rate

The first thing we do is calculate the real overhead rate off actual expense data rather than the number sitting in the estimating template. For most companies that have grown, the real rate is 6 to 12 points higher than what's in the estimates. Every job bid at the old rate is losing that difference before the crew shows on site, which means this one correction changes the margin on everything bid after it.

Install job costing that scales

The structure has to grow with the portfolio instead of collapsing under it. We build cost codes the project managers can track actuals against estimates on, line by line, without routing through accounting first. Financial visibility then grows with the business rather than getting worse every time a job is added.

Reduce billing lag before scaling further

If billing lag is 20 days at $4M, it will be 20 days at $8M unless somebody fixes it, and the dollars tied up in it will have doubled. Fixing the cadence at the smaller revenue is cheaper and easier, because there are fewer projects and fewer people to change. Growing first and fixing later means fixing it on twice the volume.

$10.7M+
Client AR Recovered Since 2023
48
Active Trade Specializations
60 DAYS
Average Onboarding Time
PRICING

FLAT MONTHLY FEE. NO SURPRISES.

Three tiers, priced by your trailing twelve month revenue. Which one you're in depends on how much of the work you want off your desk. No hourly billing, no payroll, and no add-ons.

Pricing

Last 12 months revenueMonthly fee
Up to $1M$1,900 to $2,900
$1M to $3.5M$2,600 to $3,900
$3.5M to $6.5M$3,800 to $5,700
$6.5M to $9.5M$5,100 to $7,100
$9.5M to $12.5M$6,100 to $8,500
$12.5M to $15.5M$7,400 to $11,000
$15.5M to $18.5M$9,400 to $13,500
$18.5M+Quoted individually

Range reflects the three tiers below. Which one you're in depends on how much of the work you want off your desk. No payroll. No hidden line items.

Core

You stop guessing.

You get the CFO work. Job costing built against the way you estimate, a 13 week cash forecast, monthly WIP, and a meeting every month that ends in decisions rather than a report.

Your bookkeeper keeps doing the books.

Executive

You stop touching the books.

Everything in Core, and we run the bookkeeping and the controllership as well. Nobody in your office is answering coding questions or chasing a reconciliation at month end.

We do the books. No payroll.

Strategic

Every job shows its margin while it's still running.

Everything in Executive, plus the job costing and WIP platform set up, loaded with your cost codes, and managed for you every month. You never have to learn it.

We do the job costing.

COMMON QUESTIONS

FREQUENTLY ASKED.

No, revenue growth is the mechanism for building a larger and more valuable business. The problem is growing revenue before the financial system is ready to carry it, because growth exposes whatever is loose in overhead tracking, job costing, and billing discipline. A company with the system installed grows into higher revenue with those controls already working. A company without them grows into higher revenue with the errors compounding.
Most commonly between $3M and $6M. That's the range where the owner can no longer manage the business by instinct and the informal setup, meaning one bookkeeper, a CPA at year-end, and the owner knowing every job, stops being adequate. It's also the range where overhead grows fastest, because that's when the company adds staff, equipment, and complexity at the same time.
Most clients see the first measurable margin improvement within 60 to 90 days, meaning the first full billing cycle after the overhead rate correction, job costing, and billing cadence are in place. Full stabilization, where the CEO Report reflects accurate job-level performance, typically takes 3 to 4 months. The overhead rate correction by itself often produces meaningful margin improvement in the first full estimate cycle.
Usually slow, rarely stop. One client deliberately slowed new work for two months to let receivables catch up and let the new billing system take hold, then resumed growth on a foundation that could carry it and projected $12M the following year. The two-month pause cost a little top line. Growing the broken system was costing $20K+ a month in invisible margin leak and compounding. Growth isn't the enemy. Unmeasured growth is.
Run the two numbers in order. First, real overhead, meaning every non-job cost annualized and divided by revenue. If it comes back at 25 to 30% while you're bidding 10%, there's the leak, and it's both a pricing problem and a spending problem. Second, gross margin by job on a percentage-of-completion basis. If jobs are finishing at 15% gross when you bid 25%, the problem is execution or estimating rather than overhead. Most growing subs feeling this squeeze have both broken at once, which is why fixing one without measuring the other never quite works.
WHAT THIS TIES INTO
Josh Luebker, The Construction CFO
Josh Luebker
FRACTIONAL CFO · THE CONSTRUCTION CFO

Former commercial project manager and master electrician: 150+ projects worth $2.1B combined, from $50,000 to $300M. Now fractional CFO to commercial subcontractors.

IS YOUR OVERHEAD RATE THE ONE YOU ARE STILL BIDDING?

Bring your last two full years and your estimating template. We will calculate the real overhead rate and show you the difference on one open job.

You don't hire a CFO because it's safe, you do it because the real risk isn't having one.
Book a 20 minute diagnostic

20 minutes. No sales pressure. We will tell you exactly what's broken before we talk about anything else.

OR START WITH THE WORKBOOKS. NO CALL NEEDED.