Calculations
The engine supports several types of calculations that can be classified by complexity or execution type.
Calculation Types by Complexity
| Type | Description |
|---|---|
| Formulas | Simple expressions that calculate a single member from a dimension/hierarchy |
| Calc Scripts | Complex scripts that can calculate multiple cells in a model and can be scoped to impact only a certain area of the model |
Calculation Types by Execution
| Type | Description |
|---|---|
| Dynamic | Calculation executes at query time; results are not stored in the database |
| On Demand | Calculation executes when specifically triggered from a dashboard event (e.g., on save) or from a workflow; results are stored in the database |
| Automatic | Calculation executes every time data is saved into the associated model; results are stored in the database |
Supported Combinations
| Formulas | Calc Scripts | |
|---|---|---|
| Dynamic | ✅ Supported | ❌ Not supported |
| On Demand | 🚧 In progress | 🚧 In progress |
| Automatic | 🚧 In progress | 🚧 In progress |
Performance Considerations
Dynamic Calculations
All dynamic calculations execute for every query. Having many and/or very complex dynamic calculations will result in performance issues for all database queries.
Automatic Calculations
Automatic calculations execute every time data is saved to the database. It is imperative that these calculations are designed to only run on data that is impacted by the current save operation.