Upgrade from Eikon -> Workspace. Learn about programming differences.

For a deeper look into our Eikon Data API, look into:

Overview |  Quickstart |  Documentation |  Downloads |  Tutorials |  Articles

question

Upvotes
Accepted
5 3 4 5

How to download the past 20 years' ESG data for all the firms listed in the USA using Eikon API?

I need to download the ESG scores for the firms listed in the USA and for the past 20 years.

I also need to download the CUSIPExtended identifiers.

I also need to download the date when the ESG scores are reported.

eikonesg
icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Thank you for your participation in the forum. Is the reply below satisfactory in resolving your query?


If so please can you click the 'Accept' text next to the appropriate reply? This will guide all community members who have a similar question.

Thanks,


AHS

Upvotes
Accepted
78.8k 250 52 74

@econ-eikon5

Please try the following code.

df, err = ek.get_data("SCREEN(U(IN(Equity(active,public,primary))/*UNV:Public*/), IN(TR.RegCountryCode,""US""), TR.TRESGScore(Period=FY0)>0, CURN=USD)",
                      ["TR.CUSIP","TR.TRESGScore.Date","TR.TRESGScore","TR.EnvironmentPillarScore"],
                      {'SDate':'0', 'EDate':'-19','Period':'FY0','Frq':'FY'})

The output is:

1638257138924.png


1638257138924.png (31.5 KiB)
icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

It dose not work now? Could you please check what happened?


Upvotes
14.2k 30 5 10

hi @econ-eikon5 ,

To get the ESG scores for the firms listed in the USA, you can use the SCREENER app to filter them here's the article on how to use the SCREENER app

import eikon as ek
ek.set_app_key('YOUR EIKON APP KEY')

df, err = ek.get_data("SCREEN(U(IN(Equity(active,public,primary))/*UNV:Public*/), IN(TR.RegCountryCode,""US""), TR.TRESGScore(Period=FY0)>0, CURN=USD)"
                      ,["TR.CommonName","TR.RegistrationCountry","TR.TRESGScore"]
)
df

1636978624835.png

Then from the result above, use get_symbology function to get CUSIP from RIC

rics = df["Instrument"].to_list() # List of RICs
# get CUSIP from RIC
ric_cusip = ek.get_symbology(rics, from_symbol_type='RIC', to_symbol_type='CUSIP')
ric_cusip

1636979588413.png

I hope this could help


1636978624835.png (40.2 KiB)
1636979588413.png (29.4 KiB)
icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Upvotes
5 3 4 5

Hi, @raksina.samasiri

many thanks for your reply.

It seems only static lastest ESG scores are downloaded, right? How to download the historical time-series of ESG scores for the US stocks? And how to download the date when they recorded. I need the time series of ESG scores, not the static values. Could you please tell me how to modify the code to download the data like the picture shows?data-structure.png

The first column shows the RICs of stocks and the second, third column shows the CUSIP extended and CUSIP identifiers of stocks. The fourth column shows the period End Date (not sure whether it is the date when the ESG scores are recorded). The fifth column shows the ESG values. I need to download the US stocks' ESG for the last 20 years in a final file. Could you please help me to check it?

Thanks.


data-structure.png (89.3 KiB)
icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Write an Answer

Hint: Notify or tag a user in this post by typing @username.

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.