Cube Configuration

Scenario Types and Cube Dimensions

Scenario Types group scenarios that share common dimensions, properties, and calculations. They are the mechanism for horizontal extensibility — the ability to use different dimensions (or different levels of detail within a dimension) per financial process within a single cube. This guide covers Scenario Type configuration, scenario member properties, dimension assignment, and how horizontal extensibility works in practice.

Available Scenario Types

OneStream provides a fixed set of Scenario Types defined by the ScenarioTypeId enum. Each scenario member is assigned to exactly one Scenario Type.
ScenarioTypeIdValueTypical Use
Actual0Financial close, actual results
Budget1Annual budget cycle
Flash2Flash estimates, quick forecasts
Forecast3Rolling or periodic forecasts
FXModel4FX modeling and constant-currency analysis
History5Historical data loads
Model6Financial modeling
Plan7Strategic or long-range planning
Tax8Tax provision scenarios
Variance9Variance analysis
Administration10Administrative and control scenarios
Control11Process control scenarios
LongTerm12Long-term planning
Operational13Operational planning
Sustainability14ESG and sustainability reporting
Target15Target setting
ScenarioType1–ScenarioType8101–108Custom types — use for any purpose
ℹ️Info
Scenario Type names are predefined and cannot be changed, but the name is irrelevant — no default behavior is tied to the name. A scenario assigned to the "Tax" Scenario Type does not automatically perform tax calculations. Any Scenario Type can be used for any purpose. Choose based on what makes logical sense for your application.

Scenario Member Properties

Each scenario member has properties organized into several categories. These are configured at Application > Cube > Dimensions > Scenario Dimensions on the Member Properties tab.

Security

Security settings control access to the scenario member:
  • ReadDataGroup — Users in this group can read data for this scenario
  • ReadAndWriteDataGroup — Users in this group can read and write data for this scenario
Both can be set via the ellipsis button to select from available security groups.

Workflow Settings

PropertyDescription
UseInWorkflowWhether this scenario participates in the Workflow submit/approve cycle
WorkflowTrackingFrequencyGranularity of Workflow tracking: AllTimePeriods, Range, Year, HalfYear, Quarter, Month, Week
WorkflowTimeThe specific time period for Workflow tracking
WorkflowStartTimeFirst period in the Workflow range
WorkflowEndTimeLast period in the Workflow range
NumberOfNoInputPeriodsPerWorkflowUnitNumber of periods at the start of each Workflow unit that are locked from input. Used for forecast scenarios where actuals are seeded into closed periods.

Settings

PropertyDescription
ScenarioTypeThe Scenario Type this member belongs to (Actual, Budget, Forecast, etc.)
InputFrequency (Vary By Year)Data entry granularity: Monthly, Weekly, Quarterly, Yearly. Can vary by year.
DefaultViewPeriodic or YTD — controls how calculations and member formulas process data
RetainNextPeriodDataUsingDefaultViewTrue = changing a prior period's value updates subsequent periods to stay consistent. False = subsequent periods retain their values.
InputViewForAdjustmentsPeriodic or YTD — how adjustment data is entered
UseInputViewForAdjInCalculationsWhether calculations use the adjustment input view
NoDataZeroViewForAdjustmentsPeriodic or YTD — how zero/no-data cells are interpreted for adjustments
NoDataZeroViewForNonAdjustmentsPeriodic or YTD — how zero/no-data cells are interpreted for non-adjustment data
ConsolidationViewDetermines whether data can be input into the Aggregation consolidation member

FX Rates

PropertyDescription
UseCubeFXSettingsTrue = inherit the cube's default FX rate configuration. False = override with scenario-specific settings.
RateType for Revenues and ExpensesAverageRate, OpeningRate, ClosingRate, or HistoricalRate (only when UseCubeFXSettings = False)
RateType for Assets and LiabilitiesAverageRate, OpeningRate, ClosingRate, or HistoricalRate (only when UseCubeFXSettings = False)
RuleType for Revenues and ExpensesDirect or Periodic (only when UseCubeFXSettings = False)
RuleType for Assets and LiabilitiesDirect or Periodic (only when UseCubeFXSettings = False)
ConstantYearForFXRatesTranslate using rates from a specific year instead of the current period's rates
Setting UseCubeFXSettings = False is common for forecast and constant-currency scenarios where you need different translation behavior than the cube default. For example, translating a forecast at budget rates requires pointing to the budget year's rates via ConstantYearForFXRates or using a Business Rule with the StandardUsingBRsForFxRates translation algorithm.

Hybrid Source Data

Hybrid scenarios allow data to be copied or shared between scenarios for defined periods.
PropertyDescription
DataBindingTypeShareDataFromSourceScenario (read-only share), CopyInputDataFromSourceScenario (physical copy of base-level data), or CopyInputDataFromBusinessRule (copy via a Finance Business Rule)
SourceScenario or BusinessRuleThe source scenario member or Business Rule name
Hybrid scenarios are commonly used to seed forecast scenarios with actual data for closed periods. For example, Forecast_Working can share data from Actual — when actuals are loaded and calculated, the forecast automatically reflects them without a separate copy step.

