Guide
Why jobs that look profitable still lose you money
Gross margin is not profit. The gap between them is the whole business.
Reviewed by Darren Lim, US CPALicence CPA.742536027 min read
Here is a conversation we have had more times than any other.
An owner tells us he marks everything up 35%, he is busy all year, and he has no idea where the money goes. His jobs are profitable. His business is not. Both things are true at once, and the gap between them has a name.
Gross margin is not profit
When you price a job at cost plus 35%, that 35% is gross margin. It covers the direct costs of the job — material, the crew's hours, the sub, the permit — and leaves something behind.
What it has not covered yet is everything you pay whether or not that job existed. Shop rent. Insurance. Your truck payment. The phone. Software. The office person. Your own pay. Advertising. Licences.
That is overhead, and it comes out of the gross margin on every job you do. What is left after that is profit.
So the question is never "is my markup healthy". It is "does the total gross margin across everything I do this year exceed my total overhead for the year, with enough left to be worth it".
Working out your number
The arithmetic is simple and most contractors have never done it.
Step one — total annual overhead. Everything that is not a direct job cost. Include your own pay. If you leave yourself out, you will design a business that cannot afford you.
Step two — expected revenue. What you realistically do in a year. Use last year unless something has genuinely changed.
Step three — overhead as a share of revenue. Divide the first by the second. If overhead is $180,000 and revenue is $900,000, overhead is 20% of revenue.
Step four — the margin you actually need. Your gross margin must exceed that 20% before a single dollar of profit exists. Want a 10% net margin? You need roughly 30% gross margin — and that is before anything goes wrong.
Now the earlier conversation makes sense. A 35% markup on cost is about 26% gross margin — markup and margin are not the same number, which is its own common trap. Against 20% overhead that leaves about 6%, and one bad job or a slow month takes it.
Markup and margin are different
This trips up an enormous number of contractors, so it is worth being explicit.
- Markup is added to cost. $1,000 cost with 35% markup bills at $1,350.
- Margin is the share of the price that is not cost. On that job, $350 of $1,350 is about 26%.
If you need a 30% gross margin, you need roughly a 43% markup, not 30%. Contractors who price at "30% markup" thinking they are achieving a 30% margin are quietly short every single job.
Where the leak usually is
When we look at books where this is happening, it is nearly always one of four things.
Labor burden is not in the job cost. The tech is on $30 an hour, but with payroll taxes, workers comp and benefits he costs closer to $40. Job costing at $30 makes every job look 25% better on its largest cost line.
Unbilled time is invisible. Drive time, warranty callbacks, the trip to collect a part, time spent quoting work you did not win. It is all real cost and it rarely lands on a job.
Overhead has grown quietly. A truck payment here, a software subscription there. Overhead creeps up while pricing stays where it was three years ago.
One job type is subsidising another. The company average looks acceptable because good work is covering for work that loses money on every visit. Only job-level costing shows you that.
What to do about it
Work out your overhead rate honestly, including your own pay. Then check your actual achieved gross margin — not the one you quote, the one your books show after the job is closed. The distance between them is your estimating accuracy, and it is usually wider than owners expect.
Then either raise price or reduce overhead. There is no third option, and of the two, price is almost always the faster lever in the trades — most contractors are further below market than they think.
Related
How we do this
We build this into your books. Starting with a month that costs you nothing.
We work out your real overhead rate from your own numbers, then report the gross margin you actually achieved against the one you quoted — so the distance between them stops being invisible.
- Every transaction categorized, accounts reconciled, the month closed
- Reviewed and signed by Darren Lim, US CPA — licence CPA.74253602
- The Two-Day Guarantee: Your first month back in two days, or the next month is free.
Busy all year with nothing in the bank is an arithmetic problem, and it becomes solvable the moment somebody puts real numbers on it. One month, free, two days, CPA-signed. The alternative is another year of the same.