FSM Route Optimisation Concepts

The Route Optimisation Engine is used within the FSM platform to automatically determine the most efficient way to schedule and route technician work orders. The optimisation engine purpose is to help:
- Minimise technician travel time and distance
- Maximise the number of jobs completed per day
- Ensure high-priority and appointment-based work orders are scheduled appropriately
- Respect the technicians working hours and scheduling constraints
- Improve field service productivity and response times
The routing engine uses geographic location data, technician availability, and job priority to generate optimised schedules.
Key Concepts
| Term | Description |
| Work Order | The set task that must be completed by a technician. |
| Visit | A scheduled instance of a work order at a specific time. |
| Route Optimisation | The process of determining the most efficient order in which a technician should complete assigned work orders. |
| Travel Time | The estimated time required to travel between two locations. |
| Distance | The estimated distance between two locations. |
| Appointment | A work order that must occur at a fixed or preferred time window. |
| Carryover | A configuration allowing work orders to span multiple visits across multiple days. |
| Scheduling Horizon | The maximum number of days the optimiser will consider when scheduling work orders. |
Components of the Routing System
The routing system consists of several services that work together to support route planning and scheduling.
TSP Route Solver
The Travelling Salesman Problem (TSP) is a classic optimisation problem in which a salesman must visit a list of locations exactly once and return to the starting point while minimising the total travel distance or time.
The challenge here is determining the most efficient route among many possible combinations, which increases rapidly as the number of locations grows. In field service management systems, TSP algorithms are used to optimise technician routes by ordering work orders in a way that reduces travel time, improves productivity, and ensures scheduling constraints such as working hours and priorities are respected.
The Travelling Salesman Problem (TSP) Route Solver determines the most efficient sequence of work orders for a technician.
| Function | The solver receives a list of work orders and returns an optimized route including:
The goal is to minimise travel time while respecting scheduling constraints. |
| Scheduling Rules | The solver considers the following factors: | ||
| Working Hours: | Work orders must be scheduled between:
| ||
| Example: | Parameter | Value | |
| DayStartTime | 08:00 | ||
| DayEndTime | 17:00 | ||
| Scheduling Horizon: | If work orders cannot fit within a single day:
| ||
| Carryover Option: | If enabled:
| ||
| Example: | Work Order | Duration | Result |
| 8 hour job | Only 4 hours available today | Split across 2 days | |
| Priority Optimisation: | If enabled, work orders are scheduled according to priority:
Higher priority jobs are scheduled first. | ||
| Appointments: | Appointments always receive the highest scheduling priority. Appointments must be scheduled within their defined time window. | ||
| Weekend Scheduling: | The system can be configured to:
| ||
| Holiday Handling: | A list of holidays can be provided to the optimiser. If a day is marked as a holiday:
| ||
| Timezone Handling | A timezone parameter ensures that:
This is important when technicians operate across multiple regions. | ||
| Unreachable Sites | If a site cannot be reached from the technician’s starting location, it will be returned in an Unreachable Sites List. This list helps administrators troubleshoot issues such as:
| ||
Route Planning Service
The Route Planning Service calculates travel metrics for a list of sites.
| Function | The service receives:
It returns:
This service is typically used for planning routes without performing full work order scheduling. |
Geolocation Services
The routing engine relies on geolocation services to convert addresses and coordinates.
| Get Coordinates - This service converts an address into geographic coordinates. | ||
| Currently this service uses Google Maps for geocoding. | Input | Output |
Address information such as:
|
| |
| Get Location Address - This service performs the reverse operation. | ||
| This function also uses Google Maps. | Input | Output |
|
| |
Agent Matrix Service
The Agent Matrix service calculates travel time from multiple technicians to a specific site.
| Function | Input | Output |
| This allows the system to determine which technician can reach the site fastest. |
|
|
Inputs Required for Optimisation
For route optimisation to function correctly, the following information must exist:
| Input | Description |
| Work Orders | Jobs requiring scheduling |
| Site Address | Location where the work must occur |
| Technician Location | Starting location of the technician |
| Work Duration | Estimated time required to complete the job |
| Technician Working Hours | Technician availability |
| Priority | Job priority level |
| Appointment Window | Fixed scheduling requirement (if applicable) |
Incomplete or inaccurate data may prevent proper optimization.
Dispatcher Workflow
The typical route optimisation workflow consists of these steps:
- Dispatcher reviews unassigned work orders.
- Work orders are grouped by region or technician.
- The route optimisation engine is executed.
- The system generates an optimised schedule.
- The dispatcher reviews the schedule.
- Adjustments can be made if required.
- Work orders are confirmed and dispatched to technicians.
Handling Scheduling Exceptions
The system may encounter scenarios where work orders cannot be scheduled. Examples could include:
| Scenario | Result |
| Work order exceeds technician capacity | Scheduled on a future day |
| Site cannot be reached | Returned in unreachable sites list |
| Technician working hours exceeded | Work order postponed |
| Missing coordinates | Work order cannot be routed |
Dispatchers should review exception results before finalising schedules.
Configuration Parameters
Several parameters control the behaviour of the routing engine.
| Parameter | Description |
| DayStartTime | Start of technician working day |
| DayEndTime | End of technician working day |
| Maximum Scheduling Days | Number of future days considered |
| Carryover Enabled | Allow work orders to span multiple days |
| Exclude Weekends | Prevent weekend scheduling |
| Holiday List | Prevent scheduling on specified holidays |
| Priority Optimization | Enable priority-based scheduling |
These settings are normally configured by system administrators.
Mapping Providers
The routing system currently integrates with external mapping services.
| Provider | Function |
| Google Maps | Address geocoding and reverse geocoding |
| ORS Server (OpenRouteService) | Alternative routing engine |
Future enhancements may allow administrators to select the routing provider.
Planned Enhancements
The following improvements are planned for future releases:
| Routing Enhancements |
|
| Mapping Enhancements | Allow the system to use either:
|
| Route Planning Enhancements | Ability to calculate travel time without changing site order |
| Geolocation Enhancements | Allow ORS server to perform geocoding instead of Google Maps |
| Agent Matrix Enhancements | Better handling of technicians that cannot reach a site, without affecting optimisation results |
Troubleshooting
Common routing issues and possible causes:
| Issue | Possible Cause |
| Site unreachable | Invalid coordinates or address |
| Incorrect travel time | Mapping provider error |
| Work order not scheduled | Insufficient technician capacity |
| Time conflicts | Appointment constraints |
| Incorrect schedule times | Timezone configuration issue |
Conclusion
Route optimization is a key capability of the FSM platform, enabling organisations to efficiently schedule and dispatch work orders while minimising travel time and maximising technician productivity. By using routing mechanisms focusing on the Travelling Salesman Problem, the system evaluates multiple scheduling factors, including technician availability, work order priority, travel distance, and appointment constraints to produce optimised daily routes. When properly configured and supported with accurate location and scheduling data, the routing engine helps dispatchers make informed decisions, improves service delivery times, and ensures technicians can complete the maximum number of jobs within their working hours.