New and noteworthy
0.35.0
Input Metrics
We have added 3 new input metrics that provide information on the dataset input:
-
number of employees
-
number of shifts
-
number of pinned shifts
See OpenAPI Spec for a description of their meaning.
Configurable Matching Behaviour
The Cost Rules, Period Rules and Global Period Rules previously only checked whether a shift broke a rule if the shift started within the rule’s validity period. Now this behaviour can be configured to also compare the shift’s end time with the rule’s validity period. See the constraint documentation costs per period not in required range and costs per period not in preferred range and the employee contract documentation.
Added "concurrent shifts worked not in required range" constraint
We have added a new concurrent shifts worked not in required range constraint to control the maximum number of shifts that can take place at the same time. The feature is useful in scenarios where the shifts use a shared resource with limited capacity.
See concurrent shifts rules for more information.
Contract Travel Configurations
It is now possible to specify a list of travel configurations per contract. Each travel configuration can limit the distance from the home location to a shift’s location and the time between 2 shifts at different locations, within a certain time period. See the updated user guide for examples.
Global travel configurations are now deprecated.
0.34.0
Period rules can limit logged time
The contractual period rules can now specify minimum and maximum logged minutes evaluated against the new shift loggedTime attribute. This feature can be useful when limiting minimum/maximum shift hours that differ from the scheduled shift start to end interval, e.g. because breaks are not included in the shift working hours.
See Logged time and period rules and the constraint documentation for details on both REQUIRED and PREFERRED variants.
Added "required shift group assignment mode not met" constraint
We have added a new required shift group assignment mode not met constraint to specify the way the shifts are assigned within shift groups. The feature is useful in scenarios where a piece of work (e.g. product demonstration) should only be done once, but we have multiple time slots (shifts) available for it.
See shift group rules for more information.
0.33.0
Single-day pattern rules updates
We have added a custom move to facilitate matching of PREFERRED
patterns.
You may also specify the weight of a single-day shift pattern in the relation to the other single-day patterns. See Employee works preferred single-day shift sequence pattern rule for more information.
The REQUIRED
single-day patterns are now deprecated and will be removed in a future version in favour of PREFERRED
patterns with a high weight.
Single Day Shift Patterns now have a property ordered
(true
by default). When set to false, the pattern can be matched even if the shifts don’t follow the same order as their respective pattern elements.
0.29.0
Limit scope of “minutes between shifts” rules
In Employee Contracts, you can specify the minimum or maximum time between shifts with minutesBetweenShiftsRules
.
You can now provide a scope for these rules.
The scope will limit which pairs of shifts the rule is applied to.
The scope excludes shift pairs where the start of the later shift is after the end of the prior shift plus the scope duration.
See the updated Employee contracts for examples.
Mandatory and optional shift assignment
We have extended shift priorities to distinguish between mandatory
(default) and optional
shifts.
Optional shifts are useful in scenarios when conformance with a soft constraint (e.g. a PREFERRED
multi-day pattern rule) is more desired than having an extra shift assigned.
For more information, please see:
Multi-day pattern rules updates
We have added a custom move to facilitate matching of PREFERRED
patterns.
You may also specify the weight of a multi-day shift pattern in the relation to the other multi-day patterns. See Employee works preferred multi-day shift sequence pattern rule for more information.
The weight can be used to migrate from REQUIRED
patterns to PREFERRED
patterns with high weight, see Upgrading to the latest versions for details.
0.28.0
Employees' Preferences KPIs
We have added 4 new KPIs that provide information on the employees' preferences:
-
Average Duration of Employees' Preferences Met
-
Minimum Duration of Preferences Met Across Employees
-
Average Duration Employee’s Unpreferences are Violated
-
Maximum Duration of Unpreferences Violated Across Employees
See OpenAPI Spec or the Timefold Platform UI for a description of their meaning. These KPIs are marked as experimental and subject to change. We would love your feedback.
0.27.0
Multi-day pattern rules updates
We have fixed the multi-day pattern rules to correctly handle a pattern starting with OFF
.
Please note that if you use a pattern starting or ending with OFF
, you must specify the planning window interval to ensure the pattern matches properly throughout the whole period you are planning for.
The REQUIRED
multi-day patterns are now deprecated and will be removed in a future version in favour of PREFERRED
patterns with a high weight.
See Employee works preferred multi-day shift sequence pattern rule for more information.
0.26.0
Added constraints to minimize gaps between shifts for an employee
We have added a constraint to prefer assigning employees to shifts that are close to each other to minimize the time between shifts. This is useful for cases where the employee works multiple shifts per day.
See Minimize gaps between shifts for employee rule for more information.
0.25.0
Improved demo datasets
We have replaced the existing demo datasets with new ones that are more realistic and better showcase the model’s features.
The new demo datasets cover basic Employee Shift Scheduling capabilities, Contract Period Rules, and Hourly Demand Rules.
Flexible shift priorities
We have added the ability to define custom priorities and weights for shifts. Whenever the model needs to choose between multiple shifts to assign to an employee, it will favor shifts with higher priority.
See Unassigned shift rule for more information.
0.24.0
Model renamed to "Employee Shift Scheduling"
We are renaming the “Employee Scheduling” model to “Employee Shift Scheduling” to distinguish between future other models involving scheduling for employees. (We are not changing API urls or entity names, because …)
Model marked as “Stable”
We have also marked this model as “Stable”, meaning that we promise backwards-compatibility for future minor releases.
"Unassigned shift" constraint no longer includes the shift’s duration in the penalty
We have removed the shift’s duration from the constraint’s penalty. We now only consider the shift’s assignmentPriority.
0.22.0
Added balance by time worked rule
We added a new Balance time worked rule.
Use this rule to make sure the time worked is balanced fairly across employees.
Added employee works shifts with preferred or required tags rules
Tags can now be used to define preferred and required shifts for employees.
See documentation of the rules for more information:
Improved tags documentation
We have improved our documentation related to tags to more clearly give an overview of their possible uses. See Tags and tag types for more information.
Improved performance of balance shift count rule
We fixed an issue in Balance shift count rule, that caused performance degradation for big datasets.
0.21.0
0.20.0
Period rule can optionally define a validity date time span
Period rule defined as a part of employee contract can now specify a validity date time span to further limit when the rule is applicable.
Please see Employee contract period rule for additional details.
0.19.0
Local date time replaced by date time with offset to UTC
All ISO 8601 local date time types have been replaced by ISO 8601 local date time with offset to UTC (Coordinated Universal Time) to support multiple time zones.
Please see Upgrading to the latest versions and Time zones and Daylight Saving Time (DST) for additional details.
Location constraints
Employees and shifts can now provide a location. This allows you to restrict the possible shifts where an employee can work and minimize the travel distance.
The following constraints have been added:
Priority can now be defined for employees
Employee preferences are more likely to be satisfied for employees with higher priority.
Affects the following constraints
See employee priority.