Cube View Calculations
Cube Views support three calculation methods for adding computed rows and columns — GetDataCell expressions, column/row math (CVC/CVR), and dynamic member formulas. Each method has different capabilities and performance characteristics. This guide covers all three, plus Custom Member Lists for dynamic member generation from Business Rules.
Choosing a Calculation Method
| Method | Complexity | Performance | Use Case |
|---|---|---|---|
| GetDataCell | Simple expressions | Good — evaluates per cell | Variance, percentage, cross-dimension lookups |
| CVC/CVR math | References other columns/rows | Good — evaluates after data retrieval | Totals, ratios between existing columns/rows |
| Dynamic Member Formulas | Full formula engine | Can be slower with sparse suppression | Complex runtime calculations not stored in the cube |
Start with the simplest method that meets your requirement.
GetDataCell Expressions
GetDataCell is a function available in the Member Filter Builder that retrieves a value from a specific cube intersection. Use it to create calculated rows or columns that pull data from different dimension members than the row/column would normally show.
Basic Syntax
The
:Name("label") suffix sets the display label for the calculated row or column.Common GetDataCell Functions
The Member Filter Builder's Samples tab provides pre-built GetDataCell patterns:
| Function | Description |
|---|---|
Variance | Actual minus Budget (or comparable minus reference) |
VariancePercent | Variance as a percentage of the reference value |
BetterOrWorse | Variance with sign adjusted based on account type (revenue positive = better, expense negative = better) |
GetDataCell with Business Rule Call
For complex calculations that require logic beyond simple arithmetic, call a Finance Business Rule from a GetDataCell expression:
The Business Rule receives the current cell's POV context and the specified parameters, executes the calculation, and returns a value.
Column and Row Math (CVC/CVR)
Column math (CVC) and row math (CVR) reference other columns or rows by name and perform arithmetic on their values. This is the simplest way to add totals, variances, or ratios that combine existing columns or rows.
CVC Syntax
The strings
Actual, Budget, Q1, etc. inside CVC() are the names of other columns in the same Cube View. This is why naming your columns descriptively matters — CVC(Actual) is self-documenting.Hiding Source Columns
Often you want to show only the calculated result, not the source columns. Set the source column's
isColumnVisible property to CVMathOnly:- The column is hidden from the user
- The column's data is still retrieved and available for CVC expressions
- The calculated column that references it displays normally
CVR (Row Math)
Row math works identically to column math but references row names instead:
Dynamic Member Formulas
Dynamic member formulas are calculated at runtime by the cube engine — the values are not stored in the cube. When a Cube View includes a member with a dynamic formula, the engine evaluates the formula on each retrieval.
Key characteristics:
- Calculated at runtime, not stored
- Defined on the member in Dimension Maintenance, not in the Cube View
- Available wherever the member is used — Cube Views, Quick Views, Business Rules
- Performance consideration: dynamic formulas combined with sparse row suppression can cause slower evaluation because the engine must calculate values before determining whether to suppress the row
Custom Member Lists
Custom Member Lists allow a Finance Business Rule to dynamically generate the list of members that appear in a Cube View row or column. Instead of hard-coding members in the member filter, the Cube View calls a Business Rule that returns the list at runtime.
Syntax
The Business Rule named
MyListRule must implement a function that returns a member list named ActiveEntities. The engine calls this function at runtime, and the returned members appear in the Cube View.Condensed Syntax
For shorter expressions:
CustomMemberListWithParameters
Pass additional context to the Business Rule using parameters:
The Business Rule receives these parameters and can use them to filter or modify the returned member list.
Use Cases
- Dynamic entity lists — Return only entities that have data in the current period
- User-specific views — Return members based on the current user's security profile
- Conditional members — Include or exclude members based on scenario, time period, or other POV context
- Cross-dimensional filtering — Return accounts that are relevant to the selected entity's industry
When to Use Each Method
| Scenario | Recommended Method |
|---|---|
| Variance between two scenarios in adjacent columns | CVC math |
| Percentage calculation from existing rows | CVR math |
| Cross-dimension lookup (different member than row/column default) | GetDataCell expression |
| Complex calculation with conditional logic | GetDataCell with Business Rule |
| Dynamic row/column list based on data or security | Custom Member List |
| Calculation that should be available everywhere (not just this Cube View) | Dynamic Member Formula |
Related Content
- Formatting and Suppression — Previous guide: formatting hierarchy, overrides, and suppression settings
- Linked Cube Views and Navigation — Next guide: drill-down and navigation between views
- Rows, Columns, and Member Filters — Member filter syntax used in GetDataCell expressions
- Getting Started with Finance Rules — Writing the Business Rules called by GetDataCell and Custom Member Lists