I have set Leveling Order to be Priority, Standard. Therefore I expected the hierarchy of leveling tests to be as follows
- Is the Priority of any of the contending tasks 1000?
- Are any of the contending tasks Manually scheduled?
- Have any of the contending tasks actually started?
- Which of the contending tasks has highest Priority?
- Are any of the contending tasks Predecessors to other tasks?
- Which of the contending tasks has the LEAST Total Slack?
- Which of the contending tasks has the earlier Start date?
- Do any of the contending tasks have date constraints set?
- Which of the contending tasks has the longest Duration?
- Which of the contending tasks has the lowest ID?
My schedule consists of about 50 projects each with 5 sub-tasks. Each project has a unique Priority Score with the highest being 950. All sub-tasks for a project share the same Priority as the project, and each Project sub-task except the first has a predecessor to determine its dates. All projects are independent of each other. No project of sub-task has a Priority of 1000 and none are Manual and none have an Actual start date.
Given the above, I expected that Total Slack (item 6) would be irrelevant in my case as I thought Priority and Predecessors (items 4 and 5) would always be sufficient to resolve any resource contentions.
However I have at least 2 instances where this is not working as expected. In these cases sub-task A has a higher Priority than sub-task B, it is a Predecessor of another sub-task (as is sub-task B), but the available resource is being allocated by Leveling to sub-task B rather than sub-task A.
I have noticed that the Total Slack of B is lower than that of A. In my case, given my schedule consists of 50 independent projects, Total Slack is not relevant, but of course Project does not "know" that. However, with the above hierarchy (with Priority near the top) and given the Priority of A is higher than that of B, the "Total Slack" test should never need to be applied, should it? All leveling should be determined by tests 1-5. Or am I misunderstanding how this should work?
Thanks for any insights you can offer.