FactSet Estimates - Guidance

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 – Guidance is a global dataset that displays an indication or range of a company’s future metrics as reported by the publicly traded firm. Corporate Guidance data is reported by firms via press releases or transcriptions that are formatted by FactSet into a low/high range. By leveraging corporate guidance data, you can analyze a firms forward-looking statements based on key reported financial metrics. The metrics covered by this dataset match the metrics covered by the FactSet Estimates - Consensus dataset.

FactSet Estimates - Guidance 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: U.S., Europe, and Japan
  • Data Frequency: Quarterly, semi-annual, or annual (depending on the field)
  • Update Frequency: Daily (updated overnight after each trading day)
  • Timespan: 2004 to present.
  • Point-In-Time Start: November 2018
  • Holdout: 1 year

Methodology

Collection

Corporate guidance data is collected for all available metrics reported by the corporation, whether it is from the income statement, balance sheet, cash flow statement, or is an industry metric. The FactSet Estimates Team collects the data and formats the information into the low / high Guidance fields for each asset per fiscal period per item.

Adjustments

On Quantopian, all FactSet Estimates items that are denominated in units per share are adjusted for corporate actions in a point-in-time fashion. This means that all per-share field 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 Estimates - Guidance data is collected and surfaced in a point-in-time fashion on Quantopian. This corresponds to when Quantopian started downloading and storing the data on a nightly basis. Timestamps for historical data prior to November 2018 are approximated by adding 24 hours to the report_date of each record.

Usage

Guidance data is part of the quantopian.pipeline.data.factset.estimates module. Guidance data is accessible via a pipeline DataSetFamily called Guidance that can be sliced along three dimensions: freq, item, and period_offset. The result of slicing Guidance is a pipeline DataSet.

Import

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

Example

This example constructs and runs a pipeline that outputs all assets for which there has been a change in EPS guidance for the upcoming quarter. The pipeline computes the percent change of the low and high EPS guidance for the upcoming quarter and filters the output down to assets that have had a change in guidance in the last 2 trading days.

from quantopian.pipeline import Pipeline
from quantopian.pipeline.data.factset.estimates import Guidance
from quantopian.pipeline.factors import PercentChange

from quantopian.research import run_pipeline

# Slice the DataSetFamily to create a DataSet.
guid_eps_q1 = Guidance.slice('EPS', 'qf', 1)

# Get the percent change of the upper and lower bounds on the company guidance
# to see whether or not guidance has changed over the last two trading days.
earnings_change_lower = PercentChange(inputs=[guid_eps_q1.low], window_length=2)
earnings_change_upper = PercentChange(inputs=[guid_eps_q1.high], window_length=2)

pipe = Pipeline(
    columns={
        'guid_eps_q1_low': guid_eps_q1.low.latest,
        'guid_eps_q1_high': guid_eps_q1.high.latest,
        'guid_eps_q1_asof_date': guid_eps_q1.asof_date.latest,
        'guid_eps_q1_period_label': guid_eps_q1.period_label.latest,
        'guid_eps_q1_timestamp': guid_eps_q1.timestamp.latest,
        'earnings_change_lower': earnings_change_lower,
        'earnings_change_upper': earnings_change_upper,
    },
    screen=(
        earnings_change_lower.notnull()
        & earnings_change_upper.notnull()
        # A non-zero percent change indicates a change in guidance in the last
        # 2 trading days.
        & (
            (earnings_change_lower != 0)
            | (earnings_change_upper != 0)
        )
    )
)

df = run_pipeline(pipe, '2018-01-26', '2018-07-26')
df.head()

Pipeline Datasets & Columns

Dataset

Guidance - A pipeline DataSetFamily that provides access to future metrics of publicly traded companies as indicated by the companies themselves. In order to use Guidance data in a pipeline, it must first be sliced to generate a pipeline DataSet.

Slices

Guidance can be sliced along three dimensions: item, freq, and period_offset. The result of slicing Guidance is a pipeline DataSet. Note that slicing along all three dimensions is required in order to create a dataset.

  • item - Slicing along this dimension selects for reported values of the given item. The full list of items is listed below in Table 1 (Report Items). Note that Guidance must be sliced using the item code, not the description.
  • freq - Slicing along this dimension selects for the given report frequency. Valid frequecies are qf, af, and saf (quarterly, annual, and semi-annual frequency, respectively).
  • period_offset - Slicing along this dimension selects for values on reports from fiscal periods that are offset from the current simulation date by period_offset periods. The period_offset can range from -127 to 127, with positive values representing reports in the future and non-positive values (negative values and 0) representing fiscal periods that have already been reported. See the note below for an example.

Note

Calling Guidance.slice(item='EPS', freq='qf', period_offset=0) will create a dataset containing the EPS published in the most recent quarterly report, relative to the simulation date.

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

Fields

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

  • low (dtype float64) - The lower bound of the guidance range provided by the company.
  • high (dtype float64) - The upper bound of the guidance range provided by the company.
  • period_label (dtype datetime64) - The end date of the fiscal period for which the company is providing guidance.
  • asof_date (dtype datetime64) - The date when the data actually impacted trading. Therefore the asof_date may be equal to or after the publication_date.
  • 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: Report Items
Code Item Description
CFPS Cash Flow Per Share CFPS is the cash flow from operations divided by the number of shares. CFPS estimates are not provided for banking companies as FactSet Estimates does not consider this item reliable with regard to the activity of a banking company.
DPS Declared Dividend Per Share Dividends are the distributed portion of company’s earnings per share. It can be null (if no distribution is granted) or positive. A dividend cannot be negative. To enable reliable comparisons year to year, FactSet Estimates ignores exceptional dividends.
EPS Earnings Per Share EPS represents the diluted net income per common share, calculated as the company’s net income divided by the shares outstanding. EPS serves as an indicator of a company’s profitability. FactSet Estimates does not make adjustments to the EPS data provided by the analyst. As many methodologies exist, FactSet does collect and provide different EPS flavors detailed below. The majority methodology, i.e., what the market is expecting as a reference for the company’s numbers can be summed up by region. For European equities, EPS is adjusted for exceptional and any non-recurring items. For Asian equities, EPS is "as reported" (as per local GAAP standards). For US, Canada & South Africa, EPS methodology reflects the analysts’ and company’s standards ("Market EPS").
EPS_C Consolidated EPS Consolidated EPS represents the earnings per share for a given company or security merged with its affiliates. For more information on earnings per share, refer to the EPS item.
EPS_P Standalone Earnings Per Share Standalone EPS represents the earnings per share for a given company or security on a non-consolidated basis. For more information on earnings per share, refer to the EPS item.
SALES Sales Sales represent the revenue generated from customers. It shows the total of goods & services net sales, invoiced by a company during a particular fiscal period. The sales item collected by FactSet reflects the majority methodology followed by the Street. For most companies, it corresponds to net sales, but it can represent any of net sales, total revenue, gross or net premiums written (insurance companies), net premiums earned (also insurance companies), consolidated sales, or standalone sales.
SALES_C Consolidated Sales Sales for a given company or security merged with its affiliates.
SALES_P Standalone Sales Sales for a given company or security on a non-consolidated or parent basis.