Skip Headers
Oracle® OLAP Application Developer's Guide,
10g Release 2 (10.2)

Part Number B14349-05
Go to Documentation Home
Home
Go to Book List
Book List
Go to Table of Contents
Contents
Go to Index
Index
Go to Master Index
Master Index
Go to Feedback page
Contact Us

Go to previous page
Previous
Go to next page
Next
PDF · Mobi · ePub

9 Allocations

In Analytic Workspace Manager, you can create forecasts, set goals, and create budgets at a high level, and then allocate those numbers down a hierarchy to see how those numbers impact the contributing values.

This chapter contains the following topics:

What Is an Allocation?

Allocations distribute aggregate level data to detail level data, sometimes using an existing set of data as the basis for the allocation. This technology is often used in forecasting and budgeting systems. An example of a financial allocation is the automated distribution of a bonus pool, based on the current salaries and performance ratings of the employees.

You can think of allocations as inverse aggregations.

One important difference between aggregation and allocation is that an aggregation has one defined answer. An allocation has many possible answers for the same source value.

For example, consider the hierarchy in Figure 9-1. The value 9 is derived by aggregating the values 2, 3 and 4 using the Sum operator.

Figure 9-1 Aggregation in a Simple Hierarchy

Diagram of aggregation in a simple hierarchy
Description of "Figure 9-1 Aggregation in a Simple Hierarchy"

Now change the value of 9 to 18 and allocate the results to the children. The Even allocation operator divides the source value evenly by the number of children, and so assigns each child a value of 6, as shown in Figure 9-2.

Figure 9-2 Even Allocation In a Simple Hierarchy

Diagram of even allocation
Description of "Figure 9-2 Even Allocation In a Simple Hierarchy"

In contrast, the Proportional allocation operator divides the value into proportions based on the current value of each target cell, and so assigns values of 4, 6 and 8, as shown in Figure 9-3.

Figure 9-3 Proportional Allocation In a Simple Hierarchy

Diagram of proportional allocation
Description of "Figure 9-3 Proportional Allocation In a Simple Hierarchy"

The previous examples show direct allocation, that is, where there is a parent-child relation between the source cell and the target cells. However, most hierarchies have multiple levels, and an allocation may assign values down the hierarchy, as shown in Figure 9-4.

Figure 9-4 Even Allocation in a Multilevel Hierarchy

Diagram of even allocation
Description of "Figure 9-4 Even Allocation in a Multilevel Hierarchy"

Next, consider a skip level hierarchy. The source value is allocated down the hierarchy, as shown in Figure 9-5. The relationship of the target cell to the allocation source, not the hierarchical level of a cell, determines the allocation. Note that, as the result of an intermediate value in one branch, the base-level cells are allocated different values than in the simple hierarchy shown in Figure 9-2.

Figure 9-5 Even Allocation in a Skip Level Hierarchy

Diagram of skip-level allocation
Description of "Figure 9-5 Even Allocation in a Skip Level Hierarchy"

Creating Measures to Support an Allocation

Source, basis, and target are the most fundamental terms for describing allocation. You may use the same measure for all three roles or assign a different measure to each role. All allocation operators require a source and a target, but some operators do not use a basis. You can also multiply the results of an allocation by a weight measure.

Source Measures

The source measure contains the set of numbers that you want to allocate. You may use an existing measure, or you may perform some computation on existing data to construct new source values. For instance, you might want to budget 30 percent growth over the next year and perform an allocation to see the sales targets required for each product to meet that budget. You would create a calculated measure based on actual sales to use as the allocation source. Alternatively, you might generate a forecast at the middle or top of a hierarchy and then allocate the forecast results down to the lower levels.

Basis Measures

Depending on the type of allocation, the basis measure may identify which cells are the targets of an allocation, and what proportion of the allocation each target cell receives. Different operators use the basis measure in different ways, as illustrated by the diagrams of Even and Proportional operators in "What Is an Allocation?". Note that a basis measure is not used by the hierarchical operators. Refer to "Allocation Operators" for descriptions of all the operators and their use of a basis measure.

