The Earned Value Management Macros

Analysis

This section describes each macro in the earned value macro set in further detail.

%EVA_PLANNED_VALUE

This macro is used to establish periodic planned value. The first input data set for this macro (identified using the PLANSCHED= parameter) provides an initial baseline schedule. The second input data set (identified using the BUDGETCOST= parameter) contains the budgeted costs data set. One of the output data sets (identified using the PV= parameter) consists of two pertinent variables: _TIME_ and _PV_RATE_. The latter variable lists the budgeted cost for the date or datetime indicated by the former variable. Another output data set is identified using the TASKPV= parameter, and provides the planned duration and costs by activity, for later use by the %EVA_EARNED_VALUE macro.

Upon completion, the status of the macro is saved in a global macro variable named _EVA_PLANNED_VALUE_, which can take one of the following three values:

  • STATUS=SUCCESSFUL indicates successful completion of the macro.

  • STATUS=SYNTAX_ERROR indicates that macro execution was halted due to an error in the macro invocation syntax.

  • STATUS=RUNTIME_ERROR indicates that the macro invocation failed.

%EVA_EARNED_VALUE

This macro is used to establish periodic earned value and actual cost. The first of the input data sets for this macro (identified using the REVISESCHED= parameter) contains a schedule that has been updated to reflect the current status of the project. A second input data set (identified using the ACTUALCOST= parameter) specifies the revised cost. The third input data set, from the %EVA_PLANNED_VALUE macro, is identified using the TASKPV= parameter, and supplies the planned duration and costs by activity. These are needed for computing the earned value. The output data set (identified using the EV= parameter) contains three relevant variables: _TIME_, _EV_RATE_, and _AC_RATE_. _EV_RATE_ lists the Earned Value, and _AC_RATE_ the Actual Cost of Work Performed, for the date or datetime indicated by the _TIME_ variable.

Upon completion, the status of the macro is saved in a global macro variable named _EVA_EARNED_VALUE_, which can take one of the following three values:

  • STATUS=SUCCESSFUL indicates successful completion of the macro.

  • STATUS=SYNTAX_ERROR indicates that macro execution was halted due to an error in the macro invocation syntax.

  • STATUS=RUNTIME_ERROR indicates that the macro invocation failed.

%EVA_METRICS

This macro is used to compute the periodic metrics and summary statistics in reference to the date(s) or datetime(s) specified by the TIMENOW= parameter. The periodic planned value data set (generated by the %EVA_PLANNED_VALUE  macro) and the periodic earned value data set (generated by the %EVA_EARNED_VALUE macro) are the inputs to the %EVA_METRICS macro. These two data sets are identified using the PV= and EV= parameters, respectively. The METRICS= parameter identifies the periodic output data set, and the SUMMARY= parameter identifies the summary output data set. An output listing is also produced, which is derived from the summary output data set. The two output data sets are described next.

Periodic Output Data Set

The variables in this data set are as follows:

  • _TIME_ is the date or datetime reference point for the other variables.

  • _PV_ is the cumulative Planned Value (Budgeted Cost of Work Scheduled).

  • _EV_ is the cumulative Earned Value (Budgeted Cost of Work Performed).

  • _AC_ is the cumulative Actual Cost (Actual Cost of Work Performed).

  • _EACREV_ is the EAC$_\mr {rev}$. This variable is simply an accumulation of costs to project completion, according to the revised budget and schedule.

  • _SV_ is the cumulative Schedule Variance, calculated as $\mi {SV} = \mi {EV} - \mi {PV}$.

  • _CV_ is the cumulative Cost Variance, calculated as $\mi {CV} = \mi {EV} - \mi {AC}$.

  • _CPI_ is the Cost Performance Index, calculated as $ \mi {CPI} = \frac{\mi {EV}}{\mi {AC}}. $

  • _SPI_ is the Schedule Performance Index, calculated as $ \mi {SPI} = \frac{\mi {EV}}{\mi {PV}}. $

Summary Output Data Set

The variables in this data set are as follows:

  • _NAME_ is the internal variable name.

  • _LABEL_ is the label used for the variable in the output listing.

  • _VALUEn_ gives the value of the variable for the reference date or datetime given by the respective TIMENOW= parameter value.

