The forward pass starts at the beginning of the project, and calculates an Early Start date and an Early Finish date for each task and milestone.

These are what we call the ‘Can happen’ dates. They are the earliest dates that each task and milestone can start and finish based on all of the information in the schedule model. If everything goes exactly as planned, these dates ‘Can happen’.

As described previously, in a standard schedule model, the Early dates are shown on the top of the task box.

 

A start milestone is any milestone without a predecessor. You should typically only have one start milestone (Project Start). The exception, might be if you have an external task (a delivery) represented in your project.

A start milestone must be given a start date constraint to initiate the forward pass so that Microsoft Project knows when to schedule the Early Start of the milestone. The start date constraint we use will only affect the forward pass.

In Microsoft Project, the Early Start of a start milestone is assigned in one of two ways:

    1. A Start No Earlier Than Constraint Type (sometimes called a SNET), may be set on the milestone, with the Constraint Date equal to the planned start of the milestone.

    2. If no start date constraint is assigned, Microsoft Project will use the Project Start Date as the Early Start of the start milestone.

If the start milestone should start on a date other than the Project Start Date, a Start No Earlier Than constraint must be set. This is how we would assign the date that we expect to receive an external delivery, such as Receive Unit above.

To set a Start No Earlier Than date, access the Task Information dialog from the Task ribbon in the Properties section by clicking the Information button, and then click the Advanced tab.

You may also access Task Information by double clicking on the milestone.

In the Task Information dialog, set the Constraint Type to Start No Earlier and the Constraint Date to the date the milestone is expected to start.

Task Information Dialog
Tasks may also be assigned a Start No Earlier Than Date Constraint.

If it is a start task (with no predecessors), Microsoft Project will set the Early Start date to the date you specify, just as it will with the milestone.

If a task or milestone has a predecessor, and is assigned a Start No Earlier Than Date Constraint, Microsoft Project will evaluate that Constraint Date as one potential Early Start date for the task or milestone.

The formulas for calculating Early Start and Early Finish are shown below. Because the forward pass calculates start to finish (left to right), the Early Finish of a task is typically calculated from its Early Start.

Then successor dates are calculated based on the predecessor.

  • Early Finish (EF) = Early Start (ES) + Duration – 1
  • ES of Successor (FS link) = EF of Predecessor + Lag + 1   (Lag should be 0 in a FS link)
  • ES of Successor (SS link) = ES of Predecessor + Lag
  • EF of Successor (FF link) = EF of Predecessor + Lag

If a task has multiple predecessors, the ES of the successor is driven by the latest predecessor.

In the diagram below, if Task A finishes at the end of 6/1, Task B finishes at the end of 6/5, and Task C finishes at the end of 6/3, in order to honor all of the links, the earliest that Task D can start (Early Start) is the beginning of 6/6 – after the latest predecessor finishes.

Let’s look at some calculation examples. To simplify our calculations, we will use day numbers instead of dates. We will also assume a seven day work week.

If a task has an Early Start date of day 1, the formula to calculate its Early Finish is EF = ES + Duration – 1 = 1 + 10 – 1 = 10. If the earliest that the task can start is the beginning of day 1, than the earliest it can finish is at the end of day 10.

For a finish to start link, the Early Start of the successor (Task B) is equal to the Early Finish of the predecessor + Lag (which should be 0 with the FS link) + 1. 10 + 0 + 1 = 11

Then we calculate the EF of Task B using the same formula we just used to calculate the EF for Task A, EF = ES + DU – 1.  11 + 10 – 1 = 20

For a start to start link, the Early Start of the successor (Task B) is equal to the Early Start of the predecessor + Lag.  1 + 5 = 6

Again, we calculate the EF of Task B using the same formula as before of EF = ES + DU -1.  6 + 10 – 1 = 15

For a finish to finish link, the Early Finish of the successor (Task B) is equal to the Early Finish of the predecessor + Lag.  10 + 5 = 15

This time, we need to calculate the ES from the EF. We switch the formula a bit to be ES = EF – DU +1.  15 – 10 + 1 = 6

As described previously, if a task has multiple predecessors, its Early date (in this case Early Start) is driven by the latest predecessor.

Here is an example of a very small schedule model with two paths. Again, where there are multiple predecessors (Task E), the Early Start of E is driven by the latest predecessor (Task D).

Remember the phrase – ‘Latest Early Date’.

 
Now we will look at the calculations if Task C has a Start No Earlier Than Date Constraint assigned, with a Constraint Date of day 28. This could represent, for example, that Task C is Testing, and the Test Facility is tied up until day 28. The SNET limits the task so that the earliest it can start is day 28, however it can start later based on other links.

Microsoft Project will evaluate two possible Early Start dates for Task C: 21 based on the predecessor of Task B, and 28 based on the SNET. The latest Early date is always the driver, so the Early Start for Task C is 28 and its Early Finish is 42.

Microsoft Project then must evaluate two possible Early Start dates for Task E: 43 based on Path 1, and 41 based on Path 2. Again, where there are multiple predecessors, the Early Start is driven by the latest predecessor (Task C).

1 day versus 0 day calculations:

When looking at the dates calculated for a 1 day task and a 0 day milestone, both starting on day 1, they look like they are the same.

The difference is seen in the dates for the start of the successors:

Even if you are only viewing dates, Microsoft Project also tracks times for each date calculation. The 1 day milestone starts, by default, at 8:00 AM and finishes at 5:00 PM. The 0 day milestone starts and finishes, by default, at 8:00 AM.

Milestones are the exception to the normal calculation formulas. They are 0 Duration, so no time passes and the successor can start at the exact same time as the milestone predecessor starts and finishes.

In this example of multiple predecessors to a milestone, the milestone can start and finish at the same time as the latest predecessor finishes:

NOTE: The Start and Finish dates that are displayed in Microsoft Project, are by default, equal to the Early Start and Early Finish.

This is CRITICAL to understand, because these are the dates that are typically being communicated to your Sponsor, your customer, and other key stakeholders.

These are the earliest dates that each task and milestone can start and finish based on all of the information in the schedule model. It is the best case scenario!

This is something that you should help your stakeholders understand as well, because there is minimal likelihood that all of these dates will be accomplished.