The Overhead Trap

Every contractor pays it. Most of them don't know the number. The ones who do price differently.

JobMargin estimate screen showing indirect cost allocation and true margin

The math most contractors get wrong

A contractor looks at a job and does the math in his head. Materials: $80. Labor: $120. He's charging $450. That's $250 in gross profit on a two-hour job — $125 an hour. Feels good. He sends the estimate.

He's not wrong about any of those numbers. He's wrong about what they mean.

Because that contractor also pays a $1,100 liability policy every year. And $2,500 for commercial truck insurance. And a business license. And workers comp. And fuel that doesn't get tracked per job. And equipment that wears out. And a phone bill. And software. And an accountant. And probably rent on a storage unit.

None of that is on his estimate. But it all gets paid every month, whether or not that $450 job happens.

When he sat down to price the job, he only saw the costs that moved with it. The costs that sit still — the ones he pays even when the truck doesn't leave the driveway — never entered the math.

That's the overhead trap. Every contractor is caught in it until someone runs the full number on them.

What overhead actually is

Overhead is a word that gets thrown around loosely, so let's be specific.

Overhead — also called indirect cost — is every expense that keeps the business operating but doesn't attach to any single job. It's the cost of being a business, separate from the cost of doing a job.

Direct costs move with the work. If you don't do the job, you don't pay the materials. You don't pay the labor. You don't burn the fuel to drive to it. Those costs show up on the estimate.

Indirect costs sit still. You pay them whether the phone rings or not. You pay them whether you book two jobs that week or twenty.

Here's what indirect cost looks like for a typical pressure washing operation:

Commercial truck insurance: $2,500 a year. That's $208 a month. It gets paid when the truck is in the driveway and when it's on the job.

General liability ($2M): $1,100 a year. That's $92 a month. Your customers require it. Your bigger commercial jobs don't exist without it.

Workers comp: varies widely by state and headcount, but expect 4-8% of wages if you have employees.

Business license, professional license, municipal permits: a few hundred a year, minimum.

Phone, internet, software subscriptions: easily $200-$400 a month once you add them up.

Fuel not tied to a specific job: the drive to the supply house, the running around between bids, the bank runs. This disappears into a general fuel number.

Equipment depreciation: your $8,000 pressure washer has a finite life. Every job is burning through a share of it.

Marketing, website, lead generation: whatever you're spending to keep the phone ringing.

Your own salary, your health insurance, your retirement contribution: you're working in the business, so these are costs too.

Accounting and tax prep at year-end.

Roll all of that up for a year. Divide by the hours the truck actually rolls. That's your indirect cost per hour.

For my pressure washing business, running that math came out to $59.63 per hour. Every hour the truck is out, that's what it costs me to exist as a business, before any direct cost on the job.

Most contractors never run that calculation. And that's the trap.

How contractors get caught

The trap works because direct costs are easy to see and indirect costs are invisible unless you look for them.

A contractor opens his calendar. He sees the jobs. He sees the revenue. He sees the materials receipts. He sees the hours his crew worked. All of that is concrete and observable.

What he doesn't see — because it's not on any single job's paperwork — is the pile of fixed expenses sitting in the background eating margin.

So he prices jobs using the numbers he can see. Materials plus labor plus a markup he feels good about. The markup is meant to cover overhead, but it's a guess. He doesn't know what his overhead actually is, so he can't calculate whether the markup is enough.

Sometimes it is. Sometimes it isn't. A contractor pricing on feel has some jobs where the markup overshoots overhead and he makes real money. Has some where it undershoots and the job loses money without him knowing. The winners and the losers average out to something, and whatever that something is shows up at the end of the year on the P&L.

That's the number that gives contractors the cold feeling in December. The revenue looked fine all year. The take-home is thin. What happened?

Overhead happened. All year. In every job.

The $99 driveway problem

Here's where the trap gets dangerous.

In every market, there's a guy cleaning driveways for $99. Sometimes it's $150. Sometimes it's a house wash for $100. He's got a pressure washer in the back of his truck, a tank, and a Facebook page. He drops flyers in subdivisions.

That guy doesn't have a $1,100 liability policy. He doesn't have commercial truck insurance. He doesn't have workers comp because he doesn't have employees. He doesn't have business licenses in most cases. He's not running equipment that depreciates seriously — it's a residential-grade machine.

His indirect cost is close to zero. He makes $50 an hour and goes home.

The contractor running a real business with real insurance and real equipment can't compete with that guy on price. He also can't afford to. His indirect cost is real. His $59.63 per hour isn't optional — it's the bill he has to pay before he's made a dollar of actual profit.

