The CPM Procedure

OUT= Schedule Data Set

The Schedule data set always contains the variables in the Activity data set that are listed in the TAILNODE , HEADNODE , ACTIVITY , SUCCESSOR , DURATION , and ID statements. If the INTPER= option is specified in the PROC CPM statement, then the values of the DURATION variable in the Schedule data set are obtained by multiplying the corresponding values in the Activity data set by intper. Thus, the values in the Schedule data set are the durations used by PROC CPM to compute the schedule. If the procedure is used without specifying a RESOURCEIN= data set and only the unconstrained schedule is obtained, then the Schedule data set contains six new variables named E_START, L_START, E_FINISH, L_FINISH, T_FLOAT, and F_FLOAT.

If a resource-constrained schedule is obtained, however, the Schedule data set contains two new variables named S_START and S_FINISH; the T_FLOAT and F_FLOAT variables are omitted. You can request the omission of the E_START and E_FINISH variables by specifying NOE_START and the omission of the L_START and L_FINISH variables by specifying NOL_START in the RESOURCE statement. The variables listed in the RESOURCE statement are also included in the Schedule data set; to omit them, use the NORESOURCEVARS option in the RESOURCE statement. If the DELAYANALYSIS option is specified, the Schedule data set also includes the variables R_DELAY, DELAY_R and SUPPL_R.

If resource-driven durations or resource calendars are in effect, the start and finish times shown in the Schedule data set are computed as the minimum of the start times for all resources for that activity and the maximum of the finish times for all resources for that activity, respectively. For details see the section Resource-Driven Durations and Resource Calendars.

If an ACTUAL statement is specified, the Schedule data set also contains the four variables A_START, A_FINISH, A_DUR, and STATUS.

The format of the schedule variables in this data set (namely, A_START, A_FINISH, E_START, E_FINISH, L_START, and so on) is consistent with the format of the DATE= specification and the INTERVAL= option in the PROC CPM statement.

Definitions of Variables in the OUT= Data Set

Each observation in the Schedule data set is associated with an activity. The variables in the data set have the following meanings.

A_DUR

specifies the actual duration of the activity. This variable is included in the Schedule data set only if the ACTUAL statement is used. The value for this variable is missing unless the activity is completed and may be different from the duration of the activity as specified by the DURATION variable. It is based on the values of the progress variables. See the section Progress Updating for further details.

A_FINISH

specifies the actual finish time of the activity, either as specified in the Activity data set or as computed by PROC CPM on the basis of the progress variables specified. This variable is included in the Schedule data set only if the ACTUAL statement is used.

A_START

specifies the actual start time of the activity, either as specified in the Activity data set or as computed by PROC CPM on the basis of the progress variables specified. This variable is included in the Schedule data set only if the ACTUAL statement is used.

E_FINISH

specifies the completion time if the activity is started at the early start time.

E_START

specifies the earliest time the activity can be started. This is the maximum of the maximum early finish time of all predecessor activities and any lower bound placed on the start time of this activity by the alignment constraints.

F_FLOAT

specifies the free float time, which is the difference between the early finish time of the activity and the minimum early start time of the activity’s immediate successors. Consequently, it is the maximum delay that can be tolerated in the activity without affecting the scheduling of a successor activity. The values of this variable are calculated in units of the INTERVAL= parameter.

L_FINISH

specifies the latest completion time of the activity. This is the minimum of the minimum late start time of all successor activities and any upper bound placed on the finish time of the activity by the alignment constraints.

L_START

specifies the latest time the activity can be started. This is computed from the activity’s latest finish time.

S_FINISH

specifies the resource-constrained finish time of the activity. If resources are insufficient and the procedure cannot schedule the activity, the value is set to missing, unless the FILLUNSCHED option is specified.

S_START

specifies the resource-constrained start time of the activity. If resources are insufficient and the procedure cannot schedule the activity, the value is set to missing, unless the FILLUNSCHED option is specified.

STATUS

specifies the current status of the activity. This is a character valued variable. Possible values for the status of an activity are Completed, In Progress, Infeasible or Pending; the meanings are self-evident. If the project is scheduled subject to resource constraints, activities that are Pending are classified as Pending or Infeasible depending on whether or not PROC CPM is able to determine a resource-constrained schedule for the activity.

T_FLOAT

specifies the total float time, which is the difference between the activity late finish time and early finish time. Consequently, it is the maximum delay that can be tolerated in performing the activity and still complete the project on schedule. An activity is said to be on the critical path if T_FLOAT=0. The values of this variable are calculated in units of the INTERVAL= parameter.

If activity splitting is allowed during resource-constrained scheduling, the Schedule data set may contain more than one observation corresponding to each observation in the Activity data set. It will also contain the variable SEGMT_NO, which is explained in the section Activity Splitting.

If the PROJECT statement is used, some additional variables are added to the output data set. See the section Schedule Data Set for details.