The Earned Value Management Macros

Example 11.2 Construction Project

This example illustrates a home building multiproject. The cost structure of the multiproject consists of both rates and fixed costs. This example also demonstrates how to accommodate multiple status dates. The initial schedule is shown in Output 11.2.1.

Output 11.2.1: Initial Schedule GBSCHED

Planned Construction Schedule

Obs Activity WBS Code Duration Scheduled Start Scheduled Finish
1 Build House 0 1 04SEP10 12OCT10
2 Landscaping 0.00 1 29SEP10 10OCT10
3 Finish Grading 0.00.0 2 29SEP10 30SEP10
4 Walks & Landscape 0.00.1 5 06OCT10 10OCT10
5 Drainage 0.01 1 28SEP10 29SEP10
6 Gutters & Downspouts 0.01.0 1 28SEP10 28SEP10
7 Storm Drains 0.01.1 1 29SEP10 29SEP10
8 Wiring 0.02 1 14SEP10 05OCT10
9 Initial Wiring 0.02.0 2 14SEP10 15SEP10
10 Kitchen Fixtures 0.02.1 1 03OCT10 03OCT10
11 Finish Electrical 0.02.2 1 04OCT10 04OCT10
12 Finish Carpentry 0.02.3 3 03OCT10 05OCT10
13 Plumbing 0.03 1 10SEP10 04OCT10
14 Rough Plumbing 0.03.0 3 11SEP10 13SEP10
15 Basement Plumbing 0.03.1 1 10SEP10 10SEP10
16 Finish Plumbing 0.03.2 2 03OCT10 04OCT10
17 Foundation 0.04 1 04SEP10 15SEP10
18 Excavate & Footers 0.04.0 4 04SEP10 07SEP10
19 Pour Foundation 0.04.1 2 08SEP10 09SEP10
20 Pour Basement 0.04.2 2 14SEP10 15SEP10
21 Roofing 0.05 1 10SEP10 27SEP10
22 Finish Roof 0.05.0 2 26SEP10 27SEP10
23 Frame & Roof 0.05.1 4 10SEP10 13SEP10
24 Flooring 0.06 1 30SEP10 12OCT10
25 Varnish Floor 0.06.0 2 11OCT10 12OCT10
26 Finish Flooring 0.06.1 3 30SEP10 02OCT10
27 Heat & Ventilation 0.07 4 16SEP10 19SEP10
28 Plaster 0.08 10 20SEP10 29SEP10
29 Brickwork 0.09 6 20SEP10 25SEP10
30 Paint 0.10 3 06OCT10 08OCT10



The Work Breakdown Structure for the project is given in Output 11.2.2; this chart was created using the %EVG_WBS_CHART macro.


%evg_wbs_chart(
   structure=gbsched,
   activity=activity,
   project=project,
   id=wbs_code id,
   rotate=N,
   rotatetext=N,
   defid=N
);

Output 11.2.2: %EVG_WBS_CHART: Work Breakdown Structure

%EVGWBSCHART: Work Breakdown Structure


Output 11.2.3 lists the budgeted costs for each task.

Output 11.2.3: Budgeted Cost Rates GBASE

Planned Construction Costs

Obs Activity cost Start Pct./Weights rate
1 Build House 0 0 0
2 Landscaping 0 0 0
3 Drainage 0 0 0
4 Wiring 0 0 0
5 Plumbing 0 0 0
6 Foundation 0 0 0
7 Roofing 0 0 0
8 Flooring 0 0 0
9 Heat & Ventilation 325 50 40
10 Plaster 14500 1,2,3,4 20
11 Brickwork 9500 1,2,3 45
12 Paint 3250 50 30
13 Finish Grading 425 25 25
14 Walks & Landscape 2475 25 25
15 Gutters & Downspouts 1200 50 15
16 Storm Drains 150 25 15
17 Initial Wiring 575 25 45
18 Kitchen Fixtures 375 25 25
19 Finish Electrical 550 25 50
20 Finish Carpentry 1450 25 20
21 Rough Plumbing 1025 25 30
22 Basement Plumbing 1000 25 50
23 Finish Plumbing 350 25 20
24 Excavate & Footers 5250 50 20
25 Pour Foundation 1500 25 15
26 Pour Basement 950 50 20
27 Finish Roof 725 50 40
28 Frame & Roof 9500 25 35
29 Varnish Floor 750 25 15
30 Finish Flooring 425 50 25



