In my first blog post (How I Use Earned Value Management (EVM) to Track Agile Scrum Projects), I showed how I use some EVM concepts to track agile projects. One of the comments from that post criticized the model because it did not incorporate SPI and CPI. As a result, I expanded on the model to take advantage of these calculations. Please note that the calculations below use hours as a stand-in for cost. To determine cost, simply multiple the hours by the hourly rate for the project.

**Schedule Performance Index (SPI)** is the ratio of Earned Value (EV) to Planned Value (PV). It measures the rate of progress that you are progressing at as compared to the original schedule. So a 1.0 SPI would mean you are progressing at your expected rate. Greater than 1.0 SPI means you are progressing faster than your expected rate, while less than 1.0 SPI means you are progressing slower than your expected rate.

**Traditional SPI Formula:** *SPI = Earned Value/Planned Value*

**Calculation Used on This Page:** *SPI = (Actual Story Points/Sprint) / (Estimated Story Points/Sprint)*

**Cost Performance Index (CPI)** is the ratio of Earned Value (EV) to Actual Cost (AC). It measures how much value you are getting per unit of cost spent on the project compared to your original estimate. So 1.0 CPI would mean you are delivering equal value as you expected. For agile projects, this means that your initial ratio of story points per cost (ex. hours) was accurate. Greater than 1.0 CPI would mean that you are completing points in less cost (ex. hours) than initially expected. Less than 1.0 CPI would mean that you are completing points in more cost (ex. hours) than initially expected.

**Traditional CPI Formula:** *CPI = Earned Value/Actual Cost*

**Calculation Used on This Page:** *CPI = (Estimated Hours/Story Point) / (Actual Hours/Story Point)*

**Estimate at Completion (EAC)** is what we expect the project to cost once we complete it. Initially this would be your Budget at Completion (BAC), or the estimate for the project. As you execute the project, unless you were 100% accurate in your estimate and everything goes according to plan (is that even possible), your EAC will begin to vary from your BAC.

**Four EAC Formulas:**

**1. ****Original Estimate No Longer Valid**

*EAC = Actual Cost + Estimate to Complete*

**2. ****CPI Is Accurate**

*EAC = Budget at Completion / Cost Performance Index*

**3. ****CPI Is Abnormal**

*EAC = Actual Cost + (Budget at Completion – Earned Value)*

**4. ****Project Must Meet Deadline**

*EAC = Actual Cost + ((Budget at Completion – Earned Value) / (Cost Performance Index * Schedule Performance Index))*

So if we take the initial scenario from the first blog post and add a few calculations, we get the following.

** SPI: 1.0**, since we have completed 25% of the functionality after we have consumed 25% of the schedule.

** CPI: 1.0**, since we have completed 25% of the functionality and consumed 25% of the cost (in hours).

** EAC: Range of 1000 – 1000 hours**, since we are in our ideal world and right on track, we expect our EAC to match our BAC, which was 1000.

Now let’s take our second example.

** SPI: 0.52**, since we have completed 13% of the functionality after we have consumed 33% of the schedule.

* SPI = (Actual Story Points/Sprint) / (Estimated Story Points/Sprint)*

* SPI = (13/1) / (25/1)*

** CPI: 0.26**, since we have completed 13% of the functionality and consumed 50% of the cost (in hours).

* CPI = (Estimated Hours/Story Point) / (Actual Hours/Story Point)*

* CPI = (10/1) / (38.46/1)*

**EAC: Range of 1370 – 6935 hours**, since we have delivered less value than expected. There are 4 different formulas to calculate EAC. We can use all 4 formulas, and then provide a range based on the highest and lowest EAC. In our example, the lowest EAC comes from AC+(BAC-EV) and our highest EAC comes from AC + ((BAC – EV) /(CPI*SPI)).

**1. ****Original Estimate No Longer Valid**

*EAC = Actual Cost + Estimate to Complete
EAC = 500 + 3346
EAC = 3846*

**2. ****CPI Is Accurate**

*EAC = Budget at Completion / Cost Performance Index*

*EAC = 1000 / .26*

*EAC = 3846*

* ***3. ****CPI Is Abnormal**

*EAC = Actual Cost + (Budget at Completion – Earned Value)*

*EAC = 500 + (1000 – 130)*

*EAC = 1370*

**4. ****Project Must Meet Deadline**

*EAC = Actual Cost + ((Budget at Completion – Earned Value) / (Cost Performance Index * Schedule Performance Index))
EAC = 500 + ((1000-130) / (.26 * .52))
EAC = 500 + ((870) / (.1352)
EAC = 500 + 6435
EAC = 6935*

***Note:** You may choose to use a single EAC calculation based on which formula you think is most pertinent to your situation. In this example, the calculation that produces 1,370 assumes that the current CPI is abnormal. If this is not the case, then you could remove that estimate and end up with a range of 3,846-6,935.

So there you have it. We used the building blocks from the initial Agile EVM model and added some additional measurements for scope, schedule and cost baselines. By doing so, we also project a range for the final project cost (EAC).

A second criticism from the original post is that “Story points are subjective and do not have the objectivity of measurement in $ or man-hours”. While I agree that story points are subjective, I also believe that they provide more value than estimating time/money spent (see Time Remaining is More Important Than Time Spent). A team estimates them and uses relative estimation, so that each story is sized according to each other. I believe it is better to measure work than has actually been completed instead of what we have planned & estimate we will deliver in the future. While this may not directly correlate to business value (completing 25% of story points does not necessarily mean that we deliver 25% of the business value), it is measuring each story compared to the overall size. In the future, I may look into adjusting the model to also gauge business value as compared to the other factors.

Please feel free to leave comments as I am very interested in the thoughts of this model. Does it make sense? Are there inaccuracies? Are there additional calculations that could be added to provide more value?

keoniTom,

Thanks for your article. I was wondering how you arrived at the following equation:

CPI = (10/1) / (38.46/1). Specifically, how you arrived at 10 and 38.46?

Tom SylvesterKeoni – The data for that equation came from part 1 of the blog post – http://tom-sylvester.com/lean-agile/how-i-use-earned-value-management-evm-to-track-agile-scrum-projects/

“Now I know the agile purists may balk at converting hours to points, but this approach uses historical data to provide a projection into what the future will look like. Some simple calculations will show about how many hours each point takes to deliver and can use that information to project the total number of hours that it will take to deliver all of the points.

500 hours completed /13 points delivered = ~38.5 hours per point delivered

87 points remaining * ~38.5 hours per point = 3349.5 hours”

In the scenario from part 1, an effort was estimated at 100 points and the team had estimated the effort at 1000 hours* (to keep the math simple). This meant that 1 point loosely correlated to 10 hours. So when they started, the ratio between hours to deliver a point was 10 hours to 1 point.

But as time went on and reality set in, we could see that this ratio was not accurate. At the later point in time, they had spent 500 hours but only delivered 13 points, so then we could calculate the new ratio of hours/points and use that to project a more accurate future completion.

CPI = (Estimated Hours/Story Point) / (Actual Hours/Story Point)

CPI = (10/1) / (38.46/1)

*Note: In this scenario hours were used. Hours really serve as a proxy for cost. You could instead swap hours with the estimated cost of the project and get the same result, but instead in dollar figures. For example, if each hour spent cost $50, and it is taking on average 38.5 hours to deliver a point, then the 500 hours spent thus far the total cost thus far would be $25,000. That also means that if we believe there are ~3349 hours remaining at a cost of $50 per hour, then the estimated cost for completing the project would be ~$167,450.