You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add a "teaming" extension: certain staff can complete certain roles, and a shift is defined by the number of each role needed. e.g. a shift needs one supervisor, at least one senior worker, and two more workers of any level
Add costs: with teaming done, the objective needs to capture that supervisors/seniors are more costly than junior staff
The text was updated successfully, but these errors were encountered:
Assume that the role requirements are the same for every shift in the dataset. I think that would be too simple: night shifts often require a smaller number of employees.
One could also just add one shift instance per required role and specify the min/max number of employees.
We could define a ShiftType table. Each shift could refer to a shift type, which could also be useful for labor rules. The shift type could then define the required number of employees for each shift of that type.
We could say that one shift type always links to one particular role (e.g. "Supervisor night shift"). The shift would refer to a shift type and therefore have a specific role. Either the shift itself or the shift type could then define the required number of employees.
I think the middle option would be the easiest to implement, but puts much more responsibility on the user of the optimod. I tend to prefer option 3 or 4 - feels more clean and can be useful for labor rule additions too (see #92 ).
Often the concept of "roles" can be generalized to "skills": Employees have certain skills, and shifts require certain skills. While people typically have only one role, they can have more than one skill. An employee assigned to a shift would need to have all requested skills.
Perhaps option 2 above is not that bad. Letting a single shift represent the need for multiple, different people adds a layer of complexity that's perhaps unnecessary. If the roles required for each shift are always the same, one can easily use a helper function to generate the input data.
The text was updated successfully, but these errors were encountered: