I sat down with my accountant one afternoon and looked at a year where I'd run $1.2 million through the business. Driving in that morning, I figured I was going to feel pretty good about the conversation. We'd been busy. The crews had been working. There hadn't been any disasters. What I saw on the page when we got into the numbers was a net margin of 4%. Forty-eight thousand dollars on $1.2 million in revenue.
I'd spent a year running full capacity for $48,000. And the part that was hard to sit with wasn't that number. It was knowing that the year hadn't been unusual. There was no catastrophe, no terrible job that blew everything up. The year had been ordinary. Which meant the ordinary way I was running things was producing $48,000 net on $1.2 million in revenue. That was the business I'd built.
What 4% Actually Tells You
A 4% net margin isn't always a pricing problem. Sometimes it is — usually a markup that was never checked against the overhead it's supposed to cover, or a number that got shaved before it was ever said out loud, or a markup mistaken for a margin — but in my case, the pricing was actually reasonable. The estimates were competitive but not reckless. The labour rates were in the right range. The overhead was what it was.
The problem was everything between the estimate and the bank account: the accumulated gap between what the jobs were priced to produce and what they actually produced after I counted all the ways money left the business that I'd stopped noticing. Not big dramatic write-offs. Small, ordinary, repeating leaks. The kind that feel like a cost of doing business until you're sitting across from your accountant looking at 4%.
What your P&L is actually hiding from you in a situation like this is the per-project story. Total revenue looks fine. Total cost-of-goods looks roughly right. The overhead line is what it is. But the margin disappears in the gap between how each individual job was priced and how each individual job actually performed. That story is invisible at the revenue level. You have to get into the individual job costing to find it.
The Leak You Probably Don't Have a Line Item For
Here's one that took me years to address properly: project management time.
If you're the owner of a trades business in the $1 million to $5 million revenue range, you are almost certainly providing a substantial amount of project management (client communication, scope clarification, scheduling coordination, purchasing decisions, problem-solving on site, subcontractor oversight) that you have never explicitly put a dollar figure on. It's just part of running jobs. It's your job.
Except it's not free. If you're spending thirty to forty hours managing a $200,000 project, which is not unusual and probably on the low end for anything complex, and your time has value, then that's a real cost that belongs in the project estimate. If it's not there, it's not disappearing. It's coming out of net.
I've asked a lot of trades owners to actually track their project management hours for a month and compare that to what they'd estimated for it. Almost all of them find a significant gap. Some of them are running 60% more hours on project coordination than their estimate assumed. At any reasonable hourly rate for your own time, that gap is worth real money. It's showing up as margin on the estimate and not showing up in the bank.
"It's not that the jobs were unprofitable on paper. It's that the paper version of the job never had all the costs on it to begin with."
Where Else the Margin Goes
Absorbed material price increases are a quieter version of the same problem. You estimated materials at the price they were when you built the estimate. By the time you're buying them, four or six or eight weeks later, the price has moved. If there's no mechanism in your contracts for price escalation, and no practice of issuing a change order when commodity costs move significantly, that delta goes somewhere. It goes to margin.
The job that taught me what revenue without margin actually costs was a project where I got hit by all of this at once: absorbed changes, moved material prices, underestimated coordination time. Each one felt minor when it happened. Together they took a job I'd priced at a solid margin and turned it into one of the most expensive lessons I've paid for.
Scope creep is similar. Most trades businesses have a version of this: the small extras that happen on every project, individually too minor to feel worth billing for, that together represent a non-trivial amount of unbilled labour across the course of a year. If you track the "small extras" on one project (the things you do without billing for them) and then multiply that by the number of projects you run in a year, the number is usually surprising. Every one of those extras is something you priced, staffed, and executed for free. That's not customer service. That's margin walking out the door without anyone writing it down. On a single job the same pattern shows up as a budget that bleeds out across twenty small things instead of one big one.
The Post-Completion Review Is Worth More Than Almost Anything Else
I want to be specific about one habit, because in my experience it has more impact on long-term profitability than almost anything else a trades business owner can build: reviewing every completed project against its original estimate before you close the job.
Not a financial reconciliation in six months when the accountant asks for the numbers. A specific debrief when the punch list is done, while the details are still fresh. Where did we make money? Where did we lose it? What would we do differently in the estimate? What happened on site that we didn't anticipate and how would we account for it next time?
"Done consistently over a year, the post-completion review builds an accuracy in your estimating that's almost impossible to get any other way."
Done consistently, over a year, this review builds an accuracy in your estimating that's almost impossible to get any other way. You start to know, from actual data rather than intuition, where your costs tend to run over. You start to account for the things you'd previously assumed were just variance. Your estimates get tighter. Your margin gets more predictable. And why most small contractors stay small is often exactly this: not lack of work, not bad clients, but a feedback loop that never closes because no one ever looked at the finished job and asked what the numbers actually taught them.
Overhead You Stopped Questioning
There's a version of this problem that lives in overhead rather than job costs. The office you're barely using. The truck that sits idle between projects more than it should. The software subscriptions and services that made sense when you were at a higher revenue level and that nobody's looked at critically since. Fixed overhead that was appropriate at $1.5 million starts looking different at $800,000. It often doesn't get adjusted because adjusting it requires a decision, and decisions require attention, and attention is something trades owners don't have in excess.
Staying busy and broke at the same time often has overhead at the root of it. Revenue is there. Work is happening. But the overhead base was sized for a different version of the business, and the gap between revenue and that base is where the margin is supposed to live.
The habit worth building is a quarterly overhead review. Not a full accounting reconciliation, just a look at every fixed cost and an honest question: does this still make sense at the current revenue level? Most of the time, nothing changes. Occasionally, something stands out that you'd stopped noticing. The occasional catch is worth the fifteen minutes.
The Bottom Line
Forty-eight thousand dollars on $1.2 million is what happens when a business has a collection of small, invisible, unaddressed leaks that compound across every project over every year. None of them are dramatic. All of them are fixable. The fix isn't a single change. It's building the habits that close the feedback loop: pricing to include all your actual costs, reviewing job performance in real time, billing every change order, and doing the post-completion debrief that makes next year's estimates better than this year's.
Those habits get easier to hold when you're already taking a monthly read on the five numbers that show business health, because a leak shows up as a slope on one of them long before it shows up at year-end. If you're doing good revenue and wondering where the money is going, you're not alone. The answer is almost always findable. My construction business coaching works with trades and construction business owners on exactly this kind of margin recovery work. The profit is usually still there. It just needs a different set of habits to capture it.
Quick answers
What is a common reason construction companies have low profit margins?
The most common reason is an accumulation of small, untracked cost leaks rather than any single catastrophic mistake. Underpricing to win work, unpaid project management time, absorbed material price increases, and scope creep that never gets billed all compound across many projects. Each leak looks minor on its own, but together they can reduce a reasonable revenue number to almost nothing in net.
How do you improve net margin in a construction business?
The highest-leverage changes are usually: pricing to include fully-loaded costs (including your own project management time), building a consistent change order process, and doing a post-completion job cost review on every project. The post-completion review builds estimating calibration faster than any other habit — after a year of doing it, your estimates will be significantly more accurate.
Should contractors charge for project management time?
Yes. If you're spending hours every week managing client communication, coordinating subs, handling purchasing decisions, and solving site problems, those hours have a cost. If that cost isn't included in the estimate, it comes directly out of your net margin. Most contractors in the $1M to $5M revenue range are providing substantial project management that they've simply never put a number on.
Get The Builder's Playbook in your inbox
A short note from Eddy with a link to the week's post — one email a week, every Thursday, nothing else.
No spam. Unsubscribe with one click any time. Privacy policy.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.