Each row of the data set corresponds to one of the summary statistics as follows:

  • _pctcomp_ is the percentage complete for the entire project, calculated as $ \mi {Percentage\  Complete} = \frac{\mi {EV}}{\mi {BAC}} $.

  • _ev_ is the cumulative Budgeted Cost of Work Performed (Earned Value).

  • _pv_ is the cumulative Budgeted Cost of Work Scheduled (Planned Value).

  • _ac_ is the cumulative Actual Cost of Work Performed (Actual Cost).

  • _cpi_ is the Cost Performance Index.

  • _spi_ is the Schedule Performance Index.

  • _cv_ is the Cost Variance, calculated as $CV = EV - AC$.

  • _cvp_ is the Cost Variance percentage, calculated as $ \mi {CV\% } = \frac{\mi {CV}}{\mi {EV}} $.

  • _sv_ is the Schedule Variance, calculated as $\mi {SV} = \mi {EV} - \mi {PV}$.

  • _svp_ is the Schedule Variance percentage, calculated as $ \mi {SV\% } = \frac{\mi {SV}}{\mi {PV}} $.

  • _bac_ is the Budget at Completion (BAC).

  • _etc_ is the Estimate To Complete (ETC). The form of EAC used to compute the ETC is specified by the EACFORM= parameter of the %EVA_METRICS macro.

  • _eacrev_ is the revised Estimate at Completion (EAC$_\mr {rev}$).

  • _eacotd_ is the Overrun to Date form of the EAC, calculated as $\mi {EAC_{OTD}} = \mi {AC} + \mi {WR}$, where WR is the Work Remaining ($\mi {WR} = \mi {BAC} - \mi {EV}$).

  • _eaccpi_ is the Cumulative CPI form of the EAC, calculated as $ EAC_\mi {CPI} = AC + \frac{\mi {WR}}{\mi {CPI}} $.

  • _eaccpispi_ is the Cumulative CPI times SPI form of the EAC, calculated as $ \mi {EAC_{CPI\times SPI}} = \mi {AC} + \frac{\mi {WR}}{\mi {CPI} \times \mi {SPI}} $.

  • _vac_ is the Variance at Completion, calculated as $VAC = BAC - EAC$. The form of EAC used is specified by the EACFORM= parameter of the %EVA_METRICS macro.

  • _vacp_ is the CPI Variance at Completion percentage, calculated as $ \mi {VAC\% } = \frac{\mi {VAC}}{\mi {BAC}} $. The form of EAC used to compute the VAC is specified by the EACFORM= parameter of the %EVA_METRICS macro.

  • _tcpi_ is the BAC To-Complete Performance Index, calculated as $ \mi {TCPI} = \frac{\mi {WR}}{\mi {BAC}-\mi {AC}} $.

  • _etcpi_ is the EAC To-Complete Performance Index, calculated as $ \mi {TCPI} = \frac{\mi {WR}}{\mi {EAC}-\mi {AC}} $. The form of EAC used is specified by the EACFORM= parameter of the %EVA_METRICS macro.

Upon completion, the status of the macro is saved in a global macro variable named _EVA_METRICS_, which can take one of the following three values:

  • STATUS=SUCCESSFUL indicates successful completion of the macro.

  • STATUS=SYNTAX_ERROR indicates that macro execution was halted due to an error in the macro invocation syntax.

  • STATUS=RUNTIME_ERROR indicates that the macro invocation failed.

%EVA_TASK_METRICS

This macro uses the budgeted schedule and costs (identified using the PLANSCHED= and BUDGETCOST= parameters, respectively), along with the updated schedule and costs (identified using the REVISESCHED= and ACTUALCOST= parameters, respectively), to produce Cost Variance and Schedule Variance by task. The corresponding output data set is specified using the TASKMETRICS= parameter and is represented in the output listing. The variables in this data set are as follows:

  • Activity is the reference task for the given row.

  • WBS_CODE is the Work Breakdown Structure code for the given task.

  • _CV_ is the Cost Variance for the given task.

  • _CVP_ is the Cost Variance percentage for the given task.

  • _SV_ is the Schedule Variance for the given task.

  • _SVP_ is the Schedule Variance percentage for the given task.

  • _CPI_ is the Cost Performance Index for the given task.

  • _SPI_ is the Schedule Performance Index for the given task.

  • _PV_ is the Planned Value (BCWS) for the given task.

  • _EV_ is the Earned Value (BCWP) for the given task.

  • _AC_ is the Actual Cost (ACWP) for the given task.

