PRJ: Delay Calculation Different Than in Earlier Versions (197106)



The information in this article applies to:

  • Microsoft Project 2000
  • Microsoft Project 98 for Windows

This article was previously published under Q197106

SYMPTOMS

In Microsoft Project, when you level resources, tasks may be delayed differently than in earlier versions of Microsoft Project.

For example, Microsoft Project may add delay to tasks that have less slack than other tasks.

CAUSE

This behavior occurs because of the way in which Microsoft Project uses Total Slack and potential delay in the leveling process. This behavior is by design.

Microsoft Project calculates potential delay by assuming that it moved the task to take care of an overalloacation. For each task involved in a leveling operation, Microsoft Project calculates a weighted slack value equal to the task's total slack minus the potential delay if it moved the task.

Based on this weighted slack value, if delaying a task with total slack of zero would result in less delay to the project finish than delaying a task with total slack greater than zero, Microsoft Project will delay the task with zero total slack.

WORKAROUND

If you want to change the results of this process, use Priority settings to change leveling order. To do this, follow these steps:
  1. Assign a higher priority to the task that you want leveled first:
    1. Click to select the task.
    2. On the Project menu, click Task Information and then click the General tab.
    3. In the Priority list, click High. Click OK.
    NOTE: This step assumes you have not changed any task's priority from the default (Medium). If this is not the case, select a priority that is at least one step higher than the priority for the other tasks you are leveling.

    NOTE: Repeat step 1 as necessary for any additional tasks for which you want to affect leveling.
  2. Use Priority as the primary criteria for leveling order:
    1. On the Tools menu, click Resource Leveling.
    2. In the Leveling Order list, click "Priority, Standard" and then click Level Now.

MORE INFORMATION

When you select Standard order for leveling, Microsoft Project uses task criteria in the following order to determine which tasks will receive leveling delay:
  1. Predecessor relationships: A successor task will be assigned delay before its predecessor task(s).
  2. Scheduled Start dates: Tasks with later start dates will be delayed first.
  3. Constraints: Tasks without hard constraints will be delayed first.

    NOTE: This criteria is also affected by the "Tasks will always honor their constraint dates" check box (on the Tools menu, click Options, and then click the Schedule tab). If this check box is selected, leveling will not delay tasks that have hard constraints.
  4. Weighted slack: Calculated as Total Slack minus delay (potential delay, if the task were moved to take care of an overalloacation).
  5. Task Priority: Tasks with lowest priority will be leveled first.
  6. Task ID: Tasks with higher ID numbers level first.
When you select "Priority, Standard" order for leveling, Microsoft Project changes these leveling criteria to the following order:
  1. Task Priority.
  2. Predecessor relationships.
  3. Scheduled Start dates.
  4. Constraints.
  5. Weighted slack.
  6. Task ID.
The weighted slack value is a comparative measure of how much impact delaying a given task will have on the project duration. It is the value Microsoft Project uses for slack to help determine leveling precedence. If weighted slack values are equal, then Microsoft Project will level tasks by task ID in descending order (higher ID numbers level first) (see Example 1). If weighted slack values are not equal, Microsoft Project will level the task that will have the least impact on project duration first, even if that task has zero total slack before leveling (see Example 2).

Example 1

Two tasks in a project, Task1 and Task2, are scheduled to begin on the same date. The tasks have no successors, and both tasks have a constraint type of As Soon as Possible. The same resource is assigned to both tasks. The duration of Task1 is four days, and the duration of Task2 is two days. Task1 therefore has two days total slack and Task2 has zero total slack. To level the resource on these two tasks, either Task1 would have to be delayed four days, or Task2 would have to be delayed two days.
   Before leveling:

           ID  Duration  Delay  Free Slack  Total Slack
   Task1    1     2d       0        2            2
   Task2    2     4d       0        0            0
				
When leveling, Microsoft Project calculates weighted slack, representing potential delay to the project, as follows:
   Task1: weighted slack = 2 days slack minus 4 days delay = -2
   Task2: weighted slack = 0 days slack minus 2 days delay = -2
				


Because weighted slack is equal for these two tasks, Microsoft Project delays them in descending task ID order:
   After leveling (using Leveling Order Standard):

           ID  Duration  Delay  Free Slack  Total Slack
   Task1    1     2d        0       4            4
   Task2    2     4d        2       0            0
				
If you used the Priority settings as described in the "Workaround" section, the result would be as follows:
   After setting Task2 Priority to High and
   leveling using Priority, Standard order:

           Duration  Delay  Free Slack  Total Slack   Priority
   Task1     2d        6        0            0        Medium
   Task2     4d        0        2            2        High
				

Example 2

Two tasks in a project, Task1 and Task2, are scheduled to begin on the same date. Task2 has one successor task, Task3. Task1 and Task2 each have a constraint type of As Soon as Possible, and the same resource is assigned to both Task1 and Task2. The duration of Task1 is 10 days, the duration of Task2 is 1 day, and the duration of Task3 is 4 days. Task1 therefore has zero Total Slack and Task2 has five days total slack. To level the resource on Task1 and Task2, either Task1 would have to be delayed 1 day, or Task2 would have to be delayed 10 days. Before leveling, total project duration is 10 days.
   Before leveling:

            Duration  Delay  Free Slack  Total Slack
   Project    10d       --       --          --
   Task1      10d        0        0           0
   Task2       1d        0        0           5
   Task3       4d        0        5           5
				
When leveling, Microsoft Project calculates weighted slack, representing potential delay to the project, as follows:
   Task1: weighted slack = 0 days slack minus 1 day delay   = -1
   Task2: weighted slack = 5 days slack minus 10 days delay = -5
				
Because delaying Task2 would therefore extend total project duration by 5 days, compared to only 1 day for Task1, Microsoft Project will delay Task1:
   After leveling (using Leveling Order Standard):

            Duration  Delay  Free Slack  Total Slack
   Project    11d       --       --          --
   Task1      10d        1        0           0
   Task2       1d        0        0           6
   Task3       4d        0        6           6
				
NOTE: That if you leveled the same tasks in Microsoft Project 4.x, the task with zero Total Slack would not be delayed, resulting in a longer project duration:

   After leveling in Project 4.x (using Standard order):

            Duration  Delay  Free Slack  Total Slack
   Project    15d       --       --          --
   Task1      10d        0        5           5
   Task2       1d       14        0           0
   Task3       4d        0        0           0
				

Modification Type:MajorLast Reviewed:11/5/2003
Keywords:kbbug kbnofix KB197106