Start-to-start lags and finish-to-finish links: a worked example
The same six activities you would find in a foundation pour, but now overlapped. Formwork starts two days after excavation begins rather than waiting for it to finish; rebar follows formwork one day later; and stripping the formwork must finish exactly when curing finishes. Total work: 21 days. Find the real elapsed duration.
| Activity | Duration (working days) | Predecessors |
|---|---|---|
| A Excavation | 6 | — |
| B Formwork | 5 | A:SS+2 |
| C Rebar | 4 | B:SS+1 |
| D Concrete pour | 1 | B, C |
| E Curing | 3 | D |
| F Strip formwork | 2 | E:FF |
Start-to-start with a lag (SS+n)
B:SS+2 means B can start two working days after A starts — not after A finishes. This is how trades follow each other along a site: the formwork crew moves in behind the excavator rather than waiting for the last metre to be dug.
Finish-to-finish (FF)
F:FF means F must finish when E finishes. The link drives the successor's FINISH, and its start is then derived backwards from its duration. Stripping formwork is timed to complete as curing completes — start it too early and the concrete is not ready.
Why lags are counted in working time
A two-day lag is two working days on the successor's calendar, not two calendar days. On a Monday-to-Friday calendar a lag that starts on a Thursday lands on the following Monday. Calculators that count raw calendar days get this wrong every weekend.
The answer
21 working days of work compress into 11 working days elapsed: Monday 7 September to Monday 21 September 2026. And every single activity is critical — the network has no float anywhere. That is the hidden cost of aggressive overlapping: you buy ten days of schedule, and you pay for them by removing every buffer. Any delay, anywhere, moves the finish date.
The network, live
This calculator holds the exercise above. Edit anything — durations, links, the calendar — and the dates, float and critical path recompute instantly. Nothing is saved to your own saved project.
Lags & overlaps
CPM schedule — start 2026-09-07 — sitraka.lu/checklists/scheduler
| ID | Activity | Type | Dur (d) | Predecessors | Early start | Early finish | TF (d) | |
|---|---|---|---|---|---|---|---|---|
| Mon 07 Sept 08:00 | Mon 14 Sept 17:00 | 0.0 ● | ||||||
| Wed 09 Sept 08:00 | Tue 15 Sept 17:00 | 0.0 ● | ||||||
| Thu 10 Sept 08:00 | Tue 15 Sept 17:00 | 0.0 ● | ||||||
| Wed 16 Sept 08:00 | Wed 16 Sept 17:00 | 0.0 ● | ||||||
| Thu 17 Sept 08:00 | Mon 21 Sept 17:00 | 0.0 ● | ||||||
| Fri 18 Sept 08:00 | Mon 21 Sept 17:00 | 0.0 ● | ||||||
Predecessors: B (finish-to-start), B:SS+2 (start-to-start, 2-day lag), B:FF-1, B:SF+3. Lags are in working days on the successor's calendar. Rows highlighted in red are on the longest path. Press Enter in the last row to add an activity.
Project finish
Mon 21 Sept 17:00
Duration
11 working days
Longest path
6 / 6 critical
Critical path
A → B → C → D → E → F
6 activities scheduled in 6 ms, entirely in your browser. Your data is saved locally and never uploaded: the “Copy link” button encodes the whole project into the URL itself.
Try it yourself
Change B's link from SS+2 to a plain finish-to-start (just type A) and watch the project stretch out — that is the schedule you would have had without overlapping. Then compare which activities regain float.