Sign in or create a free account to continue.

PMP-130 · Lesson 7 of 12 · 25 min

Critical path method and float

The critical path method (CPM) turns a network of activities and durations into a schedule. It finds the earliest and latest dates each activity can start and finish, the amount of flexibility (float) each activity has, and the critical path: the longest path through the network, which determines the shortest possible project duration. CPM calculations are a staple of the PMP exam, and more importantly they tell a project manager where to focus. This lesson works through the forward and backward passes on the Project Compass fit-out network, explains total and free float, near-critical paths and negative float, and covers how imposed dates and calendars affect the result.

The idea of the critical path

In a network, several paths run from start to finish. Each path's length is the sum of its activity durations. The longest path determines the project duration, because every path must be complete before the project ends. Activities on that path are critical: if any of them is delayed, the project finish is delayed, unless something else is changed. Activities on shorter paths have float, meaning they can slip by some amount without delaying the project.

For the Project Compass fit-out, the paths from A to K are:

Paths through the fit-out network. The longest, at 100 days, is critical.
PathCalculationLength (days)
A-B-D-E-G-H-J-K15 + 20 + 10 + 15 + 15 + 10 + 8 + 295
A-B-D-F-G-H-J-K15 + 20 + 10 + 20 + 15 + 10 + 8 + 2100
A-C-H-J-K15 + 30 + 10 + 8 + 265
A-C-I-K15 + 30 + 10 + 257

Listing paths works for small networks, and it is a useful exam technique when a question gives a small diagram. For anything larger, the forward and backward passes are faster and also give each activity's float.

The forward pass

The forward pass calculates early start (ES) and early finish (EF) for each activity, moving from the start of the network to the end. This course uses the convention that the project starts at time 0, so an activity's early finish is ES plus duration, and a successor's early start equals its predecessor's early finish. Another convention starts at day 1 and adds or subtracts 1 at each step; both give the same critical path and float, and exam questions usually make the convention clear or offer options consistent with one of them.

Rules for the forward pass with finish-to-start relationships:

  • The first activity has ES = 0.
  • EF = ES + duration.
  • An activity's ES equals the largest EF among its predecessors. At a merge point, take the latest predecessor finish, because the activity must wait for all of them.

For Project Compass: A runs 0 to 15. B and C both start at 15; B finishes at 35 and C at 45. D starts at 35 and finishes at 45. E and F start at 45; E finishes at 60, F at 65. G must wait for both E and F, so it starts at 65 (the larger of 60 and 65) and finishes at 80. H waits for C (45) and G (80), so it starts at 80 and finishes at 90. I follows C and runs 45 to 55. J runs 90 to 98. K waits for I (55) and J (98), so it starts at 98 and finishes at 100. The project duration is 100 working days.

The backward pass

The backward pass calculates late finish (LF) and late start (LS), moving from the end of the network to the start. The late dates are the latest an activity can start and finish without delaying the project finish.

  • The last activity has LF equal to the project finish (here 100), unless a later target date is imposed.
  • LS = LF − duration.
  • An activity's LF equals the smallest LS among its successors. At a burst point, take the earliest successor start, because the activity must finish in time for all of them.

Working back: K has LF 100 and LS 98. J and I both have LF 98; J's LS is 90 and I's LS is 88. H has LF 90 and LS 80. G has LF 80 and LS 65. E and F both have LF 65; E's LS is 50, F's LS is 45. D's successors start at the latest at 50 (E) and 45 (F), so D's LF is the smaller, 45, and its LS is 35. C's successors are H (LS 80) and I (LS 88), so C's LF is 80 and LS 50. B has LF 35 and LS 15. A's successors are B (LS 15) and C (LS 50), so A's LF is 15 and LS 0.

Float

Total float (also called slack) is the amount of time an activity can be delayed from its early start without delaying the project finish or violating a schedule constraint. It is calculated as LS − ES or, equivalently, LF − EF. Free float is the amount of time an activity can be delayed without delaying the early start of any successor. It is calculated as the smallest ES of the successors minus the activity's EF.

Forward and backward pass for the Project Compass fit-out network.
# Critical path method: forward and backward pass for the Project Compass fit-out
acts = {
    "A": (15, []), "B": (20, ["A"]), "C": (30, ["A"]), "D": (10, ["B"]),
    "E": (15, ["D"]), "F": (20, ["D"]), "G": (15, ["E", "F"]),
    "H": (10, ["C", "G"]), "I": (10, ["C"]), "J": (8, ["H"]), "K": (2, ["I", "J"]),
}
order = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K"]   # topological order
succ = {a: [b for b in acts if a in acts[b][1]] for a in acts}

