1 2 3 Previous Next 37 Replies Latest reply on May 27, 2013 10:53 AM by user10394539

# Minority Interest calculation and consolidation

Hi people. i am new to HFM. I am kind of stuck with Minority Interest calculation and the consolidation of it. Now after looking at different posts on the minority interest calculation here , i am still confused if we could use the calculation expression for Minority Interest calculation within Sub Consolidate() or should we include it in Sub Calculate(). Please find below the script that i am working on.

SCRIPT :

Sub Consolidate()

Method=HS.Node.Method("")
PCon=HS.Node.PCon("")
POwn=HS.Node.POwn("")
vMIN=1-HS.Node.POwn("")
PMin=PCon-POwn
Dim strAccount,i

Set DataUnit=HS.OpenDataUnit("")
NumItems=DataUnit.GetNumItems
For i=0 to NumItems-1
Call DataUnit.GetItem(i,strAccount,ICP,Custom1,Custom2,Custom3,Custom4,Data)

If Method="Holding" Then
Call HS.Con("",PCon,"")
End If

If Method="Global" Then

If StrAccount = "281100" Then

Call HS.Con("A#281100",PMin,"PMin")

'Call HS.Con("A#281000",vMIN,"")

Else

Call HS.Con("",POwn,"")

End If
End If

'If HS.Account.IsConsolidated(strAccount) and Data0 Then
'If Data0 Then
'HS.Con "A#"&strAccount,POwn,""
'If StrAccount = "281100" Then
'HS.Con "",PMin,""
'End If
'End If
'End If

Next

End sub

Sub Calculate()

HS.EXP "A#281100 = A#CapitalStock - A#Investments"

End Sub

My Doubts :

1. Is the expression correct for Minority Interest calculation ?
2. If so can we use it in Sub Consolidate() ?
3. Should the Minority Interest consolidate to its parent using PMin ? If so kindly provide the appropriate expression.

Looking forward to some help. Thanks in advance.
• ###### 1. Re: Minority Interest calculation and consolidation
Hi,

1. Is the expression correct for Minority Interest calculation ?
You only present the rules file how to calculate in system. But there is nothing about business requirement. And I cannot say the rules is correct or not without understanding about your accounts.

2. If so can we use it in Sub Consolidate() ?
I think it should be in the Sub Consolidate() because it is a consolidation process.

3. Should the Minority Interest consolidate to its parent using PMin ? If so kindly provide the appropriate expression.
We should back to the first question what is your business requirement. PMin is a prcentage you input into system. I am not sure the precentage is the number for minority interest calculation.
• ###### 2. Re: Minority Interest calculation and consolidation
Hi James ,

Thanks for responding...

Capital Stock and Investments values are input fields. 281100 is the member representing minority interest. Already POwn is defined as 80% and PMIN as 20%. If we are calculating 281100 value as CapitalStock - Investments, den consolidation for minority is happening @ 80%. Rather if Minority interest is an input value ( commenting the sub calculate part and giving line item detail to minority interest member) , consolidation happens @ 20%. But our requirement is to calculate the minority interest value and consolidte it to 20%.

Hope you can help me out now.....

*****************************************

Sub Calculate()

HS.EXP "A#281100 = A#CapitalStock - A#Investments"

End Sub

Sub Consolidate()

Method=HS.Node.Method("")
PCon=HS.Node.PCon("")
POwn=HS.Node.POwn("")
vMIN=1-HS.Node.POwn("")
PMin=PCon-POwn
Dim strAccount,i

Set DataUnit=HS.OpenDataUnit("")
NumItems=DataUnit.GetNumItems
For i=0 to NumItems-1
Call DataUnit.GetItem(i,strAccount,ICP,Custom1,Custom2,Custom3,Custom4,Data)

If Method="Holding" Then
Call HS.Con("",PCon,"")
End If

If Method="Global" Then

