Use case

Territory planning with firmographic and hiring data

Equal account counts hide unequal opportunity. How to weight accounts by fit and hiring momentum, balance territories on that weight and check each cell against Market Series.

Updated 5 October 20266 min read

A territory plan that balances account counts leaves the real imbalance in place: one rep inherits forty companies that are all hiring, and another inherits forty that are standing still. This guide shows sales operations teams how to cut and balance territories on a weight made of fit and momentum, using firmographic data and hiring data matched to the account list you already hold.

The data describes companies, so it slots in beside your CRM: named accounts, owners and contacts stay where you keep them, and each account gains an industry, a country, a size band and a momentum reading from the company ID you attach to it.

What a territory needs from the data

Four attributes decide most territories: industry, country, size and momentum. The table shows where each comes from in Fokals.

AttributeFokals datasetWhat it gives
IndustryThe website label for industry, one of 21 industries, in the dashboard and the data browserA consistent industry on every labelled company, produced under a named, frozen label version
CountryThe headquarters country, a dimension of Market Series, and the country of each listed securityThe geography to cut on, joined to your CRM's own country for the accounts you own
SizeEmployee Headcount, banded as Market Series band it: 1 to 10, 11 to 50, 51 to 200, 201 to 1,000, 1,001 to 5,000 and 5,000 or moreA stated headcount over time and a band to match
MomentumHiring Activity (open and new postings) and Sales Team MetricsThe daily rhythm of hiring, and the weekly build of the sales organisation

Do not read the target customer size label as the size of the company. It labels the customers a company sells to, which is a different question and useful in its own right for segmenting by who buys from whom.

Match your accounts first

Every Fokals file carries the company ID, so the first job is to attach it to your accounts. Match on the website domain, lower-cased and without a leading "www", using any file that carries both domain and company_id, such as Technology Stack (company_technologies). For listed accounts, match next on ISIN, or on ticker and MIC. Then report the match rate by country, so each territory carries a measure of how much of it the data describes.

Roll groups up before you count. A brand or subsidiary carries the identifiers of its listed parent, so grouping on ISIN shows the hiring of a whole group. Decide whether a group is one account or several before you start counting accounts.

Weight accounts by fit and momentum

Weight is the number you balance, and it has two parts. Fit points come from your own model: three tiers drawn from your closed-won accounts, worth 3, 2 and 1 points. Momentum comes from hiring. Take the open postings on the latest closed day and the new postings of the last 28 days from Hiring Activity, which the query below reads as company_hiring_daily.

with last_day as (select max(day) as d from company_hiring_daily)
select h.company_id,
       sum(h.new_postings)                             as new_28d,
       max(h.open_postings) filter (where h.day = l.d) as open_now
from company_hiring_daily h
cross join last_day l
where h.day > l.d - 28
group by h.company_id;

Band the ratio of new_28d to open_now into quiet, steady, rising and strong, guarding against an open_now of zero, and give each band a factor, for example 0.75, 1.0, 1.25 and 1.5. The cut-offs and the factors are yours to set, and you should check them against your win rates before the plan depends on them. Give an account with no hiring row the steady band, which keeps it neutral in the weight. The same applies in a company's first weeks of data, because the postings found at its first observation set a baseline and are not counted as new.

Weight is then fit points times the momentum factor. Take Acme Robotics, an invented company, as an illustration. It sits in your second fit tier, worth 2 points, and has 40 open postings and 12 new ones in 28 days. The ratio is 0.30, and with a strong band set above 0.25 its factor is 1.5, so its weight is 3.

Count only the postings your buyer would write. Hiring Activity holds the open postings of each day by job function, so a vendor selling to marketing teams can sum the marketing functions and ignore the rest. For new postings by function, count Job Postings rows by their job_function label and first_seen_at, leaving out those marked found_on_first_read. Momentum in the right function moves the weight of a territory where its opportunity is. Because every daily row is dated and never revised, a 28-day window and the window before it can be compared at any time, and a plan can be rebuilt exactly.

Balance on weight, not count

In an illustrative example, three territories of 40 accounts each have weights of 58, 41 and 71. The weights total 170 and average 56.7, so the largest territory is 1.25 times the mean. Moving five heavy accounts, each worth 3, from the third territory to the second brings all three within 3 percent of the mean, with unequal counts.

