What Is the Critical Path? Definition and a Gantt Chart Example

The critical path is the longest chain of dependent tasks and sets the earliest finish date. Learn to find it with a worked Gantt chart example.

GanttFather
Updated October 18, 2026 21 min read
View as Markdown
The short answer

The critical path is the longest chain of dependent tasks and sets the earliest finish date. Learn to find it with a worked Gantt chart example.

The critical path is the longest chain of dependent tasks in a project, and its length sets the earliest date the project can finish. A delay to any task on that chain delays the whole project by the same amount. Tasks that are not on it have float (also called slack): time they can slip without moving the finish date.

This guide works through a small website launch step by step, from the task list to a Gantt chart, so you can check every number yourself.

Critical path, critical task and float

  • Critical path: the chain of dependent tasks with the greatest total duration from start to finish. Its length is the shortest time in which the project can be done.
  • Critical task: any task on that chain. Its float is zero.
  • Float (slack): how long a task can be delayed without delaying the project finish.
  • Near-critical task: a task with only a little float. A small slip can make it critical.

The critical path can change: a slip on a near-critical task, a new dependency or a new estimate can make a different chain the longest.

How do you find the critical path?

  1. List the tasks needed to reach the finish.
  2. Estimate a duration for each task, in working days.
  3. Add the dependencies: what each task has to wait for.
  4. Forward pass: from the start, calculate each task’s earliest start (ES) and earliest finish (EF).
  5. Backward pass: from the finish, calculate each task’s latest start (LS) and latest finish (LF) that still keep the finish date.
  6. Float: subtract LS − ES for each task. Tasks with zero float are critical, and together they form the critical path.

The example below uses finish-to-start links only: a task starts when its predecessors finish. Start-to-start, finish-to-finish and start-to-finish links, and lag (a wait added to a link), change the arithmetic but not the idea. The dependency types guide explains each one.

Worked example: launching a small website

A small team is launching a website for a neighborhood bakery. Here are the seven tasks, how long each takes in working days, and what each one waits for.

TaskDurationPredecessors
A · Plan the site2 daysNone
B · Write the content6 daysA
C · Design the pages4 daysA
D · Build the pages5 daysC
E · Set up hosting and domain2 daysA
F · Load content and test3 daysB, D, E
G · Launch1 dayF

Days are counted like a ruler, from 0 at the start of the project. A task that runs from 2 to 8 starts when day 2 ends and finishes at the end of day 8, so it lasts 6 days.

Forward pass: earliest start and finish

Go from the first task to the last. A task’s earliest finish is its earliest start plus its duration. A task can start only when all its predecessors are done, so its earliest start is the largest earliest finish among them.

  • A runs from 0 to 2.
  • B, C and E wait only for A, so they can all start at 2. B finishes at 8, C at 6 and E at 4.
  • D waits for C, so it runs from 6 to 11.
  • F waits for B (8), D (11) and E (4). It has to wait for the last of them, so it runs from 11 to 14.
  • G runs from 14 to 15.

The project needs 15 working days, or three working weeks.

Backward pass: latest start and finish

Now go from the last task back to the first, keeping the finish at 15. A task’s latest start is its latest finish minus its duration. A task must be done before any of its successors has to start, so its latest finish is the smallest latest start among them.

  • G must finish by 15, so it must start by 14.
  • F must finish by 14, so it must start by 11.
  • B, D and E have one successor, F, so each must finish by 11. D must start by 6, B by 5 and E by 9.
  • C must finish by 6, when D has to start, so it must start by 2.
  • A comes before B (5), C (2) and E (9). It must finish by 2, the smallest of the three, so it must start by 0.

Float and the critical path

Float is the gap between the two passes: latest start minus earliest start. Latest finish minus earliest finish gives the same number.

TaskESEFLSLFFloatCritical
A · Plan the site02020Yes
B · Write the content285113No
C · Design the pages26260Yes
D · Build the pages6116110Yes
E · Set up hosting and domain249117No
F · Load content and test111411140Yes
G · Launch141514150Yes

The tasks with zero float form the critical path: A → C → D → F → G. Their durations add up to 2 + 4 + 5 + 3 + 1 = 15 days, the length of the project. The other chains are shorter: A → B → F → G takes 12 days and A → E → F → G takes 8, which is where the 3 and 7 days of float come from.

The critical path on a Gantt chart

On a Gantt chart, the critical path is the chain of bars that runs from start to finish without a gap: each critical bar starts exactly where the one before it ends.

0123456789101112131415A · Plan the siteB · Write the contentfloat 3 dC · Design the pagesD · Build the pagesE · Set up hosting and domainfloat 7 dF · Load content and testG · LaunchCritical taskTask with floatFloat
The website launch on a scale of 0 to 15 working days. Red bars are critical and form one unbroken chain. Blue bars have float, drawn as the pale extension up to their latest finish.

A long pale extension means a task has room to slip. A red bar has none: an extra day on it pushes every bar after it, and the launch, to the right.

What happens when a task slips?

