Tasks With Finish-To-Finish Relationships And No Lag

The PDM (Precedence Diagram Method) method of defining relationships between activities is a powerful tool. Often, however, Schedulers, sometimes unknowingly, misuse the options available when defining relationships between activities. In the illustration below, under Method 1, Activity “B” is related to “C” using Finish-To-Finish (FF) with Lag = 0.

This may appear as a reasonable approach as often, the Activity Name description(s) may provide a false justification for this relationship. Unfortunately, the Forward and Backward pass doesn’t care about your Activity Name description. Therefore, trying to justify the use of Method 1 by using a “real world” situation fails as an argument to promote its use.

The Forward and Backward Pass doesn’t care about your Activity Name description.

In Figure 1 above, by observation, since “C” has a shorter duration than “B”, the Early Start (ES) for “C” is misrepresented since “C” can start at the completion of “A”. Furthermore, the Total Float (TF) is equally misrepresented since the Early Finish (EF) is the same as “B”.

If there is no lag (say this to yourself a few times) between “B” and “C”, then the finish of both “B” and “C” are equally responsible for starting “D”. Neither “B” or “C” have priority over controlling the start date of activity “D” with respect to logic. With respect to Duration however, activity “B” alone controls the start date of activity “D”. Therefore, the correct approach is to relate “B” FS to “D”.

In Method 1 above, activity “C” is behaving as if it was constrained using the “As Late as Possible” option. By misrepresenting the ES of “C”, the result could lead to an inadvertent impact to the Project Completion date by starting “C” too late. This could cause a loss of trust in the schedule. The solution is to follow Method 2, i.e. “B” is related to “D” using FS. Not only is this trap avoided but relationships between activities are more clearly defined.

After all this, if you’re still not convinced and still feel the need to use the FF 0, then consider re-assigning the scope of work between Activities “B” and “C”. Consider separating the scope of the tasks so that the finish portion of Activity “C” is now included as part of Activity “B” and the start portion of Activity “C” starts at the completion of Activity “A”. Normalizing CPM Network logic to the basic Finish-to-Start relationships avoids confusion and possible erroneous Start/Finish dates and Total Float values.

Zümmer checks this anomaly with Report #35 – “Tasks With Finish-to-Finish Relationships And No Lag” reports all instances. In the illustration below, each Finish-To-Finish relationship with no lag is clearly and individually paired. In addition, the Activity Status of the predecessor and successor is listed along with each Original Duration, Total Float, type of Relationship and lag value between the two activities. Relationships with lower Total Float values have a higher resolution priority over relationships with a higher Total Float value.

Zümmer Analysis Report #35

Copyright ©2019 FoxQuest Systems, Inc. – All Rights Reserved

Non-Overlapping Lags

Generally, in a CPM Network, lag values should be smaller than the duration values of either its predecessor or successor activity.  In other words, lags should not cause gaps in the flow of activities through the CPM network. Unfortunately, this is a very easy mistake to make and worse, far more difficult to detect.

There are 4 possible cases where a non-overlapping lag may occur:

Case 1:

The Negative Lag is greater than the sum of the Predecessor’s Original Duration and the Successor’s Original Duration (Figure 1).

Figure 1

Suppose the Original Duration (OD) for Activities “A” and “B” are set to 5 Days each and the relationship is set to Finish-To-Start (FS) with a lag of -9 Days. This is overlapping since the sum of the durations of “A” and “B” is 10 Days.

Now Suppose, the OD for activities “A” and “B” are each reduced to 2 Days. Unless the relationship between “A” and “B” is changed, a non-overlapping condition will occur (Figure 1) since the absolute value FS lag of -9 Days is greater than the OD of “A” plus the OD of “B” (now at 4 Days). The gap between activity “A” and “B” is now 5 Days caused by the non-overlapping lag.

In P6, no Filter that can be constructed to check for this type of Non-Overlapping Lag.

Zümmer Analysis Report #31 – “Negative Lag Greater Than Sum of Both Original Durations” identifies the Non Overlapping lag condition “Neg Lag > Pred OD + Succ OD”. In the Figure 2 below, each non-overlapping relationship is clearly and individually paired. In addition, the Activity Status of the predecessor and successor is listed along with each Original Duration, the type of Relationship and lag value between the two activities.

Figure 2

Case 2:

A Positive Finish-To-Start lag is used between 2 Activities (Figure 3)