If StrAccount = "281100" Then
Call HS.Con("A#281100",PMin,"")
Else
Call HS.Con("",POwn,"")
End If
End If

Next

End sub
• ###### 3. Re: Minority Interest calculation and consolidation
Hi,

I still need to understand more about your requirement. Would you mind we communicate through email?

Based on your rules, things happen like this.

281100 = CapitalStock - Investment

At consolidation proces (data populate from [Parent Total] to [Proportion])

If entity's consolidation method is Holding,

All account's number will multiply by PCON and populate to [Proportion].

If entity's consolidation method is Global,

281100 account's number will multiply by PMin and populate to [Proportion].

Other acconts' number will multiply by POwn and populate to [Proportion].

May I know which part does not work correctly with your requirement?

You can drop me email james.zyzhang@gmail.com

Thanks.

James Zhang
• ###### 4. Re: Minority Interest calculation and consolidation
"*2.If so can we use it in Sub Consolidate() ?*
*I think it should be in the Sub Consolidate() because it is a consolidation process*"

Could you kindly explain with the expression as to how minority interest calculation can be done in Sub Consolidate() ??? Thanks James.
• ###### 5. Re: Minority Interest calculation and consolidation
Hi,
Have you checked the result of the calculation HS.EXP "A#281100 = A#CapitalStock - A#Investments" at the <Entity Curr Total> level (before consolidation happens)? Is this the same number that you input in the line item detail? Since you don't change the Consolidate() code, the only reason that you get different results at [Proportion] can be that you have different values in A#281100 at the base level (<Entity Curr Total>).

Regards,
--Kostas
• ###### 6. Re: Minority Interest calculation and consolidation
Hi Kostas,

The result is showing fine at the <Entity Curr Total> level also. But consolidation is happening @ POwn (ie @ 80%) . If we avoid the calculate part and give input value to minority interest , consolidation happens @ 20%. But wat i require is calculate the value of 281100 and consolidate it @ 20% in [Proportion]
• ###### 7. Re: Minority Interest calculation and consolidation
Try to modify your code as follows:
Sub Calculate()
Dim vValueMember
vValueMember = HS.Value.Member()
If vValueMember = "<Entity Currency>" Or vValueMember = "<Entity Curr Adjs>" Then
HS.EXP "A#281100 = A#CapitalStock - A#Investments"
End If
End Sub
This prevents the rule from running at [Proportion]. Currently your code recalculates A#281100 after proportionalization from the already proportionalized at 80% A#CapitalStock and A#Investments accounts. These accounts have been proportionalized by 80%, therefore your result is 80% instead of 20%.

In fact HFM first proportionalizes to 20% (correctly) and then your calculation code runs again at [Proportion] and overwrites the result with the 80%.

Once you get it right, you also have to include other cases in your if statement. First, see in which Value members you want this to run (definitely not [Proportion]).

Hope this helps,
--Kostas
• ###### 8. Re: Minority Interest calculation and consolidation
Hi Kostas,

Thanks for your help . This pie of code is working perfectly . Thanks for guiding and throwing the light on wat is happening at proportionization.

*Once you get it right, you also have to include other cases in your if statement. First, see in which Value members you want this to run (definitely not [Proportion]).*

Can you please guide me on wat u meant by this statement?

Thanks a lot....
• ###### 9. Re: Minority Interest calculation and consolidation
Kostas,
This is working fine only if Minority interest is a base member . But in ideal case minority interest is a parent member and we have 1-2 children under it...In this case this script is not working fine...
• ###### 10. Re: Minority Interest calculation and consolidation
1. About the Value dimension: probably you have to see which other Value members you have to include in the if statement like below:
If vValueMember = "<Entity Currency>" Or vValueMember = "<Entity Curr Adjs>" Or Or HS.Value.IsTransCurAdj() Or vValueMember = "[Parent Adjs]" Then
It is critical to control at which Value members your code applies, since it might not be the case that it applies to all (like the [Proportion] case which we excluded in the code I sent to you)