ES, EF = {}, {}
for a in order:                      # forward pass (day 0 = start of project)
    ES[a] = max((EF[p] for p in acts[a][1]), default=0)
    EF[a] = ES[a] + acts[a][0]
end = max(EF.values())
LS, LF = {}, {}
for a in reversed(order):            # backward pass
    LF[a] = min((LS[s] for s in succ[a]), default=end)
    LS[a] = LF[a] - acts[a][0]

print("Act Dur  ES  EF  LS  LF  TF  FF")
for a in order:
    tf = LS[a] - ES[a]
    ff = min((ES[s] for s in succ[a]), default=end) - EF[a]
    print(f" {a} {acts[a][0]:4d} {ES[a]:3d} {EF[a]:3d} {LS[a]:3d} {LF[a]:3d} {tf:3d} {ff:3d}")
crit = [a for a in order if LS[a] == ES[a]]
print("Project duration:", end, "working days")
print("Critical path:", "-".join(crit))
Output
Act Dur  ES  EF  LS  LF  TF  FF
 A   15   0  15   0  15   0   0
 B   20  15  35  15  35   0   0
 C   30  15  45  50  80  35   0
 D   10  35  45  35  45   0   0
 E   15  45  60  50  65   5   5
 F   20  45  65  45  65   0   0
 G   15  65  80  65  80   0   0
 H   10  80  90  80  90   0   0
 I   10  45  55  88  98  43  43
 J    8  90  98  90  98   0   0
 K    2  98 100  98 100   0   0
Project duration: 100 working days
Critical path: A-B-D-F-G-H-J-K

The results confirm the critical path A-B-D-F-G-H-J-K with zero total float. E has 5 days of total float and 5 days of free float: it can slip 5 days without delaying G. C has 35 days of total float but zero free float, because any delay to C immediately delays I's early start. I has 43 days of both. The difference between total and free float matters when assigning resources: using up C's float costs nothing at the project level, but it removes float from I, which shares the path.

The fit-out network with each activity box showing early start, duration and early finish on the top row, and late start, total float and late finish on the bottom row. The boxes for A, B, D, F, G, H, J and K and the arrows connecting them are drawn with a thick red outline to mark the critical path. Box E shows float 5, box C float 35 and box I float 43.
The fit-out network with forward and backward pass results. The critical path is highlighted.
A Gantt chart with activities A to K listed down the left side and a time axis from 0 to 100 working days. Each activity is a horizontal bar at its early dates. Critical activities are dark; non-critical activities C, E and I are lighter, with thin extensions to the right showing their total float of 35, 5 and 43 days.
The same schedule as a Gantt chart, with float shown as extensions.

Near-critical paths and negative float

The critical path is not the only path to watch. A near-critical path has little float and can become critical with a small delay. In Project Compass, the path through E has only 5 days of float: if the electrical rough-in slips by more than a week, it becomes critical. Many organizations monitor all paths with float below a threshold, such as 10 days or 10 % of the remaining duration.

Negative float occurs when the calculated early dates are later than a required date. If the library's board imposed a soft opening at day 95, the backward pass would start from 95 instead of 100. Every activity on the critical path would then have −5 days of float, meaning the plan is 5 days too long to meet the target. Negative float is a signal for action: compress the schedule, change logic, add resources or negotiate the date. It is never a signal to adjust the numbers until they look acceptable.

Worked problem

Imposed date and negative float

The landlord's lease requires the branch to open by working day 95 of the fit-out. What is the float on the critical path and on activity E?

Show solution
  1. The forward pass is unchanged: the early finish of K is 100.
  2. Start the backward pass from the imposed date: LF of K = 95.
  3. All critical activities shift their late dates 5 days earlier, so their total float is −5.
  4. E's late start becomes 45, equal to its early start, so its float falls from 5 to 0.

Answer: The critical path has −5 days of float and E has 0. The plan cannot meet day 95 without compression or other changes, covered in lesson 8.

Constraints, calendars and multiple critical paths

Real schedules include imposed constraints such as "start no earlier than" (for example, the lease handover date) and "finish no later than" (a contractual milestone). These override logic in the calculation and can create negative float or hide true float. Use them sparingly and document why each exists. Calendars also matter: an activity done by a contractor who works six days a week, or by staff who do not work on certain holidays, has a different calendar from the project default. Scheduling software handles this, but it means float should be read in the activity's own calendar.