Figure 3

Suppose the Original Duration (OD) for Activities “A” and “B” are set to 7 Days each and the relationship is set to Finish-To-Start (FS) with a lag of -2 Days. This is overlapping since the sum of the durations of “A” and “B” is 14 Days.

Now suppose the lag value is then changed to +7 Days. The gap between activity “A” and “B” is now 7 Days caused by the non-overlapping lag.

In P6, no Filter that can be constructed to check for this type of Non-Overlapping Lag.

Zümmer Analysis Report #32 – “Activities with Finish-To-Start Relationship & Positive Lag” identifies the Non Overlapping lag condition “FS with Positive Lag”. In Figure 4 below, each non-overlapping relationship is clearly and individually paired. In addition, the Activity Status of the predecessor and successor is listed along with each Original Duration, the type of Relationship and lag value between the two activities.

Figure 4

Case 3:

A Start-To-Start Lag is greater than the Predecessor’s Original Duration (Figure 5).

Figure 5

Suppose the Original Duration (OD) for Activities “A” and “B” are set to 15 Days and the relationship is set to Start-To-Start (SS) with a lag of 8 Days. This is acceptable since “A” and “B” overlap.

 Suppose now, the OD for “A” is reduced to 5 Days. Unless the relationship between “A” and “B” is changed, a non-overlapping condition will occur since the SS lag of 8 Days is greater than the OD of “A” (now at 5 Days). The gap between activity “A” and “B” is now 3 Days caused by the non-overlapping lag.

In P6, no Filter that can be constructed to check for this type of Non-Overlapping Lag.

Zümmer Analysis Report #33 – “Start-To-Start Relationships & Lag Greater Than Predecessor’s Original Duration” identifies the Non Overlapping lag condition “SS Lag > Predecessor OD”. In Figure 6 below, each non-overlapping relationship is clearly and individually paired. In addition, the Activity Status of the predecessor and successor is listed along with each Original Duration, the type of Relationship and lag value between the two activities.

Figure 6

Case 4:

A Finish-To-Finish Lag is greater than the Successor’s Original Duration (Figure 7)

Figure 7

Suppose the Original Duration (OD) for Activities “A” and “B” are set to 15 Days and the relationship is set to Finish-To-Finish (FF) with a lag of 8 Days. This is acceptable since “A” and “B” overlap.

Suppose now, the OD for “B” is reduced to 5 Days. Unless the relationship between “A” and “B” is changed, a non-overlapping condition will occur since the FF lag of 8 Days is greater than the OD of “B” (now at 5 Days). The gap between activity “A” and “B” is now 3 Days caused by the non-overlapping lag.

In P6, no Filter that can be constructed to check for this type of Non-Overlapping Lag.

Zümmer Analysis Report #34 – “Finish-To-Finish Relationships & Lag Greater Than Successor’s Original Duration” identifies the Non Overlapping lag condition “FF Lag > Successor OD”. In Figure 8 below, each non-overlapping relationship is clearly and individually paired. In addition, the Activity Status of the predecessor and successor is listed along with each Original Duration, the type of Relationship and lag value between the two activities.

Figure 8

Copyright ©2019 FoxQuest Systems, Inc. – All Rights Reserved

The Partial Day Effect

Finding and eliminating “Partial Days” is an important part of a Scheduler’s QA/QC routine.

A deeper look into the Partial Day Effect

Since most CPM scheduling performed in the construction industry measures time to the nearest day, calculating overall project durations by summing tasks containing units of measure less than a whole day should be strictly avoided. Keep in mind that schedulers are not timekeepers and they should resist the temptation to calculate the overall project time using durations more precise that a whole day. Furthermore, since schedulers typically record actual dates to the nearest day, it doesn’t make sense to calculate future dates to anything more precise than whole days.

The “Partial Day” (or Fractional Day) Effect is defined as:

  1. Tasks that do not start at the beginning of the day.
  2. Tasks that do not finish at the end of the day.
  3. Tasks that have non-integer day value for their Original or Remaining Duration.
  4. Tasks that have non-integer day value for their Total Float or Free Float.
  5. Lags that have non-integer day values.

The Partial Day Effect manifests itself when upon browsing the calculated dates in a CPM schedule; you or someone else notice activities are starting on the same day as its predecessor’s finish date. This can cause confusion especially with experienced CPM users who are accustomed to seeing predecessor finish dates completing on the day before (or just before) the successor’s start date.

