8.2 Forward Pass, Backward Pass & Float Calculations (Total vs. Free Float)

Key Takeaways

  • The Forward Pass computes the earliest possible dates (Early Start ES and Early Finish EF) for each activity by moving chronologically from project inception, taking the maximum EF + Lag among all immediate predecessors (ES_j = max(EF_i + Lag_ij)).
  • The Backward Pass calculates the latest permissible dates (Late Finish LF and Late Start LS) without delaying project completion by moving backward from project finish, taking the minimum LS - Lag among all immediate successors (LF_i = min(LS_j - Lag_ij)).
  • Total Float (TF = LS - ES = LF - EF) measures the total duration an activity can be delayed without delaying the contractual project completion date, and is a shared property of the entire path.
  • Free Float (FF = min(ES_successors) - EF) is the duration an activity can be delayed without delaying the Early Start of any immediate successor activity; Interfering Float (IntF = TF - FF) represents the path float consumed when delaying an activity beyond its Free Float.
  • The Critical Path is the continuous sequence of logically connected activities with the minimum Total Float (TF <= 0), dictating overall project duration; path convergence points create high cumulative project risk where delays on multiple independent feeder paths can compound.
Last updated: August 2026

8.2 Forward Pass, Backward Pass & Float Calculations (Total vs. Free Float)

The mathematical core of the Critical Path Method (CPM) consists of two systematic computational sweeps through the project network: the Forward Pass (which establishes early dates) and the Backward Pass (which establishes late dates). The difference between these early and late boundaries defines Float (Slack), revealing project flexibility and identifying the Critical Path.

For Certified Cost Professional (CCP) candidates, performing manual network calculations, interpreting multi-successor float distributions, and identifying merge-point convergence risks are essential test competencies.


1. Mathematical Algorithms & Node Conventions

In project scheduling literature and examination problems, two primary numerical conventions are used to index time:

  1. Discrete / Calendar Day Convention (1-Based): The project starts on Day 1. If an activity starts on Day 1 and has a duration of 1 day, it finishes at the end of Day 1 ($EF = 1 + 1 - 1 = 1$). Equations include $\pm 1$ adjustments.
  2. Continuous / End-of-Day Convention (0-Based): The project starts at Time 0. An activity starting at Time 0 with a duration of 1 finishes at Time 1 ($EF = 0 + 1 = 1$).

Both conventions yield identical float and duration values. In this section, we apply the standard Discrete (1-Based) Day Convention as utilized in professional engineering practice.

+-----------------------------------------------------------------------------+
|                     STANDARD CPM ACTIVITY NODE DATA BLOCK                   |
|                                                                             |
|   +-----------------------+---------------------+-----------------------+   |
|   |    Early Start (ES)   |    Duration (D)     |    Early Finish (EF)  |   |
|   +-----------------------+---------------------+-----------------------+   |
|   |                     Activity Identifier & Description               |   |
|   +-----------------------+---------------------+-----------------------+   |
|   |    Late Start (LS)    |   Total Float (TF)  |    Late Finish (LF)   |   |
|   +-----------------------+---------------------+-----------------------+   |
+-----------------------------------------------------------------------------+

2. The Forward Pass Algorithm (Early Dates)

The forward pass proceeds chronologically from the initial project milestone to the final project deliverable, calculating the earliest possible start ($ES$) and finish ($EF$) for every activity.

+-----------------------------------------------------------------------------+
|                        FORWARD PASS MATHEMATICAL RULES                      |
|                                                                             |
|   1. Initial Start Node:          ES_start = Day 1 (or Day 0)               |
|                                                                             |
|   2. Activity Early Finish:       EF_i = ES_i + D_i - 1                     |
|                                                                             |
|   3. Precedence / Merge Rule:     ES_j = max_{i in Pred(j)} [ Early Tie_ij ] |
|                                                                             |
|      - For Finish-to-Start (FS):  ES_j = max [ EF_i + 1 + Lag_ij ]          |
|      - For Start-to-Start (SS):   ES_j = max [ ES_i + Lag_ij ]              |
|      - For Finish-to-Finish (FF): EF_j = max [ EF_i + Lag_ij ]              |
|                                   ES_j = EF_j - D_j + 1                     |
|      - For Start-to-Finish (SF):  EF_j = max [ ES_i - 1 + Lag_ij ]          |
|                                   ES_j = EF_j - D_j + 1                     |
+-----------------------------------------------------------------------------+
  • Merge Node Principle: When multiple predecessors converge on a single successor, the successor cannot begin until ALL preceding paths have satisfied their dependency constraints. Therefore, the MAXIMUM calculated value always drives $ES$ on the forward pass.
  • Early Project Completion: The overall early completion date is the maximum Early Finish among all terminal activities: $T_{\text{early}} = \max(EF_{\text{terminal}})$.

