3 Replies Latest reply: Aug 19, 2014 2:48 PM by CWetterwald RSS

    HFM - different hist rates for individual legal entities

    jrodgers

      Hi all

       

      Currently we use a few different historic rates for certain BS accounts, e.g. retained earnings, share cap etc. This is done by flagging the UDAs of the entity/account dimensions with the relevant FXType and HistRate accounts which are then referenced in the translation rules. We only have a few entities and acccounts so this works ok for us.

       

      However w now have a new requirement to be able to see 18 different historic rates for certain foreign entities. Does anyone else have to do something similar? I do not want to explode the amount of UDAs we have if possible.

       

      I read in the rules guide that exchange rates 'can be entered into the rate accounts at an individual etity level as well as the [None] entity'.

       

      How is this possible? When I select anything other than [None] I get the orange invalid cells..

       

      Thanks

      JR

        • 1. Re: HFM - different hist rates for individual legal entities
          Thanos A

          Hi there,

           

          Try to post the rates at <Entity Currency> of the specific entities…

           

          Regards,

           

          Thanos

          • 2. Re: HFM - different hist rates for individual legal entities
            user10767728

            Hi,

             

            Some food for thought for you... I remember doing these kind of things using members in a custom-dimenion. Each change in equity is tracked in an Entity/Custom cell which allows then storing a historical rate per event. So each one of your 18 events would be tracked on its own custom dimension member storing also a rate that could be used in the Sub Translate() rules.

             

            Hope this helps!

             

            -- Lauri

            • 3. Re: HFM - different hist rates for individual legal entities
              CWetterwald

              You can store a rate per account using a custom dimension like any other supplemental information and then you can use it for the currency conversion. Use a custom dimension to split the input for the needed balance sheet accounts in local amount (C1#[none]) and parent rate(s) (C1#HistUSDRate, C1#HistEurRate).

               

              E.g. A#12345.C1#[None] = 100, A#12345.C1#HistUSDRate = 0.9 and A#12345.C1#HistEurRate = 1.2

               

              During the translation you just use the rates stored in the customs and you are done (Of cause you need to take care about CTA).

               

              if HS.Value.currency = "USD" then

                   HS.Trans "A#12345.C1#[None]","","A#12345.C1#HistUSDRate",""

              elseif HS.Value.currency = "Eur" then

                   HS.Trans "A#12345.C1#[None]","","A#12345.C1#HistEurRate",""

              end if

               

               

              But I would use the concept of foreign currency override instead of individual historical rates, it is much easier to maintain and to validate. Use a custom dimension to split the input for the needed balance sheet accounts in local value (C1#[none]) and parent rate(s) values (C1#USD, C1#Eur).

               

              E.g. A#12345.C1#[None] = 100, A#12345.C1#USD = 90 and A#12345.C1#Eur = 120

               

              During the translation you just copy the amount over and you are done (Of cause you need to take care about CTA as well).

               

              HS.trans "C1#USD", "", 1, "" 'saves the USD override amount

              HS.trans "C1#Eur", "", 1, "" ' saves the Eur override amount

               

              if HS.Value.currency = "USD" then

                   HS.Trans "A#12345.C1#[None]","A#12345.C1#USD",1,""

              elseif HS.Value.currency = "Eur" then

                   HS.Trans "A#12345.C1#[None]","A#12345.C1#Eur",1,""

              end if

               

              If you need the rates, you still can calculate them using a HS.exp function.

               

              Of cause these are simplistic incomplete samples, but that's how you can do it.