Weekly employee minutes
Employee-minutes-weekly-check
The Employee-minutes-weekly-check check is useful for determining if the roster is feasible with respect to the required employee minutes in a week.
This check takes into account the following constraints, if they are hard constraints:
- ShiftLayout (Because some shifts must occur with days in between)
- ShiftUtilization (Because some shifts can only be used a certain number of times)
- WeekendDistribution (Because some employees require free neighbouring weekends)
If the MinWeekHours property is not set, then this check is not run on those employees, however, setting MaxWeekHours is generally necessary to get warnings in the first place.
The check is done for each week in the schedule, and the result is returned as a warning if the demand cannot be met.
Warning Response Schema
title required | string Enum: "Employee-availability-check" "Demand-weekend-covered-by-employees-check" "Employee-minutes-weekly-check" "Employee-minutes-entire-roster-check" "Demand-covered-by-shift-templates-check" "Shift-is-covered-by-demand-check" "Employee-assigned-to-shift-covers-demand-check" "Shift-Templates-are-demand-relevant-check" "Shift-utilization-minimum-occurrence-check" "Locked-shift-task-requirements-check" |
category required | string This category is always set to WARNING |
description required | string |
required | Array of objects (violation) |
{- "title": "Employee-availability-check",
- "category": "string",
- "description": "string",
- "violations": [
- {
- "day": 0,
- "date": "2019-08-24",
- "demandSegment": {
- "startTime": 0,
- "endTime": 0,
- "minDemand": 0,
- "timestamp": "string"
}, - "shift": {
- "name": "string"
}, - "weekendNumber": 0,
- "requiredEmployees": 0,
- "missingEmployees": 0,
- "missingEmployeesDueToWeekendDistribution": 0,
- "employeeNumber": "string",
- "requiredMinutes": 0,
- "achievableMinutes": 0,
- "startTime": "string",
- "endTime": "string",
- "personnelGroup": "string",
- "assignment": "string",
- "taskId": "string",
- "competencies": [
- "string"
], - "workType": "string",
- "numberOfEmployees": 0,
- "missingMinutes": 0,
- "totalMinutes": 0,
- "constraintId": "string",
- "lockedShiftName": "string",
- "employeeId": "string",
- "violatedProperties": [
- "MIN"
]
}
]
}
The following fields are used in the "violation" object:
- employeeNumber
- requiredMinutes
- achievableMinutes
The following payload illustrates how the response looks for a payload with an employee that cannot have her required hours met.
In this example, we illustrate a payload that will cause a warning in the feasibility check. The first employee must work 17 hours a week, whereas the other employee must only work 16 hours a week.
Since there is only 16 hours available to work, the first employee will not be able to work the required hours, which will result in a warning.
- Payload
- Response
{
"jobInfo": {
"id": "xxx",
"organisationId": "xxx",
"scheduleType": "RECURRING",
"demandType": "TIME_DEMAND",
"planningHorizon": {
"startDate": "2022-01-01",
"nrOfWeeks": 1,
}
},
"shifts": [
{
"id": "Shift1",
"shiftTypes": [
"DAY_W"
],
"intervals": [
{
"startTime": "08:00",
"endTime": "16:00",
"dayIndicator": 0,
"workTypeId": "1"
}
]
}
],
"employees": [
{
"id": "1",
"workTime": {
"weekHoursRules": {
"minWeekHours": 17,
"maxWeekHours": 17
}
}
},
{
"id": "2",
"workTime": {
"weekHoursRules": {
"minWeekHours": 16,
"maxWeekHours": 16
}
}
}
],
"timeSlots": [
{
"id": "all_day",
"startTime": "00:00",
"endTime": "23:59",
"workTypeId": "1",
}
],
"demands": [
{
"days": {
"dayIndexes": [
0,
1
]
},
"timeDemands": [
{
"timeSlotId": "all_day",
"ideal": 1
}
]
}
],
"configuration": {
"workTypes": [
{
"id": "1",
"name": "WORK",
"factor": 1.0
}
]
}
}
{
"title":"Employee-minutes-weekly-check",
"category":"WARNING",
"description":"Checks if the roster is feasible with respect to the required employee minutes in a week.",
"violations":[
{
"employeeNumber":"1",
"requiredMinutes":1020,
"achievableMinutes":960
}
]
}