Skip to content
AIRO

· 9 min read

Annual Sales Rep Visit Planning: Frequencies, Account Weight and Route Optimization

How to build a year of field sales visits: account weight, visit frequencies, workload checks, territories, visit cycles and daily routes, with a simulation you can run.

A field sales rep might look after 150 to 600 accounts. Some deserve a visit every month, others twice a year. Every January (or at the start of each season) someone has to turn that list into a calendar: who to see, on which day, and in what order. Most teams still do it in a spreadsheet, with rules such as "Monday is the north of the territory".

This guide explains why this planning problem is hard, the data it needs, a step-by-step process, and how to simulate a visit cycle with a route optimizer such as AIRO. It applies equally to merchandisers, medical and pharmaceutical reps, key account managers and technicians doing preventive maintenance visits.

The context: many accounts, different weights, one calendar

Not every customer is worth the same time. Teams usually weight accounts by revenue, potential, strategic importance or the risk of losing them, often in A, B and C segments. The weight drives two things:

  • Visit frequency: how many times a year the account is seen (for example 12, 6 or 2).
  • Visit duration: a key account review takes longer than a quick check-in.

On top of that come practical rules: opening hours, a buyer only available on Tuesdays, a trade show week, holidays, a rep who starts from home and must be back by a reasonable time. The result is a plan where every decision affects the others.

Why it is a hard problem

Planning recurring visits is known in operations research as the periodic vehicle routing problem. It combines several decisions that are each difficult on their own:

  1. Which days each customer is visited, so that a monthly account is seen about every four weeks, not twice in one week and then not for two months.
  2. How the work is split between reps (territories) and between days, so that no day is overloaded while another is empty.
  3. In what order the visits of each day are made, to keep driving time down.
  4. Under which constraints: opening hours and appointment windows, visit durations, working hours and breaks, days off.

The numbers grow fast. The order of only 6 visits in a day has 720 possible sequences. Choosing which of 20 working days each of 70 visits goes on has 20 to the power of 70 combinations, a number with 92 digits, before any order is decided. Trying everything is impossible; good plans come from a sound process and an optimization engine for the parts that are pure combinatorics.

The data you need

Data For each Why it matters
Address or coordinates Account Travel times
Segment or weight Account Frequency, duration, priority
Visit frequency Account Number of visits per cycle
Visit duration Account Fills the day more than driving often does
Opening hours, preferred day Account Time windows, fixed days
Home or base address Rep Where each day starts and ends
Working days and hours, breaks Rep Capacity of each day
Maximum visits per day Rep Keeps days realistic
Holidays, trade shows, training Calendar Days without visits

The process, step by step

1. Segment and weight the accounts

Start from your CRM export. Give each account a segment (A, B, C) from revenue and potential. Keep the rules simple enough to explain to the sales team.

2. Turn weight into frequency and duration

Set a visit frequency and a typical duration per segment, then allow exceptions for specific accounts. For example: A accounts monthly for 60 minutes, B accounts every two months for 45 minutes, C accounts twice a year for 30 minutes.

3. Check the workload before planning anything

This is the step most often skipped, and the one that saves the most time. Take a rep with 180 accounts: 30 A, 60 B and 90 C.

  • Visits per year: 30 × 12 + 60 × 6 + 90 × 2 = 900 visits.
  • Time with customers: 360 × 60 min + 360 × 45 min + 180 × 30 min = 720 hours.
  • Field days: 260 weekdays minus about 50 days of holidays, vacation, training and trade shows = 210 days, or 1,680 hours at 8 hours a day.
  • That leaves 960 hours for driving and breaks: about 4.6 hours a day, for 4.3 visits a day on average.

If the territory needs more driving than that, the plan cannot work, whatever the routing. Lower some frequencies, shorten visits, or split the territory.

4. Draw or check the territories

When several reps share a region, territories should balance workload (visits plus driving), not just the number of accounts. Twenty accounts in a city and twenty spread over a rural area are not the same job.

5. Plan a repeating cycle

Instead of planning 210 days at once, plan a cycle, typically four or six weeks, that repeats through the year:

  • monthly accounts appear once in each four-week cycle;
  • accounts seen every two months are split into two halves, visited in odd and even cycles;
  • twice-a-year accounts are spread over the cycles (about 14 per cycle in the example above);
  • accounts seen every two weeks appear twice per cycle, in weeks 1 and 3 or 2 and 4.

In the example, one four-week cycle holds about 74 visits.

6. Optimize the days of the cycle

Assign each visit to a day of the cycle and order each day's visits, respecting windows, durations, working hours and breaks. This is the step where an optimizer makes the biggest difference: by hand, people tend to plan by area and miss better combinations across days.

7. Review, adjust and roll out the year

Check the cycle with the rep: customers who must be seen on a given day, long drives, overloaded days. Adjust, run it again, then repeat the cycle through the year, removing holidays and trade show days.

8. Re-plan when the day changes

A cancelled meeting or a new urgent visit should not break the week. Re-plan the rest of the day or the next days instead of rebuilding the cycle.

Three common approaches

