A project has has a summary (parent) tasks that should update to Completed since all sub (children) tasks are completed. The projects % Calculation method is Duration and the Update % Complete job runs every 10 minutes.
Steps to Reproduce:
1. Create a project with a % Complete Calculation method of Duration
2. On this project, create three tasks (t1, t2, t3)
3. Make t1 the parent task of the other two tasks (t2, t3)
4. Mark the two child tasks as milestones (t2, t3), so they each have a duration of 0 days
5. Mark the two child tasks as 100% complete
6. Run the Update % Complete job
Expected Results: The % complete of the parent task, t1, gets updated to 100% and gets marked as Completed
Actual Results: The % complete of the parent task, t1, remains at 0% (Not Started)
This is due to all of the child tasks having a duration of 0 days. The % complete calculation method of Duration uses a ratio of completed duration / total duration. However, in this case both the completed duration and total duration is 0 days. This ratio of 0/0 cannot be calculated to 100% by the system.
This is working as designed. The % complete calculation method of Duration will only update on the summary (parent) task if there is at least one sub (child) task with a non-zero duration. To get the expected results in this example, at least one non-milestone task needs to be added as a child task of the summary or one of the existing milestones needs to be converted to a non-milestone task.
A milestone converted to a non-milestone task can keep the same dates for the start and finish date, but the duration will increase to 1 day. Only the time stamp on the start and finish date change. If a milestone is converted to a non-milestone task, the word 'Milestone' can also be added to the task name to help distinguish it as as 'milestone' when looking a the project plan.