The Earned Value Management Macros

Analysis

Generating Periodic Data Sets

Consider the following set of activities that constitute a software multiproject. The Project variable defines the project hierarchy and the Succesr1 and Succesr2 variables define the precedence relationships. The complete project data is shown in Figure 9.6.

 data softin;
 input Project  $10.
       Activity $11.
       Description $22.
       Duration
       Succesr1 $9.
       Succesr2 $9.;
 datalines;
           SWPROJ     Software project       .
 DEBUG     RECODE     Recoding               5  DOCEDREV  QATEST
 DOC       DOCEDREV   Doc. Edit and Revise  10  PROD
 DOC       PRELDOC    Prel. Documentation   15  DOCEDREV  QATEST
 MISC      MEETMKT    Meet Marketing         0  RECODE
 MISC      PROD       Production             1
 SWPROJ    DEBUG      Debug & Code Fixes     .
 SWPROJ    DOC        Doc. Subproject        .
 SWPROJ    MISC       Miscellaneous          .
 SWPROJ    TEST       Test Subproject        .
 TEST      QATEST     QA Test Approve       10  PROD
 TEST      TESTING    Initial Testing       20  RECODE
 ;
 


Software Schedule Input

Obs Project Activity Description Duration Succesr1 Succesr2
1   SWPROJ Software project .    
2 DEBUG RECODE Recoding 5 DOCEDREV QATEST
3 DOC DOCEDREV Doc. Edit and Revise 10 PROD  
4 DOC PRELDOC Prel. Documentation 15 DOCEDREV QATEST
5 MISC MEETMKT Meet Marketing 0 RECODE  
6 MISC PROD Production 1    
7 SWPROJ DEBUG Debug & Code Fixes .    
8 SWPROJ DOC Doc. Subproject .    
9 SWPROJ MISC Miscellaneous .    
10 SWPROJ TEST Test Subproject .    
11 TEST QATEST QA Test Approve 10 PROD  
12 TEST TESTING Initial Testing 20 RECODE  


Figure 9.6: Software Schedule Input SOFTIN

