When building a schedule for a project, the first question is: Well… What is my critical path?

## Critical Path - MS Project

In MS Project, to answer the question of “what is the critical path?”, click on “View” and in Filter choose “Critical”. The instance will display the list of activities that are considered to be critical in MS Project according to the CPM method (MS Project Critical Path).

## What is CPM - a critical path in a project?

Let’s understand what’s behind the words Critical Path.

There are two different methods for finding the critical path and, more accurately, both of them include a path called ‘the critical path’ but it is not necessarily identical.

One method is called **CPM – Critical Path Method**.

The other is called **HCP – Hidden Critical Path**.

The easiest way of explaining the terms is to demonstrate them on a project schedule (a very simple one).

Let’s say we have a small project, we’ll call it ‘mini-project’, which includes 6 tasks (activities) requiring execution. Each activity is given a name (original, according to the ABC), and the expected duration, in days:

We’ll add two milestones to these activities. Milestones mark a start or an end; therefore, they will have a duration of 0. If we number the lines, we will get this:

Every task has predecessor activities (meaning, activities performed before it) and successor activities (meaning, activities that can be done after it). We will write the logic that defines our mini-project according to the line numbers (identifier):

Let’s say we start our mini-project on Monday. A reasonable assumption would be that Saturdays-Sunday are not workdays. When we build the schedule, in a Gantt, it would look like this:

And now, once we finished preparing the accessories, let’s get down to business!

## What is CPM and Who is the critical path according to CPM?

The CPM method was developed in the 1950s (For__ history, see the Wikipedia page__).

To find the critical path according to CPM, one must build the project network and then perform 3 calculations, in this order:**Forwards calculationBackwards calculationTotal slack calculation, **called Total Slack or Total Float

Warning: the mathematical display seems complicated, but don’t let it overwhelm you. The written explanation is much simpler…

**Forwards calculation** – in the forwards calculation, we are looking for the earliest times of each task (activity).

__Definition of variables__

- ES – Early Start
- EF – Early Finish
- k – the examined activity
- j – the predecessor activity of k
- L(k) – the duration of activity k

ES(start)=0=EF(start)

ES(k)=MAX { EF(j) | j is the predecessor of k }

EF(k)=ES(k)+L(k)

We begin with the project’s starting point and define it as time ‘0’, and according to the dependencies between the tasks and the duration of activities, we set the earliest times for performing each activity in the project.

In the mini-project example, if we assume that the project begins on September 1, which is also a Monday, we will get the following dates in the forwards calculation:

** **

**Backwards calculation –** in the backwards calculation, we are looking for the latest times of each activity (task).

__Definition of variables__

- LS – Late Start
- LF – Late Finish
- k – the examined activity
- j – the successor activity of k
- L(k) – the duration of the k activity

LF(end)=EF(end)

LF(k)=MIN { LS(j) | j is the successor of k }

LS(k)=LF(k)-L(k)

We begin with the project’s ending point that we obtained from the forwards calculation, and according to the dependencies between tasks and the duration of the tasks, we set the latest times for performing each activity in the project.

In the mini-project example, we found that in the forwards calculation, the project ends on September 12 (Friday at the end of the workday).

In the backwards calculation, we will receive the following dates:

**The total slack calculation **(Total Slack in Project or Total Float in Primavera) answers the following question:

By how many days can the activity be delayed (or extended), provided that the project completion date is not delayed?

The calculation is a simple one – for each activity, calculate the difference between its late start and its early start.

The formula will be: TS(k)=LS(k)-ES(k)

In the same manner, you can calculate by endings – the result will be the same.

Regarding the critical path according to CPM – it will be the sequence of activities whose total slack is 0.

In our mini-project, it would be:

Meaning, “Start”, “A”, “C”, “F”, “End” activities have a total slack of 0, which is why they form the critical path.

When the project network is colored, critical activities with a total slack of 0 are colored red while the other activities remain blue. The result will be this:

Meaning, “Start”, “A”, “C”, “F”, “End” activities have a total slack of 0, which is why they form the critical path.

## Question: Is the longest path in the network always the critical path according to CPM?

The answer depends on where you are –

If you are at the university and there is no delay between tasks and no date constraints in your exercise (things that happen in reality, but not in exercises) then the answer is: yes!

However, if you are working on a real project, then, for instance, if there is only a 2-day delay between activity D and E, the result would be:

