How to Find the Critical Path
Before You Start
Finding the critical path requires two inputs: a complete list of tasks with estimated durations and the dependency relationships between them. If either is missing, the analysis will be incomplete. Build these from your work breakdown structure before starting the steps below.
Most project management tools (ClickUp, MS Project, Primavera) calculate the critical path automatically when you enter tasks and dependencies. The steps below explain the manual calculation so you understand what the tool is doing and can verify its output.
How to Find the Critical Path in 8 Steps
List All Tasks and Durations
Start with your WBS. List every task with its estimated duration in consistent units (days or hours). Assign a unique ID to each task. Do not include milestones in this list (they have zero duration and are added as markers after the path is calculated).
Define Dependencies
For each task, identify its predecessors: which tasks must finish before this one can start. Record dependencies as finish to start by default. Note any start to start or finish to finish relationships. The result is a dependency table with columns for Task ID, Task Name, Duration, and Predecessors.
Draw the Network Diagram
Arrange tasks in sequence from left to right based on their dependencies. Each task is a node (box) with its ID, name, and duration. Arrows connect predecessors to successors. Tasks with no predecessors start at the left. Tasks with no successors end at the right. Parallel tasks (no dependency between them) are drawn on separate rows.
Run the Forward Pass
Starting from the left, calculate the Earliest Start (ES) and Earliest Finish (EF) for each task. The first task's ES is 0 (or Day 1). Its EF is ES plus duration. For subsequent tasks, ES equals the latest EF among all predecessors. EF equals ES plus duration. When two paths merge at a task, take the later (larger) EF. Continue until you reach the final task. Its EF is the earliest possible project completion date.
Run the Backward Pass
Starting from the right (the final task's EF becomes its LF), calculate the Latest Finish (LF) and Latest Start (LS) for each task working backward. LS equals LF minus duration. For tasks that feed into multiple successors, LF equals the earliest LS among all successors. Continue until you reach the first task.
Calculate Float for Each Task
Total Float = LS minus ES (or equivalently LF minus EF). Tasks with zero float are on the critical path. They cannot be delayed without delaying the project. Tasks with positive float have schedule flexibility. Record the float for every task in the dependency table.
Identify and Highlight the Critical Path
Trace the sequence of zero float tasks from project start to project end. This is the critical path: the longest chain of dependent tasks that determines the project's minimum duration. There may be multiple critical paths if two or more chains have the same total duration. Highlight all critical paths in your network diagram and Gantt chart.
Monitor and Recalculate During Execution
The critical path is not static. Recalculate as tasks complete and actual durations replace estimates. If a non critical task consumes all its float, it becomes critical. If a critical task finishes early, a different path may become critical. Update the analysis at every major milestone or whenever significant schedule changes occur.