2. About parent members: If the minority interest account is a parent account, then you should apply all the calculations to base accounts (its children). HFM rules cannot write the results of calculations in parent dimension members (of accounts, icp and custom dimensions). Parent dimension members are always getting values by aggregating children in HFM.

--Kostas
• ###### 11. Re: Minority Interest calculation and consolidation
Thanks Kostas ...This really helped
• ###### 12. Re: Minority Interest calculation and consolidation
Hi Kostas ,

If i rewite the code as below does it avoid the calculation of minority interest happening @ USD based on the below entity hierarchy? (US is the "Holding" company with POwn as 100% and NZ as "Global" with Pown as 80% and PMin as 20%)

USD
L__AU
L__NZ
L__US

Is this the correct method or can i achieve it using any other way?
***************************************************************

Sub Calculate()

Dim vValueMember,vEntityMemeber
vValueMember = HS.Value.Member()
vEntityMemeber = HS.Entity.Member()
If vValueMember = "NZ"
If vValueMember = "<Entity Currency>" Or vValueMember = "<Entity Curr Adjs>" Or HS.Value.IsTransCurAdj() Or vValueMember = "[Parent Adjs]" Then
HS.EXP "A#281100 = A#CapitalStock - A#Investments"
End If
End If
End Sub

Sub Consolidate()

Method=HS.Node.Method("")
PCon=HS.Node.PCon("")
POwn=HS.Node.POwn("")
vMIN=1-HS.Node.POwn("")
PMin=PCon-POwn
Dim strAccount,i

Set DataUnit=HS.OpenDataUnit("")
NumItems=DataUnit.GetNumItems
For i=0 to NumItems-1
Call DataUnit.GetItem(i,strAccount,ICP,Custom1,Custom2,Custom3,Custom4,Data)

If Method="Holding" Then
Call HS.Con("",PCon,"")
End If

If Method="Global" Then

If StrAccount = "281100" Then
Call HS.Con("A#281100",PMin,"")
Else
Call HS.Con("",POwn,"")
End If
End If

Next

End sub
• ###### 13. Re: Minority Interest calculation and consolidation
Hi,
If I got it correctly, you don't want the A#281100 calculation to happen for your holding company. There is a preferable way to do your consolidation that avoids involving the Calculate() altogether. So scrap your Calculate and write this Consolidate() instead:
Sub Consolidate()
Method=HS.Node.Method("")
PCon=HS.Node.PCon("")
POwn=HS.Node.POwn("")
vMIN=1-HS.Node.POwn("")
PMin=PCon-POwn
Dim strAccount,i

Set DataUnit=HS.OpenDataUnit("")
NumItems=DataUnit.GetNumItems
For i=0 to NumItems-1
Call DataUnit.GetItem(i,strAccount,ICP,Custom1,Custom2,Custom3,Custom4,Data)

If Method="Holding" Then
Call HS.Con("",PCon,"")
End If

If Method="Global" Then
If StrAccount = "CapitalStock" Then
Call HS.Con("",POwn,"")
Call HS.Con("A#281100",PMin,"")
ElseIf StrAccount = "Investments" Then
Call HS.Con("",POwn,"")
Call HS.Con("A#281100", (-1) * PMin,"")
Else
Call HS.Con("",POwn,"")
End If
End If
Next
End sub
With this code, the minority interest will calculate only for entities using the Global method.

I did not drive you to this solution immediately in order to avoid to confuse you, as well as because this does not address the issue of Calculation() running at many Value levels.

Regards,
--Kostas
• ###### 14. Re: Minority Interest calculation and consolidation
Hi Kostas,

I have commented the calculate part and tried with this consolidation part alone. Minority interest is not getting calculated with this code which is supposed to be CapitalStock - Investments and this shud happening only for NZ :( . And also the consolidation of already existing minority interest value is happening @ 80% and not 20%.
1 2 3 Previous Next