A holding is your position in an underlying instrument held in a transaction portfolio.
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.
This process is controlled using transaction types. Every transaction in a portfolio must resolve to a transaction type that defines the precise economic impact; that is, the effect on your holding in the underlying instrument, and also potentially on holdings in other instruments in the portfolio (such as currency holdings).
For example, the built-in Buy
transaction type provided with LUSID is intended to signal a purchase of an instrument such as an equity or bond. When you generate a holdings report, for every transaction with a transaction type of Buy
, LUSID automatically:
Increases your holding in the underlying instrument (ie. BP) by the number of units purchased in the transaction.
Decreases your holding in the transaction currency (ie. GBP) by the total consideration.
Note: LUSID reports holdings differently on the trade date vs. the settlement date. A holding has a holding type that indicates its state.
By default, LUSID reports holdings at the instrument level; that is, one holding per instrument held in the portfolio, and one holding per currency. You can change this:
Using sub-holding keys (SHKs). For example, you could divide your overall position in BP into two holdings representing different investment strategies.
Using tax lots, to segregate and expand instrument holdings into separate tax lots according to a particular liquidation strategy.
You can combine these mechanisms using custodian accounts.
Providing you have appropriate permissions, you can generate a holdings report for a transaction portfolio from the Holdings dashboard in the LUSID web app:
Alternatively, you can interact with holdings programmatically:
Using appropriate API endpoints in the Transaction Portfolios collection.
Using the equivalent methods in the LUSID SDK.
If you have a Luminesce license, using dedicated read and write providers.
Explanation: See the big picture
Reference: Understand concepts and implications
How-to guides: Get something done