Note that the "Storm Drains" task, in the sixteenth observation, costs one quarter (25%) of $150 upon initiation and continues at a rate of $15/day. When complete, the balance (75%) of the $150 is charged. Weighted milestones are specified for the "Plaster" activity, given in Observation 10. At the start, one tenth $\left(\frac{1}{1+2+3+4}\right)$ of $14,500, or $1,450, is incurred. The rate is $20/day. When the task is one third complete, another fifth $\left(\frac{2}{1+2+3+4}\right)$ of $14,500, or $2,900, is incurred. At completion, the cost is two fifths $\left(\frac{4}{1+2+3+4}\right)$ of $14,500, or $5,800.

The %EVA_PLANNED_VALUE macro is next invoked to compute the periodic planned value.

%eva_planned_value(
   plansched=gbsched,
   activity=activity,
   start=start,
   finish=finish,
   budgetcost=gbase,
   rate=rate,
   cost=cost,
   spct=spct,
   taskpv=bout,
   pv=gbcost
);

The periodic planned value data set is shown in Output 11.2.4.

Output 11.2.4: %EVA_PLANNED_VALUE: Periodic Data Set

Daily Planned Value

Obs Period Identifier PV Rate
1 04SEP10 2645.00
2 05SEP10 20.00
3 06SEP10 20.00
4 07SEP10 2645.00
5 08SEP10 390.00
6 09SEP10 1140.00
7 10SEP10 3460.00
8 11SEP10 321.25
9 12SEP10 65.00
10 13SEP10 7958.75
11 14SEP10 683.75
12 15SEP10 971.25
13 16SEP10 202.50
14 17SEP10 40.00
15 18SEP10 40.00
16 19SEP10 202.50
17 20SEP10 3098.33
18 21SEP10 65.00
19 22SEP10 3231.67
20 23SEP10 2965.00
21 24SEP10 65.00
22 25SEP10 4815.00
23 26SEP10 4772.50
24 27SEP10 422.50
25 28SEP10 1235.00
26 29SEP10 6116.25
27 30SEP10 581.25
28 01OCT10 25.00
29 02OCT10 237.50
30 03OCT10 890.00
31 04OCT10 902.50
32 05OCT10 1107.50
33 06OCT10 2298.75
34 07OCT10 55.00
35 08OCT10 1680.00
36 09OCT10 25.00
37 10OCT10 1881.25
38 11OCT10 202.50
39 12OCT10 577.50



Notice that the TASKPV= parameter has been used to ultimately pass the planned activity duration and costs to %EVA_EARNED_VALUE. Assume that the schedule has been updated to reflect actual start and finish times, as of the status date September 15, 2010. The updated schedule is shown in Output 11.2.5.

Output 11.2.5: Updated Schedule GASCHED

Updated Construction Schedule

Obs Activity WBS Code Duration Scheduled Start Scheduled Finish
1 Build House 0 1 04SEP10 17OCT10
2 Landscaping 0.00 1 04OCT10 15OCT10
3 Drainage 0.01 1 03OCT10 04OCT10
4 Wiring 0.02 1 19SEP10 10OCT10
5 Plumbing 0.03 1 15SEP10 09OCT10
6 Foundation 0.04 1 04SEP10 20SEP10
7 Roofing 0.05 1 15SEP10 02OCT10
8 Flooring 0.06 1 05OCT10 17OCT10
9 Heat & Ventilation 0.07 4 21SEP10 24SEP10
10 Plaster 0.08 10 25SEP10 04OCT10
11 Brickwork 0.09 6 25SEP10 30SEP10
12 Paint 0.10 3 11OCT10 13OCT10
13 Finish Grading 0.00.0 2 04OCT10 05OCT10
14 Walks & Landscape 0.00.1 5 11OCT10 15OCT10
15 Gutters & Downspouts 0.01.0 1 03OCT10 03OCT10
16 Storm Drains 0.01.1 1 04OCT10 04OCT10
17 Initial Wiring 0.02.0 2 19SEP10 20SEP10
18 Kitchen Fixtures 0.02.1 1 08OCT10 08OCT10
19 Finish Electrical 0.02.2 1 09OCT10 09OCT10
20 Finish Carpentry 0.02.3 3 08OCT10 10OCT10
21 Rough Plumbing 0.03.0 3 16SEP10 18SEP10
22 Basement Plumbing 0.03.1 1 15SEP10 15SEP10
23 Finish Plumbing 0.03.2 2 08OCT10 09OCT10
24 Excavate & Footers 0.04.0 4 04SEP10 11SEP10
25 Pour Foundation 0.04.1 2 12SEP10 14SEP10
26 Pour Basement 0.04.2 2 19SEP10 20SEP10
27 Finish Roof 0.05.0 2 01OCT10 02OCT10
28 Frame & Roof 0.05.1 4 15SEP10 18SEP10
29 Varnish Floor 0.06.0 2 16OCT10 17OCT10
30 Finish Flooring 0.06.1 3 05OCT10 07OCT10



