holdings data on the ultimate parent level

Jochen
Jochen Newcomer

I'm interested in extracting holdings data of securities (say "AAPL.O" as an example) via the get_data() function of the LSEG Data Library. Using fields such as "TR.HoldingsDate, TR.InvestorFullName, TR.SharesHeld, TR.SharesHeldValue, TR.FilingType" gives me the holdings on the consolidated level. This means I get separate holdings reported for each subsidiary of one parent company. For example, I get the holdings reported by BlackRock Institutional Trust Company, N.A. and BlackRock Asset Management Ireland Limited which are both subsidiaries of BlackRock Inc. What I would like to extract instead is the holdings on the ultimate parent level, i.e. BlackRock Inc. When navigating through the Workspace desktop I can access this information under "AAPL.O SHARE" by using the settings gear on the right. There I can select either the consolidated holdings that I'm also able to extract in Python or the ultimate parent level which is what I would like to extract. I know the information is available in the background as there's also lists of all subsidiaries of a specific parent available. The question is just how to include it into my data request.

To work around this issue I tried including fields such as TR.UltimateParent or TR.UltimateParentId into my get_data() function but it returns those information for my instrument "AAPL.O" and not for each row containing a different (subsidiary) investor. If there was a way to extract the UltimateParent Name or ID I could at least manually aggregate the holdings to the parent level myself.

Best Answer

  • Jirapongse
    Jirapongse ✭✭✭✭✭
    Answer ✓

    @Jochen

    Thank you for reaching out to us.

    I found this TR.UltPrntPctOfShrsOutHld which can return Investor Permament IDs.

    df = ld.get_data(universe=["AAPL.O"],
                     fields=["TR.UltPrntPctOfShrsOutHld","TR.UltPrntPctOfShrsOutHld.InvestorPermId"],
                     parameters={'StartNum':1,'EndNum':100})
    df
    
    image.png

    Then, you can use the PermIDs to get names.

    df1 = ld.get_data(universe=df["Investor Perm Id"].dropna().to_list(),
                      fields=["TR.CommonName"])
    df1
    
    image.png

    Please contact the helpdesk team directly via MyAccount regarding this field and other fields.