Portfolio Analysis: Prioritizing Projects with Custom Fields

Well, it’s been a while since I fired up my virtual image and played around in the Portfolio Analysis module – specifically since March or so when I released that white paper on the topic.  Last week, one of my colleagues was asking me about the mechanics of generic resources within Portfolio Analysis – which reminded me of this post which I’d half written but never gotten around to finishing.

In this post, I’ll talk about how projects may be manually prioritized within the context of the Portfolio Analysis module.  This would allow organizations with their own prioritization mechanisms to bypass the entire strategic driver definition process that is in Project Server 2010 and proceed directly to the constraint optimization functionality.

What’s potentially confusing is that the manual prioritization mechanism allows for the use of multiple fields in prioritizing the projects – and it’s somewhat unclear how it all works under the hood…..hence, this post.

Thanks to fellow UMTer Catalin Olteanu for explaining the topic to me and providing the calculations.

The Setup

To test out the calculations, I have created three projects.  I have then created three custom number fields (Prioritization1 through Prioritization3), and more or less randomly assigned values to each project.  In theory, if you have an external system providing these numbers, you could use custom code against the PSI or even the Bulk Import solution starter to import these values against existing projects.


I then go create a new portfolio in Portfolio Analysis with these three projects.  When creating the portfolio, I select the option to prioritize projects using custom fields.


In the next screen, I select the Modify button from the ribbon and add my three fields.


The Basic Calculations

So, off the bat, we see three parameters for each of the custom fields.  (You will note that each of these parameters is editable.)

  1. Weight – the relative weight of one field against the other fields.  This starts out at 100%, but will be recalculated to 33.33% in the above example when I click the option to Normalize Weights.  With three custom fields, essentially, I total the weight column to 300%, then divide the value for each field by the total.  In the scenario above, that yields a calculation of 100/(100 + 100 + 100).
  2. Minimum Value – the minimum value allowed for the specific field.
  3. Maximum Value – the maximum value allowed for the specific field.

Here’s what the scenario looks like after I normalize weights.


Single Value Calculation

Under the hood, here’s what happens….for each field.

Values are adjusted to the minimum and/or maximum values.  That means if you set a minimum for a specific field of “2”, and someone has entered a “1”, then the project value will automatically be converted to a “2” for that specific field.  Similarly, the same calculation is performed on the maximum column.  This yields what I call the adjusted minimum and maximum values.


The adjusted minimum and maximum values are then measured against the interval for each field.  For example, if a project is set to “5” on an interval stretching from a minimum of “2” and a maximum of “10”, the value for the field will be (5-2)/(10-2).  The formula is (Adjusted Value – Minimum)/(Maximum – Minimum). 

Why subtract the minimum value from the adjusted value?  If the minimum value is set to “2” and the adjusted value is set to “3”, then we want to adjust the value to account for the fact that the value entered is only one above the minimum, in effect a “1” and not a “3.”  This yields our absolute priority.


The value is then normalized to yield the normalized priority for each field.  In the example above we do that by calculating .375 / (0 + .375 + 1) to yield 27.27.

Multiple Value Calculation

So if you have a single custom field, that’s pretty much it.  If you have multiple custom fields, then you need to combine the scores for each project for each field – which is pretty simple once you identify the order in which the calculations are performed.

First off….take the absolute priority (not the normalized priority) for each of the fields for each of the projects.


Multiply the absolute priority times the weighting for each field.  In this case, I am multiplying the values by 33.33, 33.33, and 33.34 respectively.


Sum the results of the weighted prioritization calculation.  I sum them into the Weighted Sum column.


Normalize the results to generate the project priority.  For example, in Test Project 2, I calculate 43.19 / (47.48 + 43.19 + 92.67) to generate a normalized score of 23.56%.


And that’s pretty much it.  Pretty simple actually.

Portfolio Analysis: Prioritizing Projects with Custom Fields

2 thoughts on “Portfolio Analysis: Prioritizing Projects with Custom Fields

  1. Thanks a lot for this post, it has been really helpful to me. I think it is very easy to be confused by the manual prioritization mechanism and determining how it allows the use of multiple fields in prioritizing the projects. I think at first portfolio analysis tools can be quite daunting, but are incredibly beneficial to your business.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s