What is a critical path? A beginner's guide with a worked example
The critical path is the chain of tasks that sets your project's finish date. Here's how to find it by hand with a small example, and what to do once you have.
Every project has a handful of tasks where a delay hurts and a lot of tasks where it doesn’t. The trouble is that from a plain task list, they all look the same. The critical path is how you tell them apart.
It’s the longest chain of tasks that depend on each other, from the start of the project to the end. Its length is the shortest time the project can take. Slip anything on it and the finish date moves. Slip anything off it, within limits, and nothing happens.
A small example
Say you’re launching a simple website. Five tasks:
| Task | Duration | Needs to finish first |
|---|---|---|
| Write copy | 3 days | nothing |
| Design pages | 4 days | nothing |
| Build site | 5 days | Write copy, Design pages |
| Set up hosting | 1 day | nothing |
| Test and launch | 2 days | Build site, Set up hosting |
Writing the copy and designing the pages can happen at the same time, and so can the hosting setup. Building can’t start until both copy and design are done. Testing can’t start until the build and the hosting are both done.
Finding the path
List every route from start to finish and add up the days.
- Write copy, Build site, Test and launch: 3 + 5 + 2 = 10 days
- Design pages, Build site, Test and launch: 4 + 5 + 2 = 11 days
- Set up hosting, Test and launch: 1 + 2 = 3 days
The longest route is 11 days, so that’s the critical path: Design pages, Build site, Test and launch. The project can’t finish in less than 11 days, no matter how fast the hosting gets set up.
Slack
Tasks off the critical path have slack, sometimes called float. It’s how many days a task can run late before it starts to push the finish date.
Writing the copy takes 3 days, but the build doesn’t start until day 5 anyway, because design takes 4. So the copy can run one day over and nobody downstream notices. One day of slack.
Hosting is the extreme case. It takes a day, but testing can’t start until the build finishes at the end of day 9. Hosting has eight days of slack. Setting it up on day 1 or day 8 makes no difference to the launch date.
Critical tasks have zero slack. That’s the definition.
What to do with it
Once you know the critical path, a few things get easier.
If you need to finish sooner, shortening the copy writing or the hosting does nothing. Only shortening Design, Build or Test helps. Adding a second developer to the build might save two days. Adding a second copywriter saves none.
If something slips, you can answer “does this matter?” straight away. A two-day delay in hosting is fine. A two-day delay in design moves the launch by two days.
And the path can change. If the copy ran four days over, it would become the longest route and the critical path would switch to it. This is why the path is worth rechecking whenever a date moves, not just at kickoff.
Doing it without the arithmetic
Five tasks is easy by hand. Fifty tasks with lags and overlapping dependencies is not. GanttPM’s Gantt view calculates the critical path for you and highlights it, shows slack on every other task, and recalculates when a date changes. You can try it with your own project and see which bars are actually holding the date.