FactSet Estimates - Broker Recommendations

The datasets described herein are proprietary to FactSet Research Systems, Inc. ("FactSet") and may not be copied or distributed. The datasets made available to Quantopian by FactSet are not exhaustive of FactSet's data, products, software, and/or services.

Copyright © 2019 FactSet Research Systems Inc. All rights reserved.

Overview

FactSet Estimates - Broker Recommendations is a global dataset that provides insight based on consensus broker recommendations. By leveraging broker recommendations data, you can analyze the streets consensus recommendation of an asset based on a unified rating scale.

FactSet Estimates - Broker Recommendations data is available via the Pipeline API, which means it can be accessed in Research and the IDE.

Note

Global data is available in Pipeline in Research. The IDE only has access to US equity data at this time.

Properties

  • Coverage: All supported countries on Quantopian
  • Data Frequency: Daily
  • Update Frequency: Daily (updated overnight after each trading day)
  • Timespan: 2004 to present.
  • Point-In-Time Start: November 2018
  • Holdout: 1 year

Methodology

Consensus Window

By default, consensus broker recommendations calculated by FactSet are based on estimates that have been validated via broker research within a trailing 100-day window.

Rating Categories

FactSet consensus broker recommendations are divided into five broad categories: Buy, Overweight, Hold, Underweight, and Sell. Then, a rating of between 1 and 3 is attributed to each category according to the table below.

Rating Description
1 Buy
1.5 Overweight
2 Hold
2.5 Underweight
3 Sell

Recommendation Consistency

The FactSet Estimates database builds out a recommendation dictionary for each broker which tells exactly how each of their recommendations corresponds to FactSet's own categories. FactSet Estimates implements this system to keep recommendations consistent across the FactSet database. Not every broker uses the same recommendations that FactSet have in place; therefore, FactSet works with all of its contributors in order to correctly map their recommendations. By doing so, FactSet ensures that its contributor recommendations are captured correctly in the Estimates Database.

Point-In-Time

Starting in November 2018, FactSet broker recommendations data is collected and surfaced in a point-in-time fashion on Quantopian. This corresponds to when Quantopian started downloading and storing broker recommendations data on a nightly basis. Timestamps for historical data prior to November 2018 are approximated by adding 24 hours to the asof_date of each record.

Usage

Broker recommendations data is part of the quantopian.pipeline.data.factset.estimates module. Broker recommendations are accessible via a pipeline DataSet called ConsensusRecommendations. The columns of the ConsensusRecommendations dataset can be used like any other pipeline DataSet.

Import

from quantopian.pipeline.data.factset.estimates import ConsensusRecommendations

Example

This example constructs and runs a pipeline that gets the latest consensus broker recommendations for all US equities using the ConsensusRecommendations dataset. Note that the pipeline includes the number of buy, overweight, hold, underweight, and sell recommendations as well as the mark (average score based on rating), asof date, timestamp, and other fields. Run in the Research environment.

from quantopian.pipeline import Pipeline
import quantopian.pipeline.data.factset.estimates as fe
from quantopian.pipeline.domain import US_EQUITIES
from quantopian.research import run_pipeline

# Create a reference to the ConsensusRecommendations dataset.
fe_rec = fe.ConsensusRecommendations

# Create a pipeline that gets the most recent recommendations for
# all US equities.
pipe = Pipeline(
    columns={
        'rec_buy': fe_rec.buy.latest,
        'rec_overweight': fe_rec.over.latest,
        'rec_hold': fe_rec.hold.latest,
        'rec_underweight': fe_rec.under.latest,
        'rec_sell': fe_rec.sell.latest,
        'rec_total': fe_rec.total.latest,
        'no_rec': fe_rec.no_rec.latest,
        'rec_mark': fe_rec.mark.latest,
        'rec_asof': fe_rec.asof_date.latest,
        'rec_ts': fe_rec.timestamp.latest,
    },
    domain=US_EQUITIES,
    screen=fe_rec.total.latest.notnull(),
)

# Run the pipeline over a year and print the first few rows of the result.
df = run_pipeline(pipe, '2015-05-05', '2016-05-05')
print(df.head())

Pipeline Datasets & Columns

Dataset

ConsensusRecommendations - The ConsensusRecommendations dataset (located in the quantopian.pipeline.data.factset.estimates module) is a pipeline DataSet that provides access to consensus broker recommendations.

Fields

The ConsensusRecommendations dataset has 10 fields (accessible as BoundColumn attributes):

  • buy (dtype float64) - The number of recommendations in the consensus that fall into the buy category.
  • over (dtype float64) - The number of recommendations in the consensus that fall into the over category.
  • hold (dtype float64) - The number of recommendations in the consensus that fall into the hold category.
  • under (dtype float64) - The number of recommendations in the consensus that fall into the under category.
  • sell (dtype float64) - The number of recommendations in the consensus that fall into the sell category.
  • total (dtype float64) - The total number of recommendations included in the consensus recommendation.
  • mark (dtype float64) - A numeric value based on a standardized rating (listed above factset-estimates-broker-recommendation-ratings) representing the consensus of broker recommendations.
  • no_rec (dtype float64) - The number of brokers where no recommendation is available.
  • asof_date (dtype datetime64[ns]) - The effective date of the consensus recommendation record.
  • timestamp (dtype datetime64[ns]) - The datetime when Quantopian learned about the data point from FactSet. For data prior to November 2018, the timestamp is equal to the asof_date + 24 hours.