Transactions and transaction types

A transaction registers a change to the quantity and/or cost of an instrument held in a transaction portfolio, for example the purchase of a number of BP shares at a particular price, or the exchange of a quantity of GBP for USD at a particular rate.

LUSID is a transaction-based system. It does not maintain a static record of your holdings in a portfolio but rather generates them on demand from the stored history of transactions, replayed in date order.

Note the following:

  • A transaction you create is known as an input transaction, to distinguish it from an output transaction automatically generated or processed by LUSID. More information.

  • A transaction must resolve to a mastered instrument so LUSID can update its calculation of your holding in that instrument in the portfolio.

  • A transaction must resolve to a known transaction type that determines the precise economic impact on holdings. The type is very likely to impact your holding in the transacted instrument, and possibly holdings in other instruments too (for example, currency holdings).

  • By default, LUSID operates a ‘data load first’ policy, so transactions are upserted and resolution failures must be handled as a post-process step. You can increase the level of validation to reject transactions that do not resolve to instruments and to transaction types. More information.

  • A transaction has a minimal set of data fields. You can add custom properties to extend the data model and store additional information, for example the name of the executing broker or the code of the exchange.

  • You can add certain system properties to a transaction to record additional information that LUSID can then use in business operations, for example an exchange rate for a foreign currency transaction so LUSID can maintain the cost basis of the portfolio.

  • You can strategy tag a transaction with one or more of the sub-holding keys (SHKs) registered with the portfolio, to divide your holding in the underlying instrument. By default, LUSID reports one holding per underlying instrument, with all transactions in that instrument contributing to the calculation.

You can see the stored history of all transactions for a portfolio in the LUSID web app by navigating to Dashboard > Transactions:

Alternatively, you can interact with transactions programmatically:

Explanation

Tutorials

Reference

How-to guides