Finish-to-Start (FS)
Finish-to-Start (FS) means the successor cannot start until the predecessor finishes. It is the default of the four dependency types and covers the large majority of real-world links.
How to read it
"OS installation starts only after the server purchase completes." The predecessor's finish connects to the successor's start. Wherever a deliverable passes from one hand to another, that is where an FS belongs. On a Gantt chart the arrow runs from the right end of the predecessor's bar to the left end of the successor's bar — if the endpoints look different, the link is not an FS. "Screen design starts after requirements are confirmed," "kickoff prep starts after the contract is signed" — any relationship where the front task's output is the back task's input is written as FS.
Why it is the default
It matches how people think, so it is easy to understand and easy to verify. Schedule-quality checks in the DCMA family recommend keeping FS at 90% or more of all links — not a universal boundary between right and wrong, but an inspection baseline. Many non-FS links do not prove the model is broken; they are a signal to walk through each one asking "can this really not be expressed as FS?" Start with FS, and reach for the other three only when FS cannot express the relationship.
Common misconceptions
The frequent mistake is turning waiting into a fake task. Register "two weeks of delivery lead time after ordering" as a two-week task and time nobody works on starts polluting progress and effort roll-ups. Short waits with an obvious reason can live on the line as lag — FS+10d. Another one: FS does not mean "starts immediately after." It is only a lower bound — the successor cannot start earlier, but its actual start may be later, depending on resources. How much further the successor can slip is read from the total float CPM computes.
In wbsgantt, assigning a predecessor links it as FS by default; you change the type only where needed.