The basis measure can be the same as the target measure, or it can be a different measure. For example, suppose you want to calculate the sales of each individual product for an increase in total sales of 15 percent. You would create a calculated measure from Sales that contains the desired aggregate values, and use it as the allocation source. By using the original Sales measure as both the target and the allocation basis, and allocating with the Proportional distribution method, you can generate the individual product sales figures that are needed to produce the desired total sales figure.

If, however, you want to write the results of the allocation to a completely new measure, you would still use the Sales measure as the basis. The new target enables you to preview the allocated results before overwriting the original data. Similarly, you may want to allocate data into a Budget target measure and use an Actuals measure as the basis of the allocation.

Target Measures

The target measure stores the results of an allocation. By default, the target and the basis are the same measure. However, you may prefer to use a different target measure so that you can preview the results of an allocation before overwriting any original values.

Weight Measures

You can perform a calculation on the allocated values before they are stored in the target measure. For example, you might need to convert Sales numbers to a different currency. You might create a budget in US dollars, and then translate the allocation target into local currencies. To accomplish this, you would multiply the target values by a weight measure that contains the currency translation rates.

Selecting Dimension Members for an Allocation

You can perform an allocation over an entire measure or over selected branches of the hierarchy. You must restrict the allocation to a portion of the measure under these circumstances:

Identifying the Sources and Targets

The dimension members that you select for the allocation is used to identify the source and the target cells. The selection must include:

  • In the source measure, the cells at the top of the hierarchy that contain the values to be allocated.

  • In the target measure, the cells down the hierarchy that are allocated values.

Figure 9-6 shows a portion of a Time hierarchy with the source allocation values at the Quarter level. How the allocation is performed depends on which members are selected (or in status). Table 9-1 describes various status settings and their effect on the allocation.

Figure 9-6 Allocating at the Quarter Level

Diagram of mid level allocation
Description of "Figure 9-6 Allocating at the Quarter Level"

Table 9-1 Results of Status on Allocation at the Quarter Level

Status Allocation Explanation

All

None

The top member of the hierarchy (2006) has no value, so there is no source value to allocate.

All quarters

None

The children of Q1 and Q2 are not in status, so there is no target for allocation.

All quarters, all months

Jan to Jun

Q1 and Q2 are in status, so the value 9 is allocated to Jan, Feb, and Mar, and the value 12 is allocated to Apr, May, and Jun.

Q1, Jan to Mar

Jan to Mar

Q1 and its children are in status, so the value 9 is allocated to Jan, Feb, and Mar. Q2 is not in status and is not allocated.


Figure 9-7 shows the correct status for allocating only Q1.

Figure 9-7 Status for Allocating One Mid-Level Branch of a Hierarchy

Diagram of mid level allocation of one branch
Description of "Figure 9-7 Status for Allocating One Mid-Level Branch of a Hierarchy"

When calculating the allocation, the OLAP engine expands the current status to include siblings, if necessary. Figure 9-8 shows an even allocation when Q2, Apr and May are in status. Jun is not a target and does not get a value. Nonetheless, the engine divides the allocated value of 12 by all three children, not just the two targets, to calculate the values for Apr and May.

Figure 9-8 Even Allocation to Selected Child Members

Diagram of targeted allocation
Description of "Figure 9-8 Even Allocation to Selected Child Members"

Identifying the Allocation Path

When the allocation path from the source to the target cells is not defined by the current status, the engine may populate the siblings of cells along the path. This information is important only if you want to avoid overwriting existing values or unnecessarily proliferating data.

Figure 9-9 shows the results of an allocation from 2006 to the three months in Q2. Only 2006, Apr, May, and Jun are in status. This status does not define a path from the source to the target. Because the Quarter level is on the path to the target, all of the quarters are allocated a value.