3. The Backward Pass Algorithm (Late Dates)

The backward pass proceeds in reverse chronological order from the final project deliverable to the project inception, calculating the latest permissible finish ($LF$) and start ($LS$) dates that will not delay project completion.

+-----------------------------------------------------------------------------+
|                        BACKWARD PASS MATHEMATICAL RULES                     |
|                                                                             |
|   1. Terminal Finish Node:        LF_end = EF_end  (or Contract Target T)   |
|                                                                             |
|   2. Activity Late Start:         LS_i = LF_i - D_i + 1                     |
|                                                                             |
|   3. Successor / Burst Rule:      LF_i = min_{j in Succ(i)} [ Late Tie_ij ]  |
|                                                                             |
|      - For Finish-to-Start (FS):  LF_i = min [ LS_j - 1 - Lag_ij ]          |
|      - For Start-to-Start (SS):   LS_i = min [ LS_j - Lag_ij ]              |
|                                   LF_i = LS_i + D_i - 1                     |
|      - For Finish-to-Finish (FF): LF_i = min [ LF_j - Lag_ij ]              |
|      - For Start-to-Finish (SF):  LS_i = min [ LF_j + 1 - Lag_ij ]          |
|                                   LF_i = LS_i + D_i - 1                     |
+-----------------------------------------------------------------------------+
  • Burst Node Principle: When an activity feeds multiple downstream successors, it must finish in time to satisfy the most restrictive successor. Therefore, the MINIMUM calculated value always drives $LF$ on the backward pass.

4. The Hierarchy and Types of Float (Slack)

Float (or slack) is the measure of schedule flexibility. AACE International classifies float into four distinct mathematical forms:

+-----------------------------------------------------------------------------+
|                             THE TAXONOMY OF FLOAT                           |
|                                                                             |
|   TOTAL FLOAT (TF):       TF = LS - ES = LF - EF                            |
|                           Shared path commodity; delays project if exceeded.|
|                                                                             |
|   FREE FLOAT (FF):        FF_i = min_{j in Succ(i)} [ ES_j - 1 ] - EF_i     |
|                           Owned by activity; delays NO successor.           |
|                                                                             |
|   INTERFERING FLOAT (IntF): IntF = TF - FF                                  |
|                           Consumes downstream successor float.              |
|                                                                             |
|   INDEPENDENT FLOAT (IndF): IndF_i = max(0, min(ES_succ) - max(LF_pred) - D)|
|                           Float available under worst-case boundaries.      |
+-----------------------------------------------------------------------------+

1. Total Float ($TF$)

  • Formula: $TF = LS - ES = LF - EF$
  • Definition: The total duration of time an activity can be delayed from its Early Start without delaying the contractual project completion date ($T_{\text{project}}$).
  • Ownership & Project Commodity: Under standard construction contracts and AACE Recommended Practice 29R-03, Total Float is an expendable project commodity that belongs to the project, not exclusively to the owner or contractor. It is consumed on a "first-come, first-served" basis unless explicitly stipulated otherwise in contract terms.

2. Free Float ($FF$)

  • Formula (Discrete): $FF_i = \min_{j \in \text{Succ}(i)} (ES_j - 1) - EF_i$
  • Definition: The duration of time an activity can be delayed without delaying the Early Start of ANY immediate successor activity.
  • Ownership: Unlike Total Float, Free Float belongs exclusively to the individual activity.

3. Interfering Float ($IntF$)

  • Formula: $IntF = TF - FF$
  • Definition: The portion of Total Float that, if consumed by an activity, will delay the Early Start of downstream successor activities without delaying the ultimate project completion date.
  • Mechanism: When an activity is delayed beyond its Free Float, it eats into the float of subsequent activities, "interfering" with their scheduling flexibility.

4. Independent Float ($IndF$)

  • Formula: $IndF_i = \max\left(0, , \min_{j \in \text{Succ}(i)}(ES_j - 1) - \max_{k \in \text{Pred}(i)}(LF_k + 1) - D_i + 1\right)$
  • Definition: The float available to an activity when all preceding activities finish as late as possible ($LF$) and all succeeding activities start as early as possible ($ES$). It represents unique, isolated float that cannot be transferred.

5. Negative Float ($TF < 0$)

  • Mathematical Origin: Occurs when a contractual completion milestone or hard constraint ($LF_{\text{imposed}}$) is earlier than the calculated early finish date ($EF_{\text{calculated}}$) derived from the forward pass: $TF = LF_{\text{imposed}} - EF_{\text{calculated}} < 0$.
  • Significance: Indicates that the project is mathematically forecasted to finish late by $|TF|$ days, requiring immediate corrective action (crashing, fast-tracking, scope reduction).