The project network diagram showing the precedence relationships can be generated with the following code, using the NETDRAW procedure (see SAS/OR User's Guide: Project Management, Chapter 5, for additional information). The resulting diagram is shown in Figure 9.7. (Note that the first DATA step removes the root task to simplify the diagram.)

    data softabridged;
        set softin;
        if activity ne 'SWPROJ' and project ne 'SWPROJ' then output;
    run;
    proc netdraw data=softabridged out=ndout graphics;
       actnet/act=activity font=swiss
       id=(description)
       nodefid
       nolabel
       succ=(succesr1 succesr2)
       lwidth=2
       coutline=black
       ctext=black
       carcs=black
       cnodefill=ltgray
       zone=project
       zonespace
       htext=3 pcompress
       centerid;
    run;
 



evnetdraw.gif (98397 bytes)

Figure 9.7: Project Network Diagram Using PROC NETDRAW

The project hierarchy, or Work Breakdown Structure (WBS), can be visualized with the following code. The graphical output is shown in Figure 9.8. The details for the use of the %EVG_WBS_CHART macro are given in the section "Syntax".

    %evg_wbs_chart(
       structure=softin,
       activity=activity,
       project=project
    );
 



evwbs.gif (210629 bytes)

Figure 9.8: Work Breakdown Structure Using %EVG_WBS_CHART

The CPM procedure can be used as follows to generate a schedule based on the precedence and hierarchical constraints (see SAS/OR User's Guide: Project Management, Chapter 2, for more details).

    proc cpm data=softin
             out=software
             interval=day
             date='01mar04'd;
       id description;
       project project / addwbs;
       activity activity;
       duration duration;
       successor succesr1 succesr2;
    run;
 

The resulting schedule data set is manipulated to produce a data set containing the early and late schedules, shown in Figure 9.9. The WBS_CODE variable gives the project hierarchy. The E_START and E_FINISH variables represent the early schedule, and the L_START and L_FINISH variables give the late schedule.

    proc sort data=software;
       by wbs_code;
    run; 
    proc print data=software; 
        title 'Planned Schedule';
        var activity wbs_code e_start e_finish l_start l_finish;
    run;
 


Planned Schedule

Obs Activity WBS_CODE E_START E_FINISH L_START L_FINISH
1 SWPROJ 0 01MAR04 05APR04 01MAR04 05APR04
2 DEBUG 0.0 21MAR04 25MAR04 21MAR04 25MAR04
3 RECODE 0.0.0 21MAR04 25MAR04 21MAR04 25MAR04
4 DOC 0.1 01MAR04 04APR04 11MAR04 04APR04
5 DOCEDREV 0.1.0 26MAR04 04APR04 26MAR04 04APR04
6 PRELDOC 0.1.1 01MAR04 15MAR04 11MAR04 25MAR04
7 MISC 0.2 01MAR04 05APR04 21MAR04 05APR04
8 MEETMKT 0.2.0 01MAR04 01MAR04 21MAR04 21MAR04
9 PROD 0.2.1 05APR04 05APR04 05APR04 05APR04
10 TEST 0.3 01MAR04 04APR04 01MAR04 04APR04
11 QATEST 0.3.0 26MAR04 04APR04 26MAR04 04APR04
12 TESTING 0.3.1 01MAR04 20MAR04 01MAR04 20MAR04


Figure 9.9: Software Schedule SOFTWARE

A Gantt chart of this schedule can be produced with the GANTT procedure using the following code. (See SAS/OR User's Guide: Project Management, Chapter 4, for more details.)

    title f=swiss h=4pct 'Project Master Schedule';
    title2 f=swiss h=3pct;
    proc gantt data=software;
       chart / mininterval=week pcompress
          top
          cframe=ltgray
          font=swiss
          height=1
          skip=2
          activity=activity
          nojobnum
          successor=(succesr1 succesr2)
          scale=10
          duration=duration;
          id description wbs_code;
    run;
 

Figure 9.10 shows the output from this call to PROC GANTT.



gantt.gif (218440 bytes)

Figure 9.10: Initial Schedule Using PROC GANTT

Now suppose the early schedule is designated as the baseline. For the sake of clarity, the E_START and E_FINISH variables have been renamed to START and FINISH, respectively. Also, the variables required for performing the earned value analysis are retained. The modified data set is shown in Figure 9.11.

    data software;
        set software;
        keep project activity duration description
             e_start e_finish wbs_code succesr1 succesr2;
        rename e_start = Start
               e_finish = Finish;
        label wbs_code = 'WBS Code'
              e_start = 'Start'
              e_finish = 'Finish';
        if duration eq . then duration = proj_dur;
    run;
 


Planned Schedule

Obs Activity WBS Code Description Duration Start Finish
1 SWPROJ 0 Software project 36 01MAR04 05APR04
2 DEBUG 0.0 Debug & Code Fixes 5 21MAR04 25MAR04
3 RECODE 0.0.0 Recoding 5 21MAR04 25MAR04
4 DOC 0.1 Doc. Subproject 35 01MAR04 04APR04
5 DOCEDREV 0.1.0 Doc. Edit and Revise 10 26MAR04 04APR04
6 PRELDOC 0.1.1 Prel. Documentation 15 01MAR04 15MAR04
7 MISC 0.2 Miscellaneous 36 01MAR04 05APR04
8 MEETMKT 0.2.0 Meet Marketing 0 01MAR04 01MAR04
9 PROD 0.2.1 Production 1 05APR04 05APR04
10 TEST 0.3 Test Subproject 35 01MAR04 04APR04
11 QATEST 0.3.0 QA Test Approve 10 26MAR04 04APR04
12 TESTING 0.3.1 Initial Testing 20 01MAR04 20MAR04


Figure 9.11: Software Schedule SOFTWARE

Assume also that each of the activities is budgeted to incur costs continuously at the rates shown in the RATES data set in Figure 9.12.

    data rates;
       format Activity $11.
              Rate 8.;
       Activity='SWPROJ ';Rate=5 ;output;
       Activity='RECODE ';Rate=6 ;output;
       Activity='PRELDOC ';Rate=4 ;output;
       Activity='DOCEDREV ';Rate=4 ;output;
       Activity='MEETMKT ';Rate=. ;output;
       Activity='PROD ';Rate=2 ;output;
       Activity='TEST ';Rate=1 ;output;
       Activity='DOC ';Rate=1 ;output;
       Activity='MISC ';Rate=1 ;output;
       Activity='DEBUG ';Rate=1 ;output;
       Activity='TESTING ';Rate=3 ;output;
       Activity='QATEST ';Rate=4 ;output;
    run;
 


Planned Rates

Obs Activity Rate
1 SWPROJ 5
2 RECODE 6
3 PRELDOC 4
4 DOCEDREV 4
5 MEETMKT .
6 PROD 2
7 TEST 1
8 DOC 1
9 MISC 1
10 DEBUG 1
11 TESTING 3
12 QATEST 4


Figure 9.12: Software Budget RATES

To determine the periodic budgeted costs, invoke the %EVA_PLANNED_VALUE macro as follows:

    %eva_planned_value(
         plansched=software,      /* schedule data */
         activity=activity,
         start=start,
         finish=finish,
         duration=duration,
         budgetcost=rates,        /* cost data */
         rate=rate
    );
 

The parameters used in this call to %EVA_PLANNED_VALUE are described in the following list. More details are given in the section "Syntax".

The output data set generated by this call to %EVA_PLANNED_VALUE is shown in Figure 9.13.



Daily Planned Value

Obs Date PV Rate
1 01MAR04 15
2 02MAR04 15
3 03MAR04 15
4 04MAR04 15
5 05MAR04 15
6 06MAR04 15
7 07MAR04 15
8 08MAR04 15
9 09MAR04 15
10 10MAR04 15
11 11MAR04 15
12 12MAR04 15
13 13MAR04 15
14 14MAR04 15
15 15MAR04 15
16 16MAR04 11
17 17MAR04 11
18 18MAR04 11
19 19MAR04 11
20 20MAR04 11
21 21MAR04 15
22 22MAR04 15
23 23MAR04 15
24 24MAR04 15
25 25MAR04 15
26 26MAR04 16
27 27MAR04 16
28 28MAR04 16
29 29MAR04 16
30 30MAR04 16
31 31MAR04 16
32 01APR04 16
33 02APR04 16
34 03APR04 16
35 04APR04 16
36 05APR04 8


Figure 9.13: Periodic Planned Value Data Set Using %EVA_PLANNED_VALUE

Note that the "PV Rate" column shows the daily Planned Value (or Budgeted Cost of Work Scheduled). This is the cost incurred each day according to the plan or budget.

In general, once a project is in progress it is subject to uncertainties, the impact of which can often only be approximated in the original plan. Such uncertainties can affect the project schedule, project cost, or both. From a schedule standpoint an activity may be delayed due to a multitude of factors---a required resource being unavailable, a worker becoming sick, a machine breaking down, adverse weather conditions, etc. From a cost standpoint a contractor may revise his/her original estimate, the cost of raw materials may increase due to external factors, a sick or disabled worker might necessitate the use of a more costly contractor to minimize schedule slippage, etc.

Figure 9.14 lists the status of completed activities, and those in progress, as of March 25, 2004.

    data softact;
    format Activity $11.
           Percent 8.;
    format Start Finish date7.;
    Activity='MEETMKT';Start='01MAR04'd;Finish='01MAR04'd;Percent=100;output;
    Activity='PRELDOC';Start='01MAR04'd;Finish='14MAR04'd;Percent=100;output;
    Activity='TESTING';Start='01MAR04'd;Finish=.;Percent=80;output;
    run;
 


Actual Dates and Percentage Complete

Obs Activity Start Finish Percent
1 MEETMKT 01MAR04 01MAR04 100
2 PRELDOC 01MAR04 14MAR04 100
3 TESTING 01MAR04 . 80


Figure 9.14: Software Project Status SOFTACT

Integrating this new information with the original schedule input data set gives the updated data set shown in Figure 9.15.

    proc sql;
       create table softupd as 
          select project, softin.activity, duration, 
                 start, finish, percent, succesr1, 
                 succesr2, description 
             from softin left join softact
             on softin.activity = softact.activity
             order by 1, 2
       ;
    quit;
 


Schedule Input March 25

Obs Project Activity Duration Start Finish Percent Succesr1 Succesr2
1   SWPROJ . . . .    
2 DEBUG RECODE 5 . . . DOCEDREV QATEST
3 DOC DOCEDREV 10 . . . PROD  
4 DOC PRELDOC 15 01MAR04 14MAR04 100 DOCEDREV QATEST
5 MISC MEETMKT 0 01MAR04 01MAR04 100 RECODE  
6 MISC PROD 1 . . .    
7 SWPROJ DEBUG . . . .    
8 SWPROJ DOC . . . .    
9 SWPROJ MISC . . . .    
10 SWPROJ TEST . . . .    
11 TEST QATEST 10 . . . PROD  
12 TEST TESTING 20 01MAR04 . 80 RECODE  


Figure 9.15: Updated Software Schedule Input SOFTUPD

Using this updated data set, PROC CPM is then invoked to create a new schedule.

    proc cpm data=softupd
             out=software25
             interval=day
             date='01mar04'd;
       id description percent;
       project project / addwbs;
       activity activity;
       duration duration;
       actual / as=start af=finish pctcomp=percent timenow='25MAR04'd;
       successor succesr1 succesr2;
    run;
 

    data software25;
     set software25;
     keep project activity e_start e_finish percent wbs_code duration;
     rename e_start = Start
            e_finish = Finish;
     label wbs_code = 'WBS Code'
           e_start = 'Start'
           e_finish = 'Finish';
    run;
 

The resulting schedule is shown alongside the planned schedule in Figure 9.16.

Software Schedule as of March 25

Obs Activity WBS Code Planned Start Planned Finish Start Finish Percent
1 SWPROJ 0 01MAR04 05APR04 01MAR04 15APR04 .
2 DEBUG 0.0 21MAR04 25MAR04 31MAR04 04APR04 .
3 RECODE 0.0.0 21MAR04 25MAR04 31MAR04 04APR04 .
4 DOC 0.1 01MAR04 04APR04 01MAR04 14APR04 .
5 DOCEDREV 0.1.0 26MAR04 04APR04 05APR04 14APR04 .
6 PRELDOC 0.1.1 01MAR04 15MAR04 01MAR04 14MAR04 100
7 MISC 0.2 01MAR04 05APR04 01MAR04 15APR04 .
8 MEETMKT 0.2.0 01MAR04 01MAR04 01MAR04 01MAR04 100
9 PROD 0.2.1 05APR04 05APR04 15APR04 15APR04 .
10 TEST 0.3 01MAR04 04APR04 01MAR04 14APR04 .
11 QATEST 0.3.0 26MAR04 04APR04 05APR04 14APR04 .
12 TESTING 0.3.1 01MAR04 20MAR04 01MAR04 30MAR04 80


Figure 9.16: Updated Software Schedule SOFTWARE25

Notice that the activity PRELDOC has completed one day ahead of schedule. Despite this encouraging bit of news, the project is showing signs of slipping. Only one other activity has completed as of the status date. The original plan called for three activities to have completed, with two additional activities completing at the end of the day. Instead, five activities are in progress. The finish date for the root parent activity, SWPROJ, shows the magnitude of the project slippage so far.

The updated cost rate information is given in Figure 9.17. Compared to the numbers listed in Figure 9.12 the rates for the PRELDOC and TESTING activities have increased, while the rate for the RECODE activity has decreased. Note that the original rates still apply for the activities that are not listed here.

    data rates25;
    format Activity $12.
           Rate 8.;
    Activity='PRELDOC ';Rate=5 ;output;
    Activity='RECODE ';Rate=5 ;output;
    Activity='TESTING ';Rate=4 ;output;
    run;
 


Actual Rates March 25

Obs Activity Rate
1 PRELDOC 5
2 RECODE 5
3 TESTING 4


Figure 9.17: Actual Software Costs RATES25

To compute the impact of schedule slippage and cost overruns, data sets SOFTWARE25 and RATES25 can be specified for the %EVA_EARNED_VALUE macro as shown in the following SAS code. It is assumed that the %EVA_PLANNED_VALUE macro has been run, in which case the planned duration and costs are implicitly carried over to the %EVA_EARNED_VALUE macro as shown in Figure 9.1. Also, as before, the E_START and E_FINISH variables have been renamed to START and FINISH, respectively.

    %eva_earned_value(
        revisesched=software25, /* revised schedule */
        activity=activity,
        start=start,
        finish=finish,
        actualcost=rates25,     /* actual costs */
        rate=rate
    );
 

The parameters used in this call to %EVA_EARNED_VALUE are described briefly in the following list. More details are given in the section "Syntax".

The variable names specified for the ACTIVITY=, START=, FINISH=, and RATE= parameters must be the same, respectively, as those previously specified for the %EVA_PLANNED_VALUE macro. This is to enable the later use of the %EVA_TASK_METRICS and %EVG_GANTT_CHART macros. The output generated by this call to %EVA_EARNED_VALUE is shown in Figure 9.18.



Daily Earned Value and Revised Cost

Obs Date EV Rate AC Rate
1 01MAR04 12.5369 17
2 02MAR04 12.5369 17
3 03MAR04 12.5369 17
4 04MAR04 12.5369 17
5 05MAR04 12.5369 17
6 06MAR04 12.5369 17
7 07MAR04 12.5369 17
8 08MAR04 12.5369 17
9 09MAR04 12.5369 17
10 10MAR04 12.5369 17
11 11MAR04 12.5369 17
12 12MAR04 12.5369 17
13 13MAR04 12.5369 17
14 14MAR04 12.5369 17
15 15MAR04 8.2512 12
16 16MAR04 8.2512 12
17 17MAR04 8.2512 12
18 18MAR04 8.2512 12
19 19MAR04 8.2512 12
20 20MAR04 8.2512 12
21 21MAR04 8.2512 12
22 22MAR04 8.2512 12
23 23MAR04 8.2512 12
24 24MAR04 8.2512 12
25 25MAR04 8.2512 12
26 26MAR04 8.2512 12
27 27MAR04 8.2512 12
28 28MAR04 8.2512 12
29 29MAR04 8.2512 12
30 30MAR04 8.2512 12
31 31MAR04 13.2512 14
32 01APR04 13.2512 14
33 02APR04 13.2512 14
34 03APR04 13.2512 14
35 04APR04 13.2512 14
36 05APR04 14.2512 16
37 06APR04 14.2512 16
38 07APR04 14.2512 16
39 08APR04 14.2512 16
40 09APR04 14.2512 16
41 10APR04 14.2512 16
42 11APR04 14.2512 16
43 12APR04 14.2512 16
44 13APR04 14.2512 16
45 14APR04 14.2512 16
46 15APR04 6.6957 8


Figure 9.18: Periodic Earned Value Data Set Using %EVA_EARNED_VALUE

The "EV Rate" column shows the daily Earned Value (or Budgeted Cost of Work Performed). This is the budgeted cost for the work that was actually accomplished each day. Up to the status date (TIMENOW) of March 25, 2004, the "AC Rate" column depicts the daily Actual Cost (or Actual Cost of Work Performed). After this date, this column represents estimated costs. For this estimate, it is assumed that activities that are in progress at the status date continue at the same cost rate, rather than reverting to the budgeted cost rate. This assumption ultimately yields the revised Estimate At Completion (EAC_{\rm rev}). Figure 9.19 shows the daily Planned Value, Earned Value, and Actual Cost together. The disparity in the number of observations (47 here versus the former 37 for the %EVA_PLANNED_VALUE macro) reflects a schedule slippage of 10 days.

Daily Planned Value, Earned Value, and Revised Cost

Obs DATE PV Rate EV Rate AC Rate
1 01MAR04 15 12.5369 17
2 02MAR04 15 12.5369 17
3 03MAR04 15 12.5369 17
4 04MAR04 15 12.5369 17
5 05MAR04 15 12.5369 17
6 06MAR04 15 12.5369 17
7 07MAR04 15 12.5369 17
8 08MAR04 15 12.5369 17
9 09MAR04 15 12.5369 17
10 10MAR04 15 12.5369 17
11 11MAR04 15 12.5369 17
12 12MAR04 15 12.5369 17
13 13MAR04 15 12.5369 17
14 14MAR04 15 12.5369 17
15 15MAR04 15 8.2512 12
16 16MAR04 11 8.2512 12
17 17MAR04 11 8.2512 12
18 18MAR04 11 8.2512 12
19 19MAR04 11 8.2512 12
20 20MAR04 11 8.2512 12
21 21MAR04 15 8.2512 12
22 22MAR04 15 8.2512 12
23 23MAR04 15 8.2512 12
24 24MAR04 15 8.2512 12
25 25MAR04 15 8.2512 12
26 26MAR04 16 8.2512 12
27 27MAR04 16 8.2512 12
28 28MAR04 16 8.2512 12
29 29MAR04 16 8.2512 12
30 30MAR04 16 8.2512 12
31 31MAR04 16 13.2512 14
32 01APR04 16 13.2512 14
33 02APR04 16 13.2512 14
34 03APR04 16 13.2512 14
35 04APR04 16 13.2512 14
36 05APR04 8 14.2512 16
37 06APR04 . 14.2512 16
38 07APR04 . 14.2512 16
39 08APR04 . 14.2512 16
40 09APR04 . 14.2512 16
41 10APR04 . 14.2512 16
42 11APR04 . 14.2512 16
43 12APR04 . 14.2512 16
44 13APR04 . 14.2512 16
45 14APR04 . 14.2512 16
46 15APR04 . 6.6957 8


Figure 9.19: Periodic Planned Value,Earned Value,and Actual Cost

Results

The earned value metrics can now be computed using the following code:

    %eva_metrics(timenow='25MAR04'd);
 

It is assumed that the %EVA_PLANNED_VALUE and %EVA_EARNED_VALUE macros have been run and that the default output data sets, PV and EV, were used. This enables the %EVA_METRICS macro to implicitly use those data sets as input (see Figure 9.1). If the default data set names were not used, you must specify the correct names using the PV= and EV= options.

The TIMENOW= parameter specifies the date or datetime to which the updated schedule and rates apply.

Figure 9.20 shows the output from the %EVA_METRICS macro.



Earned Value Analysis
as of March 25, 2004

Metric Value
Percent Complete 50.91
PV (Planned Value) 355.00
EV (Earned Value) 266.28
AC (Actual Cost) 370.00
CV (Cost Variance) -103.72
CV% -38.95
SV (Schedule Variance) -88.72
SV% -24.99
CPI (Cost Performance Index) 0.72
SPI (Schedule Performance Index) 0.75
BAC (Budget At Completion) 523.00
EAC (Revised Estimate At Completion) 668.00
EAC (Overrun to Date) 626.72
EAC (Cumulative CPI) 726.72
EAC (Cumulative CPI X SPI) 845.57
ETC (Estimate To Complete)* 356.72
VAC (Variance At Completion)* -203.72
VAC%* -38.95
TCPI (BAC) (To-Complete Performance Index) 1.68
TCPI (EAC) (To-Complete Performance Index)* 0.72

* The CPI form of the EAC is used.


Figure 9.20: Earned Value Summary Metrics Using %EVA_METRICS

The metrics in Figure 9.20 reflect the condition of the project at the status date (TIMENOW). "Percent Complete" is the percentage of the planned work that has been accomplished. Values for this entry range from 0 to 100. PV is the Planned Value, or Budgeted Cost of Work Scheduled (BCWS). This is the work that was projected to have been completed. EV is the Earned Value, or Budgeted Cost of Work Performed (BCWP). This measure represents the value of work completed so far, in terms of budgeted cost. AC is the Actual Cost of Work Performed (ACWP), and represents the actual cost of the work so far.

At first glance, one might compare the Planned Value of $355 to the Actual Cost of $370, and conclude that costs are nearly on track. However, the Earned Value figure of $266.28 puts these numbers in the proper perspective. This project is careening out of control with respect to schedule and costs.

CV and SV are the Cost and Schedule Variance, respectively. CV is the earned value less the amount spent. SV is the earned value less the planned value. CPI and SPI are the Cost and Schedule Performance indices, respectively, and are analogous to the CV and SV. The CPI and SPI are expressed as ratios, rather than differences. The value of 0.72 for CPI indicates a cost overrun situation in which the project has earned 72 cents for every dollar spent. The value of 0.75 for SPI foretells a late project, as only 75% of the planned work has been accomplished on the status date. BAC is the Budget at Completion and is the total budgeted cost of the project. EAC is the Estimate at Completion, and represents the projected total cost, given the current state of the project. For the first of the EAC metrics, EAC_{\rm rev}, it is assumed that future work is performed at the revised rates. EAC_{\rm rev} is computed by accumulating the "AC Rate" data found in the output data set from the %EVA_EARNED_VALUE macro. For EAC_{\rm otd}, the overrun to date estimate, it is assumed that future work will be done at the budgeted rate, which is typically not very realistic. The next two estimates take into account the performance of the project so far. EAC_{\rm cpi}, or the cumulative CPI EAC, is widely regarded as one of the more accurate and reliable estimates, and is frequently used to provide a quick forecast of the project costs. By default, the EAC_{\rm cpi} is used to compute the Variance at Completion (VAC) and one of the To-Complete Performance Index (TCPI) formulations, to follow. The cumulative CPI-times-SPI EAC, denoted EAC_{\rm cpix spi}, is often used to provide a high-end estimate of the project costs. ETC is the Estimate to Complete, or a projection of remaining costs. The VAC represents the financial impact of the expenditures to date on the original budget.

The TCPI is the cost performance factor that must be achieved in order to complete the remaining work using the available funds. The available funds can be defined to be either the remaining budget ({\rm bac - ac}) or remaining costs ({\rm eac - ac}). For example, the TCPI_{\rm bac} of 1.68 indicates that the project needs to earn 1.68 dollars for each dollar spent to stay within the budget. The TCPI_{\rm eac} is a far lower value (0.72) because the revised costs are much larger than the budgeted costs for the remaining work. See Table 9.11, Table 9.12, and Table 9.13 for formula expressions of the preceding metrics.

Figure 9.21 gives a listing of the earned value summary statistics data set produced by the %EVA_METRICS macro. This data set is used to generate the %EVA_METRICS report as well as some of the charts to be described in later sections.



Earned Value Summary Statistics

Obs Name Label March 25, 2004
1 _pctcomp_ Percent Complete 50.914
2 _pv_ PV (Planned Value) 355.000
3 _ev_ EV (Earned Value) 266.280
4 _ac_ AC (Actual Cost) 370.000
5 _cv_ CV (Cost Variance) -103.720
6 _cvp_ CV% -38.951
7 _sv_ SV (Schedule Variance) -88.720
8 _svp_ SV% -24.991
9 _cpi_ CPI (Cost Performance Index) 0.720
10 _spi_ SPI (Schedule Performance Index) 0.750
11 _bac_ BAC (Budget At Completion) 523.000
12 _eacrev_ EAC (Revised Estimate At Completion) 668.000
13 _eacotd_ EAC (Overrun to Date) 626.720
14 _eaccpi_ EAC (Cumulative CPI) 726.716
15 _eaccpispi_ EAC (Cumulative CPI X SPI) 845.567
16 _etc_ ETC (Estimate To Complete)* 356.716
17 _vac_ VAC (Variance At Completion)* -203.716
18 _vacp_ VAC%* -38.951
19 _tcpi_ TCPI (BAC) (To-Complete Performance Index) 1.678
20 _etcpi_ TCPI (EAC) (To-Complete Performance Index)* 0.720


Figure 9.21: Summary Earned Value Data Set Using %EVA_METRICS

The %EVA_METRICS macro also produces the cumulative periodic earned value data set shown in Figure 9.22. This data set contains the cumulative planned value, earned value, and actual and revised costs, together with the associated variances and performance indices.



Earned Value Cumulative Periodic Metrics
Values, Costs, Variances and Indices

Obs Date PV EV AC Revised
Cost
CV SV CPI SPI
1 01MAR04 15 12.537 17 17 -4.463 -2.4631 0.73747 0.83579
2 02MAR04 30 25.074 34 34 -8.926 -4.9262 0.73747 0.83579
3 03MAR04 45 37.611 51 51 -13.389 -7.3892 0.73747 0.83579
4 04MAR04 60 50.148 68 68 -17.852 -9.8523 0.73747 0.83579
5 05MAR04 75 62.685 85 85 -22.315 -12.3154 0.73747 0.83579
6 06MAR04 90 75.222 102 102 -26.778 -14.7785 0.73747 0.83579
7 07MAR04 105 87.758 119 119 -31.242 -17.2415 0.73747 0.83579
8 08MAR04 120 100.295 136 136 -35.705 -19.7046 0.73747 0.83579
9 09MAR04 135 112.832 153 153 -40.168 -22.1677 0.73747 0.83579
10 10MAR04 150 125.369 170 170 -44.631 -24.6308 0.73747 0.83579
11 11MAR04 165 137.906 187 187 -49.094 -27.0939 0.73747 0.83579
12 12MAR04 180 150.443 204 204 -53.557 -29.5569 0.73747 0.83579
13 13MAR04 195 162.980 221 221 -58.020 -32.0200 0.73747 0.83579
14 14MAR04 210 175.517 238 238 -62.483 -34.4831 0.73747 0.83579
15 15MAR04 225 183.768 250 250 -66.232 -41.2319 0.73507 0.81675
16 16MAR04 236 192.019 262 262 -69.981 -43.9807 0.73290 0.81364
17 17MAR04 247 200.271 274 274 -73.729 -46.7295 0.73091 0.81081
18 18MAR04 258 208.522 286 286 -77.478 -49.4783 0.72910 0.80822
19 19MAR04 269 216.773 298 298 -81.227 -52.2271 0.72743 0.80585
20 20MAR04 280 225.024 310 310 -84.976 -54.9758 0.72588 0.80366
21 21MAR04 295 233.275 322 322 -88.725 -61.7246 0.72446 0.79076
22 22MAR04 310 241.527 334 334 -92.473 -68.4734 0.72313 0.77912
23 23MAR04 325 249.778 346 346 -96.222 -75.2222 0.72190 0.76855
24 24MAR04 340 258.029 358 358 -99.971 -81.9710 0.72075 0.75891
25 25MAR04 355 266.280 370 370 -103.720 -88.7198 0.71968 0.75009
26 26MAR04 371 . . 382 . . . .
27 27MAR04 387 . . 394 . . . .
28 28MAR04 403 . . 406 . . . .
29 29MAR04 419 . . 418 . . . .
30 30MAR04 435 . . 430 . . . .
31 31MAR04 451 . . 444 . . . .
32 01APR04 467 . . 458 . . . .
33 02APR04 483 . . 472 . . . .
34 03APR04 499 . . 486 . . . .
35 04APR04 515 . . 500 . . . .
36 05APR04 523 . . 516 . . . .
37 06APR04 . . . 532 . . . .
38 07APR04 . . . 548 . . . .
39 08APR04 . . . 564 . . . .
40 09APR04 . . . 580 . . . .
41 10APR04 . . . 596 . . . .
42 11APR04 . . . 612 . . . .
43 12APR04 . . . 628 . . . .
44 13APR04 . . . 644 . . . .
45 14APR04 . . . 660 . . . .
46 15APR04 . . . 668 . . . .


Figure 9.22: Cumulative Earned Value Data Set Using %EVA_METRICS

The cost and schedule variance by activity can now be produced using the following call to %EVA_TASK_METRICS.

    %eva_task_metrics(
        plansched=software,
        revisesched=software25,
        activity=activity,
        start=start,
        finish=finish,
        budgetcost=rates,
        actualcost=rates25,
        rate=rate,
        aggregate=Y,
        timenow='25MAR04'd
    );
 

The parameters used in this call to %EVA_TASK_METRICS are described briefly in the following list. More details are given in the section "Syntax".

  • RATE= specifies the cost rate variable in the BUDGETCOST= and ACTUALCOST= data sets.
  • AGGREGATE= indicates whether or not to roll up values along the project hierarchy; a value of Y indicates that aggregation is to be performed.
  • TIMENOW= specifies the date or datetime of the updated schedule and costs.
  • Note that the variable names specified for the ACTIVITY=, START=, FINISH=, and RATE= parameters must be the same, respectively, as those previously specified for the %EVA_PLANNED_VALUE and %EVA_EARNED_VALUE macros.

    The output produced by this invocation of the %EVA_TASK_METRICS macro is shown in Figure 9.23.



    Earned Value Analysis by Activity
    as of March 25, 2004

    Obs Activity WBS Code PV EV AC CV CV% SV SV% CPI SPI
    1 SWPROJ 0 355.00 266.28 370.00 -103.72 -38.95 -88.72 -24.99 0.72 0.75
    2 DEBUG 0.0 35.00 0.00 0.00 0.00 0.00 -35.00 -100.00 . 0.00
    3 RECODE 0.0.0 30.00 0.00 0.00 0.00 0.00 -30.00 -100.00 . 0.00
    4 DOC 0.1 85.00 79.44 95.00 -15.56 -19.58 -5.56 -6.54 0.84 0.93
    5 DOCEDREV 0.1.0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 . .
    6 PRELDOC 0.1.1 60.00 60.00 70.00 -10.00 -16.67 0.00 0.00 0.86 1.00
    7 MISC 0.2 25.00 19.57 25.00 -5.43 -27.78 -5.43 -21.74 0.78 0.78
    8 MEETMKT 0.2.0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 . .
    9 PROD 0.2.1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 . .
    10 TEST 0.3 85.00 69.44 125.00 -55.56 -80.00 -15.56 -18.30 0.56 0.82
    11 QATEST 0.3.0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 . .
    12 TESTING 0.3.1 60.00 50.00 100.00 -50.00 -100.00 -10.00 -16.67 0.50 0.83


    Figure 9.23: Cost and Schedule Variance by Activity Using %EVA_TASK_METRICS

    Note that by specifying Y for the AGGREGATE= parameter, the values have been rolled up along the project hierarchy; otherwise, the values would represent the corresponding activity only.

    Previous Page | Next Page | Top of Page