CON-499 · Lesson 6 of 12 · 23 min

The CPM schedule

Tomas Reyes had built schedules before, but always for someone else's project, starting from someone else's template. For Pembrook he started with a blank page and a question from Ruth: 'Can this station be built in fourteen months, starting in April, in Nova Scotia, with steel that takes sixteen weeks to arrive? Show me, don't tell me.' His first network took 68 weeks. The contract allowed about 60. The next three weeks were spent finding out why, and what could honestly be done about it.

This lesson covers the sixth deliverable: a critical path method (CPM) schedule with a written basis of schedule. It draws on planning and scheduling (CON-210), trade coordination and short-interval planning (CON-335) and the procurement schedule from lesson 3. A capstone schedule is judged less on its number of activities than on whether its logic is sound, its durations are justified and its critical path makes sense for the building.

From the WBS to activities

A schedule activity is a piece of work with a start, a finish, a duration and a clear relationship to other activities. Activities come from the work packages of the WBS, but they are not always the same. One work package may need several activities because it is done in stages. The support wing's mechanical rough-in, for example, happens on level 1 and level 2 at different times. Several small work packages may be combined into one activity if they are done together by the same crew. For the capstone, a summary schedule of 15 to 40 activities shows the logic clearly, and a more detailed schedule of 150 to 300 activities supports it.

Tomas built the detailed schedule in scheduling software and kept a summary network of fifteen activities for the report. The summary is what reviewers read first, and it is what this lesson uses.

The Pembrook summary network.
IDActivityDuration (weeks)Predecessors
AMobilize and site preparation3—
BEarthwork and underground services5A
CSupport wing foundations and slab6B
DApparatus bay foundations and trench drains5B
EStructural steel erection6C, D
FRoof deck and roofing5E
GMasonry and building envelope9E
HMechanical and electrical rough-in10F
IOverhead apparatus doors3G
JInterior framing and drywall8H, G
KInterior finishes7J
LSite paving and apron6G
MEquipment and station alerting4K
NTesting and commissioning4M, I
OCloseout and handover2N, L

Durations that can be defended

A duration is only as good as its basis. The best basis is a quantity divided by a realistic production rate for the crew that will do the work, adjusted for site conditions. Next best is a subtrade's own duration, checked against the quantity. Weakest is a guess, however experienced. In the basis of schedule, Tomas recorded where every summary duration came from.

Worked problem

Structural steel erection duration

The structural steel, joists and deck weigh about 128 tonnes. Tamarack's steel subtrade erects about 6 tonnes per working day with one crane and one raising gang on a building of this type. After the main members are up, bolting, plumbing and welding of the deck take about a further 7 working days, partly overlapped with the last of the erection. How long is the steel activity in five-day weeks?

Show solution
  1. Erection time: 128 ÷ 6 = 21.3, so 22 working days.
  2. Bolting, plumbing and deck welding: 7 days, with 2 days overlapping the end of erection, so 5 more days.
  3. Delivery and set-up of the crane, plus a weather allowance of 2 days: 3 days.
  4. Total: 22 + 5 + 3 = 30 working days.
  5. In five-day weeks: 30 ÷ 5 = 6 weeks.

Answer: Six weeks.

Some durations also had to respect the calendar. The steel arrived in summer, but the masonry and envelope would run into October and the interior work through the winter. Tomas used a five-day working week with statutory holidays removed, and he added a winter calendar for exterior activities after the middle of November, with fewer productive days per week to allow for cold, snow and heated enclosures.

Logic and relationships

Logic says what must happen before what. Most relationships are finish-to-start: one activity must finish before the next can start. But real construction overlaps, and good schedules use start-to-start and finish-to-finish relationships, with lags, where the work allows. Interior framing on level 1 can start once rough-in on level 1 is well under way, without waiting for rough-in on level 2 to finish. Logic should be physical or resource-based and explainable in one sentence. 'Drywall cannot close a wall until the in-wall rough-in is inspected' is good logic. 'The software put it there' is not.

Two pieces of logic in the Pembrook network deserve comment. First, interior framing and drywall (J) depend on the building envelope (G) as well as the rough-in, because drywall cannot be installed until the building is closed in and heated. Second, testing and commissioning (N) depends on the overhead doors (I) as well as the equipment, because the doors are tied into the station alerting system and must be tested with it.

Activity-on-node network diagram of the fifteen summary activities, with the critical path A, B, C, E, F, H, J, K, M, N and O highlighted
The Pembrook summary network. The critical path runs through the foundations, steel, roof, rough-in, interiors, equipment and commissioning.

The forward and backward pass

The critical path method calculates, for every activity, the earliest it can start and finish (the forward pass) and the latest it can start and finish without delaying the project (the backward pass). The difference between latest and earliest start is total float: how far an activity can slip without delaying completion. Activities with zero total float form the critical path.

\[\mathrm{EF} = \mathrm{ES} + d, \qquad \mathrm{LS} = \mathrm{LF} - d, \qquad \mathrm{TF} = \mathrm{LS} - \mathrm{ES}\]