A network can have more than one critical path, when two or more paths have the same longest length. Multiple critical paths increase schedule risk, because a delay on any of them delays the project. It is also possible for the critical path to change during the project, as actual durations differ from estimates. In Project Compass, if the HVAC upgrade (F) finishes 6 days early, the path through E becomes critical. This is why critical path analysis is repeated at every status update rather than done once.

The critical path is not the same as the most important or most difficult activities. Training staff (I) is important to the opening, but with 43 days of float it is not critical. Conversely, a routine activity like demolition (D) is critical because of where it sits in the network. Exam questions sometimes try to blur this distinction.

Using CPM to manage

CPM results guide day-to-day decisions. Focus monitoring on critical and near-critical activities. Use float to schedule non-critical work when resources are available, which is the basis of resource smoothing in lesson 8. When a delay occurs, compare it with the activity's float before deciding whether to act. When asked to accelerate, look at critical activities first, because shortening a non-critical activity does not shorten the project.

Float also belongs to someone, and that question can be contentious. In many construction contracts, float belongs to the project, meaning whoever uses it first benefits. Some contracts specify that float is shared or owned by the owner. Projects should agree how float will be used and reported so that one party does not consume it silently, leaving others to bear the delay.

Critical chain method is a variation that accounts for resource limits and moves safety margins out of individual activities into buffers. Activity estimates are aggressive, and a project buffer protects the finish date, with feeding buffers where non-critical chains join the critical chain. Buffer consumption is monitored rather than individual activity dates. The exam may ask you to recognize the method and its buffers; you are unlikely to need detailed calculations.

Common mistakes

  • MistakeTaking the smallest predecessor finish at a merge point in the forward pass.

    InsteadUse the largest EF of the predecessors; the activity waits for all of them.

  • MistakeTaking the largest successor start at a burst point in the backward pass.

    InsteadUse the smallest LS of the successors.

  • MistakeConfusing total float with free float.

    InsteadTotal float protects the project finish; free float protects the next activity's early start.

  • MistakeAssuming the critical path never changes.

    InsteadRecalculate at each status update; near-critical paths can become critical.

  • MistakeTreating important activities as critical.

    InsteadAn activity is critical only if it has zero (or the least) float.

Summary and key terms

  • The critical path is the longest path through the network and sets the minimum project duration.
  • Forward pass: EF = ES + duration; ES is the largest predecessor EF.
  • Backward pass: LS = LF − duration; LF is the smallest successor LS.
  • Total float = LS − ES = LF − EF; free float = smallest successor ES − EF.
  • Near-critical paths need watching; negative float means the plan cannot meet a required date.
  • Constraints and calendars affect dates and float; there may be more than one critical path.
  • Use CPM to focus monitoring, schedule non-critical work and choose where to accelerate.
Critical path
The sequence of activities representing the longest path through a project, determining the shortest possible duration.
Critical path method
A method to estimate minimum project duration and schedule flexibility on the logical network paths.
Forward pass
Calculation of early start and early finish dates through the network.
Backward pass
Calculation of late finish and late start dates back through the network.
Early start
The earliest date an activity can start given its predecessors.
Late finish
The latest date an activity can finish without delaying the project or violating a constraint.
Total float
The time an activity can be delayed from its early start without delaying the project finish.
Free float
The time an activity can be delayed without delaying the early start of any successor.
Negative float
Float below zero, showing the schedule cannot meet an imposed date.
Critical chain method
A scheduling method that accounts for resource limits and uses buffers to protect the schedule.

Practice problems

Work each problem on paper first, then reveal the answer to check.

  1. Activities X (4 days) and Y (6 days) both precede Z. Both start at 0. What is Z's ES?

    Show answer

    6.

  2. An activity has ES 10, EF 18, LS 14, LF 22. Total float?

    Show answer

    4 days.

  3. Its only successor has ES 20. Free float?

    Show answer

    20 − 18 = 2 days.

  4. What is the float of an activity on the critical path (no imposed date)?

    Show answer

    Zero.

  5. In Project Compass, how many days can E slip without delaying the project?

    Show answer

    5 working days.

  6. Why does C have zero free float but 35 days of total float?

    Show answer

    Any delay to C delays I's early start, but the project finish is not affected until 35 days.

  7. If F finishes 6 days early, which path becomes critical?

    Show answer

    A-B-D-E-G-H-J-K at 95 days.

  8. A required finish of day 95 is imposed. Float on the critical path?

    Show answer

    −5 days.

  9. Three paths are 40, 42 and 42 days long. How many critical paths?

    Show answer

    Two.

  10. Where does critical chain put safety margins?

    Show answer

    In project and feeding buffers rather than in individual activities.

Lesson quiz · 5 questions

Score 60% or more to complete this lesson.

Take the quiz