# Plan across multiple dimensions with cubes

In many business scenarios, plans are created separately for each dimension, such as regions, product lines, departments, or time periods - resulting in duplicated effort and fragmented planning. Multi-dimensional cube planning lets you create and allocate plans across multiple dimensions with different granularities in a single step. Cubes enable plans to stay synchronized across different levels of detail.&#x20;

#### Driver-Based Allocation Model

Each cube is configured around a Data Input Measure or Forecast Measure. Allocation within the cube is performed using an Allocation Driver (also referred to as a Reference Measure or Allocation Key).\
The Allocation Driver is typically a DAX measure from the semantic model, such as Prior Year Actuals, Current Year Revenue, Units Sold, Headcount, or Production Volume\
This driver measure provides the weights and ratios used for proportional distribution.

#### How allocation works

1. A value is entered at a summarized level, such as 500 entered for a product without selecting lower-level dimensions (for example, region or country).
2. The selected allocation driver measure determines how the value should be distributed.
3. The value is allocated proportionally across all valid dimension intersections, based on the driver measure’s relative weights.

#### Allocation Formula (Conceptual)

Allocated value is calculated by multiplying the entered value by the relative weight of the allocation driver at each valid intersection:

Allocated Value =\
Entered Value ×                                                                                                                                         (Driver Value at the intersection ÷ Sum of Driver Values within the hierarchy scope)

Where:

* Entered Value is the total value entered at a higher level of aggregation.
* Driver Value at the intersection is the allocation driver’s value for a specific combination of dimensions.
* The hierarchy scope includes all valid lower‑level intersections over which the entered value is distributed.

#### What this means in practice

* Allocation is performed only for dimension intersections where the driver has a non-null value.
* Values are distributed based on the relative contribution of each driver value within the defined scope.
* Allocation respects the dimensional granularity and breakdowns configured in the cube, ensuring consistency with the data model.

#### Multi-Dimensional Distribution

Cubes support distributing plans across<br>

* Dimensions present in the planning sheet
* Dimensions not currently visible in the sheet, but configured in the cube breakdown
* Multiple granularities simultaneously

This allows complex enterprise allocations—such as Region → Product Line → Department—to occur in a single action, while maintaining data integrity across the cube.\
The allocation driver measure does not need to be added to the planning sheet. It can exist solely in the semantic model and be used internally as the weighting mechanism.

#### Use Case: Enterprise-Level Budget Allocation

Consider an organization allocating an annual budget across Regions, Product Lines, and Departments.

Using a cube:

* The total budget is entered at a higher level.
* A driver measure (e.g., Prior Year Actuals) is selected as the Allocation Driver.
* The cube proportionally distributes the budget across all valid intersections.
* Allocations remain synchronized across all dimensions—even those not visible in the current sheet.

This approach avoids manual breakdowns, duplicate models, and reconciliation errors.

### Prerequisites

* The column dimension should be a standard date hierarchy, e.g., year > quarter > month.
* A numeric data input or forecast measure should be created. The data cube will be configured for this measure.

### Configure a cube

Create cube measures by adding breakdowns in data input measures.

1. Create a numeric data input or forecast measure.
2. Go to **Data Input** > **Enable Multi-Dimension Allocation**. Click **Add breakdown**.&#x20;

<figure><img src="/files/0OO0qvTSGWNxMQQnODcQ" alt=""><figcaption></figcaption></figure>

3. To allocate values based on the weights of a driver measure, select the required measure from **Reference measures** in **Add breakdown**.
4. The row dimensions in the current planning sheet are automatically added in the first breakdown.&#x20;

<figure><img src="/files/atVaS4xXrrfFAvxB8nst" alt=""><figcaption></figcaption></figure>

5. Click **Add** to create new dimension breakdowns.

{% hint style="success" %}
At least one row dimension from the current planning sheet is required to create breakdowns based on dimensions that are not part of the sheet.
{% endhint %}

<figure><img src="/files/kCsphxCB4Ja08yEfT3Y3" alt="" width="563"><figcaption></figcaption></figure>

6. Create the breakdown and create the measure.
7. After a cube measure is created, it will be added under **Data** > **From Sheets** > **Cube**.

<figure><img src="/files/82FG0ano6LDHOIlTJB7r" alt="" width="266"><figcaption></figcaption></figure>

### Import a cube measure into another plan

After configuring a cube measure, it can be used in other plans based on the configured breakdowns. For instance, a cube created in a region-level plan can be imported into a product-level plan.

{% hint style="success" %}
When importing a cube, the row dimensions in the planning sheet must be a subset of the dimensions configured in the cube breakdowns. The dimensions can be in any order.&#x20;

For example, if the cube breakdown is configured with the dimensions Region, Country, Province, and City, the planning sheet can include any subset of these dimensions, such as Country > City or Province, regardless of the order.
{% endhint %}

Go to Data > From Sheets > Cube. Select the measure to import. From More options (…), select **Insert as measure**.

<figure><img src="/files/KW5rXzTEs0UjAuiz5jYn" alt=""><figcaption></figcaption></figure>

The cube measure is imported into the planning sheet, and allocations are based on the configured breakdowns.

<figure><img src="/files/DepUBbRS2jMbGmJmQGmj" alt=""><figcaption></figcaption></figure>

Any updates made to the Budget cube measure in Product Plan are automatically cascaded back to Regional Plan. This ensures consistency between related plans while allowing planning and adjustments to occur at the appropriate level of detail.

## Best practices while setting up a cube

* **Use a valid allocation driver**\
  Always configure a single, clearly defined allocation driver (reference measure) such as prior year actuals, revenue, or units. Ensure the driver reflects real-world business weighting logic.
* **Allocate only across non-blank driver cells**\
  Allocation occurs only where the selected driver measure has valid (non-blank) values. Avoid allocations across intersections where the driver is null, as this can cause allocation errors or unintended distributions.
* **Restrict input using “Allow Input – Based on Formula”**\
  To prevent users from entering or allocating values on invalid intersections, configure an input rule such as:\
  ![image](/files/OThi14fsHGAV6mKL3Wat)\
  By configuring **Allow Input – Based on Formula**, cells that do not satisfy the specified condition are automatically locked. This ensures that users can allocate only across dimension intersections that meet the defined driver criteria (e.g., where the reference measure is non-blank).

```
[Driver Measure] !== BLANK
 
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.fabricplan.com/planning-sheets/how-tos/allocate-values-across-dimensions.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
