Critical Path Method (CPM): How to Calculate and Apply It in Real Projects
Ganty Team
"I know what the critical path is, but I cannot actually calculate it." This is a surprisingly common admission from project managers. The Critical Path Method (CPM) is a cornerstone technique of project management, yet most practitioners never learn it systematically. This article walks through the definition, calculation steps, and real-world applications of the critical path with a complete worked example.
What Is the Critical Path?
The critical path is the longest chain of dependent tasks from project start to finish. Because tasks on this path have zero slack, any delay immediately delays the entire project completion date by the same amount. Tasks not on the critical path have "float" -- a buffer of days during which they can slip without impacting the end date.
Understanding this distinction is fundamental to project prioritization. For Gantt chart fundamentals, see our Gantt chart basics guide.
How to Calculate the Critical Path: A 4-Step Method
Step 1: List Tasks and Dependencies
Before you can calculate the critical path, you need a complete list of tasks, durations, and dependencies. Start with a Work Breakdown Structure, then organize the data like this:
- A: Requirements (3 days, no predecessor)
- B: System design (5 days, after A)
- C: UI design (4 days, after A)
- D: Frontend development (6 days, after B and C)
- E: Backend development (7 days, after B)
- F: Integration testing (3 days, after D and E)
Step 2: Forward Pass (Earliest Times)
Starting from day 0, calculate each task's Earliest Start (ES) and Earliest Finish (EF):
- ES = maximum EF of all predecessors
- EF = ES + duration
Applying this: A (ES=0, EF=3), B (ES=3, EF=8), C (ES=3, EF=7), D (ES=8, EF=14, using B since it finishes later than C), E (ES=8, EF=15), F (ES=15, EF=18, using E). Project earliest finish is day 18.
Step 3: Backward Pass (Latest Times)
Working backward from the project end date, calculate each task's Latest Start (LS) and Latest Finish (LF):
- LF = minimum LS of all successors
- LS = LF - duration
F (LF=18, LS=15), E (LF=15, LS=8), D (LF=15, LS=9), B (LF=min(9, 8)=8, LS=3), C (LF=9, LS=5), A (LF=min(3, 5)=3, LS=0).
Step 4: Identify Zero-Float Tasks
Calculate Total Float (TF = LS - ES) for each task. Tasks with TF=0 form the critical path:
- A: TF=0 (critical)
- B: TF=0 (critical)
- C: TF=2 (2 days of float)
- D: TF=1 (1 day of float)
- E: TF=0 (critical)
- F: TF=0 (critical)
The critical path is A to B to E to F, totaling 18 days. C has 2 days and D has 1 day of float -- useful information for resource reallocation.
Three Techniques to Compress the Critical Path
1. Crashing (Adding Resources)
Add people or budget to critical path tasks to shorten their duration. The key rule: choose the task with the lowest cost per day saved. Crashing non-critical tasks does not shorten the project by a single day.
2. Fast Tracking (Parallelization)
Overlap tasks that were originally sequential. Instead of "start coding after design completes," begin coding when design is 70 percent complete. This carries rework risk, so assess impact first. For more on dependency design, see our task dependency guide.
3. Scope Reduction
Remove lower-priority features so there are fewer tasks on the critical path. This aligns well with MVP thinking and is especially effective when deadlines are non-negotiable.
Three Operational Tips
- Recalculate weekly: The critical path can shift as tasks complete or dependencies change. Update it at least once a week.
- Monitor float consumption: When float is exhausted on a non-critical path, it becomes critical. Treat tasks with one day or less of remaining float as "near-critical."
- Buffer at the end, not in every task: Consolidating buffer at the end of the critical path (CCPM-style) is more efficient than padding individual tasks.
A Common Mistake: Wrong Dependencies, Wrong Critical Path
The calculation itself is mechanical, but garbage in means garbage out. Common errors include serializing tasks that could run in parallel and forgetting to model external deliverables as dependencies. For delay root causes, see project delay causes and solutions.
Automatic Critical Path in Ganty
Ganty's Gantt chart automatically identifies and highlights the critical path the moment you set tasks and dependencies. Change a duration, and the critical path recalculates in real time -- no manual math, no errors. You can also filter the chart to show critical path tasks only during status meetings. Start with the free plan today.
Related Articles
Gantt Chart Basics: Everything You Need to Know to Get Started
A comprehensive beginner's guide to Gantt charts — what they are, how to read them, and how to use them to manage any project.
2026-03-18How to Make a Gantt Chart: A Complete Step-by-Step Guide
A clear, practical guide to creating Gantt charts from scratch in five steps, covering task breakdown, scheduling, and ongoing management.
2026-03-19Project Management for Small Businesses: From Tool Selection to Team Adoption
A practical guide for small businesses and startups to select, implement, and sustain a project management system without enterprise budgets.