ESG Category Guide
Environmental
Social
Governance
Emissions, climate change, waste and hazardous waste
Natural resources, renewable energy, energy efficiency, natural disasters
Human access to clean water, water pollution, issues about bodies of water, wetlands
Animal wellbeing, habitat conservation, ecosystems, endangered species and extinction
Fair labor, opportunities, strikes, unions, workplace health and safety, slavery, child labor
Gender equality, LGBTQ, sexism, gender policies, sex crimes and misconduct
Discrimination and racism, minorities, people with disabilities, poverty, social services and welfare, charity.
Indigenous people and their interests
Fundamental legal and civil rights, censorship and freedom of speech, genocide, human trafficking, political and civil demonstrations
Public health, food regulations, addiction and mental health, access to medicine, treatment of disease
Corporate crimes, litigation, regulations, antitrust, insider trading, corruption and bribery
Shareholders, earnings, restructuring, dividends and stock events, mergers and acquisitions, corporate meetings and report
Product recalls, consumer issues, new products and patents
Our algorithms identify: ESG in the news.
Example
Datapoint:
Source
Companies Trending Now
Click chart points to visit source article
Score Guide

A score of zero is neutral. Any score below zero is negative, negative one being the most negative. Any score above zero is positive, positive one being the most positive.

-1
Most negative
−0.75
−0.5
−0.25
0
Neutral
0.25
0.5
0.75
1
Most positive
Very positive
Positive
Slightly positive
Slightly negative
Negative
Very negative
A simple UI
Get a Free Beta Key
A simple HTTP REST API
GET Request Data
https://www.act-analytics.com/news-api/request_data/<api_key>/<companies>/<esg_categories>
Returns time series data on the requested ESG categories and companies.
GET Request All Data
https://www.act-analytics.com/news-api/request_data/<api_key>/<esg_categories>
Returns time series data on all supported companies for the requested ESG categories.
GET Supported Companies
https://www.act-analytics.com/news-api/companies_in_db/<api_key>
Returns all companies covered by our service. This is useful for checking coverage and company identifier codes.
GET ESG Categories
https://www.act-analytics.com/news-api/esg_categories_in_db/<api_key>
Returns all ESG categories covered by our service.
Request Data
https://www.act-analytics.com/news-api/request_data/133713371337/AMZN.OQ,UBER.N/labor

Notice that the “Request Data” endpoint can accept a comma-separated list of companies. It can also accept a comma-separated list of ESG categories

“article_links” is an array of URLs of the articles in our database that are relevant to the indicated company (the parent object name) and any of the requested ESG categories.

“sentiment_scores” is an array of scores (smoothed out by a weighted moving average) that correspond to “article_links”.

“time_published” is an array of Unix timestamps that correspond to the times the articles in “article_links” were published.

Notes:

Content of an article at a URL is not always static; it may be updated/corrected after publishing. Scores are computed from article content at time of processing. Occasionally, a news outlet will distribute the same article on multiple domains. We may process an article, then find an updated/edited version of it on a different domain at a later time. If the content of the updated/edited article is changed significantly, we’ll treat it as a new article and give it its own score.

Unix timestamps of time entered in database (similar to “time_published”) are available.

The “Request All Data” endpoint returns a similar JSON.

