The process of rostering

The process of efficient workforce planning and automated scheduling. From headcount prediction to optimal shift planning, employee preferences, and analysis.

The image illustrates a process of shifting and forecasting, showing a chart depicting the number of agents over time. This data is processed by a Parquet algorithm to create a shift plan. Scorecards and incentives are linked to agents, and bidding is also indicated. The image shows a matrix view related to machine learning in time scheduling. Various factors are labeled, including labor regulations, employee scheduling preferences, planned days off, bank holidays, capacity forecasting, and employee skill matrix. These input factors influence the roster algorithm, which is processed by the Shift Wizard.
  • First we make the shift-plan that fits best the predicted HR need (by Prophet) (parquet algorithm). If the sum of employees working-time frame (sum of parquets) is less than the calculated HR curve (most of the cases it happens) the parquet algorithm follows the shape of the curve even if the shift-plan stays below the curve.

  • Then we let the employees bid with their scores (for about 10 days).
    It can be done from home, too.

  • Then comes the roster algorithm that assigns the appropriate employee to the appropriate shifts.

  • The result can be analysed: Is there any labour regulation violation?
    What is the satisfactory rate of preference bidding? (What percentage of wishes were fulfilled?)

  • After changing the input parameters the roster algorithm can be run again.
    It is a kind of “what if” experiment.

Effective Workforce Planning:
Work Distribution Curve Using Prediction

Our goal is to provide the most accurate picture of future workforce demand based on historical data and trends, minimising overload and idle time.
We offer two main methods: traffic-based and an innovative hedcount-based prediction.

Traffic-based Forecasting

This method is based on historical traffic data (e.g. number of customers), where more recent data is given more weight. It is possible to set holidays, public holidays and shifted working days automatically according to the social security calendar, but can also be edited manually.

By activating the “Apply trend effect” option, the forecast can become even more accurate. In this case, the system corrects each forecast data point based on the unique increasing or decreasing trend of the associated historical data.
For example, if in previous periods traffic has gradually increased at 8 AM on Monday, future 8 AM forecasts on Monday will reflect this increase, assuming the trend continues.

Headcount-Based Forecasting

The new headcount-based forecast uses the actual headcount data from the previous schedules. The big advantage of this is that these schedules often already include manual adjustments based on real experience, so the prediction made from them may require less post-editing.

This type of prediction uses the Prophet algorithm developed by Facebook, which handles it very well:

  • Daily, weekly and annual seasonal patterns.
  • The effects of holidays (optionally, you can set whether forecasting should be done on public holidays).
  • “Apply trend effect” is also available here: the system takes into account the general increase or decrease in past headcount data and applies this to the forecast.

In the figure below you can see the function components that Prophet uses to make the forecast for the selected period. Of these, you can turn on or off “Apply trend effect”.

Components of the function plot created by Prophet

The result is shown in the picture below. In red is the forecast staffing needs, in green the actual staffing needs for the period.

Comparison of forecast and actual staffing: data are shown in daily and hourly breakdowns for March.

Shift and schedule planning: Rostar

Icon of Rostar: Calendar icon with the number 11, orbited by tech symbols.

Everyone should do the job that suits their skills and expertise,
when the employer needs it, and in a shift pattern that is comfortable for the employee.

Rostar does this in two main steps:

  1. The first is the preparation of a so-called shift plan, which is optimally adapted to the curves showing the distribution of the estimated workload over time, taking into account the available human resources.
  2. The second is the „filling in” of the resulting shift plan with the available employees, i.e. the creation of the schedule. The following aspects are taken into account during this process:
    • Compliance with labour regulations
    • Optimal shift plan “coverage”.
    • Optimum work load distribution with respect to the compulsory working hours.
    • Taking into account employee preferences or ensuring an equal morning/afternoon and weekend workload.
    • Managing holidays and other absences won in Shift Wizard .

Rostar tutorial video (hungarian):

Managing absences and training

Holidays and other absences requested and won in Shift Wizard are important input data for the rostering process.

We distinguish between work-related and non-work-related absence types:

  • Work-related absence is accounted for in the same way as a shift. The working time is the same as the employee’s base time, e.g. 6 hours, 4 hours for part-time or 8 hours for full-time or, in the case of unplanned sickness, the inherited length of the planned shift. These absences are subject to the same labour rules as shifts.
    The most commonly used work-related absences are annual leave and sick leave.
  • Non-work-related leave is for example unpaid holiday.

The type of absence and the colour coding in the interface can be specified by the user.

Rostar screenshot: absences on the interface

Creation of shift plan

There are two ways of creating a shift plan:

Automatic:
The staffing plan is made by optimally paving the curve, Using the worker resources as “beams”, respecting the labour rules. On demand, the generated automatic shift plan can be edited manually.

Manual:
The editor allows you to create the entire shift plan manually. Shift beams can be created for any time, any length and any skill (based on years of experience). The placement of the beams is supported by numerous UI functions (e.g. drag and drop).

Rostar screenshot: Shift planner interface

Managed Scheduling with the Attribute Editor

With Shift Attributes you can restrict which shifts a particular worker can be assigned to. This allows you to “control” and fine-tune the scheduling algorithm to take into account the specific needs and other operational characteristics of your workers.

By default, a worker can be given any shift as long as it does not conflict with labour regulations, the shift length is the same as the base time (shown under the workers tab) and they have the skills required for the shift.
Attributes also offer another layer of customisation. They can be used to limit the type of shifts a worker can be assigned to on a given day or in general. For example, if a worker can only work during certain parts of the day, or has special needs regarding the length of shifts, these can be easily managed with attributes.

Creating and editing attributes

