A movement has a movement type that controls how it is categorised and when it is applied.

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:

  • The first has a movement type of StockMovement to update the number of units of the target instrument holding (ie. BP) on the transaction date and the number of settled units on the transaction date.

  • The second has a movement type of CashCommitment to create a separate, temporary cash holding on the transaction date, and to update the main cash holding (ie. GBP) on the settlement date. The temporary holding reflects the commitment to settling the transaction.

At the time of writing, the following movement types are available:

Movement type

Effect on holding on transaction date

Effect on holding on settlement date

StockMovement

Updates the number of units in the target instrument holding (with a holding type of P for Position).

Updates the number of settled units.

CashCommitment

Creates a temporary cash holding of type C (for Cash Commitment) to reflect the commitment to settling a trade.

Updates the main cash holding (holding type B for Cash Balance) and removes the temporary holding.

 

Note there is no functional difference between these three movement types. They simply report activity differently on the transaction date.

CashReceivable

Creates a temporary cash holding of type R (for Cash Receivable) to reflect the expectation of income from settling a trade.

CashAccrual

Creates a temporary cash holding of type A (for Cash Accrual) to reflect accrual of income from an interest-bearing instrument.

CashForward

Creates two temporary cash holdings of type F (for Forward FX) to represent each leg of the forward.

Updates the main cash holdings (holding type B) of both currencies. Note that in a valuation, this movement type preserves the two legs of the forward.

CashFxForward

Creates two temporary cash holdings of type F to represent each leg of the forward.

Updates the main cash holdings (holding type B) of both currencies. Note that in a valuation, this movement type collapses the forward to a single leg.

VariationMargin

This movement type has no effect on the units of a holding. Instead, it can be used to adjust the notional cost basis of a holding in a Future or CFD instrument up or down as part of a mark-to-market valuation strategy for realizing daily PnL. For a demonstration, see this Jupyter Notebook.

Carry

These movement types have no effect on a holding. Instead, they can be used to model carry activity in an AtoB report.

CarryAsPnl

Capital

These movement types have no effect on a holding. Instead, they can be used to generate balanced pairs of journal entry lines for an ABOR.

Fee

The following movement types are now deprecated:

  • Traded. Please use StockMovement.

  • Settlement. Please use StockMovement.

  • ForwardFx. Please use CashFxForward.

  • Commitment. Please use CashCommitment.

  • Receivable. Please use CashReceivable.

  • Accrual. Please use CashAccrual.

  • CashSettlement. Please use one of CashCommitmentCashReceivableCashAccrual.

  • FutureCash. Please use CashForward.

  • UnsettledCashTypes. Please use one of the Cash* types.