Modules: What dimensions are used in the module? Are they all necessary?


When is this a problem?

This is a problem when you have unnecessary dimensions—meaning that the logic or data in the module does not apply to the dimension.


Why is this a problem?

Unnecessary dimensions in a module could cause poor performance from a formula having to perform unnecessary calculations and increasing the size of the model. It can also hinder the end-user experience by causing them to have to use unnecessary context selectors, which can lead to confusion or cause extra difficulty trying to get to their desired view.


How to correct:

Remove the unnecessary dimensions. This could cause your formulas to become invalid and thus cause an error. If this is the case, set your format to No Data, remove the dimension, update your formula, and then reset the format. You may have to modify downstream line items if they use the current line item as a mapping or variable.


More information:

Model Size and Dimensionality

The Truth About Sparsity: Part 1


  • I would like to know what dimensions do we need to add in a System Module.

  • MJM

    @Dasgups3 Only use the bare minimum dimensions necessary to create a functioning system module.

    In general, key lists in the model should each have their own system module with only the one list as a dimension.

    If you need to create a mapping between two separate dimensions, only use those two dimensions in the module's Applies To.

    Time Settings for example, should also be broken out into separate modules:

    1. Global Time Settings (dimensionless module with settings such as today's date, switchover date, etc.)
    2. Week Settings (dimensioned by week)
    3. Month, Quarter, Half-Year, Year Settings (four separate modules each dimensioned only by the relevant time scale).

    Also, any system modules in Data Hub should only be dimensioned by the UID / Flat List with relevant properties split out - avoid hierarchies and using hierarchies as dimensions in the data hub.

Model Optimization Checklist