Currency Exchange

Graphene has support for currency exchange, letting you input and analyze data in different currencies.

Base Currency

The first thing to understand when working with currencies in Graphene is that all monetary values are given a currency, even if it is not explicitly stated. When a currency is not explicitly stated, the concept of the base currency is used.

The base currency can be interpreted and used however you wish. It is recommended that your usage of it within the system should remain consistent. For most users of Graphene, the ideal choice will be your most common reporting currency, such as USD. This effectively means that USD will be assumed (by both users and the system itself) any time a currency is not specified.

Exchange Rate Table

To begin, you will need an exchange rate table uploaded to your AWS S3 bucket. The exchange rate table should be a .csv file that looks like this:

currency,rate
CAD,3.14159265
XBT,2000000
GBP,1.61803399

The first line must be a header that defines the order of the columns. Currently, only currency and rate are supported.

After that, each line should define, at the least, a currency and a rate.

The currency can be any string. Keep in mind, however, the name here will be used as an identifier in any structures that reference it. A currency code is an ideal option.

The rate must be a number. rate is defined relative to a base currency, which is used by any structures which output currency values and do not have a currency specified. Specifically, rate defines the number of currency that are equal to 1 unit of the base currency. In other words, it is the number by which you would multiply the base currency to get the equivalent value of the currency, or the exchange rate.

Define the Rate Table Used for a Request

When making the request, add the field rate_table_uri = "s3://<your-bucket>/uploads/fx_tables/myratesfile.csv" to your request, for example, the NetworkAnalysisStreamRequest.

Supported requests are:

Reporting in an Alternative Currency

To report results in an alternative currency, set the currency field as part of your descriptor when making the request. For example, to receive a ledger export in GBP, ensure it is part of your rate table, and add the field currency = "GBP" to the LedgerExportDescriptor. Make sure to provide the S3 location for the rate table you wish to use at the top level of the request.

Supported descriptors are:

Defining Structures in an Alternative Currency

If using the Analyze Re provided templates, structures that support different currencies will have a currency field which can be set. When creating a node that uses such a schema, setting the currency field will adjust all currency related fields in the structure accordingly (ie. attachment, limit, etc). When creating nodes with a currency field, Graphene requires that any requests that use such a node provide a rate table that defines an exchange rate for the currency.

Supported templates are:

  • AggXL

  • CatXL

  • LoadMultipleFiles

  • LossSet

  • OccurrenceCoverage

  • QuotaShare

  • ScaledLoad