1.2 Project Scheduling and CPM

Key Takeaways

  • The critical path is the longest path of activities through the network and determines the minimum project duration; critical activities have a Total Float of zero.
  • Total Float ($TF = LS - ES = LF - EF$) is shared along a path, whereas Free Float ($FF = \min(ES_{\text{successor}}) - EF$) belongs to a single activity without delaying successors.
  • Precedence Diagramming Method (PDM) supports FS, SS, FF, and SF relationships with lags/leads, whereas Arrow Diagramming Method (ADM) is limited to FS and uses dummy activities.
  • Forward pass calculations determine early dates (ES, EF) using the maximum values of predecessors, while backward pass calculations determine late dates (LS, LF) using the minimum values of successors.
Last updated: July 2026

1.2 Project Scheduling and CPM

The Critical Path Method (CPM) is the standard technique used to plan, schedule, and control civil engineering projects. Its modeling approach represents project activities, durations, and logical relationships as a network diagram to identify the critical path and manage project float.

Scheduling Network Diagrams

Estimators and schedulers use two primary methods to diagram project logic:

Precedence Diagramming Method (PDM)

Also known as Activity-on-Node (AON), PDM is the industry standard. Activities are represented by nodes (boxes), and dependencies are shown by arrows. PDM is highly flexible because it supports four types of activity relationships:

  • Finish-to-Start (FS): The successor cannot start until the predecessor finishes (most common).
  • Start-to-Start (SS): The successor cannot start until the predecessor starts.
  • Finish-to-Finish (FF): The successor cannot finish until the predecessor finishes.
  • Start-to-Finish (SF): The successor cannot finish until the predecessor starts (rare).

PDM also supports lag (a delay between activities) and lead (an acceleration of the successor).

Arrow Diagramming Method (ADM)

Also known as Activity-on-Arrow (AOA), ADM represents activities as arrows and events (milestones) as nodes (circles). ADM only supports Finish-to-Start relationships. To maintain unique activity paths and represent complex logical relationships, ADM requires dummy activities—activities with zero duration represented by dashed arrows.

FeaturePrecedence Diagramming Method (PDM / AON)Arrow Diagramming Method (ADM / AOA)
Activity PlacementOn Nodes (Boxes)On Arrows
Logical RelationshipsFS, SS, FF, SF (with lags/leads)FS only
Dummy ActivitiesNot requiredRequired for logical routing and unique IDs
ComplexityHigh flexibility, easy to updateLess flexible, harder to read in software

Forward and Backward Pass Calculations

To calculate the project schedule, a double pass is performed through the network diagram using estimated durations ($D$). Schedulers typically use the 0-based indexing system (where the project starts at Day 0):

The Forward Pass (Early Dates)

The forward pass determines the earliest possible dates each activity can start and finish. It moves from the project start to the project finish:

  1. Early Start (ES):
    • For the project starting activity: $ES = 0$.
    • For any successor activity $j$: $ES_j = \max(EF_i + \text{lag}_{ij})$ for all immediate predecessors $i$.
  2. Early Finish (EF):
    • Calculated for each activity as: $EF = ES + D$.
  3. The overall project duration is the maximum $EF$ of the terminal activities.

The Backward Pass (Late Dates)

The backward pass determines the latest possible dates each activity can start and finish without delaying the project completion. It moves from the project finish back to the project start:

  1. Late Finish (LF):
    • For the project terminal activity: $LF = \text{Project Duration}$ (or the target completion date).
    • For any predecessor activity $i$: $LF_i = \min(LS_j - \text{lag}_{ij})$ for all immediate successors $j$.
  2. Late Start (LS):
    • Calculated for each activity as: $LS = LF - D$.

Float Calculations

Float (or slack) represents scheduling flexibility. The PE Civil exam requires calculating two types of float:

Total Float (TF)

Total Float is the maximum time an activity can be delayed from its Early Start without delaying the project's overall completion date. It is calculated as: TF=LSES=LFEFTF = LS - ES = LF - EF

  • Activities on the critical path have $TF = 0$ (assuming no project constraints).
  • Total Float is shared along a path. If one activity uses the shared Total Float, the float available to subsequent activities on that path decreases.

Free Float (FF)

