image

MS Project Tips and Tricks

What should be my Percent Complete if I am on schedule?
This is probably the most common question people ask and I am amazed  why they  do not know the answer.  The answer is really a question: "What %complete did you plan to be?"  A percentage is dividing two numbers.  What is your numerator and denominator? The denominator is the key and the units have to be consistent.

In MS Project, %Complete is based on duration of the activity.  If a 10 day task is 30% complete, you are telling MS Project there has been 3 days duration completed and there are 7 days remaining. I am not sure I understand what that really means.... The real measure here would be the value associated with the task such as work or some other measure (such as the number of bricks laid). For sure, it would not be duration; that implies I can earn percent complete just through the passage of time.

If you have a costed resource loaded schedule with a baseline for your project, and a status date, you have a Budgeted Cost of Work Scheduled curve (BCWS) also known as the Planned Value (PV). That number, as of the status date, divided by your total budget gives you the %Complete you should be at a specific point in time.  Project does the work for you, it calculates Schedule Performance Index (SPI) and Schedule Variance (SV).  An SPI of 1.0 (100%) is on schedule, less than 1.0 is behind schedule and greater than 1.0 is ahead of schedule.  Similarly, a negative SV is behind schedule. Insert the SPI and SV columns into your view.

If you are not using Earned Value for your scheduling, I suggest you start immediately. There are a number of good books on the topic (see my resources page). These are the standard measures of progress used in the industry.

For those who insist, below is a formula that will calculate the %Complete (based on duration) of where a project should be as of a status date (or even time now). The formula can be placed into a spare  text column and works nicely for the discrete tasks.

We need to consider three types of tasks: Those with Finish no later than the status date should be 100%, those with a start date greater than the status date should be 0%.  So, the only real tasks to calculate become those that bridge the status date.  To calculate the %Complete the same way Project does, determine the duration between the task start date and the status date.  Divide that by the duration of the task and that's it.  There are a few wrinkles --- first the desired result for display is an integer (28% not 0.28).  Then there is a rounding issue so the formula needs to be adjusted slightly, then tack on the percent sign.  Here is the final formula:

IIf([Finish]<=[Status Date],"100",IIf([Start]>[Status Date],0,int(0.5+100*(ProjDateDiff([Start],[Status Date])/[Duration])))) & "%"

The above formula will calculate a %complete as related to the current forecast [Start] and [Finish] dates. If you want to be mean, you can  also project a %complete based on baseline information:

IIf([Baseline Finish]<=[Status Date],"100",IIf([Baseline Start]>[Status Date],0,int(0.5+100*(ProjDateDiff([Baseline Start],[Status Date])/[Baseline Duration])))) & "%"

The formula requires a proper status date (Project/Project Information....)

These formulas will only apply to discrete tasks (non-summary tasks). Microsoft Project will weight the %Complete of summary level tasks by the durations and %complete of the tasks beneath the summary. Using the formula provided, it will be difficult to correctly summarize the weighted "should be %Complete" as part of the roll ups.

 If you wish to modify the formula, change [Status Date] to Now() and then you do not have to concern yourself with status dates.  My opinion: This is the absolute worst way to determine percent complete.

Something else to consider. MS Project will calculate schedule performance parameters against the baseline of your choice. So, if the customer is tracking you to a baseline from last October, and you have a different forecast, you can still use the MS Project calculations of SPI, SV, etc. Simply save a baseline for your current schedule in one of the 10 spare baselines provided by the software. Then, use Tools/Options/Calculation (tab) and click the Earned Value button.  Change the basis for calculations to the baseline of your choice. Now, you can analyze progress against your current forecast as opposed to your approved baseline.


Schedule Status
Marching through a schedule plugging in a %Complete will not accurately status your schedule. As a matter of fact, it will more than likely damage the schedule logic. Think about the status date in relation to the task time line.  You need to concern yourself with the Actual Start date, remaining duration and remaining work.  They are the important parameters.

The four shalls:

  • There shall be no task with a start date left of status date with 0% Complete, establish a new start date if necessary.
  • There shall be no task with a finish date left of the status date that is not 100% complete, establish a new finish date if necessary.
  • There shall be no task with a %Complete>0 with a start date to the right of the status date, you did not do the work in the future.
  • There shall be no task claiming 100% Complete with a finish date to the right of the status date, the latest this task can finish is the status date.

Risk Register and Schedule/Budget Implications

The attached white paper, here (Adobe Acrobat document), discusses bi-directional tracing of risks between the Inegrqated Master Schedule and the program Risk Register. There are plenty of items to consider, it is more than placing an ID from a spread sheet into the schedule. There are implications to how the schedule costs, and the schedule work packages reflect the risks.

My COM Add Ins do not work

Many times items such as the Analyze Time Scaled Data in Excel just do not seem to work properly.  This is common with the Project Compare utility as well.  The attached document shows you how to re-add (or jump start) these feature in MS Project.  Link here (Adobe Acrobat document).