Learn — Foundation
Foundation

What Is CPM and How Does P6 Calculate It?

Last reviewed 17 October 2026

The Critical Path Method (CPM) was developed in the late 1950s by DuPont and Remington Rand to plan large industrial projects. It's a deterministic algorithm: given a network of activities, their durations, and the logic links between them, it computes the earliest and latest possible start and finish for every activity — and identifies which chain of activities has zero room to slip.

Try it yourself — step through a 4-activity network
A (dur 5) B (dur 8) C (dur 3) D (dur 4)
Click "Next step" to begin the forward pass.

The forward pass

The forward pass moves left to right through the network. In this example every link is finish-to-start with no lag, so each activity's Early Start (ES) is the latest Early Finish (EF) among all of its predecessors — it can't start before every activity feeding into it has finished. Its Early Finish is simply ES plus its own duration. Where an activity has multiple predecessors (like D, fed by both B and C), its ES is governed by whichever predecessor finishes latest.

The backward pass

The backward pass moves right to left, starting from the project's overall finish. Each activity's Late Finish (LF) is the earliest Late Start (LS) among all of its successors — it must finish in time for every activity depending on it to still start on schedule. Its Late Start is LF minus its own duration.

What the critical path actually is

Total float for any activity is LS minus ES (equivalently LF minus EF). The critical path is the chain of activities where that number is zero — not the activities someone judges "most important," but, in a simple network like this one, the longest path through it. (With constraints, multiple calendars or an imposed finish date, the lowest-float path and the longest path can differ — see Guide 4.) In this network, A→B→D is critical. C is 5 days shorter than B, so C carries 5 days of float; A and D are on the critical path.

How P6 implements this

P6's scheduling engine applies the same forward- and backward-pass principles, while also handling relationship types, lags, constraints, progress, the data date and scheduling options, and it is calendar-aware: every date it produces respects each activity's assigned calendar (working days, non-working days, exceptions), so "duration 5" means 5 working days on that calendar, not 5 calendar days. The calculation is deterministic: the same network, durations, calendars, constraints, progress, data date and scheduling options produce the same dates and float. If the critical path changes between two runs, one of those inputs changed — which is worth finding out.

Key takeaway

Common misconception: the critical path is not "the most important activities" — it's the path that determines the finish date (in a simple network, the longest one). A trivial, low-risk activity on the critical path still deserves scrutiny; an important activity with float is not driving the finish yet, but its float can be used up.

Open a programme in Plan →
Key Terms
Critical Path
The path that determines the finish; in a simple unconstrained network, the longest path.
Total Float
The amount of time an activity can be delayed without delaying the project.
Forward Pass
Calculating earliest start and finish dates through the network.
Backward Pass
Calculating latest start and finish dates working backwards from the end.