Downloading the constituents for the Russell 3000

Hi all, I hope you can help me with this. I am trying to download the constituents of the Russel3000 for a given date. The exact same query works for, say, stoxx600, but not for the russel 3000.

I have seen other topics on this but I haven't been able ot replicate the solutions e..g here:

https://community.developers.refinitiv.com/questions/51945/cant-get-constituents-of-russell-index-1.html

The query that I use is:

ek.get_data("0#.RUT","TR.RIC")

and

ek.get_data("0#.RUT(2020-06-30)","TR.RIC")

both return no data and throw a code 413 error ('unable to resolve some identifiers)

Thanks for the help

Best Answer

  • Hi @Alex A. thanks for your question - first off 0#.RUT is the Russell2000 - not Russell3000 - so make sure you are looking for the right index.

    In terms of your queries - the first one is working ok for me:


    image

    Your second query does return the same error as you are experiencing:


    image

    This maybe because we do not carry historical constituents for all indices - you would need to raise a content query to check that.

    In this thread it was suggested that you can try a screener query - this does indeed return a list of stocks - but the number is 1999 not 2000:

    df3, err = ek.get_data('SCREEN(U(IN(indices(4387873/*Russell 2000 */))/*UNV:Public*/))',['TR.CommonName']) df3

    image

    Another workaround from this thread suggests this approach to the historical constituent list - which also returns a list of stocks - though this numbers 2006 not 2000.

    df4, err = ek.get_data('.RUT', ['TR.IndexConstituentRIC' , 'TR.IndexConstituentName'], {'SDate':'20200630'}) df4

    image

    Probably best to check with the helpdesk to see if you have the correct permissions for Russell 2000 as some indices are fee-liable and you may need to add separate access to those - perhaps this is why the first query is not returning anything for you. Please include this thread in your communications with them.

    I hope this can help.

Answers

  • Hi @Alex A. thanks for your question - first off 0#.RUT is the Russell2000 - not Russell3000 - so make sure you are looking for the right index.

    In terms of your queries - the first one is working ok for me:

    Your second query does return the same error as you are experiencing:


    This maybe because we do not carry historical constituents for all indices - you would need to raise a content query to check that.

    In this thread it was suggested that you can try a screener query - this does indeed return a list of stocks - but the number is 1998 not 2000:

    df3, err = ek.get_data('SCREEN(U(IN(indices(4387873/*Russell 2000 */))/*UNV:Public*/))',['TR.CommonName']) df3

    image

    Another workaround from this thread suggests this approach to the historical constituent list - which also returns a list of stocks - though this numbers 2006 not 2000.

    df4, err = ek.get_data('.RUT', ['TR.IndexConstituentRIC' , 'TR.IndexConstituentName'], {'SDate':'20200630'}) df4

    image

    Probably best to check with the helpdesk to see if you have the correct permissions for Russell 2000 as some indices are fee-liable and you may need to add separate access to those - perhaps this is why the first query is not returning anything for you. Please include this thread in your communications with them.

    I hope this can help.

  • Thank you very much @jason.ramchandani. Indeed, I tried many different indices, for the Russell 2000 and Russell 3000 using the first method and the secon of those that I posted (which I had found while browsing the forum). I will try with the screener solution and in the meantime have asked the customer support whether we have access to those constituents. Thank you