Dimension Naming and Assignment
This guide covers the rules and best practices for naming dimension members, assigning dimensions to cubes, and using dimension levels for extensibility. For the Dimension Library structure, inheritance, stub dimensions, and creating new dimensions, see Dimension Library and Inheritance. For the member-level property settings on each dimension type, see Account Member Properties, Flow Member Properties, or UD Member Properties.
Member Naming Rules
Dimension member names follow strict rules. Violations can cause silent failures or runtime POV errors.
Name Requirements
- Names must be unique within a dimension type — not just within a single dimension. There can be only one account named
GrossIncomeacross all account dimensions. - Names have a 500-character limit.
- Underscores are recommended in place of spaces and periods. Square brackets are not needed for names with underscores.
- Spaces are allowed but not recommended.
- If a member name includes a space or period, square brackets must be used when the member is queried in a POV string.
Restricted Characters
The following characters should not be used in dimension member names:
| Character | Name |
|---|---|
# | Hash / pound |
: | Colon |
, | Comma |
= | Equals |
( ) | Parentheses |
{ } | Curly braces |
" | Double quote |
' | Single quote / apostrophe |
@ | At sign |
& | Ampersand |
These characters are used as delimiters in POV strings, member filter expressions, and Business Rule syntax. Including them in member names will cause parsing errors.
Reserved Words
The following words are reserved and cannot be used as dimension member names or as names for other structural application components such as cubes:
| Reserved Words | |
|---|---|
| Account | All |
| Cons | Consolidation |
| Default | DimType |
| Entity | EntityDefault |
| FlowOrigin | IC |
| None | Parent |
| POV | Root |
| RootAccountDim | RootEntityDim |
| RootFlowDim | RootScenarioDim |
| RootUD1Dim – RootUD8Dim | Scenario |
Assigning Dimensions to Cubes
Dimensions are assigned to cubes on the Cube Dimensions tab of the cube profile. This is the configuration point for horizontal extensibility — the ability to use different dimensions per Scenario Type within a single cube. For the full details of Scenario Type configuration, see Scenario Types and Cube Dimensions.
Key Rules
- Entity and Scenario dimensions are assigned only at the (Default) level. They are shared across all Scenario Types and cannot vary.
- Account, Flow, and UD1–UD8 dimensions can vary by Scenario Type. Each Scenario Type can point to a different dimension instance.
- When a new cube is created, all dimension types default to
RootXXXDimat the (Default) level. At the Scenario Type level, all non-Entity/Scenario dimensions default to(UseDefault).
Recommended Approach
| Level | Entity | Scenario | Account | Flow | UD1–UD8 |
|---|---|---|---|---|---|
| (Default) | LegalEntity | Scenarios | RootAccountDim | RootFlowDim | RootUD1–8Dim |
| Actual | (grayed out) | (grayed out) | SummaryAccounts | Flows | Specific or RootXXXDim |
| Budget | (grayed out) | (grayed out) | DetailAccounts | Flows | Specific or RootXXXDim |
| Forecast | (grayed out) | (grayed out) | DetailAccounts | Flows | Specific or RootXXXDim |
- Assign Entity and Scenario at the (Default) level — these are shared across all Scenario Types
- Leave all other dimensions at RootXXXDim at the (Default) level
- Assign specific dimensions at each active Scenario Type — even if the same dimension is used across multiple types, explicit assignment prevents cascading changes
- Assign RootXXXDim for unused UD types at the Scenario Type level (e.g.,
RootUD4Dimif UD4 is not needed)
Dimension Levels on the Cube
Different "levels" of a dimension — such as SummaryAccounts and DetailAccounts — can be assigned to different Scenario Types or different cubes. This is the foundation of extensible dimensionality.
Within a single cube (horizontal extensibility):
- The Actual Scenario Type might use SummaryAccounts (fewer members, faster processing)
- The Budget Scenario Type might use DetailAccounts (more members, including driver accounts for planning)
- Both dimensions share common parent members through inheritance, ensuring consolidated results align
Across linked cubes (vertical extensibility):
- The Corporate parent cube might use SummaryAccounts
- Each business unit cube might use DetailAccounts with its own set of detail members
- During consolidation, child cube detail rolls up to the parent cube's summary level
For the full treatment of extensibility patterns, see Extensibility and Linked Cubes.
Best Practices for Initial Setup
- Plan dimension types before creating cubes. Map out which dimension types each Scenario Type will need and what level of detail is required. Changes to cube dimensions after data has been loaded are costly.
- Assign RootXXXDim explicitly for unused dimension types per Scenario Type. Never leave dimensions at (UseDefault) in a production application.
- Use underscores from the start. Adopting underscore-based naming (
Revenue_Totalinstead ofRevenue Total) avoids the need for square brackets in POV strings and prevents parsing issues. - Keep names short. Member names appear in POV strings, Cube Views, Transformation Rules, and Business Rules. Long names make these harder to read and maintain.
- Document naming conventions. Establish a naming standard (e.g., prefix patterns, abbreviation rules) and communicate it to the team before members are created.
- Test Root-to-specific upgrades in dev. Before activating a new dimension on a Scenario Type in production, test the upgrade in a development environment. Verify that existing data is not affected and that calculations produce expected results.
- Validate constraints before loading data. Configure VaryByCubeType constraints on Account, Flow, and UD members (see Account Member Properties and UD Member Properties) before the first data load. Adding constraints after data exists can orphan records at invalid intersections.
Related Content
- Dimension Library and Inheritance — Dimension creation, inheritance, stub dimensions, and the Dimension Library
- 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
- 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
- Extensibility and Linked Cubes — Vertical extensibility, linked cube setup, and cube references
- The OneStream Data Model — Conceptual overview of cubes, dimensions, extensibility, and Data Units