The updated cost rates are given in Output 11.2.6.

Output 11.2.6: Updated Cost Rates GACT

Updated Construction Costs

Obs Activity Rate Cost Start Pct./Weights
1 Build House 0 0 0
2 Landscaping 0 0 0
3 Drainage 0 0 0
4 Wiring 0 0 0
5 Plumbing 0 0 0
6 Foundation 0 0 0
7 Roofing 0 0 0
8 Flooring 0 0 0
9 Heat & Ventilation 40 325 50
10 Plaster 20 14500 1,2,3,4
11 Brickwork 45 9500 1,2,3
12 Paint 30 3250 50
13 Finish Grading 25 425 25
14 Walks & Landscape 25 2475 25
15 Gutters & Downspouts 15 1200 50
16 Storm Drains 15 150 25
17 Initial Wiring 45 575 25
18 Kitchen Fixtures 25 375 25
19 Finish Electrical 50 550 25
20 Finish Carpentry 20 1450 25
21 Rough Plumbing 30 1025 25
22 Basement Plumbing 50 1000 25
23 Finish Plumbing 20 350 25
24 Excavate & Footers 30 6350 50
25 Pour Foundation 30 2700 25
26 Pour Basement 20 950 50
27 Finish Roof 40 725 50
28 Frame & Roof 35 9500 25
29 Varnish Floor 15 750 25
30 Finish Flooring 25 425 50



The %EVA_EARNED_VALUE macro can then be called as follows:

%eva_earned_value(
   revisesched=gasched,
   activity=activity,
   start=start,
   finish=finish,
   actualcost=gact,
   rate=rate,
   cost=cost,
   spct=spct,
   taskpv=bout,
   ev=gacost
);

The periodic earned value data set that is generated by %EVA_EARNED_VALUE is shown in Output 11.2.7.

Output 11.2.7: %EVA_EARNED_VALUE: Periodic Data Set

Daily Earned Value and Revised Cost

Obs Period Identifier EV Rate AC Rate
1 04SEP10 2635.00 3205.00
2 05SEP10 10.00 30.00
3 06SEP10 10.00 30.00
4 07SEP10 10.00 30.00
5 08SEP10 10.00 30.00
6 09SEP10 10.00 30.00
7 10SEP10 10.00 30.00
8 11SEP10 2635.00 3205.00
9 12SEP10 385.00 705.00
10 13SEP10 10.00 30.00
11 14SEP10 1135.00 2055.00
12 15SEP10 3460.00 3460.00
13 16SEP10 321.25 321.25
14 17SEP10 65.00 65.00
15 18SEP10 7958.75 7958.75
16 19SEP10 683.75 683.75
17 20SEP10 971.25 971.25
18 21SEP10 202.50 202.50
19 22SEP10 40.00 40.00
20 23SEP10 40.00 40.00
21 24SEP10 202.50 202.50
22 25SEP10 3098.33 3098.33
23 26SEP10 65.00 65.00
24 27SEP10 3231.67 3231.67
25 28SEP10 2965.00 2965.00
26 29SEP10 65.00 65.00
27 30SEP10 4815.00 4815.00
28 01OCT10 4772.50 4772.50
29 02OCT10 422.50 422.50
30 03OCT10 1235.00 1235.00
31 04OCT10 6116.25 6116.25
32 05OCT10 581.25 581.25
33 06OCT10 25.00 25.00
34 07OCT10 237.50 237.50
35 08OCT10 890.00 890.00
36 09OCT10 902.50 902.50
37 10OCT10 1107.50 1107.50
38 11OCT10 2298.75 2298.75
39 12OCT10 55.00 55.00
40 13OCT10 1680.00 1680.00
41 14OCT10 25.00 25.00
42 15OCT10 1881.25 1881.25
43 16OCT10 202.50 202.50
44 17OCT10 577.50 577.50



The BUDGETCOST= parameter has been employed to capture the planned duration and costs for each activity. Next, the %EVA_METRICS macro is used to produce statistics for the entire project. For illustrative purposes, a range of times from the start of the project to the revised projected end date is used. Typically, only actual status dates would be used; in this case, perhaps September 4, 2010 and September 15, 2010. Unless otherwise noted, the latter is the assumption for the remainder of the macros in this example.

