---
title: "How do I handle different tax lot accounting conventions?"
slug: "how-do-i-handle-different-tax-lot-accounting-conventions"
updated: 2026-01-21T13:40:44Z
published: 2026-01-21T13:40:44Z
canonical: "support.lusid.com/how-do-i-handle-different-tax-lot-accounting-conventions"
---

> ## 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 do I handle different tax lot accounting conventions?

There are two ways in which you can set up tax lot accounting in LUSID:

1. If your source system provides specific tax lot ("versus purchase") details on all transactions then you can specify [sub-holding keys](/v1/docs/what-is-a-sub-holding-key-shk) (SHKs) for a portfolio to segregate instrument-level holdings into tax lots. See below.
2. If your source system doesn't always provide tax lot information then you can configure LUSID to calculate tax lots based on a standard algorithm at either the portfolio or a more granular level. [More information](/v1/docs/how-do-i-handle-different-tax-lot-accounting-conventions#having-lusid-determine-tax-lots-automatically).

## Using SHKs to segregate holdings into tax lots

### Loading data into LUSID

1. [Create a custom property](/v1/docs/properties) in the `Transaction` domain to store the tax lot identifier.
2. Create a transaction portfolio and [register the property as a SHK](/v1/docs/how-do-i-register-sub-holding-keys-shks-with-a-portfolio).
3. [Book transactions into LUSID](/v1/docs/how-do-i-create-or-update-a-transaction) and specify a property value for each to nominate a particular taxlot.

### Retrieving data from LUSID

Using this method, the following APIs return tax lots automatically:

- [GetHoldings](https://www.lusid.com/docs/api/lusid/endpoints/transaction-portfolios/GetHoldings) API (and the **Portfolio Management > Holdings** dashboard in the LUSID web app).
- [GetValuation](https://www.lusid.com/docs/api/lusid/endpoints/aggregation/GetValuation/) API (and the **Portfolio Management > Valuations** dashboard).

## Having LUSID determine tax lots automatically

### Loading data into LUSID

Set the accounting method to [one of the supported tax lot accounting methods](/v1/docs/what-are-the-supported-tax-lot-accounting-methods-in-lusid).

You can specify this for one of the following entities, or create a waterfall of logic by specifying it for all of them:

1. On a portfolio, using the `accountingMethod` field. The accounting method applies to every transaction in the portfolio, unless overridden below.
2. On a `StockMovement` within a transaction type, using the `TransactionConfiguration/default/TaxLotSelectionMethod` [system property](/v1/docs/adding-system-properties-to-transactions-and-to-transaction-types#adding-system-properties-to-transaction-types). The accounting method applies to every transaction of that type in any portfolio, overriding the setting for a particular portfolio.
3. On a [custodian account](/v1/docs/segregating-holdings-using-custodian-accounts), using the `accountingMethod` field. The accounting method applies to every transaction in the account, overriding any settings for a transaction type or for a portfolio.
4. On an individual transaction, using the `Transaction/default/TaxLotSelectionMethod` [system property](/v1/docs/adding-system-properties-to-transactions-and-to-transaction-types). The accounting method applies just to that transaction, overriding any settings for a custodian account, transaction type or a portfolio.
5. On an individual transaction, using the `Transaction/default/PriorityTaxLots` [system property](/v1/docs/what-is-a-system-property#transaction-system-properties) to dispose of specified tax lots as a priority, overriding all other settings unless the priority lots cannot meet the requirement.

### Retrieving data from LUSID

Using this method, the following APIs return tax lots in certain circumstances:

- [GetHoldings](https://www.lusid.com/docs/api/lusid/endpoints/transaction-portfolios/GetHoldings) API (and the **Portfolio Management > Holdings** dashboard in the LUSID web app): Providing the `byTaxlots` parameter is specified, for example: ![](https://cdn.document360.io/d575ad81-c0ed-4980-bbd1-d59ac5c3de82/Images/Documentation/image-B9WQVH1C.png)
- [GetValuation](https://www.lusid.com/docs/api/lusid/endpoints/aggregation/GetValuation/) API (and the **Portfolio Management > Valuations** dashboard): Providing no specific grouping is applied.
