DISAGGREGATE
Category: Assumptions & result sets
Legacy function
This function is sustained only for compatibility purposes. Please use the newer function DISTRIBUTE instead.
Overview
Description | Disaggregates the values of the Original Node for the given Level based on the value distribution from the Distribution Node in relation to the aggregated values of the Distribution Node when rolled up to the levels of the Original Node. Can be used to redistribute values that are not available on a certain level. An example is the assignment of OPEX to products according to their revenue. Use when you need to allocate values from a higher level to a more detailed level based on an existing distribution. |
Notes | The function groups the values according to all shared levels of |
Syntax |
|
Parameters |
|
Example
Disaggregate annual OPEX to products
This example shows how annual OPEX values are distributed to the product level based on the revenue mix in each year. The distribution is calculated separately for each year because both input nodes share the 'Year' level.
Input node: OPEX
Year | Value |
|---|---|
2025 | 4000 |
2026 | 8000 |
Input node: Revenue
Year | Product | Value |
|---|---|---|
2025 | M1 | 100 |
2025 | M2 | 300 |
2025 | Z3 | 400 |
2026 | M1 | 200 |
2026 | M2 | 600 |
2026 | Z3 | 800 |
Formula: DISAGGREGATE('OriginalNode', "Product", 'DistributionNode')
Year | Product | → DISAGGREGATE Result |
|---|---|---|
2025 | M1 | 500 |
2025 | M2 | 1500 |
2025 | Z3 | 2000 |
2026 | M1 | 1000 |
2026 | M2 | 3000 |
2026 | Z3 | 4000 |
Related Functions
Function | When to use instead |
|---|---|
When you want the modern replacement that covers the same use case with clearer behavior and fewer legacy limitations. | |
When you want to aggregate values to a higher level instead of distributing them to a more detailed one. |