Equity Pickup
OneStream supports Equity Pickup calculations using three different properties located under the Entity’s settings all of which can vary by Scenario Type. These settings were designed to implement Equity Pickup using normal Business Rules and formulas.
See Entity Dimension in Cubes for definitions of each setting.
Equity Pickup Example
The Entity hierarchy example below illustrates how Equity Pickup works in OneStream and discusses how each Entity’s currency and Equity Pickup settings affect calculation and consolidation.
-
Clubs (USD)
-
Holding (EUR)
-
Houston (USD)
-
Carlsbad (USD)
-
Frankfurt (EUR)
In the example above, the formulas for Holding need to read calculated data from the other sibling Entities. Therefore, the Sibling Consolidation Pass property for Holding would be set to Pass 2 causing calculation to occur on all the other sibling Entities before the Holding Entity is calculated. This allows the formulas for Holding to correctly read calculated data from Houston, Carlsbad, and Frankfurt. For Entities not involved in Equity Pickup, the (Use Default), or Pass 1 settings for Sibling Consolidation Pass causes all sibling Entities to be calculated at the same time.
Holding is using a different local currency than its Parent Clubs, but only wants to read data using the EUR currency. In this situation, the Auto Translation Currencies setting for Houston and Carlsbad needs to be set to EUR in order to have them automatically translate to EUR when Clubs is consolidated. Normally, all the sibling Entities translate to the Parent Entity’s local currency, which in this case is USD, however this setting tells the engine to translate Houston and Carlsbad to EUR as well during the consolidation. Once the consolidation is complete, Holding’s formulas, which are calculated in Pass 2, can read data from E#Houston:C#EUR, E#Carlsbad:C#EUR, and E#Frankfurt:C#EUR.
Sibling Repeat Calculation Pass is designed for circular ownership and may not be used as often as the other Equity Pickup settings. If this is used, it causes the Entity’s calculation to be repeated after all the Sibling Calculation Passes have been completed. For example, if there was another Entity in the structure above named Holding2, it would be set to use a Sibling Calculation Pass of Pass 3. This would cause its normal calculation to occur after Holding and allow Holding2 to read calculated data from Holding. Holding could also use a Sibling Repeat Calculation Pass causing it to be recalculated. In that repeat calculation, Holding could then read calculated data from Holding2 resulting in circular ownership. When writing formulas, use api.Args.CalculateArgs.HasRepeatCalc and api.Args.CalculateArgs.IsRepeatCalc to determine if the engine is currently running the repeat calculation.