You probably think you know this one. And you probably do know the formula. But it's exactly what you're plugging IN to that formula where things often go wrong. Here's an example: Are you using your techs' hourly wage as their cost? If you are, your margin is smaller than you think it is.
Here's why. A tech doesn't cost the company what's on their pay stub. They cost the pay stub, plus your half of the payroll taxes, plus workers' comp (which in trades is one of the most expensive lines of insurance there is), plus health insurance, plus retirement contributions, plus PTO and holidays and sick days, plus the truck stock they burn through that never gets billed as materials. Add it all up, and a tech paid $30 an hour is actually costing the company closer to $42.
That gap between wage and true cost, usually 25 to 40 percent, is where a lot of shops quietly bleed margin. Bid a job assuming labor is $30 an hour and it'll look like a healthy 40% margin going in. Do the same job with labor actually costing $42, and the real margin lands closer to 22%. The P&L catches it eventually, because the P&L uses real payroll, not the number in your head. But by then you've spent the whole year running on figures rosier than reality.
And while we're on inputs going wrong: markup and margin aren't the same number. A 40% markup is a 29% margin. If you're pricing at "cost plus 40" and calling that a 40% margin, you're about 11 points off the number you think you're running.
Here's the simplest way to think about it. You finish a job. The customer pays you. Then you pay everything it took to do that job: the materials, the labor of the guys on the truck, the subs, the fuel, the disposal fees. Whatever's left over is your gross profit. Divide that by what the customer paid you, and you've got your gross margin.
That number tells you whether the work itself is making money. Not the company. The work. Before you've paid yourself, before the office rent, before insurance, before the truck payments. Just: did the job, on its own, leave anything on the table?
This is the one most owners feel in their bones already. You bid a job at 40%, you finish a job at 28%, and you know in your stomach that something went sideways. Maybe the crew burned an extra day. Maybe materials came in hot. Maybe you priced it wrong from the start. The number tells you it happened. Looking job-by-job tells you why.
Healthy Range
For most trades shops, a gross margin of 35–45% is the zone you want to live in. Service-heavy work can run higher. New construction can run lower. Below 30% and you're working too hard for what's coming back.
There's another trap worth flagging: averaging. A 38% gross margin across the whole year sounds fine. But if it's 50% on service calls and 22% on installs, you don't have a 38% business; you have two different businesses, one of which is dragging the other one down. The number is only useful when you slice it.