Problem Statement:
- We need to calculate Total Slack. This is defined in this Smartsheet Guidance (Slack Time in Project Management | Smartsheet) as, “Total slack is the amount of time [days] a task can be delayed without impacting the delivery of the project.” So, for any tasks on the critical path, Total Slack should be nearly 0 days. Whereas all tasks not on the critical path should have plenty of days that they can be delayed before they impact the project end date.
- The TOTALFLOAT() formula keeps calculating 0 days for all tasks regardless of impact to the project schedule. I tried to calculate the Free Slack on my own below since the TOTALFLOAT formula was not working, but it is far from what we need.
- I included a quick example of what I am trying to emulate from MS Projects. I compared the results between MS Project and Smartsheet in the attached screenshots.
Formula (Column: Total Slack):
=IF([% Complete]@row = 1, 0, IF(COUNT(CHILDREN()) > 0, MIN(CHILDREN()), TOTALFLOAT([Task Name]@row)))
Formula (Column: Free Slack):
=IF(COUNT(CHILDREN()) > 0, MIN(CHILDREN([Free Slack]@row)), IF(COUNT(JOIN(SUCCESSORS([Task Name]@row), ", ")) = 0, NETWORKDAYS([End Date]@row, MAX([End Date]:[End Date])), NETWORKDAYS([End Date]@row, INDEX(COLLECT([Start Date]:[Start Date], [Row Number]:[Row Number], MAX(SUCCESSORS([Task Name]@row), ", ")), 1))))
Formula (Column: Critical):
=IF(COUNT(CHILDREN()) > 0, IF(SUM(CHILDREN()) > 0, 1, 0), IF(ISCRITICAL([Task Name]@row) = true, 1, 0))
Formula (Column: Row Number):
=MATCH([Row ID]@row, [Row ID]:[Row ID], 0) - - where ROW ID is a # Auto Number column