%eva_metrics(
   pv=gbcost,
   ev=gacost,
   timenow='04SEP10'd '15SEP10'd '01OCT10'd '17OCT10'd
);

The output listing is given in Output 11.2.8.

Output 11.2.8: %EVA_METRICS: Summary Statistics

Earned Value Analysis

Metric September 4, 2010 September 15, 2010 October 1, 2010 October 17, 2010
Percent Complete 4.54 17.78 68.59 100.00
PV (Planned Value) 2645.00 20320.00 48197.50 58055.00
EV (Earned Value) 2635.00 10320.00 39817.50 58055.00
AC (Actual Cost) 3205.00 12840.00 42337.50 60575.00
CV (Cost Variance) -570.00 -2520.00 -2520.00 -2520.00
CV% -21.63 -24.42 -6.33 -4.34
SV (Schedule Variance) -10.00 -10000.00 -8380.00 0.00
SV% -0.38 -49.21 -17.39 0.00
CPI (Cost Performance Index) 0.82 0.80 0.94 0.96
SPI (Schedule Performance Index) 1.00 0.51 0.83 1.00
BAC (Budget At Completion) 58055.00 58055.00 58055.00 58055.00
EAC (Revised Estimate At Completion) 60575.00 60575.00 60575.00 60575.00
EAC (Overrun to Date) 58625.00 60575.00 60575.00 60575.00
EAC (Cumulative CPI) 70613.39 72231.22 61729.23 60575.00
EAC (Cumulative CPI X SPI) 70869.21 129780.85 65810.42 60575.00
ETC (Estimate To Complete)* 67408.39 59391.22 19391.73 0.00
VAC (Variance At Completion)* -12558.39 -14176.22 -3674.23 -2520.00
VAC%* -21.63 -24.42 -6.33 -4.34
TCPI (BAC) (To-Complete Performance Index) 1.01 1.06 1.16 0.00
TCPI (EAC) (To-Complete Performance Index)* 0.82 0.80 0.94 0.94

* The CPI form of the EAC is used.



Observe that the Estimate To Complete (ETC) and Schedule Performance Index (SPI) converge to 0 and 1, respectively, over time. Also, the Actual Cost (AC) agrees with the various Estimates At Completion (EAC’s) at the projected completion date.

Next, the %EVA_TASK_METRICS macro is used to show an activity-level view of the progress of the project.

%eva_task_metrics(
   activity=id,
   plansched=gbsched,
   revisesched=gasched,
   start=start,
   finish=finish,
   budgetcost=gbase,
   actualcost=gact,
   cost=cost,
   spct=spct,
   rate=rate,
   timenow='15SEP10'd,
   aggregate=Y
);

The AGGREGATE= parameter is specified in order to roll up the values with respect to the project hierarchy. The output from this macro is shown in Output 11.2.9 and Output 11.2.10.

Output 11.2.9: %EVA_TASK_METRICS: Metrics by Activity

Earned Value Analysis by Activity
as of September 15, 2010

Obs WBS Code PV EV AC
1 0 20320.00 10320.00 12840.00
2 0.00 0.00 0.00 0.00
3 0.01 0.00 0.00 0.00
4 0.02 665.00 0.00 0.00
5 0.03 2165.00 1050.00 1050.00
6 0.04 7850.00 6860.00 9380.00
7 0.05 9640.00 2410.00 2410.00
8 0.06 0.00 0.00 0.00
9 0.07 0.00 0.00 0.00
10 0.08 0.00 0.00 0.00
11 0.09 0.00 0.00 0.00
12 0.10 0.00 0.00 0.00
13 0.00.0 0.00 0.00 0.00
14 0.00.1 0.00 0.00 0.00
15 0.01.0 0.00 0.00 0.00
16 0.01.1 0.00 0.00 0.00
17 0.02.0 665.00 0.00 0.00
18 0.02.1 0.00 0.00 0.00
19 0.02.2 0.00 0.00 0.00
20 0.02.3 0.00 0.00 0.00
21 0.03.0 1115.00 0.00 0.00
22 0.03.1 1050.00 1050.00 1050.00
23 0.03.2 0.00 0.00 0.00
24 0.04.0 5330.00 5330.00 6590.00
25 0.04.1 1530.00 1530.00 2790.00
26 0.04.2 990.00 0.00 0.00
27 0.05.0 0.00 0.00 0.00
28 0.05.1 9640.00 2410.00 2410.00
29 0.06.0 0.00 0.00 0.00
30 0.06.1 0.00 0.00 0.00



