Critical Path Method.Total float, recovery, reality.
A 2026 reference for construction CPM scheduling. Forward and backward pass, total float and free float, fast-tracking vs crashing, DCMA 14-point criteria, and the worked example most guides skip.
The Critical Path Method (CPM) is a network-based scheduling algorithm that calculates the longest chain of dependent activities from project start to finish. CPM produces four values per activity (Early Start, Early Finish, Late Start, Late Finish) and from those derives Total Float (LS minus ES) and Free Float (minimum successor ES minus EF). Activities with Total Float of zero are on the critical path: any delay to them delays the project. CPM is the foundation under Primavera P6, Microsoft Project, every Gantt chart owners actually rely on, and every forensic delay analysis that ends up in front of a Society of Construction Law tribunal.
The four CPM values every activity has
Every activity in a CPM network carries the same four core values. The forward pass produces the two early dates. The backward pass produces the two late dates. Float falls out of the difference. Modern construction scheduling uses Activity-on-Node (AON) notation; Activity-on-Arrow (AOA) is legacy and rarely seen outside textbooks.
ES / EF
Computed during the forward passEarly Start / Early Finish
- Formula
- EF = ES + Duration; successor ES = max(predecessor EF)
- What it measures
- Earliest possible start and finish dates for an activity
LS / LF
Computed during the backward passLate Start / Late Finish
- Formula
- LS = LF - Duration; predecessor LF = min(successor LS)
- What it measures
- Latest dates that still meet the project finish
TF
Activities with TF = 0 are on the critical pathTotal Float
- Formula
- TF = LS - ES = LF - EF
- What it measures
- Schedule cushion before the project finish slips
FF
Used in resource leveling and crew sequencingFree Float
- Formula
- FF = min(successor ES) - EF
- What it measures
- Cushion before any successor early start slips
How to run a CPM forward and backward pass
Six steps. Build the network, walk it forward, walk it backward, compute float, identify the critical path, then validate against the DCMA 14-point standard. The same algorithm runs whether you draw it on paper or open Primavera P6.
- 1
Build the activity-on-node network
List activities, assign durations, define predecessor logic.
Every activity becomes a node. Use finish-to-start (FS) relationships by default. Start-to-start (SS) and finish-to-finish (FF) are valid but should be justified by the actual work logic. Avoid open-ended activities. Every node except the project start needs at least one predecessor, and every node except the project finish needs at least one successor. Modern CPM uses Activity-on-Node (AON); the older Activity-on-Arrow (AOA) notation is mostly historical now.
- 2
Run the forward pass
Walk left to right. Compute ES and EF for every activity.
Set the project start activity ES = 0. Compute EF = ES + Duration. For each successor, set its ES to the maximum EF across all its predecessors, because successors cannot start until every predecessor has finished. Continue until you reach the terminal activity. The terminal EF is the earliest possible project completion date and becomes the basis for the backward pass.
- 3
Run the backward pass
Walk right to left. Compute LS and LF for every activity.
Set the terminal activity LF equal to its EF. Compute LS = LF - Duration. For each predecessor, set its LF to the minimum LS across all its successors, because predecessors must finish before the latest successor needs to start. Continue back to the project start. If a hard constraint creates an LF earlier than the corresponding EF, you have negative float and a recovery problem.
- 4
Compute Total Float and Free Float
TF tells you whole-project slack. FF tells you successor slack.
For every activity, Total Float (TF) = LS - ES (equivalently LF - EF). Free Float (FF) = min(successor ES) - EF. FF is always less than or equal to TF, because consuming free float still affects successors even when it does not affect the project finish. Use TF for executive reporting and recovery decisions. Use FF for crew sequencing and resource leveling.
- 5
Identify the critical path
Activities with TF = 0 form the critical path.
Highlight every activity with TF = 0. Verify the chain is continuous from project start to project finish. Most non-trivial construction schedules have between one and three critical paths running in parallel. The path can also shift as work is performed and durations change. A near-critical activity with TF = 2 can become critical after one slip.
- 6
Run the DCMA 14-point check
Validate logic, constraints, float health, and execution.
The DCMA 14-point assessment evaluates logic completeness, leads, lags, hard constraints, high float (over 44 working days), negative float, high duration (over 44 working days), invalid dates, resource loading, missed tasks, critical-path test, critical-path length index, baseline execution index, and float consumption. Failing more than two or three of these is a sign that the schedule needs a logic review before it is published to owners or used for claims.
Worked example: an 8-activity construction schedule
A small commercial build with eight sequential activities plus two parallel non-critical activities. Durations in working days. The chain runs site preparation through closeout. Run the forward pass first, then the backward pass, then compute float for every activity.
| ID | Activity | Dur | Pred | ES | EF | LS | LF | TF |
|---|---|---|---|---|---|---|---|---|
| A | Site preparation | 6 | — | 0 | 6 | 0 | 6 | 0 |
| B | Excavation | 10 | A | 6 | 16 | 6 | 16 | 0 |
| C | Foundation | 14 | B | 16 | 30 | 16 | 30 | 0 |
| D | Framing | 18 | C | 30 | 48 | 30 | 48 | 0 |
| E | MEP rough-in | 16 | D | 48 | 64 | 48 | 64 | 0 |
| F | Drywall | 10 | E | 64 | 74 | 64 | 74 | 0 |
| G | Finishes | 8 | F | 74 | 82 | 74 | 82 | 0 |
| H | Closeout | 4 | G | 82 | 86 | 82 | 86 | 0 |
| ID | Activity | Dur | Pred | ES | EF | LS | LF | TF |
|---|---|---|---|---|---|---|---|---|
| X | Sitework permits (parallel to B) | 5 | A | 6 | 11 | 11 | 16 | 5 |
| Y | Owner-supplied equipment delivery | 12 | C | 30 | 42 | 52 | 64 | 22 |
Forward pass: Activity A starts at day 0 and finishes at day 6 (0 + 6). B starts at 6 (A's EF) and finishes at 16. C runs 16 to 30. D runs 30 to 48. E runs 48 to 64. F runs 64 to 74. G runs 74 to 82. H runs 82 to 86. The earliest project completion is day 86.
Backward pass:H's LF = 86, LS = 82. G's LF = 82, LS = 74. Continue backward: F (74, 64), E (64, 48), D (48, 30), C (30, 16), B (16, 6), A (6, 0). Every primary activity has LS = ES and LF = EF.
Total float: A through H all have TF = 0, so they form the critical path. Sitework permits (X) runs in parallel to excavation with TF = 5 working days of cushion. Owner-supplied equipment delivery (Y) has TF = 22, which is comfortable but worth watching, because if delivery slips past day 64 the critical chain absorbs that delay through MEP rough-in.
Critical path: A → B → C → D → E → F → G → H, total 86 working days. Any delay to any one of those eight activities pushes substantial completion. Activities X and Y can absorb modest variance without affecting the project finish.
Schedule compression and recovery techniques
When the project is behind, schedulers have five primary tools. The order matters: revise logic first, then crash critical activities, then fast-track. Resource leveling and Monte Carlo simulation sit alongside the compression choice rather than replacing it.
Crashing
Fast-tracking
Resource leveling
Resource smoothing
Monte Carlo schedule risk analysis
The DCMA 14-point schedule assessment
The Defense Contract Management Agency 14-point assessment is the de facto standard for CPM schedule health checks on federal and large commercial work. Schedules that fail multiple points signal weak logic, abuse of constraints, or unrealistic float distribution.
CPM vs Gantt vs Lean planning
These three methods get conflated on every construction project. They are not substitutes. CPM produces the float math. Gantt is the visualization. Lean / Last Planner System is the production-planning method that operates on top of CPM for the next two to six weeks.
| Attribute | CPM | Gantt | Lean / Last Planner |
|---|---|---|---|
| Core unit | Network of dependent activities | Time-scaled bars | Reliable promises by Last Planners |
| Time horizon | Whole project, baseline to finish | Whole project, visual format | Next 1 to 6 weeks (look-ahead + weekly) |
| Strength | Quantifies float and critical path | Easy to read for non-schedulers | High reliability of short-term work |
| Weakness | Updates rely on disciplined inputs | No float math without CPM behind it | Does not replace a master schedule |
| Where it fits | Master schedule, owner submission | Reporting layer over CPM | Production planning on top of CPM |
| Tools | P6, MSP, Asta Powerproject | Output view of P6, MSP, Excel | Sticky notes, vPlanner, Touchplan |
Six mistakes that break CPM schedules
These show up in nearly every forensic schedule review. Each one either corrupts the float math, hides recovery options, or invites disputes when delays surface.
- 01
Open-ended activities (no predecessor or no successor)
Every activity except the project start must have a predecessor, and every activity except the project finish must have a successor. Open-ended activities corrupt the float calculation and produce a schedule that looks healthier than it is. The DCMA 14-point assessment flags this as a top defect.
- 02
Hard constraint abuse
Constraints like Must-Finish-On or Start-No-Later-Than override the CPM logic and create artificial negative float when activities slip. Use constraints only when contractually required (for example a substantial completion date) and document each one. Schedules with more than a few hard constraints fail the DCMA constraint check.
- 03
Treating Gantt bars as the schedule
A Gantt chart is the visualization layer over CPM, not a substitute for it. Schedules built directly in Gantt-bar tools without a real precedence network produce no valid float, no real critical path, and no defensible recovery analysis when delays occur.
- 04
Ignoring negative float instead of recovering it
Negative float means the schedule is behind plan. The fix is logic revision, crashing, or fast-tracking, in that order. Carrying negative float on the master schedule for months and waiting for a status meeting to act on it is how owner-caused delays become contractor-caused delays.
- 05
Confusing fast-tracking with crashing
Fast-tracking parallelizes sequential work and increases rework risk. Crashing adds resources to compress critical activities and increases cost. They are not interchangeable. The wrong choice on a recovery plan is the difference between a successful claim and an unrecoverable position.
- 06
Forgetting that the critical path moves
The critical path identified on day one is rarely the same path on day 200. As activities complete, near-critical paths become critical. A schedule that is not re-baselined and re-analyzed monthly will mis-identify where management attention is actually needed.
Frequently asked questions
CPM lives in the scheduler's laptop. Reality lives in the field. The gap between the two is where projects quietly accumulate negative float: RFI responses that arrive a week late, an MEP delivery that slips three days, a crew that mobilizes a day after the activity was supposed to start. Plan of Day is voice-first construction reporting that captures field variance as it happens, maps it to the activities that drive the critical path, and feeds hundreds of KPIs including float consumption, schedule performance index, and critical-activity slippage. Specialized AI agents flag near-critical activities that crossed into negative float before the next monthly schedule update. The master schedule stays in P6 or MSP where it belongs. POD makes sure the field knows what to protect.
Further reading
Earned Value Management in Construction
How CPI, SPI, BCWP, and ACWP integrate with the CPM schedule to give a unified cost-and-schedule view.
TRIR vs EMR vs LTIR vs DART
The four safety rates that govern prequalification, and how schedule pressure affects all of them.
Construction Daily Report Guide
How field reports feed back into the master schedule and surface variance before the next update cycle.
OSHA 300 Log Requirements for Construction
Recordkeeping rules that interact with schedule recovery on accelerated or fast-tracked projects.
Sources
- AACE International Recommended Practice 24R-03 — Developing CPM schedules, baseline development, and update discipline.
- AACE International Recommended Practice 29R-03 — Forensic Schedule Analysis, the canonical reference for delay claim methodology.
- PMI Practice Standard for Scheduling — Project Management Institute reference for CPM modeling and good practice.
- Defense Contract Management Agency (DCMA) 14-Point Schedule Assessment — Federal standard for CPM schedule health on contracted projects.
- Society of Construction Law (SCL) Delay and Disruption Protocol — International reference for concurrent delay, float ownership, and time impact analysis.
- Oracle Primavera P6 — Implementation reference for CPM in the industry-standard scheduling tool.