A critical task slips by 2 days. Design (C) takes 6 days instead of 4 and finishes at 8. Build (D) can now start only at 8 and finishes at 13, loading and testing (F) runs from 13 to 16, and the launch finishes at 17 instead of 15. The project moves by exactly the 2 days that design slipped.

A task with float slips within its float. Writing (B) takes 8 days instead of 6 and finishes at 10. Loading and testing (F) still has to wait for the build, which finishes at 11, so nothing else moves and the launch still finishes at 15. B has used 2 of its 3 days of float and has 1 left.

Float is a buffer, not spare time. If writing slipped by 4 days instead, it would use all 3 days of float and push the launch 1 day, to 16. The critical path would change too: A → B → F → G would become the longest chain.

ChangeLaunch finishes atFinish moves by
None (the plan above)150 days
Design (C) takes 2 days longer172 days
Writing (B) takes 2 days longer150 days
Writing (B) takes 4 days longer161 day

This is what the critical path is for: it tells you which delays move the finish date and which ones the plan can absorb.

Total float, free float and negative float

  • Total float is how long a task can slip without delaying the project finish. It is the number in the table above.
  • Free float is how long a task can slip without delaying the earliest start of the next task. In the example the two are the same, because B and E each feed only F. When several tasks with float sit on the same chain, the float one task uses is taken from the tasks after it.
  • Negative float means the plan cannot meet a required date under its current assumptions. It is a warning to change the scope, the sequence, the durations or the date, not time you can use.

The float and slack guide covers how to read and protect float in more detail.

Common mistakes when using the critical path

  • Missing or illogical dependencies. Every task except the first needs a predecessor, and every task except the last needs a successor. Gaps hide the real longest chain.
  • Linking summary tasks as if they were work. Link the tasks inside them instead.
  • Durations that are really wished-for dates. The calculation is only as good as the estimates.
  • Ignoring calendars. Weekends, holidays and part-time people change the real dates.
  • Ignoring people’s capacity. If the same person has to do two tasks at once, the real schedule is longer than the calculated one.
  • Treating “critical” as “important”. Zero float is arithmetic; priority is a business choice. A high-priority task can have float, and a technical task nobody watches can be critical.
  • Calculating it once. Update the remaining durations as work progresses and review the path at your normal rhythm: weekly on a project of several months, daily during a launch.

Critical path method vs PERT

Use the critical path method (CPM) when one duration per task is a fair estimate and the order of the work is the main question. Use PERT-style three-point estimates (optimistic, most likely and pessimistic) when the uncertainty of the durations needs explicit treatment. Many teams combine them: three-point estimates for the uncertain tasks, then a dependency network to find the path.

QuestionCPMPERT-style estimation
Main focusThe order of dependent workUncertainty in durations
Duration inputOne estimate per taskOptimistic, most likely, pessimistic
Main outputCritical and near-critical pathsExpected duration and its spread
Main riskFalse precision from weak logicFalse confidence in guessed ranges

The PERT chart vs Gantt chart guide compares the two diagrams.

How does GanttFather show the critical path?

In GanttFather, the critical path is a toggle in the Gantt and List views. Switch it on to see which tasks set the finish date. Tasks can be linked finish-to-start, start-to-start, finish-to-finish or start-to-finish, with lag, so you can model the example above, or your own plan, the way the work really flows.

GanttFather has no baselines, so it does not compare the current plan with a saved original. It is free for one project you own, with 2 editors and unlimited free viewers.

Map your own critical path in GanttFather

Frequently asked questions

Is the critical path always the longest path?

Yes, measured in time rather than in number of tasks: it is the chain with the greatest total duration through the dependency network. Fixed dates and calendars can affect the result, so check what your plan counts as working time.

Can a project have more than one critical path?

Yes. Two or more chains can tie for the longest duration. A delay on any of them moves the finish, so the plan has less room to absorb slips.

Does the critical path account for limited resources?

Not by itself. The classic calculation uses durations and dependencies only, and assumes every task can start as soon as its predecessors finish. When the same people or equipment are needed for two tasks at the same time, you need resource leveling or another capacity check, and the result can be a longer schedule.

What is the difference between the critical path and the critical chain?

The critical chain method, introduced by Eliyahu Goldratt in 1997, starts from the critical path but also accounts for limited resources, and it moves the safety margin out of individual tasks into shared buffers at the end of the chain. The critical path method assumes the resources are available and leaves float wherever the arithmetic puts it.

Who developed the critical path method?

James E. Kelley Jr. of Remington Rand and Morgan R. Walker of DuPont developed it in the late 1950s. PERT was developed separately, for the U.S. Navy, to schedule research and development work with uncertain durations.

Sources

Want to skip the reading?

GanttFather is free forever — no card, no trial.

Start free
Next up
GanttFather
The Don of Project Management

Every feature included — Gantt, Kanban, dependencies, critical path, real-time sync, Excel and AI agents. Free tier includes 1 project you own, 2 editor seats, and unlimited viewers and guests.

Start free