How to Price Home Service Jobs Confidently
To price home service jobs confidently, build every quote from a fully-loaded job cost - materials, burdened labor, and overhead - then apply a markup that hits your gross margin target. For HVAC, target 50-65% gross on service work. For roofing, build toward 25-40% gross. Most contractors underprice by 15-20% because they ignore acquisition costs averaging $84 to $228 per lead.
Key Takeaways
- Roofing Google Ads leads average $228.15 each - your price has to absorb that cost or you're losing money on every job
- HVAC companies responding to leads within 2 minutes convert 62% of them vs 28% at the 42-minute average response
- Average HVAC repair ticket grew 47% from $818 in 2021 to $1,205 in 2025 - your prices should reflect that
- Roofing gross margins run 25-40% but net margins shrink to 6-12% after overhead - most owners price for gross and get surprised by net
An electrician named “ayerforce” from Hubertus, Wisconsin, posted on the Mike Holt Electrical Forums after 3 years in business: “I finally got a chance to sit down, figure out our operating costs and realized we’ve been operating at basically net zero profit for the last 3 years.” Three years. Zero profit. Full schedule.
That’s what bad pricing looks like from the outside - a busy company that’s broke.
Most contractors don’t have a lead problem. They have a pricing problem dressed up as a lead problem.
What Does It Actually Cost to Acquire a Home Service Lead?
Before you set a price on any job, you need to know what you paid to get that phone to ring.
LocaliQ analyzed 3,211 home service campaigns from April 2024 through March 2025 and found Google Ads cost per lead averages $84.92 for HVAC, $129.02 for plumbing, and $228.15 for roofing. That’s before your CSR picks up the phone.
If you’re pricing a $400 HVAC service call without factoring in $85-$128 of acquisition cost, you’re not making what you think you’re making.
Roofing CPL looks scary until you remember the average ticket. Most one-truck residential roofers run jobs at $12,000-$18,000 per project, so a $228 lead that closes at 30% still pencils. The math only breaks when your close rate drops and your pricing doesn’t account for the dead leads you paid for anyway.
A plumber on r/sweatystartup posted three years of revenue: $280K solo in year one, $480K in year two, and $510K in year three.
He was running at 70 hours a week by year three. Hours were maxed and growth had stalled.
The only lever left was ticket size and margin. That’s where pricing becomes the business.
How Do You Build a Price That Actually Makes Money?
Start with your fully-loaded job cost. Not materials plus a gut-feel markup. Every dollar that touches the job.
That means materials at actual cost, burdened labor (wages plus payroll taxes plus workers comp plus benefits), any commissions or spiffs, and a per-job allocation of your fixed overhead - rent, insurance, truck payments, software, and your marketing spend.
ServiceWorks Academy’s contractor pricing guide puts typical markups at 20-30% for plumbers and electricians, with specialty or high-risk work reaching 40%. General contractors tend to run 10-20%. Those are floors, not targets.
Your target is a gross margin that leaves room for overhead and still hits net. For HVAC, a healthy 2026 business targets 15-25% net profit margin, with gross margins of 50-65% on service work and 35-45% on installations, per FieldCamp’s 2026 HVAC pricing guide.
For roofing, industry-reported gross margins run 25-40% and net margins shrink to 6-12% after overhead and taxes, per Roofr.com’s Fall 2025 benchmark. Most roofing owners price for gross and get blindsided by net.
What Happens When You Price Too Low and Win Every Job?
You end up like “ayerforce.” Busy. Broke. Confused.
The trap is that low prices produce full schedules, and a full schedule feels like success. But a 10-truck shop running at 8% net margin makes the same take-home as a 4-truck shop at 20% net - with twice the headache, twice the payroll risk, and twice the things that can go wrong.
Contractors report the same pattern consistently: a price increase of 15-20% loses roughly 10-15% of price-sensitive customers and increases margin across the board. You do fewer jobs. You make more money.
The upfront pricing strategy most top-performing contractors use makes this easier to execute because customers know what they’re paying before work starts. No sticker shock. No renegotiation. Cleaner close.
How Do Rising Ad Costs Change Your Pricing Math?
LocaliQ’s 2025 benchmarks found cost per lead increased for 69% of home services businesses, with an average year-over-year increase of 10.51%. Cost per click increased for 75% of businesses, and conversion rates decreased for 10 out of 16 home service subcategories.
Your ad spend is going up. Your conversion rate may be going down. If your prices stayed flat last year, you lost margin.
A solo HVAC operator tracked on r/sweatystartup was running $720K in revenue on $4,200/month in marketing - about 7% of revenue, with $2,800 going to Google Ads and $800 to LSA. That’s a disciplined spend ratio.
The problem most contractors have isn’t the percentage - it’s not knowing what each channel actually costs per booked job.
Home and Home Improvement ranks among the highest-cost industries on Google Ads at $8.33 per click, per WordStream’s 2026 benchmarks - behind only attorneys and dentists. Your $5 click is now an $8 click. Price accordingly or your ad budget starts subsidizing jobs that don’t cover overhead.
Tracking which campaigns actually produce booked revenue - not just clicks - is where most contractors leak money. The guide on tracking campaign performance shows exactly what to measure.
How Does Response Speed Affect What You Can Charge?
Speed of response doesn’t just affect whether you win the job - it affects your pricing power.
ServiceTitan’s 2025 benchmark of 100,000+ businesses found the average home service company converts 28% of inbound leads into booked appointments at a 42-minute average response time. Companies responding within 2 minutes convert 62% of leads.
If you’re paying $128 per plumbing lead and booking 28% of them, your true cost per booked job is about $457. Respond faster and book 62%, and that same $128 lead costs you $206 per booked job.
You didn’t change your price. You changed your process.
Invoca’s 2025 call conversion report, based on analysis of over 60 million phone calls, found that 37% of phone leads converted during the call itself. That means your CSR is a pricing lever - a well-trained CSR who books 85% of calls makes every marketing dollar go further than a price cut ever would.
ServiceTitan benchmarks place average residential CSR book rates at 65-75%, with top-performing call centers above 85% and weaker ones below 50%. If your CSR is booking at 55%, you’re not getting value from your ad spend.
Training your call handlers to book more jobs without discounting is one of the fastest ROI improvements you can make. The breakdown on training CSRs to book more calls is worth reading before you adjust any prices.
How Do Ticket Size Trends Change the Pricing Conversation?
The market has already moved. Your prices may not have.
Housecall Pro’s 2026 HVAC Industry Trends Report tracked average repair revenue per HVAC job from $818 in 2021 to $1,205 in 2025 - a 47% nominal increase, or 24% after inflation. The market absorbed those increases. Customers are still calling.
If your HVAC repair tickets are still near $800-$900 because you haven’t raised prices since 2021, you’re leaving real money behind and probably struggling to cover rising labor and material costs.
| Trade | Avg. Ticket | Gross Margin | Net Margin | Google Ads CPL |
|---|---|---|---|---|
| Roofing | $12,000-$18,000 | 25-40% | 6-12% | $228.15 |
| HVAC (service) | $1,205 avg repair | 50-65% | 15-25% | $84.92-$127.74 |
| Plumbing | Varies | 20-30% markup | Varies | $76.40-$129.02 |
An HVAC owner on r/sweatystartup posted in early 2026 about cutting his self-managed Google Ads cost per lead from $187 to $94 after handing campaigns to a specialist agency.
Same budget. Same offer. Twice the leads.
When your CPL drops like that, your existing prices suddenly work a lot better. Optimizing what you spend is just as important as raising what you charge.
A plumbing-and-HVAC operator on ContractorTalk fired his agency, ran ads himself, and watched his cost per booked job double in 60 days. He hired a different agency in month three.
The lesson isn’t “always use an agency.” The lesson is that your acquisition cost is part of your pricing math - and when it doubles, your margins evaporate.
If you’re trying to figure out why your leads aren’t converting even when the phone rings, the breakdown on why leads aren’t converting is a useful next step.
Are You Tracking the Right Numbers to Price Confidently?
Most contractors track revenue. Few track cost per booked job, job-level gross margin, or what percentage of estimates close at current prices.
If you don’t know your close rate by job type, you can’t know if a price increase will hurt volume enough to matter. If you’re not tracking cost per booked job by channel, you don’t know which marketing dollars are producing profitable work.
The contractors who price confidently aren’t guessing. They run actual job costs after every project and know their average ticket, their average margin, and what they paid to get the lead.
That data tells you whether to raise prices, fire a channel, or hire a faster CSR.
For contractors running unsold estimates without follow-up, you’re leaving booked jobs on the table at zero additional ad spend. The system for following up on unsold estimates is one of the fastest ways to improve revenue without touching your pricing or your ad budget.
You can also connect pricing decisions to actual campaign data by reviewing how website traffic translates to booked jobs - most contractors are surprised by how much falls through between click and close.
Frequently Asked Questions
How do I know if my pricing is actually profitable?
Build a job cost from the ground up - materials, burdened labor, commissions, and your cost to acquire the lead. If your markup doesn’t cover all three, you’re working for free. An electrician named “ayerforce” on the Mike Holt Electrical Forums ran 3 years of jobs before realizing he had been operating at net-zero profit the entire time.
What markup should HVAC contractors charge on parts and labor?
Plumbers and electricians typically target 20-30% markup, with high-risk or specialty work reaching 40%, according to ServiceWorks Academy’s contractor pricing guide. The markup floor depends on your overhead - a one-truck operation has different fixed costs than a 10-tech shop. Build the number from your actual P&L, not industry averages.
What is a good net profit margin for a roofing company?
Roofing gross margins run 25-40% but net margins drop to 6-12% after overhead and taxes, per Roofr.com’s Fall 2025 benchmark. Most owners see the gross margin and celebrate too early. The gap between gross and net is where overhead, marketing spend, and insurance eat your take-home.
Why do roofing leads cost so much more than HVAC or plumbing leads?
Roofing average tickets run $12,000-$18,000, which means the math on a $228 lead still works - one close returns 50-100x the lead cost. HVAC and plumbing tickets are smaller so the market bids CPLs down. Storm-prone markets also push roofing CPLs higher because every competitor is bidding on the same insurance jobs simultaneously.
How fast do I need to respond to a lead to actually win the job?
ServiceTitan’s 2025 benchmark of 100,000+ businesses found companies responding within 2 minutes convert 62% of leads vs 28% at the 42-minute industry average. That gap costs most shops dozens of booked jobs per year. Speed of answer is a pricing lever - the faster you respond, the less you need to discount to win.
Pull your last 10 invoices today. Calculate your actual job cost on each one - materials, burdened labor, and what you paid to get the lead. If the margin isn’t hitting 50% gross on service work or 25% gross on installs, you have a pricing problem that more leads will not fix. Start there.
Written by
PipelineOn Research Team