Skip to main content

Rostering

Rostering is the process of assigning employees to shifts in order to fulfill the required demand for workforce.

The Automatic Rostering API supports two types of schedules, CALENDAR and RECURRING. CALENDAR is for planning specific calendar periods with a start and end date, whereas RECURRING is for planning for a recurring period where the end of the last day wraps around to the start of the first day. This is applicable when you want to plan for a certain number of weeks that can be reused in several planning periods. The schedule type and planning horizon are defined in the jobInfo object in the request payload.

Job info in the request payload
id
required
string (rosterId)

Identifier for this roster.

organisationId
required
string (organisationId)

Identifier for the organisation/user that has requested this roster.

scheduleType
required
string
Enum: "CALENDAR" "RECURRING"

Type of schedule that the solver should create. Can be either "RECURRING" or "CALENDAR". See documentation for more information.

demandType
required
string (demandType)
Enum: "SHIFT_DEMAND" "TIME_DEMAND"

Type of demand that will be used in this job. Can be either "SHIFT_DEMAND" or "TIME_DEMAND". See documentation for more information.

required
object (planningHorizon)

Specifies the planning horizon for which a roster will be created. The required properties depend on the scheduleType, which can be either "RECURRING" or "CALENDAR". See documentation for more information.

{
  • "id": "string",
  • "organisationId": "string",
  • "scheduleType": "CALENDAR",
  • "demandType": "SHIFT_DEMAND",
  • "planningHorizon": {
    }
}

There are three core entities in every rostering problem; employees, shifts and demands. In some use cases, the shifts and demand overlap, e.g. when the demand is defined as the demand for particular shifts rather than a demand for people needed over time. In the Automatic Rostering, both use cases can be configured, through ShiftDemand and TimeDemand - see the Demand section for more information.