All posts

Time Tracking for HVAC and Plumbing Techs (Field Service Guide 2026)

10 min read

Time Tracking for HVAC and Plumbing Techs (Field Service Guide 2026)

The short answer: The most reliable way to track hours for HVAC and plumbing techs is a mobile app with geofenced punch-in at each service call, paid travel time between stops, per-call hour attribution for job costing, offline support for crawlspaces and basements, a manager approval step, and automatic overtime. Punch is built for exactly this kind of moving field team.

A service tech's day is not one shift. It is a route. A furnace no-heat call in the morning, two maintenance stops before lunch, a water heater swap in the afternoon, and the drive time in between. Each stop is its own bucket of hours, and the drive between them is paid work most owners forget to capture correctly. When hours from every call land in one lump at the end of the day, you cannot tell which jobs made money and which ran long, and payroll becomes a guess.

HVAC mechanics held about 425,200 jobs in 2024 and the field is projected to grow 8 percent through 2034, faster than average, according to the Bureau of Labor Statistics. Plumbers and pipefitters add another 465,840 workers. Most of these techs work for small shops running a handful of trucks. That is precisely the setup generic office time clocks handle worst.


Why Paper Tickets and Group Texts Fail Service Crews

The usual ways a small trade shop tracks time break down in four predictable places.

  1. No location proof. A handwritten ticket says the tech was at the Alvarez call from 9 to 11. It cannot show the truck was actually in the driveway.
  2. Lost travel time. Techs drive between calls all day, and that between-stop drive time is paid work under federal law. Hand-totaling it from memory means it gets rounded down or dropped.
  3. No per-call breakdown. When every stop's hours pile into one total, you cannot tell which service calls ran over the flat-rate quote and quietly lost money.
  4. Buddy punching and rounding drift. One tech punches for another who ran late, and hand-totaling in-and-out times across five stops inflates payroll a few minutes at a time, every week, all year.

A mobile app with geofenced punch-in, travel tracking, and per-call attribution closes all four.


Geofenced Punch-In at Every Service Call

A geofenced punch-in uses the phone's GPS to confirm a tech is physically within a set radius of the address before the punch counts. You add each recurring account or job site with its address and radius, and the app checks the tech's location before recording the punch.

Geofencing applies to punch-in only. Techs can punch out, start lunch, and end lunch from anywhere. Nobody should be locked out of ending their day because GPS could not get a fix inside a mechanical room. Punch follows this model exactly: location verification on punch-in, unrestricted punch-out and lunch transitions.

One thing Punch deliberately does not do: it never asks a tech to snap a selfie or pass a face scan to punch in. A job-site geofence verifies the call without putting a camera in your crew's face. Trust beats surveillance, and a truck in the geofence is proof enough.


Paid Travel Time Between Stops

This is the part most owners get wrong, and it is where the money leaks. Under the Fair Labor Standards Act, travel that is part of the day's work counts as hours worked. The Department of Labor's rule at 29 CFR 785.38 is explicit: time spent traveling from job site to job site during the workday must be counted as hours worked. The ordinary morning commute from home to the first call, and the drive home from the last one, generally is not compensable. Everything in between is.

For a tech hitting five calls a day, that between-stop drive time adds up fast, and paying it wrong is a wage claim waiting to happen. Punch supports paid travel time as a distinct category, so a tech can log the drive between calls at a travel rate you set, separate from wrench time. The overtime math stays honest because travel hours are still hours worked and still count toward the weekly overtime threshold. You get an accurate paid record and a clean audit trail, not a spreadsheet reconstruction after the fact.


Per-Call Hours for Real Job Costing

A tech who runs five calls in a day needs five buckets of hours, not one. There are two clean ways to keep them straight.

Punch out and back in at each stop. When the tech finishes one call and drives to the next, they punch out and punch in again at the new address. Each becomes its own shift, tagged to that account. The address shows on every timesheet row, so your weekly review reads like a dispatch log.

Split a single shift after the fact. If a tech forgot to re-punch and logged one long shift across two calls, a manager can split that shift into separate sub-shifts later, each with its own address and time range. The hours land against the right call without anyone reconstructing them from memory.

Either way, every hour is attributed to a specific job. When a flat-rate water heater install keeps eating four hours of labor instead of the two you quoted, the numbers tell you before the margin disappears. Accurate per-call hours are the foundation of real job costing, and job costing is how a trade shop learns which work is actually worth taking.


Basements, Crawlspaces, and Dead Zones

Mechanical rooms, basements, crawlspaces, and rural properties all produce signal gaps. If your app needs a live connection for every punch, the tech cannot punch out when the job is done, and they will rebuild the time later from memory. That is the rounding problem all over again, and the punch-out is the punch that matters most because it sets the paid hours.

