In a previous blog Calendars and Total Float Values, we reviewed how the use of multiple Calendars affect Primavera P6 Total Float values. This leads us to how we define “Critical Path” and the use of Total Float.
Most CPM schedule specifications I run into require the Critical Path to be defined as the “Longest Path”. And I prefer to use this definition as well.
Primavera P6 allows us to define the Critical Path as either Longest Path or Total Float less than or equal to an “x value”. Microsoft Project only allows Total Slack less than or equal to 0 or a positive “x value”. There is no option for Longest Path with Microsoft Project. (For this general discussion, Total Float and Total Slack are basically the same).
The activity or task network paths created by the activity or task durations, the assigned calendars, and assigned logic determine the Total Float or Total Slack values. If there is never a finish constraint applied to the project schedule, the Critical Path Total Float or Total Slack value should always be 0. And, the Baseline Project Schedule is almost always required to model an “on-time” completion and/or milestone dates equal to the contractually required dates.
As such, the Baseline Project Schedule will almost certainly have Total Float or Total Slack value of 0 for Critical Path activities. I think this is the source of confusion about which definition is correct.
Most schedule specifications require the use of a “finish” constraint for the project schedule. This can be achieved using the Project Level “Must Finish By’ setting in Primavera P6 or assigning a “finish” date constraint to a specific activity or task in either program.
Regardless of which method is used to apply a constraint, actual progress, whether better or worse than planned, will result in Total Float or Total Slack values driven by the constraint date.
If we’re ahead of schedule and have selected Longest Path as the definition in Primavera P6, we will still have a Critical Path with red bars which represent the longest continual path through the project, see figure 6. If we’re using Microsoft Project or have the setting in Primavera P6 as Total Float less than or equal to 0, we will not get any red bars in the Gantt Chart, see figure 7.
If we’re modeling a late project completion and have selected Longest Path as the definition in Primavera P6, we will still have a Critical Path with red bars which represent the longest continual path through the project, see figure 8.
If we’re using Microsoft Project or have the setting in Primavera P6 as Total Float less than or equal to 0, any activity or task with a Total Float or Total Slack value of 0 or less will have red bars in the Gantt Chart, see figure 9.
We can easily change the Primavera P6 less than or equal to value to get the Critical Path bars red. But we can’t do that in Microsoft Project. We have to change the constraint date to do this, (and then remember to set it back to the correct date…).
We need to know which activities are actually driving the Critical Path, especially when making revisions to correct a late finish. We do not want add resources or increase the work period to shorten the duration of an activity which will not give us any bang for the buck. There could be overtime, differential, or other “acceleration” costs which would be incurred.
We need to know which specific activity or task we can work on to pull the scheduled finish back. We need to know which activities or tasks are on the Longest Path. Revisions to these activities or tasks will affect the scheduled finish date or milestone with a date constraint set.
So, when I’m working in Primavera P6, I seldom use the Total Float less than or equal to “x value”. But when I work in Microsoft Project, I have to manipulate the constraint(s) date to model what should be the Critical Path, (and not just all the tasks with Total Slack values less than 0). I can also just look for the worst case Total Slack values, but for me, it is easier to get the Total Slack value to 0.
Now add, to this Critical Path and Total Float/Slack discussion, the use of multiple calendars in a project schedule. See the calendars and Total Float/Slack values for figures 6 through 9 above.
For most of my projects, there is usually a 7-Day Calendar for Milestones and activities/tasks which should have their duration modeled in calendar days; a 5-Day Calendar with Holidays for most work activities/tasks; and a 5-Day Calendar with Holidays & Weather Days for weather sensitive activities/tasks.
We use these to model the planned work using the appropriate workdays in a reporting period. If the schedule is ahead or behind schedule, the use of multiple calendars will produce different Total Float or Total Slack values for activities or tasks on the same network path. This makes using Total Float or Slack equal to or less than a value as the definition for the Critical Path very confusing….
I prefer to use the Primavera P6 setting for Critical Path equal Longest Path. If I’m working in Microsoft Project, I’m forced to use workarounds to show the Critical Path, based only on Total Slack values, and not necessarily the Longest Path.
It is best to use multiple calendars as appropriate in the project schedule. The downside is using Total Float or Total Slack values for the Critical Path definition is not helpful or accurate.
Plan your schedule….
Paul Epperson CCM, PMP, PSP, PMI-SP
Paul has extensive experience as a Construction Manager. Over time, he became convinced that there is a critical shortage of skilled planning and scheduling professionals in our industry. In 2009, he backed away from his work as a Construction Manager and began focusing on planning and scheduling. He now serves our industry as a subject matter expert in this area.