Fine-Tune the Scheduling Policy
In scheduling policies, you set weights to service objectives. These weights represent the importance of each objective when the engine generates an optimal schedule. You can fine-tune the weights through an iterative tuning process to set weight values in your scheduling policy that closely align with your business KPIs.
Required Editions
| Available in: Available in Lightning Experience and Salesforce Classic in these editions where Field Service is enabled: Enterprise, Unlimited, and Developer Editions |
| User Permissions Needed | |
|---|---|
| To enable Enhanced Scheduling and Optimization: | Customize Application |
This is a Field Service managed package feature.
These steps are a starting point. They outline a general framework for fine-tuning your scheduling policy weights through an iterative process: simulate, collect data, analyze, and refine. You can modify and expand these steps to meet your specific requirements.
- Collect production-like data in a sandbox to use for simulation testing. Preferably perform a refresh from production into a full sandbox.
- Select two or three service territories to perform simulation testing on. Preferably choose diverse territories so you can test on a dataset that is representative of all your Salesforce data.
-
Select a future date range start time to perform testing, depending on how long you expect
testing to take. It’s better to select a date range in the future so the passing of the current
time doesn’t affect the optimization window. For example, if today is January 1, 2024, and you
expect the tuning exercise to take 3 days, select a date range for optimization to start no
later than January 5, 2024. This way the current date doesn’t overlap with your optimization
date range and interfere with results.
Note For a more realistic test dataset, update the dates within the dataset based on the amount of test data available for the selected date range. - The optimization horizon date range must match what you intend to configure in production. For example, if you are testing the global optimizer that has a horizon of 3 days, the optimization horizon for the testing is January 5, 2024 to January 7, 2024.
- Create a copy of the scheduling policy that you’re testing for fine-tuning and rename it to show that it’s the baseline scheduling policy. For example, ABC_Baseline.
- Set up Optimization Insights, or, if you’re using Enhanced Scheduling and Optimization, set up the Optimization Hub.
- Unschedule all the appointments in the testing data domain.
- Run Global Optimization on the selected service territories for the time horizon that you selected. It's easier to use the OAAS API to run the test because it gives you the flexibility to choose future dates. When you’re using Enhanced Scheduling and Optimization, you can control the time range directly from the scheduled job page.
-
Measure the results.
- Measure runtime.
- Collect results using Optimization Insights or the Optimization Hub to determine how many appointments were scheduled, utilization, travel time, and more metrics, according to your specific business KPIs.
- Take screenshots of the Gantt.
- If possible, save the schedule by exporting the service appointment schedule times and Assigned Resource records for analysis.
- Run the same test one or two more times and average out the result. The result acts as the baseline metric to compare against.
- Review the Gantt and the metrics and identify areas where you want to improve and which KPIs to focus on. Consider the types of service territories you chose and analyze the differences in results among the territories.
- Copy the scheduling policy and rename it to show the test number and what you are planning to change in this policy.
- Update the service objective weights to impact the KPI that you want to see an improvement on. We recommend you change only one variable at a time, and test how it affects the results. Otherwise, it can be difficult to determine which change impacted the results. Keep in mind that objective weights are relative to each other.
- Repeat the process from step 8.
- Continue the simulation tests until you see no significant improvements from further tuning of the scheduling policy.
When you’re happy with the results, you can use your newly tuned scheduling policy in your production environment. We recommend you test the new policy with a few service territories first and get feedback from users before you roll it out to all service territories.