Free Float is the maximum time an activity can be delayed without delaying the Early Start of any immediate successor activity. It is calculated as: FF=min(ESsuccessors)EFFF = \min(ES_{\text{successors}}) - EF

  • Free Float belongs solely to that specific activity and is not shared.
  • Free Float can never exceed Total Float ($FF \le TF$).

Identifying and Managing the Critical Path

The Critical Path is the continuous sequence of activities from project start to finish that determines the minimum total project duration.

  • It is the path with the longest cumulative duration.
  • It is characterized by activities having minimum Total Float (normally zero).
  • Any delay to an activity on the critical path directly delays the project completion date.
  • Schedulers use crashing (adding resources to critical activities to shorten their duration) or fast-tracking (performing critical activities in parallel instead of sequentially) to recover delayed schedules. However, these techniques increase project costs and risks.

Detailed Network Walkthrough Example

Let's calculate the schedule for a small project with five activities:

  • Activity A (Start): $D = 4 \text{ days}$, no predecessors.
  • Activity B: $D = 6 \text{ days}$, predecessor A (FS relationship).
  • Activity C: $D = 3 \text{ days}$, predecessor A (FS relationship).
  • Activity D: $D = 5 \text{ days}$, predecessor B (FS relationship).
  • Activity E (Finish): $D = 4 \text{ days}$, predecessors C and D (FS relationship).

Step 1: Forward Pass

  • Activity A: $ES_A = 0$, $EF_A = 0 + 4 = 4$.
  • Activity B: $ES_B = EF_A = 4$, $EF_B = 4 + 6 = 10$.
  • Activity C: $ES_C = EF_A = 4$, $EF_C = 4 + 3 = 7$.
  • Activity D: $ES_D = EF_B = 10$, $EF_D = 10 + 5 = 15$.
  • Activity E: $ES_E = \max(EF_C, EF_D) = \max(7, 15) = 15$, $EF_E = 15 + 4 = 19$.
  • The total project duration is 19 days.

Step 2: Backward Pass

  • Activity E: $LF_E = 19$, $LS_E = 19 - 4 = 15$.
  • Activity D: $LF_D = LS_E = 15$, $LS_D = 15 - 5 = 10$.
  • Activity C: $LF_C = LS_E = 15$, $LS_C = 15 - 3 = 12$.
  • Activity B: $LF_B = LS_D = 10$, $LS_B = 10 - 6 = 4$.
  • Activity A: $LF_A = \min(LS_B, LS_C) = \min(4, 12) = 4$, $LS_A = 4 - 4 = 0$.

Step 3: Float Calculations

  • Activity A: $TF_A = 0 - 0 = 0$, $FF_A = \min(ES_B, ES_C) - EF_A = \min(4, 4) - 4 = 0$.
  • Activity B: $TF_B = 4 - 4 = 0$, $FF_B = ES_D - EF_B = 10 - 10 = 0$.
  • Activity C: $TF_C = 12 - 4 = 8$, $FF_C = ES_E - EF_C = 15 - 7 = 8$.
  • Activity D: $TF_D = 10 - 10 = 0$, $FF_D = ES_E - EF_D = 15 - 15 = 0$.
  • Activity E: $TF_E = 15 - 15 = 0$, $FF_E = 19 - 19 = 0$.

The critical path is A → B → D → E with a duration of 19 days. Activity C has 8 days of Total Float and 8 days of Free Float, meaning it can be delayed by up to 8 days without impacting the project schedule or its successor Activity E.

Loading diagram...
CPM Network Schedule Diagram (Critical Path highlighted in red)
Test Your Knowledge

An activity has an Early Start (ES) of day 12, an Early Finish (EF) of day 18, a Late Start (LS) of day 15, and a Late Finish (LF) of day 21. Its immediate successor activity has an Early Start (ES) of day 19. What are the Total Float (TF) and Free Float (FF) of this activity, respectively?

A
B
C
D
Test Your Knowledge

Consider the following portion of a project network with three sequential activities: Activity A (Duration = 5 days) precedes Activity B (Duration = 8 days), which precedes Activity C (Duration = 4 days). The relationship between A and B is Finish-to-Start (FS) with a lag of 2 days. The relationship between B and C is Start-to-Start (SS) with a lag of 3 days. If Activity A starts on Day 0 (ES_A = 0), what is the Early Start (ES) of Activity C?

A
B
C
D