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

    Minority Interest calculation and consolidation

    user10394539
      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
          James.zhang
          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
            user10394539
            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
              James.zhang
              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
                user10394539
                "*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
                  KostasN.
                  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
                    user10394539
                    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
                      KostasN.
                      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
                        user10394539
                        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
                          user10394539
                          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
                            KostasN.
                            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
                              user10394539
                              Thanks Kostas ...This really helped
                              • 12. Re: Minority Interest calculation and consolidation
                                user10394539
                                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
                                  KostasN.
                                  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
                                    user10394539
                                    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