---
title: "Critical path method (CPM)"
source: "https://systems-analysis.info/eng/Critical_path_method_(CPM)"
wiki: "systems-analysis.info/eng"
article: "Critical_path_method_(CPM)"
language: "en"
categories:
  - "Category:English"
  - "Category:Operations research"
  - "Category:Project management"
  - "Category:Science"
revision_id: 109
wiki_created_at: 2026-09-06T22:17:30Z
wiki_modified_at: 2026-09-06T22:17:30Z
downloaded_at: 2026-09-07T22:21:05Z
---

# Critical path method (CPM)

**The Critical Path Method (CPM)** is a deterministic network scheduling method used in project management to calculate the sequence of activities and the minimum possible project completion time. The critical path is the longest-duration path through a network model; a delay in any activity on this path will delay the completion of the entire project<sup>[\[1\]](https://systems-analysis.info/eng/Critical_path_method_(CPM)#cite_note-enwiki-1)[\[2\]](https://systems-analysis.info/eng/Critical_path_method_(CPM)#cite_note-kelley1959-2)</sup>.

## History

CPM was developed in the late 1950s by James E. Kelley Jr. of Remington Rand and Morgan R. Walker of DuPont. Their 1959 report initiated the industrial use of the method; the authors later published a historical account of CPM's origins<sup>[\[2\]](https://systems-analysis.info/eng/Critical_path_method_(CPM)#cite_note-kelley1959-2)[\[3\]](https://systems-analysis.info/eng/Critical_path_method_(CPM)#cite_note-origins-3)</sup>. Concurrently in the US, the probabilistic PERT method was developed, with which CPM is often used in conjunction<sup>[\[1\]](https://systems-analysis.info/eng/Critical_path_method_(CPM)#cite_note-enwiki-1)</sup>.

## Core Concepts

- **Activity** — an action with a duration **d** and dependencies on predecessors.
- **Event/Milestone** — a point in time with zero duration that marks a specific state of the project.
- **Critical Path** — the sequence of activities with the maximum total duration between the model's start and finish; activities on it have zero total float<sup>[\[1\]](https://systems-analysis.info/eng/Critical_path_method_(CPM)#cite_note-enwiki-1)</sup>.
- **Precedence** is defined by FS, SS, FF, and SF relationships with possible lags; in practice, PDM / AON (Activity-on-Node) is used, while the historical ADM / AOA (Activity-on-Arrow) is less common<sup>[\[4\]](https://systems-analysis.info/eng/Critical_path_method_(CPM)#cite_note-pdm-4)[\[5\]](https://systems-analysis.info/eng/Critical_path_method_(CPM)#cite_note-adm-5)[\[6\]](https://systems-analysis.info/eng/Critical_path_method_(CPM)#cite_note-dependency-6)</sup>.

## Calculating Dates and Floats

The calculation is performed using forward and backward passes through the network.

**Forward Pass** (early dates):

for initial activities: **ES = 0** (or according to the chosen time scale);

for each activity *j*: **ES<sub>j</sub> = max{ EF<sub>i</sub> of all predecessors *i* }**;

**EF = ES + d**.

**Backward Pass** (late dates):

for final activities: **LF** equals the total project duration (or the early finish of the final milestone);

for each activity *j*: **LS = LF − d**; **LF<sub>j</sub> = min{ LS<sub>s</sub> of all successors *s* }**<sup>[\[7\]](https://systems-analysis.info/eng/Critical_path_method_(CPM)#cite_note-baker-7)[\[8\]](https://systems-analysis.info/eng/Critical_path_method_(CPM)#cite_note-cmu-8)</sup>.

**Floats** (or slack):

**Total Float (TF)**: **TF = LS − ES = LF − EF** — the amount of time an activity can be delayed without affecting the project's finish date.

**Free Float (FF)**: **FF = min{ ES<sub>succ</sub> } − EF** — the amount of time an activity can be delayed without affecting the early start of its successors<sup>[\[9\]](https://systems-analysis.info/eng/Critical_path_method_(CPM)#cite_note-pressbooks-9)[\[10\]](https://systems-analysis.info/eng/Critical_path_method_(CPM)#cite_note-pmi-ff-10)</sup>.

## Dependencies and Lags

In PDM, four basic types of dependencies are supported: **FS** (finish‑to‑start), **SS** (start‑to‑start), **FF** (finish‑to‑finish), and **SF** (start‑to‑finish). Each dependency can have a lag (positive or negative), for example, **FS + 2d** means the successor starts two days after the predecessor finishes<sup>[\[6\]](https://systems-analysis.info/eng/Critical_path_method_(CPM)#cite_note-dependency-6)</sup>.

## Schedule Compression (Crashing, Fast-Tracking)

Project duration can be reduced through:

- **Crashing** — purposefully reducing the duration of critical path activities by adding resources, which incurs additional costs. It is preferable to crash activities with the lowest cost slope.

**Cost Slope** (cost per unit of time saved): **(C<sub>crash</sub> − C<sub>normal</sub>) / (D<sub>normal</sub> − D<sub>crash</sub>)**<sup>[\[11\]](https://systems-analysis.info/eng/Critical_path_method_(CPM)#cite_note-crash-11)</sup>.

- **Fast-tracking** — performing activities or phases in parallel that would normally be done in sequence (e.g., changing FS to SS), which increases the risk of rework<sup>[\[1\]](https://systems-analysis.info/eng/Critical_path_method_(CPM)#cite_note-enwiki-1)</sup>.

## Areas of Application

CPM is used to develop schedules in construction, energy, manufacturing, IT projects, and R&D. The method is a foundational component of project management and systems engineering standards (e.g., from PMI, NASA) and is widely supported by scheduling software<sup>[\[1\]](https://systems-analysis.info/eng/Critical_path_method_(CPM)#cite_note-enwiki-1)[\[12\]](https://systems-analysis.info/eng/Critical_path_method_(CPM)#cite_note-pmi-12)[\[13\]](https://systems-analysis.info/eng/Critical_path_method_(CPM)#cite_note-nasa-13)</sup>.

## Advantages

- Clear identification of the critical path and bottlenecks, helping project managers prioritize their focus<sup>[\[1\]](https://systems-analysis.info/eng/Critical_path_method_(CPM)#cite_note-enwiki-1)</sup>.
- Simple rules for calculating early/late dates and floats, providing transparency into the impact of changes<sup>[\[7\]](https://systems-analysis.info/eng/Critical_path_method_(CPM)#cite_note-baker-7)</sup>.
- Compatibility with PDM/Gantt charts and tools for analyzing schedule compression options<sup>[\[4\]](https://systems-analysis.info/eng/Critical_path_method_(CPM)#cite_note-pdm-4)</sup>.

## Limitations

- The basic CPM model does not account for resource constraints or the stochastic nature of activity durations; resource leveling and extensions (such as the *critical chain* method) are used to address this<sup>[\[1\]](https://systems-analysis.info/eng/Critical_path_method_(CPM)#cite_note-enwiki-1)</sup>.
- When complex dependencies and lags are used, the interpretation of floats can be non-trivial; it is recommended to formally define and control the rules for float calculation in contractual documents<sup>[\[10\]](https://systems-analysis.info/eng/Critical_path_method_(CPM)#cite_note-pmi-ff-10)</sup>.

## Relationship with Other Approaches

- PERT — uses probabilistic duration estimates (three-point estimates, β-distribution approximation), whereas CPM uses deterministic durations.
- Gantt Chart — a visual representation of the schedule, often used in conjunction with CPM/PERT.
- Network Scheduling — a general group of methods that includes CPM, PERT, ADM/AOA, and PDM/AON.

## See also

- [PERT](https://systems-analysis.info/eng/PERT_method "PERT method")
- [Project planning](https://systems-analysis.info/eng/Project_planning "Project planning")
- [Network model (operations research)](https://systems-analysis.info/eng/Network_model_(operations_research) "Network model (operations research)")

## Literature

- Kelley, J. E.; Walker, M. R. (1959). *Critical‑Path Planning and Scheduling*. IRE‑AIEE‑ACM '59 (Eastern). *ACM Digital Library*. <a href="https://dl.acm.org/doi/10.1145/1460299.1460318" class="external autonumber" rel="nofollow">[14]</a>
- Kelley, J. E.; Walker, M. R. (1989). *Origins of CPM: A Personal History*. PM Network. *PMI*. <a href="https://www.pmi.org/learning/library/origins-cpm-personal-history-3762" class="external autonumber" rel="nofollow">[15]</a>
- PMI. *PMBOK® Guide*. <a href="https://www.pmi.org/pmbok-guide-standards/foundational/pmbok" class="external autonumber" rel="nofollow">[16]</a>
- NASA. *Systems Engineering Handbook* (SP‑2016‑6105 Rev2). <a href="https://www.nasa.gov/connect/ebooks/nasa-systems-engineering-handbook/" class="external autonumber" rel="nofollow">[17]</a>
- "Critical path method". *Wikipedia (en)*. <a href="https://en.wikipedia.org/wiki/Critical_path_method" class="external autonumber" rel="nofollow">[18]</a>
- "Precedence diagram method". *Wikipedia (en)*. <a href="https://en.wikipedia.org/wiki/Precedence_diagram_method" class="external autonumber" rel="nofollow">[19]</a>
- "Dependency (project management)". *Wikipedia (en)*. <a href="https://en.wikipedia.org/wiki/Dependency_%28project_management%29" class="external autonumber" rel="nofollow">[20]</a>
- "Arrow diagramming method". *Wikipedia (en)*. <a href="https://en.wikipedia.org/wiki/Arrow_diagramming_method" class="external autonumber" rel="nofollow">[21]</a>
- Baker, S. L. *Critical Path Method (CPM) — Analysis Steps*. University of South Carolina. <a href="https://sambaker.com/courses/J716/CPM/CPM.html" class="external autonumber" rel="nofollow">[22]</a>
- "Creating an Activity Network Diagram". *CSU Pressbooks*. <a href="https://pressbooks.ulib.csuohio.edu/project-management-navigating-the-complexity/chapter/7-4-creating-an-activity-network-diagram/" class="external autonumber" rel="nofollow">[23]</a>
- "Crashing Example". An‑Najah National University (educational example). <a href="https://staff-old.najah.edu/sites/default/files/CrashingExample.pdf" class="external autonumber" rel="nofollow">[24]</a>

## References

1.  <span id="cite_note-enwiki-1">↑ <sup>[1.0](https://systems-analysis.info/eng/Critical_path_method_(CPM)#cite_ref-enwiki_1-0)</sup> <sup>[1.1](https://systems-analysis.info/eng/Critical_path_method_(CPM)#cite_ref-enwiki_1-1)</sup> <sup>[1.2](https://systems-analysis.info/eng/Critical_path_method_(CPM)#cite_ref-enwiki_1-2)</sup> <sup>[1.3](https://systems-analysis.info/eng/Critical_path_method_(CPM)#cite_ref-enwiki_1-3)</sup> <sup>[1.4](https://systems-analysis.info/eng/Critical_path_method_(CPM)#cite_ref-enwiki_1-4)</sup> <sup>[1.5](https://systems-analysis.info/eng/Critical_path_method_(CPM)#cite_ref-enwiki_1-5)</sup> <sup>[1.6](https://systems-analysis.info/eng/Critical_path_method_(CPM)#cite_ref-enwiki_1-6)</sup> "Critical path method". *Wikipedia (en)*. <a href="https://en.wikipedia.org/wiki/Critical_path_method" class="external autonumber" rel="nofollow">[1]</a></span>
2.  <span id="cite_note-kelley1959-2">↑ <sup>[2.0](https://systems-analysis.info/eng/Critical_path_method_(CPM)#cite_ref-kelley1959_2-0)</sup> <sup>[2.1](https://systems-analysis.info/eng/Critical_path_method_(CPM)#cite_ref-kelley1959_2-1)</sup> Kelley, J. E., Jr.; Walker, M. R. (1959). "Critical-Path Planning and Scheduling". *IRE‑AIEE‑ACM '59 (Eastern)*. *ACM Digital Library*. <a href="https://dl.acm.org/doi/10.1145/1460299.1460318" class="external autonumber" rel="nofollow">[2]</a></span>
3.  <span id="cite_note-origins-3">[↑](https://systems-analysis.info/eng/Critical_path_method_(CPM)#cite_ref-origins_3-0) Kelley, J. E.; Walker, M. R. (1989). "Origins of CPM: A Personal History". *PM Network*. *Project Management Institute*. <a href="https://www.pmi.org/learning/library/origins-cpm-personal-history-3762" class="external autonumber" rel="nofollow">[3]</a></span>
4.  <span id="cite_note-pdm-4">↑ <sup>[4.0](https://systems-analysis.info/eng/Critical_path_method_(CPM)#cite_ref-pdm_4-0)</sup> <sup>[4.1](https://systems-analysis.info/eng/Critical_path_method_(CPM)#cite_ref-pdm_4-1)</sup> "Precedence diagram method". *Wikipedia (en)*. <a href="https://en.wikipedia.org/wiki/Precedence_diagram_method" class="external autonumber" rel="nofollow">[4]</a></span>
5.  <span id="cite_note-adm-5">[↑](https://systems-analysis.info/eng/Critical_path_method_(CPM)#cite_ref-adm_5-0) "Arrow diagramming method". *Wikipedia (en)*. <a href="https://en.wikipedia.org/wiki/Arrow_diagramming_method" class="external autonumber" rel="nofollow">[5]</a></span>
6.  <span id="cite_note-dependency-6">↑ <sup>[6.0](https://systems-analysis.info/eng/Critical_path_method_(CPM)#cite_ref-dependency_6-0)</sup> <sup>[6.1](https://systems-analysis.info/eng/Critical_path_method_(CPM)#cite_ref-dependency_6-1)</sup> "Dependency (project management)". *Wikipedia (en)*. <a href="https://en.wikipedia.org/wiki/Dependency_%28project_management%29" class="external autonumber" rel="nofollow">[6]</a></span>
7.  <span id="cite_note-baker-7">↑ <sup>[7.0](https://systems-analysis.info/eng/Critical_path_method_(CPM)#cite_ref-baker_7-0)</sup> <sup>[7.1](https://systems-analysis.info/eng/Critical_path_method_(CPM)#cite_ref-baker_7-1)</sup> Baker, S. L. "Critical Path Method (CPM) — Analysis Steps". University of South Carolina. <a href="https://sambaker.com/courses/J716/CPM/CPM.html" class="external autonumber" rel="nofollow">[7]</a></span>
8.  <span id="cite_note-cmu-8">[↑](https://systems-analysis.info/eng/Critical_path_method_(CPM)#cite_ref-cmu_8-0) "Fundamental Scheduling Procedures". *Project Management*, Carnegie Mellon University. <a href="https://www.cmu.edu/cee/projects/PMbook/10_Fundamental_Scheduling_Procedures.html" class="external autonumber" rel="nofollow">[8]</a></span>
9.  <span id="cite_note-pressbooks-9">[↑](https://systems-analysis.info/eng/Critical_path_method_(CPM)#cite_ref-pressbooks_9-0) "Creating an Activity Network Diagram". *Project Management — Navigating the Complexity*. Cleveland State University Pressbooks. <a href="https://pressbooks.ulib.csuohio.edu/project-management-navigating-the-complexity/chapter/7-4-creating-an-activity-network-diagram/" class="external autonumber" rel="nofollow">[9]</a></span>
10. <span id="cite_note-pmi-ff-10">↑ <sup>[10.0](https://systems-analysis.info/eng/Critical_path_method_(CPM)#cite_ref-pmi-ff_10-0)</sup> <sup>[10.1](https://systems-analysis.info/eng/Critical_path_method_(CPM)#cite_ref-pmi-ff_10-1)</sup> "Critical Path Method Calculations". *PMI*. <a href="https://www.pmi.org/learning/library/critical-path-method-calculations-scheduling-8040" class="external autonumber" rel="nofollow">[10]</a></span>
11. <span id="cite_note-crash-11">[↑](https://systems-analysis.info/eng/Critical_path_method_(CPM)#cite_ref-crash_11-0) "Crashing Example". An‑Najah National University (educational example). <a href="https://staff-old.najah.edu/sites/default/files/CrashingExample.pdf" class="external autonumber" rel="nofollow">[11]</a></span>
12. <span id="cite_note-pmi-12">[↑](https://systems-analysis.info/eng/Critical_path_method_(CPM)#cite_ref-pmi_12-0) PMI. *A Guide to the Project Management Body of Knowledge (PMBOK® Guide)*. <a href="https://www.pmi.org/pmbok-guide-standards/foundational/pmbok" class="external autonumber" rel="nofollow">[12]</a></span>
13. <span id="cite_note-nasa-13">[↑](https://systems-analysis.info/eng/Critical_path_method_(CPM)#cite_ref-nasa_13-0) NASA. *Systems Engineering Handbook* (NASA/SP‑2016‑6105 Rev2). <a href="https://www.nasa.gov/connect/ebooks/nasa-systems-engineering-handbook/" class="external autonumber" rel="nofollow">[13]</a></span>
