About this engagement
Our client builds an HR and workforce platform for the construction and contracting industry, covering hiring, payroll, project management, and the day-to-day work of managing contractors and subcontractors.
We were brought in as their RevOps support to help their team operate more strategically. In this case, that meant a faster way to plan sales territories, a process that had grown too slow and manual to keep up as the team added reps.
Our partnership with this client enabled the following results:
We replaced a slow, manual planning cycle with an interactive map built on a complete zip code model in Salesforce. The team can now see exactly how many accounts each territory holds before reassigning it, turning a multi-day exercise into a decision they make together in one working session.
|
|
For a sales team, a territory is the set of accounts a given rep owns, usually defined by where those accounts sit on the map, with a goal of balanced coverage. Ideally, every rep holds a fair share of the accounts so no one is stretched thin, sitting idle, or eating into each other's accounts. If territories are unbalanced, you get reps competing on the same ground, accounts going unworked, and comp plans that feel impossible to reach.
When reassigning a territory, every change sets off a chain of questions: How many accounts sit in that area today? Are they the right fit? Who takes them over? What happens when two reps end up covering the same ground?
The challenge our client had is that this was a confusing, time-consuming process that regularly did not result in a balanced territory plan. A carve would start as a proposal in a meeting or a message: give this rep these cities, give that rep the rest. The team had tried to support it with a basic map that plotted accounts by location, but it could only show roughly where accounts sat, not what was happening inside each territory, so the real account math stayed invisible until after the decision was made.
Geography and account density do not match. Half of a single city can hold three hundred accounts in a tiny footprint, while a much larger stretch of land holds far fewer. So a carve that sounded balanced out loud could hand one rep several times the workload of another, and nobody would catch it until the accounts landed and a rep started asking why their book was so much heavier. Fixing it meant going back to the data, re-running the numbers by hand, and reworking the plan, two to three days of back and forth every time a territory moved. The back-and-forth process was too slow to keep up with a team that wanted to add reps and adjust coverage as it grew.
|
|
We built an interactive territory map that lets the team select areas directly and see, in real time, what each selection contains. Instead of guessing from a circle on a map, a planner can now pick a set of zip codes, assign them to a rep, and immediately see how many accounts that rep would receive and how the totals shift over time. The tool sits on top of a full territory model holding every US zip code, so the map and the underlying data stay in sync.
The build came together in two parts, and the second part only worked because the first was already solid.
| The Foundation: A Complete Zip Code Territory Model The first phase was a dedicated territory object in Salesforce holding more than 41,700 US zip codes, each tied to a territory and an assigned rep. A scheduled job runs every night, checks each account against its zip code, and updates the territory and ownership fields automatically. The logic is careful about what it touches. It skips enterprise accounts, leaves accounts with open opportunities alone, respects manual exclusions, and only reassigns where it should. This was the backbone everything else would build on.
|
| The Map: Turning the Model Into a Decision Tool On top of that foundation, we built the visualization layer. The map plots every zip code and color codes territories so they are easy to tell apart at a glance. The real shift is interactivity. A planner selects an area on the map and the tool reports back exactly what that area holds, so the account math is visible before any decision is made rather than discovered after. The mapping logic and the map itself were built in Python using open-source packages, stood up as a hosted page the team can open and work through directly.
|
| Handling the Edge Cases Territory assignment is never as simple as "match the zip and move on." Enterprise accounts are handled separately rather than swept into the automated reassignment. Accounts with open opportunities are left with their current owner so a deal in flight is never pulled out from under a rep. Anything flagged for manual exclusion stays put. And because zip-level boundaries occasionally need a human judgment call, there is a separate path for correcting a single zip's territory by hand, which then flows back through the same model so the map and the records never drift apart. Mapping these cases up front was what let the automation run unattended every night without quietly making the wrong call. |
| A Clean Loop Back Into Salesforce Once the team agrees on a plan, the tool exports a simple CSV that loads straight back into Salesforce, where the nightly job picks it up and updates accounts and ownership. The export carries only what is needed to do the job, a zip code, a count, and the territory it belongs to, with no account-level or personal information. That keeps the loop from map to system fast and clean.
1. Select on the map
Pick zip codes and instantly see the account totals for that selection.
2. Decide together
Reassign territories live on a single call, with the math in front of everyone.
3. Export and load
Push the CSV back into Salesforce, where the nightly job updates ownership.
|
|
A carve from a real session
When the team needed to split one large state between two reps, the proposed division sounded even in the room. One rep would take the west coast down through the south, the other would take the center and east. On paper it was a clean line. The map told a different story. The verbal split put roughly five and a half times more accounts on one rep than the other, a gap wide enough that it would have surfaced only when the lighter-loaded rep started asking questions weeks later. On a spreadsheet, spread across tabs, it would have stayed hidden. On the map it was the first thing on the screen. Because reassigning a region took seconds rather than a fresh round of data pulls, the team could test one alternative after another in the same conversation. They moved regions across, watched the two books converge toward a fair target, and enriched the lighter side to round it out. What would once have been three meetings was settled in a single sitting. |
|
|
What used to take up to half the work week now fits inside a single session. With quick visibility into each territory, checking coverage takes only a quick glance at the map, which can lead to efficient adjustments so things keep moving. A question like "what if this rep took the next county too?" used to mean pulling fresh data and re-running the aggregation, the kind of detour that stalls a conversation. Now it is a click, and the answer is on screen in seconds, so the discussion keeps moving instead of breaking for homework.
|
Planning Time Saved
100+ hours
|
Just as important, the tool makes the business more agile. When the team wants to hire another rep or adjust coverage, the change no longer has to be a drawn-out project. It can be a quick, strategic look at the map followed by an update in the system. That makes it realistic to keep growing the sales team while still giving every rep a fair piece of the territory.
The bigger payoff is still building. As the team leans on the tool for more of its planning, it is becoming the default way to reason about coverage rather than a one-off fix. The architecture is replicable, which means the same approach can extend as the territory model grows and as new reps come on board.
|
The takeaway
A territory decision should be a strategic look at a map, not a multi-day spreadsheet exercise. When the team can see exactly what a territory holds before reassigning it, planning coverage keeps pace with hiring instead of slowing it down. |
Request a free consultation to see how we can turn your territory planning into a decision you can make in an afternoon.