Changelog
Follow up on the latest improvements and updates.
RSS
new
improved
fixed
Timefold Platform
Employee Shift Scheduling
Field Service Routing
Pickup & Delivery Routing
Employee cost optimizations for ESS, a new Pick-up & Delivery Routing model, and improved webhook alerting and logging (v0.56.4)
- Webhook failure notifications: The Timefold Platform now provides smarter failure alerts for webhooks. After 10 failed retries, Tenant administrators receive an email notification with a direct link to the webhook logs in the platform. (To prevent spam, you’ll only get one email per webhook every two hours, even if multiple failures occur, and no emails once the webhook starts working again.) See Webhooks → Retry Strategy for details.
- Webhook logs: The Timefold Platform now provides detailed logs for webhooks. You can view these logs under Tenant settings → Webhooks → [your webhook]. Webhook activity logs include: Timestamp, Status, Model name & version, Dataset ID and a Message (indicating why it failed). (Logs are retained for up to 30 days.) See Webhooks → Logs for details.
- Model version information: On Tenant Settings → Models, You can now choose to see model version, sdk version, solver version, build time & build commit on the overview table. Previously this information was only available in the dialog. Use “manage columns” (top right) to change which columns are shown. This helps when running customized models or comparing installed versions against changelog releases.
- Several smaller bugs were fixed, including: Corrected default behavior for the configuration profile in theRe-solvedialog. Fixed the score graph & optimization gain metrics so that the first data point correctly represents the construction heuristic. Fixed member invite flows that could fail in specific tenant setups. You can now delete datasets in all recently introduced dataset statuses.
- Smaller improvements: The sidebar now always shows all output metrics, even if some metrics weren’t computed in the current run (for example, when a related feature isn’t enabled).
- Added visit start auto-delay based on visit dependencies: Wait times can now be included between dependent visits, making it possible to assign visits that would previously have been left unassigned because the minimum delay between visits was not met.
- Additional input metrics: We’ve added the number of Movable visits and Visit dependencies submitted in the input dataset to the input metrics to help reason about dataset performance.
- Visit and visit group ordering: The model now improves the quality of construction heuristics result by ordering the visits and visit groups according to priority, start time and other attributes. This means that more higher-priority visits get assigned by the construction heuristics in favor of lower-priority visits. The results of the optimization will now no longer depend on how visits and visit groups are sorted in the model input.
- Employee activation and cost optimization: We have added new constraints for optimizing employee activation and managing workforce costs through Employee activation features: Minimize activated employees: Reduces the number of employees needed by applying activation costs. Maximize activated employee saturation: Maximizes utilization of activated employees before activating additional staff. Keep employee activation ratio: Maintains the desired proportions between different employee groups (e.g., regular staff vs contractors). This feature helps reduce labor costs by minimizing the number of employees needed while ensuring optimal utilization of activated staff and maintaining workforce composition requirements.
- Performance improvements for global rules: The model now performs up to 40% faster for datasets that use global rules heavily and has a lower memory footprint. This allows for improved solution quality within the same time, especially for big datasets.
- OpenAPI spec fix: We have fixed a bug in rotation rules configuration that caused issues when generating clients based on OpenAPI specification of the model.

- Lunch breaks and personal appointments
- Route optimization
- Shift hours and overtime
- Job requirements and tags
- Time windows and opening hours
- Skills
- Movable stops and multi-day schedules
- Dependencies between stops
new
improved
fixed
Timefold Platform
Employee Shift Scheduling
Field Service Routing
Timefold becomes SOC2 certified and other updates (v0.55.2)

