Offset Handling for Custom Calculations and Allocations
When designing custom allocations for an Essbase aggregate storage (ASO) cube, understanding the principles of double-entry accounting will help you know the purpose of an offset as one of the optional allocation criteria.
In general ledger bookkeeping, an offsetting entry is a counterbalancing measure on the opposite side of the ledger from a transaction of equal value. In this document, an offsetting entry is referred to as an offset.
Specification of an offset is optional. An offset might be needed in case the sum of credits and the sum of debits are not equal. If the sum of credits and debits are not equal, the ledger is unbalanced. In such a case, an offset would serve to balance the ledger.
For example, a $100 credit in January may need a $100 offset added to the debit side of the ledger, so that the ledger can be balanced in preparation for a known upcoming expense of that amount.
An offset is a location you specify in the form of a tuple, to which Essbase writes a value offsetting the result of the custom calculation script.
In the following examples, assume the POV is Prod1, Prod2, AcctA, AcctB, Jan.
The following custom calculation script has a sum of 13.
mbr1 := 7;
mbr2 := -4;
mbr3 := 0;
mbr4 := 10;
Therefore, if an offset is required, it must also be 13. Assume that an offset is written to a member called “Offset_Member.”
Debit Credit
mbr1 7
mbr2 4
mbr3 0
mbr4 10
mbr_offset 13
Total 17 17
When an offset is used, credit and debit processing is reversed. The following calculation sequence occurs when an offset is used with credit and debit processing:
-
For the given POV, get the sum of results written by the calculation script (in this case, 13).
-
If the sum is positive, write it to the credit member in the target cube.
-
If the sum is negative, change it to a positive and write it to the debit member in the target cube.