Most contractors who want to make more money try to get more jobs. That’s the wrong starting point.

If your pricing is off, or your overhead is bleeding you quietly, more volume just means more work for the same thin margin. A plumber billing $400,000 a year and netting $55,000 isn’t a volume problem. It’s a math problem.

A 2023 Jobber survey found that 57% of home service contractors reported difficulty maintaining profitable margins, even as revenue grew. More jobs, more stress, same take-home. The contractors who actually improve their income tend to focus on the same handful of things: pricing, overhead, job mix, and how they spend unbilled time.

Here are six ways to move the number. Some work fast. Some take a few months. All of them are more reliable than just working more hours.

1. Find out what you’re actually making per job

Before changing anything, you need to know where you stand. Most contractors can tell you their annual revenue. Very few can tell you their net profit per job.

Pick five jobs from the last 90 days. For each one, add up:

  • What you paid in labor (wages plus payroll taxes plus workers’ comp)
  • What you paid for materials (actual supplier invoice, not your estimate)
  • An overhead allocation (your total monthly overhead divided by the number of jobs you run per month)

Subtract that from what you charged the customer. What’s left is your gross profit on that job.

If you’re routinely seeing gross profit below 25%, you’re either underpricing or your overhead is higher than you think. Probably both.

This exercise takes about 30 minutes the first time. Most contractors who do it find at least one job type that’s consistently underwater. Knowing that is worth more than any other step here.

2. Fix your pricing formula

The single most common way contractors leave money on the table is pricing on habit rather than math.

The formula is: Price = (Labor + Materials + Overhead) / (1 - Target Margin)

Say a job costs you $600 in labor and materials, and you allocate $120 in overhead. That’s $720 in total costs. If you want a 30% profit margin, you divide by 0.70, which gives you a price of $1,028.

If you quoted $900 on that job, you made $180 on $900 of revenue. That’s a 20% margin, not 30%. Over 200 jobs a year, that’s $25,600 you left on the table.

The overhead allocation is where most contractors get it wrong. They forget to include truck payments, insurance, tools, software, licensing, and marketing. Those costs exist whether or not a specific job caused them. If you want to learn the full calculation with a worked example, the guide to how to price a job as a contractor breaks it down step by step.

You also need to decide whether flat-rate or hourly pricing works better for your business. For straightforward, repeatable jobs, flat-rate pricing usually produces higher margins because you capture any efficiency gains from doing the job faster. For complex or open-ended work, hourly pricing protects you from scope creep. The comparison of flat-rate vs. hourly pricing walks through the trade-offs by job type.

3. Cut overhead you’ve stopped noticing

Every dollar you cut from overhead goes straight to your bottom line without touching revenue. Revenue has to run through margin to benefit you. Overhead cuts are immediate.

Go through your last three months of bank and credit card statements line by line. Look for:

  • Software subscriptions you’re not actively using (many contractors end up paying for two or three scheduling tools after switching)
  • Insurance premiums you haven’t compared in two or more years
  • Vehicle expenses for equipment that could be consolidated
  • Supply accounts where you’re not negotiating pricing or using a volume discount

Beyond subscriptions, look at your biggest cost lines: insurance and vehicles. Commercial auto and general liability premiums vary significantly by carrier. Getting two or three quotes every two years takes a few hours and can save $1,500 to $3,000 annually.

One landscaper cut $740 a month from overhead in one afternoon by canceling a CRM he’d migrated away from, consolidating two overlapping insurance policies, and switching to a fuel card with better rebates. That’s $8,880 a year that moved from expenses to take-home, without touching a single customer.

4. Raise your prices

This sounds obvious. Most contractors resist it anyway.

The fear is customer pushback and losing jobs. The reality, for most trade businesses, is that a 10-15% price increase loses very few existing customers and adds significant margin because your fixed costs don’t increase proportionally.

If you’re booked out three or more weeks, your prices are almost certainly too low. The market is telling you that demand exceeds your capacity. When that’s true, the right move is to charge more, not take on more work at the same rate.

A roofing contractor booked four weeks out who raises prices 12% might lose two or three price-sensitive customers. Those same two or three openings fill back up from demand that was already waiting. He ends up doing the same number of jobs with 12% more revenue and no extra hours.

Don’t apologize when raising prices. Don’t lead with “I hate to do this, but…” State it clearly: “Our rates are going up 12% starting next month. Here’s our current availability if you’d like to schedule before then.” The guide on how to raise prices as a contractor covers timing, exact scripts, and what to expect from different customer types.

5. Shift your job mix toward higher-margin work

Not all jobs pay equally. Some are fast, predictable, and profitable. Others drag on and eat into other jobs.

Think about the last 20 jobs you completed. Which ones felt good when you walked off the site? Which ones cost more time than expected, required extra trips, or ended with callbacks?

High-margin jobs tend to share traits: minimal callbacks, predictable scope, repeat customers, or specialized skills that limit price competition. Low-margin jobs often involve a lot of drive time, vague scope, or customers who compare three quotes and pick the lowest number.

You don’t have to stop doing low-margin work immediately. But you can price it higher so it’s worth the hassle, refer it out and take a referral fee, or quietly stop marketing to that segment.

A painting contractor I talked to dropped residential exterior repaints entirely after doing his job profitability audit. He was spending 40% of his time on jobs that generated 18% of his revenue. He refocused on commercial interior work and smaller repeat residential clients. His effective hourly rate went from $62 to $94 without any new marketing spend.

The Bureau of Labor Statistics reports that specialty trade contractors have some of the widest profit margin variance in the construction industry, often because companies doing identical work in the same market charge wildly different rates depending on how well they understand their own numbers.

6. Stop letting unpaid time disappear

Most contractors track job time. Almost none track the time between jobs.

Drive time, estimate appointments that don’t convert, supply house trips, admin time, and callbacks all have a real cost. If you’re working 50 hours a week but billing 30 of them, your effective hourly rate is 40% lower than your invoice rate suggests.

A few specific places to look:

Estimates that don’t convert. If you’re closing less than 50% of estimates, either your pricing is out of market or you’re giving time to leads that aren’t serious. Tracking your close rate by job type reveals which estimates are worth your time. A basic spreadsheet works. If you want to cut admin load, contractor CRM software can automate follow-up and track conversion rates automatically.

Supply runs. Every trip to the supply house that could have been one trip is unbilled time. Pre-staging materials the day before a job is one of the highest-leverage time habits in the trades. A plumber running two jobs a day who eliminates one daily supply run saves around four to five hours a week.

No-shows and last-minute cancellations. One no-show can wreck a full day’s schedule and cost several hundred dollars in lost revenue. A $200 deposit on any job over $500 eliminates about 80% of cancellations. It also filters out leads who were never serious, before they waste your time.

Callbacks. Every callback is unpaid labor. Track which job types generate callbacks and whether specific technicians or installation methods are causing them. Callbacks on jobs priced to a tight margin can turn a profitable job into a loss.


The contractors who make the most money per hour worked are not usually the ones running the highest volume. They price right, know their overhead, audit job profitability periodically, and say no to work that doesn’t pay.

Start with the job audit. Pick five recent jobs and run the numbers. What you find will tell you which of the other five things to fix first.

group

The ProTradeHQ Team

We're veteran contractors and software experts helping the trade community build more profitable, less stressful businesses through practical systems that work in the field.