Hi (again) Nick,
I'd recommend you create a calculated custom parameter (see below), which leans on our Project Priority Indicator (PPI) concept within our Just In Time Resourcing (JITR) solution.
For background, the Portfolio Optimizer we were discussing in your other thread today keeps an ordinal integer called Portfolio Priority on each Project that is ranked within the Portfolio Optimizer, lowest number (1) being Most Important Project (within that Portfolio). Each Project, though, can independently be tied to any (or no) Program with each Portfolio, defeating the concept of priorities by Programs...particularly if you choose to repeat Program names across Portfolios.
Given the above, I suggest you create a "Project Priority Indicator" calculated parameter at the Project level that interrogates the Portfolio and Programs using a series of IF statements to enforce the Project Priority, assigning "weights" to Portfolios, Programs, and (if you're able to get it going) the Portfolio Optimizer's Portfolio Priority, resulting in something similar to this pattern (assuming you have less than 100 Projects per Portfolio/Program; otherwise, multiply each number by 10 or more accordingly):
=IF("Portfolio Name"="Portfolio X",100000,IF("Portfolio Name"="Portfolio Q",110000,IF(etc,etc,990000)))+IF("Program Name"="Program J",1000,IF("Program Name"="Program E",1100,IF(etc,etc,9900)))+IF(ISBLANK(Portfolio Priority),99,Portfolio Priority)
As a result, the PPI for the most important Project would then be 100000 (for the top Portfolio) + 1000 (for the top Program) + 1 (for the top Project within that Portfolio) = 101001, and the least important Project would be 990000 (for a missing Portfolio) + 9900 (for a missing Program) + 99 (for a non-Portfolio Optimized Project) = 999999
As a personal preference, I sometimes deduct those from 1000000 so that the highest priority also has the highest number (898999), but either works, mathematically.
Regards,
Doug