Many users try to approach this with story with xTour only but there's a much better approach. It is based on several steps and I'll describe them one by one. But let's start with the story itself. The screenshots I use for this are based on an internal tool...
Input scenario: Imagine this...
PS: fancy video in German
Let's start with a set of georeferenced orders, each one given with (x,y) and additional properties such as service time per visit, post code and more. One specific value is the so called ACTIVITY which can be derived from different other properties. The ACTIVITY is an important value because one of the goals in the following process is to achieve an equal level of activity for each technician as a whole, period or area. Typical sources for the ACTIVITY are:
- simply the value 1: same number of customers
- service period within same period of time, e.g. amount of time you spend with an account per year
- potential revenue : ensure that each sales rep has the opportunity to get the same success
- category based : often customers are categorized into A/B/C. Just assign each category to a specific score such as (A=10,B=7, C=3)
The second step in the overall process is the assignment of the POSTALCODES to the technicians. It is not necessary that each technician gets the same number of postal codes as long as the sum of the assigned postal codes aggregated service period is on an equal level. We use xCluster.planClusters for this. In the third step we focus on the technicians one by one. We use xCluster.planVisits to determine the optimal visit dates for all the visits on the stack of an individual technician. In the next image the original 100% of the visits are resolved so I applied planVisits not only to the roughly 300 postcode areas but to the several thousand indiidual customers. As a simple goodie of xCluster the service can also compute an optimal sequence of the visits within a day. (works fine for a small number of visits). This story is quite generic so far. But we can do more:
- In my example all customers have been visited once in the planning cycle but the API enables you to specify visit rhythms, i.e. you can set different categories such as "prio A customers: every week" and "prio B customers: every 2 weeks" and "prio C customer: every 4 weeks".
- Furthermore it is possible to define indicidual activities per technician. This allows you to scale between the technicians (e.g. "technician works only 50% FTE" or "a technician office has more than one technician to server orders from").
- Another interesting feature is the consideration of regularities: if a customer is supposed to be visited several times within the cycle you can ensure that each visit is placed on the same day of the week though you don't know the day itself in advance.
- 80% regular maintenance tasks or even more
- 20% incidents (or even less)
So much for now - I hope this inspires you to takt a closer look at xCluster. It is a might interface that is valuable especially if you work with a larger number of regular visits.
By the way: instead of postcode areas you can use other adminstrative base regions such as districts or federal states. We also know communities that apply this procedure on their periodical tasks such as garbage collection. In this case the number of core objects easily exceeds 50'ooo or even 100'ooo (garbage bins) and the aggregation is based on street names or street sections. Furthermore the activity is derived from the known volume of bins (e.g. 800l/1200l) and the picking rhythm (daily, weekly, biweekly).
In case of questions do not hesitate to get back to me and I'll answer as smart as possible.
Best regards,
Bernd