In Figure 1 below, the User Preferences Time option is set to “Do not show time”. Note that the Early Finish date for Activity “A1040 – Activity C1” is 09-Jun-16 which is the same date for the Early Start of its successor, Activity “A1050 – Activity F”. In addition, Activity “A1060 – Activity C2” has the same Original and Remaining Duration as Activity C1 yet is not on the Critical Path. Furthermore, the layout is grouped by Total Float; however there are 2 separate groups for the same Total Float value of 0. How can this be?

Figure 1

In Figure 2 below, the User Preferences Time option is now set to “24 hour (13:30)” Under these settings, the Partial Day Effect is revealed by observing the Datetime format of Start and Finish dates.

Figure 2

The Partial Day Effect in this situation was caused due to how each activity was statused.

  1. A1020 was updated by assigning a Duration Percent Complete of 35%.
  2. A1060 was updated by assigning a Remaining Duration (RD) of 16 days.

P6 calculates the RD for A1020 as 25*(1-.35) or 16.25 Days. The .25 remainder (or 2 hours) is reflected in the Finish date as 09-Jun-16 10:00 (10AM). Meanwhile, A1060 displays the same RD as A1020; however, the Finish date is reflected as 08-Jun-16 at 17:00 (5PM). Furthermore, A1060 is not on the Critical Path even though the Total Float (TF) value is displayed as 0 (the Duration Format Decimal value for the Day Unit of Time is set to 0).

The Partial Day Effect is also caused by how P6 stores dates and durations. In the typical P6 Duration fields such as Original Duration and Remaining Duration the default entry mode is to display durations in days. However, the actual duration value stored in the P6 database is in Hours. In the Figure 3 below, the activities in Figures 1 and 2 are shown with their native field names and values for their Original Duration (Target_drtn_hr_cnt); Remaining Duration (Remain_drtn_hr_cnt); Total Float (Total_float_hr_cnt);  and Free Float (Free_flt_drtn_hr_cnt).

Figure 3

The conversion occurs as a result of the Calendar setting value entered under the Hours/Day textbox in the Hours per Time Period window as shown in Figure 4 below.

Figure 4

Since the Work-Hours per day entry is “8” in Hours/Day, P6 automatically performs the “on-the-fly” mathematical conversion as values are entered. Therefore, for Activity 1020, the Original Duration entry of 40 is natively stored as 40*8 or 320 in the Task table’s “Target_drtn_hr_cnt” field. Similarly, the Remaining Duration, calculated as 35% Complete, is stored as 25*(1-.35)*8 or 130 in the Task table’s “Remain_drtn_hr_cnt” field.

Storing data in hours, instead of days often causes the Partial Day Effect when “mixed” calendars are used.

Mixing Calendars in a CPM Network

Typically, schedulers define their calendars to model whole days consistent with typical construction work environments in their area. For example, a typical calendar structure consists of a work-day that starts at 8:00AM, breaks for lunch from 12 Noon to 1:00PM and ends at 5:00PM for a total work-day of 8 Hours/Day. Based on these parameters, a typical P6 5-Day Work-Week Global or Project Calendar would have the following configuration in Figure 5 below.

Figure 5

6-Day Work-Week and 7-Day Work-Week would follow the same configuration but with the added additional Nonwork days accordingly.

Often, this convention above is violated when for example; a 24 Hour Calendar is used for concrete curing activities or some other type of “round-the-clock” activity. For this reason, I strongly discourage the use of 24-Hour calendar under any circumstance. For these types of activities, a 7-Day Work Week Calendar based on an 8 Hour per day and no holidays is the best option and works just as well. Many articles “for instructional purposes” use a 24-Hour Calendar that is assigned to a concrete curing activity or other “round-the-clock” activity. This option should be avoided in real-time construction activities since it is problematic and is often the root cause of Partial Days.

In the Figure 6 below, two “7-Day Cure” activities are used between a concrete pour activity and a concrete form activity. Activity ST8420 is assigned to a 7-Day Calendar using an 8 Hour per day format. Activity ST78430 is assigned to a 7-Day Calendar using a 24 Hour per day format. Activity ST68920 and ST68180 are both assigned to a 5-Day “Field” Work-Day Calendar using an 8 Hour per day format. The activities below are grouped by Total Float value. Upon calculating the schedule, both Cure activities finish on the same day, however, they both calculate a different Total Float value.

