The Critical Path Method is 70 years old. It was developed in 1957 by DuPont and Remington Rand for scheduling chemical plant maintenance shutdowns, adopted rapidly by construction in the 1960s, and became the mandatory scheduling methodology for federal civil works and transportation projects by the 1970s. Most construction schedulers learned CPM in school. Most experienced superintendents can identify the critical path on a project intuitively. And yet a surprising number of US construction projects run without proper CPM discipline — either because the project is small enough that the GC skips it, or because the GC claims to use CPM but actually runs a bar-chart pretending to be a CPM schedule.
This article is the practical CPM guide for US contractors. The target reader is a project manager, superintendent, or owner’s representative who needs to either build a CPM schedule properly or evaluate whether a GC’s claimed CPM schedule is the real thing. The methodology hasn’t changed; the typical quality of its application has. If you already know what total float is and can run a forward pass in your head, skip to the worked example and the “when CPM is overkill” section — those are where this guide adds most.
For readers evaluating scheduling software that implements CPM, see Primavera P6 vs MS Project: The Enterprise CPM Choice. For sub coordination that depends on CPM outputs, see Subcontractor Schedule Coordination in the 2026 Labor Shortage.
What CPM actually is
Reduced to essentials: CPM is a technique for identifying which activities in a project directly affect the project end date (the “critical path”) versus which activities have scheduling flexibility (carry “float”). It works by building a network of activities linked by dependency relationships, calculating durations forward through the network to find earliest possible completion, then calculating backward from the required end date to find latest acceptable timing. The difference between earliest and latest timing for each activity is its float.
That’s the whole concept. Every CPM schedule, whether built in Excel or in Primavera P6, is doing that same calculation. The difference between good CPM practice and bad is not the technology — it’s whether the activity definitions, durations, and dependency logic actually reflect how the project will be built.
The four essential elements of a valid CPM schedule:
- Activities — discrete work scopes with defined start and end points. “Pour slab at Building A” is an activity. “Complete construction” is not.
- Durations — realistic time estimates for each activity, typically in work days.
- Dependencies — logical relationships showing what must precede what. “Frame walls” cannot start until “pour slab” completes (finish-to-start relationship).
- Calendars — work calendars showing actual working days, accounting for weekends, holidays, weather windows.
Good CPM is 80% discipline and 20% technique. The technique is simple forward/backward arithmetic. The discipline is defining activities at the right level, estimating durations honestly, and getting dependency logic right.
Forward pass, backward pass, float: the math
The math is simpler than textbooks make it sound. For any activity, four dates matter:
- ES (Early Start): The earliest the activity can start based on predecessors.
- EF (Early Finish): ES plus duration.
- LS (Late Start): The latest the activity can start without delaying the project.
- LF (Late Finish): The latest the activity can finish without delaying the project.
Forward pass calculates ES and EF working from the first activity to the last. For each activity, ES equals the latest EF of its predecessors (or project start for activities without predecessors). EF equals ES plus duration.
Backward pass calculates LS and LF working from the last activity back. For each activity, LF equals the earliest LS of its successors (or project end for activities without successors). LS equals LF minus duration.
Total float equals LS minus ES (equivalently, LF minus EF). Activities with zero total float are on the critical path.
Free float equals the earliest ES of successors minus the activity’s EF. This is the amount the activity can slip without delaying any successor.
Critical path is the sequence of activities with zero total float, running from project start to project finish. There may be more than one critical path if ties exist.
That’s it. That’s the math. If a scheduler can’t explain this in two minutes, they shouldn’t be building CPM schedules.
Worked example: 12-week commercial TI
Let’s work through a real example. A 12-week commercial tenant improvement with the phases covered in Commercial Tenant Improvement Schedule: A 12-Week Phased Plan.
The simplified activity list:
| ID | Activity | Duration (days) | Predecessors |
|---|---|---|---|
| A | Demo and protection | 7 | — |
| B | Framing | 8 | A |
| C | MEP rough-in | 10 | B |
| D | Low-voltage rough-in | 5 | B |
| E | Above-ceiling inspection | 2 | C, D |
| F | Drywall and finish | 10 | E |
| G | Ceiling grid | 4 | E |
| H | Flooring | 6 | F |
| I | MEP trim | 7 | F, G |
| J | Painting | 5 | F |
| K | Millwork install | 4 | J |
| L | Final cleanup and punch | 5 | H, I, K |
Forward pass:
| ID | ES | EF |
|---|---|---|
| A | 0 | 7 |
| B | 7 | 15 |
| C | 15 | 25 |
| D | 15 | 20 |
| E | 25 | 27 (waits for C’s EF=25) |
| F | 27 | 37 |
| G | 27 | 31 |
| H | 37 | 43 |
| I | 37 | 44 (waits for F’s EF=37, later than G’s 31) |
| J | 37 | 42 |
| K | 42 | 46 |
| L | 46 | 51 (waits for K’s EF=46, later than H’s 43 and I’s 44) |
Project finish: day 51.
Backward pass (project end = day 51):
| ID | LF | LS | Total float |
|---|---|---|---|
| L | 51 | 46 | 0 |
| K | 46 | 42 | 0 |
| J | 42 | 37 | 0 |
| I | 46 | 39 | 2 |
| H | 46 | 40 | 3 |
| G | 39 | 35 | 4 |
| F | 37 | 27 | 0 |
| E | 27 | 25 | 0 |
| D | 25 | 20 | 5 |
| C | 25 | 15 | 0 |
| B | 15 | 7 | 0 |
| A | 7 | 0 | 0 |
Critical path: A → B → C → E → F → J → K → L (total float = 0 throughout)
Float distribution: Low-voltage (D) has 5 days of float. Flooring (H) has 3 days. MEP trim (I) has 2 days. Ceiling grid (G) has 4 days.
Practical implications:
- Any slip on critical-path activities (demo, framing, MEP rough, drywall, painting, millwork, cleanup) directly slips the project.
- Painting critically precedes millwork, which critically precedes final cleanup. Re-sequencing to overlap painting and millwork (if constructible) would shorten the critical path.
- Low-voltage rough has 5 days of float — it could slip without affecting completion, useful when low-voltage vendor is schedule-constrained.
- Flooring has 3 days of float — can be delayed slightly if flooring material is late, though it shortens to zero if the project slips on any earlier critical activity.
This example runs in five minutes with paper and pencil. Larger projects need software. The principle is identical.
Total float vs free float vs “slack”
A common terminology confusion that trips up a lot of contractors.
Total float is the amount an activity can slip without delaying project completion. In the example above, flooring (H) has 3 days of total float — it can start 3 days later than ES without moving the project end date.
Free float is the amount an activity can slip without delaying any successor activity. Free float is always ≤ total float. In practice it matters when multiple successor activities have different slack — slipping an activity within its free float moves nothing; slipping beyond free float but within total float moves successors but still not the project end.
“Slack” is a term used interchangeably with float in some software (MS Project uses “slack”; Primavera uses “float”). Same concept, different word. Don’t let the vocabulary confuse the discussion.
Independent float is a less-used concept: the amount an activity can slip without affecting predecessors’ late finish or successors’ early start. Rarely matters in practice.
The distinction between total and free float matters most on projects with complex networks. On simple projects, total float is usually the only number that matters operationally.
Dependency types
Four relationship types exist; three are used regularly.
Finish-to-start (FS): The most common. Activity B cannot start until Activity A finishes. “Frame walls” cannot start until “pour slab” completes.
Start-to-start (SS): Activity B cannot start until Activity A starts, often with a lag. “Paint interior” starts 5 days after “drywall” starts, because drywall is done in zones that paint can follow into.
Finish-to-finish (FF): Activity B cannot finish until Activity A finishes, often with a lag. “Commissioning” cannot finish until “mechanical install” finishes + 2 days.
Start-to-finish (SF): Rare and confusing. Activity B cannot finish until Activity A starts. Typically avoided; almost every SF relationship can be modelled better as FS or SS.
Lags can be positive (B starts 3 days after A finishes) or negative (B starts 2 days before A finishes). Negative lags are sometimes abused to fake overlaps that don’t really exist. Schedulers who use extensive negative lags often have logic problems they’re hiding.
A clean CPM schedule uses primarily FS relationships with occasional SS and FF where the work genuinely overlaps, and minimal lags (preferably zero).
When CPM is overkill
Not every project needs formal CPM. Honest assessment:
CPM is worth the effort for:
- Projects over $5M in commercial/industrial construction
- Any federal project (DOT, USACE, VA, GSA) where CPM is often contractually required
- Multi-building or multi-phase projects
- Projects with meaningful long-lead equipment affecting sequencing
- Projects with complex permitting affecting start dates
- Any project where claims or delay analysis might arise
CPM is often overkill for:
- Small residential work
- Simple retail TI under 5,000 sq ft
- Single-trade projects (pure roofing, pure paint)
- Projects under $500K
- Projects where the same crew handles everything sequentially
For small projects, a bar chart with realistic durations often suffices. The overhead of maintaining a proper CPM schedule (activity updates, logic maintenance, float recalculation) can exceed the benefit on projects where sequencing is straightforward.
The decision rule: if you can’t sketch the critical path on a napkin in 60 seconds, you need CPM. If you can, you probably don’t.
Common CPM mistakes
Five patterns that recur on poorly-built schedules.
Activities defined too broadly. “Complete MEP rough-in” as a single 8-week activity obscures what’s actually happening. Better: separate activities for electrical rough, mechanical rough, plumbing rough, fire protection rough, each with its own duration and dependencies.
Activities defined too narrowly. The opposite problem. A 3,000-activity schedule for a 12-week TI project is unmanageable. The right granularity is typically 50-200 activities for a medium commercial project, 500-2000 for a major project.
Missing dependencies. The schedule shows activities that could theoretically happen in parallel but actually can’t — because they share a crew, share equipment, share elevators, or share physical space. Resource constraints that function as schedule constraints must be represented as dependencies.
Wrong duration assumptions. Durations based on wishful thinking rather than historical data. Durations that assume ideal conditions without weather contingency. Durations that assume Tier-1 sub performance when the project will use Tier-2 or Tier-3.
Schedule updates that don’t match reality. The schedule shows “electrical rough 50% complete” because it was scheduled to be 50% complete this week. Actual field condition may be 30% complete. Schedules that get updated by scheduler assumption rather than field verification drift from reality rapidly.
FAQ
Q: Is CPM required on federal projects?
On most significant federal construction projects, yes. DOT, USACE, VA, and GSA contracts typically include CPM scheduling requirements, often specifying Primavera P6 as the required software. Contract language spells out schedule submission frequency (monthly typical), update requirements, and specific float reporting requirements.
Q: What software do contractors actually use for CPM?
Primavera P6 on enterprise and federal work. MS Project on commercial and mid-size work. Asta Powerproject (formerly Elecosoft) on some international and infrastructure projects. Increasingly, cloud-native tools (Smartsheet, Monday, etc.) for small project tracking, though these lack true CPM capability. See Primavera P6 vs MS Project: The Enterprise CPM Choice for the detailed comparison.
Q: How often should a CPM schedule be updated?
Monthly at minimum for any active project. Bi-weekly for fast-paced projects. Weekly for projects in troubled conditions where close monitoring is required. Updates should reflect actual field progress, not planned progress — a common failure mode is scheduler-driven updates that don’t incorporate superintendent input.
Q: What’s the relationship between CPM and lean construction?
Complementary but different. CPM identifies the critical path and float. Lean construction (Last Planner System, pull planning) focuses on weekly/daily commitment cadences that ensure the CPM plan is actually executed. Mature projects use both — CPM at the high-level planning layer, Last Planner at the execution layer. See Subcontractor Schedule Coordination in the 2026 Labor Shortage for the weekly execution cadence.
Q: What’s resource-loaded CPM?
A CPM schedule that tracks not just activity dates but the labor and equipment resources each activity requires. Resource-loaded schedules enable resource leveling (identifying where the same crew is theoretically needed in two places simultaneously) and cash-flow projections. On large projects, resource loading is standard. On mid-size projects, it’s often skipped due to the additional modelling overhead.
Q: What is an “as-built” schedule and when is it required?
An as-built schedule captures what actually happened on a project — actual start and finish dates for every activity, actual durations, actual sequencing. Required on most federal projects at closeout and on any project where delay claims arise. The gap between as-planned CPM and as-built reveals where delays occurred and who caused them. Good contractors maintain as-built records throughout the project rather than reconstructing them at closeout.
Q: Can a contractor manipulate float to hide schedule problems?
Yes, and some do. Common manipulations: front-loading durations so activities start earlier than necessary and appear to have float, adding fictitious successor activities to create false critical paths, using negative lags to fake overlaps, and defining activities broadly enough to hide progress issues. Owners’ representatives review schedules specifically to detect these manipulations. A schedule with unusual lag patterns, activities dramatically longer than industry norms, or float distributions that don’t match physical reality is worth scrutinising.
Q: What’s the difference between a network diagram and a Gantt chart?
A network diagram shows activities as nodes with dependency arrows between them — the logical structure of the project. A Gantt chart shows activities as horizontal bars on a timeline — the time representation of the same structure. Good CPM practice uses both: network diagrams for logic review and critical path identification, Gantt charts for communication with stakeholders who don’t read network notation. Most scheduling software auto-generates both views from the same underlying data.
Q: How accurate are CPM-based completion predictions?
Accuracy correlates strongly with discipline. Well-maintained CPM schedules with monthly updates and field-verified progress predict completion within 5-10% on most projects. Poorly-maintained schedules predict completion with little accuracy — the schedule becomes a theater artifact rather than a prediction tool. The accuracy isn’t inherent to CPM; it’s inherent to the schedule-maintenance discipline around CPM.