Specifying AGGREGATE=Y with the WBSCODE= option forces the preceding metrics to be rolled up along the project hierarchy.

Upon completion, the status of the macro is saved in a global macro variable named _EVA_TASK_METRICS_, which can take one of the following three values:

  • STATUS=SUCCESSFUL indicates successful completion of the macro.

  • STATUS=SYNTAX_ERROR indicates that macro execution was halted due to an error in the macro invocation syntax.

  • STATUS=RUNTIME_ERROR indicates that the macro invocation failed.

%EVG_COST_PLOT

This macro is used to generate a line plot of the Earned Value, Planned Value, Actual Cost, and revised cost over time. If the project has not been completed, three Estimates at Completion are also delineated by a three-tiered box at the right-hand side of the plot area. In addition, several vital statistics appear as part of the legend: Planned Value, Earned Value, Actual Cost, revised cost, Cost and Schedule Performance Indices, Budget At Completion, and Estimates at Completion.

Upon completion, the status of the macro is saved in a global macro variable named _EVG_COST_PLOT_, which can take one of the following three values:

  • STATUS=SUCCESSFUL indicates successful completion of the macro.

  • STATUS=SYNTAX_ERROR indicates that macro execution was halted due to an error in the macro invocation syntax.

  • STATUS=RUNTIME_ERROR indicates that the macro invocation failed.

%EVG_SCHEDULE_PLOT

This macro is used to visualize planned and projected completion times for the project. To this end, plots of the planned value and actual and revised cost are displayed. To arrive at a projected finish time, the earned value plot is extended to the Budget at Completion with a slope equal to the ratio of Earned Value to time elapsed at the status date. The slope of this extension is the average rate at which Earned Value has accumulated up to the status date. Vital statistics displayed in the legend include Planned Value, Earned Value, Actual Cost, and Budget at Completion.

Upon completion, the status of the macro is saved in a global macro variable named _EVG_SCHEDULE_PLOT_, which can take one of the following three values:

  • STATUS=SUCCESSFUL indicates successful completion of the macro.

  • STATUS=SYNTAX_ERROR indicates that macro execution was halted due to an error in the macro invocation syntax.

  • STATUS=RUNTIME_ERROR indicates that the macro invocation failed.

%EVG_INDEX_PLOT

This macro is used to plot the Cost and Schedule Performance Indices over time. The To-Complete Performance Index is also shown.

Upon completion, the status of the macro is saved in a global macro variable named _EVG_INDEX_PLOT_, which can take one of the following three values:

  • STATUS=SUCCESSFUL indicates successful completion of the macro.

  • STATUS=SYNTAX_ERROR indicates that macro execution was halted due to an error in the macro invocation syntax.

  • STATUS=RUNTIME_ERROR indicates that the macro invocation failed.

%EVG_VARIANCE_PLOT

This macro is used to plot the Cost and Schedule Variances over time. Upon completion, the status of the macro is saved in a global macro variable named _EVG_VARIANCE_PLOT_, which can take one of the following three values:

  • STATUS=SUCCESSFUL indicates successful completion of the macro.

  • STATUS=SYNTAX_ERROR indicates that macro execution was halted due to an error in the macro invocation syntax.

  • STATUS=RUNTIME_ERROR indicates that the macro invocation failed.

%EVG_GANTT_CHART

This macro is used to show the Cost and Schedule Variances and the Cost and Schedule Performance Indices by activity, along with a Gantt chart of the schedule. For each task, the bottom bar depicts the baseline schedule and the top bar represents the updated schedule.

Upon completion, the status of the macro is saved in a global macro variable named _EVG_GANTT_CHART_, which can take one of the following three values:

  • STATUS=SUCCESSFUL indicates successful completion of the macro.

  • STATUS=SYNTAX_ERROR indicates that macro execution was halted due to an error in the macro invocation syntax.

  • STATUS=RUNTIME_ERROR indicates that the macro invocation failed.

%EVG_WBS_CHART

This macro is used to display the Work Breakdown Structure, in addition to any other data associated with an activity.

Upon completion, the status of the macro is saved in a global macro variable named _EVG_WBS_CHART_, which can take one of the following three values:

  • STATUS=SUCCESSFUL indicates successful completion of the macro.

  • STATUS=SYNTAX_ERROR indicates that macro execution was halted due to an error in the macro invocation syntax.

  • STATUS=RUNTIME_ERROR indicates that the macro invocation failed.