5. Critical Path & Path Convergence Risks

Identifying the Critical Path

  • Definition: The longest continuous chain of logically connected activities through the network diagram that dictates the shortest possible project completion duration.
  • Mathematical Test: Activities and paths where Total Float is minimum ($TF \le 0$). When project completion $LF$ is set equal to early completion $EF$, the critical path has $TF = 0$.

Multiple & Near-Critical Paths

  • Multiple Critical Paths: When two or more parallel paths through the network have identical total duration ($TF = 0$). Increases project execution risk because a delay on any branch delays the overall project.
  • Near-Critical Paths: Paths with low positive float (e.g., $0 < TF \le 5$ days). In practice, minor operational delays routinely consume this small float, causing a path flip where a secondary path becomes the driving critical path.

Path Convergence (Merge Bias)

At merge nodes where multiple independent paths converge, deterministic CPM underestimates delay probability. Even if each converging path has an 80% probability of on-time completion, the joint probability that the merge node starts on time is:

P(Merge Start On Time)=P(Path1)×P(Path2)××P(Pathn)P(\text{Merge Start On Time}) = P(\text{Path}_1) \times P(\text{Path}_2) \times \dots \times P(\text{Path}_n)

For 3 converging paths: $0.80 \times 0.80 \times 0.80 = 51.2%$. Quantitative risk analysis (Monte Carlo simulation) is necessary to evaluate merge bias.


6. Comprehensive Step-by-Step Worked Network Calculation

Consider an industrial processing plant construction subproject consisting of 7 activities (Activities A through G) with discrete 1-based day numbering:

+-----------------------------------------------------------------------------+
|                         WORKED CPM NETWORK TOPOLOGY                         |
|                                                                             |
|                    +---> [ B: Foundation (6d) ] ---> [ D: Steel (7d) ] --+  |
|                    |                                       ^             |  |
|   [ A: Site (5d) ]-+                                       |             |  |
|                    |             [ C: Procure Steel (10d) ]+             |  |
|                    |                                                     v  |
|                    +---> [ E: Underground Pipe (4d) ] -----> [ F: Piping (5d) ]
|                                                                      |      |
|                                                                      v      |
|                                                             [ G: Comm (3d) ]|
+-----------------------------------------------------------------------------+

Activity Parameters & Network Logic:

  • Activity A ("Site Clearing & Earthwork"): Duration = 5 days, Predecessor: None
  • Activity B ("Foundation Concrete"): Duration = 6 days, Predecessor: A (FS)
  • Activity C ("Procure Structural Steel"): Duration = 10 days, Predecessor: None
  • Activity D ("Erect Structural Steel"): Duration = 7 days, Predecessors: B (FS), C (FS)
  • Activity E ("Underground Piping & Utilities"): Duration = 4 days, Predecessor: A (FS)
  • Activity F ("Piping Tie-Ins & Hookup"): Duration = 5 days, Predecessors: D (FS), E (FS)
  • Activity G ("Commissioning & Handover"): Duration = 3 days, Predecessor: F (FS)

1. Forward Pass Calculations:

  • Activity A: $ES_A = 1 \implies EF_A = 1 + 5 - 1 = \mathbf{5}$
  • Activity C: $ES_C = 1 \implies EF_C = 1 + 10 - 1 = \mathbf{10}$
  • Activity B: $ES_B = EF_A + 1 = 5 + 1 = 6 \implies EF_B = 6 + 6 - 1 = \mathbf{11}$
  • Activity E: $ES_E = EF_A + 1 = 5 + 1 = 6 \implies EF_E = 6 + 4 - 1 = \mathbf{9}$
  • Activity D (Merge Node): Predecessors B ($EF = 11$) and C ($EF = 10$).
    $ES_D = \max(EF_B, EF_C) + 1 = \max(11, 10) + 1 = 11 + 1 = 12 \implies EF_D = 12 + 7 - 1 = \mathbf{18}$
  • Activity F (Merge Node): Predecessors D ($EF = 18$) and E ($EF = 9$).
    $ES_F = \max(EF_D, EF_E) + 1 = \max(18, 9) + 1 = 18 + 1 = 19 \implies EF_F = 19 + 5 - 1 = \mathbf{23}$
  • Activity G: $ES_G = EF_F + 1 = 23 + 1 = 24 \implies EF_G = 24 + 3 - 1 = \mathbf{26}$
  • Project Total Duration: 26 Working Days.

