A forward pass schedules project activities as early as their dependencies allow. It computes each activity’s earliest start (ES) and earliest finish (EF), providing the earliest achievable project timeline and the basis for critical path analysis. section 13.3 section 13.3.1
Apply the calculation across the dependency network:
- Start activities without predecessors at time zero. section 13.3.1
- Set EF to ES plus the activity’s expected duration. section 13.3.1
- Set an activity’s ES to the EF of its predecessor when one predecessor exists; with multiple predecessors, use the latest predecessor EF. section 13.3.1
- Repeat for subsequent activities, then use the resulting times with a backward pass to determine latest times and slack. section 13.3 section 13.3.3
Automated reporting tool
The schedule begins with activity A at ES 0 and EF 3, followed by B at ES 3 and EF 5. Applying the same dependency calculation produces a 29-week project timeline. In a Python implementation, forwardPass stores ES and EF in a pandas data frame; later calculations identify zero-slack critical activities. section 13.3.1
Figure 13.2 A visual representation of the automated reporting tool project plan, where each activity is represented by its unique identifier. Lines and arrows between activities represent dependencies. The sequence of digits immediately beneath each activity represents, in order, the activity’s earliest start time, expected duration, and earliest finish time. The earliest times are derived by using a forward pass through the network. Based on this analysis, the project timeline is 29 weeks, which is the length of the longest path in the network.
Trace each activity’s dependency arrows and read the displayed ES, duration, and EF values across the project network. section 13.3.1







