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 |
| System | Created by LUSID in response to an AdjustHoldings API call. |
21 May 2023 |
| Input | Loaded by the user. |
22 May 2023 |
| Input | Loaded by the user. |
23 May 2023 |
| 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:
The corporate action.
The input transactions in alphabetical order of transaction ID.
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.