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 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.


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.
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.


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.
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


Again, we calculate the EF of Task B using the same formula as before of EF = ES + DU -1. 6 + 10 – 1 = 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




Remember the phrase – ‘Latest Early Date’.

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).


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.




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.


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.