I’m trying to download a dataset from IBES, (I have access through my university wrds database (a renewable one-day pass)). However it seems impossible to download consensus data for the Dutch AEX market stocks.

I have tried every Code possible but no succes. Does anyone know whether there is some kind of special code I need to use?

I did try to download recommendation data for stocks like Google, which does work.

But when trying for Dutch stocks I get the message: No output available

I hope someone can help me out.

]]>Thank you all for your help!

Karena

I feel so confused about how to use IBES even if I read teh manual twice…

1) the manual says it contains up to 5 fiscal year and 8 quarters estimate…...but when I use the database…the date variable I can pick over 10 years..is that contradicted?

2) I need to get 2005-2014 all the firms’ analyst forecast EPS and announced actual EPS…...should I pick the forecast year end as the date variable or announce date as the date variable? I feel so dizzy….

3) what is FPI for the database? Why we need it?

The manual does not help that much unfortunately….. I really need some help. Thank you!

]]>I have a question concerning the median estimate output in the IBES Summary History category.

Whenever I choose a firm, a time frame, EPS, Fiscal Year 1, the median estimate and standard deviation for my output I get multiple median estimates and standard deviations.

As I only need one value this poses a problem because I cannot do anything with these multiple median, standard deviation combinations. Is there a way that I only get one median estimate and one standard deviation per company and forecast period?

Thanks in advance

Best regards

Nikolai

I need to find out how many analysts following a company. I know there are two databases that I can look at: Summary and Detail.

So I searched the company with Ticker “AA” for year 2011 and the month is Febrary in both databases.

The Summary shows:

OFTIC TICKER FPEDATS MEASURE STATPERS FPI NUMEST MEDEST MEANEST

AA AA 20111231 EPS 20110217 1 15 1.25 1.28

The Detail shows:

OFTIC TICKER FPEDATS MEASURE ANNDATS FPI ACTDATS REVDATS ESTIMATOR VALUEAA

AA AA 20111231 EPS 20110211 1 20110214 20110321 00042 1.160

Both are for company AA, next year EPS, in Feb, 2010. Why the summary shows that there are 15 times of estimate and the Detail only shows one estimate?

I know there are differences between these two database and I read somewhere in the Forum about this question. However, I can not find those articles.

Thank you for your help.

]]>

I am trying to calculate forecast accuracy using the IBES database.

The exact calculation is as follows: absolute value of (“the median of one year ahead analysts’ forecasts for EPS for period t ” minus “actual EPS in period t”) divided by “price per share at the beginning of period t.”

Now I am a bit confused as how to do this in IBES. This is what I have so far:

• Median of one year ahead analysts’ forecasts of EPS.

I downloaded the IBES Unadjusted Summary file (FPI = 2, since I need one year ahead estimates): this gives me monthly median EPS estimates. I think alternatively I could also download the unadjusted detail file and then calculate the median estimates per month, but I guess this should be approximately the same.

• Actual EPS:

Here I use FPI = 1. I downloaded the IBES Adjusted Summary file with the data item “actuals from details files” (the unadjusted summary file does not have this actual data item). These actuals seem to match with the results of IBES Detail Unadjusted Actuals file, which I also downloaded. So far so good.

My problem = the periods do not match.

Actual EPS: these are given on an annual basis (is this EPS at fiscal year end?).

Forecasted median EPS: monthly median estimates (in Summary file), or monthly detailed estimates (from Details file).

What should I do? Take the average of the 12 monthly median estimates from the Summary file to come to an “average” median estimate per fiscal year & then compare this with the annual actual EPS? I am not sure how else to fix it.

Moreover, I am not sure where to get the price per share at the beginning of period t. It seems that I cannot get this out of IBES. Can I perhaps use the pccc-f (closing price, fiscal) from Compustat and then match on the basis of 9 digit CUSIPS?

Any help is very much appreciated! Thank you in advance for your time and effort.

Best regards,

Elisa

]]>I am currently looking for summary analyst forecasts for the next 5 years for some US companies. Could you please indicate to me the steps, provided that these Information are obtainable at all. Which financial indicator do I have to chose?

Thanks and kind wishes!

]]>Recently just ran into this issue. Normally, I just assume that IBES got those estimation and forecast from the analyst reports. Another words, each record in the recommendation table and detail history table is corresponding to one analyst report. But to be careful, I am trying to find the hard evidence to back up this assumption.

From WRDS website, the IBES Manuals and overview, I found the “Methodology for Estimates October 2009”,

Link:

https://wrds-web.wharton.upenn.edu/wrds/support/Data/_001Manuals and Overviews/_003I-B-E-S/index.cfm

On page 20, in the example, it mentioned

