Forum Discussion

Clarke_Hair's avatar
Clarke_Hair
Contributor
3 years ago

IC Elimination and USD Overrides

Our Currency Override formula in the Flow Dim (EndBal_Input) has been working great, no issues. We have been using IC Elim's on all of our Balance Sheet accounts except Equity/Investments.  All of our E/I accounts are Currency overrides.  We turned this IC on in January and are now noticing that the Elim amt is the FX calc'ed value and not the Currency Override value.  Thus not zeroing out at O#:Top.  Not sure how to adjust the O#Elimination member at the parent level for IC members.  Any suggestions on how I might go about fixing.  Not sure if I need to include a fourmla in the Flow Dim to handle different Origins or if it is handled elsewhere.  Just looking for ideas to think about.

In my example below you can see the Elim amount is using the Closing FX rate and not the Fixed USD amt or rate.

 

Clarke

 

  • Does anybody have Intercompany Accounts that are Eliminated.  Would love to chat on how they are handling.  Still trying to work this issue out and right now the answer from OS is not going to pass our Audit.  This is really throwing off our Investments and Equity section when we have to report our Segments in USD (Actually same issue for our EAAA entity as it has APAC (USD) as a child).  Elimination Origin does not show the correct Amt when in a reporting currency for a Currency override account.

  • erin_c's avatar
    erin_c
    New Contributor II

    I know this is an old post but curious if you ever figured this out.  Also, if you don't mind me asking, how is your endbal_input setup to handle all overrides?  I am trying to do this and am running into issues.  Thanks

  • There is a big difference between Currency (what I Statutory Currency) and Auto Translation Currencies (what I call Reporting Currency).  This was the mistake we made.  We had an Entity structure where we wanted to show our European entity (base - EUR) in USD and have the elimination/override work.  The underlying process for reporting currency conversion would not take into account our overrides, thus the issue. 

    My understanding of the explanation was that for Reporting Currency, it just takes the base currency at parent level and converts to new currency at the FX rate listed.  Your override value never comes into play.  another way of stating is it consolidates in base currency to parent and then converts.  This was way the Elimination value never matched the Import value.  Import got converted via the rule and Elim value was just the local value @ FX rate. 

    Our fix, since our goal was to report in USD all segments, was to create a full structure where all parents were USD.  When the parent is in USD and the child in EUR, the consolidation would take into account the override value for USD and store it.  Never needing to do any conversion.

    So we have two main Statutory Entity rollups.  One in local currency so each region can report in their required currency and then one in USD so that we can report all regions/segments in USD.  They only tie at the top level for those accounts that have currency overrides.

    Here is the code we use in EndBal_Input (FormulaPass2).  Accounts are marked in Text2 field if they can have an override.

    If api.Cons.IsForeignCurrencyforEntity() Then    
    If api.Pov.Cons.Name.XFEqualsIgnoreCase("USD") Then
     
    api.Data.Calculate("F#EndBal_Input:O#Import = F#Hist_USD_Override:C#Local:O#BeforeElim", "A#Root.base.where(Text2 = OVD)")
    api.Data.Calculate("F#EndBal_Input:O#Forms = F#Hist_USD_Override:C#Local:O#Forms * 0", "A#Root.base.where(Text2 = OVD)")
    api.Data.Calculate("F#EndBal_Input:O#AdjInput = F#Endbal_Input:C#USD:O#Adjustments * -1", "A#Root.base.where(Text2 = OVD)")
    End If
     
    If api.Pov.Cons.Name.XFEqualsIgnoreCase("EUR") Then
    api.Data.Calculate("F#EndBal_Input:O#Import = F#Hist_EUR_Override:C#Local:O#BeforeElim", "A#Root.base.where(Text2 = OVD)")
    api.Data.Calculate("F#EndBal_Input:O#Forms = F#Hist_EUR_Override:C#Local:O#Forms*0", "A#Root.base.where(Text2 = OVD)")
    api.Data.Calculate("F#EndBal_Input:O#AdjInput = F#Endbal_Input:C#EUR:O#Adjustments * -1", "A#Root.base.where(Text2 = OVD)")
    End If
     
    Hope this helps.  Once I understood how the calc was happening between the two types of currency reporting and the Elim value, it made sense for us to create the second Entity structure.  Starting in the next year, this new structure was correct at all levels for USD.

     

    • erin_c's avatar
      erin_c
      New Contributor II

      Thank you for the response.  I will review this with the consultant to see if it makes sense for us too.  I'm just trying to get equity to work as I have multi-level consolidations as well (SEK/EUR/USD) So no issues having 2 hierarchies?  So the 'Local' one does not work at all in USD I assume?  

      How do you handle Journals that need overrides and how do the movements in the equity roll forward pull the correct USD?