2. Backward Pass Calculations ($LF_G = EF_G = 26$):

  • Activity G: $LF_G = 26 \implies LS_G = 26 - 3 + 1 = \mathbf{24}$
  • Activity F: $LF_F = LS_G - 1 = 24 - 1 = 23 \implies LS_F = 23 - 5 + 1 = \mathbf{19}$
  • Activity D: $LF_D = LS_F - 1 = 19 - 1 = 18 \implies LS_D = 18 - 7 + 1 = \mathbf{12}$
  • Activity E: $LF_E = LS_F - 1 = 19 - 1 = 18 \implies LS_E = 18 - 4 + 1 = \mathbf{15}$
  • Activity B: $LF_B = LS_D - 1 = 12 - 1 = 11 \implies LS_B = 11 - 6 + 1 = \mathbf{6}$
  • Activity C: $LF_C = LS_D - 1 = 12 - 1 = 11 \implies LS_C = 11 - 10 + 1 = \mathbf{2}$
  • Activity A (Burst Node): Successors B ($LS = 6$) and E ($LS = 15$).
    $LF_A = \min(LS_B, LS_E) - 1 = \min(6, 15) - 1 = 6 - 1 = 5 \implies LS_A = 5 - 5 + 1 = \mathbf{1}$

3. Float Calculations & Critical Path Determination:

Act IDActivity DescriptionDuration ($D$)PredecessorsEarly Start ($ES$)Early Finish ($EF$)Late Start ($LS$)Late Finish ($LF$)Total Float ($TF$)Free Float ($FF$)Interfering Float ($IntF$)Critical Path?
ASite Clearing & Earthwork5None1515000YES
BFoundation Concrete6A (FS)611611000YES
CProcure Structural Steel10None110211110NO
DErect Structural Steel7B, C (FS)12181218000YES
EUnderground Piping4A (FS)691518990NO
FPiping Tie-Ins & Hookup5D, E (FS)19231923000YES
GCommissioning & Handover3F (FS)24262426000YES
  • Primary Critical Path: A $\rightarrow$ B $\rightarrow$ D $\rightarrow$ F $\rightarrow$ G (Total Duration = 26 Days, $TF = 0$).
  • Near-Critical Path: C $\rightarrow$ D $\rightarrow$ F $\rightarrow$ G ($TF = 1$ Day; a 2-day procurement delay on C will make it critical).

[!TIP] AACE CCP Exam Calculation Rules:

  • Forward Pass Merge Nodes = MAXIMUM Early Date.
  • Backward Pass Burst Nodes = MINIMUM Late Date.
  • Total Float = $LS - ES = LF - EF$.
  • Free Float = $\min(ES_{\text{succ}} - 1) - EF$.
  • Interfering Float = $TF - FF$.
Loading diagram...
Worked CPM Network Diagram & Critical Path Highlighting
Test Your Knowledge

In a project CPM network, Activity K (Duration = 6 days) has Early Start ES = 12 and Early Finish EF = 17. Activity K has two immediate successors: Activity L (ES = 20, LS = 24, Duration = 5) and Activity M (ES = 22, LS = 22, Duration = 8). The Late Finish of Activity K is calculated as LF = 21. Assuming standard discrete (1-based) end-of-day logic with all Finish-to-Start relationships (0 lag), what are the Total Float (TF), Free Float (FF), and Interfering Float (IntF) of Activity K?

A
B
C
D
Test Your Knowledge

An activity "Install Turbines" (Activity T, Duration = 8 days) has a Finish-to-Start predecessor Activity S ("Foundation Curing", Duration = 14 days) and two Finish-to-Start successors: Activity U (Duration = 5 days, LS_U = 35) and Activity V (Duration = 10 days, LS_V = 32). The relationship between Activity T and Activity V has a positive lag of +3 days (FS + 3d), while the relationship between Activity T and Activity U has zero lag (FS + 0d). Using discrete 1-based scheduling, what is the Late Finish (LF_T) and Late Start (LS_T) of Activity T during the backward pass?

A
B
C
D
Test Your Knowledge

A project scheduler analyzes a network where three independent, parallel paths of activities converge at a major assembly milestone (Activity M, "Reactor Vessel Installation"). Path 1 has a Total Float of 1 day, Path 2 has a Total Float of 2 days, and Path 3 has a Total Float of 0 days (the deterministic critical path). When applying quantitative risk analysis (Monte Carlo / PERT simulation), why does this "path convergence" node represent a significantly higher probability of project delay than indicated by deterministic CPM float alone?

A
B
C
D
Test Your Knowledge

A commercial construction contract specifies a mandatory contractual completion date of Day 120 (Contractual LF = 120). The forward pass through the unconstrained CPM network reveals that the Early Finish of the final activity on the critical path is Day 128 (EF_project = 128). What is the resulting Total Float on the critical path, and what does this condition signify under AACE cost engineering standards?

A
B
C
D