Pricing & Cost Accounting
How to price HVAC jobs so they actually make money — and where the money disappears when they don't.
The Core Problem
A common pattern in HVAC: revenue is growing but profit is flat. The problem usually isn't volume — it's leakage. Money comes in through service calls, installs, and agreements, then drains out through dozens of small holes that individually look minor but collectively cost 15–30% of potential profit.
The industry average EBITDA margin is roughly 3%. Top-quartile operators run 12–15%. The gap isn't talent or market — it's leakage.
Know Your Loaded Labor Rate
The single most common pricing error in HVAC: using a tech's hourly wage as the labor cost. A tech making $30/hour actually costs $42–$45/hour loaded — taxes, benefits, workers' comp, tools, phone, uniform. This multiplier is typically 1.4–1.6× the base wage and excludes vehicle costs (which add another 0.1–0.2×).
Pricing at $30 instead of $45 means every hour of labor is underpriced by $12–$15. Across 1,500 billable hours/year, that's $18,000–$22,500 of unrecovered cost per tech.
| Component | Typical % | Example ($30/hr base) |
|---|---|---|
| Base wage | 100% | $30.00 |
| Payroll taxes (FICA, FUTA, SUTA) | 10–12% | $3.00–$3.60 |
| Workers' comp (FL NCCI 5537) | 5–8% | $1.50–$2.40 |
| Benefits (health, PTO, etc.) | 15–25% | $4.50–$7.50 |
| Tools, phone, uniform | 3–5% | $0.90–$1.50 |
| Loaded rate | 140–160% | $42.00–$48.00 |
Sources: Profitability Partners, BDR, NCCI Code 5537 (FL 2026 rates)
Build a Flat-Rate Price Book
Quoting by gut means every tech gives a different price for the same job. A flat-rate price book standardizes pricing across your team and ensures every job recovers its actual cost plus target margin.
Know your overhead rate first
Before you can price a job, you need to know what overhead costs per billable hour:
Example: $480,000 annual overhead ÷ 8,000 billable hours = $60/hr overhead allocation. A 4-tech-hour job carries $240 in overhead — that's what it costs to keep the lights on, the trucks rolling, and the office staffed for those 4 hours.
Source: ACCA, Profitability Partners
The pricing formulas
Two ways to get to the same number — markup and margin. Contractors commonly confuse these.
Margin method: Price = Total Cost ÷ (1 − desired profit margin)
Example (margin method): Job costs $3,600 all-in. Target 25% margin. $3,600 ÷ (1 − 0.25) = $4,800 price.
The difference matters: 25% markup on $3,600 = $4,500. 25% margin on $3,600 = $4,800. If you say "25% profit" but use markup math, you're leaving $300 on the table per job.
Update the price book quarterly — material costs have risen 12–18% since 2023. A price book that hasn't been updated in 12+ months means selling at yesterday's material cost.
Margin targets by job type
| Job type | Target gross margin | Source |
|---|---|---|
| Service / repair | 55–65% | ServiceTitan, Oryx-Horn, RelayFi |
| Maintenance | 50–60% | ACCA, ServiceTitan |
| Replacement / install | 40–50% | FieldCamp, BDR |
| New construction | 25–35% | Industry convention |
Material markup ranges
| Part category | Typical markup |
|---|---|
| Small parts / consumables | 150–300% |
| Mid-range components (capacitors, contactors) | 100–200% |
| Major equipment (compressors, coils) | 15–35% |
| Copper / refrigerant | 50–100% |
Source: FieldCamp, Oryx-Horn (2026)
Flat-rate vs T&M: same job, different outcome
A capacitor replacement — same parts, same labor, same customer:
| Method | Customer price | Direct cost | Gross profit | Margin |
|---|---|---|---|---|
| Time & materials | $261 | $67.50 | $194 | 74% |
| Flat rate | $389 | $67.50 | $322 | 83% |
That's +$128 per job. At 10 calls/day, flat-rate pricing adds roughly $330K/year in revenue from the same work volume.
Source: FieldCamp (2026)
Good / Better / Best options
Presenting three options reframes the customer's decision from "should I hire this person?" to "which option fits my situation?" Research shows 30–40% choose the middle option, and 15–20% select premium — neither of which existed without tiered pricing.
Example — AC repair:
| Tier | Price | Margin | Includes |
|---|---|---|---|
| Good | $389 | 72% | Fix the immediate problem |
| Better | $549 | 68% | Fix + address related issues from inspection |
| Best | $699 | 65% | Full system service + maintenance agreement |
Source: FieldCamp (2026)
Common margin errors
- Using wage rate instead of loaded cost — overstates margin by 10–15 percentage points
- Omitting overhead allocation entirely — job "profit" isn't profit if it doesn't cover overhead
- Applying uniform markup across job types — a service call and an install have different cost structures
- Not tracking discounts — discounts given in the field without visibility to the office
- Closing jobs before subcontractor invoices arrive — reporting margin before all costs are in
Source: Oryx-Horn (2026)
Average job prices (2026 benchmarks)
| Job type | Price range |
|---|---|
| AC repair (standard) | $150–$450 |
| AC repair (complex) | $200–$1,000 |
| Furnace repair | $125–$355 |
| AC installation | $3,800–$7,900 |
| Furnace replacement | $1,700–$6,400 |
| Heat pump replacement | $4,200–$7,600 |
| Ductwork | $10–$25/linear foot |
Sources: FieldCamp, Housecall Pro, PipelineOn (2026 pricing guides)
Hourly rate benchmarks
| Service tier | Rate range |
|---|---|
| Basic maintenance | $65–$100/hr |
| Standard service | $80–$150/hr |
| Emergency / after-hours | $200+/hr (1.5–2× multiplier) |
| Commercial work | $200+/hr |
Sources: FieldCamp, Housecall Pro 2026 Pricing Guide
Real-world install example
A 3-Ton Carrier residential install at $6,800 — line by line:
| Line item | Amount |
|---|---|
| Revenue | $6,800 |
| Direct labor (2 techs × 7 hrs × $41/hr) | −$574 |
| Equipment (3-ton Carrier 16 SEER) | −$2,100 |
| Materials & supplies | −$380 |
| Subcontractors (electrical permit) | −$175 |
| Allocated overhead (14 hrs × $60/hr) | −$840 |
| Job profit | $2,731 |
| Job margin | 40.2% |
| Profit per hour | $195/hr |
This is what a profitable install looks like when you track every cost. Without overhead allocation, this job appears more profitable than $2,731 — that gap is the difference between profit on paper and profit in the bank.
Source: Oryx-Horn (2026 job costing guide)
Where the Money Disappears
Ten categories of profit leaks, ranked by typical annual cost for a $2M company:
| Leak | Annual cost ($2M company) | Ease of fix |
|---|---|---|
| Pricing errors (no price book, stale prices) | $40,000–$80,000 | Medium |
| Missed revenue per call (no options presented) | $50,000–$150,000 | Hard — behavior change |
| Unbilled time (drive, callbacks, diagnostics) | $30,000–$60,000 | Medium |
| Callbacks and warranty rework | $30,000–$120,000 | Medium |
| Material shrinkage (parts not billed) | $20,000–$50,000 | Easy — truck audits |
| Marketing waste (no call tracking) | $15,000–$40,000 | Easy — add tracking |
| Agreement underpricing | $10,000–$30,000 | Easy — recalculate |
| Dispatching waste (poor routing) | $20,000–$50,000 | Medium |
| Overhead under-recovery | $15,000–$40,000 | Easy — recalculate |
| Slow pay and bad debt | $10,000–$30,000 | Easy — collect at completion |
Sources: ACHR News, ACCA, FieldEdge, Built on Tenth, Profitability Partners, ServiceTitan
Start here (quick wins)
Material audits, call tracking, agreement repricing, overhead recalculation, collect-at-completion policy. Each takes a day or less to implement and starts recovering money immediately.
Then fix pricing
Build or update the price book with loaded labor rate and current material costs. Highest-impact fix but requires more upfront work.
Then change behavior
Train techs on options presentation, implement callback root-cause tracking, improve dispatching. These are behavior changes that take 60–90 days to show results.
How to Find Your Leaks: The 5-Step Audit
Don't try to fix everything at once. Run this audit in order — each step takes 2–4 hours, and the first three usually find the biggest problems.
Step 1: The 20-job audit
Pull 20 recent completed jobs (mix of service, repair, install). For each one, calculate actual burdened labor cost (hours × loaded rate, including drive time), actual material cost (what was purchased, not quoted), and overhead allocation. Compare total actual cost to what was invoiced. If more than 5 of 20 jobs show actual margin 5+ points below target, you have a pricing or cost-tracking problem.
Step 2: The time audit
Pick one week. Track every tech's hours by category: billable service/repair, billable install, drive time, callback/warranty, shop/warehouse, admin/paperwork, idle/waiting. Calculate utilization rate (billable ÷ paid). Target: 70%+. Below 65% = leaking time.
Step 3: The material reconciliation
Compare materials purchased (supply house invoices) to materials billed to jobs (from your invoicing system) over the last quarter. The gap is your shrinkage rate. Over 5% = needs investigation.
Step 4: The callback review
Pull all callbacks from the last 90 days. Categorize by root cause: tech error, parts failure, customer education (normal operation perceived as problem), unrelated new issue (miscategorized — not actually a callback). Track by tech. If one tech drives more than 30% of callbacks, it's a training issue, not a company problem.
Step 5: The agreement audit
Calculate cost to deliver each agreement tier vs. what you charge. Factor in: actual visit time (not scheduled — actual), drive time, parts/consumables used, admin/scheduling cost, overhead allocation. If any tier costs more to deliver than it charges, that tier is losing money.
Break-Even: How Many Billable Hours Cover Your Overhead
Every service business has a break-even point in billable hours — the minimum your team must bill before you cover overhead.
Example: 5-tech company, $40K/month overhead, $85/hr effective billing rate, $45/hr loaded labor.
$40,000 ÷ ($85 − $45) = $40,000 ÷ $40 = 1,000 billable hours/month minimum
With 5 techs × 22 working days × 6 billable hours/day = 660 hours. That's only 66% of break-even. You need all 5 techs billing at 6+ hours/day, every day, plus utilization improvements or higher effective rates.
Sources: FieldCamp, ServiceTitan, Contracting Business
Sources (10)
- ACCA — overhead allocation guidelines
- Profitability Partners — loaded labor rate methodology
- ACHR News — billable utilization benchmarks
- FieldEdge — service business financial benchmarks
- JordanWorx — cost-per-billable-hour pricing methodology
- Built on Tenth — callback rate and margin benchmarks
- Oryx-Horn — 2026 job costing guide, common margin errors
- FieldCamp — flat-rate vs T&M comparison, G/B/B structure, 2026 job prices
- Housecall Pro — 2026 pricing guide
- PipelineOn — 2026 pricing benchmarks