A critical path is the longest path in the network. Each node which falls under critical path has
zero or negative float (Slack).
Now how do we calculate critical path??
![]() |
Sample Node |
I’ve seen various illustrations having different way to
calculate CPM, few are:
-
The project starts on day 1.
-
The project starts on day 0.
Both
the approaches give same results, however I liked the day 0 approach better,
its simpler, easy and lesser room for errors.
Example
![]() |
Figure 1 - Example |
There are 3 steps to calculate CPM:
1. Forward Pass - To calculate the Early Start(ES) and Early Finish(EF) of node.
2. Backward Pass - To calculate Late Start (LS) and Late Finish(LF) of node.
3. Calculate Float and Thus CPM.
The Forward Pass:
![]() |
Forward Pass Illustration |
We start from first Node or Start node.
The works begin on day 0.
We’ll fill up information in
highlighted boxes:
In forward pass, we calculate the Early Start and early
finish date of activities.
Node A:
The activity starts on day zero, since A activity duration is
for 5 days, the early finish will take Early
Start and duration i.e.:
A(EF) = A(ES) +
Duration
A (EF)= 0 + 5 = 5
Node B:
Since there is only one node which precedes activity B. The
relationship is F->S. That means that activity B can start only when
activity A ends. Hence
B (ES) = A (EF) = 5
B(EF) = B(ES) + Duration =
5+ 5 = 10
Activity C:
C(ES) = B(EF) = 10
C(EF) = C(ES) + Duration = 10+ 4 = 14
Node Z
Now node C leads to node Z, but can we calculate the Z(ES )??
NO we cannot since it has to wait for 2 more activities for it to start. i.e.
Node
Z cannot start till activity C, E and H are complete. So let’s complete the
calculations of all activities before Z.
Activity D,E, G, H
The calculations are pretty simple (same as B) since they
have only one predecessor.
Back to activity Z:
Since this is a merging node, i.e. many activities has to end before we begin activity Z,
Z has more than one predecessor.
Z can start only when all the activities which are merging
at Z can close hence Z can only start when the last activity (activity
having most late EF completes)
Z(ES) = Max | C(EF) or E(EF) or H(EF) |
Z(ES) = Max | 14 or 28 or 20|
Z(ES) = 28
Z(EF) = 28 + 0 = 28.
![]() |
Forward Pass Calculations |
The Backward Pass:
Here we’ll start from the last node i.e. Z,
we calculate the
bottom 2 squares (late Start and late finish)
Node Z:
Since this is the last node, Z’s last finish date would be
equal to earliest finish date of Z i.e.
Z(LF) = Z(EF) = 28
Z(LS) = Z(LF) – Duration
Z(LS) = 28 – 0 = 28
Node H
Node H has only one node preceding it in backward pass (node
Z). Hence
H(LF) = Z(LS) = 28
H(LS) = H(LF) – H(Duration) = 28 – 8 = 20
Node E
Node E has only one node preceding it in backward pass (node
Z). Hence
E(LF) = Z(LS) = 28
E(LS) = E(LF) – E(Duration) = 28 – 10 = 18
Node C
Node C has only one node preceding it in backward pass (node
Z). Hence
C(LF) = C(LS) = 28
C(LS) = C(LF) – C(Duration) = 28 – 4 = 24
Node G and G calculations are exactly as simple node
calculations
Node B
Since Node B is where most of the activities are merging in
backward pass i.e. C, D and G, this is where we need to pay more attention. In
backward pass the node B’s Latest Finish (LF) would be earliest or all the
nodes Late Start i.e.
B(LF) = Least | C(LS) or D(LS) or G(LS)|
B(LF) = Least | 24 or 10 or 18|
B(LF) = 10
B(LS) = B(LF) – B(Duration) = 10 -5 = 5
Node A
A(LF) = B(LF) = 5
A(LS) = A(LF) – A(Duration) = 5 - 5 = 0
![]() |
Backward Pass |
Calculating Total Float or Slack:
Total float
Total amount of time that a schedule activity may be delayed
from its early start date without delaying the project finish date, or
intermediary milestone. It is calculated using:
Activity (ES) – Activity (LS) or activity (EF) Activity(LF) –
Both will give you same results.
Free Float
This is an amount
of time that a schedule activity can be delayed without delaying the early
start of any immediately following schedule activities.
E.g. – For activity C
C (Total Float) = C (LS) - C(ES) = 24 – 10 = 14
C (Free Float) = ES of next activity – C(EF )
C (Free Float) = Z(ES) – C(EF ) = 28 -14 = 14
Now the Critical path
Calculate the Total float for all activities as per the
formula.
All nodes which have zero or negative float/slack forms the CRITICAL
PATH.
Here we can see that the nodes:
A,B,D,E and Z forms the critical path.
Hope this is useful. Please do send me your comments/feedback at kavita.sh@gmail.com.
In case you like this you might want be interested to see following:
- You tube video at:
Is critical path = 28 ????
ReplyDeleteNode G and G calculations are exactly as simple node calculations channge this to Node d and G calculations are exactly as simple node calculations
ReplyDeletethanks for the good simpler sample.
ReplyDeleteis it a good idea to illustrate all possible paths, add the duration, the one with the longest duration is the critical path?
ReplyDeletekavita
ReplyDeleteI was struggling a lot to undersatnd the fund of CPM, flot ,ES,EF LS LF, back ward and farward..Really you made very simple to me..Thanks a bundle...Sagar
Its a great explanation. You deserve the appreciation.
ReplyDeleteI´ll have a MBA exam tomorrow and you help me a lot with your simple explanation. Thanks a lot.
ReplyDeleteGreat explanation, I'm going to use this information on the civil PE exam in October 2013
ReplyDeletethanks for the good simpler sample.
ReplyDelete今日期末試験があるので、このボローグが本当に分かりやすかったです。
ReplyDeleteどもありがとうございます。
すべてのベスト!
ReplyDeleteKavita this is an excellent article and makes calculation very simple, thank you !
ReplyDeleteamazing explanation, even better than the one I got in my lecture
ReplyDeleteexcellent ... very helpful
ReplyDeleteAt IIL - PMP Prep training is designed to be delivered as 4-day workshop and will be called Project Management Certificate Program. Please Enrol on below dates:
ReplyDeleteDelhi/NCR: 18-21 December 2014
Mumbai: 18-21 December 2014
Bangalore: 22-25 January 2015
Regards
Kanchan
kanchan.dhar@iil.com