For CSP (and PAYG) we are getting usage information for the different assets/resources from Microsoft API. We also have the partner and PAYG rate card information (how much each asset/resource cost for 1 unit/hour for all units or in steps, for example the first 100 units are in rate X the next 100 units are in rate Y etc.). The rate card comes in all the currencies that Microsoft supports so there is no currency conversion is needed (we just take the price from the API call).
For PAYG customers, we allow them to enter which currency they want the bill in. Based on the currency they choose, we calculate the total cost - going over the bill line by line and adding extended cost for each line which is usage * rate card cost base on the currency.
CHT doesn’t support conversions, so for CSP we don’t have a way to convert the Partner customers report to be in the chosen currency. CloudHealth currently only supports USD, so similar to PAYG we take the usage and we multiply it by the partner cost from the rate card in USD.