Critical Path Manipulation Techniques


There are various ways of creating, erasing, decreasing, inflating or hiding float and manipulating the critical path of a CPM network.


These manipulation techniques can be used prospectively during the preparation of the baseline and the project updates as well as in the process of preparing the forensic models. This does not mean that the observational methods are immune from manipulation.


Since they rely on the baseline and the updates, the source schedules must be checked for manipulation prior to use in the forensic process. During the forensic process, the dynamic methods are also subjected to manipulation through the frequency, duration and placement of analysis intervals and through subjective assignment of progress data in reconstructing updates.


The use of these techniques per se is not evidence of intentional manipulation. It must be stressed that there are legitimate uses and good reasons, even if limited, for these features; otherwise they would have never found their way into the software. Even in the absence of ‘good reason', the feature could have resulted from laziness or even misguided attempts to improve the schedule. At any rate, schedules used for forensic schedule analysis must minimize the use of these techniques.


Two major software products, Primavera Project Planner P3 & P6 andMicrosoft Project (MSP), representing a significant market share of the scheduling trade are used as references.


Resource Leveling & Smoothing


This technique uses available float to balance the resources necessary for executing the schedule. Some analysts maintain that resource leveling is the technical embodiment of pacing.


Software Definitions


  • Resource leveling is the process of determining and minimizing the effect of low resource availability on the schedule. Use resource leveling to resolve resource conflicts by rescheduling activities to times when sufficient resources are available. Split activities to work around times when resources are not available; stretch activity durations to reduce their resource per time period requirements; or compress activity durations to take advantage of ample resource supplies.

Resource leveling uses the normal and maximum limits established in the resource dictionary. The normal limit is used during resource-constrained leveling to take advantage of positive float within the network.


During forward leveling, activities may be shifted to a later date (the leveled date).


In backward leveling, activities may be moved earlier in time.


If an activity cannot be scheduled without exceeding the normal limit and without exhausting all positive float, P3 increases the resource availability limit to the maximum level.

A resource leveling analysis report details the reasons why activities are rescheduled.


  • Resource smoothing is an optional resource leveling method that resolves resource conflicts by delaying activities that have positive float. Resource smoothing uses the available positive float and incrementally increases the availability limits in ten equal steps from normal to maximum. P3 & P6 smooth only those activities that will be delayed beyond their calculated early start date due to insufficient resources. This method minimizes peaks and valleys in the resource usage profile.


Multiple Calendars


Float values are displayed using workday units defined in the underlying work-day calendar assigned to the activity instead of in calendar-day units so that activities on a chain with identical network tension may display different float values.


All things being equal, activities using a more restrictive work-day calendar, such as one that excludes the winter months for work, carry less float than if those activities used a less restrictive work-day calendar. Thus by building in or removing a few holidays in the calendar, float can be manipulated.


While highly impractical, the only way to avoid gaps, discontinuities and work-day conversions is to use only one calendar consisting of a seven-day week.


  • The work periods and holidays defined for the project determine when P3 & P6 can schedule activities and resources. Primavera allows up to 31 base (activity) calendars per project. Once you add and define project base calendars, use the calendar ID to assign the appropriate calendar to each activity. Define calendars in planning units of hours, days, weeks, or months. Define an unlimited number of resource calendars, using any base calendar as a template for each one.


  • Microsoft Project uses four types of calendars: base calendar, project calendar, resource calendar & task calendar.

Precedence Logic / Lead & Lag


Simple logic is finish-to-start with a lag value of zero, denoted as FS0. Other known types of logic are start-to-start (SS), finish-to-finish (FF) and start-to-finish (SF). Most software allows the use of these logic types along with the use of lead and lag values other than zero, including negative values.


The use of lag values greater than zero with FS-type of logic absorbs otherwise available float. It is possible to assign lag values that are less than zero, called negative lags. Negative lags associated with the FS-type of logic have the effect of overlapping the associated schedule activities, thereby increasing float.


  • Lag: An offset or delay from an activity to its successor. Lag can be positive or negative; it is measured in the planning unit for the project and based on the calendar of the predecessor activity. Lag cannot exceed 32,000 time periods or be less than -9999 time periods. Lag decreases as you record progress (actual start). When Primavera or MS project calculates a schedule, it subtracts from the lag value the number of work periods between the project data date and the actual start date of the predecessor activity.


  • Lead Time: An overlap between tasks that have a dependency. For example, if a task can start when its predecessor is half finished, you can specify a finish-to-start dependency with a lead time of 50 percent for the successor task. You enter lead time as a negative lag value.


  • Lag Time: A delay between tasks that have a dependency. For example, if you need a two- day delay between the finish of one task and the start of another, you can establish a finish- to-start dependency and specify a two-day lag time. You enter lag time as a positive value.


Start & Finish Constraints


