Why You're Busy But Broke: The Gross Margin Trap for Trade Contractors
Full schedule, empty bank account. The problem is not revenue—it is the gap between what you think you are making per job and what actually hits the bank.
You have trucks rolling every day. The phone is ringing. Revenue is up year over year. And somehow, by the end of the month, the bank account does not reflect any of it.
This is the most common complaint I hear from trade contractors doing $3M–$8M in revenue: "We are busier than ever—where is the money?" The answer, almost every time, lives in the gross margin—the number that tells you whether each job is actually putting money in the bank or just keeping your team employed.
The Average Contractor Is Barely Breaking Even
The average contractor in the United States has a net profit margin between -2% and 4%. That is not a typo. A significant percentage of contractors are actually losing money while looking busy. The CFMA 2024 Financial Benchmarker found that top-quartile performers hit 12% pre-tax net margins—but the average hovers in low single digits.
On $5 million in revenue, the difference between -2% and 12% net margin is $700,000 per year. Same trucks. Same tools. Same zip code. Wildly different outcomes. The gap almost always starts at gross margin.
Financial advisors for the trades recommend targeting 25–35% gross profit margin. Below 25%, your overhead eats your profit before you ever see it. And here is the counterintuitive part: more volume does not fix bad margins. It makes the problem worse, because you are doing more work to lose more money faster.
Where the Money Actually Disappears
1. You do not know your true labor cost
You bid labor at $35 per hour because that is what you pay the technician. But your true labor cost—payroll taxes (7.65% FICA), workers' compensation (8–15% for trades), health benefits, PTO, drive time between jobs, unbillable hours, training time—is closer to $52–$58 per hour. That $20 gap on every labor hour is bleeding you dry, and you do not see it because the costs are scattered across a dozen different line items on your P&L.
A five-person crew billing at $35/hour with a true cost of $55/hour loses $160 per day in unrecovered labor cost. Over 250 working days, that is $40,000 per year from one crew—gone before you even look at materials or overhead.
2. You are confusing markup with margin
This is the single most expensive math error in the trades. A 25% markup does not produce a 25% gross margin. It produces a 20% margin. The formula is different: markup is calculated on cost, margin is calculated on revenue.
On $4M in revenue, that five-point gap between what you think your margin is and what it actually is costs you $200,000. We have an entire post on this math because it is that important and that common.
3. Overhead is not in your bid
Your bid covers materials and labor—the direct costs of the job. But are you recovering the cost of trucks, insurance, office rent, admin salaries, software licenses, fuel, uniforms, licensing fees, accounting, and the 40 other line items that show up every single month regardless of how many jobs you run?
If overhead is not baked into your pricing model, every job looks profitable in isolation and unprofitable in aggregate. The target overhead rate for trade contractors is 8–15% of revenue. Above 20% is a red flag that demands immediate attention.
4. Scope creep is free work
"While you are here, can you also look at..." That phrase costs the average trade contractor thousands per month in unbilled labor and materials. No change order, no invoice—just donated profit on a job that was already tight. Technicians want to help. Customers ask nicely. And nobody tracks the cost because there is no system to catch it.
5. You are not tracking by job
Without job-level costing, you have no idea which jobs made money and which ones lost it. Your P&L shows a blended average—and averages hide everything. The residential service call that earned 45% gross margin is invisible next to the commercial install that lost 5%. Both are buried in the same revenue line. Without job costing, you cannot fix what you cannot see.
The Benchmarks That Matter
- Gross profit margin: 25–35% (above 30% is strong; below 25% is a structural problem)
- Net profit margin: 8–12% (top performers hit 15%; industry average is 3–6%)
- Overhead as % of revenue: 8–15% (above 20% requires immediate attention)
- Revenue per technician: $200K–$350K annually (below $200K signals underpricing or underutilization)
- Labor burden multiplier: 1.4x–1.6x base wage (if you are using 1.0x, you are undercharging)
Revenue is vanity. Margin is sanity. Cash flow is reality.
How to Fix It
Step 1: Know your real numbers. Pull last year's financials. Calculate gross margin by job type—residential service, commercial service, residential install, commercial install. If your P&L is not giving you clean data by category, fix that first.
Step 2: Calculate your true labor burden. Every cost of putting a technician in the field—wages, taxes, workers' comp, benefits, truck cost, tools, phone, uniform—divided by actual billable hours (not total hours). That number is your real labor rate. If it shocks you, good. Now you know.
Step 3: Price for margin, not markup. If you need 30% gross margin and your job costs are $70,000, your price is $100,000. Not $87,500 (which is a 25% markup but only a 20% margin). Use the margin formula: Price = Cost ÷ (1 − Target Margin).
Step 4: Track every job. Implement job costing so you can see actual versus estimated costs on every project. This is the only way to know which work makes money. Without it, you are guessing—and the data shows that most contractors' guesses are optimistic.
Step 5: Review monthly. Look at gross margin by job type, by technician, by customer segment. The patterns will reveal exactly where the margin leaks are and where to focus your attention. A quarterly financial review with the right KPIs catches problems before they become crises.
The Bottom Line
Being busy is not the same as being profitable. If your schedule is full but your bank account is empty, the answer is not more jobs—it is better margins on the jobs you are already running. Fix your labor burden calculation. Fix your markup math. Track your jobs. Review your numbers monthly. That is how the top 10% do it—and there is nothing stopping you from joining them.
Related Posts
Ready to Find Out Where Your Margin Is Leaking?
Our $5,000 Financial Health Assessment identifies every gap between what you bid and what hits the bank—with a clear plan to fix it. $50K+ in realistic upside, or your money back.
25 years helping contractors close the gap between bid and bank.