Critical Path Method (CPM)
CPM was developed in the late 1950s (by DuPont with Remington Rand) for planning and scheduling projects with deterministic (known) activity durations. It is activity-oriented and widely used in construction, where durations can be estimated from experience; it also forms the basis of time–cost trade-off (crashing).
Network terminology
| Term |
Meaning |
| Activity |
A task consuming time and resources (shown by an arrow in AOA) |
| Event (node) |
The start or completion of activities — a point in time, consumes no time or resources |
| Dummy activity |
Fictitious activity of zero duration and no resources, drawn as a dashed arrow — used to show logical dependency or to give unique identification to parallel activities |
| Predecessor / successor |
Activities immediately before / after an activity |
| Burst event |
An event from which more than one activity starts |
| Merge event |
An event at which more than one activity ends |
| Duration |
Time estimated for an activity |
| Critical path |
The longest path through the network; determines project duration |
Types of network diagrams
Activity on arrow (AOA)
- Activities on arrows, events as nodes (circles); activity identified by (i,j) — tail and head events.
- Needs dummies for correct logic.
Activity on node (AON) / precedence diagram
- Activities in nodes (boxes); arrows show dependencies only.
- No dummies needed; easier to draw and modify; used by most software.
- Allows relationships FS, SS, FF, SF with lags/leads.
Rules for drawing AOA networks
- Each activity is represented by one arrow only.
- No two activities may have the same tail and head events — use a dummy.
- There should be one initial and one final event (in a basic network).
- Arrows flow from left to right; no looping (circular logic).
- No dangling — every activity except the last must have a successor, and every event except the first must have a predecessor.
- Avoid redundant dependencies.
- The length of the arrow has no significance (not to scale).
Fulkerson's rule for numbering events
- Number the initial event 1.
- Delete all arrows emerging from numbered events; this creates new initial events — number them 2, 3, …
- Repeat until the final event is numbered.
Result: for every activity (i,j), i<j (head number greater than tail number).
Common errors
- Looping (cycling) — endless loop of activities.
- Dangling — an activity disconnected from the end event.
- Redundancy — unnecessary dummy or link where dependency is already implied.
Time computations
Floats
- Relationship: IF≤FF≤TF.
- Critical activities have zero total float (when the project's scheduled completion equals its earliest completion). Negative float indicates the schedule cannot meet a target date.
- The critical path joins critical activities from start to end; there may be more than one critical path.
Worked example 1 — AOA network
✎Worked ExampleCPM computations
| Activity |
(i–j) |
Duration (days) |
Predecessor |
| A |
1–2 |
3 |
— |
| B |
2–3 |
4 |
A |
| C |
2–4 |
2 |
A |
| D |
3–5 |
5 |
B |
| E |
4–5 |
3 |
C |
| F |
5–6 |
2 |
D, E |
Forward pass: E1=0; E2=3; E3=7; E4=5; E5=max(7+5,5+3)=12; E6=14
Backward pass: L6=14; L5=12; L3=7; L4=12−3=9; L2=min(7−4,9−2)=3; L1=0
| Activity |
t |
EST |
EFT |
LST |
LFT |
TF |
FF |
IF |
| A |
3 |
0 |
3 |
0 |
3 |
0 |
0 |
0 |
| B |
4 |
3 |
7 |
3 |
7 |
0 |
0 |
0 |
| C |
2 |
3 |
5 |
7 |
9 |
4 |
0 |
0 |
| D |
5 |
7 |
12 |
7 |
12 |
0 |
0 |
0 |
| E |
3 |
5 |
8 |
9 |
12 |
4 |
4 |
0 |
| F |
2 |
12 |
14 |
12 |
14 |
0 |
0 |
0 |
Check for C: FF=E4−E2−2=5−3−2=0; interfering float =4−0=4 (slack of event 4).
For E: FF=12−5−3=4; IF=E5−L4−3=12−9−3=0.
Critical path: A–B–D–F; project duration = 14 days.
Worked example 2 — using a dummy
✎Worked ExampleDrawing logic with a dummy
Activities: A and B start the project; C depends on A; D depends on both A and B.
Solution (AOA). Draw A (1–2) and B (1–3). C starts from node 2. D must follow both A and B: draw D from node 3 and add a dummy from node 2 to node 3 (so D waits for A), while C remains dependent only on A.
Without the dummy, C would wrongly depend on B, or D would not depend on A.
Precedence diagram relationships (AON)
| Relationship |
Meaning |
| Finish-to-start (FS) |
Successor starts after predecessor finishes (most common) |
| Start-to-start (SS) |
Successor starts after predecessor starts (with lag) — e.g. plastering starts 3 days after brickwork starts |
| Finish-to-finish (FF) |
Successor finishes after predecessor finishes |
| Start-to-finish (SF) |
Successor finishes after predecessor starts (rare) |
| Lag / lead |
Waiting time (e.g. curing) / overlap |
AON node boxes typically show ES, EF, LS, LF, duration and total float.
Advantages of CPM
- Shows interdependencies; identifies critical activities needing close control.
- Computes floats — flexibility for resource allocation.
- Basis for crashing, resource levelling, cost control and updating.
- Effect of delays on the project can be analysed.
Frequently tested points
- CPM: deterministic durations, activity-oriented, used for time–cost trade-off; PERT: probabilistic, event-oriented.
- Dummy: zero time, zero resources, dashed arrow — logic or unique identification.
- Fulkerson's rule numbers events so that i<j for every activity.
- Errors: looping, dangling, redundancy.
- Ej=max(Ei+t); Li=min(Lj−t).
- TF = L_j − E_i − t; FF = E_j − E_i − t; IF = E_j − L_i − t; interfering float = TF − FF = head slack.
- IF ≤ FF ≤ TF; critical activities TF = 0; critical path = longest path; may be several.
- AON needs no dummies; FS, SS, FF, SF relationships with lags.
⚠Common MistakeCommon mistakes
- Taking the minimum instead of the maximum at merge events in the forward pass (and vice versa in the backward pass).
- Calling the shortest path the critical path.
- Assuming free float equals total float for every activity.
✔Revision SummaryChapter summary
- CPM is a deterministic, activity-oriented network technique identifying the critical path and floats.
- Networks may be activity-on-arrow (with dummies and Fulkerson numbering) or activity-on-node (precedence diagrams).
- Forward and backward passes give earliest and latest event and activity times.
- Total, free, independent and interfering floats measure scheduling flexibility; critical activities have zero total float.
- Precedence relationships (FS, SS, FF, SF) with lags model real construction logic.