FactSet Estimates - Long Term

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 - Long Term is a global dataset that provides insight into non-fiscal (long term) consensus estimates based on broker reports. Long term estimates includes two items, 6 to 12 month price target and 3 to 5 year EPS growth, that allow you to analyze the long term projected outlook of a company.

FactSet Estimates - Long Term 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: 6-12 months (price target) or 3-5 years (EPS growth)
  • 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, long term estimates calculated by FactSet are based on estimates that have been validated via broker research within a trailing 100-day window.

Adjustments

On Quantopian, all FactSet Estimate items that are denominated in units per share are adjusted for corporate actions in a point-in-time fashion. For long term estimates, price target estimates are adjusted as of the simulation date of a pipeline or backtest run. This matches the method that Quantopian uses to adjust pricing data.

Point-In-Time

Starting in November 2018, FactSet long term estimates data is collected and surfaced in a point-in-time fashion on Quantopian. This corresponds to when Quantopian started downloading and storing long term estimates 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

Long term estimates data is part of the quantopian.pipeline.data.factset.estimates module. Long term estimates are accessible via a pipeline DataSetFamily called LongTermConsensus that can be sliced along one dimension: item. The result of slicing LongTermConsensus is a pipeline DataSet.

The sections below provide more information on the LongTermConsensus dataset including the list of supported items and a code example.

Import

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

Example

This example constructs and runs a pipeline that gets the consensus estimate 6-12 month price target and 3-5 year EPS growth. In addition, an estimated price growth factor (called est_price_growth) is computed by taking the relative difference between the price target and the previous day's close price for each asset. Note that the example uses the LongTermConsensus dataset family with the EquityPricing dataset to construct the est_price_growth factor. Run in the Research environment.

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

# Slice the LongTermConsensus dataset family into datasets
# for price target and long term EPS growth.
price_tgt_cons = fe.LongTermConsensus.slice('PRICE_TGT')
eps_gr_cons = fe.LongTermConsensus.slice('EPS_LTG')

# Get the latest mean consensus price target and EPS growth.
price_tgt_mean = price_tgt_cons.mean.latest
eps_gr_mean = eps_gr_cons.mean.latest

# Define an estimated price growth factor by taking the relative
# difference between the 6-12 month price target and yesterday's
# close price.
yesterday_close = EquityPricing.close.latest
est_price_growth = (price_tgt_mean - yesterday_close) / yesterday_close

pipe = Pipeline(
        columns={
                'price_tgt_mean': price_tgt_mean,
                'eps_gr_mean': eps_gr_mean,
                'yesterday_close': yesterday_close,
                'est_price_growth': est_price_growth,
        },
        domain=US_EQUITIES,
        screen=est_price_growth.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

LongTermConsensus - A pipeline DataSetFamily that provides access to non-fiscal (long term) consensus estimates. In order to use LongTermConsensus data in a pipeline, it must first be sliced to generate a regular pipeline DataSet.

Slices

LongTermConsensus can be sliced along one dimension: item. The result of slicing LongTermConsensus is a pipeline DataSet. Note that slicing LongTermConsensus is required in order to create a dataset.

  • item - Slicing along this dimension selects for estimated values of the given item. There are two supported items, described below in Table 1 (Long Term Estimate Items). Note that LongTermConsensus must be sliced using the item code, not the description.

Note

Calling LongTermConsensus.slice(item='PRICE_TGT') will create a dataset containing consensus estimates for the 6-12 month the price target. This dataset will have columns allowing you to use aggregate values of each consensus estimate, such as the mean, median, high, and low.

Slicing a DataSetFamily creates a DataSet with fields accessible as BoundColumn attributes. The set of fields accessible in a DataSet sliced from LongTermConsensus are listed below.

Fields

Each slice of LongTermConsensus creates a pipeline DataSet with 10 fields (accessible as BoundColumn attributes):

  • mean (dtype float64) - The mean estimate value forecasted within FactSet’s consensus window for the specified item.
  • median (dtype float64) - The median estimate value forecasted within FactSet’s consensus window for the specified item.
  • low (dtype float64) - The lowest current estimate forecasted within FactSet’s consensus window for the specified item.
  • high (dtype float64) - The highest current estimate forecasted within FactSet’s consensus window for the specified item.
  • std_dev (dtype float64) - The measure of the dispersion (standard deviation) of estimates around the consensus value within FactSet’s consensus window for the specified item.
  • up (dtype float64) - The number of estimates revised up within FactSet’s consensus window for the specified item.
  • down (dtype float64) - The number of estimates revised down within FactSet’s consensus window for the specified item.
  • num_est (dtype float64) - The number of estimates included in the consensus values, forecasted within FactSet’s consensus window for the specified item.
  • asof_date (dtype datetime64) - The earliest date the consensus value was effective.
  • timestamp (dtype datetime64) - 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.
Table 1: Long Term Estimate Items
Code Item Description
PRICE_TGT Target Price Target Price is the future price that an analyst considers for a particular stock. It represents the projected price over the next 6 to 12 months.
EPS_LTG Long Term Growth Long Term Growth is the annual earnings per share (EPS) growth that analysts predict a company can sustain over the next 3 or 5 years.