Quantopian's community platform is shutting down. Please read this post for more information and download your code.
Back to Community
Getting the companies that release their Earnings between 2 given dates

Hi!
I wonder if there's a simple way to get a given Ticker's next earnings date.
I understand that it was once possible using EventVestor data, with something like

from quantopian.pipeline.data.eventvestor import EarningsCalendar  

Is there any way to access this data today?

In the long run I'm looking into creating a function in the research environment where I pass a date and get all the companies reporting on that date, is it something feasible?

Like, for instance,
earnings(03-04-2020) and receive a list of tickers or Q instruments IDs such as

ZM, NAV, MRVL,NAV etc...

Notice that the above is a real life example since today these companies will release their earnings...

Thanks

4 responses

There currently isn't a dataset which includes upcoming earnings report dates similar to what was included in the EventVestor data. There is the Factset Estimates - Actuals but that only includes actual (past) dates. Additionally, FactSet data has a 1 year holdout so it's not possible to get current results.

There are some online sources for this data. Yahoo has an earnings release calendar (https://finance.yahoo.com/calendar/earnings/) which may help. Not sure if historical data is available. If so, it may be able to be put into a self serve data feed?

Disclaimer

The material on this website is provided for informational purposes only and does not constitute an offer to sell, a solicitation to buy, or a recommendation or endorsement for any security or strategy, nor does it constitute an offer to provide investment advisory services by Quantopian. In addition, the material offers no opinion with respect to the suitability of any security or specific investment. No information contained herein should be regarded as a suggestion to engage in or refrain from any investment-related course of action as none of Quantopian nor any of its affiliates is undertaking to provide investment advice, act as an adviser to any plan or entity subject to the Employee Retirement Income Security Act of 1974, as amended, individual retirement account or individual retirement annuity, or give advice in a fiduciary capacity with respect to the materials presented herein. If you are an individual retirement or other investor, contact your financial advisor or other fiduciary unrelated to Quantopian about whether any given investment idea, strategy, product or service described herein may be appropriate for your circumstances. All investments involve risk, including loss of principal. Quantopian makes no guarantees as to the accuracy or completeness of the views expressed in the website. The views are subject to change, and may have become unreliable for various reasons, including changes in market conditions or economic circumstances.

Ok, past earnings are fine, too.

so here's a little prototype of what I want, the main problem so far is that I have to input the exact time to find the publication date, not just
YYYY-MM-DD but the whole YYYY-MM-DD hours-minutes-seconds. The latter might be good, too, but at least I need to find a way to have it as a range like starting date - end date

#Function: earnings report on a specific date  
#Input: Exchange; Date  
#Output: Stock tickers

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


def make_pipeline():  
    pipe = Pipeline()  

    # Create our slice for the last actual earnings data  
    fq0_eps_act = fe.Actuals.slice('EPS', 'qf', 0)  
    publication_date = fq0_eps_act.publication_date.latest  
    return Pipeline(  
        columns={  
            'publication_date' : publication_date  
        },  
    )

pipeline_output = run_pipeline(  
    make_pipeline(),  
    start_date='2017-10-23',  
    end_date='2017-10-23'  
)

#asset_list = pipeline_output.index.levels[1].unique()

pipeline_output  
pipeline_output['publication_date']=='2017-07-24 12:30:00'  

that yields:

Pipeline Execution Time: 0.17 Seconds  
2017-10-23 00:00:00+00:00  Equity(2 [ARNC])             True  
                           Equity(21 [AAME])           False  
                           Equity(24 [AAPL])           False  
                           Equity(25 [ARNC_PR])        False  
                           Equity(31 [ABAX])           False  
                           Equity(39 [DDC])            False  
                           Equity(41 [ARCB])           False  
                           Equity(52 [ABM])            False  
                           Equity(53 [ABMD])           False  
                           Equity(62 [ABT])            False  
                           Equity(64 [GOLD])           False  
                           Equity(66 [AB])             False  
                           Equity(67 [ADSK])           False  
                           Equity(70 [VBF])            False  

Getting closer, but still have problems passing dates between two ...