The 4 Task Dependency Types Explained (FS, SS, FF, SF)
Short answer: a task dependency defines how two tasks relate in time. There are four types — Finish-to-Start (FS), Start-to-Start (SS), Finish-to-Finish (FF), and Start-to-Finish (SF). Finish-to-Start is by far the most common: the second task cannot start until the first finishes. The other three handle overlapping and parallel work.
What is a task dependency?
A dependency is a logical link between two tasks that controls their sequence. The first task is the predecessor; the second is the successor. Dependencies are what make a schedule recalculate itself: move the predecessor, and the successor moves with it. Without them, a Gantt chart is just a row of bars that never react to change.
Each dependency type is defined by which ends of the two tasks are tied together — the start or the finish of the predecessor, linked to the start or finish of the successor.
The four dependency types
1. Finish-to-Start (FS)
The successor cannot start until the predecessor finishes. This is the default and the one you will use most. Example: you cannot “paint the wall” until you “plaster the wall.”
2. Start-to-Start (SS)
The successor cannot start until the predecessor starts. Useful for work that runs in parallel once something kicks off. Example: “pour concrete” and “level concrete” — leveling starts shortly after pouring starts, not after it finishes.
3. Finish-to-Finish (FF)
The successor cannot finish until the predecessor finishes; the two tasks end together. Example: “writing” and “editing” a report — editing cannot wrap up until writing wraps up.
4. Start-to-Finish (SF)
The successor cannot finish until the predecessor starts. Rare, and mostly used for shift handovers. Example: the “night shift” cannot finish until the “day shift” starts.
Lead and lag time
Dependencies can carry lag (a delay) or lead (an overlap). A Finish-to-Start link with two days of lag means the successor starts two days after the predecessor finishes — handy for “let the paint dry.” A lead is negative lag: the successor starts before the predecessor fully finishes, compressing the schedule.
Which dependency type should you use?
Reach for Finish-to-Start unless you have a specific reason not to — it models the vast majority of real work. Use Start-to-Start to run tasks in parallel, Finish-to-Finish to make tasks land together, and Start-to-Finish only for the rare handover case. Overusing the exotic types makes a schedule hard to read; the best plans are mostly FS with a few SS links where work genuinely overlaps.
LoopGantt supports all four types with lead and lag, and recalculates the whole schedule — including the critical path — the moment you change a task.
Frequently asked questions
What is the most common dependency type?
Finish-to-Start (FS). In most projects the large majority of links are FS — one task simply has to finish before the next can begin.
What is the difference between lead and lag?
Lag adds a delay between linked tasks; lead creates an overlap. Lag pushes the successor later; lead pulls it earlier. Both are expressed in days (or hours) on the dependency itself.
Do all project tools support all four types?
No. Simple tools and spreadsheets often support only Finish-to-Start. Professional schedulers like Microsoft Project, Primavera, and LoopGantt support all four, which matters when work overlaps.
Build a schedule that reacts to change
Stop manually re-dating tasks every time something slips. Create a free Gantt chart with real dependencies — describe your project and LoopGantt builds the links for you, then keeps the whole timeline in sync.