--- title: "How do I generate a holdings report?" slug: "how-do-i-generate-a-holdings-report" tags: ["holdings", "generate report", "zero holding"] updated: 2026-08-19T09:19:14Z published: 2026-08-19T09:19:14Z canonical: "support.lusid.com/how-do-i-generate-a-holdings-report" --- > ## 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 generate a holdings report? You can generate a holdings report for a [transaction portfolio](/v1/docs/how-do-i-create-a-transaction-portfolio) at any time. LUSID web appLUSID APILuminesce Call the [GetHoldings](https://www.lusid.com/docs/api/lusid/endpoints/transaction-portfolios/GetHoldings/) API. Note the following: - It’s almost always useful to specify the `propertyKeys` parameter with the `Instrument/default/Name` system property to identify individual results. You can retrieve any other `Instrument` or `Holding` property in the same way. - The request is effective today unless you specify a historical or future date using the `effectiveAt` parameter. ```shell curl -X GET "https://.lusid.com/api/api/transactionportfolios/Finbourne-Examples/UK-Equities/holdings?propertyKeys=Instrument%2Fdefault%2FName"  -H 'Content-Type: application/json-patch+json'  -H 'Authorization: Bearer ' ``` Providing the request is successful, the response contains one value per holding, for example: ```json "values": [    {      "instrumentScope": "default",      "instrumentUid": "LUID_WPFIPFGD",      "subHoldingKeys": {},      "properties": {        "Instrument/default/Name": {          "key": "Instrument/default/Name",          "value": {            "labelValue": "LEGAL&GEN."          },          "effectiveFrom": "0001-01-01T00:00:00.0000000+00:00"        }      },      "holdingType": "P",      "units": 82867.64705882352,      "settledUnits": 82867.64705882352,      "cost": {        "amount": 238244.49,        "currency": "GBP"      },      "costPortfolioCcy": {        "amount": 238244.49,        "currency": "GBP"      },      "currency": "GBP"    },    ... ] ``` 1. Navigate to the **Portfolio Management > Holdings** dashboard. 2. Choose a portfolio or portfolio group and optionally an effective date (defaults to today): ![](https://cdn.document360.io/d575ad81-c0ed-4980-bbd1-d59ac5c3de82/Images/Documentation/image(887).png?sv=2026-02-06&spr=https&st=2026-11-04T02%3A00%3A53Z&se=2026-11-04T03%3A00%3A53Z&sr=c&sp=r&sig=NK8gYmVrVOtC%2BLevwDfu2mCfUh62MeIjxFgthxUJa9E%3D) Write a Luminesce SQL query using the [Lusid.Portfolio.Holding](/v1/docs/lusidportfolioholding) provider and execute it using a tool such as the LUSID web app: ![](https://cdn.document360.io/d575ad81-c0ed-4980-bbd1-d59ac5c3de82/Images/Documentation/image-TWXJV4LW.png?sv=2026-02-06&spr=https&st=2026-11-04T02%3A00%3A53Z&se=2026-11-04T03%3A00%3A53Z&sr=c&sp=r&sig=NK8gYmVrVOtC%2BLevwDfu2mCfUh62MeIjxFgthxUJa9E%3D) ### Retaining holdings reduced to zero units By default, a holding that is set, adjusted or traded down to zero units drops out of holdings reports. To retain it, add the `Holding/default/RetainZeroHolding` system property and set the value to `True`. For example, the following call to the [BatchAdjustHoldings](https://www.lusid.com/docs/api/lusid/endpoints/transaction-portfolios/BatchAdjustHoldings/) API targets a particular `Bond` instrument holding and adds the system property effective before its maturity date: ```json curl -X POST 'https://.lusid.com/api/api/transactionportfolios/Growth/FI/holdings/$batchAdjust?successMode=Partial' -H 'Authorization: Bearer ' -H 'Content-Type: application/json-patch+json' -d '{  "AdjustHoldingRequest1": {    "effectiveAt": "2027-03-01T00:00:00.0000000+00:00",    "instrumentIdentifiers": {"Instrument/default/LusidInstrumentId": "LUID_00003H5N"},    "properties": {      "Holding/default/RetainZeroHolding": {        "key": "Holding/default/RetainZeroHolding",        "value": {          "labelValue": "True"        }      }    },    "taxLots": [      {        "units": 2000,      }    ],    "currency": "GBP"  } }' ``` Now, LUSID retains the zero-unit holding in the report post-maturity: ![](https://cdn.document360.io/d575ad81-c0ed-4980-bbd1-d59ac5c3de82/Images/Documentation/image-YI3XQGZ1.png?sv=2026-02-06&spr=https&st=2026-11-04T02%3A00%3A53Z&se=2026-11-04T03%3A00%3A53Z&sr=c&sp=r&sig=NK8gYmVrVOtC%2BLevwDfu2mCfUh62MeIjxFgthxUJa9E%3D) To remove it, set the system property back to `False`.