Figure 9-9 Even Allocation Without a Defined Allocation Path

Diagram of untargeted allocation
Description of "Figure 9-9 Even Allocation Without a Defined Allocation Path"

However, when Q2 is included in status, it is the only quarter to get an allocated value, as shown in Figure 9-10.

Figure 9-10 Even Allocation With a Defined Allocation Path

Diagram of targeted allocation
Description of "Figure 9-10 Even Allocation With a Defined Allocation Path"

Creating an Allocation

You can create allocations in Analytic Workspace Manager by defining an allocation step in a Calculation Plan. Take these steps:

  1. Create the source, basis, target, and weight measures. They must be in the same cube. The source, basis, and weight measures can be either stored measures or calculated measures. The target measure must be a stored measure.

  2. Create an allocation step:

    1. In the navigation tree, create a new Calculation Plan or open an existing plan.

    2. On the General tab of the Calculation Plan property page, click New Step, then choose New Allocation Step.

      The New Allocation Step property pages are displayed.

    3. Complete the General page, being careful to select the correct source, target, and basis measures.

    4. On the Rules page, use the up- and down-arrows to list the dimensions in the order you want them calculated. If you assign different operators to different dimensions, then the allocated values may be different depending on the order.

    5. Select an operator for each dimension that you want to allocate, and a weight measure if desired.

    6. On the Status page, select the members for each dimension of the measure. To allocate values from the top down to the base, retain the default selection of All Levels. Otherwise, select the dimension members with the source data and the target members.

      Refer to "Selecting Dimension Members for an Allocation" for information on selecting the dimension values.

    7. Click Create to save the allocation step, then Apply to save the Calculation Plan.

  3. To allocate the data, right-click the Calculation Plan in the navigation tree, then choose Execute Calculation Plan.

  4. To view the results of the allocation, right-click the target measure and choose View Data.

Note:

Always follow an Allocation Step with an Aggregation Step.

Allocation Operators

Allocation operators determine the methodology for distributing source values to their targets. There are three basic types of allocation operators: Copy, Even Distribution, and Proportional Distribution.

Within these basic types are regular operators and hierarchical operators. The regular operators only assign values to cells identified by the basis measure as having a value. The hierarchical operators do not use a basis measure. They assign values to all target cells.

Note:

The hierarchical operators may increase the size of a measure dramatically by allocating values to previously empty cells. Be careful to set the status of all dimensions.

Copy Operators

These are the copy operators:

  • Copy: Copies the allocation source to all of the target cells that have a basis value that is not NA (null).

  • Hierarchical Copy: Copies the allocation source to all of the target cells specified by the hierarchy, regardless of the basis value.

  • Minimum: Copies the allocation source to the target that has the smallest basis value.

  • Maximum: Copies the allocation source to the target that has the largest basis value.

  • First non-NA Data Value: Copies the allocation source to the first target cell that has a non-NA basis value.

  • Hierarchical First Member: Copies the allocation source to the first target cell specified by the hierarchy, regardless of the basis value.

  • Last non-NA Data Value: Copies the allocation source to the last target cell that has a non-NA basis value.

  • Hierarchical Last Member: Copies the allocation source to the last target cell specified by the hierarchy, regardless of the basis value.

Even Distribution Operators

These are the even distribution operators:

Even: Divides the allocation source by the number of target cells that have non-NA basis values and applies the quotient to each target cell.

Hierarchical Even: Divides the allocation source by the number of target cells, including the ones that have NA values, and applies the quotient to each target cell.

Proportional Distribution Operator

The proportional distribution operator is:

Proportional: Divides the allocation source by the sum of the basis values, then multiplies the quotient by the individual basis value for each target cell.

Relationships Between Allocation and Aggregation Operators

