How do I manually adjust or set holdings?

The standard way to update the holdings of a portfolio in LUSID is by upserting transactions. However, if you don't have a suitable feed of transactions, LUSID also allows holdings to be loaded directly into the system.

When holdings are loaded into LUSID, their instruments, units, cost values and any additional properties are stored against the specified effective date. Any subsequent transactions (ones with a transaction date after the effective date of the loaded holdings) will continue to adjust the holdings in the normal way.

This capability is available via the following APIs:

  • SetHoldings
    Instructs LUSID to replace the current holdings in the portfolio with the supplied dataset. Any holdings in any instruments that are not included in the request are removed (that is, reduced to zero).

  • AdjustHoldings
    Instructs LUSID to update the current holdings in the portfolio with the supplied dataset, all of which must share the same effective date. Any holdings in instruments that are not included in the request are left untouched.

  • BatchAdjustHoldings
    As per AdjustHoldings, except holdings in the supplied dataset can have different effective dates, and you can choose a success mode to decide whether or not the entire operation fails if one holding fails validation.

Whether you set or adjust holdings, there is no profit and loss (P&L) associated with the event. For instance, if your initial holding is 5,000 Acme Anvil shares, at a price of $10 a share, your initial cost is $50,000. If you then adjust the holding of Acme Anvil to 4,000 shares and change the price to $9 a share, your initial cost becomes $36,000; there is no gain or loss associated with this adjustment, even if the adjustment is booked to a different effective date. 

The primary use of this capability is to ensure that holdings in LUSID can match an external system, even if the external system is unable to provide a comprehensive transaction history.

Note the following:

  • Holdings can be adjusted at the instrument and subholding level within a portfolio, so you can change the tax-lot or strategy holdings.

  • If you adjust holdings and add or update properties, any properties not included in the request are left untouched.

  • If you set and adjust holdings at the exact same time, the set operation is executed first and then adjusted by the adjust operation.