The standard way to update a portfolio is to book transactions and ask LUSID to generate holdings on demand.
However, if you don’t have a suitable transaction feed, you can set or adjust holdings directly in a portfolio instead. You tell LUSID what your holdings should be on a given date, and LUSID makes the portfolio match. Transactions before and after that date continue behaving normally.
Set or adjust?
These are separate operations. Note the following:
Both operations take the same inputs: a list of holdings (instrument, units, and optionally cost, tax lots, sub-holding keys and holding properties) and an effective date.
Neither operation creates a profit or loss. If you adjust a holding of 5,000 BP shares at a cost of £50,000 down to 4,000 shares at £36,000, LUSID records the change as an adjustment rather than a sale, and there is no realised gain/loss.
Set holdings | Adjust holdings | |
|---|---|---|
What it does | Makes the whole portfolio match the list you send | Changes only the holdings you send |
Holdings you leave out | Reduced to zero, including cash | Left untouched |
Typical use | Take-on at go-live; a full positions file from a manager or custodian | Fixing one or two positions; topping up cash |
API |
|
|
Luminesce |
|
|
Note: You can't currently set or adjust holdings in the LUSID web app.
What LUSID does when you set or adjust
LUSID stores your list as a target for the effective date. When you generate holdings, LUSID compares the target with the holdings your transactions produce up to that point and generates special ‘true up’ output transactions to close the gap: AdjustmentIncrease, AdjustmentDecrease, or Adjustment for cost-only changes.
Note: You can't edit transactions of these types because LUSID rebuilds them every time. To change the result, change the target (set or adjust again), or book a separate transaction for the difference.
Because LUSID stores the target rather than a fixed change, the result stays correct even if your data changes. If a backdated trade arrives late, LUSID shrinks or grows the true-up so the holding on that date still matches your target. More information.
Common use cases
Taking on a portfolio. Set holdings once on the go-live date, and book transactions from then on. You can still load historic transactions later; any dated before go-live are absorbed into the true-up, so the go-live position doesn't move.
Receiving positions instead of transactions. If an external manager or custodian sends you a positions file, set holdings from it each time it arrives. Each set trues the portfolio up to the latest file.
Correcting one bad position. If a manager reported the wrong units or price for one instrument, you don't need to resend the whole file. Adjust holdings for just that instrument, at the same effective date as the original set. LUSID replaces that one holding in the target and leaves the rest of the set as it was.
Recording a late trade or cancel that should change the position. By default, LUSID absorbs a late trade dated before a set, because the set is treated as the truth. If the trade is genuinely extra to the set, you can stamp it to apply afterwards instead.