The allocation system operates as the logical inverse of the aggregation system. In other words, if you allocate down from a middle level of a hierarchy, you can aggregate up to the top of the hierarchy using an aggregation operator that corresponds to the allocation operator. Table 9-2 shows the correspondence between allocation operators and aggregation operators.

Table 9-2 Corresponding Allocation and Aggregation Operators

Allocation Operator Aggregation Operator

Copy

Average

Hierarchical Copy

Average

Minimum

Minimum

Maximum

Maximum

First non-NA Data Value

First Non-NA Data Value

Last non-NA Data Value

Last Non-NA Data Value

Hierarchical First Member

Hierarchical First Member

Hierarchical Last Member

Hierarchical Last Member

Even

Sum or Average

Hierarchical Even

Hierarchical Average

Proportional

Sum


Case Study: Allocating a Budget

This example creates a sales budget that is 10% higher than the previous year's sales. It uses a calculated measure to generate the increase, then distributes the total increase evenly down the dimension hierarchies.

Creating the Source Measure

To create the source measure:

  1. Expand the UNITS_CUBE folder, right-click Calculated Measures, and choose Create Calculated Measure.

    The Calculation Wizard opens.

  2. Complete the Name and Type page with these values:

    • Name: sales_py

    • Calculation Type: Prior Value (under Prior/Future Comparison)

  3. Complete the Prior Value page with these values:

    • Measure: Sales

    • Over Time in: Calendar Year

    • Go back by: 1 Year

  4. Create a second calculated measure with the name SALES_BUDGET.

  5. For the calculation, expand the Basic Arithmetic folder and choose Multiplication.

  6. On the Multiplication page, multiply SALES_PY by 1.06 for a 6% increase in Sales over the prior year.

Creating the Target Measure

This example stores the allocated data in a separate measure from the source data to assure that the allocated data does not overwrite any source data.

To create the target measure:

  1. In the UNITS_CUBE folder, right-click Measures and select Create Measure.

    The Create Measure dialog box opens.

  2. On the General page, create a measure named ALLOC_SALES_BUDGET.

  3. Select Override the Aggregation Specification of the Cube.

  4. On the Summarize To page, deselect all levels for all dimensions.

The measure is not mapped to a data source, so no aggregation needs to be done during regular builds. Instead, aggregation is defined in the Calculation Plan. The aggregation step is not shown in this example; refer to "Case Study: Forecasting Sales for Global Enterprises" for an example that shows forecasting, allocation, and aggregation.

Creating the Calculation Plan

Budget Plan has an allocation step and an aggregation step (not shown).

To create a new Calculation Plan:

  1. Right-click Calculation Plans and select Create Calculation Plan.

    The Create Calculation Plan dialog box opens.

  2. Create a new plan named BUDGET_PLAN. Click Create.

    BUDGET_PLAN appears as a new item in the Calculation Plans folder. It does not yet contain any steps.

Creating the Allocate Budget Step

The SALES_BUDGET calculated measures generates data at all levels. The allocation redistributes the data from the top of the hierarchy to the lowest levels and stores it in the target measure.

To create an allocation step:

  1. On the General page of Sales Plan, click New Step, then select New Allocation Step.

    The Create Allocation Step dialog box opens.

  2. Complete the General page with these values:

    • Name: allocate_budget_step

    • Cube: UNITS_CUBE

    • Source Measure: SALES_BUDGET

    • Target Measure: ALLOC_SALES_BUDGET

    • Basis Measure: SALES_BUDGET

  3. On the Rules page, assign Hierarchical Even for the Time operator. For the other dimensions, assign the Proportional operator.

  4. On the Status page, keep the default status of All Levels for all dimensions.

  5. Click Create to save the allocation step.

  6. Click Apply to save the Calculation Plan.

Generating and Validating the Allocation

To generate the allocation:

  1. Expand the Calculation Plans folder. Right-click BUDGET_PLAN and choose Execute Calculation Plan BUDGET_PLAN.

    The Maintenance Wizard opens, and BUDGET_PLAN is a selected target object.

  2. Click Finish.

    The build log is displayed when the Calculation Plan is done executing.

