Chapter Contents
Chapter Contents
Previous
Previous
Next
Next
The CPM Procedure

Example 2.13: Progress Update and Target Schedules

This example shows the use of the ACTUAL and BASELINE statements to track and compare a project's progress with the original planned schedule. Consider the data in Example 2.1, for the network in AON format. Suppose that the project has started as scheduled on December 2, 1991, and that the current date is December 20, 1991. You may want to enter the actual dates for the activities that are already in progress or have been completed and use the CPM procedure to determine the schedule for activities that remain to be done. In addition to computing an updated schedule, you may want to check the progress of the project by comparing the current schedule with the planned schedule.

The BASELINE statement enables you to save a target schedule in the Schedule data set. In this example, suppose that you want to try to schedule the activities according to the project's early start schedule. As a first step, schedule the project with PROC CPM, and use the SET= option in the BASELINE statement to save the early start and finish times as the baseline start and finish times. The following program saves the baseline schedule (in the variables B_START and B_FINISH), and Output 2.13.1 displays the resulting output data set.

   data holidays;
      format holiday holifin date7.;
      input holiday date8. holifin date8. holidur;
      datalines;
   25dec91 27dec91 4
   01jan92 .       .
   ;

   * store early schedule as the baseline schedule;

   proc cpm data=widget holidata=holidays
            out=widgbase date='2dec91'd;
      activity task;
      succ     succ1 succ2 succ3;
      duration days;
      holiday  holiday / holifin=(holifin);
      baseline / set=early;
      run;

Output 2.13.1: Target Schedule

Progress Update and Target Schedules
Set Baseline Schedule

Obs task succ1 succ2 succ3 days E_START E_FINISH L_START L_FINISH T_FLOAT F_FLOAT B_START B_FINISH
1 Approve Plan Drawings Anal. Market Write Specs 5 02DEC91 06DEC91 02DEC91 06DEC91 0 0 02DEC91 06DEC91
2 Drawings Prototype     10 07DEC91 16DEC91 07DEC91 16DEC91 0 0 07DEC91 16DEC91
3 Anal. Market Mkt. Strat.     5 07DEC91 11DEC91 10JAN92 14JAN92 30 0 07DEC91 11DEC91
4 Write Specs Prototype     5 07DEC91 11DEC91 12DEC91 16DEC91 5 5 07DEC91 11DEC91
5 Prototype Materials Facility   15 17DEC91 04JAN92 17DEC91 04JAN92 0 0 17DEC91 04JAN92
6 Mkt. Strat. Test Market Marketing   10 12DEC91 21DEC91 15JAN92 24JAN92 30 30 12DEC91 21DEC91
7 Materials Init. Prod.     10 05JAN92 14JAN92 05JAN92 14JAN92 0 0 05JAN92 14JAN92
8 Facility Init. Prod.     10 05JAN92 14JAN92 05JAN92 14JAN92 0 0 05JAN92 14JAN92
9 Init. Prod. Test Market Marketing Evaluate 10 15JAN92 24JAN92 15JAN92 24JAN92 0 0 15JAN92 24JAN92
10 Evaluate Changes     10 25JAN92 03FEB92 30JAN92 08FEB92 5 5 25JAN92 03FEB92
11 Test Market Changes     15 25JAN92 08FEB92 25JAN92 08FEB92 0 0 25JAN92 08FEB92
12 Changes Production     5 09FEB92 13FEB92 09FEB92 13FEB92 0 0 09FEB92 13FEB92
13 Production       0 14FEB92 14FEB92 14FEB92 14FEB92 0 0 14FEB92 14FEB92
14 Marketing       0 25JAN92 25JAN92 14FEB92 14FEB92 20 20 25JAN92 25JAN92


As the project progresses, you have to account for the actual progress of the project and schedule the unfinished activities accordingly. You can do so by specifying actual start or actual finish times (or both) for activities that have already finished or are in progress. Progress information can also be specified using percent complete or remaining duration values. Assume that current information has been incorporated into the ACTUAL data set, shown in Output 2.13.2. The variables sdate and fdate contain the actual start and finish times of the activities, and rdur specifies the number of days of work that are still remaining for the activity to be completed, and pctc specifies the percent of work that has been completed for that activity.

Output 2.13.2: Progress Data Set ACTUAL

Progress Update and Target Schedules
Progress Data