Custom Settings

Free-form key-value pairs that can be read by Business Rules at runtime. Useful for storing scenario-specific configuration without hardcoding values in rule code.

Scenario Naming Conventions

A consistent naming convention makes it easier to manage scenarios, especially when an application has many forecast cycles:
plaintext
1PlanFrequency_PlanDuration_PlanningType
2
3Examples:
4Budget                    — Annual budget (single scenario, reused yearly)
5Forecast_Working          — Active forecast workspace
6Forecast_M1 – Forecast_M12 — Monthly forecast snapshots
7LRP_5Year                 — Five-year long-range plan
8Actual                    — Financial close actuals
Guidelines:
  • Reuse scenarios that do not span multiple years — set WorkflowTrackingFrequency to "All Time Periods" so the same scenario works for any year
  • Create year-specific scenarios only for multi-year plans where year-over-year comparison matters
  • Keep names short — they appear in POV strings, reports, and Cube Views

Cube Dimensions Tab

The Cube Dimensions tab is where you assign dimension instances to each Scenario Type. This is the configuration point for horizontal extensibility.

Key Rules

  1. Entity and Scenario dimensions can only be assigned in the (Default) Scenario Type. They are grayed out at the Scenario Type level because they do not adhere to extensible dimensionality — all Scenario Types share the same Entity and Scenario dimensions.
  2. All other dimension types (Account, Flow, UD1–UD8) can vary by Scenario Type. Each Scenario Type can point to a different dimension instance for these types.
  3. When a new cube is created, the (Default) option is set to RootXXXDim for all dimension types. At the Scenario Type level, all non-Entity/Scenario dimensions default to (UseDefault).
💡Tip
Assign dimensions explicitly per Scenario Type, even if they are the same dimension across all types. This is the recommended configuration because it enables future changes to one Scenario Type without affecting the others.
The recommended setup:
  1. In the (Default) Scenario Type: assign only Entity and Scenario dimension types. Leave all other dimension types at the Root dimension.
  2. For each active Scenario Type: assign specific dimensions for Account, Flow, and all UD types. Use the Root dimension for unused UD types (e.g., RootUD4Dim if UD4 is not needed for this Scenario Type).
  3. For inactive Scenario Types: leave unchanged until they are ready to be activated.
⚠️Warning
If you leave a Scenario Type's dimensions at (UseDefault) and later change the (Default), all Scenario Types using (UseDefault) change too. This cascading effect can unintentionally alter dimension assignments for scenarios that already have data. Explicit assignment per Scenario Type avoids this risk entirely.

Root Dimensions as Stubs

For dimension types not used by a particular Scenario Type, assign the Root dimension (e.g., RootUD5Dim). This is a single-member dimension that acts as a placeholder. It keeps the dimension slot active in the cube structure without adding any overhead, and it means you can add a real dimension later by simply pointing the Scenario Type to a new dimension instance. For the in-depth treatment of stub dimensions and the one-time Root-to-specific upgrade limitation, see Dimension Library and Inheritance. For member naming rules, see Dimension Naming and Assignment.

Horizontal Extensibility

Horizontal extensibility lets different Scenario Types within the same cube use different dimensions. This is powerful because it means Actual, Budget, and Forecast can each have the right level of detail without inflating every scenario's Data Unit size.

How It Works

Each Scenario Type points to its own set of dimension instances. When data is queried or calculated for a scenario, the engine uses the dimensions assigned to that scenario's Scenario Type.
diagramHorizontal Extensibility — Dimensions by Scenario Type

Loading diagram...

Example: Actual vs. Budget Dimensions

Dimension TypeActualBudgetForecast
EntityLegalEntityLegalEntityLegalEntity
ScenarioScenariosScenariosScenarios
AccountSummaryAccountsDetailAccountsDetailAccounts
FlowFlowsFlowsFlows
UD1ProductFamilyProductTypeProduct
UD2RootUD2DimCostCenterRootUD2Dim
UD3RootUD3DimDepartmentDepartment
UD4–UD8RootUD4–8DimRootUD4–8DimRootUD4–8Dim
In this example:
  • Actual uses summary-level accounts and a single product dimension — just enough for consolidation and reporting
  • Budget uses detailed accounts with driver accounts, cost centers, and departments — the granularity needed for bottom-up planning
  • Forecast uses detailed accounts and departments but not cost centers — a middle ground between Actual and Budget

When Horizontal Extensibility Works

Horizontal extensibility works well when:
  • All scenarios share the same entity structure — the organizational hierarchy is consistent across processes
  • Different processes need different reporting detail — Actual needs less granularity than Budget
  • You want to minimize Data Unit size per scenario — each Scenario Type only includes the dimensions it actually uses
ℹ️Info
Entity and Scenario dimensions cannot vary by Scenario Type. If different business units need different entity hierarchies or entirely different dimension structures, you need vertical extensibility via linked cubes. See Extensibility and Linked Cubes.