The activity on the 7-Day/8Hr calendar correctly calculates the starting and finish date while the activity on the 7-Day/24Hr calendar starts on the same day as the Pour Footing activity (18-Oct-19). Also, the overall duration is shown as 7 Days but based on the displayed Start and Finish date equates to 8 Days.

In addition, there is an apparent discrepancy in the Free Float values. Since 25-Oct-19 falls on a Friday, the Cure activity on the 7-Day/8Hr Calendar correctly calculates the Free Float as 2 Days since the successor, Activity ST6810 start on Monday, 28-Oct-19. The Free Float on the 7-Day/24Hr Calendar incorrectly calculates the Free Float as 3 Days as shown below in Figure 6.

Figure 6

When the Time option is set to 24 Hours, the following values appear in Figure 7 below.

Figure 7

Note that the 24 Hour time setting reveals additional information to clear up the confusion. Note that the start time for Activity ST84730 is 17:00 (5:00PM). Since this activity is on a 24 Hour calendar, it starts immediately after its predecessor’s finish date. Activity ST78420 and ST87430 both correctly finish at the same time.

When the Duration value option is changed to 2 decimal places, the Original Duration, Remaining Duration, Total Float and Free Float reveal the actual calculated Duration values in Figure 8 below.

Figure 8

Note that the Total Float and Free Float values for Activity ST78430 are displayed as 2.63. This calculation is derived from the difference between the Late Finish and Early Finish.  Since the Late Finish is 28-Oct-19 at 08:00 and the Early Finish is 25-Oct-19 at 17:00, the difference is 63 Hours/24 Hours per Day or 2.63 Days (rounded to the nearest hundredth) as a direct result of using a 7-Day/24Hr Calendar.

Since calculating Project durations to the nearest whole day is preferred, the use of a 7-Day/24Hr Calendar is a root cause of the Partial Day Effect and therefore should be avoided. The Duration values compound when successor activities are later in the CPM network. This is because Total Float values are calculated based on the activity’s assigned Calendar.

Generating Partial Day Durations

There are many ways to generate Partial Day durations. Of these include:

  1. Entering a Percent Complete value for an activity assigned with “Duration Percent Complete”. For example, if an activity has an Original Duration of 3 days and a Duration Percent Complete is assigned 50%, then the activity will start at 8:00AM then having 1.5 Days remaining will complete at Noon on the second Day.
  2. Not assigning a whole Day value to a Remaining Duration. For example, if 1.5 Days is assigned as the Remaining Duration, then the Finish Date will complete at Noon.
  3. An activity has a Calendar assignment that is not consistent with a typical hour per day format.
  4. Assigning non-standard Calendars then using lags between activities with mixed format calendars.

However Partial Days are generated, they usually have a cascading effect through the CPM network that can make resolving this issue a difficult and painful task. Suppose for example, the first activity of a long CPM network path completes at 2:00PM. Then its next driving successor activity will start at 2:00PM on the same day and end at 2:00PM on its last day. This behavior will continue to cascade throughout the CPM network until there are no driving successors.

Determining if your CPM network contains Partial Days is easy! Simply;

  1. Go to the User Settings and select the option to turn on time as shown in Figure 9 below.
  2. Then, set Durations to display values to either 1 or 2 Decimal places shown in Figure 10 above.
Figure 9
Figure 10

Once this is done, you can browse the activities Start and Finish Dates to detect activities not starting at 8:00AM or not ending at 17:00PM.

Zümmer Analysis Reports

Zümmer contains the following reports to help resolve Partial Days (See also Figure 11 below):

  1. Analysis Report #26 – “Activities with Partial Day Durations”
  2. Analysis Report #27 – “Relationships with Partial  Lag”
  3. Analysis Report – “Not Completed Tasks with Partial Original or Remaining Durations”
  4. Analysis Report – “In-Progress Tasks with Partial Remaining Duration”
Figure 11

Zümmer Analysis Report #26 – “Activities with Partial Day Durations” (Figure 12 below) is a comprehensive report listing any activity containing a Partial duration in the Original Duration, Remaining Duration, Free Float or Total Float values. The report sorts by Activity ID and lists the Activity Status, Activity ID, Activity Name, Partial Original Duration, Partial Remaining Duration, Partial Total Float and Partial Free Float values.

Figure 12