- Filter datasets by status: You can now filter datasets based on their status (e.g. “Solving”, “Dataset invalid”, “Failed”, etc.). This makes it easier to monitor ongoing solves or quickly find datasets that need attention. Learn more about dataset statuses.
- Faster UI performance: General performance optimizations make the interface feel more responsive.
- Improved maps stability & fixed border-region routing bug: There is now better error handling and reporting when invalid coordinates are provided, and we resolved an issue where route distances were calculated incorrectly for locations near map or country borders.
- Performance improvements: We have improved the performance of the model by optimizing the use of constraints, resulting in approximately 20% increase in the move evaluation speed. This means you get higher quality solutions in much less time, enabling faster decision-making and improved productivity.
- Travel penalty for inactive shifts: The “Minimize travel time” and “Minimize travel distance” constraints did not take inactive shifts into account, disregarding the travel from an inactive shift’s start location to the end location (and to any breaks with location, if defined). As a result, the model could produce solutions where a visit was not assigned to an inactive shift, even though it would have been more optimal to do so. See Route optimization guide for more details.
- Support for overlapKind in "Consecutive days worked" rules: We have added support foroverlapKindin Consecutive days worked rules to control how shifts that span multiple days are counted towards the consecutive days worked limit.
- Contract validation: We have added some validation that provides a warning when a high contract to employee ratio is detected. This can be an indicator of duplicate contracts. Decreasing duplicate contracts can improve the model’s performance.
- Travel output metric: We now don’t output the "Total travel distance to/from home location" output metric when no travel configurations are provided.
- Bug fix: We have fixed a bug that caused the output metrics calculation not to be calculated correctly when no employees were provided.
new
improved
Timefold Platform
Employee Shift Scheduling
Field Service Routing
Real-time planning improvements (preview: /from-patch and FSR pinning) and HMAC webhook support (v0.54.4)
- Single datasets now show the parent and origin dataset IDs.
- A dropdown lets you easily jump between revisions of the same plan.
- On the Plans overview, you can toggle between showing only original plans versus all revisions, including datasets created from patches.
- We have updated the webhook configuration UI so you can now also filter on the new datasets statuses (DATASET_COMPUTED&DATASET_INVALID) introduced in v0.53.

