Concepts
Schedule
The core object in On-Call Optimizer.
The main role of the schedule is to contain a list of shifts which describe which member(s) are expected to be on-call at a particular point in time.
To achieve this goal each schedule contains a set of configuration details in addition to the list of shifts. These configuration details are used by On-Call Optimizer to regularly extend the list of shifts into the future to maintain a desired horizon.
Each set of new shifts generated by On-Call Optimizer is referred to as an assignment, described further below. The collection of assignments associated with a schedule collectively describe the history and future shifts for the schedule.
Advanced configurations of On-Call Optimizer make use of inter-schedule relationships to achieve more complex scheduling outcomes than are possible within a single schedule.
Schedules can be linked to integrations to synchronize their configuration and assignments with external systems (e.g. On-Call Products such as PagerDuty or Ops Genie).
Schedule Balance
Maintaining a balance of shifts between members of a schedule is one of the primary objectives that On-Call Optimizer targets. On-Call Optimizer considers a schedule to be balanced when each member has fair share of the total number of shifts.
See the Schedule Balance page for detailed information on how balance and fairness is calculated and reported in On-Call Optimizer.
Shift
An on-call shift is a contiguous period with defined start and end times associated with one or more assignees. The start and end time of an on-call shift are measured to the minute only (no seconds component) and must be fully specified including a time zone.
The maximum length of a single on-call shift is one week.
On-Call Optimizer supports up to 2 assignees per shift referred to as the primary and secondary respectively.
Shift Configuration
Each schedule contains a list of shift configurations which describe how future shifts in the schedule are to be assigned. A shift configuration is made up of the time at which a shift in the schedule should start and who the desired assignee(s) for the shift should be.
On-Call Optimizer uses the shift configuration to generate the list of specific shifts with explicit start and end times when extending the schedule.
Basic vs Nested Schedules
On-Call Optimizer can support almost any rotation configuration using a combination of basic and nested schedules:
- An basic schedule contains shift configurations that do not reference any other shift as an assignee - each shift is either assigned to a staticly chosen member, or by placeholder (e.g. BEST_MEMBER) denoting that the constraint optimizing algorithm should be used to dynamically choose the best assignee.
- To construct more complicated rotation configurations another schedule can be specified as one of the assignees for a shift in the
configuration of a schedule. When one schedule refers to another schedule in this manner it is called a
nested schedule
.
On-Call Optimizer supports up to 3 levels of nesting.
Nesting provides an intuitive and straightforward method to configure rotations whenever there are two or more different groups of people or configurations to manage. Common examples of this would be rotating between two halves of a team on different sides of the world, or having only a subset of a team provide after-hours coverage for a schedule.
The configuration library contains multiple examples demonstrating how these simple combinations enable many diverse schedule structures to be created while remaining simple to undersatnd and configure.
Assignment
A collection of shifts associated in some way with a schedule. The shifts in an assignment may not overlap at any point, and typically would represent a contiguous block of time, but under certain configurations (e.g. business hours only) there may be gaps where no shift or assignment is present.
On-Call Optimizer continually generates new assignments to maintain the schedule according to its configuration.
Assignments can exist in a number of states with defined roles, purposes and processes for moving between states. Please refer to the full assignment documentation for further details.
Assignment quality
The quality of each assignment is evaluated by On-Call Optimizer based on how close to perfectly meeting every goal and constraint it reaches. When a perfect assignment is not able to be made, as set of penalties are reported to help explain the factors that impacted on the quality of the assignment.
Further details of how quality is evaluated and calculated can be found on the Assignments page.
Linked Schedules
On-Call Optimizer supports linking schedules to external systems (e.g. On-Call Products such as PagerDuty or Ops Genie). Schedules that have been linked to an external system can be identified by looking for a badge next to the schedule’s name.
The badge(s) shown next to the schedule name describe the external system(s) that the schedule has been linked to and the type of link that has been established.
Refer to the detailed documentation relating to a schedule’s basic configuration, synchronized members and destinations for further details, or following the link a schedule guide for a walk-through of how to link a schedule to an external system.
Horizon
The horizon of a schedule is counted in days and describes the level of visibiltiy into future assignments that is or should be provided by the schedule.
- As one of the configuration parameters for a schedule, the
desired horizon
, it describes how far in advance shifts should be assigned, and therefore the minimum number of days of notice that members should receive prior to a shift they are assigned to. - As a reported property of an existing schedule, the
current horizon
, it describes how many days exist between a point in time (typically the current date) and the end of the final shift that has been assigned in the schedule
The schedule lifecycle documentation describes how On-Call Optimizer triggers assignment
of new shifts when the current horizon
is about to fall below the desired horizon
.
Horizon is a property of a schedule, not any particular member, and is calculated based on calendar days in the configured time zone of the schedule itself. A current horizon
of zero indicates that the schedule’s assigned
shifts will end (or already ended before) today, while a current horizon
of 1 day indicates that the final shift
in the currently assigned schedule ends tomorrow and so on.
Schedule Window
The schedule window describes how many days of future shifts should be assigned at once when assigning new shifts during the lifecycle of the schedule. The configured window is also used as the default size for a new custom assignment.
By default the schedule window extends on from the final shift in the current schedule, but can be changed to start from a different date (so long as it is not in the future) when generating a custom assignment.
History Window
The history window describes how many past shifts are included when calculating the balance of the schedule.
On-Call Optimizer uses a 6-month history window, counting backwards from the start of the first shift in the new assignment.
Availability Information
The availability information for a schedule consists of the combination of both:
- The combination of individual availability information from each member that has agreed to share their calendar with the schedule.
- Any availability entries synthesized due to a schedule availability reference that has been configured on the schedule.
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.