Obs task sdate fdate pctc rdur
1 Approve Plan 02DEC1991 06DEC1991 . .
2 Drawings 07DEC1991 17DEC1991 . .
3 Anal. Market 06DEC1991 . 100 .
4 Write Specs 08DEC1991 13DEC1991 . .
5 Prototype . . . .
6 Mkt. Strat. 11DEC1991 . . 3
7 Materials . . . .
8 Facility . . . .
9 Init. Prod. . . . .
10 Evaluate . . . .
11 Test Market . . . .
12 Changes . . . .
13 Production . . . .
14 Marketing . . . .


The following statements invoke PROC CPM after merging the progress data with the Schedule data set. The NOAUTOUPDT option is specified so that only those activities that have explicit progress information are assumed to have started. The resulting Schedule data set contains the new variables A_START, A_FINISH, A_DUR, and STATUS; this data set is displayed in Output 2.13.3. Note that the activity `Mkt. Strat.', which has rdur=`3' in Output 2.13.2, has an early finish time (December 22, 1992) that is three days after TIMENOW. The S_VAR and F_VAR variables show the amount of slippage in the start and finish times (predicted on the basis of the current schedule) as compared to the baseline schedule.
   * merge the baseline information with progress update;
   data widgact;
      merge  actual widgbase;
      run;

   proc cpm data=widgact holidata=holidays
            out=widgnupd date='2dec91'd;
      activity task;
      succ     succ1 succ2 succ3;
      duration days;
      holiday  holiday / holifin=(holifin);
      baseline / compare=early;
      actual / a_start=sdate a_finish=fdate timenow='20dec91'd
               remdur=rdur pctcomp=pctc noautoupdt;
      run;

Output 2.13.3: Comparison of Schedules: NOAUTOUPDT

Progress Update and Target Schedules
Updated Schedule vs. Target Schedule: NOAUTOUPDT

Obs task succ1 succ2 succ3 days STATUS A_DUR A_START A_FINISH E_START E_FINISH L_START L_FINISH T_FLOAT F_FLOAT B_START B_FINISH S_VAR F_VAR
1 Approve Plan Drawings Anal. Market Write Specs 5 Completed 5 02DEC91 06DEC91 02DEC91 06DEC91 02DEC91 06DEC91 0 0 02DEC91 06DEC91 0 0
2 Drawings Prototype     10 Completed 11 07DEC91 17DEC91 07DEC91 17DEC91 07DEC91 17DEC91 0 0 07DEC91 16DEC91 0 1
3 Anal. Market Mkt. Strat.     5 Completed 5 06DEC91 10DEC91 06DEC91 10DEC91 06DEC91 10DEC91 0 0 07DEC91 11DEC91 -1 -1
4 Write Specs Prototype     5 Completed 6 08DEC91 13DEC91 08DEC91 13DEC91 08DEC91 13DEC91 0 0 07DEC91 11DEC91 1 2
5 Prototype Materials Facility   15 Pending . . . 20DEC91 07JAN92 20DEC91 07JAN92 0 0 17DEC91 04JAN92 3 3
6 Mkt. Strat. Test Market Marketing   10 In Progress . 11DEC91 . 11DEC91 22DEC91 11DEC91 22DEC91 0 0 12DEC91 21DEC91 -1 1
7 Materials Init. Prod.     10 Pending . . . 08JAN92 17JAN92 08JAN92 17JAN92 0 0 05JAN92 14JAN92 3 3
8 Facility Init. Prod.     10 Pending . . . 08JAN92 17JAN92 08JAN92 17JAN92 0 0 05JAN92 14JAN92 3 3
9 Init. Prod. Test Market Marketing Evaluate 10 Pending . . . 18JAN92 27JAN92 18JAN92 27JAN92 0 0 15JAN92 24JAN92 3 3
10 Evaluate Changes     10 Pending . . . 28JAN92 06FEB92 02FEB92 11FEB92 5 5 25JAN92 03FEB92 3 3
11 Test Market Changes     15 Pending . . . 28JAN92 11FEB92 28JAN92 11FEB92 0 0 25JAN92 08FEB92 3 3
12 Changes Production     5 Pending . . . 12FEB92 16FEB92 12FEB92 16FEB92 0 0 09FEB92 13FEB92 3 3
13 Production       0 Pending . . . 17FEB92 17FEB92 17FEB92 17FEB92 0 0 14FEB92 14FEB92 3 3
14 Marketing       0 Pending . . . 28JAN92 28JAN92 17FEB92 17FEB92 20 20 25JAN92 25JAN92 3 3


