--- title: "How LUSID trues up holdings to a target" slug: "how-lusid-trues-up-holdings" updated: 2026-11-09T10:22:49Z published: 2026-11-09T10:22:49Z canonical: "support.lusid.com/how-lusid-trues-up-holdings" --- > ## Documentation Index > Fetch the complete documentation index at: https://support.lusid.com/llms.txt > Use this file to discover all available pages before exploring further. # How LUSID trues up holdings to a target When you [set or adjust holdings](/v1/docs/how-do-i-manually-adjust-or-set-holdings), LUSID doesn't overwrite anything. It keeps every transaction loaded, and closes the gap between what those transactions produce and what you asked for. ## A target, not a fixed change A set or adjust records a *target*: the holdings you want on that date. LUSID doesn't store the difference. Every time LUSID generates holdings, it replays your transactions in date order. When it reaches the target's effective date, it compares the holdings at that point with the target, and generates [output transactions](/v1/docs/input-and-output-transactions) for the difference. This is "truing up". The true-up can change over time, but the result on the target date doesn't. For example, you might set a BP holding to 100 shares on 31 October, and LUSID generates an `AdjustmentIncrease` output transaction of 100. A month later, you load a buy of 20 BP shares dated 1 October, before the set. LUSID now generates an `AdjustmentIncrease` output transaction of only 80, and the holding on 31 October is still 100. ## The output transactions LUSID generates | Transaction type | When | | --- | --- | | `AdjustmentIncrease` | The target has more units than the current holding | | `AdjustmentDecrease` | The target has fewer units than the current holding | | `Adjustment` | The units are unchanged but something else differs, such as cost, variation margin, amortised cost or current face | All these output transactions: - Have a source type of `HoldingAdjustment`, which you can filter on. - Have a trade date and settlement date equal to the target's effective date, so they settle immediately. This is the case even if you give a tax lot an earlier `purchaseDate` or `settlementDate`, for example the dates on which a previous manager bought it. LUSID keeps those dates on the tax lot, and records them on the output transaction in the `Transaction/default/OriginalTradeDate` and `Transaction/default/OriginalSettlementDate` system properties. [More about tax lot fields](/v1/docs/how-do-i-manually-adjust-or-set-holdings#data-fields-and-properties). - Share one transaction ID per date: the effective datetime, for example `2026-10-31T00:00:00.0000000+00:00`. - Carry no realised gain or loss. Note the following: - The `AdjustmentIncrease`, `AdjustmentDecrease` and `Adjustment` transaction types are not configurable, so their economic impact is fixed. - The output transactions are read-only. LUSID rebuilds them from your target every time it builds holdings. To change the outcome: - Change the target by adjusting the holding again at the same effective date, or set again. - Book a separate transaction for the difference, timed after the set or [stamped](/v1/docs/how-do-i-apply-late-activity-after-a-setholdings) to apply after it. - Remove the target by [canceling the set or adjust](/v1/docs/how-do-i-manually-adjust-or-set-holdings#cancelling-a-set-or-adjust). ## What LUSID compares - Securities: LUSID trues up the total units, settled and unsettled, which is the trade date holding. - Cash: LUSID trues up the settled cash balance. Unsettled cash from earlier trades stays in separate temporary [holding types](/v1/docs/what-are-the-holding-types) (such as cash commitments) and settles on its own date. - Sub-holdings: each combination of instrument, [sub-holding keys](/v1/docs/what-is-a-sub-holding-key-shk) and custodian account is a separate holding. A set reduces any combination you don't send to zero. - Tax lots: if the holding and the target each have at most one tax lot, LUSID makes a single adjustment at average cost. Otherwise it matches lots on purchase date and price. It adjusts lots that differ, closes lots missing from the target and opens new ones, so a set with several lots can generate several adjustments. - Cost: if you don't send a cost, LUSID keeps the holding's current average cost per unit. - Properties: LUSID updates only the holding properties you send. A set doesn't clear properties from holdings it reduces to zero. ## What happens on the same date LUSID processes everything at the same effective datetime in this order: 1. Corporate actions, and settlements of earlier trades due at that time. 2. Transactions with exactly that trade datetime. 3. Sets and adjusts, in the order you made them. 4. Transactions [stamped](/v1/docs/how-do-i-apply-late-activity-after-a-setholdings) to apply after that set. 5. FX forward maturities and settlements. In practice: - A transaction at exactly the same time as a set is absorbed by it, for example when both are at midnight on 31 October. To book a trade that counts on top of the set, give it a later trade time, or [stamp it](/v1/docs/how-do-i-apply-late-activity-after-a-setholdings). - An adjust at the same time as a set merges with it. The adjust replaces only the holdings it lists. The date still behaves as a full set, so holdings in neither are zero. This is the easiest way to [correct one position](/v1/docs/how-do-i-manually-adjust-or-set-holdings#correcting-one-position-in-a-set). - A set at the same time as an earlier adjust replaces it. The most recent set at a given time always wins. - "Same time" means the same instant, not the same day. A set at 00:00 and a trade at 09:00 on the same date are separate, and the trade comes after the set. ## Example 1: Setting and adjusting settled holdings A portfolio buys 100 BP shares at £10 on 1 February, settling on 3 February. At the end of 3 February it holds: - 100 BP shares at a cost of £1,000 - −£1,000 of GBP cash ![](https://cdn.document360.io/d575ad81-c0ed-4980-bbd1-d59ac5c3de82/Images/Documentation/image(566).png?sv=2026-02-06&spr=https&st=2026-11-09T16%3A01%3A56Z&se=2026-11-09T17%3A01%3A56Z&sr=c&sp=r&sig=AsobNWwePpGj1GIP9%2BCGUsvMQ6y0ZncDprnTPzFk4Xk%3D) ### 4 February You adjust BP to 110 shares at £11. BP is now 110 shares at a cost of £1,210. Cash is unchanged, because you only adjusted BP: ![](https://cdn.document360.io/d575ad81-c0ed-4980-bbd1-d59ac5c3de82/Images/Documentation/image(567).png?sv=2026-02-06&spr=https&st=2026-11-09T16%3A01%3A56Z&se=2026-11-09T17%3A01%3A56Z&sr=c&sp=r&sig=AsobNWwePpGj1GIP9%2BCGUsvMQ6y0ZncDprnTPzFk4Xk%3D) LUSID generates an `AdjustmentIncrease` of 10 BP shares with a total consideration of £210: ![](https://cdn.document360.io/d575ad81-c0ed-4980-bbd1-d59ac5c3de82/Images/Documentation/image(570).png?sv=2026-02-06&spr=https&st=2026-11-09T16%3A01%3A56Z&se=2026-11-09T17%3A01%3A56Z&sr=c&sp=r&sig=AsobNWwePpGj1GIP9%2BCGUsvMQ6y0ZncDprnTPzFk4Xk%3D) ### 5 February You adjust BP to 90 shares at £9. BP is now 90 shares at a cost of £810: ![](https://cdn.document360.io/d575ad81-c0ed-4980-bbd1-d59ac5c3de82/Images/Documentation/image(568).png?sv=2026-02-06&spr=https&st=2026-11-09T16%3A01%3A56Z&se=2026-11-09T17%3A01%3A56Z&sr=c&sp=r&sig=AsobNWwePpGj1GIP9%2BCGUsvMQ6y0ZncDprnTPzFk4Xk%3D) LUSID generates an `AdjustmentDecrease` of 20 BP shares with a total consideration of −£400: ![](https://cdn.document360.io/d575ad81-c0ed-4980-bbd1-d59ac5c3de82/Images/Documentation/image(573).png?sv=2026-02-06&spr=https&st=2026-11-09T16%3A01%3A56Z&se=2026-11-09T17%3A01%3A56Z&sr=c&sp=r&sig=AsobNWwePpGj1GIP9%2BCGUsvMQ6y0ZncDprnTPzFk4Xk%3D) ### 6 February You *set* holdings to 120 BP shares at £12. BP is now 120 shares at a cost of £1,440. Because a set replaces the whole portfolio and you didn't include cash, LUSID reduces the GBP holding to zero: ![](https://cdn.document360.io/d575ad81-c0ed-4980-bbd1-d59ac5c3de82/Images/Documentation/image(569).png?sv=2026-02-06&spr=https&st=2026-11-09T16%3A01%3A56Z&se=2026-11-09T17%3A01%3A56Z&sr=c&sp=r&sig=AsobNWwePpGj1GIP9%2BCGUsvMQ6y0ZncDprnTPzFk4Xk%3D) LUSID generates two transactions: - An `AdjustmentIncrease` of 30 BP shares with a total consideration of £630 - An `AdjustmentIncrease` of 1,000 GBP with a total consideration of £1,000, taking cash from −£1,000 to zero ![](https://cdn.document360.io/d575ad81-c0ed-4980-bbd1-d59ac5c3de82/Images/Documentation/image(574).png?sv=2026-02-06&spr=https&st=2026-11-09T16%3A01%3A56Z&se=2026-11-09T17%3A01%3A56Z&sr=c&sp=r&sig=AsobNWwePpGj1GIP9%2BCGUsvMQ6y0ZncDprnTPzFk4Xk%3D) ## Example 2: Adjusting before settlement Take the same buy, but look at the end of 1 February, before it settles. BP has 100 units on a trade date basis but 0 settled units, and there's a temporary GBP holding with a −£1,000 cash commitment: ![](https://cdn.document360.io/d575ad81-c0ed-4980-bbd1-d59ac5c3de82/Images/Documentation/image(562).png?sv=2026-02-06&spr=https&st=2026-11-09T16%3A01%3A56Z&se=2026-11-09T17%3A01%3A56Z&sr=c&sp=r&sig=AsobNWwePpGj1GIP9%2BCGUsvMQ6y0ZncDprnTPzFk4Xk%3D) On 2 February you adjust BP to 110 shares at £11. BP now has 110 trade date units, 10 settled units and a cost of £1,210. The GBP holding isn't affected: ![](https://cdn.document360.io/d575ad81-c0ed-4980-bbd1-d59ac5c3de82/Images/Documentation/image(564).png?sv=2026-02-06&spr=https&st=2026-11-09T16%3A01%3A56Z&se=2026-11-09T17%3A01%3A56Z&sr=c&sp=r&sig=AsobNWwePpGj1GIP9%2BCGUsvMQ6y0ZncDprnTPzFk4Xk%3D) LUSID generates an `AdjustmentIncrease` output transaction of 10 BP shares with a total consideration of £210. Because the adjustment settles immediately, those 10 units are settled at once: ![](https://cdn.document360.io/d575ad81-c0ed-4980-bbd1-d59ac5c3de82/Images/Documentation/image(565).png?sv=2026-02-06&spr=https&st=2026-11-09T16%3A01%3A56Z&se=2026-11-09T17%3A01%3A56Z&sr=c&sp=r&sig=AsobNWwePpGj1GIP9%2BCGUsvMQ6y0ZncDprnTPzFk4Xk%3D) On 3 February, the original 100 BP shares and −£1,000 GBP settle as normal: ![](https://cdn.document360.io/d575ad81-c0ed-4980-bbd1-d59ac5c3de82/Images/Documentation/image(563).png?sv=2026-02-06&spr=https&st=2026-11-09T16%3A01%3A56Z&se=2026-11-09T17%3A01%3A56Z&sr=c&sp=r&sig=AsobNWwePpGj1GIP9%2BCGUsvMQ6y0ZncDprnTPzFk4Xk%3D)