What Is the Critical Path?
The critical path is the sequence of dependency-linked tasks with zero float (slack). Float is the amount of time a task can be delayed without pushing back the project end date. Tasks on the critical path have no float: if any of them slips, the project completion date slips by the same amount. Consider a project with two parallel work streams converging at a final milestone:How the Gantt Calculates It
Critical path analysis requires dependency links to be defined between tasks. The Gantt evaluates all dependency chains and identifies the longest path from the earliest start to the latest finish across the entire task set. Tasks on this path receive a distinct visual highlight. The calculation is deterministic: given the same dependency structure and task durations, the critical path is always the same. It cannot be manually overridden or customized — it is a mathematical property of the schedule.Critical path highlighting only works when dependency links are configured via the
Dependency Role parameter. Without dependencies, no chain exists to analyze, and no tasks are highlighted.Enabling Critical Path Highlighting
Critical path highlighting is toggled from the Gantt toolbar using the critical path toggle button. When enabled, tasks on the critical path are visually marked with a distinct color (red by default), making them immediately identifiable against non-critical tasks. The toggle can be activated and deactivated during a session without reloading data. The critical path is recalculated dynamically as you make changes — if you drag a task and the critical path shifts, the highlighting updates immediately.How Critical Path Selection Works
A common question is how the Gantt selects which tasks are on the critical path when multiple paths have similar lengths. The critical path always displays on the final scheduled task that determines the project end date, and traces backward through the dependency structure. The selection is based purely on the dependency graph and task durations:| Factor | Effect on critical path |
|---|---|
| Longer task duration | More likely to be on the critical path |
| More sequential dependencies | Longer chain, more likely critical |
| Parallel paths | Only the longest parallel branch is critical |
| Finish-to-Finish dependencies | Both tasks may be critical if the FF link is the binding constraint |
Practical Implications
Understanding the critical path helps with several project management decisions:- Risk management — Tasks on the critical path carry the highest schedule risk. Assign your most reliable resources to them and monitor them closely.
- Resource allocation — When resources are limited, prioritize critical path tasks over tasks with float.
- Schedule compression — To shorten the project duration, you must shorten the critical path. Adding resources to non-critical tasks does not help.
- What-if analysis — Toggle critical path highlighting on, then experiment with moving tasks or changing durations to see how the critical path shifts.
Interaction with Other Features
Critical path analysis interacts with several other Gantt capabilities:- Working calendars — When calendars are enabled, task durations account for non-working days, which may change which path is longest
- Baselines — You can compare the current critical path against a baseline to see how the critical path has shifted over time
- Presentation modes — Tasks with the
Derived Schedulepresentation mode derive their dates from children. Their position on the critical path depends on their children’s dates
Related Topics
- Auto-Scheduling and Dependency Propagation — How dependencies drive date recalculation
- Date Range Conflict Detection and Resolution — Detecting parent-child date violations
- Baselines and Schedule Comparison — Comparing current and historical schedules
Sources
Sources
Support TicketsSource Code
prod-gantt-src/com.nextedy.polarion.gantt/src/com/nextedy/polarion/gantt/widget/GanttWidgetConfig.javaprod-gantt-src/com.nextedy.polarion.gantt.client/src/js/commands.jsprod-gantt-src/com.nextedy.polarion.gantt.client/src/js/main.jsprod-gantt-src/com.nextedy.polarion.gantt.client/src/js/gantt.jsprod-gantt-src/com.nextedy.polarion.gantt.client/src/js/config.js