Back to blogHow to Set Up HVAC Service Territories by ZIP Code
HVACservice territoriesdispatchroutinghome servicesscheduling

How to Set Up HVAC Service Territories by ZIP Code

Cartoply Team·

To set up HVAC service territories by ZIP code, list every ZIP code you service, group them into logical clusters based on drive time from each tech's starting point, assign one tech as the primary owner of each cluster, then configure your scheduling tool to route inbound bookings to the right tech automatically based on the customer's address. Done right, this eliminates manual dispatch and stops techs from crossing each other's routes mid-day.

This guide walks you through each step — including the numbers that tell you when a territory is the right size and how to handle overlaps before they become arguments between techs.

A red van is parked on the side of the road
A red van is parked on the side of the road — Photo by Aleksi Partanen on Unsplash

How to Set Up HVAC Service Territories by ZIP Code

  1. Pull a list of every ZIP code where you booked a job in the last 12 months.
  2. Plot those ZIPs on a map and mark where each tech lives or starts their day.
  3. Draw clusters: group ZIPs that a single tech can cover in under 20 minutes of drive time.
  4. Assign one tech as the primary owner per cluster — no shared ZIP codes yet.
  5. Enter each ZIP cluster into your scheduling platform and link it to that tech's calendar.
  6. Test with a real address from each zone to confirm the booking routes to the correct tech.

Why ZIP Codes — Not Cities or Counties — Are the Right Unit

Cities bleed into each other. A county boundary on paper can mean a 45-minute drive in practice. ZIP codes are small enough to be meaningful and are already in every customer's head when they fill out a booking form. They're also the unit your scheduling software can act on — a customer types their ZIP at checkout, and the platform knows exactly which tech to assign before the booking is confirmed.

If you're running 4–6 jobs a day per tech, a healthy territory is roughly 15–25 ZIP codes depending on job density. Too few and a tech sits idle waiting for calls. Too many and your route density collapses — techs are driving 30 minutes between stops instead of 8. For a detailed breakdown of those numbers, see the right territory size for a tech doing 4–6 jobs a day.

Dealing With Overlapping ZIPs and Edge Cases

Some ZIP codes will sit on the natural boundary between two techs' zones. Here's how to handle them without creating constant exceptions:

  • Hard-assign the boundary ZIP to one tech — even if it feels arbitrary. Ambiguity is worse than the occasional slightly longer drive.
  • Use round-robin only as a fallback — if your primary tech is fully booked on the requested date, have the booking platform offer the next available tech in that zone or adjacent zone, not the whole team.
  • Review boundary ZIPs quarterly — as your team grows or shrinks, what made sense at 5 techs may not work at 9.
  • Never assign the same ZIP to two techs as co-owners — this is the single most common cause of techs driving past each other's jobs. One owner, always.

For a deeper look at what happens when this goes wrong — and how to unwind it — why your techs are driving past each other's jobs covers the most common failure modes by territory type.

Setting This Up in Cartoply

Cartoply's HVAC scheduling software is built around exactly this workflow. You define territories directly in the platform — by ZIP code, radius, city, or county — and link each zone to a specific tech's calendar. When a customer books from your website or your single company booking link, they enter their address, Cartoply matches it to the right territory, and the job lands on the correct tech's calendar. No dispatcher in the middle. No manual re-routing.

Each tech only sees their own jobs. They don't see the full company calendar, which means no confusion about whose job is whose and no accidental double-coverage. Bookings sync automatically to Google Calendar or Outlook, so techs see new jobs in whatever app they already use.

You can also require a deposit or full payment at booking via Stripe — a straightforward way to cut no-shows on estimate visits before a tech ever drives to the job. If that's a pain point, deposit vs. full prepayment for service estimates breaks down which approach reduces no-shows more and when each one makes sense.

Benchmarks: How to Know Your Territories Are Working

Once your ZIP-code territories are live, measure these within the first 30 days:

  • Average drive time between jobs: target under 18 minutes. Above 25 minutes means your territory clusters are too spread out or a tech is being assigned jobs outside their zone.
  • Dispatch exceptions per week: the number of times a job had to be manually reassigned after booking. Target zero. Even 2–3 per week signals a boundary problem.
  • Booking-to-confirmation time: with automatic routing, this should drop to under 2 minutes. If it's still taking hours, the routing isn't firing correctly.
  • Jobs per tech per day: if one tech is running 7 jobs and another is running 3, your ZIP clusters are unbalanced by demand — not just geography.

Adjust territory boundaries any time two or more of these metrics are consistently off. Territories are not set-and-forget — they're a living part of how you dispatch.

a man sitting at a desk working on a computer
a man sitting at a desk working on a computer — Photo by Javad Esmaeili on Unsplash

Frequently Asked Questions

How many ZIP codes should one HVAC tech cover?

For a tech running 4–6 jobs per day, a territory of 15–25 ZIP codes is a workable starting point in most suburban markets. Dense urban areas may need fewer ZIPs because the codes are smaller. Rural areas may need more. The real benchmark is average drive time between jobs — keep it under 18 minutes and the ZIP count is roughly right.

What happens when a customer's ZIP is on the border between two techs?

Hard-assign every boundary ZIP to one tech and document it. Never leave a ZIP as shared ownership — that's how you end up with two techs dispatched to the same neighborhood on the same morning. Review boundary assignments every quarter and adjust if one tech's zone is generating significantly more or fewer jobs than the other.

Can I use ZIP codes for service territories if I have different service types?

Yes. Define territories by ZIP first, then layer service-type rules on top. For example, you might have one tech covering ZIPs 30301–30310 for HVAC installs and a different tech covering the same ZIPs for maintenance calls. Most territory-aware scheduling platforms let you filter by both zone and job type before assigning the booking.

Do I need to rebuild my territories every time I hire a new tech?

Not rebuild — rebalance. When you add a tech, identify the ZIP clusters with the highest job volume or longest drive times and split those off into the new tech's zone. Adjust neighboring boundaries as needed. Aim to complete a rebalance within the new tech's first two weeks so they start with a clean, defined territory instead of picking up overflow from everyone else.

Ready to stop manually dispatching every booking to the right tech?

14-day free trial — no credit card required. $7/seat/month after that.

Start free trial →