Financial Dashboard & KPIs
The numbers every HVAC contractor should track — with formulas, targets, and what each one actually tells you about the business.
The Problem
Revenue is the easiest number to track. Margin, cost per lead, and cash flow timing are harder — but they're what separate companies that grow from companies that plateau.
The fix isn't more numbers — it's the right numbers, reviewed consistently. Five to ten KPIs reviewed weekly will tell you more than a 30-page report you never read.
The Weekly Scorecard
These are the numbers to review every Monday morning. Same metrics, same format, every week. The team should be able to recite them.
| KPI | Formula | Target | Review |
|---|---|---|---|
| Revenue per tech per day | Daily revenue ÷ active techs | $2,400+ (HVACProfitMath) | Daily |
| Average service ticket | Service revenue ÷ service jobs | $350–$450 (BDR) | Weekly |
| Booking rate | Booked ÷ total leads × 100 | 42%+ avg, 62–70% elite (Built on Tenth) | Weekly |
| Billable utilization | Billable hours ÷ total hours | 75–80% (avg is 60–65%) (ACHR News) | Weekly |
| Agreement enrollments (MTD) | New agreements this month | Track trend, not a fixed target | Weekly |
Monthly KPIs
| KPI | Formula | Target |
|---|---|---|
| Close rate (by tech) | Sold ÷ presented estimates | Track per tech — reveals training gaps |
| Service agreement renewal | Renewed ÷ due × 100 | 80%+ (HVACProfitMath, ACHR News) |
| Net profit margin | Net profit ÷ revenue × 100 | 15–20%+ (HVACProfitMath, FieldCamp) |
| Collection cycle | Avg days to collect | Under 15 days residential; 45–90 days commercial (HVAC Know It All, HARDI) |
| First-time fix rate | Fixed first visit ÷ total calls | 80%+ avg, 90%+ top (ServiceTitan) |
| Average install ticket | Install revenue ÷ installs | $5,000–$8,000+ (FieldCamp, Oryx-Horn) |
Profit Margins by Job Type
Not all work is equally profitable. Track margins by department — lumping everything into one "revenue" number hides which work pays and which doesn't.
| Job type | Gross margin | Net margin | Key driver |
|---|---|---|---|
| Service & repair | 50–65% | 15–25% | Low material cost, high labor value |
| Maintenance agreements | 40–60% | 20–35% | Recurring revenue, lower per-call overhead |
| Residential install | 35–50% | 10–20% | High material cost, competitive bidding |
| Commercial install | 25–40% | 8–15% | Intense price competition |
| New construction | 20–30% | 5–10% | Builder relationships = price pressure |
Source: FieldCamp (2026)
Company size impact on net margins
| Size | Net margin | Notes |
|---|---|---|
| Solo (1 tech) | 15–30% | Minimal overhead |
| Small (2–5 techs) | 5–10% | The danger zone — overhead spike |
| Mid-size (6–15 techs) | 8–15% | Overhead spreads |
| Established (15–30 techs) | 10–18% | Economies of scale |
| Large (30+ techs) | 8–12% | Management overhead increases |
Customer Acquisition Cost (CAC)
What it actually costs to get a new customer — not just the ad spend, but everything: ad spend, agency retainers, CSR payroll allocation, website costs, call tracking, CRM, review incentives, referral bonuses. Reported CAC of $80–$150 typically reflects ad spend only — true acquisition cost including CSR time, software, and call tracking runs 40–60% higher (PipelineOn, 2026).
| Channel | CAC | Close rate |
|---|---|---|
| Referrals | Under $50 | Highest |
| Organic SEO / GBP | $50–$150 | 6–9 month ramp |
| Google LSA | $168–$190 | 38–44% book rate |
| Google Ads PPC | $300–$400 | 25–30% close rate |
| Aggregators (Angi) | $542 | 8–12% close rate |
Source: PipelineOn (2026). Note: CPL (cost per lead) ≠ CPC (cost per click). Blended CPL across 816 contractors is $104 (SearchLight Digital, 2026). The $9 figure commonly cited is CPC.
Customer Lifetime Value
| Customer type | CLV |
|---|---|
| Service-only (no plan) | $1,200–$3,500 |
| Install, no plan | $8,000–$15,000 |
| Maintenance plan member (full lifecycle) | $25,000–$47,200 |
| Average (blended) | $15,340 |
Source: PipelineOn (2026)
CAC payback periods
How long it takes to recover what you spent acquiring each customer type:
| Scenario | Payback period |
|---|---|
| Service call with upsell | 3–6 months |
| Standard service (no upsell) | 6–12 months |
| Maintenance plan enrollment | 6–9 months |
| Install only (no plan) | 12–18 months |
| Install with plan | 6–12 months |
Source: PipelineOn (2026)
How Do You Compare? (Quartile Benchmarks)
Where does your shop fall? These benchmarks from Oryx-Horn's 2026 data let you compare against the industry:
| Metric | Below average | Average | Top quartile |
|---|---|---|---|
| Overall job margin | <35% | 35–50% | 50–65% |
| Profit per tech hour | <$100/hr | $100–$160/hr | $160–$250/hr |
| Install job margin | <38% | 38–52% | 52–68% |
| Service/repair margin | <45% | 45–60% | 60–75% |
| Maintenance margin | <30% | 30–45% | 45–60% |
| Material markup | <20% | 20–35% | 35–50% |
| Overhead as % of revenue | >45% | 30–45% | <30% |
| Revenue per tech (annual) | <$180K | $180–$250K | >$250K |
Source: Oryx-Horn (2026 HVAC job costing benchmarks)
Cash Management
Profit on paper means nothing if the cash isn't in the bank when payroll hits. These are the levers, ranked by impact:
| # | Lever | What it does |
|---|---|---|
| 1 | Collect at completion (residential) | Mobile payment before the tech leaves. Eliminates the "we'll send you a bill" gap. Nearly 3 in 5 small businesses have invoices 30+ days overdue (Housecall Pro, RelayFi). |
| 2 | Deposits on installs | 25–33% deposit when customer approves, balance at completion. A 30% deposit on a $12K system covers the equipment cost before it leaves the supply house. |
| 3 | Negotiate supplier terms | COD = zero float. Net 30 = $40K–$60K more cash in the bank at any time (for a shop spending that monthly on materials). Consolidate with 1–2 suppliers to negotiate. |
| 4 | Workers' comp: pay-as-you-go | Eliminates the 25–33% annual premium deposit and shrinks year-end audit surprises to near-zero. Premiums calculated against actual payroll each period (Larrimer Insurance, TotalWorkComp). |
| 5 | Credit card processing tradeoff | Fees run 2.2–3.5% ($44K–$70K/year on $2M). But card payments clear in 1–2 days vs 15–45 for invoiced checks. The cash flow benefit usually exceeds the fees. Surcharge allowed in most states. |
| 6 | Match big expenses to collection timing | Build a 12-month expense calendar — workers' comp audits, insurance renewals, and quarterly taxes often cluster in Q1 and Q4. Stage reserves to cover them. |
Revenue Mix Targets
What a healthy revenue breakdown looks like:
- Service-to-install ratio: 50/50 or higher service (BDR)
- Maintenance agreement revenue: 20–30% of total (FieldEdge, HVAC Know It All)
- Agreement base: 300+ accounts for meaningful recurring revenue impact — at $180/year average, 300 agreements = $54,000 guaranteed before a single repair call (PushLeads, FieldEdge)
Lost Revenue from Missed Calls
HVAC contractors lose $45,000–$120,000/year from missed and mishandled calls. Mid-size companies lose up to $252,000/year (Higrovi 2026, 4.2M calls analyzed).
- Industry-wide miss rate: 27% of inbound calls (Higrovi)
- After-hours pickup rate: below 18% — but 35–45% of calls come in after hours
- Booking rate improvement from 42% to 65%+ recovers $300K+ annually from the same call volume (Built on Tenth, Revin.ai)
Sources (15)
- HVACProfitMath — industry averages and elite benchmarks
- Oryx-Horn — 2026 job margin benchmarks by quartile
- Lokalhq — 10 KPIs with formulas
- ServiceTitan — operational KPIs and call scripts
- BDR — revenue per tech, marketing allocation
- FieldCamp — profit margins by job type and company size
- PipelineOn — customer acquisition cost benchmarks 2026
- Built on Tenth — booking rate, callback rate, agreement benchmarks
- ACHR News — billable utilization, agreement renewal rates
- CallBird AI, Higrovi — missed call revenue data (2026)
- SearchLight Digital — blended CPL across 816 contractors (2026)
- Housecall Pro — payment collection, deposit practices (2026)
- RelayFi — HVAC banking and cash flow (2026)
- HVAC Know It All — cash flow for contractors
- Larrimer Insurance, TotalWorkComp — pay-as-you-go workers comp