Updated: Jan 17
Earned Value analysis — the de facto project health metrics used by project managers, 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 highlight 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 five iterations to complete one hundred story points, starting with iteration zero. For the sake of simplicity, let’s say that the scope remains the same throughout the project at one hundred story points.
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 (in Red)
Although it rarely looks as smooth as it does in this case, this curve will allow us to explore three different scenarios. Since sprint zero 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 one. We assume that the start of the project is where the progress is at its 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 four until we exhaust all the story points. In this case, we can burn-up all one hundred 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 four iterations.
PV = (Planned Completion / Total Work) x Total Planned Budget
From our simple chart, we see that, at the intercept, we would have completed eighty story points. This equates to a portion of 0.8 work completed since our total amount of work is one hundred 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 eighty 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 this is in line with the definition of PV.
“The authorised 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 authorised 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 eighty 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 four 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 four 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 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 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 time-boxed, we can consider an iteration to represent a measure of time. When we look at the trajectory of the actual curve from iteration three onwards, it prompts that we can burn through the remaining story points before reaching the entirety of the planned duration of iteration five. In simple terms, we can complete iteration five 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 five.
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 one hundred story points throughout five 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 steppingstone for anyone interested in project health indicators in Scrum.