“On November 30, 2006, Broker XYZ told Thomson Reuters that their $2.20 should have been $2.26. Broker XYZ provides documented proof that the estimate that was sent to Thomson Reuters via a feed was incorrect, and that their research reports support that the estimate is actually $2.26. Thomson Reuters will apply the correct value to the detail estimate for the applicable quarter, on the date that the estimate was effective. Because of the change, the mean will change to $2.17. In this scenario, the “as-was” mean is $2.15 and the “error-corrected” mean is $2.17.””

I am not sure this can be the hard evidence or not. Is there anyone know where IBES has a clear clarification about this issue? Thanks a lot.

Regards

]]>I am using IBES analysts forecast revision and CRSP for stock prices.

I am quite new to SAS and I have been trying to figure out how to form portfolio of analysts forecast revision to examine stock price drift for 1month, 3months, 6months, 12months and 24months. What I am trying to achieve is to hold stocks at time t, and buy or sell stocks according to the degree of analysts’ forecast revision (1 = lowest (SELL) and 5 = highest (BUY)) at time t, and find the cumulative returns for 1,3,6,12 and 24 months of the stocks bought or sold at time t. (Without changing the portfolio). In other words, stocks will stay in the portfolio at time t and I will buy or sell according to the ranking of analysts’ forecast revision.

HOWEVER, I only can manage to find stock returns at time t to analysts’ forecast revision portfolio at time t, and I cant get the codes for the cumulative returns.

Below are my codes:

/* Step 1. Specifying Options */

%let J=6; /* Formation Period Length: J can be between 3 to 12 months - can be adjusted */

%let K=6; /* Holding Period Length: K can be between 3 to 12 months - can be adjusted*/

%let begdate=01JAN1994;

%let enddate=31DEC2014;

run;

/* Step 2. Assign Ranks to the Next 6 (K) Months After Portfolio Formation */

/* Forecast_revision_portfolio is the portfolio rank variable taking values between 1 and 5: */

/* 1 - the lowest momentum group: Losers */

/* 5 - the highest momentum group: Winners */

data getr_2 ;

set getr_2;

HDATE1 = intnx(“MONTH”,date, 0,“B”)-1;

HDATE2 = intnx(“MONTH”,date,&k-1,“E”);

format HDATE1 HDATE2 monyy.;

label HDATE1= “First Holding Date”;

label HDATE2= “Last Holding Date”;

run;

/* Portfolio returns are average monthly returns rebalanced monthly */

proc sql;

create table getr_3

as select distinct*

from getr_2 as a, recency as b

where a.cusip=b.cusip

and a.HDATE1<=b.date<=a.HDATE2

order by cusip, date;

quit;

/* Step 4. Calculate Equally-Weighted Average Monthly Returns */

proc sort data=getr_3 nodupkey; by cusip date analys; run;

proc sort data=getr_3; by date forecast_revision_rank HDATE1;run;

/* Calculate Equally-Weighted returns across portfolio stocks */

/* Every date, each MOM group has J portfolios identified by formation date */

proc means data = getr_3 noprint;

by date forecast_revision_rank HDATE1;

var mean_returns;

output out = umd3 mean=mean_returns;

run;

/* Portfolio average monthly returns */

proc sort data=umd3; by date Forecast_revision_rank;

where year(date) >= year(”&begdate;“d);

run;

/* Create one return series per MOM group every month */

proc means data = umd3 noprint;

by date forecast_revision_rank;

var mean_returns;

output out = ewretdat mean= ewret std = ewretstd;

run;

proc sort data=ewretdat; by forecast_revision_rank ; run;

Title “Table 1: Returns of Analysts’ Forecast Revision Portfolios”;

Title2 “Portfolios based on 6 months lagged return and held for 6 months”;

proc means data=ewretdat n mean t probt;

class Forecast_revision_rank;

var ewret;

run;

/* Step 5. Calculate Long-Short Portfolio Returns */

proc sort data=ewretdat; by date Forecast_revision_rank; run;

proc transpose data=ewretdat out=ewretdat2

(rename = (_1=SELL _2=PORT2 _3=PORT3 _4=PORT4 _5=BUY)

drop=_NAME_ _LABEL_);

by date;

id Forecast_revision_rank;

var ewret;

run;

/* Compute Long-Short Portfolio Cumulative Returns */

data ewretdat3;

set ewretdat2;

by date;

LONG_SHORT=BUY-SELL;

retain CUMRET_BUY CUMRET_SELL CUMRET_LONG_SHORT 0;

CUMRET_BUY = (CUMRET_BUY+1)*(BUY+1)-1;

CUMRET_LOSERS = (CUMRET_SELL +1)*(SELL +1)-1;

CUMRET_LONG_SHORT = (CUMRET_LONG_SHORT+1)*(LONG_SHORT+1)-1;

format BUY SELL LONG_SHORT PORT: CUMRET_: percentn12.1;

