Microsoft Project Deep Dive: How Do Constraints and Deadline Dates Affect the Total Slack Calculation?

Background Information

Recently, one of my fellow EPMA team members and I conducted three presentations for a large aerospace manufacturer. These presentations offered a “Deep Dive” into task planning topics such as using constraints, using task dependencies, and using Task Types. During the presentation on constraints, one of the participants asked if constraints affect the Total Slack calculation. The participant’s question got me thinking about the exact relationship between constraints and the Total Slack calculation.

In response to the question, in this blog post I will answer the participant’s question and show you how Microsoft Project calculates the Total Slack values when you apply constraints to tasks in a project. I will also show you how Deadline dates affect the Total Slack calculation as well. In my follow-up blog post, I will show you how a missed constraint date or Deadline date can generate negative Total Slack values in a project, and show Critical tasks that are not truly Critical.

How Do Constraints Impact Total Slack?

Notice in the project shown in the following figure that I have no constraints applied to any task, as indicated by the ASAP value in the Constraint column for each task. This results in a Total Slack calculation of 0 days for each task. By the way, the Total Slack value for each task is the number of the days the task can slip without affecting the Finish date of the entire project. If a task has a Total Slack value of 0 days, this means that the task cannot slip, indicating that the task is a Critical task. In the following figure, you can see that every task is a Critical task, as indicated by the red Gantt bar for each task.

There are several situations in which applying a constraint to a task can generate a Total Slack value greater than 0 days. The first situation occurs when you apply a constraint to the Start date or Finish date of a task so that so that the Constraint Date value is greater than the original Start date or Finish date value. The constraints you might use in this situation include Start No Earlier Than (SNET), Must Start On (MSO), Finish No Earlier Than (FNET), and Must Finish On (MFO). When you do this, Microsoft Project moves the Start date of the selected task away from the Finish date of its immediate predecessor task, which creates a “gap” between the these two tasks. Microsoft Project calculates the Total Slack value for every predecessor task as the amount of the “gap” between these two tasks measured in working days. This means that any predecessor task can slip up to the Total Slack value without delaying the Finish date of the entire project.

To show you how the first situation works, I apply a Start No Earlier Than (SNET) constraint to the Test 1 task with a Constraint Date value of 02/18/15. Because the Constraint Date value is greater than the original Start date value of this task, Microsoft Project calculates a Total Slack value 0f 2 days for the two predecessor tasks, which are the Design 1 and Build 1 tasks. Because the Total Slack value for these tasks is greater than 0 days, this means these two tasks are now non-Critical tasks, as indicated by the blue Gantt bars for these two tasks shown in the following figure.

The second situation occurs when you apply an inflexible constraint to the Start date or Finish date of a task so that the Constraint Date value is greater than or equal to the original Start date or Finish date value for the task. These two inflexible constraints include Finish No Later Than (FNLT) and Start No Later Than (SNLT). In this situation, Microsoft Project calculates the Total Slack value for the selected task and for every predecessor task using the difference between the Constraint Date value and the original Start date or Finish date value. There is one exception to this calculation formula, but I will explain the exception a little later in this blog post.

To show you how the second situation works, I apply a Finish No Later Than (FNLT) constraint to the Build 1 task with a Constraint Date value of 02/13/15. Because the Constraint Date value is equal to the Finish date value for the Build 1 task, Microsoft Project calculates a Total Slack value of 0 days for the Design 1 and Build 1 tasks. You can see this in the following figure.

If I change the Constraint Date value to 02/16/15 for the FNLT constraint on the Build 1 task, Microsoft Project recalculates the Total Slack values. Because the Constraint Date value is 1 day greater than the Finish date value for the Build 1 task, the software calculates a Total Slack value of 1 day for the Design 1 and Build 1 tasks. You can see this in the following figure.

If I change the Constraint Date value to 02/17/15 to for the FNLT constraint on the Build 1 task, the software recalculates the Total Slack value again. Because the Constraint Date value is 2 days greater than the Finish date value for the Build 1 task, the software calculates a Total Slack value of 2 days for the Design 1 and Build 1 tasks. You can see this in the following figure

Now I want to show you the exception to the Total Slack calculation formula. If I change the Constraint Date value to 02/18/15 to for the FNLT constraint on the Build 1 task, Microsoft Project does not recalculate the Total Slack value for the task and its predecessor. Instead, the software continues to calculate a Total Slack of 2 days on the Design 1 and Build 1 tasks. You can see this in the following figure.

So, the plot thickens! Why did Microsoft Project only calculate a Total Slack value of 2 days when we might have expected it to calculate a value of 3 days instead? In my previous two examples, I gave you the simplified description of how the software calculates the Total Slack value for a task with an inflexible constraint such as FNLT. The real calculation formula for this example is as follows:

1. The software calculates the difference between the Constraint Date value and the Finish date value for the task. In this case, the difference would be 3 days.

2. The software also calculates the difference between the Finish date value of the task and the Start date value of its immediate successor task. In this case, the difference would be 2 days.

3. The software sets the Total Slack value as the smaller of the values calculated in steps #1 and #2 above. In this case, 2 days is the smaller value, therefore, the Total Slack value is 2 days.

By the way, the Constraint column shown in each of the preceding figures is not a default column available in Microsoft Project. The software does include a Constraint Type column, which shows values such as Finish No Later Than or Start No Earlier Than in the column. The Constraint column I am using is actually a custom column containing a formula that shows the abbreviation for the type of constraint applied to the task. This allows me to use a narrower column to show the constraint type for each task. If you would like to know the formula I am using to show the abbreviated constraint type values, please send me an e-mail at the following address and I will share the formula with you:

So, do constraints affect the Total Slack calculation? Now you know that the answer to this question is yes. And you also know precisely how Microsoft Project calculates the Total Slack when constraints are applied to tasks in a project.

How Do Deadline Dates Impact Total Slack?

For Critical tasks, Deadline dates do not impact the Total Slack calculation in Microsoft Project. In the project shown in the following figure, notice that I set a Deadline date of 03/04/15 on the Phase I Complete task. The Deadline date is three days later than the Finish date of this task, but the Total Slack value is still 0 days for every task in the project.

For non-Critical tasks, the situation is the opposite: Deadline dates do impact the Total Slack calculation. In the following figure, notice that all of the tasks in the PHASE II section of the project are non-Critical tasks, indicated by their blue Gantt bars. Notice that I applied a Deadline date of 02/10/15 on the Build 2 task, which resulted in a Total Slack value of 1 day for this task. Notice also that I applied a Deadline date of 2/20/15 on the Phase II Complete milestone task, which resulted in a Total Slack value of 3 days for this milestone task.

When analyzing the Total Slack in a project, keep in mind that Deadline dates do not affect how Microsoft Project calculates the Total Slack values for Critical tasks, but Deadline dates do affect how the software calculates Total Slack values for non-Critical tasks. In my follow-up blog post, I will show you how missed constraint dates or missed Deadline dates can cause the software to generate negativeTotal Slack values in a project, and to display Critical tasks that are not truly Critical tasks! Be watching for this follow-up blog post to learn even more about how constraints and Deadline dates impact the Total Slack calculation.

Did this blog post help you? Would you like to learn more about how to effectively use Microsoft Project, Microsoft Project Server, or Project Online to manage your projects? If so, please consider enrolling in one of our upcoming open enrollment training classes.

You can take our training classes “in person” in our EPMA training center in Houston, Texas or “live-virtual” over the Internet. And don’t forget to follow us on Twitter, LinkedIn, and Facebook.