The Earned Value Management Macros

%EVA_TASK_METRICS

This macro is used to produce earned value measures for each task; these measures include Planned Value, Earned Value, Actual Cost, Cost and Schedule Variance, and Cost and Schedule Performance Index.

  • %EVA_TASK_METRICS ( parameters ) ;

Required Parameters

ACTIVITY= variable

specifies the activity variable in the PLANSCHED= and REVISESCHED= data sets.

ACTUALCOST= SAS-data-set
REVISECOST=SAS-data-set

identifies the updated costs data set.

BUDGETCOST= SAS-data-set
PLANCOST=SAS-data-set

identifies the budgeted costs data set.

PLANSCHED= SAS-data-set

identifies the input data set that contains the planned schedule.

REVISESCHED= SAS-data-set

identifies the input data set that contains the updated schedule.

START= variable

specifies the start date or datetime variable in the PLANSCHED= and REVISESCHED= data sets.

Optional Parameters

ACRONYMS= long

specifies whether the long form of the earned value acronyms is to be used—e.g., BCWP versus EV. The short form is used unless the macro variable _ACRONYMS_ is set to "long" or ACRONYMS=long is specified. The parameter overrides the macro variable setting; i.e., specifying any non-null value other than "long" for the ACRONYMS= parameter produces short forms.

AGGREGATE= Y or otherwise

specifies whether or not to roll up values along the project hierarchy; a value of Y indicates that aggregation is to be carried out. No rollup is performed for the default behavior. The WBSCODE= parameter is required if AGGREGATE=Y is specified.

CALENDAR= SAS-data-set

identifies the calendar data set. (See the CALENDAR= option in Chapter 4 for more details.)

COST= variable

specifies the cost variable in the BUDGETCOST= and ACTUALCOST= data sets. This is the total of the start and finish costs associated with the given task. At least COST= or RATE= must be specified. If a variable is specified for this parameter, but the value for the variable is missing for a given observation, the corresponding value from the BUDGETCOST= data set is used.

DURATION= variable

specifies the task duration variable in the PLANSCHED= and REVISESCHED= data sets. At least DURATION= or FINISH= must be specified. If both parameters are specified, the FINISH= variable value overrides a nonzero DURATION= variable value; i.e., duration is only used to indicate a milestone task.

FINISH= variable

specifies the finish date or datetime variable in the PLANSCHED= and REVISESCHED= data sets At least FINISH= or DURATION= must be specified. If both parameters are specified, the FINISH= variable value overrides a nonzero DURATION= variable value; i.e., duration is only used to indicate a milestone task.

HOLIDATA= SAS-data-set

identifies the holiday data set. (See the HOLIDATA= option in Chapter 4 for more details.)

HOLIDAY= statement

specifies the HOLIDAY statement to use for PROC CPM. For example:

%eva_task_metrics(\ldots, holiday=holiday start / holifin=finish, ...);

(See the HOLIDAY statement in Chapter 4 for more details.)

INTERVAL= interval

specifies the units to use for the DURATION= variable values. (See the INTERVAL= option in Chapter 4 for more details.)

PCTCOMP= variable

specifies the percentage complete variable of the REVISESCHED= data set. Note that for a given activity, the specified percentage complete can appear to be in conflict with the amount of time spent, relative to the projected finish time for that activity. For example, even though 5 of 10 working days have elapsed, maybe only 30% of the activity has been completed. The input data reflects an anticipated acceleration in progress over the next five days. Also, if there is no value for the PCTCOMP= variable for a given activity, a computed value is substituted.

RATE= variable

specifies the cost rate variable in the BUDGETCOST= and ACTUALCOST= data sets. This is the rate at which cost is incurred over the DURATION= variable value for the given task. At least RATE= or COST= must be specified. If a variable is specified for this parameter, but the value for the variable is missing for a given observation, the corresponding value from the BUDGETCOST= data set is used.

SPCT= variable

specifies the start percentage variable in the BUDGETCOST= and ACTUALCOST= data sets. This is the percentage of the COST= amount that is incurred at the beginning of the task. The default is zero, in which case the entire COST= amount is incurred at the completion of the task. The specified variable may also contain a comma-delimited list of weights to be used for distributing the cost at equal working intervals over the duration of the activity. If a variable is specified for this parameter, but the value for the variable is missing for a given observation, the corresponding value from the BUDGETCOST= data set is used.

TASKMETRICS= SAS-data-set

identifies the output data set. The default data set name is TASKMETS.

TIMENOW= time

specifies the date (’ddmmmyy’d) or datetime (’ddmmmyy:hh:mm:ss’dt) of the updated schedule and costs. The default value is today’s date unless the macro variable _TIMENOW_ has been set, in which case the default is the latter.

WBSCODE= variable

specifies the variable that contains the Work Breakdown Structure code in the PLANSCHED= or REVISESCHED= data set. The default variable name is WBS_CODE.

WORKDAY= SAS-data-set

identifies the workday input data set. (See the WORKDAY= option in Chapter 4 for more details.)

Note that if a WORKDAY=, CALENDAR=, or HOLIDAY= data set is specified, the default variable name, _CAL_, is assumed for calendar identification.

Table 11.4 summarizes the parameters used for managing input and output data sets in the %EVA_TASK_METRICS macro.

Table 11.4: %EVA_TASK_METRICS I/O Parameter Summary

Type

Data Set

Variables

INPUT

ACTUALCOST 

COST, RATE, SPCT

INPUT

BUDGETCOST 

COST, RATE, SPCT

INPUT

CALENDAR

 

INPUT

HOLIDATA

 

INPUT

PLANSCHED

ACTIVITY, DURATION, FINISH, START, WBSCODE

INPUT

REVISESCHED

ACTIVITY, DURATION, FINISH, PCTCOMP, START, WBSCODE

INPUT

WORKDAY

 

OUTPUT

TASKMETRICS