This can be cumbersome and does not scale for multiple dimensions, but for my main categories I will "tag" a program by including keywords in it's name.
E.g.,
2015.01 - Product - <specific program name>...
Then you could in smart lists use a constraint, clicked on email name CONTAINS "product"