Capacity Definition

Capacity is an optional attribute of resources. It is a variable numerical value that is maintained as a property of a resource.

A resource's capacity attributes may be defined on the Capacity Tab of the Resource Definition Form.

Three Types of Capacities

There are three types of capacities, Consumable, Resilient, and State Modes:

  • Consumable: The capacity value of a consumable resource may be permanently changed as a result of being tasked. The capacity may be either depleted at the task's start or stop, replenished at the task's start or stop, or set to a specific value at the task's stop.
  • Resilient: The capacity value of a resilient resource can be temporarily depleted as the result of being tasked. Once a task is complete, the resource will again attain its initial capacity value.
  • State Modes: The capacity is defined as a set of discretely defined states modes. Each mode can be identified by its index (zero based) or its name identifier.

Capacity (Consumable and Resilient) Uses

Capacity is most often used to represent a quantity, state, or mode of a resource. For example a Solid State Recorder (SSR) may use capacity to track the amount of data it contains, or an instrument may use capacity values of 0 and 1 to track whether it is on or off.

Tasking Capacity (Consumable and Resilient) Resources

Tasks may be used to alter the capacity value of a resource. Using the above examples, a satellite imaging task may be used to add capacity to the SSR as it is being filled with data, or a task may be used to cycle an instrument on.

When a task uses a resource that has capacity, you must specify the amount of capacity the task will use or replenish, or the value that the capacity will have at the end of a task. This is done on the Resource Usage Tab of the Task Definition Form. To modify the resource usage, edit the task of interest. Click on the Resources Tab and then on the Resource Usage Tab. Select a resource and click the edit button to open the Resource Usage Definition Form. The Capacity Usage portion of the form defines how the task will change the resource's capacity value.

Changes made to a resource's capacity attributes are not applied to the existing deconflicted schedule. The Schedule De-conflictor must be re-run whenever changes are made to a resource's capacity to ensure that the changed capacity is included in the deconflicted schedule.


When the Schedule De-conflictor is run, STK Scheduler will track the capacity value of each resource as tasks use and/or replenish it. The capacity value as it changes throughout the schedule is known as the instantaneous capacity value. The instantaneous capacity value may be updated at different times during the task's execution. The following rules dictate when the instantaneous capacity value is update:


For a Resilient Task:

  • Capacity value will be reduced at the task start time and then returned to its starting value at the task stop time.


For a Consumable Task:

  • If the capacity is Depleted by a fixed amount, the value will be reduced at the task start time or stop time, as specified in the Resource Usage Definition Form.
  • If the capacity is Replenished by a fixed amount, the value will be increased at the task start time or stop time, as specified in the Resource Usage Definition Form.
  • If the capacity is Depleted or Replenished at a user-defined Rate, the value will be decreased or increased per the definition rate from task start time until task stop time.
  • If the capacity is Set to a user-defined Value at the End of a Task, the value will be set to the user-specified value at the task stop time.

Capacity Limits

Capacity limits are used to bound the instantaneous capacity value. For each resource, a minimum capacity value and maximum capacity value may be defined. The instantaneous capacity value cannot exceed either of these limits.

STK Scheduler allows you to define limits as either Hard or Soft.

Hard Limits

A hard limit is a limit that has the power to prevent a task from receiving an assignment. If the action of depleting, replenishing, or setting capacity will cause the capacity value to exceed a hard limit, the task will not be assigned.

Soft Limits

A soft limit is a limit that does not have the power to prevent a task from receiving an assignment. If the action of replenishing capacity will cause the capacity value to exceed a soft limit, the task will be assigned, however, the instantaneous capacity value will freeze at the soft limit.

State Modes Resources

Tasks may be used to alter the State Mode value of a resource. State modes can be used instead of capacity values. Using the above example, a satellite imaging task may be used to set the SSR state to the Mode of "On" or "Off". Modes can be referred by their zero based enumerated value of their name. A mode can also be in an undefined state (enumeration = -1). Modes and capacity values are mutually exclusive for a single resource. Therefore, if you need to represent a resource with both a data volume capacity and on/off state modes features, you should create two separate resources that when combined, represent the SSR.


A mode matrix is an optional feature that allows you to define setup times for a resource when transitioning between defined modes. A matrix is not used for a resource when it is in an undefined state (-1). As an example, for a 3 mode state definition (red, blue, green), a 3x3 matrix will be defined in the form of {x1y1, x2y1, x3y1, x1y2, x2y2, x3y2, x1y3, x2y3, x3y3}. The value represents the total number of seconds (millisecond fidelity) when transitioning between the defined modes.


When a task uses a resource that is defined by state modes, you must specify the set of state modes the task may use. This is done on the Resource Usage Tab of the Task Definition Form. To modify the resource usage, edit the task of interest. Click on the Resource Tab and then on the Resource Usage Tab. Select a resource and click the edit button to open the Resource Usage Definition Form. The Capacity Usage portion of the form defines how the task may use or set the resource's State Mode value.


When the Schedule De-conflictor is run, STK Scheduler will track the state mode value of each resource as tasks are assigned that use the resource.