Multi-currency portfolio valuation testing checks that a bank calculates portfolio values accurately when holdings, cash balances or liabilities use different currencies. It verifies the prices, foreign exchange (FX) rates, valuation date, conversion direction, calculation rules and rounding used to produce a client’s reporting-currency total, with results traceable to source data.
Define the valuation rules and inputs
Before testing, document the portfolio’s reporting currency and the valuation policy for each asset type. The policy should identify the price source and applicable date, the FX rate source and timestamp, the rate’s quote convention, and the treatment of accrued income, fees, liabilities and pending transactions. Rules can vary by mandate, product and reporting purpose, so use approved requirements as the expected result.
Confirm the inputs independently of the screen or report under test. A useful test dataset records the position quantity, instrument currency, price and price date; cash balance and currency; FX pair, rate and timestamp; and any relevant accruals or adjustments. Include currencies that require rate inversion or triangulation if those routes are supported.
The calculation depends on valid prices and rates for the valuation date. Check how the system handles a missing rate, a rate outside its permitted age, a market holiday, or an unavailable price. The expected handling might be an approved prior rate, a warning, or a blocked valuation. Assert the specified behaviour and make sure a fallback is visible in the valuation evidence.
Test conversion and aggregation
For a simple cash position, conversion is direct once the quote convention is explicit. If a rate is expressed as units of the source currency per one unit of the reporting currency, divide the source amount by that rate. If it is expressed as reporting-currency units per one unit of source currency, multiply. Test the stored convention and the displayed convention to catch an inverted pair or a misleading label.
For securities, validate the instrument valuation in its own currency before conversion. A basic calculation may use quantity multiplied by unit price, followed by FX conversion. Bonds, derivatives and other instruments can require additional valuation rules, such as accrued interest, contract multipliers or model inputs. Keep those product-specific rules in scope where the portfolio includes them.
Aggregate converted positions, cash, income and liabilities according to the agreed policy. Check whether rounding occurs per position, per currency or only at the final total. Small rounding differences can accumulate across a portfolio, so compare at the defined precision and verify that displayed subtotals reconcile to the reported total.
Worked example
Assume a GBP-reporting portfolio has 10 shares priced at USD 100 each and USD cash of 200. The applicable rate is 1 GBP = 1.25 USD. The shares are worth USD 1,000, or GBP 800; the cash is worth USD 200, or GBP 160. If the portfolio also holds EUR 500 and the applicable rate is GBP 0.85 per EUR, that cash is worth GBP 425. With no other positions, accruals or liabilities, the expected total is GBP 1,385.
A test should assert each converted component as well as the total. This makes a failure easier to diagnose: a wrong total may result from an incorrect holding, an inverted rate, a stale input or aggregation logic. Keep the rates and calculation precision in the test data rather than relying on values copied from the application under test.
Verify the complete reporting path
Run the same controlled portfolio through the valuation service and the client-facing outputs in scope, such as a portfolio view, valuation API and statement. Confirm that each shows the same valuation date, reporting currency, total and relevant breakdowns. Where systems receive data from market-data providers, custodians or an investment book of record, verify that the transmitted price, position and FX fields retain their meaning and timestamps.
Include negative and boundary cases: a missing FX pair, a zero or invalid rate, an expired price, a rate that must be inverted, a very small position, and a negative cash balance or liability where supported. Check for silent omission, duplicate conversion, inconsistent fallback behaviour and premature rounding. Preserve the input snapshot, expected calculation, output and data lineage as test evidence so that a result can be reproduced after a feed or configuration change.
Valuation FX and transaction FX serve different purposes. A trade may use its execution rate for booking, while a later portfolio valuation uses the rate selected by the valuation policy. Test each against its own requirement to avoid treating a valid difference as a valuation defect.
Frequently asked questions
How should a valuation handle a currency market holiday?
Apply the bank’s approved valuation policy for non-trading days, such as using an eligible prior market close or marking the valuation as unavailable. Test the date selection, any staleness indicator and the audit trail for the rate used.
How should pending trades be treated in a portfolio valuation?
Follow the portfolio’s accounting and valuation policy for trade-date or settlement-date recognition. Test pending buys and sells around the valuation cut-off, checking that positions and cash reflect the same recognition rule.
How do you test an FX-hedged portfolio?
Test the underlying assets and each hedge instrument using their applicable valuation methods, then verify how the system presents the combined value and currency exposure. Include cases where the hedge is partial or its valuation date differs from an underlying asset’s date.
Why can a bank’s portfolio value differ from a custodian’s value?
The two values may use different price sources, FX cut-offs, position snapshots, accrual rules or corporate action processing. Reconcile those inputs and policies first, then classify any remaining unexplained difference for investigation.