- (Customizable) HMAC support for webhooks: You can now secure your webhook integrations with HMAC authorization. This verifies that requests come from the Timefold Platform and haven’t been tampered with, protecting against forged or replayed requests. By default, webhooks are signed using a standard HMAC header format (as used by many APIs), but you can also customize how signatures are calculated and sent, including using the request path or your own header names. Read the updated webhooks documentation, including HMAC examples.
- Ability to submit plans as a reference dataset: You can now submit a planning problem as a static plan, without triggering further optimization. The submitted problem will still be scored and evaluated, and input and output metrics will be computed. Do this by calling the endpoints to submit planning problems with the parameter?operation=NONE. (See API specs for details.) You can use this functionality to compare plans how they have been executed in reality with plans optimized in Timefold, or compare plans optimized by other software to plans optimized in Timefold.
- Ability to set a default configuration profile: You can now set a default configuration profile for each model. This configuration profile is automatically used when creating new datasets, unless another profile is specified. Default profiles make it easier to standardize settings across datasets and ensure consistency when experimenting with different configurations. Read the configuration profile documentation.
- Improved filtering the audit log: In “Tenant settings → Audit log”, you can now filter by multiple event types at once. This makes it easier to review related changes together. For example, viewing all adds, updates, and deletes for configuration profiles, or tracking multiple types of changes to Tenant Members.
- Zooming on the score graph: You can now select and zoom in on a portion of the score graph to inspect that part of the solving process in more detail. This helps you spot subtle improvements or changes that may not be visible in the full view. The score graph shows how a solution’s score evolves during solving and, when hovered, displays the corresponding output metrics. This helps you understand whether the solution is still improving and what trade-offs the model is making.
- Tags a separate column on Plans overview: On the Plans overview page, tags have moved to their own column, so you can now control visibility and importance of showing this in the overview via “Manage columns.”
- Confirm tenant member delete with email: To avoid mistakes, we’re now asking you to confirm deletion of a tenant member by typing their email, instead of their name.
- Several stability improvements.
- Pinning enhancement for real-time planning: We’ve added finer control over which visits and shifts are pinned during real-time planning. You can now pin entire vehicle shifts or control pinning of the next visit a technician is traveling to. The model output also indicates which visits and shifts were pinned, and a new input metric “Pinned Visits” has been added. Read more.
- Unassigned visits from visit groups in the model output: We have fixed the model outputunassignedVisitsattribute to contain also the unassigned visits from visit groups.
- Performance improvements: The model is now significantly faster and more memory efficient (by optimizing the use of constraints), delivering 2-3x quicker move calculations on typical datasets. This means you get higher quality solutions in much less time, enabling faster decision-making and improved productivity.
new
improved
fixed
Timefold Platform
Employee Shift Scheduling
Field Service Routing
Custom shift rotations and sequence rules for ESS, and “datasets” replace runs (v0.53.5)
- Terminology update - from “runs” to “datasets”: We are renaming “runs” to “datasets” throughout the platform and documentation. We are doing this in preparation for new functionality coming later. (This will include the ability to easily make changes to a dataset, or comparing optimized datasets with reference datasets.) Both in the UI, in the documentation, in the OpenAPI specs of the models, and in the API responses you will see related changes. Any changes to the model API’s are backwards compatible.
- Dataset ID improvements: From the overview of datasets you can now easily filter on dataset id, and on the detail page of a dataset we’ve added a quick copy-to-clipboard option.
- Step count smart termination: We have added a smart termination that stops the solve operation after a predetermined amount of steps. This termination is not recommended for production use, but useful to benchmark your models, configurations and datasets. You can configure the termination via a configuration profile in the Platform UI or directly when submitting datasets.
- Stability improvements: We have made several stability improvements for more graceful shutdowns and restarts when solving fails for a reason (e.g. insufficient memory). When solving fails for a reason, and needs to be restarted, we’ve fixed a problem where sometimes logs of previous solves weren’t always preserved.
- Output itinerary item discriminator: We have fixed the OpenAPI spec for the OutputItineraryItem. It now contains the discriminator field. This field is either set to VISIT or BREAK depending on what the OutputItineraryItem’s `id field refers to.
- Terminology update - from “runs” to “datasets”: Related to the aforementioned rename of “runs” to “datasets” a couple of changes were made to this model’s API. Check the changelog for the details. All changes are backwards compatible.
- Custom shift rotations: We have added support for defining custom shift rotations. Compared to existing weekly rotations, the custom rotations allow for flexibility in the rotation period length. This feature can help formulate rotation periods such as: “Minimum 14 days of morning, or afternoon shifts” or “Maximum 30 days of morning, or afternoon shifts”. Check the changelog for more details.
- Sequence rules: We have improved capabilities of Consecutive days worked rules to support definition of shift sequences. This feature can help formulate use cases such as: “At least 2 days off after a sequence of night shifts”, “Prefer sequences of morning shifts without days off in between”, “Start a new morning or afternoon sequence on Monday”. Check the changelog for more details.

- Deprecation of builtInRotationPeriod in shift rotation rules: ThebuiltInRotationPeriodattribute has been deprecated in favor ofrotationPeriodin Shift rotation rules. See migrating from 1.10.0 to 1.11.0 for more details on required configuration changes.
- Terminology update - from “runs” to “datasets”: Related to the aforementioned rename of “runs” to “datasets” a couple of changes were made to this model’s API. Check the changelog for the details. All changes are backwards compatible.
fixed
improved
Timefold Platform
Employee Shift Scheduling
Field Service Routing
Stability, security, and performance improvements (v0.52.0)
- Multiple bugfixes
- Dependency updates and maintenance
- Security upgrades
- Improved input validation for more robust model handling.
- Performance improvements for faster and more efficient scheduling runs.
new
improved
fixed
Timefold Platform
Employee Shift Scheduling
Field Service Routing
Technician area coverage support in FSR and various improvements (v0.51.0)
- New Benelux + Germany map: A new map covering Belgium, the Netherlands, Luxembourg, and Germany is now available.

- Edit names and tags of in-progress runs: You can now update the names and tags of runs that are still scheduled or in progress – making it easier to classify and organize your runs.
- Stability improvements: Several under-the-hood improvements for a smoother experience.
- Technician area coverage support: A new hard constraint allows you to define the geographic area a technician can cover during their shift. See technician area coverage guide for details.
- Documentation improvements: Added Terms & Validation guides for clarity and consistency.
- Improved justification for “Minimize gaps between shifts”: The justification for the Minimize gaps between shifts for employee constraint now better reflects the actual time between consecutive shifts. See the Minimize gaps between shifts guide for details.
- Documentation improvements: Added Terms & Validation guides for clarity and consistency.
new
improved
fixed
Timefold Platform
Employee Shift Scheduling
Field Service Routing
New smarter termination, model build insights, and model improvements (v0.50.1)
- Model build information in tenant settings: You can now view detailed build info for your models directly in tenant settings, including: Solver version, SDK version, Build commit, Build time. This helps you verify the version that is being used. (Especially useful for customers that run custom versions of models.)
- New smart termination: “After initial solution”: This option stops a run immediately after the construction heuristic produces the first solution. It’s useful when you want a quick look at the initial plan before further optimization.

- Additionally, we’ve made several under-the-hood improvements for a smoother experience, and updated the platform documentation on inviting tenant members for clarity.
- Improved scalability of movable visit handling: The performance of the custom move has been further optimized. Additionally, it now only activates for datasets where it brings measurable value, reducing unnecessary overhead.
- Disruption KPI bugfix: Fixed a bug where the Disruption KPI could behave incorrectly when running a score analysis on an existing run.
new
improved
fixed
Timefold Platform
Employee Shift Scheduling
Field Service Routing
Include unassigned visits in the output for Field Service Routing & other minor improvements (v0.49.0)
- Unassigned visits in the model output: We have added a new attributeunassignedVisitsto the model output. Only the visit IDs are included in the response, not the full visit objects. See Changelog for details. This change makes the finding of unassigned visits easier and more efficient.
- Improved scalability of movable visit handling: The performance of the custom move handling movable visits has been improved, especially for large datasets with many movable visits (assignable to multiple days).
- Fixed recommendation vehicle shift dependencies: Fixed a bug where vehicle shift dependencies were duplicated in the output and where some vehicle shifts weren't considered as dependencies.
- Floating breaks can be scheduled during waiting time before travel: Floating breaks can now be scheduled during the waiting time before travel starts, which allows for more efficient scheduling of breaks. This is especially useful for pinning. See Changelog for details.
- Disruption KPI: When submitting a schedule with already assigned employees, thedisruptionKPI is now always calculated. Before, this Disruption KPI was only calculated whendisruptionRuleswere provided. See the Real-time planning feature guide for details.
improved
fixed
Timefold Platform
Employee Shift Scheduling
Field Service Routing
Maintenance release (v0.48.0)
improved
fixed
Timefold Platform
Employee Shift Scheduling
Field Service Routing
Smaller bugfixes (v0.47.0)
- Audit Log filters: Some audit log event types were missing from the filtering options. These are now correctly displayed.
- Improved “New Run” dialog: We've enhanced the user experience when launching a new run for models with a large number of demo datasets.
- We’ve made several smaller performance improvements and bugfixes, e.g. to the “Visits finished in SLA” KPI’s. The UI will now better indicate when it’s an absolute value or a percentage.
- We’ve added an improved Route optimization feature guide to our documentation.
- We have updated penalties for several constraints to no longer include the shift's duration in the penalty. This change makes sure the solver does not treat shifts with different durations as more or less preferred than others. See changelog for details.
- We have fixed a bug where two soft constraints (Preferred weekends worked per period, Preferred shift start time difference) were treated as hard constraints. See changelog for details.