Approach Strengths Limits
By hand in a spreadsheet Familiar, flexible Slow, hard to balance, no measure of driving time
Fixed rules ("Monday = north") Simple for everyone Ignores frequencies, windows and real travel times
Optimization engine Balances days, respects constraints, compares scenarios Needs clean data and a clear process around it

How to simulate a visit cycle with AIRO

To be clear about scope: AIRO plans routes; it does not generate an annual visit calendar on its own. What it does very well is the heart of the problem, the cycle of step 6, thanks to a simple modelling trick: each working day of the cycle is a "vehicle".

Simulation 1: one rep's four-week cycle

Prepare two files (you can download our templates):

  • Accounts (one row per visit in the cycle): reference, name, address or coordinates, visit duration as Service time, opening hours as Window start and Window end, segment as Priority (A high, B normal, C low).
  • Days (one row per working day): Vehicle = "W1 Mon", "W1 Tue"… up to "W4 Fri", the rep's home as Start address and End address, working hours, a lunch break with its window, and Capacity = the maximum number of visits per day (each visit counting 1).

Then choose Service visits as the type of stops and run the plan with shortest driving time as the objective and balance by working time, so the days are comparable. AIRO decides which day each visit goes on and the order of the visits, and it reports any visit that does not fit, with the reason. Leave a day out of the file for holidays or office days.

Keeping visits evenly spaced

Use the Skills column to fix the week and let the engine choose the day:

  • give each day the skills of its week and weekday: "week1, mon", "week1, tue"… "week4, fri";
  • an account seen every two weeks gets two rows: the first requires "week1", the second "week3";
  • an account whose buyer is only there on Tuesdays requires "tue";
  • once a cycle is validated, copy each account's day into the Assigned vehicle column of the next cycle: it stays on the same day every four weeks while the engine re-optimizes the rest.

Simulation 2: compare scenarios

The real questions are often "what if": five reps instead of four, 45-minute visits instead of 60, B accounts every three months instead of two. Run each variant on the same data and compare them side by side: driving time, working time per day, unplaced visits. To explore new territory boundaries, put the days of several reps in one plan, each with their own home as start address, and see which accounts the engine gives to whom.

Simulation 3: the day the plan changes

Choose Service visits as the type of stops when you create the cycle plan. Then, when a meeting is cancelled or an urgent visit comes in, re-plan the rest of the day from the current time and tick only today's day (for example "W2 Thu") under Who is working, so the rest of the cycle does not move. Finished and cancelled visits drop out (list cancelled ones as done), an urgent visit can be added from a file, and the rep continues from where they are. Visits that no longer fit come back as carried over, ready to download and add to another day.

Limits to keep in mind

  • One plan handles up to 300 locations and 30 vehicles, so up to 30 days: a four- or six-week cycle per rep fits well; the year is assembled from cycles.
  • Spacing is controlled at the week level (with skills) and by locking days between cycles, not by a "minimum days between visits" rule.
  • When re-planning a day of the cycle, tick only that day: each "vehicle" of the cycle is a different day.
  • Travel times come from the road network, optionally with typical traffic; they are not live traffic.

Download the templates

Two sample files reproduce the example of a rep based in Guelph, Ontario, with 76 accounts and 78 visits in a four-week cycle: the 74 visits of the example above, plus two key accounts seen every two weeks:

Replace the accounts and the home address with your own, keep the column names, and import both files. Every column is described in the spreadsheet columns reference.

What to measure

  • Visits per day and how evenly they are spread across the cycle.
  • Driving time versus time with customers: the higher the share with customers, the better the territory works.
  • The gap between the longest and shortest days.
  • Unplaced visits and their reason: too many means the frequencies or territory do not fit the time available (step 3).

Try it with your own accounts

Create an account, import the two templates to see the method on the example, then replace them with an export from your CRM. Each plan is priced from its size before you launch it, and you can compare as many scenarios as you need.

Frequently asked questions

How often should a sales rep visit each customer?

It depends on the account's weight: revenue, potential and how much a visit changes the outcome. A common starting point is monthly for A accounts, every two months for B accounts and twice a year for C accounts, then adjusted once you have checked that the total workload fits the rep's available days.

How many customer visits can a sales rep make per day?

It is set by visit length and driving time, not by a rule of thumb. With 45 to 60-minute visits and a regional territory, 4 to 6 visits a day is typical. Compute it from your own visit durations and measured drive times before you fix a target.

What is the periodic vehicle routing problem?

It is the routing problem behind recurring visits: over several days, decide on which days each customer is visited (respecting its frequency and the spacing between visits) and, for each day, the order of the visits. It is much larger than planning a single day, which is why it is usually solved in steps.

Can a route optimizer build my annual visit calendar?

A daily route optimizer does not decide the whole year on its own. The practical method is to plan a repeating cycle, for example four weeks, where each working day is a separate route; the optimizer then assigns visits to days and orders them. The year is built by repeating and adjusting the cycle.

How do I keep visits to the same customer evenly spaced?

Fix the week of each occurrence and let the optimizer choose the day: a customer seen every two weeks is required in week 1 and week 3 of the cycle, for example. In a later cycle, lock the day the customer got so the spacing stays regular.

Turn your spreadsheet into optimized routes

Create an account and try it on your own spreadsheet.