This article explains how ChartMogul handles accounts with subscription plans billed in multiple currencies.
If ChartMogul comes across a customer invoice that is billed in a different currency, it will automatically convert the MRR amount to your account's primary currency. The exchange rate used is the 'closing rate' from the night of the "event date" of the invoice. For example, if you submit a subscription for September 1 - 30, with a transaction payment date of September 10, the rate on September 1 is used. This is because ChartMogul allows subscriptions without transactions.
ChartMogul uses a database of historic exchange rates for each day going back over 10 years which is updated daily with the latest rates using openexchangerates.org. For real-time updates, ChartMogul uses yesterday’s closing rate. At midnight when there is a closing rate available for today, ChartMogul switches all MRR activity to using the correct closing rate.
As exchange rates continuously change, this will mean the MRR of customers subscribed to a plan not billed in your Primary currency will appear to fluctuate slightly on your graphs from month to month. The MRR generated for each month will be based on the conversation rate of the day of the actual transaction. For the purpose of not creating confusing expansion or contraction email notifications and activities in the data tables, ChartMogul ignores these usually tiny changes in MRR arising from currency fluctuations. Rather, these fluctuations are captured in a separate row in the chart data table.
The currency conversation rate for manual customers currently stays at the creation time rate and doesn't adjust to the billing interval when the invoice should be charged. The only way to change this would be to modify the starting date.
Further reading on how we approached building support for multiple currencies can be found in this blog post.