Setting a start constraint to a date that is later than what would be allowed by a controlling predecessor would decrease the float on the schedule activity. Similarly, setting a finish constraint to a date that is earlier than what would be allowed by a controlling predecessor would also decrease float on the schedule activity. Both techniques can be used to force activity paths to carry negative float.


There are also features that force the schedule activity to carry no total float or no free float. Also certain types constraints force the assignment of zero float value by fixing dates on which the activity will be performed, overriding associated precedence logic.

A scheduling restriction you impose on the start or finish of an activity. Use constraints to reflect real project      requirements; for example, all outdoor activities must be completed by the beginning of winter.

 A restriction or limitation that you or Microsoft Project set on the start or finish date of a task. For example, you can specify that a task must start on a particular date or finish no later than a particular date. When you add a new task to a project that is scheduled from the start date, Microsoft Project automatically assigns the "as soon as possible" constraint.


Conversely, when you add a new task to a project that is scheduled from the finish date, Microsoft Project automatically assigns the "as late as possible" constraint.


Various Calculation Modes


Fundamental schedule and float calculation methods can be selected by the user, further complicating the effort to identify the critical path and quantify float. Below are examples related to various methods of schedule calculation, duration calculation, and float calculation.


Schedule Calculation


 Retained Logic:


1) One out of two types of logic used to calculate a schedule in Primavera. If you select retained logic in the schedule/level calculation options dialog box, Primavera schedules an activity with out-of-sequence progress according to the network logic. Primavera allows the activity to begin out of sequence, but the remaining duration for the activity cannot be completed until all its predecessors complete. 2)One out of two types of logic used to handle activities that occur out of sequence. When used, scheduling software programs the remaining duration of an out-of-sequence activity according to current network logic - after its predecessors.


Progress Override:  


1) One out of two types of logic used by primavera.   Progress override ignores logic and affects the schedule only if out-of-sequence progress occurs. If you select progress override in the schedule/level calculation options dialog box, P3 treats an activity with out-of-sequence progress as though it has no predecessors and can progress without delay. [This is the alternate setting] 2) One out of two types of scheduling software logic used to handle activities that occur out of sequence. When specified, it treats an activity with out-of-sequence progress as though it has no predecessor constraints; its remaining duration is scheduled to start immediately, rather than wait for the activities predecessors to complete.


Duration Calculation


  • Continuous Activity Duration: One out of two types of activity-duration logic used by Primavera to calculate schedules. Contiguous activity duration requires that work on an activity occur without interruption. For early dates, this type of logic affects how Primavera schedules the start dates for an activity when the finish dates are delayed by a finish relationship from a preceding activity or by a finish constraint. If you select contiguous logic, and finish dates of an activity are delayed, the start dates are delayed also. [This is the default setting]


  • Interruptible Activity Duration: One out of two types of activity duration logic Primavera and MSP use to process a schedule. For early dates, interruptible scheduling affects how schedules start dates of an activity when the finish dates are delayed by a finish relationship from a preceding activity or by a finish constraint. If you select interruptible scheduling, and the finish dates of an activity are delayed, the start dates are not delayed. The software stretches the duration of the activity, allowing the work to be interrupted along the way. [This is the alternate setting]


Float Calculation


  • Show Open Ends As: Choose "critical" to show open-ended activities as critical; choose "non-critical" if you do not want activities with open ends to be considered critical.


  • Calculate Total Float As: Choose the method Primavera uses to calculate total float for all activities. "Start float" is the difference between the early and late start dates; "finish float" is the difference between the early and late finish dates; and "most critical float" is the least (most critical) of the start or finish floats.


Use of Data Date


Reliable calculation of schedule updates requires the use of the concept of data date. Some software ships with the feature turned off and require that the featured be manually activated as an option.


  • The date Primavera uses as the starting point for schedule calculations. Change the data date to the current date when you record progress. [In Primavera, data date is a built-in default feature that cannot be deactivated.]


Judgment Calls during the Forensic Process


Any of the above techniques can be abused to affect discretionary decisions by the forensic analyst to influence the analysis in favor of his client. There are two instances in the forensic process that are especially sensitive to such influence because they directly affect the schedule variables at the data line. They are:


  • Frequency, duration, and placement of analysis Intervals.


  • Hindsight vs. blind-sight update reconstruction.


Ownership of Float


In the absence of contrary contractual language, network float is a shared commodity between the owner and the contractor. Conventional interpretation of the principle of shared float allows the use of float on a first-come-first-serve basis, thereby allowing the owner to delay activities on that path up to the point where float is consumed. Therefore, as a corollary, if pacing is defined as the consumption of float, it follows that both owners and contractors are allowed to pace non-critical work.


Project float is the time between the last schedule activity on the baseline schedule and the contractual completion date where the contractual completion date is later than the scheduled completion date. In this case, in the absence of contrary contractual language, project float is owned solely by the contractor.