Foreign currency translation error?
Source: Migrated from Champions
I asked this question from OneStream staff at the Splash conference and OneStream support. I thought perhaps someone in this group has run into the same issue:
The standard that appears to be used for calculating FX does not appear to be correct. It appears from the snippet that FX is calculating taking the month to date amount X month end closing rate - month to date amount X month average rate. From the Flow FX (Calculated) snippet:
If (api.Cons.IsCurrency() And Not api.Cons.IsLocalCurrencyforEntity()) Then
Dim timeId As Integer = api.Pov.Time.MemberPk.MemberId Dim rateTypeRev As FxRateType = api.FxRates.GetFxRateTypeForRevenueExp() Dim rateTypeClo As FxRateType = api.FxRates.GetFxRateTypeForAssetLiability() Dim closingRate As Decimal = api.FxRates.GetCalculatedFxRate(rateTypeClo,timeId) Dim averageRate As Decimal = api.FxRates.GetCalculatedFxRate(rateTypeRev,timeId) 'Calculate FX activity for current movement between Average and Closing Rate api.data.calculate("F#FX_CurMvmt= (F#Activity:C#Local:V#PER * " & api.Data.DecimalToText(closingRate) & ") - (F#Activity:C#Local:V#PER * " & api.Data.DecimalToText(averageRate) & ")")
End If
I think this is wrong because we have an account that does not change other than amortization expense. The only change in the account on the cash flow should be amortization expense and FX, but what we have is amortization expense, FX and other.
It seems to me that the formula should be: Year to date amount X month end closing rate - Year to date amount X YTD average rate.
How do you calculate a YTD average rate in OneStream?
If there is a way to calculate a YTD average rate then I think this could be fixed.