Back online
Definitive Guide

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.

0 days
Worked Example Duration
0.00
Critical Path Activities
0
DCMA Assessment Points
0
High-Float Threshold (Days)
Direct Answer

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 pass

Early 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 pass

Late 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 path

Total Float

Formula
TF = LS - ES = LF - EF
What it measures
Schedule cushion before the project finish slips

FF

Used in resource leveling and crew sequencing

Free 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. 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. 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. 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. 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. 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. 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.

Critical path activities (TF = 0)
IDActivityDurPredESEFLSLFTF
ASite preparation606060
BExcavation10A6166160
CFoundation14B163016300
DFraming18C304830480
EMEP rough-in16D486448640
FDrywall10E647464740
GFinishes8F748274820
HCloseout4G828682860
Parallel non-critical activities (TF > 0)
IDActivityDurPredESEFLSLFTF
XSitework permits (parallel to B)5A61111165
YOwner-supplied equipment delivery12C3042526422
What the math says

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

What it does
Add resources (crew, shifts, equipment) to shorten critical-path activities
Cost profile
High and non-linear. A second crew rarely doubles output
Risk profile
Lower than fast-tracking when applied correctly

Fast-tracking

What it does
Parallelize activities that were originally sequenced sequentially
Cost profile
Lower up-front than crashing
Risk profile
Higher rework potential when downstream work changes

Resource leveling

What it does
Smooth resource demand peaks by shifting activities within their float
Cost profile
May extend project duration
Risk profile
Low when applied within available float

Resource smoothing

What it does
Reduce resource peaks without changing the project finish date
Cost profile
Lower than leveling
Risk profile
Limited to activities with available free float

Monte Carlo schedule risk analysis

What it does
Run thousands of probabilistic schedule simulations to estimate completion confidence
Cost profile
Software and analyst time
Risk profile
Reduces surprise; surfaces near-critical paths that deterministic CPM misses

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.

01
Logic
At most 5% of activities missing predecessor or successor
02
Leads (negative lags)
Should be 0
03
Lags
No more than 5% of relationships with positive lag
04
Relationship types
At least 90% finish-to-start
05
Hard constraints
No more than 5% of activities
06
High float
No more than 5% over 44 working days
07
Negative float
Should be 0
08
High duration
No more than 5% over 44 working days
09
Invalid dates
Actual dates in the future or planned dates in the past are 0
10
Resources
Resource-loaded schedules: at least 90% of activities have resources
11
Missed tasks
No more than 5% of activities missed baseline finish
12
Critical path test
Adding 600 days to a critical activity must extend the project by 600
13
Critical path length index
CPLI close to 1.0
14
Baseline execution index
BEI close to 1.0

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.

AttributeCPMGanttLean / Last Planner
Core unitNetwork of dependent activitiesTime-scaled barsReliable promises by Last Planners
Time horizonWhole project, baseline to finishWhole project, visual formatNext 1 to 6 weeks (look-ahead + weekly)
StrengthQuantifies float and critical pathEasy to read for non-schedulersHigh reliability of short-term work
WeaknessUpdates rely on disciplined inputsNo float math without CPM behind itDoes not replace a master schedule
Where it fitsMaster schedule, owner submissionReporting layer over CPMProduction planning on top of CPM
ToolsP6, MSP, Asta PowerprojectOutput view of P6, MSP, ExcelSticky 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.

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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

The critical path is the sequence of activities with zero total float. It is the longest chain of dependent tasks from project start to project finish. Any delay to an activity on the critical path delays the entire project. Most construction schedules of meaningful size have between one and three critical paths running in parallel, and the path can shift as the project progresses.

Total float is the amount of time an activity can be delayed without delaying the project finish date. Free float is the amount of time an activity can be delayed without delaying the early start of any successor activity. Total float is computed as Late Start minus Early Start. Free float is computed as the minimum successor Early Start minus this activity Early Finish. Free float is always less than or equal to total float.

Start with Early Start (ES) equal to zero for the first activity. Compute Early Finish (EF) as ES plus Duration. For each successor activity, set ES equal to the maximum EF of all its predecessors. Continue through the network until you reach the project finish. The largest EF at the end of the network is the earliest possible project completion date.

Start at the project finish. Set Late Finish (LF) equal to the project Early Finish for terminal activities. Compute Late Start (LS) as LF minus Duration. For each predecessor activity, set LF equal to the minimum LS of all its successors. Total float for any activity equals LS minus ES (or equivalently LF minus EF). Activities with total float of zero are on the critical path.

Fast-tracking parallelizes activities that were originally sequenced sequentially. For example, starting foundation excavation before site permits are fully issued. Risk increases because rework potential rises. Crashing adds resources to shorten the duration of activities on the critical path. For example, adding a second framing crew. Cost increases, and the cost-to-time relationship is non-linear. Crashing only helps if applied to critical-path activities.

The Defense Contract Management Agency 14-point assessment is the standard health check for CPM schedules on federal and large commercial projects. It evaluates logic completeness, leads and lags, hard constraints, high float, negative float, high duration, invalid dates, resource loading, missed tasks, critical-path test, critical-path length index, baseline execution index, and float consumption. Schedules that fail multiple checks signal weak planning.

Negative float means the schedule is behind plan. The calculated late dates are earlier than the calculated early dates because a hard constraint, an imposed milestone, or a contractual finish date cannot be met by the current logic. Negative float is a recovery signal, not a bug. The standard responses are revising logic, crashing critical activities, or fast-tracking, in that order of preference.

Primavera P6 is the dominant tool on large infrastructure, federal, and energy projects. Microsoft Project (MSP) is more common on mid-size commercial projects. Both implement the same CPM algorithm. P6 has stronger resource leveling and multi-project portfolio features. MSP integrates more cleanly with the broader productivity ecosystem. Both export to XER, MPP, or XML for owner submission.

The industry standard is a three-week look-ahead for field-level coordination and a six-week look-ahead for procurement, submittals, and crew planning. The three-week is published weekly to crews and subcontractors. The six-week feeds material commitments and trade coordination. Both are derived from the master CPM schedule, not built independently.

No. CPM is a network-based scheduling algorithm. Last Planner System (LPS) is a Lean production-planning method that operates on top of CPM. LPS focuses on making work ready, weekly work planning, and reliable promises between crews. The two complement each other: CPM defines the network and critical path, LPS executes the next two to six weeks reliably and feeds variance back to the master schedule.

When POD is the natural answer

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.

Sources

Last updated: May 2026