Downloading historical ETF holdings

LK_1
LK_1 Newcomer

I want to download the historical stock holdings of an ETF (VONE.O). I tried the following:

holdings = rd.get_data(universe = ['VONE.O'], fields = ['TR.FundHoldingRIC', 'TR.FundHoldingName', 'TR.FundHoldingsDate', 'TR.HoldingsDate', 'TR.FundNumberOfShares', 'TR.FundPercentageOfFundAssets'], parameters = {'SDate':'2023-01-01', 'EDate':'2024-12-31'})

This, however, does not produce the expected result. Except for the first 10, all rows are empty.

LSEG_API_output_ETF_holdings.png

How to download historical holdings for an ETF (i.e., for a specific date or date range)?

In addition, TR.FundHoldingsDate and TR.HoldingsDate have the same definition in the Data Item Browser, namely ‘Date of shares reported (YYYYMMDD)’. However, they are generally not consistent. What's the difference?

Answers

  • Hello @LK_1

    I think you might be running into the data threshold limits. This query returns close to 2.5 million data points which is well beyond the fair usage guidelines of the Workspace APIs. Please see these limits here.

  • LK_1
    LK_1 Newcomer

    Even when downloading the data for only a single date, all rows except the first 10 are empty.

    holdings = rd.get_data(universe = ['VONE.O'], fields = ['TR.FundHoldingRIC', 'TR.FundHoldingName', 'TR.FundHoldingsDate', 'TR.HoldingsDate', 'TR.FundNumberOfShares', 'TR.FundPercentageOfFundAssets'], parameters = {'SDate':'2024-12-31', 'EDate':'2024-12-31'})

    LSEG_API_output_ETF_holdings_2.png
  • Even within LSEG Workspace, I can only see the top 10 holdings. Maybe that is all the data which is carried in the system. You can open a content ticket at LSEG MyAccount, to speak with content expert, and refer them to this discussion.