top of page
  • Writer's picturePantheon Integrated Solutions

Visualizing Earned Value Management Metrics with GGPLOT2

by Evan Hubener


In defense acquisition, project managers use many tools for analysis and reporting, based on key EVM metrics. Metrics that track project performance include Cost Variance and Schedule Variance, and tracking these over time is an important piece of staying on budget and assessing whether a contractor’s Variance at Completion is realistic.

Data for these projects are typically received in Cost Performance Reports (CPRs) that provide updates on project performance through the lifecycle. Standard CPRs are not always easy to analyze, but if the data are processed and stored in a relational database, metrics can be developed quickly, including EVM charts.

Key Metrics - CPI and TCPI

One key metric is the Cost Performance Index (CPI), which is the ratio (though sometimes presented as a percent) of what is supposed to happen (Budgeted Cost of Work Performed) against what actually happens (Actual Cost of Work Performed). Values above 1.0 are favorable; values under 1.0 are unfavorable. If the CPI is 1.0, the project is exactly on budget. Simple enough.

However, maintaining a project that is exactly on budget through the duration of the project may occur with less frequency than project managers may hope. When this happens, it is useful to have another metric that indicates the forward performance necessary to achieve the budget (whether ahead or behind on cost). For example, imagine a project manager needs to travel 50 miles in 1 hour, with no traffic or other annoying frictions. If he is light on the accelerator for the first 50 minutes and cruises at a steady 45 mph, how fast does he need to go for final 10 minutes to make the goal, and how does this speed relate to current performance?* This is where the To Complete Performance Index (TCPI) is useful.

The TCPI can be calculated in two ways; both have the same numerator (work remaining: Budget at CompletionBudgeted Cost of Cumulative Work Performed). The denominator, cost remaining, subtracts the Actual Cost of Cumulative Work Performed from a target value, either the Budget at Completion or the Estimate at Completion. Once the TCPI is calculated, the interpretation is easy. If the TCPI is 0.95, the contractor needs to perform with a cost efficiency of 95% of current performance or higher to meet the budget. The TCPI can also be used to assess the target EAC, and if the TCPI deviates by more than 5 or 10 percentage points from the Cumulative CPI, then the EAC is probably unrealistic. The CPI/TCPI relationship can be easily graphed with GGPLOT2, and an example is presented in Figure 1.

Figure 1.

GGPLOT - Beyond the basics

The CPI and TCPI can be graphed over time with a scatter plot or line chart, and there are many additional elements of the project that can also be visualized. GGPLOT2 is a great tool to bring in when going beyond one x and one y; it utilizes a grammar of graphics and allows users to layer on additional elements for the chart, and the possible graphics are only limited by the imagination of the analyst. By allowing the flexibility of additional elements, users can go beyond the basics, adding point estimates and reference lines. What’s more, ggplot can also be used in Python, in addition to its native R language.

Cone Charts and advanced plotting

A more advanced tool for project management is the cone chart (sometimes referred to as funnel chart). This chart shows the cumulative Cost Variance (CV) and Schedule Variance (SV), Management Reserve, and 10% thresholds for the Budgeted Cost of Work Scheduled. In additional, reference markers are typically shown for the project start date, initial delivery date, and final delivery date. Point estimates may also be presented on the chart to note the BAC or EAC.

The purpose of the cone chart is to track performance over time (using the CV/SV), while also tracking progress to completion (using the start/end dates) and the target completion costs (BAC/EAC); the management reserve is presented to give the project manager an idea of whether funding is sufficient.

Once a data infrastructure is in place, ggplot can be deployed to develop the chart. The thresholds, CV/SV, and Management Reserve are built with geom_line(). Vertical lines for the start/end dates can be added by passing the dates as arguments into geom_vline(), and point estimates to illustrate BAC/EAC can be added using geom_point(). Text elements to serve for quick reference can be added with geom_text(), and in this example, the caption is brought in as an additional user aid, with the key dates for the project noted just below the legend. The color and pattern options for lines and points are numerous, and the theme() can be modified to achieve a clean and sharp presentation. An example is presented in Figure 2.

Figure 2.


While there are many ways to present EVM data, clean and easy-to-read graphics certainly are a key component for reporting. By using R’s ggplot package, these graphics can be quickly developed and maintained, delivering timely and accurate insights to project managers.


* The project manager would need to drive 75 mph for the final 10 minutes to achieve the target.

204 views0 comments


bottom of page