Input and output transactions

Prev Next

For every transaction loaded into LUSID or created by the system, LUSID automatically generates and stores a corresponding output transaction:

In summary:

  • An input transaction (often just called transaction) is one loaded into LUSID using a proxy such as the REST API, SDK or web app.

  • A system-created transaction is created by LUSID in response to an instrument event or holdings adjustment.

  • An output transaction retains all the user or system data and adds extra information such as a tax calculation or realised gain/loss.

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 output transactions, replayed in date order.

For example, consider the following economic activity impacting a particular portfolio:

Date

Activity

20 May 2023

Holdings adjustment of 100 Microsoft shares

21 May 2023

Purchase of 50 Microsoft shares

22 May 2023

Sale of 80 Microsoft shares

23 May 2023

Microsoft cash dividend: $0.20 per share

LUSID generates the following output transactions to represent this economic activity:

Date

Transaction Type

Origin of output transaction

Notes

20 May 2023

AdjustmentIncrease

System

Created by LUSID in response to an AdjustHoldings API call.

21 May 2023

Buy

Input

Loaded by the user.

22 May 2023

Sell

Input

Loaded by the user.

23 May 2023

DividendIncome

System

Created by LUSID in response to a cash dividend corporate action event.

When you generate a holdings report on 24 May 2023, LUSID replays these transactions in date order to calculate that you have 70 Microsoft shares and an increase in cash.

Note that if these transactions were to occur at exactly the same date and time, LUSID replays the sequence in the following order:

  1. The corporate action.

  2. The input transactions in alphabetical order of transaction ID.

  3. The set or adjustment to holdings.

This may impact the holdings report, depending on the nature of the corporate action.

For a particular transaction portfolio, you can see the history of:

  • Input transactions by calling the GetTransactions API. In the LUSID web app, this API drives Portfolio Management > Transactions in Input mode:
     

  • Output transactions by calling the BuildTransactions API with a particular window. In the LUSID web app, this API drives Portfolio Management > Transactions in Output mode (note this is the only way to see system-created transactions, in output transaction form):
     

  • A particular transaction by calling the GetTransactionHistory API. This might be useful if that transaction has been updated during its lifetime.