A transaction is an economic change to a portfolio. 

Transactions can be one sided e.g. cash inflow, or two sided for example an equity trade purchasing stock and settling cash.

This model is intended to be flexible and customisable by the client. A client configures transaction types in LUSID which maps from the fields and properties on the Transaction onto a set of movements which represent the economic changes.

A minimal set of mandatory transaction fields have been defined for each domain type. The transaction data model can be extended by adding additional properties to a transaction.

Field Type Description
TransactionId string The unique identifier for the transaction.
Type string The type of the transaction e.g. 'Buy', 'Sell'. The transaction type should have been pre-configured via the System Configuration API endpoint. If it hasn't been pre-configured the transaction will still be updated or inserted however you will be unable to generate the resultant holdings for the portfolio that contains this transaction as LUSID does not know how to process it.
InstrumentIdentifiers map A set of instrument identifiers to use to resolve the transaction to a unique instrument.
TransactionDate dateorcutlabel The date of the transaction.
SettlementDate dateorcutlabel The settlement date of the transaction.
Units decimal The number of units transacted in the associated instrument.
TransactionPrice transactionprice The price for each unit of the transacted instrument in the transaction currency.
TotalConsideration currencyandamount The total value of the transaction in the settlement currency.
ExchangeRate decimal The exchange rate between the transaction and settlement currency. For example if the transaction currency is in USD and the settlement currency is in GBP this this the USD/GBP rate.
TransactionCurrency currency The transaction currency.
Properties map Set of unique transaction properties and associated values to store with the transaction. Each property must be from the 'Transaction' domain.
CounterpartyId string The identifier for the counterparty of the transaction.
Source string The source of the transaction. This is used to look up the appropriate transaction group set in the transaction type configuration.

From these fields, the following values can be calculated

  • Transaction value in Transaction currency: TotalConsideration / ExchangeRate
  • Transaction value in Portfolio currency: Transaction value in Transaction currency * TradeToPortfolioRate

LUSID comes pre-configured with a number of default transaction types. These are intended to cover a standard usage of LUSID, and can also be used as a template for implementing your own transaction type schemes. 

Example transactions

A common purchase example

Three example transactions are shown in the table below.

They represent a purchase of USD denominated IBM shares within a Sterling denominated portfolio.

  • The first two transactions are for separate buy and fx trades
    • Buying 500 IBM shares for $71,480.00
    • A spot foreign exchange conversion to fund the IBM purchase. (Buy $71,480.00 for £54,846.60)
  • The third transaction is an alternate version of the above trades. Buying 500 IBM shares and settling directly in Sterling.
Column Buy Trade Fx Trade Buy Trade with foreign Settlement
TransactionId FBN00001 FBN00002 FBN00003
Type Buy FxBuy Buy
InstrumentIdentifiers { "figi", "BBG000BLNNH6" } { "CCY", "CCY_USD" } { "figi", "BBG000BLNNH6" }
TransactionDate 2018-08-02 2018-08-02 2018-08-02
SettlementDate 2018-08-06 2018-08-06 2018-08-06
Units 500 71480 500
TransactionPrice 142.96 1 142.96
TradeCurrency USD USD USD
ExchangeRate 1 0.7673 0.7673
TotalConsideration.Amount 71480.00 54846.60 54846.60
TotalConsideration.Currency USD GBP GBP
Trade/default/TradeToPortfolioRate* 0.7673 0.7673 0.7673

[* This is a property field]

A Forward FX Example

LUSID has a flexible transaction modelling system, meaning there are a number of different ways of modelling forward fx trades.

The default LUSID transaction types are FwdFxBuy and FwdFxSell. Using these transaction types, LUSID will generate two holdings for each Forward FX trade, one for each currency in the trade.

An example Forward Fx trade to sell GBP for USD in a JPY-denominated portfolio is shown below:

Column Forward 'Sell' Trade Notes
TransactionId FBN00004  
Type FwdFxSell  
InstrumentIdentifiers { "Instrument/default/Currency", "GBP" }  
TransactionDate 2018-08-02  
SettlementDate 2019-02-06 Six month forward
Units 10000.00 Units of GBP
TransactionPrice 1  
TradeCurrency GBP Currency being sold
ExchangeRate 1.3142 Agreed rate between GBP and USD
TotalConsideration.Amount 13142.00 Amount in the settlement currency, USD
TotalConsideration.Currency USD Settlement currency
Trade/default/TradeToPortfolioRate 142.88 Rate between trade currency, GBP and portfolio base currency, JPY

Please note that exactly the same economic behaviour could be modelled using the FwdFxBuy Transaction Type with the amounts and rates reversed.

Technical Specifications

You can find further details on the mandatory transaction fields and see how to upsert them into your portfolios in our technical documentation.