Following up on a previous post on setting schedule buffers, I figured it was about time to revisit the topic of buffers, this time with cost. This post will discuss best practices in setting cost buffers using the budget resource feature in Microsoft Project 2007.
First off, why should we set buffers on a project? Simply put, buffers make projects more predictable and allow better planning for potential project overruns. Buffers allow for us to plan for both programmatic and technical project risk.
In Microsoft Project 2003 and earlier, many people used the buffer task to set cost contingencies. To do this, you would add a task at the end of the project, and then insert fixed cost equal to the buffer amount. As the overall project cost fluctuated, the project manager would manually modify the cost of the buffer up or down until the overall project cost met the targeted budget cost.
In my opinion, this was a suboptimal solution for a number of reasons:
1) Using a buffer task forces the PM to revise the contingency calculation manually, thus opening the door for inaccuracy and error.
2) Using this method, the contingency is generally included in the project baseline, which is considered bad practice in risk management circles. Instead a realistic baseline should be set, and as the project exceeds the baseline, the level of overage is reviewed and assessed to see if it is still within budget (i.e. acceptably overrun) or over budget. By including the cost in the project baseline, the project manager can artificially control the cost of the project to toggle key cost indicators.
The ideal situation is to calculate the project budget, and then to set the project baseline below the budget. In my case, since I work at a consulting company, typically we have the contract cost which I memorialize as a budget resource. I then develop a detailed project plan which often comes in at approximately 6-10% less than the budget. That is the point at which I would baseline my schedule.
Here’s how it works:
1) I am given the contract cost for the project. I create a new cost resource for the contract.
2) I toggle the resource to become a budget resource. To do that, just double click on the resource and check the “Budget” box.
Note that if you plan to implement this in conjunction with a SP1 Project Server 2007 instance with e-mail alerts turned on, you may wish to toggle the booking type to “Proposed.” There used to be an issue with how the e-mail address was stored for budget resources that would throw an error whenever PM’s published the project and the system tried to send an alert. I believe that has now been fixed.
3) Navigating back to my Gantt Chart, I assign the new budget resource to my project summary task
4) And then I navigate to the Task Usage View, insert the Budget Cost field, and add the contract cost. In this case, the contract cost is $70,000.
5) Now I review my overall project plan, review resources and costs, and baseline the project. In this case, I baseline the project at $60,000, and I make sure to display a couple of custom cost indicators. (The Cost KPI formula is a proprietary formula, which I can’t release at the moment. You may need to come up with your own Cost KPI.)
6) You should see a Remaining Contingency field using a spare Cost field. Here’s the calculation for that:
IIf([Outline Level]=0,[Budget Cost]-[Cost],0)
…noting that this will only calculate for the project summary row, and not for any subtasks.
To make the formula work, you’ll also have to properly set the settings for summary task rollups:
Now as you update your project, you’ll start to see your indicators show a variance well before the budget contingency is reached. This gives the project manager time to review the variance issues, and adjust before the project is irretrievably out of whack.
In the screenshot below, my project is still in budget, but trending out of control based on the Cost KPI indicator that I have set.
The easiest way to track project trends then is to keep a run chart updated. Typically, I create an Excel chart at the outset of the project, and I populate the rows with the expected status dates for my project. For instance, on many projects, I have a weekly reporting cycle. For these projects, I’ll calculate the first Friday of the project, and then add a row for each subsequent week until the predicted end of the project.
In these rows, I will track the following variables: Budget Cost, Cost, Contingency, Last Period Cost, Cost Delta, Actual Cost, and Actual Cost Delta. Note that some of these fields are just calculations of other fields in the Excel table. I usually add a field called Unallocated Costs, which is calculated as Cost Delta / Actual Cost Delta. This field will display the proportion Actual Costs incurred over the last period led to the overall Cost overrun – otherwise potentially an indicator of scope creep.
This allows me to track trends in the project cost calculations and assess how the project is doing – without immediately exceeding my budget. In this case, I still have approximately $10K between the original baseline and the project budget. Depending on the size of the project, and the velocity of the cost overruns this may give the project manager several weeks of warning when the project begins trending up and the cost predictions exceed the overall project budget.
After a couple of weeks of data, I can plot it all out in Excel, and see the following trend. In this case, I have labeled Cost as EAC, or Estimate at Completion.
This means that as of week 3, I need to start getting concerned. As of week 5, I need to start positioning the idea that a change order might be coming down the pike – or I need to examine what’s going on and see what’s driving my cost increase. Note that even as of week 7, I still have almost half of my original budget remaining, but I know that course corrections are inevitable.
So let’s hypothetically say that I go back to my stakeholders and get another change order for $20,000. How do I handle that?
1) Add a new budget resource called Change Order #1
2) Apply the Resource to the project summary task with an additional budget cost of $20,000.
Update the Excel tracking table, and you’re off to the races. Here’s what the Excel table will look like, if we progress our schedule another couple of weeks:
Looking at that, I would be a relatively calm project manager, as it looks like my predicted cost is not exceeding the contract (+ change order) cost – nor do I see an obvious trend.
I can also take the same Excel chart to calculate the remaining contingency:
You’ll see a spike on week 7 where the new change order was signed.
And that’s about it for today. Let me know if you have any questions.
Coming soon: how to track cost contingency for multiple contracting groups.