On the forward pass, an activity's early start is the latest early finish among its predecessors. On the backward pass, its late finish is the earliest late start among its successors. Tomas checked his scheduling software with a short program that did the same calculation for the summary network.

# Forward and backward pass for the Pembrook Fire Station No. 3 summary schedule (durations in weeks)
acts = {  # id: (name, duration, predecessors)
    'A': ('Mobilize and site preparation', 3, []),
    'B': ('Earthwork and underground services', 5, ['A']),
    'C': ('Support wing foundations and slab', 6, ['B']),
    'D': ('Apparatus bay foundations and trench drains', 5, ['B']),
    'E': ('Structural steel erection', 6, ['C', 'D']),
    'F': ('Roof deck and roofing', 5, ['E']),
    'G': ('Masonry and building envelope', 9, ['E']),
    'H': ('Mechanical and electrical rough-in', 10, ['F']),
    'I': ('Overhead apparatus doors', 3, ['G']),
    'J': ('Interior framing and drywall', 8, ['H', 'G']),
    'K': ('Interior finishes', 7, ['J']),
    'L': ('Site paving and apron', 6, ['G']),
    'M': ('Equipment and station alerting', 4, ['K']),
    'N': ('Testing and commissioning', 4, ['M', 'I']),
    'O': ('Closeout and handover', 2, ['N', 'L']),
}
ES, EF = {}, {}
for a, (n, d, p) in acts.items():          # listed in logical order
    ES[a] = max((EF[x] for x in p), default=0)
    EF[a] = ES[a] + d
end = max(EF.values())
LS, LF = {}, {}
for a in reversed(list(acts)):
    succ = [s for s, v in acts.items() if a in v[2]]
    LF[a] = min((LS[s] for s in succ), default=end)
    LS[a] = LF[a] - acts[a][1]
print(f'{"Act":3} {"ES":>3} {"EF":>3} {"LS":>3} {"LF":>3} {"TF":>3}')
for a in acts:
    tf = LS[a] - ES[a]
    print(f'{a:3} {ES[a]:3} {EF[a]:3} {LS[a]:3} {LF[a]:3} {tf:3}{"  critical" if tf == 0 else ""}')
print('Project duration:', end, 'weeks')
print('Critical path:', '-'.join(a for a in acts if LS[a] == ES[a]))
Output
Act  ES  EF  LS  LF  TF
A     0   3   0   3   0  critical
B     3   8   3   8   0  critical
C     8  14   8  14   0  critical
D     8  13   9  14   1
E    14  20  14  20   0  critical
F    20  25  20  25   0  critical
G    20  29  26  35   6
H    25  35  25  35   0  critical
I    29  32  51  54  22
J    35  43  35  43   0  critical
K    43  50  43  50   0  critical
L    29  35  52  58  23
M    50  54  50  54   0  critical
N    54  58  54  58   0  critical
O    58  60  58  60   0  critical
Project duration: 60 weeks
Critical path: A-B-C-E-F-H-J-K-M-N-O

The project takes 60 weeks. The critical path runs A, B, C, E, F, H, J, K, M, N and O: through the foundations, the steel, the roof, the rough-in, the interiors, the equipment and commissioning. The apparatus bay foundations (D) have one week of float, the masonry envelope (G) six weeks, the overhead doors (I) 22 weeks and the site paving (L) 23 weeks.

The large float on paving is real but misleading. Paving in weeks 29 to 35 would mean October and November, and asphalt laid in cold weather often performs poorly. The team planned to place the concrete apron and the base course and first lift of asphalt in the fall, then the top lift in spring, using the float. The plan stated that choice, so that a reviewer seeing 23 weeks of float would understand why the paving was not simply left to the end.

Bar chart of the fifteen activities across sixty weeks, with critical activities shaded and float shown as thin lines after the non-critical bars
The summary schedule as a bar chart. Critical activities are shaded; thin lines show total float.

Meeting the contract date

Fourteen months from award is about 60.7 weeks, so the 60-week network left less than a week of margin before liquidated damages applied. Ruth would not accept a plan with no time contingency. Tomas looked for honest ways to shorten the critical path, without simply cutting durations to make the numbers work.

  • Overlapping rough-in and drywall: framing and drywall can start on level 1 while rough-in continues on level 2.
  • Early release of steel: the letter of intent from lesson 3 kept steel delivery in week 14; without it, steel would have arrived in week 18.
  • Prefabricated mechanical risers: built off site during foundations, reducing rough-in in the wing.
  • Two masonry crews on the envelope in September and October, so the building is closed before the cold.

Worked problem

Overlapping rough-in and drywall

In the base network, J (8 weeks) starts when H (10 weeks, weeks 25 to 35) finishes. Suppose instead that J may start 6 weeks after H starts (start-to-start with a 6-week lag) but may not finish until 2 weeks after H finishes (finish-to-finish with a 2-week lag). J still also needs G to finish in week 29. What is the new project duration if the rest of the logic is unchanged?

