Configuring Cubes
Cubes are created at Application > Cube > Cubes. Each cube is set up and controlled through its Cube profile, which consists of five tabs covering everything from security and algorithms to dimension assignments and data access rules. For the conceptual background on cube design patterns, extensibility, and Data Unit sizing, see The OneStream Data Model. This guide covers the practical configuration of each tab.
The Five Cube Tabs
Every cube profile contains these tabs:
| Tab | Purpose |
|---|---|
| Cube Properties | Name, type, security, consolidation/translation algorithms, FX rate defaults, Business Rules |
| Cube Dimensions | Dimension assignment by Scenario Type — the mechanism for horizontal extensibility |
| Cube References | Auto-populated references to child cubes in a linked-cube (vertical extensibility) setup |
| Data Access | Cell-level security rules — restrict read/write access to specific dimension intersections |
| Integration | Label and attribute dimensions, Scenario Type-specific dimension settings for data integration |
Cube Properties Tab
General Settings
- Name — Immutable after creation. Maximum 100 characters. Choose carefully — renaming requires recreating the cube.
- Description — Free-text description. Can be changed at any time.
Cube Type
The Cube Type property assigns a type identifier to the cube. This is a grouping and tagging mechanism — it does not change the cube's behavior or enable any built-in functionality. Any cube type can be used for any purpose.
| CubeTypeId | Value | Typical Use |
|---|---|---|
| Standard | 0 | General-purpose financial cubes |
| Tax | 1 | Tax provision cubes |
| Treasury | 2 | Treasury and cash management |
| Supplemental | 3 | Supplemental reporting |
| WhatIf | 4 | What-if analysis |
| CubeType1–CubeType8 | 11–18 | Custom types — use for any purpose |
Time Dimension Profile
The Time Dimension Profile links the cube to an accounting calendar. This determines what time periods are available in the cube (monthly, quarterly, weekly, etc.) and controls how time-based calculations like YTD and QTD roll up.
Security
- AccessGroup — Users must belong to this security group to access the cube at all
- MaintenanceGroup — Users must belong to this group to modify cube settings
- UseParentSecurityForRelationshipConsolidation — When True, relationship-level consolidation members (Share, Elimination, etc.) inherit security from the parent entity rather than the child
Consolidation Algorithm Type
The consolidation algorithm controls how data flows from child entities to parent entities during the consolidation process.
| Type | Value | Description |
|---|---|---|
| Standard | 0 | Share is calculated on the fly: (Translated + OwnerPreAdj) * %Consolidation. Eliminations use the standard hierarchy algorithm. Most common choice. |
| StandardWithStoredShare | 1 | Same as Standard but Share amounts are physically stored rather than calculated on the fly. Required when custom Share calculations (e.g., minority interest) are needed. |
| OrgByPeriodElimination | 2 | Standard Share (calc-on-fly) with Org-By-Period elimination tracking. Used when elimination history must be tracked period by period for audit purposes. |
| StoredShareAndOBPElimination | 3 | Combines Stored Share with Org-By-Period elimination. Full control over both Share and Elimination calculations. |
| Custom | 10000 | All consolidation logic is handled by Finance Business Rules. The engine does not run any default Share or Elimination processing. |
Translation Algorithm Type
The translation algorithm controls how local currency amounts are converted to the parent entity's currency during consolidation.
| Type | Value | Description |
|---|---|---|
| Standard | 0 | Uses the FX rate type and rule type configured on the cube (or overridden at the scenario level) to translate all accounts. Rate types (Average, Opening, Closing, Historical) are mapped to account categories. |
| StandardUsingBRsForFxRates | 1 | Same as Standard but allows a Finance Business Rule to override the FX rate for any given intersection. Intersections not handled by the rule fall back to Standard logic. Common for constant-currency reporting and forecast translation. |
| Custom | 10000 | All translation logic is handled by Finance Business Rules. No default translation processing runs. |
FX Rate Defaults
These settings define the default currency and how exchange rates are applied during translation. They can be overridden at the scenario level.
- DefaultCurrency — The default reporting currency for the cube. Used for FX rate triangulation and intercompany matching.
Rate Type and Rule Type Defaults:
| Setting | Applies To | Options |
|---|---|---|
| RateType for Revenues and Expenses | Income statement accounts | AverageRate, OpeningRate, ClosingRate, HistoricalRate |
| RateType for Assets and Liabilities | Balance sheet accounts | AverageRate, OpeningRate, ClosingRate, HistoricalRate |
| RuleType for Revenues and Expenses | Income statement accounts | Direct, Periodic |
| RuleType for Assets and Liabilities | Balance sheet accounts | Direct, Periodic |
The Rule Type determines how the rate is applied:
- Direct — Multiply each period's value by the current period's rate. Current Period Translated = Current Period Local × Current Period Rate. Standard for balance sheet accounts.
- Periodic — Weight the calculation based on the period. Calculates the difference between YTD translated and prior YTD translated to derive the periodic translated amount. Standard for income statement accounts.
The typical default configuration:
| Account Category | Rate Type | Rule Type |
|---|---|---|
| Revenues and Expenses | AverageRate | Periodic |
| Assets and Liabilities | ClosingRate | Direct |
Business Rules
Up to eight Finance Business Rules can be attached to a cube. These rules execute during Calculate, Translate, and Consolidate operations.
The rules execute in order (BusinessRule1 through BusinessRule8) and interact with Member Formulas. During calculation, the engine processes each account — if the account has a Member Formula, that runs first, then each Business Rule fires in order. This means Business Rule logic can read values computed by Member Formulas and by earlier Business Rules. The eight rule slots are not executed back-to-back — they are spread across a broader engine sequence that interleaves them with formula passes, detailed in the DUCS section below.
Data Unit Calculation Sequence (DUCS)
The Data Unit Calculation Sequence (DUCS) is the step-by-step order in which the engine executes Member Formulas and Business Rules for each Data Unit during a Calculate operation. Understanding this sequence is essential when deciding which Business Rule slot to use and which formula pass to assign to an Account, Flow, or UD member.
The full sequence for a single Data Unit:
- Clear previously calculated data for the Data Unit
- Run the Scenario's Member Formula (seeding logic)
- Run reverse translations (alternate currency input Flow Members)
- Execute Business Rules 1 and 2
- Run Formula Passes 1–4 (Account formulas → Flow formulas → UD1 → … → UD8)
- Execute Business Rules 3 and 4
- Run Formula Passes 5–8
- Execute Business Rules 5 and 6
- Run Formula Passes 9–12
- Execute Business Rules 7 and 8
- Run Formula Passes 13–16
For details on writing the Business Rules that plug into this sequence — including the difference between Calculate (which runs inside the DUCS) and CustomCalculate (which runs outside it) — see Writing Calculations.
Data Access Tab
The Data Access tab provides cell-level security — controlling which users can read or write specific dimension intersections within the cube. This is a more granular layer than entity-level or scenario-level security.
Data Cell Access Security
Each rule consists of:
| Component | Description |
|---|---|
| UserGroup | The security group this rule applies to |
| MemberFilter | A dimension member filter defining which cells the rule covers (e.g., A#Revenue:U1#Sales) |
| Access Level | NoAccess, ReadOnly, or AllAccess |
| Category | An optional label to group related rules together |
Rules are evaluated in order. To get access to entity data, a user must first have Read or ReadWrite access to the entity through entity-level security. Data Cell Access Security then restricts (or confirms) access within that entity's data.
Conditional Input and Data Management Access
- Conditional Input Rules — Control which cells can receive input based on dimension intersections. These are not security rules — they control data entry behavior (e.g., preventing input to calculated accounts).
- Data Management Access — Control which cells can be modified by Data Management jobs.
Both use the same MemberFilter + Category structure as Data Cell Access Security.
Integration Tab
The Integration tab configures dimension settings specific to data integration and the data load process.
Cube Dimension Settings by Scenario Type
For each Scenario Type, you can configure which dimensions participate in data integration. This controls what dimensions are available when loading data into the cube for a given scenario type.
Label Dimensions
Label dimensions store non-numeric metadata alongside cube data:
- Label — A text label attached to a data cell
- SourceID — The source system identifier for the data cell (useful for drill-back)
- TextValue — A free-text value associated with the cell
Attribute Dimensions
Attribute dimensions provide additional classification axes for data integration. They are configured per cube and can be used in Transformation Rules to map source data to cube intersections.
For detailed coverage of how data flows into the cube through the Import-Validate-Load pipeline, see the Data Ingestion guide series.
Accessing Cube Properties in Code
You can read cube configuration values programmatically in Business Rules:
Related Content
- The OneStream Data Model — Conceptual overview of cubes, dimensions, extensibility, and Data Units
- Scenario Types and Cube Dimensions — Scenario Type setup, dimension assignment, and horizontal extensibility
- Entity Dimension Setup — Entity properties, relationships, intercompany, currencies, and adjustments
- Extensibility and Linked Cubes — Vertical extensibility, linked cube setup, and cube references
- Account Member Properties — Common properties, AccountType, FormulaType, aggregation, intercompany, constraints, and code examples
- Flow Member Properties — SwitchSign, SwitchType, FlowProcessingType, and flow hierarchy design
- UD Member Properties — UD defaults, attribute members, RelatedDimensionType, and constraints
- Dimension Library and Inheritance — Dimension creation, inheritance, stub dimensions, and the Dimension Library
- Dimension Naming and Assignment — Naming rules, assigning dimensions to cubes, dimension levels, and best practices