First, Autoschedule schedules work that has no flexibility
- actual work
- fixed assignments
- all work on locked tasks
and reduces the remaining availability accordingly.
Next, Autoschedule processes the remaining tasks in order of a calculated priority (see below) subject to task dependencies. As each task is processed, remaining availability is reduced accordingly.
The calculated priority is based on the following factors, considered in this order.
- If the task has a Must Start On or Must Finish On date constraint
- Task Priority (lower values rank higher)
- Task Float (lower values rank higher)
- If the task is started
- WBS order (i.e., the physical location that it is seen in a view; tasks towards the top rank higher)
If a task "ties" with another task, the next factor is taken into account. Thus, for example, a task with no date constraint and a priority of 5 will be scheduled before another task that also has no date constraint and a priority of 5 if the first task's float is less than the second task's.
Autoschedule gives priority to constrained tasks over non-constrained task, and to inflexible constraints (such as "Must Start On") over flexible constraints (such as "Start No Later Than"). Constraints are overridden when it would violate a dependency or over allocate resources.