Dependencies
Dependencies define relationships between tasks, ensuring proper sequencing and automatic date calculations.
Overview
Dependencies (also called links or predecessors) connect tasks to show that one task depends on another. When you move a predecessor task, dependent tasks automatically adjust their dates.
Dependency Types
The Gantt chart supports four dependency types:
| Type | Name | Description |
|---|---|---|
| FS | Finish-to-Start | Task B starts when Task A finishes |
| SS | Start-to-Start | Task B starts when Task A starts |
| FF | Finish-to-Finish | Task B finishes when Task A finishes |
| SF | Start-to-Finish | Task B finishes when Task A starts |
Finish-to-Start (FS)
The most common dependency type. The successor task cannot start until the predecessor finishes.
Example: "Install drywall" cannot start until "Frame walls" is complete.
Start-to-Start (SS)
Both tasks start at the same time (or with a lag).
Example: "Pour foundation" and "Inspect foundation" start together.
Finish-to-Finish (FF)
Both tasks finish at the same time (or with a lag).
Example: "Final walkthrough" finishes when "Punch list" finishes.
Start-to-Finish (SF)
The successor task cannot finish until the predecessor starts. This is the least common type.
Example: A shift handover where the new shift cannot end until the old shift starts.
Creating Dependencies
Drag and Drop Method
- Hover over a task to see connector points (small circles on the task bar)
- Click and drag from one task's connector to another task
- Release to create the dependency
- A line appears connecting the two tasks
Using the Predecessor Column
You can also type dependencies directly in the Predecessor column:
- Enable the Predecessor column (click column menu → enable Predecessor)
- Double-click the Predecessor cell for the task you want to link
- Type the predecessor using the format described below
- Press Enter to save
Default Type
New dependencies default to Finish-to-Start (FS). You can change the type after creation.
Predecessor Notation
The Predecessor column uses a compact notation to define dependencies. This allows you to quickly enter dependencies by typing rather than dragging.
Basic Format
[TaskID][Type][Lag]
| Component | Description | Required |
|---|---|---|
| TaskID | The WBS number or row number of the predecessor task | Yes |
| Type | Dependency type: FS, SS, FF, or SF | No (defaults to FS) |
| Lag | Days of delay: +N for lag, -N for lead | No (defaults to 0) |
Examples
| Entry | Meaning |
|---|---|
3 | Depends on Task 3, Finish-to-Start, no lag |
3FS | Depends on Task 3, Finish-to-Start, no lag |
5SS | Depends on Task 5, Start-to-Start, no lag |
2FF | Depends on Task 2, Finish-to-Finish, no lag |
4SF | Depends on Task 4, Start-to-Finish, no lag |
3FS+2 | Depends on Task 3, Finish-to-Start, with 2-day lag |
5SS+3 | Depends on Task 5, Start-to-Start, with 3-day lag |
2FS-1 | Depends on Task 2, Finish-to-Start, with 1-day lead (overlap) |
7FF+5 | Depends on Task 7, Finish-to-Finish, with 5-day lag |
Multiple Predecessors
To link a task to multiple predecessors, separate entries with commas:
| Entry | Meaning |
|---|---|
3,5 | Depends on Task 3 AND Task 5 (both FS) |
3FS,5FS | Same as above, explicit notation |
2FS+1,4SS | Depends on Task 2 (FS, 1-day lag) AND Task 4 (SS, no lag) |
1,3,5 | Depends on Tasks 1, 3, and 5 (all FS, no lag) |
Real-World Examples
Scenario 1: Simple sequence
Task 2 starts after Task 1 finishes. Task 3 starts after Task 2 finishes.
| Task | Name | Predecessor |
|---|---|---|
| 1 | Framing | (none) |
| 2 | Electrical | 1 |
| 3 | Drywall | 2 |
Scenario 2: With curing/drying time
Task 2 starts 3 business days after Task 1 finishes (allowing concrete to cure).
| Task | Name | Predecessor |
|---|---|---|
| 1 | Pour concrete | (none) |
| 2 | Set posts | 1FS+3 |
Scenario 3: Parallel work after a predecessor
Tasks 2, 3, and 4 all start after Task 1 finishes, but can run in parallel.
| Task | Name | Predecessor |
|---|---|---|
| 1 | Rough framing | (none) |
| 2 | Electrical | 1 |
| 3 | Plumbing | 1 |
| 4 | HVAC | 1 |
Scenario 4: Task depends on multiple predecessors
Task 3 cannot start until BOTH Task 1 AND Task 2 are complete.
| Task | Name | Predecessor |
|---|---|---|
| 1 | Electrical | (none) |
| 2 | Plumbing | (none) |
| 3 | Inspection | 1,2 |
Scenario 5: Overlapping tasks with lead time
Task 2 starts 1 day before Task 1 finishes (overlap for efficiency).
| Task | Name | Predecessor |
|---|---|---|
| 1 | Install cabinets | (none) |
| 2 | Install countertops | 1FS-1 |
Scenario 6: Tasks that must finish together (FF)
Task 2 finishes when Task 1 finishes (cleanup completes with painting).
| Task | Name | Predecessor |
|---|---|---|
| 1 | Painting interior | (none) |
| 2 | Final cleanup | 1FF |
Scenario 7: Complex dependencies
A realistic construction sequence with mixed dependency types.
| Task | Name | Predecessor |
|---|---|---|
| 1 | Foundation | (none) |
| 2 | Framing | 1FS+2 |
| 3 | Roofing | 2 |
| 4 | Electrical rough | 2 |
| 5 | Plumbing rough | 2 |
| 6 | Insulation | 4,5 |
| 7 | Drywall | 6FS+1 |
Quick Reference Card
| Want to... | Type this |
|---|---|
| Simple dependency on Task 3 | 3 |
| Finish-to-Start on Task 3 | 3FS or 3 |
| Start-to-Start on Task 5 | 5SS |
| Finish-to-Finish on Task 2 | 2FF |
| Add 2-day lag after Task 3 | 3FS+2 or 3+2 |
| Overlap with Task 4 by 1 day | 4FS-1 or 4-1 |
| Depend on Tasks 1 and 3 | 1,3 |
| Task 2 with lag, Task 5 without | 2FS+2,5 |
Editing Dependencies
Opening the Edit Dialog
- Double-click the dependency line
- The dependency editor opens
Changing the Type
- Open the dependency editor
- Select a different type from the dropdown (FS, SS, FF, SF)
- Save changes
Adding Lag Time
Lag adds a delay between dependent tasks:
- Open the dependency editor
- Enter a value in the Lag field
- Lag is measured in business days
- Save changes
Example: A Finish-to-Start dependency with 2-day lag means Task B starts 2 business days after Task A finishes.
Negative Lag (Lead Time)
You can also use negative lag to create lead time:
- -2 days lag on an FS dependency means Task B can start 2 days before Task A finishes
- Useful for overlapping tasks
Deleting Dependencies
Method 1: Click and Delete
- Click the dependency line to select it
- Press the Delete key
Method 2: Edit Dialog
- Double-click the dependency line
- Click the Delete button in the dialog
Automatic Date Calculation
How It Works
When dependencies exist:
- Moving a predecessor task recalculates dependent task dates
- Changes cascade through the entire dependency chain
- The schedule automatically updates
Business Day Calculations
Date calculations respect business days:
- Weekends are skipped
- Company holidays are skipped
- Only working days count toward lag time
Example Cascade
Task A (5 days) → Task B (3 days) → Task C (2 days)
FS FS
If you move Task A forward by 2 days:
- Task B automatically moves forward 2 days
- Task C automatically moves forward 2 days
- The entire chain shifts together
Viewing Dependencies
Dependency Lines
Dependencies appear as lines connecting tasks:
- Lines show the direction of dependency
- Arrows indicate which task depends on which
- Different line styles may indicate different dependency types
Predecessor Column
Enable the Predecessor column to see dependency information in the task list:
- Click the column menu button
- Enable Predecessor
- The column shows predecessor task IDs and dependency types
Format: TaskID[Type][Lag]
- Example:
5FSmeans "depends on Task 5, Finish-to-Start" - Example:
3SS+2means "depends on Task 3, Start-to-Start, with 2-day lag"
Common Dependency Patterns
Sequential Tasks
Tasks that must happen in order:
Parallel Tasks
Tasks that can happen simultaneously with a common predecessor:
Milestone Dependencies
Use dependencies to ensure milestones aren't reached until prerequisites complete:
Troubleshooting Dependencies
Dependencies Not Working
- Verify both tasks are in the same schedule
- Check that both tasks have valid dates
- Look for circular dependencies
Circular Dependencies
A circular dependency occurs when:
- Task A depends on Task B
- Task B depends on Task A (directly or through other tasks)
The system prevents circular dependencies. If you can't create a dependency, check for existing links that would create a circle.
Dates Not Calculating Correctly
- Check the dependency type (FS, SS, FF, SF)
- Verify lag time is correct
- Ensure holiday settings are accurate
- Check for conflicting dependencies
Can't Delete Dependency
- Make sure you're clicking the dependency line, not a task
- Try double-clicking to open the edit dialog and delete from there
- Verify you have edit permissions
Best Practices
- Use FS dependencies primarily - Finish-to-Start is the most intuitive and common
- Don't over-link - Only create dependencies where there's a real relationship
- Use lag for buffers - Add lag time to account for curing, drying, or review time
- Review the critical path - Dependencies that affect the project end date are critical
- Document unusual dependencies - If using SS, FF, or SF, note why in the task description
Related
- Gantt Chart Overview - Main Gantt chart features
- Task Management - Creating and editing tasks
- Keyboard Shortcuts - Navigate efficiently