TerritoryAccounts beforeWeight beforeAccounts afterWeight after
A40584058
B40414556
C40713556

The measure is the largest territory's weight divided by the mean, here 1.25 before and 1.02 after. Set a tolerance before you cut, for example 1.10, so that the argument is about the method and not about each account. Fix what must not move first: named accounts, existing relationships and travel limits. Then move accounts at the edges of the territories until the ratio is inside the tolerance.

Check each cell against Market Series

Market Series show how an industry, a country or a size band is moving, on same-store cohorts so that growth in the index is never mistaken for growth in the market. Use them to test whether a territory's momentum belongs to its cell or to a few accounts. If a territory's accounts are rising while the hiring series of its country is falling, the momentum is probably concentrated in a few accounts, and you should not plan the whole territory on it.

Two properties of the series help here. A series is cut by one dimension at a time (industry, sector, country, size, market or all), so for a territory that is a country and an industry together, compute its rate from the company datasets and use the series for each dimension as the reference. Each row of a series covers at least 20 companies, so a cell that has a series has a base worth reading. Read the count, the cohort, the rate and the growth together over the 7, 30 and 180-day windows. A large growth on a small count is a small cell moving a little.

Keep the plan reproducible

Store the inputs with the plan: the day or week_start of every dataset you read, the as-of date of the series and the label version of the industry labels. Daily and weekly rows are written once and never changed, so those inputs can be rebuilt later. Snapshot the industry labels themselves as well, because a website is labelled again when what the labelling reads has changed. The plan can then be defended to a rep who asks why a territory looks the way it does. Refresh momentum weekly to order the work inside a territory, and re-cut the territories only on your planning calendar, because a territory that moves every week cannot be owned.

How to read the attributes

  • Industry is a label. It is produced by a labelling model under a frozen version, so the same version gives the same label to the same website, and a new version ships with 90 days' notice.
  • Size is a stated headcount. Each point in Employee Headcount is a statement dated at its source, so a band reads as the company's own account of its size, and your CRM's figure can fill any company that has no band.
  • Momentum counts postings. It measures people being hired, and a posting records an intention to hire, so read it as direction and pace.
  • Accounts in, accounts out. The data lands on accounts. Your CRM keeps the owners and the contacts.

How Fokals delivers it

The hiring dataset is refreshed daily and Market Series weekly, as of each Sunday. Both reach you by REST API or as bulk files, and the data dictionary defines each field used above. To size the same cells by the technologies companies run, see sizing a total addressable market with technographic counts, and to decide which companies deserve fit points in the first place, see defining an ideal customer profile from data.

Frequently asked questions

How do you balance sales territories?

Balance on a weight and not on account counts. Give each account fit points from your own model, multiply by a momentum factor taken from its hiring, sum the weights for each territory and move accounts at the edges until the largest territory is within your tolerance of the mean, for example 10 percent. Fix named accounts and existing relationships first.

What data do you need for territory planning?

Your account list with industry, country, size and owner, and a measure of each account's recent momentum. Fokals adds hiring momentum from Hiring Activity, an industry label for websites, stated headcount for size, and weekly Market Series by industry, country and size band for testing each cell. All of it joins on one company ID.

How do you use hiring data in territory planning?

Use open and new postings as a momentum measure that orders work inside a territory and feeds the weight that balances territories. Band the new postings of the last 28 days against the open ones, give an account with no postings the neutral band, and check the effect against your win rates before you rely on it.

How often should sales territories be rebalanced?

Re-cut them on your planning calendar and not as the data changes, because a territory that moves every week cannot be owned. Refresh momentum weekly to order the work inside each territory. Daily and weekly Fokals rows are never revised, so you can rebuild a plan from the dates you stored with it.

How do market series help with territory planning?

A series describes one industry, country or size band at a time, so it is the reference for sizing a cell and testing its trend: is the territory's momentum the cell's own, or a few accounts? Company-level datasets then supply the accounts inside the cell, each with its weight.

The queries and code on this page are examples to adapt. Test them in your own environment before you rely on them.