Hello,
navzjoshi00 yes the solution was to populate new attributes via a process/job every x minutes.
The solutions is implemtented by now, here are some details:
On task level:
- new attribute 'task completion actual (in days)' = 'task duration' x '% Complete'
- new attribute 'task completion planned (in days)' = 3 cases
- if Actual date > ‘Finish date’ => ‘Task duration’
- if Actual date < ‘Start date’ => 0
- if Actual date is between ‘Start date’ and ‘Finish date’ => Actual date – ‘Start date’
- optional new attribute: '% Complete planned' = 'task completion planned' / 'task duration'
On project level:
- new attribute 'Schedule performance index (time)' = Sum of all 'task completion actual (in days)' / Sum of all 'task completion planned (in days)'
By the way, the theoretical concept behind the question is called "Earned Schedule"
(similar to Earned Value but based on time not costs):
http://www.earnedschedule.com/Docs/April%2019_Earned%20Schedule_Walt%20Lipke.pdf
http://www.earnedschedule.com/Docs/Earned%20Schedule%20ContributiontoPM%20(Lipke).pdf
The 'Scheudle performance index (time)' tells you if you project is ahead of / on / behind schedule.
BR David