Show solution
  1. Start of J: the later of H start + 6 = 31 and G finish = 29, so week 31.
  2. Finish of J: the later of 31 + 8 = 39 and H finish + 2 = 37, so week 39.
  3. K runs 39 to 46, M 46 to 50 and N 50 to 54.
  4. O follows N and L (paving finishes in week 35), so O runs 54 to 56.
  5. Project duration: 56 weeks, 4 weeks shorter than the base network.

Answer: 56 weeks, leaving about 4.7 weeks of margin to the contract date.

The team planned to 56 weeks and showed the remaining four weeks as a time contingency held by the project, not hidden inside activities. Holding contingency visibly, at the end of the schedule, makes it clear when it is being used. Lesson 11 links this margin to the schedule risks in the risk register.

Milestones and the basis of schedule

Milestones are zero-duration events that mark important points. The Pembrook schedule had eight: contract award, start on site, steel erection start, roof dried in, building enclosed, permanent power on, substantial performance and handover. Two of them, building enclosed and permanent power on, were the dates that the rest of the team watched most closely, because winter heating and commissioning depended on them.

Key milestones in the planned 56-week schedule.
MilestonePlanned weekWhy it matters
Start on site0Mobilization and survey
Steel erection starts14Needs steel ordered before award
Roof dried in25Rough-in and interior work can start
Building enclosed29Heat can be supplied; drywall can follow
Permanent power on46Generator and switchgear must be in place
Substantial performance56Four weeks before the contract date
Handover to fire department58After move-in and training

The basis of schedule is a short written document that accompanies the schedule. It explains the calendars, working hours, sources of durations, key logic decisions, weather allowances, assumptions about owner activities (such as the town's water main and the alerting vendor's commissioning) and the critical path. It turns a chart into an argument. Reviewers in a capstone, like owners reviewing a baseline schedule under a contract, look for this explanation first.

From the master schedule to the field

A master schedule is not enough to run a site. As CON-335 showed, field teams plan the next three to six weeks in a look-ahead schedule and the next week in detail with the foremen, checking that the materials, information, crews and access are ready for each task. The capstone plan should describe how the master schedule will be broken down and updated: monthly updates of the master schedule, weekly look-aheads, and a weekly coordination meeting where foremen commit to the work they will complete.

Your capstone deliverable

  • A summary network of 15 to 40 activities, with a detailed schedule behind it.
  • A forward and backward pass, total float and the critical path, checked by hand or by a short program.
  • Durations with a stated basis: quantities and rates, subtrade durations or experience.
  • A bar chart and a network diagram, with milestones.
  • A written basis of schedule, including calendars, weather, owner activities and any time contingency.
  • A description of how look-ahead and weekly planning will connect the master schedule to the field.

Common mistakes

  • MistakeBuilding a schedule with hundreds of activities and no explanation.

    InsteadShow a clear summary network and a written basis of schedule.

  • MistakeUsing durations with no basis.

    InsteadDerive durations from quantities and production rates, or from checked subtrade durations.

  • MistakeUsing only finish-to-start logic.

    InsteadUse overlaps with lags where the work genuinely allows it.

  • MistakeShortening the schedule by cutting durations without reason.

    InsteadChange the method or logic, and explain why the new plan is achievable.

  • MistakeHiding time contingency inside activities.

    InsteadHold it visibly at the end of the schedule and track its use.

Summary and key terms

  • Schedule activities come from WBS work packages, split or combined to match how the work is done.
  • Defensible durations come from quantities and production rates, adjusted for conditions and calendars.
  • Logic should be physical or resource-based, with overlaps where the work allows.
  • The forward pass gives early dates, the backward pass gives late dates, and total float is their difference.
  • Activities with zero float form the critical path, which sets the project duration.
  • Large float must be read in context, such as seasons and quality, not just as spare time.
  • A basis of schedule explains calendars, durations, logic, owner activities and contingency.
Critical path
The longest path through the network, made of activities with zero total float.
Total float
How far an activity can slip without delaying project completion.
Forward pass
The calculation of early start and early finish dates.
Backward pass
The calculation of late start and late finish dates.
Lag
A required delay between related activities, such as a start-to-start lag.
Basis of schedule
A written explanation of how a schedule was built and what it assumes.

Practice problems

Work each problem on paper first, then reveal the answer to check.

  1. An activity has ES 12, duration 5 and LF 20. What are EF, LS and TF?

    Show answer

    EF = 17, LS = 15, TF = 3.

  2. An activity's predecessors finish in weeks 14 and 16. What is its early start?

    Show answer

    Week 16, the latest predecessor finish.

  3. Why does drywall depend on the envelope as well as the rough-in?

    Show answer

    Drywall cannot be installed until the building is closed in and heated.

  4. Steel weighs 90 tonnes and the crew erects 6 tonnes per day. How many working days does erection take?

    Show answer

    90 ÷ 6 = 15 working days.

  5. Why did the team not simply leave paving to the end of the schedule?

    Show answer

    Paving in late fall risks poor quality, so the float was used to split it into a fall base and a spring top lift.

Lesson quiz · 5 questions

Score 60% or more to complete this lesson.

Take the quiz