With Punch, punch-out, lunch start, and lunch end are queued locally when there is no network and flushed automatically when the phone reconnects. The recorded timestamp is the moment the tech tapped the button, not the moment the server finally heard about it. A tech can close out a call from a crawlspace with no bars and the hours are correct.


The Weekly Approval Workflow

Raw punches are not payroll. Before you run it, a manager or owner reviews each tech's hours and approves or rejects individual shifts.

  1. Techs punch in and out across the week, call by call.
  2. Shifts land as pending in the manager's approval queue.
  3. Manager reviews each shift: the address, the hours, the travel, the lunch.
  4. Manager approves or rejects. A rejection can carry a reason the tech sees in the app.
  5. Approved shifts get marked paid when payroll runs.

Every shift ends with a status, a reviewer, and a timestamp. Punch gives managers a full approvals queue to work the week, approve a whole pay period in bulk, or open a single shift to see exact punch times and the address it was logged against.


Overtime, Done Automatically

HVAC and plumbing techs are generally non-exempt under the Fair Labor Standards Act, which means they earn overtime. Federal law requires 1.5 times the regular rate for hours over 40 in a single workweek, and travel time between calls counts toward that 40. Some states layer daily overtime on top: California, for example, requires 1.5 times for hours over 8 in a day and 2 times for hours over 12. Where state and federal minimums differ, the higher one applies.

Storm season and summer heat waves push techs into long weeks fast. Your app should calculate overtime automatically so you see the breakdown before payroll runs, not after a complaint. Punch applies overtime presets across Federal, California, and 50 countries, showing regular, overtime, and double-time hours per tech per pay period, with travel hours folded into the math correctly.


Exporting Hours for Payroll

After approval, the hours need to reach your payroll system. From Punch you can export a weekly or biweekly file with tech name, date, net hours, address, and description. If you run QuickBooks Online, Punch connects directly and pushes a whole pay period of approved hours to your books in a click, no spreadsheet and no re-entry. There is a Square integration for teams that run payroll there, plus a QuickBooks-formatted CSV for everyone else. Because every row carries the address, that same export doubles as a labor record for each account.


What This Costs

Most time clock apps bill per employee per month, so the price climbs every time you add a truck. Punch is priced flat per organization. Owners are always free, and every plan includes every feature, so geofencing, travel pay, overtime, and the integrations are never locked behind a higher tier. Plans differ only by how many active techs are punching in. For a shop that hires for the busy season and trims in winter, a predictable flat rate beats a bill that moves with the roster.


Frequently Asked Questions

What is the best time-tracking app for an HVAC or plumbing business?

The best one offers GPS-verified punch-in at each call, paid travel time between stops, per-call hour attribution for job costing, offline support for basements and crawlspaces, a manager approval workflow, and automatic overtime. Apps built for moving field crews, rather than office staff, handle the location, connectivity, and multi-stop realities of trade work.

Do I have to pay techs for drive time between calls?

Generally yes. Under federal rules, travel from job site to job site during the workday is hours worked. The ordinary commute from home to the first call and from the last call home is usually not paid. Punch tracks travel time between stops as a distinct category so it is recorded and paid correctly, and it still counts toward weekly overtime.

How do I track which call the hours went to across a full route?

Tag each shift to an address. When a tech punches out at one call and in at the next, each block of hours is attributed to its own account and shows that way on the timesheet. If someone logs one long shift across two calls by mistake, a manager can split it into separate sub-shifts afterward.

Can techs punch out without cell service?

Punch-out, lunch start, and lunch end are queued offline and sync when the phone reconnects, with timestamps reflecting the real moment of the tap. Punch-in itself needs a connection so the geofence can verify the tech is at the address.

Does Punch require a photo or face scan to punch in?

No. Punch verifies a call with a job-site geofence, never a camera in your crew's face. For techs working inside customers' homes, that is a deliberate privacy choice.

Do I pay extra for more job sites or accounts?

No. Addresses are a configuration feature, not a billing unit. Add as many as you service, each with its own geofence radius. Plans differ only by how many active techs punch in.


Getting Started

Setting up Punch for a service crew takes about fifteen minutes:

  1. Create your organization and invite your techs by email or join code.
  2. Add your recurring accounts and job sites, each with an address and geofence radius.
  3. Set each tech's hourly rate and a travel rate for between-call drive time.
  4. Choose your overtime preset and pick weekly or biweekly pay periods.
  5. Your techs download the app and punch in at the first call.

The 14-day free trial starts at signup, no credit card required. Every plan includes every feature, so you are never locked out of geofencing, travel pay, or overtime on a smaller crew.

Start tracking your service crew's hours →

More from the blog