# How Automatic Time Tracking Recovers 15% of Unbilled HVAC Labor ## Quick Summary Your techs are guessing their hours, and you're losing roughly 15% of billable labor because nobody tracks the actual work intervals. Automatic WORK/PAUSE time tracking with reason codes captures every minute so it ends up on the invoice. ## The Problem Ask any HVAC tech how long a job took and you'll get a round number. "About two hours." "Hour and a half, maybe." They're not lying — they're just estimating after the fact, and humans are terrible at estimating time. Studies show people underreport work time by 10-20% consistently. Here's where the money leaks. Your tech arrives at 9:15, spends 10 minutes talking to the homeowner, works until 10:00, runs to the van for a part, comes back at 10:20, works until 11:30, then spends 15 minutes writing up the invoice. They log "2 hours." The actual billable time was 2 hours and 15 minutes. On a $150/hour labor rate, that's $37.50 left on the table — on a single call. Scale that across your whole operation. A 10-tech shop running 8 calls per tech per day, 250 days a year. If each call loses an average of 15 minutes of unbilled time, that's 20,000 tech-hours per year with 3,000 hours unaccounted for. At $150/hour, that's $450,000 in labor happening and $67,500 never making it to an invoice. The other problem is accountability. When a job takes way longer than it should, you can't diagnose why without data. Was the tech waiting on parts? Did the diagnosis take an hour? Was there a callback issue? Without time intervals, it's all guesswork at the Monday meeting. ## How to Fix It Opsler tracks time automatically using WORK and PAUSE intervals. Here's how it flows: 1. Tech arrives on site, taps "Start" — **WORK interval begins** 2. Tech needs to grab a part from the van — taps "Pause," selects reason code (Parts Run, Break, Customer Delay, Travel) — **PAUSE interval begins** 3. Tech comes back, taps "Resume" — **WORK interval begins again** 4. Job complete, tech taps "Stop" — all intervals are recorded Every interval is timestamped. The invoice pulls total WORK time automatically. Pause time is logged separately with reason codes so you can see exactly where non-billable time goes. Your office sees a timeline for every job: 45 minutes of work, 12-minute parts run, 38 minutes of work, done. If a job that should take 90 minutes has 40 minutes of pause time, you know something went wrong — and you know what category it fell into. ## The Numbers For an HVAC company doing **$500,000/year in labor revenue**: - **Unbilled labor** (15% underreporting): **$75,000/year** lost - **With automatic tracking**: Recovery of 80-90% of that gap = **$60,000-$67,500/year** back on invoices - **Per-tech daily impact**: ~15 minutes recovered per call × 6-8 calls = 1.5-2 hours/day properly billed The reason code data also helps you fix operational problems. If "Parts Run" shows up on 30% of jobs, your van inventory needs work. If "Customer Delay" is high, your arrival notifications need tightening. ## FAQ ### Do techs find the start/pause/resume buttons annoying? It's three taps across the whole job. Most techs prefer it over filling out paper timesheets at the end of the day, because they don't have to remember anything. ### What if a tech forgets to pause or unpause? Opsler flags anomalies — like a WORK interval that runs 4+ hours straight or a PAUSE that exceeds 45 minutes. Your office can review and adjust before invoicing. ### Can I set different labor rates for different job types? Yes. Your pricebook defines labor rates by service category. Diagnostic calls, install work, and maintenance each pull the correct rate into the time calculation. ### Does the time tracking work offline? Fully. The tech app records all intervals locally and syncs when connectivity returns. No signal at the job site doesn't mean no time tracking. ### How does this connect to payroll? Opsler exports time data by tech, by day, with WORK and PAUSE breakdowns. Feed it into your payroll system or use the CSV export for manual processing. Learn more: https://opsler.com/blog/hvac-automatic-time-tracking/