Relational Planning
Relational planning encompasses things that are planned at an "item" level where is not practical to have the planning items built into a dimension, for various reasons:
- There are a lot of items to plan for; usually if it's > 10,000 we should consider using relational planning instead of adding a large dimension as large dimensions perform poorly
- The items we plan for are dynamic, either not known beforehand and/or the list of items changes frequently and reprocessing the model every time the list of items changes would be inefficient. Examples:
- HR planning -- plan salaries and costs at employee or role level
- Fixed Asset planning -- plan build, amortization and depreciation at the asset level
- Customer/Vendor planning -- plan a set of revenue/expense lines at the customer/vendor level
- Project/contract planning -- plan revenue/expenses at the project/contract level
Ideally we want to store the detailed data that users interact with (items) in a relational table, perform any item level calculations, then aggregate the data and “push” the aggregated numbers into a multidimensional financial model.