How to integrate ESG data into investment decisions

Gurpreet Bal
Platform Application Developer Platform Application Developer

There is a growing demand for ESG (environment, social & governance) content used by institutional investors to inform investment decisions and strategies, alongside an acknowledgment that environmental, social, and governance (ESG) issues can affect the performance of investment portfolios in varying ways across companies, sectors, regions and asset classes as well as through time. ESG content can be integrated into fundamental, quantitative (systematic), strategic beta and passive strategies to drive insights and enable effective ESG investment strategies, research, screening and other analysis. Equally it is used within investment banking, particularly in Debt Capital Markets (DCM) to inform the issuance of ‘Green’ bonds.

Refinitiv's ESG data covers nearly 70% of global market cap and over 400 metrics and can be accessed over a number of different channels to suit your needs, both for desktop application and analysis and via feeds. Working with ESG data can be challenging as it's a relatively new content set to be available and cross different sources there is a lack of standardization. This is further exacerbated due to a lack of obligation to report on ESG policies and procedures.

Why is ESG important?

Two key functions in Financial Services are to raise capital and allocate capital.

The asset management industry (allocate capital) are using ESG data at the core of:

  1. Their ESG investing principles:
    • Which companies best meet the criteria that the fund/portfolio manager sets themselves for their ESG focus areas:
      • Climate change, emission reduction and carbon sequestration
      • Other environmental impact issues (use of plastics, waste and recycling behavior, engagement in de/re forestation activities, resource use, innovation and R&D associated with environmental impact, etc)
      • Diversity and inclusion – which companies are best living the values of equality of opportunity throughout the firm, in positions of executive leadership, and at Board level?
      • Human rights – in a companies operations of supply chain are employees being treated with appropriate labor rights and benefits, etc?
  1. Their general investment allocation (non-ESG specific) models and processes in order to:
    • Manage risk associated with company's ability to transition to a low carbon economy and prevent themselves becoming a victim of stranded assets
    • Identify correlation and causality between diversity in management and company performance as a leading indicator of beta/alpha

The second audience is investment banking (raise capital) who want to be able to:

  1. Demonstrate that they are helping for capital to be raised towards investing in non-fossil fuel related energy production (renewable, nuclear, etc)
  2. Provide guidance to their customers as to how they can best contribute to UN SDG’s through their business activities
  3. Inform interest rate decisions and other T&C’s on green financing based on KPI’s that the issuer sets itself to achieve with the use of proceeds (e.g. carbon emission reduction)

Here we will focus on the example around an asset manager or research analyst who is looking to analyze a particular sector (garment manufacturing) and ensure the stocks they pick are in line with their ESG mandates and to investigate the historical trends compared to company valuations data.

The story line would resemble this:

A strategy of buying stocks that rank well on ESG metrics would have outperformed the market by up to 3 percentage points per year over the last five years.

In this workflow we will describe the means to access ESG data through the Desktop Data API. The user will need a license to Refinitiv Eikon - a desktop license with no permitted programmatic redistribution. In order to better understand our coverage, fields, descriptions and data model for ESG alongside the company valuations content (such as return on equity and/or return on assets) please use visit Eikon API tutorials

Key Learning:

  • Leading ESG content set
  • Leading company fundamental content set
  • Easy to use Python scripted API calls with function layer
  • Jupyter notebooks and Python
  • Eikon Desktop API

Code sample

This use case will focus on using the ESG data to seek Alpha in the equity markets. The premise is to see, if the subset of companies with high ESG score, will perform better than the index they are part of. The S&P 500 index is used for this test. The sample uses Eikon Desktop Data API to retrieve the company fundamental and ESG content. Both Plotly and Pandas libraries are used for data visualization and content manipulations in data frames.

Define the parameters used for the comparison. We choose S&P500 index denoted by .SPX for the last 5 years.


start_year = 2014

end_year = 2020

index = '.SPX'

Start by getting the performance data for the index. Rebase it to 0 - 100% scale. 


sp,err = ek.get_data(index, fields=['', 'TR.CLOSEPRICE'], parameters={'SDate': '{}-01-01'.format(start_year), 'EDate': '{}-01-01'.format(end_year), 'Frq':'CQ'})

sp['Rebased'] = sp['Close Price'] * 100 / sp['Close Price'][0]


display('Count: {}'.format(len(sp)))

Iteratively get the constituents of an index in a given year.

df,err = ek.get_data('{}{}({}-01-01)'.format('0#', index, year), fields=['TR.TRESGScore'], parameters={'SDate': '{}-01-01'.format(year), 'Period': 'FY0'})

Get a subset of index constituents which have high ESG ratings. We choose 70% as a threshold. 

dFrame = dFrame[dFrame['ESG Score'] > 70]

Now we get the performance data for this subset, and combine it to calculate the performance of the set. An equal weighting is used for calculating performance. A user might want to try a market cap based weighting.


df2,err = ek.get_data(subset, fields=['', 'TR.CLOSEPRICE'], parameters={'SDate': '{}-01-01'.format(year), 'EDate': '{}-01-01'.format(year + 1), 'Frq':'CQ'})

df2 = df2.dropna()

# consolidate the price data for instruments

alphaList = []

ser = df2['Date'].value_counts()

for x in ser[ser > 5].index:

ser = df2.loc[df2['Date'] == x].sum()

alphaList.append({'Date': x, 'Close Price': ser['Close Price']})

Combine the performance for all the years and rebase the resulting data. 


for x in range(start_year, end_year):

    ret = getDataForYear(x)

    df3 = df3.append(ret)

df3 = df3.sort_values(by=['Date'])

df3 = df3.reset_index(drop=True)

df3['Rebased'] = df3['Close Price'] * 100 / df3['Close Price'][0]

Now we can plot the comparison graph of index vs this ESG subset.


It has been shown that Environmentally, Socially and Governance oriented organizations perform better than their peers in varying market conditions. Numerous studies show that using ESG data can reduce downside risk, while offering upside returns. A Jupyter notebook with complete code presented in this article can be downloaded from the Refinitv API Samples Github