Assignments

Assignments record individual shifts in the schedule

A schedule is composed of one or more assignments, which allocate members to shifts covering specific time periods.

Viewing Assignments

The assignments for a schedule can be accessed in several locations:

  1. The “Schedule Details” side bar shown on the main page for each schedule contains an “Upcoming Shifts” section providing a quick overview of the next 3 assigned shifts.
  2. Immediately below these 3 shifts is a link to view all upcoming assignments for the schedule.
  3. To view historical assignments for a schedule, including details on how assignments have changed over time, click on the link in the final line of the “Next Shift Assignment” section of the “Schedule Details” side bar.
  4. Your personal upcoming shifts can also be seen by selecting the “Swap Shifts” option in the main menu.

Assignment Quality

The quality of an individual assignment describes how close to optimal the assignment algorithm was able to reach given the constraints of the schedule configuration and availability of the members.

The quality of an assignment is reported at the top of the assignment page where you will find a summary line containing details on the balance of the schedule and the quality of the assignment. The following icons and colours are used to provide a quick visual overview of the quality of the assignment:

Green thumbs up:
The assignment is optimal or very close to optimal.
Orange thumbs down:
The assignment is OK, but has some penalties.
Red thumbs down:
The assignment has significant problems.

Assignment penalties

When an optimal assignment cannot be found, a set of penalties are reported to describe each of the compromises that On-Call Optimizer had to make to find an viable assignment. These penalties are listed in the “Assignment Penalties” section of the assignment details page found either to the right of the assignment itself, or below the assignment when the screen is narrow.

For details on the types of penalties that can be reported, refer to the algorithm reference page.

Assignment Types

The assignment concept is used throughout the lifecycle of a schedule leading to several different types of assignments.

Current Assignment

The current assignment for a schedule is synonymous with the schedule itself and represents the canonical list of shifts describing which member is assigned at each point in time. There only ever exists a single current assignment per schedule and the current assignment is only ever modified through the assignment confirmation process.

On-Call Optimizer regularly generates new assignments to ensure the current assignment is extended into the future according to configuration of the schedule.

Pending Assignment

A pending assignment represents a list of shifts that are not yet confirmed but are being considered for addition to the schedule using one of the supported actions.

Pending assignments (if present, often there will not be any) are listed in the right-hand side bar of the schedule view underneath the details of the next planned assignment.

Pending assignments originate from several sources.

Automatic Assignment

An automatic assignment is regularly generated by On-Call Optimizer during the lifecycle of the schedule to extend the current assignment based on the configured assignment parameters.

Automatic assignments are only able to use the Add Shifts action to confirm new shifts onto the end of the current assignment.

Custom Assignment

A custom assignment is created directly by a user. The starting date, number of shifts and the action that is used to confirm the custom assignment into the current assignment for the schedule are all able to be customized by the user.

Imported Assignment

An imported assignment holds shifts that originated and were assigned in an external system such as the on-call product linked to a schedule. When a link is created, On-Call Optimizer will import the history of prior shifts from the on-call product so they are available to help the assignment algorithm create assignments that balance across all members of the schedule.

Saved Assignment

Saved assignments record the history of how the schedule was built and has evolved over time. In simple cases each historical assignment can be matched directly to a subset of the schedule (more specifically to a subset of the current assignment of the schedule), however in more complex cases where the schedule has been re-assigned or individual shift swaps have occurred it is possible that none of the shifts from a saved assignment remain in the current schedule.

Assignment Actions

A pending assignment must select one of the following actions to determine how the current assignment is updated when the assignment is confirmed.

Add Shifts

The pending shifts are added directly to the existing list of shifts in the current assignment. The combined list is sorted by start time. This action will fail if any of pending shifts overlap with or attempt to re-assign any of the existing shifts in the schedule.

The Add Shifts action is the only action used for any assignment initiated by On-Call Optimizer, such as extending the schedule with new shifts or importing shifts from an external source. Authorized users may also use the Add Shifts action when confirming a Custom Assignment.

Replace Shifts After First Start

  1. Any shifts in the current assignment which end after the starting time of the earliest shift in the pending assignment are removed.
  2. The shifts from the pending assignment are appended to the remaining current assignment.

The action will not modify the end time of any existing shifts and will therefore create a gap in the schedule if the start time of the earliest pending shift does not exactly match the end time of an existing shift.

This action is useful when the desire is to re-assigning all shifts after a particular date/time. This action will not be used by any assignment created by On-Call Optimizer, but may be specified by authorized users when confirming a Custom Assignment.

Replace Conflicting Shifts

  1. Any shifts in the current assignment which contain any time between the start of the earliest and the end of the latest shifts in the pending assignment are removed.
  2. The shifts from the pending assignment are added to the gap created in the current assignment by the previous step.

The action will not modify the start or end time of any existing shifts and will therefore create a gap in the schedule if the start and/or end times of the pending shifts do not exactly match the start/end times of any surrounding existing shifts.

This action is useful when the desire is to re-assign a small set of shifts (including just a single shift), such as in the case of taking-over or swapping shifts. This action will not be used by any assignment created by On-Call Optimizer, but may be specified by authorized users when confirming a Custom Assignment.

Assignment Confirmation

The process of confirming an assignment involves the following steps, which are guaranteed to occur transactionally:

  • The current assignment will be updated to include the pending shifts using the configured action as described above.
  • The new current assignment will be fully checked and validated and the process aborted unless all checks pass.
  • The pending assignment will become a saved assignment and become a permenant historical record of when and by which action the current assignment was updated.
  • Schedule events associated with new or changed shifts (e.g. notifications, export to destinations) will execute.

Last updated September 4, 2024