Zümmer Analysis Report #27 – “Relationships with Partial Lag” (Figure 13 below) is a comprehensive report listing any Partial Lags.

Partial lags have a most insidious impact towards generating Partial Days. Changing the predecessor or successor activity to a standard Calendar does not necessarily guarantee that the lag will change in kind. Even in a moderately sized CPM network, finding these offending lags are very difficult using P6 alone.

Figure 13

Zümmer Analysis Report – “Not Completed Tasks with Partial Original or Remaining Durations” (Figure 14 below) is a subset of Analysis Report #26 displayed above.

Figure 14

Not Completed Tasks with partial Original or Remaining durations have a higher priority with regards to resolving Partial Days because they tend to produce a cascading effect to successor activities starting or ending in the middle of the day. Once these activities are normalized, i.e. adjusted to containing whole day values, successor activities in general will ‘fall in line’ starting at the beginning of the day and ending at the end of the day.

Zümmer Analysis Report – “In Progress Activities with Partial Durations” (Figure 15 below) is a subset of Analysis Report #26 displayed above.

Figure 15

In-progress tasks with partial Remaining Durations also have a higher priority with regards to resolving because they tend to produce a cascading effect to successor activities starting or ending in the middle of the day. Once these activities are normalized, i.e. adjusted to containing whole day values, successor activities in general will ‘fall in line’ starting at the beginning of the day and ending at the end of the day.

Conclusion

A few tips to avoid Partial Days in the first place:

  1. When performing a schedule update, turn on time to ensure calculated results start at 8:00AM and end at 5:00PM (or at your typical Start and Finish times).
  2. When performing a schedule update, set the Duration decimal to 1 (or 2) to view duration values in tenths.
  3. When declaring the Data Date, always set time on and set the Data Date time to include your typical Start time.
  4. When assigning start constraints, turn on time and set the constraint to include your typical Start time.
  5. When assigning finish constraints, turn on time and set the constraint to include your typical Finish time.
  6. When setting “Must Finish By” constraints for the Project, turn on time and set the date to include your typical Finish time.
  7. Use consistent “Hours per Day” configured Calendars especially when a lag value is assigned.
  8. Update in-progress activities based on Remaining Duration in whole days or;
  9. Update in-progress activities based on a completion date to include your typical Finish time.
  10. For consistency, when actualizing start dates, save Actual Start dates to include your typical Start time.
  11. For consistency, when actualizing finish dates, save Actual Finish dates to include your typical Finish time.
  12. If someone asks you to do an analysis or ‘What-if’ the work is accelerated from an 8 Hour day to a 10 Hour day, suggest doing the analysis on a 6 Day Work-Week instead of a 5 Day Work-Week. The difference in calculations is between a 50 Hour week and a 48 Hour week which for scheduling purposed should be acceptable.

Keeping a neat, tidy and “wholesome” CPM network with no Partial Days is an important part of a Scheduler’s QA/QC routine.

Copyright ©2019 FoxQuest Systems, Inc. – All Rights Reserved


Facilitating the hunt for Out-of-Sequence conditions.

Finding Out-of-Sequence activities can be a time-consuming effort.

During the update process of a CPM Network it’s often likely to end up with Out-of-Sequence activities.

There are multiple causes for and multiple types of out-of-sequence conditions. The most common cause is when a successor activity is statused as started however the predecessor activity has not completed.

Especially in large CPM networks, with many activities statused during an update period, finding the root cause of an out-of-sequence condition can be a difficult task.

Consider for example, a situation, as shown below where an Activity “A” has not started and has only one predecessor, Activity “P1” that has completed. Typically, you would expect Activity “A” to start on the Data Date. However, as a result of scheduling using Retained Logic, Activity “A” is out-of-sequence by a number of days equaled to the remaining duration of activity “B”.

In this example below, tracing the logic back through 6 predecessors, Activities “P1” through “P6” finally arrives at the offender, Activity “B”. In this example, Activity “B” is the “not completed activity” while Activity “P6” is the “started successor”.

Finding out-of-sequence conditions using this technique and P6 alone can be a time consuming and frustrating effort. Especially if there are multiple logic paths that precede Activity “A”.

Zümmer Analysis Report #23 – “Not Complete Activities With Started Successor” list all activities that are Not Complete, and a successor is either In Progress or Completed.

