---
url: /technical/cube-validation-cascading.md
---
# Cascading Validation

### Why a Cascading Validation

Cascading validations allow the creation of a list based on the value of another cell.

### Creating a Cascading Validation

Consider a with a measure and corroponding cell populated with **Actual Months** or **Budget Months**, where the set of valid months on the current cell should differ depending on whether the relative **Scenario** measure cell is  **Actual Months** or **Budget Months**.

Here's how it works in practice, using the hierarchy "Time by Scenario" as an example.

![Time Month by Scenario](/time-monthlist-by-scenario.png)

In this case, the "Time by Scenario" hierarchy contains two parents: one grouping "Actual Months" and one grouping "Budget Months".

In the workview, open the **Validation** tab to configure a rule against the **Time Mapping** measure. This time the rule is defined using the **Parent Measure**  and **Level** fields, referencing the name of the Measure, in this case *Scenario*\*, to determine which parent's children should be valid.

::: info

* The **Level** will always be set to the level below where the **Parent Measure** sits. For example, Actual Months is at the top level, and thus the Level must be set to "The top level -1".
  :::

![Cube Data Cascading Validation](/data-validation-cascading.png)

Once saved, changing the value of the Scenario cell changes the list of valid options presented at data-entry:

![Data Validation Selection Budget](/data-validation-cascading-select-budget.png)
![Data Validation Selection Actual](/data-validation-cascading-select-actual.png)

The validated string measure now displays a dropdown list of Months scoped to the value of the relative cell of **Scenario**.

::: danger

* If the relative **Parent Measure** cell is left unpopulated, all items will be available for selection based on the current rules.

![Data Validation Selection No](/data-validation-cascading-select-n.png)

:::
