Workforce Scheduling solver

The Workforce Scheduling solver optimizes the assignment of employees to shifts so that scheduling constraints are met (or violations thereof are minimized) and employee preferences are taken into consideration.

The input to the solver is a request that describes employees, shifts, coverage requirements, and budget requirements. For each employee, roles, skills and scheduling constraints can be specified to define what a valid schedule per employee looks like. Shifts determine when and where employees can work, while coverage requirements determine the demand for different employee roles (and skills) over several time spans.

The output of the solver is a response with employee-shift-role assignments that summarizes for every employee, the shifts and role (by shift) to which they are assigned.

Features

For an in depth explanation of every feature of the solver, refer to the API documentation. The following summarizes the most popular features of the solver.

Employee scheduling constraints

Specifies rules or limits that the schedule of a particular employee should satisfy. In particular, it supports:

  • Minimum / Maximum working time
  • Minimum / Maximum consecutive days
  • Minimum / Maximum number of shifts
  • Minimum rest time between shifts
  • Resource constraints
  • Shift requests to work (or not) on specific shifts

Employee preferences

Specifies a numeric preference that an employee has for a specific shift, and the sum of preferences across the roster is maximized.

Coverage requirements

Specifies a number of employees that are required to be working over several time windows and for specific roles. Coverage requirements can align with the given list of shifts, but they can also define more fine-grained time windows of the required number of working employees.

Budget requirements

Specifies a contract for the employees with regular and overtime hourly rates, coupled with global budget constraints. A budget can either be a maximum value for workforce costs or an indication that such a cost needs to be minimized.

Constraint priorities

Every employee scheduling constraint, coverage requirement and budget requirement is given a priority level (mandatory, high, medium, or low). All constraints with a mandatory priority must be satisfied by the solver. Constraints with any other priority can be violated by the solver, but these violations are minimized according to the priority order. Employee preferences are considered by the solver after constraint violations in every priority level have been minimized.

How to get started

To get access to the Workforce Scheduling API, follow the trusted testers instructions and then follow the setup guide to obtain an API key. After obtaining access to the API, use the API examples to get started. Should you have questions, contact or-workforce-scheduling+contact@google.com.