Constraints
Constraints are the rules that guide how rosters are generated. They fall into two categories; hard constraints which are non-negotiable rules such as legal requirements or employee availability, and soft constraints which are preferences like preferred working hours.
All soft constraint have a weight
field, and many have a fairness
field.
- The weight of a constraint indicates its priority level. It is typically a value ranging from 0 to 100, with 100 representing utmost priority. Certain constraints may also have negative weights, going down to -100, to effectively reverse the constraint's impact. The default weight is set at 0.
- The fairness of a constraint encompasses two elements:
- The fairness weight, a numeric value between 0 and 100, which assesses how evenly the constraint should be applied among employees. The default fairness weight is 0.
- A boolean that considers whether the Full-Time Employee (FTE) working hours of employees should influence the fairness score. When set to true, the fairness weight adjusts based on the FTE hours of the employees. This is set to false by default.
Most constraints can be tailored to affect specific employees.
If no employeeIds
are defined in the constraint configuration, it applies to all employees.
Implicit Constraints
Constraint | Description |
---|---|
One Shift Per Day | An employee can work only one shift per day. Note: A shift spanning two days only belongs to one day as specified. |
No Concurrent Shifts | An employee cannot be assigned to two shifts that overlap in time. |
User-Configurable Constraints
📄️ Employee Availability
Block employees from working on specific days or shifts, or make it desired/undesired for them to work on specific days or shifts.
📄️ Employee Utilization
Constrain the number of hours worked by employees in specific periods, or on specific shifts.
📄️ Pattern
Define desired or undesired shift patterns.
📄️ Periodic Rest
Set targets for the minimum rest an employee should receive in each period
📄️ Period Distribution
Set rules for how many periods (marked by labels) an employee can work.
📄️ Rest Between Shifts
Specify the minimum rest period between shifts for employees
📄️ Prioritization
Set priority scores employees
📄️ Continuity
Specify shifts for which it is preferred to reuse always use the same employees
📄️ Blocked Time (Deprecated)
Time periods when employees cannot be scheduled to work
📄️ Weekend Distribution (Deprecated)
Set rules for how many weekends an employee can work
📄️ Working Time Preference (Deprecated)
Intervals when employees prefer to work
📄️ Shift Layout (Deprecated)
Set desired break time between a given shift
📄️ New Working Day (Deprecated)
Avoid changing the working days of pre-scheduled shifts
📄️ Existing Working Day Change (Deprecated)
Penalize any changes to pre-scheduled shifts
📄️ Consecutive Time Off (Deprecated)
Defines desired amount of time off per week
📄️ Shift Utilization (Deprecated)
Specify how many times shifts should be used