In the illustration above, Line Item #1, Activity TD0012572, has not started and Activity 404-CM-1040, one of its successors, is complete. In Line Item #2, Activity TD0016440, has not started and a successor, Activity TD01010, is in progress.

The report sorts relationships by Predecessor/Successor Activity ID and the Predecessor/Successor Activity Name. The report then lists the Predecessor’s Early Finish, the Successors Actual Start, then continues with the Predecessor/Successor Original Duration, then the Relation Type and Lag value.

Other Zümmer Analysis Reports that fall in the “Out-Of-Sequence” category includes:

  1. Analysis Report #24 – “Out-Of-Sequence In Progress Tasks”
  2. Analysis Report #25 – “Not Started Activities with No Active Predecessors”

Copyright ©2019 FoxQuest Systems, Inc. – All Rights Reserved

Resolving Partial Date, Duration, Float and Lag values

When it comes to CPM scheduling in the construction industry, generally, the smallest unit of time is measured in Days. In fact, many construction specifications state this categorically. However, in P6, the Duration, Total Float, Free Float, Lag values, or date that is displayed on the screen may be different from what is actually stored in the P6 database.

For example, if an Original Duration of 40 Days is assigned to an activity with a 5-Day calendar set to 8 Hours per Day, the value stored in the OD field (named Target_drtn_hr_cnt) is 320.00. In other words, P6 stores duration values in hours. (See Activity E in the illustration below).

In the illustration below, Activity ID A1020 and A1060 both have an Original Duration of 25 Days. However:

  1. A1020 was updated by assigning a Duration Percent Complete of 35%.
  2. A1060 was updated by assigning a Remaining Duration of 16 days.

P6 calculates the Remaining Duration for A1020 as 25*(1-.35) or 16.25 Days. The .25 remainder (or 2 hours) is reflected in the finish date as 09-Jun-16 10:00 (10AM). Meanwhile, A1060 displays the same Remaining Duration as A1020; however the finish date is reflected as 08-Jun-16 at 17:00 (5PM). Furthermore, A1060 is not on the Critical Path even though the Total Float value is displayed as 0 (the Duration Format Decimal value for the Day Unit of Time is set to 0).

The Partial Day effect can even cascade throughout the CPM Network affecting Total Float and Free Float values.

  1. Analysis Report #26 illustrated below displays activities with Partial Original Duration, Remaining Duration, Total Float or Free Float values. Notice that although A1040 and A1060 have non-Partial Original Duration and Remaining Duration values, their Total Float and Free Float values are indirectly affected by the Partial RD of A1020.

2. Analysis Report “Partial Original or Remaining Duration” is a subset of Report #26 with the same format and display parameters.

3. Analysis Report “In-Progress Tasks with Partial Remaining Duration” is also a subset or Report #26 with the same format and display parameters.

4. In the illustration below, Analysis Report #27 identifies activities with Partial Lags.

In all the Zümmer Analysis Reports referenced above, the duration values are formatted in Days to rounded the nearest tenth. This format can also be replicated in P6 by changing the User Preferences in the Time Units tab Duration Format Decimals settings to 1 as shown below.

In addition, in P6, the dates can be set to show time values by changing the User Preferences Dates Tab Time section to 24 hour or 12 hour as shown below.

After printing or previewing the Zümmer analysis reports, find the partial day activities and/or relationships and revise the duration values accordingly to the nearest whole day. Since Total Float values are cascading, it is suggested to start with activities sorted by Early Start.

Copyright ©2019 FoxQuest Systems, Inc. – All Rights Reserved

Analysis Statistics (1 of 2) – Information at your fingertips.

Zümmer’s, Analysis Statistics Report is the next level of detail from the Analysis Charts. The first of two reports neatly displays 6 key Project elements on 1 page. This matrix type report is ideal for Schedule Manager reporting. The illustration below is a sample of a typical Analysis Statistics Report.

1) Activity Status: Details the Status of every activity categorized by Activity Type.

2) Criticality: Details the Criticality State of every remaining activity categorized by Activity Type.

3) Constraints: Counts every Primary & Secondary Constraint and groups by Constraint Type.

4) Relationships: Categorizes all relationships based on Type. The R/A Factor (# of Relationships/# of Activities), measures the complexity of the CPM network, the higher the number, the more complex the CPM network. The L/A Factor (# of Lags/ # of Activities), measures the use of lags in the CPM Network. The higher the number, the more lag usage in the CPM Network.

5) Calendar: Lists all the Calendars used on the Project with individual Type, Hrs/Period, Totals and % Usage.

