We are in the midst of reformulating the rules right now for Risk so that obsolescence is always a feature. At first we were thinking about it like "Scores" (ie. obsolete can add 2 points to a total of 10 points for the risk of a particular level), but the way you write it there makes more sense. It should be more like a "test"
If (partlifecyclecode==obsolete), then (max score). Something like that.
Obviously I don't write code very often, even pseudocode. Would you both be interested in discussing more about these inputs? Or anyone else viewing this thread, would you like to have input on Risk Rank factors?