In order for you to see the effect of the AUTOUPDT option, the same project information is used with the AUTOUPDT option in the ACTUAL statement. Output 2.13.4 displays the resulting schedule. With the AUTOUPDT option (which is, in fact, the default option), PROC CPM uses the progress information and the precedence information to automatically fill in the actual start and finish information for activities that should have finished or started before TIMENOW. Note that the activity `Prototype' has no progress information in WIDGACT, but it is assumed to have an actual start date of December 18, 1991. This option is useful when there are several activities that take place according to the plan and only a few occur out of sequence; then it is sufficient to enter progress information only for the activities that did not follow the plan. The SHOWFLOAT option, also used in this invocation of PROC CPM, allows activities that are completed or in progress to have float; in other words, the late start schedule for activities in progress is not fixed by the progress information. Thus, the activity `Anal. Market' has L_START=`09JAN92' instead of `06DEC91', as in the earlier invocation of PROC CPM (without the SHOWFLOAT option).

Output 2.13.4: Comparison of Schedules: AUTOUPDT

Progress Update and Target Schedules
Updated Schedule vs. Target Schedule: AUTOUPDT

Obs task succ1 succ2 succ3 days STATUS A_DUR A_START A_FINISH E_START E_FINISH L_START L_FINISH T_FLOAT F_FLOAT B_START B_FINISH S_VAR F_VAR
1 Approve Plan Drawings Anal. Market Write Specs 5 Completed 5 02DEC91 06DEC91 02DEC91 06DEC91 02DEC91 06DEC91 0 -1 02DEC91 06DEC91 0 0
2 Drawings Prototype     10 Completed 11 07DEC91 17DEC91 07DEC91 17DEC91 07DEC91 17DEC91 0 0 07DEC91 16DEC91 0 1
3 Anal. Market Mkt. Strat.     5 Completed 5 06DEC91 10DEC91 06DEC91 10DEC91 09JAN92 13JAN92 30 0 07DEC91 11DEC91 -1 -1
4 Write Specs Prototype     5 Completed 6 08DEC91 13DEC91 08DEC91 13DEC91 12DEC91 17DEC91 4 4 07DEC91 11DEC91 1 2
5 Prototype Materials Facility   15 In Progress . 18DEC91 . 18DEC91 05JAN92 18DEC91 05JAN92 0 0 17DEC91 04JAN92 1 1
6 Mkt. Strat. Test Market Marketing   10 In Progress . 11DEC91 . 11DEC91 22DEC91 14JAN92 25JAN92 30 30 12DEC91 21DEC91 -1 1
7 Materials Init. Prod.     10 Pending . . . 06JAN92 15JAN92 06JAN92 15JAN92 0 0 05JAN92 14JAN92 1 1
8 Facility Init. Prod.     10 Pending . . . 06JAN92 15JAN92 06JAN92 15JAN92 0 0 05JAN92 14JAN92 1 1
9 Init. Prod. Test Market Marketing Evaluate 10 Pending . . . 16JAN92 25JAN92 16JAN92 25JAN92 0 0 15JAN92 24JAN92 1 1
10 Evaluate Changes     10 Pending . . . 26JAN92 04FEB92 31JAN92 09FEB92 5 5 25JAN92 03FEB92 1 1
11 Test Market Changes     15 Pending . . . 26JAN92 09FEB92 26JAN92 09FEB92 0 0 25JAN92 08FEB92 1 1
12 Changes Production     5 Pending . . . 10FEB92 14FEB92 10FEB92 14FEB92 0 0 09FEB92 13FEB92 1 1
13 Production       0 Pending . . . 15FEB92 15FEB92 15FEB92 15FEB92 0 0 14FEB92 14FEB92 1 1
14 Marketing       0 Pending . . . 26JAN92 26JAN92 15FEB92 15FEB92 20 20 25JAN92 25JAN92 1 1

The following invocation of PROC CPM produced Output 2.13.4:

   proc cpm data=widgact holidata=holidays
            out=widgupdt date='2dec91'd;
      activity task;
      succ     succ1 succ2 succ3;
      duration days;
      holiday  holiday / holifin=(holifin);
      baseline / compare=early;
      actual / as=sdate af=fdate timenow='20dec91'd
               remdur=rdur pctcomp=pctc
               autoupdt showfloat;
      run;

Chapter Contents
Chapter Contents
Previous
Previous
Next
Next
Top
Top

Copyright © 1999 by SAS Institute Inc., Cary, NC, USA. All rights reserved.