A movement is a component of a transaction type. It defines the economic impact of all transactions belonging to that type on holdings.
A transaction type must have at least one movement, and can have two or more. For example, the built-in Buy
transaction type provided with LUSID—intended to signal a purchase of an instrument such as an equity or bond—has two movements. For each transaction upserted to a portfolio with a transaction type of Buy
, LUSID automatically:
- Increases the quantity of your holding in the underlying instrument (ie. BP or MSFT) by the number of units purchased.
- Decreases the core cash balance in the transaction currency (ie. GBP or USD) by the total consideration.
Understand how LUSID uses transaction types to generate holdings.
A movement has the following data fields:
Data field | Status | Explanation | ||||
name | Optional | Specifies a name for the movement. | ||||
movementTypes | Mandatory | One of the built-in movement types controlling how and when holdings are updated. | ||||
direction | Mandatory | Controls whether the change is an increase or decrease. Allowed values are If transactions have unsigned units and amounts then | ||||
side | Mandatory | A side is a plug-and-play component that determines which holdings are impacted and what attributes of transactions contribute to the change. Allowed values are either the built-in sides provided with LUSID (currently | ||||
properties | Optional | This can be any number of:
| ||||
mappings | Optional | Allocates one or more sub-holding keys (SHKs) to override or supplement strategy tags applied directly to transactions.
Specify a 3-stage
For an example, see this tutorial on breaking out broker commission as a separate cash holding. | ||||
movementOptions | Optional | A comma-separated list of options to configure the movement. The following are available:
|