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
15 5 8 10

How to get ESG score and Dividend payment frequency of Mutual Funds using Python Eikon API?

We need ESG scores of Mutual Funds and ETFs through the Python API. The below code works fine for stocks but throws 'NA' values for ETFs and Mutual funds but it is available in the Eikon Desktop App


1. How can I get the ESG score for MFs and ETFs?2. How to get Dividend Payment frequency (Monthly, Annually, Quarterly) for Mutual funds as different mutual funds have different frequencies. Since Dividend yield is not available for Mutual Funds, dividend payment, and its frequency is important for us to calculate the Dividend yield or is there any way to get the dividend yield directly for mutual funds?
Python code:

ek.get_data(['LP40201529','LP40193047','LP40195883','LP40196763'],fields = ['TR.TRESGScore','TR.CompanyName','TR.TickerSymbol','TR.FundDividendPayment','TR.DividendFrequency','TR.FundNAV.Date','TR.FundNAV'])


eikoneikon-data-apipythonrefinitiv-dataplatform-eikonworkspaceworkspace-data-apidataesg
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
Accepted
21.8k 57 14 21

Hi @BlackBird,

I believe that Eikon is calculating the ESG score from the score of the underlying constituents. At this time, Refinitiv's ESG coverage is about 80% of global market capitalization, and the funds that you have listed are not pre-calculated. However it is not too complicated to do it yourself. Begin by getting the fund holdings:

df,err = ek.get_data('LP40201529', ['TR.FundHoldingRIC'], {'Endnum':'5000'})

Now, in your application you can request the ESG score and dividend data for this list:

df2, err = ek.get_data(df['Holding RIC'].to_list(), fields=['TR.TRESGScore', 'CF_YIELD'])

and slice and analyze the content:

print('ESG coverage {}%'.format(df2['ESG Score'].count()/len(df2)*100))
>>> ESG coverage 86.76470588235294%
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
1.5k 3 2 3

@BlackBird Firstly, in Eikon API, mutual funds data are provided by Lipper and the API you should use should be under the “Lipper” section. Under Eikon Excel’s Formula Builder, you can find the “Lipper Funds” section. Hence, you should choose from fields starts with “TR.Fundxxxx”.

The following fields you asked for are available:

TR.FundDividendPayment

TR.FundExDividendDate

TR.FundProjectedYield

I am not sure your definition of yield, but if you only need to use the latest dividend and price to derive it, it seems possible. Yes, there is a type of yield (Projected Yield) already provided by the by the API. Its description is “Percentage of income earned as a proportion of total return performance over a one year period as of the latest month end.”

Below is the data for your sample funds:


Dividend Payment

Ex Dividend Date

Projected Yield

LP40201529

0.016303

2013-12-27

0

LP40193047

0.113

2020-09-24

0.721372

LP40195883

0.0573

2019-12-12

0.637634

LP40196763

0.053529

2019-12-19

0.749921






Notice: the first fund got the projected yield as 0% as it didn’t pay dividends in the latest one year period.

Funds’ ESG is not available in Eikon API, but available the newer RDP API and the Lipper LGDF feeds.

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.