Extensibility and Linked Cubes
Extensibility is OneStream's key differentiator in cube design — the ability to use different dimensions in different parts of the application without creating entirely separate applications. The OneStream Data Model covers the conceptual overview of both extensibility types, and Scenario Types and Cube Dimensions covers horizontal extensibility (different dimensions per Scenario Type). This guide covers vertical extensibility — different dimensions per business unit via separate linked cubes — and the practical steps to set it up.
Vertical Extensibility
Vertical extensibility uses multiple cubes where each business unit has its own cube with its own dimensions. A parent cube (sometimes called a super cube) sits at the top and consolidates data from the child cubes via the entity hierarchy.
What Varies by Cube
| Dimension Type | Can Vary? | Notes |
|---|---|---|
| Entity | Yes | Each cube has its own Entity dimension with its own base members. The parent cube inherits all entity members from child cubes via relationships. |
| Scenario | No | Shared across all cubes — the Scenario dimension is assigned at the (Default) level and cannot vary by cube. |
| Account | Yes | Each cube can have different account structures and levels of detail |
| Flow | Yes | Each cube can have different flow members |
| UD1–UD8 | Yes | Each cube can have different user-defined dimensions |
Each business unit cube defines only the dimensions it needs:
- North America tracks detailed accounts with cost centers and products
- EMEA tracks detailed accounts with departments
- APAC uses summary accounts with sales channels
- Corporate consolidates at a summary level with a single region dimension
The parent cube does not need to include the detail dimensions from the child cubes. During consolidation, child cube data rolls up to the parent cube's summary dimension level.
When to Use Vertical Extensibility
- Different business units need different entity hierarchies — each unit has its own organizational structure
- Different business units need different dimension granularity — one tracks products, another tracks departments, another tracks neither
- The Data Unit size in a single monolithic cube would be too large because of the combined dimension cardinality
- Business units have different reporting requirements that cannot be satisfied by horizontal extensibility alone
Setting Up Linked Cubes
Setting up linked cubes involves creating the entity dimensions for each cube, establishing the parent-child relationships between them, and configuring the cube dimension assignments.
Step-by-Step
| Step | Action | Details |
|---|---|---|
| 1 | Create child entity dimensions | Each child cube needs its own Entity dimension containing its base-level entity members (e.g., NA_Entities with members US_Corp, Canada_Corp) |
| 2 | Create parent entity dimension | The parent cube needs an Entity dimension with group and consolidated members (e.g., CorpEntities with North_America, EMEA, APAC, Corporate_Total) |
| 3 | Establish relationships | In the parent entity dimension, add the child entity dimension members as children of the appropriate parent members. This links the child cube's entities into the parent cube's hierarchy. |
| 4 | Create cubes and assign entity dimensions | Create each cube and assign its Entity dimension on the Cube Dimensions tab under the (Default) Scenario Type |
| 5 | Assign other dimensions per cube | For each cube, assign Account, Flow, and UD dimensions on the Cube Dimensions tab for each active Scenario Type |
| 6 | Verify Cube References | Open the parent cube's Cube References tab — it should auto-populate with references to the child cubes |
Entity Rollup and Consolidation Flow
The key to linked cubes is the entity hierarchy. Child cube entities roll up into parent cube entities through standard consolidation:
During consolidation, data from child cube entities is translated (if currencies differ) and rolled up to the parent cube entities. The parent cube sees the consolidated totals at its own dimension level. All the standard consolidation mechanics — percent consolidation, share calculation, elimination — work the same as within a single cube.
Cube References Tab
The Cube References tab on the parent cube shows which child cubes roll up into it. This tab auto-populates based on the entity hierarchy relationships — you do not need to manually configure it.
When you establish entity relationships where child cube entity members are children of parent cube entity members, the system automatically recognizes the link between cubes and populates the Cube References tab accordingly.
What Cube References Show
For each referenced child cube, you can see:
- The child cube name and its entity dimension
- The entity members that link the child cube to the parent cube's hierarchy
- The dimension mappings between child and parent cube dimensions
Intercompany Across Cubes
Intercompany elimination works across linked cubes. When entities in different child cubes have intercompany balances, the elimination occurs at the common parent in the parent cube — just as it would within a single cube.
Key Points
- IC members are available for all entities in each cube, regardless of which cube the IC partner belongs to
- The elimination occurs at the first common parent entity in the hierarchy, which may be in the parent cube
- Both entities must have IsICEntity = True on their entity member properties
Combining Horizontal and Vertical Extensibility
The most flexible cube designs combine both types of extensibility. Horizontal extensibility gives each Scenario Type different dimensions within a cube, while vertical extensibility gives each business unit its own cube with its own dimensions.
Example: Combined Architecture
Consider a corporate group where:
- Corporate parent uses summary accounts for all scenarios
- North America uses detailed accounts for Budget but summary accounts for Actual
- EMEA uses detailed accounts for both Actual and Budget, with department breakdowns only in Budget
In this design:
- Vertical extensibility handles the different entity structures and dimension needs per business unit
- Horizontal extensibility handles the different dimension needs per financial process within each business unit
- The Corporate cube consolidates everything at the summary level, regardless of the detail available in each child cube
Configuration Summary
| Cube | Scenario Type | Account | UD1 | UD2 |
|---|---|---|---|---|
| Corporate | Actual | SummaryAccounts | Region | RootUD2Dim |
| Corporate | Budget | SummaryAccounts | Region | RootUD2Dim |
| NA | Actual | SummaryAccounts | Region | RootUD2Dim |
| NA | Budget | DetailAccounts | Region | CostCenter |
| EMEA | Actual | DetailAccounts | Region | RootUD2Dim |
| EMEA | Budget | DetailAccounts | Region | Department |
Related Content
- Configuring Cubes — Cube properties, types, algorithms, FX rates, data access, and integration
- Scenario Types and Cube Dimensions — Scenario Type setup, dimension assignment, and horizontal extensibility
- Entity Dimension Setup — Entity properties, relationships, intercompany, currencies, and adjustments
- 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
- The OneStream Data Model — Conceptual overview of cubes, dimensions, and extensibility