What Is True Profit Margin?

The number most contractors have never actually calculated — and why it changes how you price every job.

JobMargin estimate screen showing true profit margin — revenue, cost, and margin visible before sending

The gross margin trap

A contractor quotes a job for $1,000. Materials run $200. Labor runs $200. Gross profit on the invoice: $600. Good day.

That contractor goes home thinking he made $600.

He didn't.

He made $600 minus the slice of his insurance that the job ate. Minus the slice of his truck payment. Minus the fuel he burned getting to the job and back. Minus the license fees, the software subscriptions, the phone bill, the accountant, the workers comp premium, the liability policy, and the hundred other costs that don't show up on any estimate — but that have to be paid whether the job happens or not.

That $600 is gross margin. It's not what he kept.

The number he actually kept is his true profit margin. And until a contractor calculates it, he's pricing jobs in the dark.

Most service businesses operate on a simple mental math: revenue minus materials minus labor equals profit.

That math misses roughly a third of what it actually costs to run the business.

The missing piece is indirect cost — also called overhead. It's every expense that keeps the company alive but doesn't attach to a specific job. Commercial truck insurance. General liability policy ($2M is table stakes in most trades). Workers comp premium. Business license, professional license, municipal permits. Phone, internet, software subscriptions. Fuel that doesn't get tracked per job. Equipment maintenance and depreciation. Office or storage space. Accountant, bookkeeper, tax prep. Marketing, website, lead generation spend. The owner's own salary, health insurance, retirement contribution.

None of that is on the estimate. All of it gets paid every month anyway.

A contractor who only tracks revenue, materials, and direct labor is tracking gross margin and calling it profit. When the year ends and the accountant hands back the P&L, there's a gap between "what I thought I made" and "what the business actually earned." That gap is the uncalculated indirect cost.

Running the math on my own books

Two years ago I sat down and ran the real numbers on my pressure washing business.

Not an estimate. Not a guess. Every recurring expense the company has, annualized, divided by the hours the truck rolls.

The answer: $59.63 per hour.

That's what it costs me just to exist as a business. Before I buy a drop of sodium hypochloride. Before I pay a crew member. Before I burn a gallon of diesel driving to a job.

If my truck leaves the driveway, I'm $59.63 in the hole for every hour it's out. That's the indirect cost. That's the number I had to beat on every job to actually make money — not just the direct cost of labor and materials, but the hour of business-existing time the job consumed.

Most contractors don't know that number. They don't know what their equivalent is.

And that's fine when jobs have fat margins. When you're cleaning a house for $450 in two hours, the numbers bail you out — you're making enough gross margin that the indirect cost disappears into the noise. Nobody runs the math because nobody has to.

The problem shows up on the jobs that feel like they should be profitable and quietly aren't.

The $35.80 that wasn't there

I did a commercial job — 22,000 square feet. Two and a half hours. Everything went right: the crew was sharp, the equipment worked, the weather held, nobody got hurt, the customer was happy.

At my commercial rate I should have made $625.

My actual cost on that job was $660. Direct materials. Direct labor. A gallon of fuel. Plus the indirect cost allocation — two and a half hours at $59.63 per hour = $149. Plus the share of a dozen other fixed expenses that the job consumed.

I lost $35.80 on a job where everything went right.

Not where anything went wrong. Not where I got burned by a customer. Not where a crew member screwed up. A completely clean job where I walked away $35.80 down because my price didn't cover what it actually cost me to do the work.

That's the thing about true profit margin. It's visible on a calculator. It's invisible on an invoice. And if you're not calculating it, you don't find out until the year ends and the numbers don't add up.

Why this is a pricing problem, not an accounting problem

Most contractors discover indirect cost through their bookkeeper, at the end of the year, when the P&L comes back thinner than expected.

By then it's too late. The jobs are already done. The prices are already set. The thin margins are baked in.

The fix isn't better bookkeeping. The fix is pricing with the indirect number already in your hand, on the estimate screen, before you send the quote.

I can walk into a 2,500 square foot stucco ranch in Palm Coast, do the math on my phone, and know the exact price where I clear 35% true margin — not 35% gross margin, 35% after everything. That's a different number than the one a contractor gets by eyeballing the job and rounding to what feels right.

When I know my indirect cost is $59.63 per hour, and I know the job will take me an hour and fifteen minutes, and I know my chemical cost and my fuel cost for that job, I'm not guessing at the price. I'm calculating backward from the margin I want to keep.

That's what true profit margin lets you do. Price to an outcome, not to a feeling.

A job where the math worked

A real job. 3BR/2BA ranch, mixed siding, screen enclosure. Thirty minutes away. 1,500 square feet off the property appraiser's site.

I charged $0.20 per square foot for the house wash — $298.95. Added $125 for the driveway and sidewalks. Total revenue: $423.95.

Direct costs: $50 labor (I ran the job solo), $30 fuel, $35 chemicals. Total direct cost: $115.

Gross margin: $309, or 73%.

True margin after indirect allocation: $339 — 80% of revenue, because I worked the job alone and the indirect cost allocation was carried across one person's time instead of two.

That's a profitable job. I knew it was profitable before I sent the estimate. Not because I felt good about it, but because I had the numbers in front of me when I priced it.

On the $35.80 commercial loss, I had the opposite experience. At the time, I didn't see the indirect cost in the estimate. I saw a price that looked fair and a margin that looked reasonable on gross. Now I'd see the whole picture before I clicked send.

Why you'd never click send in the blind

Here's the thing. A contractor who prices a driveway at $0.15 a square foot and a contractor who prices it at $0.20 a square foot can end the year with completely different bank accounts — and neither one may be wrong. The right price depends on close rate, capacity, cost structure, and operational load.

But none of that matters if you can't see the margin.

You can't make a flex-down decision in the dark. You can't compare two price points if you don't know what either one keeps. You can't decide whether to raise prices next year if you don't know what you're keeping this year.

True profit margin isn't a report you run at the end of the quarter. It's the number that should be on the estimate screen before you click send.

Most software doesn't show it. Most contractors don't calculate it. And that's why so many of them end the year making 15 cents on every dollar of revenue and wondering where the money went.

You wouldn't sign a contract in the blind. You wouldn't take a loan in the blind. You wouldn't hire an employee in the blind.

Why would you ever click send in the blind?

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