Today while creating fields for a custom entity in CRM 365, I found that every time I create a Money field, there’s another one that is created automatically with the same logical name but ending with “_base”.
Why this happens?
The reason of why this field is created is because, if an entity has a Money field, each record of this type will have their own currency so you can manage the money amounts as better works for you. Regardless of the currency that you set on each of those records, CRM has a base currency that is selected when creating the organization, this is also known as “CRM Base Currency”. “Base” fields will always reflect the amount that was set in the not “Base” field but doing the actual transaction to CRM Base Currency.
If the CRM Base currency is USD and the record currency is EUR, the “Base” field will take the amount set in the money field of the record(EUR) and then do the actual transaction from EUR to USD, so you have the totals on both EUR(Not Base) and USD(Base).
Base fields are always read only so you can’t do any update on the total amount set there, this is why is very important to know how they are populated.
Hope it helps.