To view the allocation results, take these steps:

  1. Fully expand the UNITS_CUBE folder, right-click the ALLOC_SALES_BUDGET measure, and choose View Data ALLOC_SALES_BUDGET.

    The Measure Data Viewer opens. No data is displayed, because the top dimension levels provide the source data, not the allocated data.

  2. From the File menu, choose Query Builder.

    The Query Builder opens.

  3. On the Layout tab, switch Product and Customer. Click Help for instructions.

  4. On the Dimensions tab, set the status of all dimensions to the base level. You may wish to select just a few values from these lists. For Time, limit the months to 2004, since that it is only allocated year.

  5. Click OK to close the Query Builder.

Note:

Always follow an Allocation Step with an Aggregation Step.

Figure 9-11 shows a sample of the allocated data. The allocated data should be aggregated from these base levels to the top by an aggregation step.

Figure 9-11 Allocated Sales Budget Data

Screen capture of Measure Viewer with allocated data
Description of "Figure 9-11 Allocated Sales Budget Data"

Case Study: Allocating a Sales Forecast

"Case Study: Forecasting Sales for Global Enterprises" generates a four-month Sales forecast from August 2004 to December 2005. The forecast data is at the Month level for Time, and at the topmost level for Product, Customer, and Channel. An allocation step distributes the forecast data down to the base levels of these three dimensions.

Creating an Allocation Basis Measure

This example uses the Proportional method to distribute the values based on the sales performance for the previous year. The Proportional method uses another measure as the basis for the allocation. This example uses a calculated measure for sales values for the prior year as the basis measure. If you did not create Sales_PY for "Case Study: Allocating a Budget", you should do so now.

Figure 9-12 compares Prior Year Sales to Sales. The Prior Year Sales measure has data for the forecast periods, while the Sales measure does not.

Figure 9-12 Creating a Basis Measure for Allocating Forecast Data

Measure Data Viewer
Description of "Figure 9-12 Creating a Basis Measure for Allocating Forecast Data"

Creating the Allocate Sales Forecast Step

The forecast created the data only for a single level of each dimension. Only Time is populated at the base level. The data must be allocated to the base levels of the other dimensions before it can be aggregated by the OLAP engine.

To create an allocation step:

  1. On the General page of Sales Plan, click New Step, then select New Allocation Step.

    The Create Allocation Step dialog box opens.

  2. Complete the General page with these values:

    • Name: allocate_sales_forecast_step

    • Cube: UNITS_CUBE

    • Source Measure: SALES_FORECAST

    • Target Measure: SALES_FORECAST

    • Basis Measure: SALES_PY

  3. On the Rules page, select None for the Time operator. For the other dimensions, select Proportional.

  4. On the Status page, set the dimension status using conditions:

    • Time: Start with Month

      On the Members tab, verify that only months are listed.

    • Customer: Start with All Levels

      On the Members tab, verify that all members are listed.

    • Product: Start with Descendants of Total Product

      On the Members tab, verify that all members except Total Products are listed.

    • Channel: Start with All Levels

      On the Members tab, verify that all members are listed.

  5. Click Create to save the allocation step.

  6. Click Apply to save the Calculation Plan.

Generating and Validating the Allocation

Rerun the Calculation Plan, as described in "Generating and Validating the Allocation". Both the forecast step and the allocation step are executed.

To view the allocation results, use the Measure Viewer to see the data in the Sales Forecast measure. The allocation populated all levels of Product, Customer, and Channel.

Figure 9-13 compares the forecast data with the basis measure at the middle levels of the dimensions used in the allocation.

Figure 9-13 Forecast Data After Allocation

Measure Data Viewer with allocated forecast
Description of "Figure 9-13 Forecast Data After Allocation"