6) Additional Project Specifications and the Criticality Threshold values are clearly listed.

Copyright ©2019 FoxQuest Systems, Inc. – All Rights Reserved

Reporting Activity Relationships with Laaaaag

Using lags in a CPM network is widely discouraged and is considered not “best practice” in the CPM community. In fact, using lags is probably the leading cause of faulty CPM networks. In Zümmer, there are actually 12 Analysis Reports (see illustration above) that deal with identifying various issues related to the use of lags.

Finding all the Relationship lag in a Primavera P6 CPM network can be a very time consuming effort. Unfortunately, there is no filter specification that can directly list all lags in the CPM network without first creating a P6 Report. After all that work, the output is not very appealing, not easy to understand and not ready for prime-time distribution.

In this article, we examine Report #28 – “Activity Relationships with Lags”. This report is the most general of the lag related Analysis Reports. The other remaining 11 reports, which will be covered in other articles, isolate specific anomalies resulting from using lags in an unconventional manner.

In the sample report output below, each relationship containing a lag value is clearly and individually paired. In addition, the Activity Status of the predecessor and successor is listed along with each Original Duration, the type of Relationship and lag value between the two activities.

Copyright ©2019 FoxQuest Systems, Inc. – All Rights Reserved

Not Started Activities with no Active Predecessors

If an uncompleted activity’s predecessors are all complete, then it would be reasonable to expect that the activity in question should be in progress. The possible exception is when a predecessor completes just prior to the Data Date allowing the successor activity status to be “not started”.

In any event, not started activities without active predecessors should be examined further to determine if the status should be updated or if a logic revision is required.

Zümmer Analysis Report #25 – “Not Started Activities with No Active Predecessors” lists all activities that:

a) have not started and;
b) the “immediate” predecessor(s) are all complete.

The column titled “ES Var To Data Date” lists the variance between the activity’s Early Start (ES) and the Data Date. If the variance is small or Zero, then this is typically an indication that the activity is “Riding the Data Date”; (meaning the Data Date is controlling the ES for the activity). If the variance is large, then this is typically an indication that the activity is restrained (commonly by the Retained Logic Rule) by an uncompleted “distant” predecessor. 

Upon review of the schedule logic shown above and in the illustration below:

Line Item #1, Activity A1040, with and ES Variance =0, is “Riding the Data Date” and its immediate predecessor, A1020 – Activity B is complete.

Copyright ©2019 FoxQuest Systems, Inc. – All Rights Reserved

Activity Relationships with Long Lag

In many Construction Project CPM Schedule specifications, the maximum Original Duration for “on-site activities” is limited to a certain value. A typical threshold limit is twenty (20) work-days.

When lags are used in a CPM network, the duration value used should be checked just like any activity. Since lags can be negative, then the absolute value of lags should be evaluated against the threshold limit for activities in the CPM network.

In Zümmer, the High Duration Threshold value set in the Criticality Duration Assignment window is used to determine if a lag falls in the “Long Lag” category. In the illustration above, the Duration Threshold High value is set to 20. The report identifies 5 relationships that exceed the threshold limit. Note for line item #5 below, the lag value is negative. In addition, the report defines the threshold criteria at the bottom of the page.

Copyright ©2019 FoxQuest Systems, Inc. – All Rights Reserved

Tracking Activities With Constraints

Constraints allow a CPM network to model external dependencies that are outside of the standard predecessor-successor logic. P6 allows for various types of constraints. Unfortunately, keeping track of activities with constraints can be a difficult task especially if both Primary and Secondary constraints are used.

It’s important to realize that overly assigning constraints to a CPM network works against the algorithm date calculations during the forward and backward pass. Constraints should be kept to an absolute minimum. Also Constraints should be totally understood as to exactly how they affect the Early/Late Start/Finish dates as well as the Total Float value.

Constraints allow a CPM network to model external dependencies that are outside of the standard predecessor-successor logic. P6 allows for various types of constraints. Unfortunately, keeping track of activities with constraints can be a difficult task especially if both Primary and Secondary constraints are used.

In the Illustration above, the 9 possible Primary Constraints and 2 possible Secondary Constraint are listed.

Copyright ©2019 FoxQuest Systems, Inc. – All Rights Reserved