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

Shifts assigned to you can be seen on the On-Call Optimizer home page, or by selecting “Swap Shifts” in the main menu.

Within a schedule assignment details are shown on the Overview and Assignments tabs.

Overview Tab

The Overview tab shows the member is who currently assigned to be on-call for the schedule and the next 3 upcoming shifts.

Assignments Tab

The assignments tab provides a summmary of the upcoming shifts for the schedule and a list of historical assigmnents for the schedule.

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.

Auto Assignment Settings

The auto assignment settings controls how On-Call Optimizer will maintain and extend the schedule throughout the lifecycle of the schedule.

To access these settings, click the wrench icon beside the Next Shift Assignment heading found on the Overview or Assignments tabs of the schedule.

The following settings are available:

  • Start Date: The date from which assignments will be created. Refer to the lifecycle docs for details on behaviour before the start date.
    • Valid values when changing this are between the present date and 90 days in the future.
  • Horizon Days: Defines how many days of horizon (minimum 1, maximum 90) are desired for the schedule: a new assignment will be created when the horizon created by the end of the last existing shift reaches this value.
  • Schedule Window Days: Controls how many days of shifts (minimum 1, maximum 90) will be assigned in each new assignment.
  • Require manual confirmation?: When set requires each new automatic assignment to be approved before the new shifts are confirmed in the schedule.

Disabling manual confirmation

New schedules are created with manual confirmation enabled, but it is recommended to disable manual confirmation once the schedule has reached steady state and members are comfortable with how On-Call Optimizer is operating.

The rationale for this choice is that when first adopting dynamic scheduling it is not uncommon for members to need a few iterations of assignments to establish the patterns and habits of providing availability information, and therefore the ability to review (and potentially re-generate) each automatic assignment before it is confirmed can be useful.

However, once team members are comfortable with the generated assignments and a pattern of usage with On-Call Optimizer has been established, the effort of reviewing each new assignment is harder to justify and delayed, or forgotten approval of an assignment risks reducing the horizon of the schedule below the desired value, or in the worst case causing the schedule to run out of assigned shifts!

Horizon and window sizing considerations

The schedule window should usally be kept above 20 days to ensure sufficient shifts to optimize over are present in each assignment.

It is also important not set the schedule window too large either to ensure availability information is available for all members for the time period covered by the window. Large schedule windows risk scheduling shifts beyond the date where where members are comfortable maintaining their calendar availability details in advance.

The default values for the horizon and schedule window are both 30 days which has been found to work well for many schedules in practice. This provides at lesat 1 month notice for each new shift that is assigned to a member and results in the available horizon for the schedule following a sawtooth pattern between 60 days immediately following each new assignment, and then gradually reducing to 30 days over time until the configured horizon is reached and the next assignment is triggered.

The horizon can be lowered as far as the team members are comfortable with without any adverse impact on the quality of assignments - the only impact of a low horizon is less notification for each member before a shift.

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 October 16, 2024