How to Plan a Construction Schedule with FS, SS and FF Dependencies
October 25, 2026
Plan Smarter. Execute Faster.
Interactive Project Management Tool, real-time collaboration.
⭐ 4.8 Rating • Trusted by modern teams worldwide
A construction schedule is only as good as its logic. You can list every task, assign every crew, and still end up with a plan that falls apart the first time the weather slips or a delivery arrives late. The reason is usually the same: the tasks were listed, but how they depend on each other was never spelled out.
This guide walks through the three dependency types that cover most field work — finish-to-start, start-to-start and finish-to-finish — plus lag and lead time, a step-by-step way to build your schedule, and the mistakes that most often quietly stretch a timeline.
What a task dependency actually is
A dependency is a rule that says how one task relates to another. The task that comes first is the predecessor; the one that depends on it is the successor. In a Gantt chart, dependencies show up as links between bars, and when one task moves, everything linked to it moves with it.
That last part is the whole point. Without dependencies, a Gantt chart is a picture of dates. With them, it becomes a model of how the job really flows, so a change on Tuesday shows you what it does to the handover date.
Finish-to-start (FS): the default for a reason
Finish-to-start means the successor cannot begin until the predecessor is done. It is the most common relationship in construction because so much work physically requires a finished product from the trade before it.
- Foundation pour finishes, then framing starts.
- Rough-in electrical is inspected and signed off, then insulation and drywall go up.
- Drywall finishes, then painting begins.
When you are unsure which link to use, ask: does the next task need the previous one completely finished? If yes, use FS. It is also the safest choice, because it never lets work start before its inputs exist.
Start-to-start (SS): overlapping work that needs only a head start
Start-to-start means the successor can begin once the predecessor has begun — usually after a short delay. It fits work that moves through a building or site in sections, where the second crew needs room to work but not the whole job complete.
- Trenching starts, and pipe laying starts a day later behind it.
- Framing starts on level one, and rough-in plumbing starts on that level shortly after.
- Demolition begins in one wing, and debris haul-off starts the same morning.
SS links are how you compress a schedule honestly. Instead of making crews wait in line, you let them overlap where the site physically allows it. The key word is allows: an SS link that ignores real access, space or safety constraints is wishful thinking drawn as a bar.
Finish-to-finish (FF): tasks that must wrap up together
Finish-to-finish means the successor cannot finish until the predecessor finishes. It does not say when the successor starts — only that it can't be declared done ahead of the task it follows.
- Pipe laying finishes, and backfill finishes after it, since the last section can only be covered once it is in.
- Installation of fixtures finishes, and the punch-list walkthrough of that area finishes after it.
- Final wiring finishes, and the testing of those circuits finishes after it.
FF pairs naturally with SS. An SS link lets the second task start early; an FF link keeps it from finishing before the first one does. Using both on the same pair of tasks is a common, sensible way to model overlapping work without letting the schedule claim something the site can't deliver.
A quick word on start-to-finish
There is a fourth type, start-to-finish, where the successor cannot finish until the predecessor starts. It is rare in building work and often confusing to read on a chart. If you find yourself reaching for it, check whether a finish-to-start link to a milestone would say the same thing more clearly.
Lag and lead: adding real-world waiting time
Dependencies tell you the order. Lag and lead tell you the gap.
- Lag is a required wait between tasks. Concrete needs time to cure before the next load goes on it, so a finish-to-start link with a lag of several days models that wait without inventing a fake task.
- Lead is the opposite: the successor is allowed to begin before the predecessor ends. Landscaping prep might start a few days before final grading completes.
Use the real curing times, lead times and inspection windows from your specs and suppliers rather than a round number that feels about right. Lag is also easy to forget about later, so give the reason in the task notes.
How to build the schedule, step by step
1. Break the job into phases, then tasks
Start with the big phases — site preparation, foundation, structure, envelope, systems, finishes, closeout. Under each phase, list the tasks that crews actually perform. If a task needs several people or has distinct steps, break it into subtasks so progress is measurable.
2. Estimate durations from experience and quotes
Use your own past jobs, subcontractor quotes and manufacturer lead times. Leave out padding at the task level; it is better to account for uncertainty openly, as a risk item or a contingency milestone, than to bury it in many small durations.
3. Add the dependencies
Go through each task and ask three questions: What must be finished before this can start? What must be underway? What must be finished before this can be called done? The answers map directly to FS, SS and FF links. Start with FS everywhere, then loosen specific links to SS plus FF where work genuinely overlaps.
4. Mark milestones
Milestones are zero-duration markers for the moments that matter: permit approved, structure topped out, building dried in, final inspection passed, owner handover. They give everyone a shared set of checkpoints and make it obvious which tasks lead up to each one.
5. Assign people
Every task should have an owner. Assigning crews or individuals also exposes conflicts early — when two overlapping tasks rely on the same team, the SS link you drew may not be realistic.
6. Add the risk and budget layer
A schedule that ignores money and risk is only half a plan. Note the tasks most likely to slip (long-lead materials, weather-sensitive work, inspections) and track planned versus actual cost against the phases they belong to, so a delay and its cost are visible in the same place.
7. Review it on site, not just at the desk
Walk the plan with your foremen and subs. They will spot the missing link or the unrealistic overlap faster than anyone staring at a chart. Then update it regularly; a schedule that was last touched three weeks ago is a history document, not a plan.
Common dependency mistakes
- Linking everything finish-to-start. It is safe but can make the timeline longer than the job needs to be, because it ignores work that can truly overlap.
- Using SS without FF. The successor can then appear to finish before the work it depends on, which no crew can actually do.
- Hard-coding dates instead of links. Typing a start date into every task means a single delay will not flow through the plan.
- Hiding waiting time in task durations. If curing, drying or inspection is part of a 10-day task, nobody can tell which days are work and which are waiting. Use lag instead.
- Forgetting external dependencies. Permits, deliveries and owner decisions are not crew tasks, but they gate crew tasks. Give them their own entries or milestones.
- Never updating the plan. The value of dependencies only appears when you adjust actual dates and watch the effects.
Keeping the schedule useful in the field
The best schedule in the world doesn't help if it lives only on an office computer. Field teams need to see what is due today, what is coming next, and who is responsible, on the device they already have in their pocket. A mobile-first workflow — a Gantt view for the big picture and a short daily task list with reminders for the small picture — keeps the plan close to the work.
A quick checklist before you share the schedule
- Every task has a duration, an owner and at least one predecessor (except the first).
- FS links are the default; SS and FF links are used only where the site allows overlap.
- Waiting times such as curing and inspection are modeled as lag, with a note about why.
- Key milestones are marked and linked.
- Long-lead items and weather-sensitive work are flagged as risks.
- The plan has a named person responsible for keeping it current.
Plan it on your iPhone or iPad
Full disclosure: we make GanttMaster, an iPhone and iPad app with FS/SS/FF dependencies, milestones, tasks and subtasks, a Today view with reminders, team assignment, risk and budget tracking, and no per-user pricing — it is free to download with a 1-week trial, then $5.99/month or $34.99/year.
Download on the App Store