How do you handle currency conversions?
There are always two currencies in play: 1) the currency that the subscription is billed in, and 2) the currency that all of your metrics are displayed in, in your ProfitWell dashboard.
We’ll refer to these as the native currency and display currency, respectively.
To be able to handle subscriptions in many different currencies and yet display all of your metrics in one currency, we do two currency conversions: first from the native currency to USD, and second from USD to the display currency. USD is therefore a sort of lingua franca for different currencies.
For the second conversion (from USD to the display currency) we use the exchange date of the last "event" for a user in the given month. As a simple example, if the user is on a monthly subscription that renews on the 15th of each month, and we're calculating his MRR in April, we'll use the exchange rate of April 15th.
For the first conversion (from the native currency to USD) we currently use the start date of the given Rate Plan Charge segment. For example, suppose a customer is on a kr 100 / month subscription from 2017-01-01 to 2017-03-01, at which point they upgrade to a kr 110 / month subscription. We would calculate the USD values of the subscription as follows:
- 2017-01-01: kr 100 / exchange_rate(dkk->usd on 2017-01-01) = 100 / 7.064195 = $14.16.
- 2017-02-01: same as above ($14.16), because we're still on the old Rate Plan Charge segment
- 2017-03-01: kr 110 / exchange_rate(dkk->usd on 2017-03-01) = 100 / 7.023406 = $14.24.
- 2017-04-01: same as above ($14.24), because we're still on the old Rate Plan Charge segment