---
url: /technical/about-the-scenario-dimension.md
description: >-
  How to structure a Scenario dimension with parallel Planning and Archive
  Hierarchies, so formulas and reports stay correct as scenarios come and go.
---

# About the Scenario Dimension

Almost every Model has a Scenario dimension - it's what holds `Actual`, `Budget`, `Forecast` and any other parallel view of the business, and it's important enough that MODLR offers it as a dedicated [dimension type](/technical/about-dimensions.html#dimension-types), which also lets MODLR's assistant features recognise it. A flat list works for the simplest models:

```
All Scenarios
    Actual
    Budget
    Forecast
```

Real Models usually need more structure than this, because scenarios don't all behave the same way: some are actively being planned, others are completed snapshots that need to be preserved untouched, and formulas typically need to apply to the first group but never the second.

## The planning-versus-archive pattern

A convention worth adopting from the start of every Model: alongside the `Default` Hierarchy, add a `Planning Scenarios` Hierarchy and an `Archive Scenarios` Hierarchy, and keep `Actual` in `Default` only, since it belongs to neither group.

**Default** (the main view)

```
All Scenarios
    Actual
    Budget
    Forecast
    Final Budget
    Final Forecast
```

**Planning Scenarios**

```
All Planning Scenarios
    Budget
    Forecast
```

**Archive Scenarios**

```
All Archive Scenarios
    Final Budget
    Final Forecast
```

![The same Scenario dimension shown through three hierarchies side by side - Default with every scenario, Planning Scenarios with only the active ones, Archive Scenarios with only the frozen ones - with Actual appearing only in Default](/parallel-scenario-hierarchies.png)

This split pays off in three ways:

* **Formulas target the right group cleanly.** Restrict a planning formula to the `Planning Scenarios` Hierarchy rather than to a named list of scenarios, and it automatically covers every scenario placed under `All Planning Scenarios` - including ones added next year, with nothing to update on the formula itself.
* **Reports build dynamic scenario lists.** A Workview or Card selector built from the children of `All Planning Scenarios` picks up a newly added planning scenario without anyone touching the report.
* **The lifecycle of a scenario becomes explicit.** When a planning round ends, its values are copied into a `Final Forecast` (or `Final Budget`) archive scenario and the active planning scenario is reset for the next round. Archive scenarios typically carry no cube formulas at all - since planning formulas are restricted to `Planning Scenarios`, the archive can sit alongside actively-calculating scenarios as a safe, frozen snapshot.

## How Time and Scenario interact

Together, Time and Scenario answer *when* and *under what assumption*. A few patterns are worth knowing:

* **Actual fills the past; planning fills the future.** In most Models, `Actual` holds values only for elapsed periods, loaded by integration Processes, while planning scenarios hold values for periods still ahead, populated by users or formulas. Some Models go further with a *composite forecast* - a planning scenario that shows real Actuals for elapsed months and calculated values for the rest, typically via a formula along the lines of "for past periods, use Actual; for future periods, calculate."
* **The current-period boundary lives in a variable, not in the data.** A common convention is a model variable like `Time.Current Month`, updated once a month. Formulas, report defaults and Workview highlighting all reference it, so the entire Model rolls forward the moment the variable updates - no formulas or reports need editing.
* **Year-end is a Process, not a data event.** Closing a financial year typically means archiving the current forecast into a final scenario (a custom Process that copies values across), and potentially extending the [Time dimension](/technical/about-the-time-dimension.html) forward via `System.Dimension.Time`. With clean Planning/Archive hierarchies in place, neither step touches any formula, report or Application.

## Common pitfalls

* **Restricting planning formulas to `All Scenarios` instead of `All Planning Scenarios`** means they keep calculating against archived scenarios too, turning a frozen snapshot into a moving target and defeating the point of archiving it.
* **Using a flat, ever-growing scenario list** without a Planning/Archive split leaves reports cluttered with old scenarios that should have been archived. Build the parallel hierarchies from the start, even with only two or three scenarios today - it's far cheaper than refactoring later.
* **Setting the dimension type to Standard instead of Scenario** loses the platform behaviours - such as assistant recognition - that come with the dedicated Scenario type.
