In some industries, out-of-sequence progress occurs more frequently than not. Nevertheless, it happens on even the best and most well thought out schedules created by the most experienced and skillful schedulers. The simple fact is that projects take on a life of their own once they get started, and people don’t necessarily follow schedules; rather they do what is most efficient, at that time, on the ground. So sooner or later the scheduler will be entering out-of-sequence actual dates.
In Primavera P6, an out-of-sequence event or progress occurs when an activity’s status is updated in a way that ignores the original planned network logic. The most common out-of-sequence event occurs when the successor in the finish-to-start (FS) relationship commences before the completion of the predecessor. See below.
In the FS relationship the predecessor activity (B) must be completely done before moving on to start the successor activity (C). If the successor (C) in the FS relationship occurs before the completion of the predecessor (B), it overrides the original network logic and is said to be out-of-sequence. What we want to ask here is; when we move the Data Date and recalculate the schedule, how do we want P6 to handle this out-of-sequence activity? Unfortunately, the answer to this question is another question. What option do we want P6 to use when scheduling progressed activities: ‘retained logic’, ‘progress override’, or ‘actual dates’?
This article explains the three available options for scheduling progressed and, in particular, out-of-sequence activities in Primavera P6 Professional.
As displayed in Figure 1, Primavera P6 has three options for scheduling progressed activities: ‘retained logic’, ‘progress override’, and ‘actual dates’.
Figure 1
In Figure 1, the P6 schedule options is toggled to the ‘retain logic’ option (default in most systems). So let’s examine ‘retain logic’s effect on the schedule.
In Figure 2 we have our demonstration schedule, which is simply three five day tasks A, B, and C connected by FS relationships.
Figure 2
As displayed in Figure 2, B has started even though A is not complete. When we recalculate the schedule with ‘retained logic’ the remainder of activity B schedules according to the natural network logic, i.e. in compliance with the FS relationship between activity A and B. The remainder of activity B therefore does not continue until activity A is done, which corresponds directly with what we see in Figure 2. As promised ‘retain logic’ will not violate the natural network logic.
Now we toggle the ‘scheduling progressed activities’ to use ‘progress override’, Figure 3.
Figure 3
This time when we recalculate the schedule, Figure 4, activity B continues even though activity A is not complete.
Figure 4
The FS relationship between activities A and B is completely ignored. Note that activity A is no longer on the critical path and has a total float of six days. Again, in ‘progress override’ P6 ignores the FS relationship between activity A and the out-of-sequence activity B. Activity A’s total float is therefore no longer measured in relation to predecessor activity B, but in relation to the end of the project. And activity A can be delayed six days before it affects the end date of the schedule. One more point to note, because the out-of-sequence activity B is allowed to continue before A completes, ‘progress override’ usually results in a shorter schedule. Thus efficiencies achieved on the ground are reflected in the schedule.
Finally, we toggle the progressed activities setting to ‘actual dates’, Figure 5, the last option.
Figure 5
This time when we recalculate the schedule, our results, Figure 6, appear similar to the results for the retain logic option.
Figure 6
Yes, activity B stays true to its FS relationship with activity A, and interrupts or suspends until A completes. However, note on the activity table that activity A now has a total float of negative four days, whereas, with ‘retain logic’, Figure 2, activity A’s total float was zero days.
So, yes, there is a difference between ‘retain logic’ and ‘actual dates’. In the ‘actual dates’ option an “imaginary” ‘Finish On’ constraint is placed on Activity A at the point where the out-of-sequence activity B commences. P6 is saying that activity A should have finished before the commencement of activity B. It did not. So please note, according to the ‘Finish On’ constraint, that activity A is therefore four days behind schedule, as measured from the place on the timeline where activity B commences out-of-sequence, i.e. the location of the “imaginary” ‘Finish On’ constraint.
I use the term “imaginary” ‘Finish On’ constraint because the constraint is not viewable or editable in the bottom layout details status tab, but definitely affects the total float calculation when the ‘actual dates’ option is selected.
Summary
Primavera P6 Professional has options for every inevitability, and, in particular, the occurrence of out-of-sequence activities. Here the first question to ask yourself is do you want P6 to stay true to the schedule’s network logic? If yes, ‘retain logic’ and ‘actual dates’ are your options of choice. If, on the other hand, a hard FS relationship is not really required, then your option of preference would probably be ‘progress override’. In ‘progress override’ P6 continues to allow the out-of-sequence activity to override network logic. And it normally results in a shorter schedule; so efficiencies achieved on the ground are reflected in your schedule.
If your first selection is to maintain network logic then ask do you want Primavera P6 to warn you of ‘days out-of-sequence’? If yes, then with ‘actual dates’ P6 measures predecessor’s negative total float on the timescale from the point of commencement of the out-of-sequence successor activity. If you want P6 to consider the out-of-sequence event as “water under the bridge” and only worry about total float as it relates to your activity’s remaining duration then the first option, ‘retain logic’, would be your preference. Note that ‘retain logic’ is the default setting for Primavera P6. But, again, if the FS relationship is not really necessary, then go with ‘progress override’, as this option provides a shorter schedule.
Fixing the out-of-sequence activities is incumbent if the intent is to protect the integrity of the critical path and produce realistic forecasts, albeit deterministic. However, that cannot be done by selecting either the ‘Project Override’ or the ‘Actual Dates’ option as that would massively induce uncontrollable changes in the project, adversely affecting the intended logic.
Letting the software ‘decide’ how the out-of-sequence activities should be ‘fixed’ is not an option for the prudent scheduler/planner. All such tasks need to be assessed on a one by one basis. The criterion that finally specifies whether the initial relationship(s) need to be amended or left unchanged is the type of the physical correlation that ties two activities together. Then determining to what extent their initial driving relationship in the program should be maintained or that should be replaced by another relationship type governing their progression.
With regard to the ‘Actual Dates’ option, it is also worth mentioning that the successors of the out-of-sequence activities are scheduled differently depending on the status of the out-of-sequence tasks. If, an out-of-sequence activity has been completed, then Primavera P6 places its successors to start on the very first working day to the right of the Data Date, ignoring the predecessors of the out-of-sequence task, as it would do if the ‘Progress Override’ option was selected. If, however, an out-of-sequence activity is ‘In Progress’, then Primavera P6 behaves as if the ‘Retained Logic’ option was selected and all the predecessor tasks of the out-of-sequence activity are taking part in the path that drives its successors to take their place along the time axis.
Just one more point; check your contract language. Some more Primavera P6 savvy customers, particularly government agencies, will specify which schedule options you are to use when providing schedule update files.