Critical Path Method for Programmes: Float, Links and Lags
Nine activities in three components, with one set of durations, take 19 weeks when the components run independently. Add four links between them and the same work takes 28 weeks. The work did not change, only the dependencies. Most explanations stop at one project. A programme manager holds several schedules at once. The critical path can leave one component and run through another without anyone deciding that it should. This page gives you a calculation sheet you can copy, then runs one worked programme three ways: with no links, with two finish-to-start links, and with a start-to-start link carrying a two-week lag (a fixed delay added to a link between two activities) and a further finish-to-start link into go-live. It shows how float (spare time) moves and which weeks are shared. A slip in data migration would have cost nothing in the first schedule and costs a week-for-week delay in the third. All durations are in working weeks, and every figure can be reproduced by hand.
Programme duration (scenario C, working weeks)
—
- P3 Platform test earliest start (week)
- —
Assumptions
- Durations are in working weeks on one five-day calendar, and the programme starts at week 0.
- No date constraints, one calendar and no resource levelling, so zero float and the longest path coincide.
- Links are those of scenario C: D3 waits for P2, P3 waits for D3, T2 starts after P3 starts plus the lag, and T3 waits for P3 and T2 to finish.
- T1 Training content carries float and does not set the programme finish, so it is not an input.
By Sanjeev Kumar, Founder · Updated 10 Nov 2026
In brief
The critical path method calculates the earliest possible finish of a set of linked activities and the float of each activity. Activities with zero float form the critical path, the longest chain of dependent work. A link between components can move the critical path into a different component.
The sheet takes six inputs per activity plus one programme start week, and returns the earliest and latest dates, both floats, a critical flag and the programme duration. Enter durations in working weeks on one calendar, leave the link type as finish-to-start (FS), the other types being start-to-start (SS) and finish-to-finish (FtF), and the lag at zero unless the work demands otherwise, and start the programme at week 0.
| Input | Unit | Default |
|---|---|---|
| Activity ID and name | text | none |
| Component | text | none |
| Duration | working weeks | your expected duration (use a three-point estimate if you only have a range) |
| Predecessor ID | text | none |
| Link type | FS, SS or FtF | FS |
| Lag | weeks | 0 |
| Programme start (one value for the whole programme) | week | 0 |
Use a five-day working week as the default. If one component runs on a different working calendar, convert its durations to the common calendar first. Multiple calendars distort the critical path (GAO Schedule Assessment Guide, Figure 32).
| Result | Formula | Source |
|---|---|---|
| Earliest start (ES) | Largest value given by the link rules below; the programme start for an activity with no predecessor | PMI Practice Standard, section 2.2.1 (forward pass); link rules are our model |
| Earliest finish (EF) | ES + duration | PMI Practice Standard, section 2.2.1 |
| Latest finish (LF) | Smallest value given by the link rules below; the programme finish for an activity with no successor | PMI Practice Standard, section 2.2.1 (backward pass); link rules are our model |
| Latest start (LS) | LF − duration | PMI Practice Standard, section 2.2.1 |
| Total float (TF) | LS − ES, or LF − EF | PMI Practice Standard, section 3.4.2 |
| Free float (FF) | ES of the earliest successor − EF; for an activity with no successor, use the programme finish in place of the successor's ES | PMI Practice Standard, section 3.4.2 (never negative) |
| Critical? | TF = 0 | PMI Practice Standard, section 3.4.1, under the clean-model assumptions above |
| Programme duration | Largest EF | PMI Practice Standard, section 2.2.1 |
Link rules, as our sheet applies them (our model):
- FS: successor ES ≥ predecessor EF + lag.
- SS: successor ES ≥ predecessor ES + lag.
- FtF: successor EF ≥ predecessor EF + lag.
The backward pass reverses these. For FS, predecessor LF ≤ successor LS − lag. For SS, predecessor LS ≤ successor LS − lag. For FtF, predecessor LF ≤ successor LF − lag.
Key takeaways
- The critical path method gives you the earliest programme finish and the float of every activity. The activities with zero float form the critical path, and a delay on any of them moves the finish date, unless the delay is recovered.
- A link between components can move the critical path into a different component. In our worked programme, two links took the finish from 19 to 23 weeks and put a data activity on the critical path.
- Float belongs to a path, not to one activity. Two activities that each show 5 weeks of float share the same 5 weeks.
- A lag on a link adds its full length to the critical path and hides inside the link. Record it, give it a reason, and test whether an activity would show the work more clearly.
What does the critical path method calculate in a programme?
The critical path method calculates the earliest possible finish of a set of linked activities and the float of each activity. Float is the time an activity can slip without moving the finish. Activities with zero float form the critical path, the longest chain of dependent work. The Project Management Institute (PMI) Practice Standard for Scheduling describes the method as determining the minimum total duration, the earliest finish and the scheduling flexibility.
Terms used from here on:
- Activity: one piece of work with a duration.
- Predecessor: an activity that must reach a stated point before another can proceed.
- Forward pass: working left to right to find the earliest start (ES) and earliest finish (EF) of every activity.
- Backward pass: working right to left from the programme finish to find the latest start (LS) and latest finish (LF).
- Total float (TF): how long an activity can be delayed without delaying the programme finish.
- Free float (FF): how long an activity can be delayed without delaying any successor.
Zero float and the longest path agree only in a clean model. In most projects the critical path is no longer a zero-float path, because date constraints, several calendars and resource levelling distort the calculation (PMI Practice Standard, section 2.2.1). The same caution appears in the US Government Accountability Office (GAO) Schedule Assessment Guide. The sheet below assumes no date constraints, one calendar and no resource levelling, so zero float and the longest path coincide.
What does the critical path method show for three independent components?
With no links between components, the programme duration equals its longest component. Our example has three components: Platform (P), Data (D) and Training (T). Each is a chain of three activities. Platform runs 4 + 10 + 5 = 19 weeks, Data 3 + 6 + 4 = 13 weeks and Training 5 + 6 + 2 = 13 weeks.
Scenario A, all components independent (our worked example, durations in working weeks):
| Activity | Dur | ES | EF | LS | LF | TF | FF |
|---|---|---|---|---|---|---|---|
| P1 Platform design | 4 | 0 | 4 | 0 | 4 | 0 | 0 |
| P2 Platform build | 10 | 4 | 14 | 4 | 14 | 0 | 0 |
| P3 Platform test | 5 | 14 | 19 | 14 | 19 | 0 | 0 |
| D1 Data audit | 3 | 0 | 3 | 6 | 9 | 6 | 0 |
| D2 Data cleanse | 6 | 3 | 9 | 9 | 15 | 6 | 0 |
| D3 Data migrate | 4 | 9 | 13 | 15 | 19 | 6 | 6 |
| T1 Training content | 5 | 0 | 5 | 6 | 11 | 6 | 0 |
| T2 Train users | 6 | 5 | 11 | 11 | 17 | 6 | 0 |
| T3 Go-live | 2 | 11 | 13 | 17 | 19 | 6 | 6 |
The programme takes 19 weeks and the critical path is P1, P2 and P3. Data and Training each carry 6 weeks of float, the 19-week programme minus their 13-week chains.
Read this result as three separate schedules that happen to end together. A delay in Data or Training has to exceed 6 weeks before it matters. The result changes the moment one component needs something from another.
How do links between components change the critical path method result?
Links between components can move the critical path into another component and change float everywhere. Add two FS links to scenario A. Data migration (D3) cannot start until the platform is built (P2). Platform testing (P3) cannot start until the data is migrated (D3).
Forward pass for the changed activities:
- D3 starts at the later of D2's finish (week 9) and P2's finish (week 14), so ES = 14 and EF = 18.
- P3 starts at the later of P2's finish (14) and D3's finish (18), so ES = 18 and EF = 23.
The programme now takes 23 weeks, and the critical path is P1, P2, D3, P3. A Data activity is critical, though the Data component looked comfortable in scenario A.
Total float of every activity across the three scenarios (our worked example):
Compare columns A and B. Data's float fell from 6 to 5 weeks, while Training's rose from 6 to 10 because the programme got longer around it. A link therefore shifts float between components: it removes float from the component that now waits, and the longer programme gives float to components that are not linked. The critical path in B is a path through two components, so no single component manager owns it.
Record each link in your RAID log (risks, assumptions, issues and dependencies) with an owner on each side. Where the programme plan sequences components, the program management plan is the place the schedule belongs.
- Activity
- P1 Platform design
- Dur
- 4
- A: no links
- 0
- B: two FS links
- 0
- C: B plus SS+2 link and P3 to T3 FS link
- 0
- Activity
- P2 Platform build
- Dur
- 10
- A: no links
- 0
- B: two FS links
- 0
- C: B plus SS+2 link and P3 to T3 FS link
- 0
- Activity
- P3 Platform test
- Dur
- 5
- A: no links
- 0
- B: two FS links
- 0
- C: B plus SS+2 link and P3 to T3 FS link
- 0
- Activity
- D1 Data audit
- Dur
- 3
- A: no links
- 6
- B: two FS links
- 5
- C: B plus SS+2 link and P3 to T3 FS link
- 5
- Activity
- D2 Data cleanse
- Dur
- 6
- A: no links
- 6
- B: two FS links
- 5
- C: B plus SS+2 link and P3 to T3 FS link
- 5
- Activity
- D3 Data migrate
- Dur
- 4
- A: no links
- 6
- B: two FS links
- 0
- C: B plus SS+2 link and P3 to T3 FS link
- 0
- Activity
- T1 Training content
- Dur
- 5
- A: no links
- 6
- B: two FS links
- 10
- C: B plus SS+2 link and P3 to T3 FS link
- 15
- Activity
- T2 Train users
- Dur
- 6
- A: no links
- 6
- B: two FS links
- 10
- C: B plus SS+2 link and P3 to T3 FS link
- 0
- Activity
- T3 Go-live
- Dur
- 2
- A: no links
- 6
- B: two FS links
- 10
- C: B plus SS+2 link and P3 to T3 FS link
- 0
- Activity
- Programme weeks
- Dur
- A: no links
- 19
- B: two FS links
- 23
- C: B plus SS+2 link and P3 to T3 FS link
- 28
What does a start-to-start link with a lag do to float?
A lag adds its full length to the critical path, and a start-to-start (SS) link can make an activity critical for its start but not for its overrun. Add two more links to scenario B: Training's "Train users" (T2) starts 2 weeks after Platform testing (P3) starts (an SS link with a 2-week lag), and go-live (T3) cannot start until P3 finishes (an FS link).
- T2 starts at P3's start plus the lag: 18 + 2 = week 20, and finishes at week 26.
- T3 starts at week 26 and finishes at week 28.
The programme takes 28 weeks, and the critical path is P1, P2, D3, P3, T2, T3.
We varied the lag from 0 to 7 weeks:
| Lag (weeks) | 0 | 1 | 2 | 3 | 7 |
|---|---|---|---|---|---|
| Programme (weeks) | 26 | 27 | 28 | 29 | 33 |
Two things follow. The link itself costs 3 weeks (23 in scenario B against 26 at lag 0), because Training can no longer run beside the Platform. The 2-week lag then adds exactly 2 more. T1's float rises by one week for every week of lag, since the longer path leaves more room around it.
A status report would list T2 as critical and would not mention that a 2-week lag on a link is what put it there. The same holds for lags generally: the report names the activity, while the lag causes the criticality (GAO Schedule Assessment Guide, Best Practice 6). Leads and lags introduce schedule risk and, where possible, should be modelled as discrete activities with their own durations (PMI Practice Standard, section 3.4.9).
The SS link also splits float into two answers. In our calculation P3's total float is 0, because starting P3 late delays T2 week for week. But if P3 starts on time and merely takes up to 3 weeks longer, the programme stays at 28 weeks, since T3 only waits for P3's finish and T2 finishes at week 26. Ask both questions of any activity with an SS or FtF link: can it start late, and can it run long?
The result also tells you where effort pays. Shortening T2 by 1, 2 or 3 weeks cuts the programme to 27, 26 or 25 weeks. After 3 weeks, the chain P1, P2, D3, P3, T3 sets the date and further cuts to T2 gain nothing.
How do you read float without spending the same weeks twice?
Float is shared along a path, so two activities showing 5 weeks of float each have 5 weeks between them, not 10. In scenario B, D1 and D2 each show 5 weeks of total float. We tested this by adding weeks and recalculating:
- Delay D1 by 5 weeks: the programme stays at 23 weeks, but D2's float is now 0.
- Add one more week to D2: the programme becomes 24 weeks.
Total float and free float answer different questions:
- Total float asks whether the programme finish moves. D2's total float is 5 weeks.
- Free float asks whether the next activity is held up. D2's free float is 5 weeks too (D3 starts at week 14, D2 finishes at week 9), while D1's is 0 because D2 starts the moment D1 finishes.
Free float is measured to the earliest successor, so it can only be positive where a successor has a second predecessor that finishes later, or where the activity is last in its chain and the programme finish comes after it, as D3 and T3 do in scenario A.
Two further rules for reading the sheet:
- Watch near-critical activities, those whose float sits within a narrow band of zero. Our recommendation: treat activities with total float within 10% of the programme duration as near-critical (2.3 weeks at 23 weeks), and write the band down so it is applied the same way each cycle.
- Recalculate at every status update. A programme-level critical path changes as work is updated, and a failure on a component's own critical path can pull that component onto the programme critical path at any time (GAO Schedule Assessment Guide, "Program and Project Critical Paths"). Track both levels.
Which checks make a programme critical path trustworthy?
A programme critical path is trustworthy when it passes six checks, each with a clear pass or fail. They follow the checks in PMI's Practice Standard and GAO's guide, plus our recommendations on ownership and recalculation.
- No open ends. Pass: only the start and finish have no predecessor or no successor. Fail: any other activity with a missing predecessor or successor.
- Every lag justified. Pass: each lag has a written reason, and replacing it with a named activity of the same duration changes nothing except clarity. Fail: a lag nobody can explain.
- Constraints tested. Pass: removing each date constraint on a non-finish activity leaves the critical set unchanged. Fail: the set changes, meaning the constraint, not the logic, is driving the dates.
- Link owners named. Pass: every cross-component link has a named owner on both sides (our recommendation). Fail: a link nobody owns.
- Near-critical list written. Pass: a stated float band and a list of activities inside it. Fail: no band, so no list.
- Both levels compared. Pass: after each update you can name the component currently driving the programme and compare it with each component's own critical path. Fail: you cannot say which component drives the date.
Where does programme scheduling fit in Program Management Professional (PgMP®) preparation?
Programme schedule integration sits in the largest domain of the PgMP® exam. PMI's PgMP Examination Content Outline (March 2024) gives Program Life Cycle Management 44% of the exam. Its Task 9 reads "Establish the program management plan and schedule by integrating plans for constituent projects/components". Schedule management, techniques and tools also appear in its knowledge list.
If you are moving from running projects to running programmes, the same dependency logic carries into the exam and the role. Our PgMP® certification training page sets out what the fee buys. The PgMP Self-Paced Mentorship Program gives structured learning, application guidance and exam preparation. It includes 24+ hours of video modules, 1,000+ exam-preparation questions with detailed explanations and 24 PDUs (professional development units). As of November 2026, it is priced at US$549 per enrolment; pricing varies by market, so ask us for the figure that applies to you.
A free discovery consultation is available before you enrol: write to support@augmentconsultancy.com.
Keep reading
Frequently asked
Sources
- 1.Practice Standard for Scheduling, Second Edition (©2011), Project Management Institute
- 2.Schedule Assessment Guide: Best Practices for Project Schedules, GAO-16-89G (December 2015), US Government Accountability Office
- 3.PgMP Examination Content Outline (March 2024), Project Management Institute