Attributes can be managed under the “Shift Attributes” tab. Here you can create new attributes or modify existing ones using the Attribute editor icon button in the corner.

When creating an attribute, you can enter its name, short name and a more detailed comment. When editing the conditions, you can use logical operators (“AT LEAST ONE”, “ALL”) and various parameters (start time, netto or burtto duration of shift) to refine the rules.

Some examples of attribute definitions:

  • Simple attribute: For example, “Afternoon”, which specifies that the employee can only be assigned a midday shift. Attribute editor window: simple afternoon attribute

  • Advanced attribute: May combine several conditions. For example, the attribute shown in the image means that the employee can either have a shift starting after 12:00 and lasting at least 8 hours, or a shift starting before 12:00 and lasting up to 8 hours. Attribute editor window: Advanced attribute

Assigning attributes to employees

The real power of attributes lies in their ability to be associated with specific dates and workers.

Using the calendar view, you can specify for each employee, day by day, exactly which attributes should be valid for them on that day, made easier by using the drag-and-drop method.
It is also possible to assign multiple attributes to the same day.
You can also use the common multiple selection methods (using CTRL and SHIFT) to easily assign the same attribute to multiple workers and/or multiple days at the same time.

Filled calendar view for assigning attributes to days

Priority attributes

If an attribute is marked as “prioritised” (using the option in the editor window), employee-shift pairs with this attribute will have priority in the scheduling process. This means that the system will try to schedule them first, ensuring that key needs are met.

Scheduling

Rostar: Schedule weekly view

Schedule parameters: Rostar: Schedule parameters

  • Deletion factor:
    The algorithm ends when a worker is found for each shift. The probability of this, i.e. of finding exactly as many workers with the exact number of hours and skills as the shift page needs, is very low. For this reason it is necessary to correct the number of shifts at runtime.
    This is done by the deletion factor. As its name implies, if a shift has been attempted more than a threshold value during the attempts, it is taken out of the “playing field”, quasi deleted.
    This threshold obviously depends on the number of shifts to be assigned. By default, the deletion factor is set to = 1, i.e. if we have 600 shifts to assign, any shift will be deleted after 600 attempts of assignment (emp_id pairing). For example, if the deletion factor is changed to 2, then 1200 etc… This method is based on the assumption that staffing assignments are usually under-planned from a staff resource point of view, i.e. there are more shifts than the human resources needed to staff them.
    The value can be a non-integer number between 0 and 1 (e.g. 0.5, 0.75, etc.)
    Setting this variable to a higher value will increase the running time and improve the accuracy of the scheduling, otherwise the result will be faster but less accurate.
  • Preference acceptance range:
    The time range within which an ever decreasing „bleed through” of points is interpreted.
  • Preference Impact Reduction:
    The fraction of points adjacent shift starts receive during the bleed-through. E.g. if it is set to 50%, then adjacent times within the range will only receive the previous half. 100% is the originally selected time. E.g. if someone bids for 8am with 60 points and the acceptance range width is 1.5 hours and the impact reduction is 50%, then for 7am and 9am 30 points are assigned for 6h30 and 9h30 15-15 points. For shifts further away, it will be 0 because the bandwidth is only 1.5 hours.

After the Save period to database operation, the result of the RoStar scheduling is also “visible” to the CSB (Shift Wizard).

In the view menu, you can also select a larger time horizon (monthly) for a better overview:

Rostar: Schedule monthly view

Labour regulations: Compliance to labour regulations is checked by the Roster application

  • The rest time after the shift (x hours) is less than obligatory.
  • The number of consecutive working days (x days) is greater than allowed.
  • There is no 1 free Sunday a month.
  • The longest consecutive weekly rest (x hours) should contain a whole calendar day.
  • The longest consecutive weekly rest is less than x hours.
  • Average of longest consecutive weekly rest is less than x hours, etc.

Labour regulation is a must for the Algorithm.
Examples for labour regulations that may differ from country to country.
These can be parametrized e.g. the number of consecutive working days allowed is 6 in Hungary and 5 in Austria and Romania.

Evaluation

If you do not find the completed schedule suitable and need to fine-tune it, you can start again from the Creation of shift plan step.

Manual schedule creation for small groups

The RostEdit application is designed for easy and fast monthly scheduling with shortcuts, multiple selections and continuous rule checking for selected administrators or groups.

Possible users of the application

  • Individuals who have previously created rosters in Excel or other applications without rule checking.
  • Smaller groups (10-50 people) where employees can be left to plan their rosters with minimal external intervention to increase employee satisfaction.

Use cases

The application has two distinct usage modes depending on the rights of the logged in user:

  1. Administrator interface
  2. Small group scheduler

Administrator interface:

In this mode, a user with administrator rights can select groups or employees and modify them as desired. It is possible to create leave, normal, import, export, fixed shift and trainings. You can also use the leave editing interface and set critical times (designed to show how many workers are on duty at that time).

Administrator interface:

In this mode, a user with administrator rights can select groups or employees and modify them as desired. It is possible to create leave, normal, import, export, fixed shift and trainings. You can also use the leave editing interface and set critical times (to show how many people are working at the set time).

Small group scheduler:

Small group shift planner

Similar to the previous mode, but with limited options. Group members, group administrators and users with “observer” rights can access it. Only normal shifts can be created and deleted in the shift editor interface. Here, they can keep track of which shifts are still needed on which day, based on a pre-defined shift plan. In the leave editor mode, they can manage leave only during open periods. Here daily and monthly frames help you to fill in.

Continuous connection

Multiple users can change the schedules of the same group at the same time, therefore the application uses a websocket connection to ensure that everyone sees the same schedule status.