Background decoration

Menu

Docs
Core Concepts

Core Concepts

Market data and FX rates.


Supported Securities

Wealthfolio uses Universal Symbol objects, which can be identified by either a ticker or a Universal Symbol ID. When you input a ticker, the system returns the first matching result. We primarily adhere to the Yahoo Finance ticker format for consistency and accuracy.

Here are some examples to illustrate the ticker format:

  • For stocks traded on the Toronto Stock Exchange (TSX), append .TO to the ticker. For instance, RY.TO for Royal Bank of Canada.
  • For stocks traded on the London Stock Exchange (LSE), use .L at the end. For example, HSBA.L for HSBC Holdings.
  • Stocks traded on NASDAQ or NYSE typically don’t require a suffix. For example, AAPL for Apple Inc.

To ensure the most accurate results, always use the ticker with the appropriate suffix for the exchange where the security is traded. For comprehensive information about market coverage and potential data delays, please consult the Yahoo Finance Market Coverage documentation.

Custom Assets

You can also record custom assets without an automatic ticker lookup. This is useful for tracking assets where market data is not automatically available or for assets you wish to price manually. For such custom assets, you will need to regularly update their price information through the asset’s page, typically in a “Quote” or “Pricing” section.

Symbol lookup

  1. Exact ticker (AAPL, BTC-USD).
  2. Ticker + suffix (RY.TO).
  3. First Yahoo Finance hit.

FX rates

  • Pulled with the other market data from the default market data provider.
  • View/edit and add manual rates via Settings→General→Exchange Rates.
  • Manual rates you define take precedence over automatically fetched market data for the specified currency pairs and will be used by the system until you modify or remove them.

Levels of Currency

The application handles currencies at four distinct levels to provide accurate and flexible financial tracking:

  1. Base Currency: This is the primary currency for your entire portfolio. All aggregated reports and overall wealth summaries are presented in this currency. You set this once, typically when you first set up the application.
  2. Account Currency: Each account (e.g., a specific bank account, brokerage account) can have its own designated currency. This is the currency in which the account itself is denominated. For example, you might have a USD-denominated brokerage account and a EUR-denominated bank account.
  3. Asset/Holding Currency: This refers to the currency in which a specific asset or holding is traded or valued. For instance, if you own shares of a company listed on the Tokyo Stock Exchange, the asset currency would likely be JPY.
  4. Activity Currency: This is the currency used for a specific transaction or activity, such as a buy/sell order, dividend payment, or fee. For example, if you buy US stocks using your CAD bank account, the activity of purchasing might involve a CAD to USD conversion, and the activity currency for the purchase itself would be USD.

The system uses the FX rates to convert between these different currency levels as needed for calculations, reporting, and displaying values consistently.

Handling Specific Currency Units (e.g., Pence/GBX)

You can leverage manual FX rates to address specific currency unit representations, such as those for UK equities. For instance, market data from sources like Yahoo Finance often provides prices for securities traded on the London Stock Exchange (LSE) in pence (GBp or GBX, where GBX is the official currency code for Penny Sterling) rather than pounds (GBP).

To ensure correct valuation in your desired currency (e.g., GBP), you can introduce a manual exchange rate. Navigate to Settings→General→Exchange Rates and define a rate such as:

  • From GBp to GBP with a rate of 0.01 (since 100 GBp = 1 GBP).
  • Alternatively, from GBP to GBp with a rate of 100.

Once this manual rate is set, the system will apply it to all relevant conversions, ensuring that security prices quoted in pence are accurately reflected in pounds. This mechanism helps resolve common discrepancies, as detailed in community discussions (see GitHub Issue #107 and GitHub Issue #134).

The currency conversion processes exchange rates with the following logic:

  • Historical Data: The system stores and utilizes historical exchange rates.
  • Daily Rate Selection: For a given currency pair (e.g., USD/EUR) on a specific day, if multiple rate entries exist, the system selects the rate with the latest timestamp of that day. This ensures the most up-to-date daily rate is used.
  • Automatic Rate Derivation:
    • Inverse Rates: If a rate such as USD to EUR is provided, the converter automatically calculates and makes available the inverse rate (EUR to USD).
    • Transitive Rates: The system can derive rates through a common currency. For instance, if rates for USD to EUR and EUR to GBP are known, the rate for USD to GBP can be automatically calculated.
    • Identity Rates: Converting a currency to itself (e.g., CAD to CAD) is treated as a 1:1 conversion.
  • Rate Lookup Options:
    • Specific Date Lookup: You can request an exchange rate for a precise date.
    • Nearest Date Lookup: If an exchange rate is not available for the exact specified date, the system can find and use the rate from the closest available date. It considers both past and future dates relative to your request and selects the one chronologically nearest.
  • Currency Code Handling: Currency codes (e.g., “USD”, “cad”, “Eur”) are processed while preserving their original casing for lookups and storage.