Meaning, the critical path changed to “Start”, “D”, “E”, “F”, “Ending” activities – and then the longest path is not the critical path !

This is how the data will be:

And what’s going to happen if there is no delay, but rather a constraint on activity B, by which this task cannot start before Mondays, September 8th? Then, we will get this:

Meaning, the critical path is not the longest path at all! It is only composed of “B”, “C”, “F” and “Ending” tasks.

This is how the data will be:

**And I didn’t even mention the dependencies of ‘start to start’ (SS) or finish to finish (FF), or deadlines, which cause changes in total slack calculations and can also change the critical path completely!**

What happens in HCP?

## What is HCP and who is the critical path according to HCP?

The HCP method was developed by Tal Levanon in the early 2000s (it is mentioned in Hebrew Wikipedia, see Common Project Management Tools).

The HCP method is indifferent to constraints, delays, start to start or finish to finish dependencies, and to deadlines. HCP is only “interested” in the tasks’ network.

HCP maps the network of activities using paths. For instance, if we begin the mini-project with “Start”, we can continue from there to tasks “A”, “B” or “D”. From each of these tasks we continue forward – until we map the whole project.

The critical path according to HCP is set as the longest path in the project network.

Each other path, ‘i’, will have a Duration Slack (DS), DSi, whose value will be the difference between the longest path duration and the duration of path i.

Meaning, in the mini-project, 3 paths will be found using the HCP method:

The longest path will last 10 workdays. Therefore, other paths with a duration of 9 and 7 days will have a Duration Slack of 1 and 3 days, respectively – and they will be hidden critical paths.

In the Gantt, every activity that is part of an HCP path is marked with a purple asterisk, as follows:

This is how the data will be:

The keen observers among you (and if you made it this far, you are definitely included as having keen observation skills and perseverance! ) will say – but hey, there is no difference between the Total Slack and the HCP Duration Slack so… What does that matter?

You’re right! If life was a university exercise – HCP would be nothing more than an exercise!

But, as you know… Life has delays, constraints, start to start and finish to finish dependencies, and deadlines, so… For instance, when we add the delay between activity D and E, the critical path according to CPM will change completely. What will happen to HCP?

Hmm… Nothing happened 😊

Wait, and what will happen when we add a constraint?

The HCP doesn’t change…

What does that mean? The HCP is indifferent to scheduling “games” – if a minor change between activities causes the critical path according to CPM to be replaced and changed – it doesn’t affect the HCP: the longest path doesn’t change.

**Note that if a certain project element wants to shift attention away from certain activities, it can be done easily with CPM. However, with HCP it would be difficult to shift the attention of all project participants away from activities.**

Question: How can I know all of the technical rules? Isn’t there something that can check the technical aspects for me?

Answer: Today we have **HCP Go**, HCP’s Project addon. With one click, you can analyze your schedule file – and get a free report with your results!

## What does that mean? In other words – let’s summarize:

- The critical path according to CPM is the sequence of activities(tasks) whose total slack is 0.
- The critical path according to HCP is the sequence of activities(tasks) that generate the path whose duration is the longest one in the network.
- The critical path according to CPM is highly sensitive and changes if there are constraints, delays and also according to the start to start or finish to finish relations, and according to deadlines. (Note: the last three items mentioned were not demonstrated due to the length of this blog, but hey! There is always room for another blog )
- The critical path according to HCP is completely indifferent and does not change if there are constraints, delays, start to start and/or finish to finish dependencies, or deadlines.
- In case there are no constraints, delays, start to start and/or finish to finish relations and deadlines, CPM and HCP will display the same critical path!

**Conclusion: CPM and HCP are not mutually exclusive, but rather complete one another! In other words – if you manage a project, wrote a schedule or received a schedule from someone else – the information you get from CPM will be partial, and the information you get from HCP will be partial. Only information from both methods will allow you to better understand the project and to manage it better!**

Wait one moment… What about the hidden critical paths? How many of those are in the project? Which hidden critical paths can this app find? We will talk about that and more in another blog. And if you want to try it for yourself – download the HCP Go app for your Project and… run analysis!😊

Did you like what you’ve read?

Do you know someone else who’d like to read the article? Please share!

Want to add or ask something?

With pleasure! You can do so here in the comments.

Want to tell me something? Mention it at the beginning of the comment and it won’t be published