run;

proc means data=ewretdat3 n mean t probt;

var BUY SELL LONG_SHORT;

run;

Below is a screen shot of the table:

DATE CUSIP COMNAM Adjusted_Price high days_since_52WH Returns mean_returns RR obsno analys fpedats Forecast_Revision forecast_revision_Rank HDATE1 HDATE2

Jun-06 00036020 AAON INC 5.068641945 5.635555691 37 0.009441376 0.004199479 4 121980 112011 30-Jun-06 0.33408324 5 May-06 Nov-06

Jun-06 00036020 AAON INC 5.068641945 5.635555691 37 0.009441376 0.004199479 4 121980 79788 30-Jun-06 0.466816648 5 May-06 Nov-06

Nov-06 00036020 AAON INC 5.515061743 5.730370416 11 0.034074077 0.00757694 4 Oct-06 Apr-07

Jan-07 00036020 AAON INC 5.428148058 5.730370416 51 -0.006148285 0.002447311 3 Dec-06 Jun-07

Feb-07 00036020 AAON INC 5.485432189 5.827160494 7 0.000720737 0.000650488 4 Jan-07 Jul-07

May-07 00036020 AAON INC 5.868641794 5.929876634 13 -0.003020139 0.005742444 4 Apr-07 Oct-07

Jul-07 00036020 AAON INC 5.908148118 6.806913399 9 -0.009602679 -0.002715823 5 Jun-07 Dec-07

Aug-07 00036020 AAON INC 6.204444603 6.816789792 19 0.030004949 0.002654603 5 Jul-07 Jan-08

Oct-07 00036020 AAON INC 5.410370438 6.816789792 61 0.033389935 -0.003414025 3 Sep-07 Mar-08

Nov-07 00036020 AAON INC 5.638518722 6.816789792 82 0.004221632 0.002566941 3 Oct-07 Apr-08

Dec-07 00036020 AAON INC 5.872592502 6.816789792 102 -0.025086091 0.00248648 2 121980 107780 31-Dec-07 -0.320916905 1 Nov-07 May-08

Please help my guardian angels. Thank You.

I am using IBES to find analysts’ forecast revision for my research and I am using SAS 9.4 for cleaning up my data. My analysts’ forecast revision is measured by = ((forecast at time t - median forecast at time t-1quarter)/forecast at time t-1quarter). However I am facing issues with lagging the previous forecast at time t-1quarter.

My main story is to achieve: if fpedats (aka forecasting date) is a quarter (3 months) or less than the previous fpedats, then i would lag the median_forecast of previous quarter t onto VALUELAG variable so that I can calculate the value of analysts forecast revision. This VALUELAG variable is conditioned on cusip (specific firm) as well. If fpedats at time t is more than a quarter (3 months), then VALUELAG will be empty.

HOWEVER: How can I hardcode or smartcode it to apply the conditions to all my VALUELAG row variables? If you see the excel file, what I have is that some VALUELAG values are empty for all the subsequent variables?

below are my coding:

/*To establish BDATE and EDATE to prepare to lag median_forecast - which i calculate previously*/ /* I have found the median EPS forecast in previous coding*/

data Thesis.forecastquarterly_median_mean;

set Thesis.forecastquarterly_median_mean;

BDATE=INTNX(‘MONTH’,fpedats,-3,‘B’);

EDATE=INTNX(‘MONTH’,fpedats,0,‘E’);

FORMAT BDATE DATE9.;

FORMAT EDATE DATE9.;

RUN;

/* create forecast_sum1 with important variables to find Analysts forecast revision*/

PROC SQL;

CREATE TABLE forecast_sum1 AS SELECT A.cusip, A.cname, A.obsno, A.analys, A.fpi, A.value, A.announce_dttm, A.actvtn_dttm, A.review_dttm, A.fpedats,A.actual,A.BDATE, A.EDATE, B.*

FROM Thesis.forecastquarterly_median_mean AS A INNER JOIN

work.sample AS B

ON A.cusip=B.cusip AND A.EDATE = B.fpedats AND A.announce_dttm < B.fpedats

order BY cusip,fpedats;

QUIT;

/*to remove extra duplicates*/

proc sort data=work.forecast_sum1 nodupkey;by cusip fpedats;

run;

/* Conditioning ValueLag (aka. median_forecast) based one BDATE < fpedats (aka forecast end date) less than 30 days and condition on cusip (firm’s code number) */

data work.forecast_sum1;

set work.forecast_sum1;

by CUSIP fpedats;

VALUELAG = ifn(BDATE - lag(fpedats) <=30 and EDATE NE lag(fpedats) and cusip EQ lag(cusip), lag(median_value),.); /* if conditions are met, then print lagged median value*/

run;

THANK YOU JOOST!