Example Request
curl --request GET https://www.act-analytics.com/news-api/request_data/133713371337/AMZN.OQ,UBER.N/labor
Example Response
{
"AMZN.OQ": {
"sentiment_scores": [
-0.0830625,
-0.03485955882352941,
-0.008664062499999998,
-0.06981854166666666,
-0.10486141917293235,
-0.06772106568504595,
-0.07832477466173118,
-0.13299536441168477,
-0.05308657456922163,
-0.032978887751538705,
0.04479868904473006,
0.12534792688238963,
0.12303103925503134,
0.15593523674420912,
0.22056483689445136,
0.21081507132871014
],
"time_published": [
1588354972,
1588596050,
1589211353,
1589390462,
1589390514,
1589446413,
1589448704,
1589482019,
1589508704,
1589613360,
1589806673,
1589815202,
1590059270,
1590114294,
1590138583,
1590611117,
],
"article_links": [
"https://www.reuters.com/article/us-health-coronavirus-retail-protests-idUSKBN22D62D",
"https://in.reuters.com/article/health-coronavirus-amazon-france-idINKBN22G1IO",
"https://www.businessinsider.com/amazon-executive-cant-answer-how-many-workers-have-been-infected-60-minutes-2020-5",
"https://www.reuters.com/article/us-health-coronavirus-amazon-idUSKBN22P2RC",
"https://in.reuters.com/article/health-coronavirus-amazon-idINKBN22P2R2",
"https://www.businessinsider.com/rashida-tlaib-debbie-dingell-amazon-warehouse-investigation-2020-5",
"https://www.businessinsider.com/amazon-dropping-covid-19-hazard-pay-warehouse-workers-may-2020-5",
"https://www.businessinsider.com/jeff-bezos-on-track-to-become-trillionaire-by-2026-2020-5",
"https://www.businessinsider.com/amazon-confirms-death-warehouse-worker-says-social-distancing-not-enforced-2020-5",
"https://www.businessinsider.com/amazon-warehouse-workers-thank-you-t-shirts-as-it-cuts-their-hazard-pay-2020-5",
"https://www.businessinsider.com/amazon-reopening-french-warehouses-agreement-with-unions-2020-5",
"https://www.reuters.com/article/us-health-coronavirus-amazon-france-idUSKBN22U27I",
"https://ca.reuters.com/article/businessNews/idCAKBN22X19Q",
"https://in.reuters.com/article/health-coronavirus-amazon-com-workers-in-idINKBN22Y0AW",
"https://in.reuters.com/article/amazon-com-india-idINKBN22Y15S",
"https://apnews.com/bf0426a7df150de562f77be623f3609b",
]
},
"UBER.N": {
"sentiment_scores": [
-0.0830625,
-0.03485955882352941,
-0.008664062499999998,
-0.06981854166666666,
-0.05051,
-0.06228631072874494,
-0.10486141917293235,
-0.06772106568504595,
-0.11539903702709155,
-0.0739875458736126,
-0.03527553780284043,
-0.04228022310813664,
-0.03252579373425239,
0.07506794223946481,
0.06108085070735447
],
"time_published": [
1588702297,
1588702297,
1588705191,
1588803259,
1588842188,
1589815847,
1589965402,
1590073343,
1590477139,
1590691894,
1591878543,
1591879961,
1594779240,
1595286480,
1596751309
],
"article_links": [
"https://ca.reuters.com/article/businessNews/idCAKBN22H2KA",
"https://ca.reuters.com/article/technologyNews/idCAKBN22H2KA-OCATC",
"https://uk.reuters.com/article/uk-uber-lawsuit-california-idUKKBN22H2KN",
"https://www.reuters.com/article/us-uber-egypt-idUSKBN22I3A3",
"https://uk.reuters.com/article/us-uber-lawsuit-california-idUKKBN22H2KA",
"https://ca.reuters.com/article/businessNews/idCAKBN22U290",
"https://www.reuters.com/article/us-india-ola-layoffs-idUSKBN22W17M",
"https://ca.reuters.com/article/businessNews/idCAKBN22X1XE",
"https://in.reuters.com/article/india-uber-layoffs-idINKBN2320RW",
"https://www.businessinsider.com/after-layoffs-uber-exec-sold-half-her-shares-86-million-2020-5",
"https://www.reuters.com/article/california-economy-idUSL4N2DO2NU",
"https://in.reuters.com/article/california-economy-idINKBN23I1Y0",
"https://in.reuters.com/article/uber-lawsuit-massachusetts-idINKCN24G087",
"https://www.reuters.com/article/us-uber-britain-idUSKCN24L2TI",
"https://uk.reuters.com/article/us-uber-california-idUKKCN2523AT"
]
},
}
Supported Companies & ESG Categories
https://www.act-analytics.com/news-api/companies_in_db/133713371337

The “Request Data” endpoint accepts any of the “primary ric” identifiers.

https://www.act-analytics.com/news-api/esg_categories_in_db/133713371337

The “Request Data” endpoint accepts any of the “category name” identifiers.

Example Request
curl --request GET https://www.act-analytics.com/news-api/companies_in_db/133713371337
Example Response
{
"0": {
"primary_ric": "8TRA.DE",
"company_name": "TRATON SE",
"permid":"5068663280"
},
"1": {
"primary_ric": "VOWG_p.DE",
"company_name": "Volkswagen AG",
"permid":4295869244
},
"3": {
"primary_ric": "HON.N",
"company_name": "HONEYWELL INTERNATIONAL INC.",
"permid":"4295912155"
},
"2": {
"primary_ric": "CLX.N",
"company_name": "THE CLOROX COMPANY",
"permid":4295903733
}
}
Example Request
curl --request GET https://www.act-analytics.com/news-api/esg_categories_in_db/133713371337
Example Response
{
"0": {
"category_name": "labor"
},
"1": {
"category_name": "gender"
},
"2": {
"category_name": "pollution"
},
"3": {
"category_name": "inequalities"
},
"4": {
"category_name": "indigenous"
}
}
Python Sample Code

This example makes a request to the “Request Data” endpoint and prints AMZN.OQ’s scores and their timestamps:

index.py
import requests
import json
3
x = requests.get(‘https://www.act-analytics.com/news-api/request_data/133713371337/AMZN.OQ,UBER.N/labor’)
5
y = json.loads(x.text)
scores = y[‘AMZN.OQ’][‘sentiment_scores’]
timestamps = y[‘AMZN.OQ’][‘time_published’]
9
print(scores, timestamps)
News as a Source

News is a powerful source of ESG information. It’s less biased than Corporate Sustainability Reports, and more timely.

ESG information in the news is material. It passed the organic, ongoing, and competitive relevance filters of the media industry; media outlets are motivated to publish stories that people care to read.

We employ a number of natural language processing (NLP) techniques. Most notably: topic classification, entity extraction, and sentiment analysis.

News is a notoriously difficult domain

...even for state of the art NLP.

We’ve developed a number of techniques and heuristics in response to the challenges

News articles are often narratives about multiple entities; more than one company, organization, person, etc. Sentiment towards each entity may be very different. Correct assignment of sentiment can depend on grammatical structure. This is more difficult than, for example, a movie review; we can assume sentiment is directed towards the movie being reviewed.

Reputable news sources tend to favor a neutral tone, providing less signal.

Human-human agreement on sentiment in news articles is not very high, and represents an upper bound on human-computer agreement.