So when a customer asks for a quote and compares it to the $99 guy's quote, the legitimate contractor is in a bad spot. He can't drop to $99 without losing money. He has to justify the difference in price. And the only way he can justify it is if he knows his numbers cold — if he can point to specific things his price is covering that the $99 guy's isn't.

The contractor who knows his overhead has a story. The contractor who doesn't know his overhead has a markup he picked out of the air and a gut feeling that the other guy is too cheap. The first one wins bids at higher prices by explaining what the customer is buying. The second one either races to the bottom or loses on price he couldn't defend.

The overhead trap is what makes the $99 guy dangerous. Not because he's taking jobs — the customers willing to hire the $99 guy were never going to be good customers anyway. Because he's pulling down the market's sense of what things cost, and the contractors without a firm grip on their own numbers get dragged down with him.

The fix isn't cheaper, it's calculated

Every time I talk to a contractor about overhead, the first instinct is "I need to cut costs." That's the wrong move.

The real fix for the overhead trap isn't reducing overhead. Overhead is mostly necessary. The insurance is required. The licensing is required. The equipment is required. The truck is required. A few line items are trimmable, but the big ones aren't going anywhere.

The fix is knowing your number so you can price around it.

A contractor who knows his indirect cost is $59.63 per hour doesn't have to do anything different operationally. He just has to make sure every job he quotes covers that number plus direct cost plus whatever margin he's targeting. Not in a rough way. In a specific way. With the number on the estimate screen, before he sends the quote.

A contractor who knows his indirect cost can look at a four-hour job and say: that's $238 of indirect cost alone. Direct cost on top. My target margin on top of that. The price comes out of the math, not out of a gut feel.

A contractor who doesn't know his indirect cost is pricing blind. He might be pricing too high and losing jobs. He might be pricing too low and losing money. He has no way to know which.

The trap isn't that overhead exists. Overhead is normal. The trap is not knowing what your overhead is. Everything good starts with running the calculation once, on a quiet afternoon, with the bank statements and the insurance bills and the year's expenses laid out.

Thirty minutes of math on a spreadsheet is the difference between pricing by feel and pricing by math. For most contractors, that thirty minutes is the most profitable thirty minutes they'll spend all year.

The one thing equipment has to do

There's one place cutting overhead actually matters, and it's worth naming because most contractors get it wrong in the other direction.

Equipment.

Early on I bought a 5.5 gallon pressure washer because it was cheaper than the 8 gallon. That decision cost me years of extra time per job. I should have stretched and bought the 8 gallon, or skipped straight to what I run now — 10 gallon machines with remote controls, electric reels, buffer tanks, all on a box truck built for efficiency.

The expensive equipment doesn't cost more per year on a pure-overhead basis. It costs more up front. But it turns a four-hour job into a three-hour job. That saved hour is real money — direct labor saved, indirect cost allocation reduced, and one more job slot opened up in the day.

I would spend an extra $500 on equipment to save 15 minutes per job. Over a year, that's hundreds of hours back. The math on equipment is different from the math on insurance.

Most contractors undershoot their equipment investment because the purchase looks expensive. The hourly cost of running undersized equipment is the number they should be looking at instead. If your indirect cost is $59.63 per hour and you're wasting two hours a day on an undersized machine, that's $120 a day on the floor. Four months of that pays for a better machine.

The overhead trap is about knowing your numbers. Equipment is where knowing them changes what you buy.

What changes when you know the number

When a contractor finally runs the indirect cost math, a few things happen at once.

Pricing gets sharper. He stops guessing at markup and starts calculating from a known floor. The jobs he's been underpricing get corrected. The jobs he's been overpricing — and losing — come down to where they should be.

The $99 guy stops being scary. The contractor can look at a quote war with a lowball competitor and know exactly what his floor is and what the gap in service covers. He can walk away from bids that would have lost money without agonizing over them.

Capacity decisions get clearer. Hiring an employee, buying a second truck, adding a service — all of these decisions become do-the-math questions instead of gut calls.

And maybe the most important one: the year's P&L stops being a surprise. The take-home number at the end of December matches what the contractor thought he was making. Because the indirect cost was on every estimate, not hiding in the background.

The overhead trap closes when the number becomes visible. That's the whole thing.

Run the number once. Put it on every estimate forever.

Rob Wood is a pressure washing contractor in Palm Coast, Florida, and the founder of JobMargin. He started his business after three years using Markate as his operating software and built JobMargin when he realized the tools contractors were paying for didn't show them the one number that actually mattered — what they kept on each job.

Read Rob's full story →

Ready to see your real profit margin?

Start a free trial. No credit card. Cancel anytime.

Start Your Free Trial Try the Compensation Calculator