Service Area Heatmap
The Service Area heatmap plots every geocoded customer (or property) on a map and shades the regions where you have the most density. Optionally weight by revenue to see where your most valuable work is concentrated. It’s a quick way to answer: where are we strong, where are we thin, and where should we grow?
Where to Find It
In the sidebar, click Service Area (right under Customers). You can also reach it directly at /customers/heatmap.
What the Map Shows
The map covers the United States and zooms automatically to fit all your geocoded customers when it first loads. At lower zoom levels you see a heatmap shading (blue for low density, red for high). As you zoom in, individual dots appear so you can click any point to see whose address it is.
Two Display Modes
A toggle at the top of the page switches between two views:
Customers mode (default)
- Each customer location is a dot. If a customer has multiple service properties, every geocoded property gets its own dot.
- If a customer has no separate properties, their main address is used as the single dot.
- Supports revenue weighting — see below.
Properties mode
- One dot per active service property with a geocoded address.
- No customer aggregation — useful when you serve a small number of customers across many sites.
- Revenue weighting is disabled in this mode.
Revenue Weighting
In Customers mode, you can shade the heatmap by how much each customer has paid you, not just by how many customers live in an area. Toggle Revenue weight on and pick a time range:
- Last 30 days
- Last 90 days
- Last 12 months (default)
- All time
Revenue is calculated from paid invoices (including late fees, excluding tips). Cancelled or refunded amounts are still included as of this writing — for net revenue, compare against your reports view.
The heatmap is normalized so that a small handful of high-revenue customers doesn’t completely hide everyone else — instead, you see a smooth density that’s biased toward your money areas.
Filtering by Tag
Click any customer tag in the filter bar to restrict the map to just those customers. Selecting multiple tags applies an AND filter — a customer must have all selected tags to appear. Click Clear to reset.
This is the fastest way to answer questions like “where do my commercial clients live?” or “where are my service contracts?” if you tag customers accordingly. See Customer Tags for how to set up tags.
Summary Cards
Above the map, four summary cards give you quick numbers:
| Card | Meaning |
|---|---|
| Mapped | Customers (or properties) currently visible as dots on the map. |
| Unmapped | Records that have an address but haven’t been geocoded yet (or geocoding failed). |
| Mapped Revenue | Total paid invoice amount across the visible dots. Only shown when revenue weighting is on. |
| Total Revenue | Total paid invoice amount across all customers in the date range. Only shown when revenue weighting is on. |
If Unmapped is high, the most common cause is that customers were added without a city or zip, or the address typo couldn’t be resolved.
How Geocoding Works
Whenever you add or update a customer or property address, Service Invoice Pro tries to convert the address into latitude/longitude coordinates in the background. This is what places the customer on the map. The conversion is:
- Automatic — happens silently on customer save, no action needed from you.
- Best-effort — uses Mapbox to look up the address. If the address is incomplete or ambiguous, it may fail.
- One-shot — runs once per address change. If a customer didn’t geocode, edit their address and save again to retry.
For US addresses, geocoding usually works as long as the customer has at least a street, city, and state (or a zip code).
Clicking on Points
At zoom level 12 or above, each point becomes clickable. Click it to see a popup with:
- Customer name
- Address shown
- Revenue (if you’re in revenue-weighted mode)
- A View customer → link that opens the customer detail page
This makes the heatmap a useful jumping-off point for “who’s that?” lookups in a region you’re considering expanding into.
What This Helps You Decide
Some examples of decisions the heatmap is good for:
- Setting your service radius. If your map shows most customers in a tight cluster with a few outliers an hour away, you’re losing windshield time on the outliers — consider raising the price for distant work or dropping them.
- Where to advertise next. Empty patches near your dense areas are short drives — often the highest-ROI marketing target.
- Whether to open a second base of operations. If you see two distinct clusters separated by distance, a satellite location might cut travel costs more than hiring a second crew.
- Spotting churn risk. If your high-revenue cluster has shrunk over the past 90 days vs. last 12 months, that’s a leading indicator that needs investigation.
Common Issues
My customers aren’t showing up on the map. The most likely cause is that the address didn’t geocode. Check:
- Customer has at least street + city + state, or a valid zip code.
- Address doesn’t contain typos (especially in the city or zip).
- After fixing, save the customer record — geocoding retries automatically.
The map says “No geocoded customers yet.” You’re on a new account or none of your customer addresses have been resolved. Add some customers with full addresses and reload after a few seconds.
Revenue weighting toggle is missing. You’re in Properties mode. Switch to Customers mode to enable revenue weighting.
The map loads but doesn’t zoom anywhere. It’s centered on the US because there’s nothing to focus on. This means no customer addresses have been geocoded yet — see the first issue above.
Related
- Customer Tags — set up tags to filter the heatmap
- Adding Customers — capture full addresses so they geocode
- Multiple Properties — manage customers with multiple service locations
- Reports — drill into revenue numbers behind the heatmap