Output 11.2.10: %EVA_TASK_METRICS: Metrics by Activity (continued)

Earned Value Analysis by Activity
as of September 15, 2010

Obs CV CV% SV SV% CPI SPI
1 -2520.00 -24.42 -10000.00 -49.21 0.80 0.51
2 0.00 0.00 0.00 0.00 . .
3 0.00 0.00 0.00 0.00 . .
4 0.00 0.00 -665.00 -100.00 . 0.00
5 0.00 0.00 -1115.00 -51.50 1.00 0.48
6 -2520.00 -36.73 -990.00 -12.61 0.73 0.87
7 0.00 0.00 -7230.00 -75.00 1.00 0.25
8 0.00 0.00 0.00 0.00 . .
9 0.00 0.00 0.00 0.00 . .
10 0.00 0.00 0.00 0.00 . .
11 0.00 0.00 0.00 0.00 . .
12 0.00 0.00 0.00 0.00 . .
13 0.00 0.00 0.00 0.00 . .
14 0.00 0.00 0.00 0.00 . .
15 0.00 0.00 0.00 0.00 . .
16 0.00 0.00 0.00 0.00 . .
17 0.00 0.00 -665.00 -100.00 . 0.00
18 0.00 0.00 0.00 0.00 . .
19 0.00 0.00 0.00 0.00 . .
20 0.00 0.00 0.00 0.00 . .
21 0.00 0.00 -1115.00 -100.00 . 0.00
22 0.00 0.00 0.00 0.00 1.00 1.00
23 0.00 0.00 0.00 0.00 . .
24 -1260.00 -23.64 0.00 0.00 0.81 1.00
25 -1260.00 -82.35 0.00 0.00 0.55 1.00
26 0.00 0.00 -990.00 -100.00 . 0.00
27 0.00 0.00 0.00 0.00 . .
28 0.00 0.00 -7230.00 -75.00 1.00 0.25
29 0.00 0.00 0.00 0.00 . .
30 0.00 0.00 0.00 0.00 . .



Next, the %EVG_COST_PLOT macro is called to show the Planned Value (PV), Earned Value (EV), Actual Cost (AC), and revised cost plots.

%evg_cost_plot;

The plot is shown in Output 11.2.11.

Output 11.2.11: %EVG_COST_PLOT, PV, EV, AC and Revised Cost

%EVGCOSTPLOT, PV, EV, AC and Revised Cost


The %EVG_SCHEDULE_PLOT macro is used to show different estimates of the project completion date.

%evg_schedule_plot;

The plot is shown in Output 11.2.12.

Output 11.2.12: %EVG_SCHEDULE_PLOT: Estimated Completion Dates

%EVGSCHEDULEPLOT: Estimated Completion Dates


The %EVG_INDEX_PLOT macro is used to graphically display the performance indices for the project.

%evg_index_plot;

The plot is shown in Output 11.2.13. As in the previous example, the cost performance needs to increase from 0.8 to 1.06 in order to stay within the budget.

Output 11.2.13: %EVG_INDEX_PLOT: CPI, SPI, and TCPI

%EVGINDEXPLOT: CPI, SPI, and TCPI


The Cost and Schedule Variance for the project is shown in Output 11.2.14 using the following call to the %EVG_VARIANCE_PLOT macro:

%evg_variance_plot;

Output 11.2.14: %EVG_VARIANCE_PLOT: Cost and Schedule Variance

%EVGVARIANCEPLOT: Cost and Schedule Variance


While the Cost Variance is just outside the 10% threshold, the Schedule Variance is significantly outside and should be a warning signal that the project is slipping significantly. The plan called for $20,320 of work to be completed, but only $10,320 has been accomplished so far (roughly 50% of the goal).

Finally, the %EVG_GANTT_CHART macro is used to show a Gantt view of the project along with some metrics by task. In this case, only the Work Breakdown Structure code and Cost Variance (CV) and Schedule Variance (SV) are selected.

%evg_gantt_chart(
   activity=id,
   plansched=gbsched,
   revisesched=gasched,
   start=start,
   finish=finish,
   timenow='15SEP10'd,
   id=wbs cv sv,
   height=3,
   scale=40
);

The resulting Gantt chart is shown in Output 11.2.15.

Output 11.2.15: %EVG_GANTT_CHART: Cost and Schedule Variance by Task

%EVGGANTTCHART: Cost and Schedule Variance by Task