Earned Value analysis — the de facto project health metrics used by project managers, possibly in every status report, presentation and discussion. Be it traditional project management or Agile, even if you don’t particularly feel that a project is going astray, these should be your first line of indications into the overall health of a project.
With a little help from a not-so-pretty, hand-drawn burn-up chart, we dive into the math behind calculating Earned Value (EV) metrics in an Agile context. And should anyone need it, this may serve as a guide to get you started.
Disclaimer: certain assumptions made in this write-up may not represent real-world scenarios. However, they are made for the sake of making things easier to understand and to showcase different scenarios.
· CPI = EV/AC
· SPI = EV/PV
· CV = EV - AC
· SV = EV – PV
Let’s imagine we had planned a scrum project with a total planned budget of USD 10,000 (in other words the BAC — Budget at completion) for 5 iterations to complete 100 story points, starting with iteration 0. For the sake of simplicity, let’s say that the scope remains the same throughout the project at 100 story points.
The burn-up chart
When conducting EV analysis we give preference to burn-up charts over burn-down charts since they account for scope changes that may arise as the project progresses. User stories may be added or removed at the discretion of the Product Owner or the customer, and the burn-up chart helps us keep track of it all.
Let’s get to know our chart; on the ‘Y’ axis we have the story points and on the ‘X’ we have the number of iterations. Our initial plan, shown in lime green starts at iteration 0 and goes up to iteration 5, burning through the story points steadily as it does (since we are only concerned with the overall health of the project, we assume that the same amount of story points is being worked on by the team during each iteration).
The Actual Curve (Red)
Although it rarely looks as smooth as it does in this case, this curve will allow us to explore 3 different scenarios. Since sprint 0 is where we do the project setup, the database work and so on, no story points are being burned-up until we get to sprint 1. We assume that the start of the project is where the progress is at it’s slowest (which is the consensus for reasons which are beyond the scope of this article), we only burn-up 20 story points when we get to the end of sprint 3. The team learns quite fast and their knowledge grows at the end of each iteration, causing their confidence to grow, in turn, increasing the team’s velocity. If we assume that the velocity stays constant throughout the remaining sprints, we may see something like the steep incline shown in the chart from the start of sprint 4 until we exhaust all the story points. In this case, we can burn-up all 100 of them half-way into sprint 5 (intercept ‘C’). Again, this may not represent a real-world project but for the sake of simplicity, let’s assume that it does.
To start with, let’s take point ‘B’ where the actual curve intercepts with the planned curve. In other words, where EV = PV.
let’s dive into the numbers:
First, the Planned Value (PV) for intercept ‘B’, or in other words, the value of planned story points to be completed at the end of 4 iterations.
PV = (Planned Completion / Total Work) x Total Planned Budget
From our simple chart, we see that, at the intercept, we would have completed 80 story points. This equates to a portion of 0.8 work completed since our total amount of work is 100 story points (80/100). We use this to calculate PV.
PV = 0.8 x USD 10,000
PV = USD 8,000
We can essentially give a different meaning to the same formula by calculating the Planned average cost per story point and multiplying that by the planned number of story points to be completed and calculate PV as shown below.
Calculating PV and EV Using the Planned Average Cost Per Story Point
Given that the total number of story points will stay at a 100, and that our total planned budget is USD 10,000, we can assume that the completion of 100 story points is going to cost us USD 10,000, according to our initial estimate. And, with this assumption in mind, we calculate the Planned average cost per story point;
The planned average cost per story point = Total Planned Budget / Total Story Points
The planned average cost per story point = 10000/100
The planned average cost per story point = USD 100 per story point.
We use the entire amount of work to be completed and our total planned budget for the whole project for this calculation. Hence, we can use this to calculate PV as well as EV. How? Let’s break it down.
Remember that we are supposed to burn-up 80 story points when we reach intercept B?
If we multiply the ‘Planned number of story points to be completed’ by the Planned average cost per story point, we should arrive at the same value as the PV we calculated earlier.
PV = Planned number of story points to be completed x The planned average cost per story point
PV = 80 story points x USD 100 per story point
PV = USD 8,000
And ultimately, this is in line with the definition of PV;
“The authorized budget assigned to scheduled work” — PMBOK 6th Edition
With that, we move onto the Earned Value. First, the definition of EV;
“The measure of work performed expressed in terms of the budget authorized for that work” — PMBOK 6th Edition
And the equation goes as the following:
EV = Sum of the planned value of completed work
or in other words;
EV = Actual story points completed x The planned average cost per story point
To put it simply, we assess the cost of the actual work we have completed against our original estimate. Hence, in an agile context, we use the number of actual story points we have completed for this purpose.
If we plug in the numbers to our equation, given that we have completed 80 story points at intercept B;
EV = 80 story points x USD 100 per story point
EV = USD 8,000
and voilà! EV = PV.
Let’s extract some data from our not-so-pretty little chart ;) and we do the EV and PV calculations for each iteration following the same process;
When we look at our chart, we see that iteration 4 is where we reach intercept B, and the data from our table confirms this. Since we need the Actual Cost for intercept B for our analysis, we can look up AC against iteration 4 from the table. Once again, for the sake of simplicity, we are assuming that the Actual Cost does not deviate from the plan and that it will progress along the planned curve. This should generally be the case in an ideal world. But sadly, we do not live in an ideal world where we make super accurate estimates. In the real world, we may almost certainly see a deviation in the AC from the plan. This, however, is a discussion for another day. For now, let’s plug some numbers into our EV formulas.
Keeping in mind that we are referring to intercept B;
CPI = EV/AC = 8000/8000 = 1
SPI = EV/PV = 8000/8000 = 1
CV = EV-AC = 8000–8000 = 0
SV = EV-PV = 8000–8000 = 0
There we have it, everything looks good. Cost and Schedule performance on point, with no variations, proving EV = PV.
To give this a bit of context, let’s understand the underlying theories;
Where CPI = 1, the project (at the point where the measurements are taken) will be on track in terms of the planned budget since we see no discrepancy between EV and AC. In other words EV = AC. And hence, the CV should equal 0 (which means there is no cost variance).
The same applies to SPI as well. at the point where the measurements are taken, if EV = PV, or in other words, if SPI = 1, the project will be on track in terms of the schedule. Which means SV = 0, as there should be no schedule variance.
Let’s take a scenario where things don’t look so bright. If we see a CPI < 0 (which means that EV < AC), and an SPI < 0 (where EV < PV), we should see a negative output for both CV and SV. Meaning there is a negative variance for both measurements, and we are over budget as well as behind schedule.
At the opposite end of the scale, we have projects that are performing better than expected. If a project (at the point where measurements are taken) is under budget and ahead of schedule, both CPI and SPI should be larger than 1 (CPI > 1, SPI > 1). And both SV and CV should be positive values, showing the value of savings in terms of cost and schedule (represented in monetary value).
With the basics covered, let’s dive into intercepts A and C;
We do the PV and EV calculations for both intercepts A and C (represented by iterations 3 and 5 respectively), by following the same process.
Note that each iteration along the ‘X’ axis is an equal distance apart from each other, representing equal lengths in terms of duration. Since each iteration (sprint in this case) is timeboxed, we can consider an iteration to represent a measure of time. When we look at the trajectory of the actual curve from iteration 3 onwards, it prompts that we can burn through the remaining story points before reaching the whole length of the planned duration of iteration 5. In simple terms, we can complete iteration 5 sooner than we originally planned, saving valuable time. And as we associate ‘time’ in direct correlation with cost, we see that the time savings equate to a saving of USD 1000 out of the planned budget. Hence, an AC of USD 9000 at the end of iteration 5.
Let’s perform some EV analysis on intercepts A and C using the data from our table;
CPI = EV/AC = 2000/6000 = 0.33
SPI = EV/PV = 2000/6000 = 0.33
CV = EV-AC = 2000–6000 = USD -4000
SV = EV-PV = 2000–6000 = USD -4000
Verdict: behind schedule and over budget
CPI = EV/AC = 10000/9000 = 1.11
SPI = EV/PV = 10000/9000 = 1.11
CV = EV-AC = 10000–9000 = USD 1000
SV = EV-PV = 10000–9000 = USD 1000
Verdict: ahead of schedule and under budget
The analysis of the data clearly shows that intercepts A and C are at odds with each other. Intercept C indicates that we are below our planned budget and ahead of schedule (that is, a CPI and SPI > 0), whereas A indicates we are far behind in terms of schedule and quite substantially over the planned budget (CPI and SPI < 0).
That wasn’t too bad at all, was it? We burned through 100 story points throughout 5 iterations and managed to save a bit of cash as well. If only a real-world project would be this simple!
Throughout this article, we covered the fundamentals of EV analysis in an Agile context. However, we can dive much deeper into intricacies like resource-wise performance metrics, delivered-value based on weighted value calculations and so on. But all these are beyond the scope of this write-up. We covered the basics of measuring the health of a Scrum project with the help of a burn-up chart and Earned Value analysis. This guide should serve as a stepping stone for anyone interested in project health indicators in Scrum.