How do you handle currency conversions?

Updated 9 months ago by Neel Desai

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:

  1. 2017-01-01: kr 100 / exchange_rate(dkk->usd on 2017-01-01) = 100 / 7.064195 = $14.16.
  2. 2017-02-01: same as above ($14.16), because we're still on the old Rate Plan Charge segment (Note: This is incorrect behavior, and we will need to change it)
  3. 2017-03-01: kr 110 / exchange_rate(dkk->usd on 2017-03-01) = 100 / 7.023406 = $14.24.
  4. 2017-04-01: same as above ($14.24), because we're still on the old Rate Plan Charge segmnent (Again, this is wrong).

As I noted above, the fact that we don't calculate a new exchange rate for a subscription that bills monthly unless the plan changes (through an upgrade or downgrade) is incorrect. We ought to recalculate the USD value of the subscription every month, provided the subscription is billed monthly. If the subscription were billed annually, the MRR for the subscription should change every year. 

We hope to fix this within the next couple of weeks.


How Did We Do?