Difference between revisions of "Winner's Curse in Acquisitions (Academic Paper)"

From edegan.com
Jump to navigation Jump to search
 
(18 intermediate revisions by 4 users not shown)
Line 1: Line 1:
 
{{AcademicPaper
 
{{AcademicPaper
|Title=Winner's Curse in Acquisitions (Academic Paper)
+
|Has title=Winner's Curse in Acquisitions (Academic Paper)
|Author=Ed Egan, Jim Brander
+
|Has author=Ed Egan, Jim Brander
|RAs=Amir Kazempour, Will Cleland, Jake Silberman
+
|Has RAs=Amir Kazempour, Will Cleland, Jake Silberman
|Status=R&R
+
|Has paper status=Published
 
}}
 
}}
  
==WHAT MATTERS==
+
==Summary==
Ed - Review code for distance and triple join
 
  
Amir - Literature review of Governance measures - Tell Will and Jake what to pull
+
This paper finds evidence consistent with a Winner's Curse in the acquisitions of privately-held firms. This Winner's Curse is aggravated when there are more potential bidders and/or greater information asymmetries.
  
Will - Continue cleaning, run SDCv2 and SDCBase through the previous code and work on triple join
+
The paper was accepted for publication in the Quarterly Review of Economics and Finance in February of 2017.
 +
 +
==Dbase Notes==
 +
 
 +
--SDC_TABLE.sql --START AT NEW CODE
 +
 +
SDC --Raw data in
 +
SDCBase --No dups
 +
SDCV2 --Code and restrict 40216
 +
SDCNo --Build AcqNo
 +
SDCA1 --Add previous acqs
 +
SDCA2 --Add bin for IT (from SDCwIT)
 +
SDCA3 --Add bin for pub/priv (from SDC_test)
 +
SDCA4 --Add indu FE (40216)
 +
 +
 +
--CRSP_TABLE.sql
 +
 +
CRSPFinal --Processed Raw
 +
CRSPMain --w/ cusip6
 +
CRSPRelNoInc --Add in the DayNo and lose irrelevant CUSIP
 +
EstimationBaseNoDups
 +
Estimation1-5 5 --output tables
 +
EstimationTotal --THIS IS LIKELY DEPRECATED
 +
 +
Competition
 +
 +
EventBase --Only SDC relevant CUSIP -3 to +3
 +
...
 +
Flatten1 -- Rn3 to Rp3 and VRn3 to VRp3
 +
Flatter -- Collapse 32109
 +
 +
EstimationOutput --Load it back up 30950
 +
AbnormalReturn1 --Join back to Flatter
 +
ABR2 --Abnormal returns (plus momentum)
 +
AbRet --CARs 30950
 +
 +
-------------
 +
Turnover --NEEDS REWORKING
 +
tobinq --
 +
CPI
 +
 +
Below that is supersceeded
 +
 +
--GOV_Table and GOVERNANCE_NOTES.txt
 +
--Malmendier_tate.sql
  
Jake - Continue VC Fixed Effect measure
 
  
 
==List of Variables==  
 
==List of Variables==  
Line 50: Line 93:
 
| Previous Acquisitions || SDC || SDCA4
 
| Previous Acquisitions || SDC || SDCA4
 
|-
 
|-
| Sales || Compustat || SDCA4
+
| Sales || Compustat || tobinxcompxsdcboom
 
|-
 
|-
 
| Tobin's Q || Compustat || tobinxcompxsdcboom
 
| Tobin's Q || Compustat || tobinxcompxsdcboom
Line 377: Line 420:
 
*Data dictionary for SDC MA: http://www.edegan.com/repository/DD-ThomsonSDCMA.txt
 
*Data dictionary for SDC MA: http://www.edegan.com/repository/DD-ThomsonSDCMA.txt
  
==Governance Variables==  
+
==Governance_Final Table (Amir)==
A list of governance variables can be found in: E:\McNair\Projects\Winner's Curse\Data\GovernanceVARS
+
UPDATE Nov 22, 3:30 pm: All null entries are now stored as 0. Modified SQL codes can be found in GOV_Table- NULL AS ZERO.sql
 +
 
 +
 
 +
Table Name: governance_final
 +
 
 +
Database: winner
 +
 
 +
Data: ISS (formerly RiskMetrics) - QUERY saved under 'RiskMetrics' in WRDS
 +
 
 +
Coverage:2007-2015
 +
 
 +
Summary:
 +
SELECT COUNT(*) FROM governance_final;
 +
count
 +
-------
 +
40005
 +
(1 row)
 +
 
 +
SELECT COUNT(DISTINCT CUSIP) FROM governance_final;
 +
count
 +
-------
 +
  2209
 +
(1 row)
 +
 
 +
SELECT COUNT(DISTINCT(CUSIP, year)) FROM governance_final;
 +
count
 +
-------
 +
13332
 +
(1 row)
 +
 
 +
Text file is saved in:
 +
E:\McNair\Projects\Winner's Curse\Governance\RiskMetrics-0b578b37fbb59afa.txt
 +
 
 +
Variable Description is saved in
 +
E:\McNair\Projects\Winner's Curse\Governance\Var-Gov-Desc.pdf
 +
 
 +
SQL code file for the table is saved in
 +
E:\McNair\Projects\Winner's Curse\Data\SQL\GOV_Table.sql
 +
 
 +
The variables are coded as follows:
 +
0 NO
 +
1 YES
 +
NULL NULL
 +
otherwise see the following file:
 +
E:\McNair\Projects\Winner's Curse\Data\SQL\GOVERNANCE_NOTES.txt
 +
 
 +
or here:
 +
  BLANKCHECK NuLL/YES/NO
 +
  CARVE_OUT NULL/YES/NO
 +
  CBOARD NULL/YES/NO
 +
  CONAME
 +
  CONFVOTE NULL/YES/NO
 +
  CUMVOTE NULL/YES/NO
 +
  CUSIP
 +
  DUALCLASS NULL/YES/NO
 +
  FAIRPRICE NULL/YES/NO
 +
  GPARACHUTE NULL/YES/NO
 +
  LABYLW NULL/YES/NO
 +
  LACHTR NULL/YES/NO
 +
  LEGACYPPS_ID NO ENTRY ---> DROPPED
 +
  LSPMT NULL/YES/NO
 +
  LWCNST NULL/YES/NO/UNANIMOUS= 2
 +
  MAJ_VOTE_REQUIRED NULL/CAST=1/OUTSTANDING=2
 +
  MAJ_VOTE_REQUIREMENT NULL/NO=0/BY-LAWS=1/POLICY=2/CHARTER=3
 +
  MAJOR_VOTE_COMM USELESS ---> DROP
 +
  PPILL NULL/YES/NO
 +
  RESIGN_REQUIRE NULL/NO=0/ POLICY=1/ BYLAWS-CHARTER=2
 +
  SIC varchar(4)
 +
  TICKER varchar(5)
 +
  TIER DROPthis
 +
  UNEQVOTE NULL =0, ELSE =1 DEPOSITORY R/TIME-PHASED/GOLDEN SHARES/FIXED VOTING RI/GOLDEN SHARE/PRIORITY SHA/PRIORITY SHARES/FIXED VOTING/YES/TIME-PHASED VOT/DEPOSITORY RECE
 +
  OO_BUSCOMP NULL/YES/NO
 +
  OO_CASHOUT_PA NULL/YES/NO
 +
  OO_CSA NULL/YES/NO
 +
  OO_DUTIES NULL/YES/NO
 +
  OO_FAIRPRICE NULL/YES/NO
 +
  OO_PP NULL/YES/NO
 +
  OO_RPROFITS NULL/YES/NO
 +
  OO_STAKEHOLDER NULL/YES/NO
 +
  YEAR int
 +
  RT_ID int
 +
  MEETINGDATE date
 +
  COMPANY_ID int
 +
  STATE LEAVE AS VARCHAR
 +
  CHARTER_AMEND_VOTEPCNT real
 +
  FYEND int
 +
  LAW_AMEND_VOTEPCNT real
 +
  MTGMONTH int
 +
  PRICE real
 +
  SPINDEX LEAVE AS VARCHAR
 +
  SPL_MEET_VOTEPCNT real
 +
  SUPERMAJOR_PCNT real
 +
  WRITTEN_CONSENT_VOTEPCNT real
 +
 
 +
Merging with CRSP:
 +
Q) Is CUSIP in RiskMetrics current or historical?  How can I use it to merge with CRSP?
 +
A) The Legacy files have the current CUSIP.  With each update, WRDS updated the historical data with the latest value.  Starting with the new Director and Governance files, we no longer modify the historical data.
 +
To merge any of these datasets with CRSP, you can join on the NCUSIP field.  This will match a single Permco (company identifier), but you may still need to select the primary Permno because some companies issue more than  1 security.
 +
 
 +
Merging EXECUCOMP AND IRRC:
 +
Q) What is the best way to merge Execucomp and IRRC (director and governance) databases?  I understand they both have CUSIP, but that matching with CUSIPs isn't always ideal since the CUSIP can change over time for the  same firm. 
 +
A) All Execucomp (CUSIP), IRRC Governance (CN6), and IRRC Directors (CUSIP) CUSIPs are header cusips, in that they reflect the most recent CUSIP that the company has had. There are however 2 main differences between  Execucomp's CUSIP and IRRC's CUSIP and CN6:
 +
1. While Execucomp uses 8-digit CUSIP, both IRRC datasets have 6-digit CUSIPs. Therefore, you need to use a SAS function like "substr" to take the first 6-digit of Execucomp CUSIP before merging it to IRRC data. ex: cusip6  = substr(CUSIP,1,6);
 +
2. While header convention reflect "most recent" value of an identifier variables, it is dependent on the date of update of each dataset. Therefore, for CUSIPs that change in between the time that both databases are updated, you might find some discrepancy. To overcome this issue, we recommend that you make use of the CRSP name files (ex: stocknames), that contains all historical CUSIPs that a company has had.
 +
 
 +
 
 +
 
 +
Also, good to know:
 +
Best Identifier to Use in RiskMetrics Directors- Changes to Identifier between Legacy and Current Files
 +
1. The primary identifier in the current dataset is year-ticker-director_detail_id. Ticker is better populated than cusip in earlier years, but should be about the same in the latest years. For the legacy directors, director_detail_id was in use for some years and legacy_director_id for others.
 +
2. Cusips in the legacy file are "header". With each update, WRDS modified all previous cusips for a company to match the latest. Although it may help in some cases, it may hurt in others and it is not quite the way the data    was delivered. Starting with the new directors file, Cusips appear in the file as they were delivered (effectively making them historical going forward). Cusips in the legacy data were also uniformly truncated to 6 digits for    consistency. The new file reports them as they are delivered, typically (but not always) 9 digits.
 +
3. Tickers were not changed over time and appear as they were delivered. One example is legacy company id (legacy_pps_id) 25 has tickers ASN and IKN.
 +
4. Each time IRRC - ISS - Riskmetrics was acquired, new identification methods were introduced. This is why you see legacy company and director IDs.  Neither is more correct, we recommend choosing the most populated one for  the years in which you are working.
 +
5. Constructing a complete time series in the directors data is not easy. There is no single variable that is populated for all companies and all years.
 +
6. Be very careful when combining the legacy data (through 2006) and the current data (from 2007). They were separated because the collection methods and meaning of some variables changed.
  
 
==Paper Discussion==
 
==Paper Discussion==
Line 963: Line 1,120:
 
*[[E-mail Chain on Winner's Curse]]
 
*[[E-mail Chain on Winner's Curse]]
 
*[[Malmendier & Tate CEO Overconfidence]]
 
*[[Malmendier & Tate CEO Overconfidence]]
 +
*[[Overconfidence Papers]]
  
 
==Resources==
 
==Resources==
 
*[[SDC Platinum]]
 
*[[SDC Platinum]]
 
*[[Venture Expert]]
 
*[[Venture Expert]]

Latest revision as of 17:14, 22 March 2017

Academic Paper
Title Winner's Curse in Acquisitions (Academic Paper)
Author Ed Egan, Jim Brander
RAs Amir Kazempour, Will Cleland, Jake Silberman
Status Published
© edegan.com, 2016


Summary

This paper finds evidence consistent with a Winner's Curse in the acquisitions of privately-held firms. This Winner's Curse is aggravated when there are more potential bidders and/or greater information asymmetries.

The paper was accepted for publication in the Quarterly Review of Economics and Finance in February of 2017.

Dbase Notes

--SDC_TABLE.sql --START AT NEW CODE

SDC --Raw data in
SDCBase --No dups
SDCV2 --Code and restrict 40216
	SDCNo --Build AcqNo 
SDCA1 --Add previous acqs
SDCA2 --Add bin for IT (from SDCwIT)
SDCA3 --Add bin for pub/priv (from SDC_test)
SDCA4 --Add indu FE (40216)


--CRSP_TABLE.sql

CRSPFinal --Processed Raw 
CRSPMain --w/ cusip6
CRSPRelNoInc --Add in the DayNo and lose irrelevant CUSIP
EstimationBaseNoDups
Estimation1-5 5 --output tables
EstimationTotal --THIS IS LIKELY DEPRECATED

	Competition

EventBase --Only SDC relevant CUSIP -3 to +3
...
Flatten1 -- Rn3 to Rp3 and VRn3 to VRp3
Flatter -- Collapse 32109

EstimationOutput --Load it back up 30950
AbnormalReturn1 --Join back to Flatter
ABR2 --Abnormal returns (plus momentum)
AbRet --CARs 30950

-------------
	Turnover --NEEDS REWORKING
	tobinq --
	CPI
	
	Below that is supersceeded

--GOV_Table and GOVERNANCE_NOTES.txt
--Malmendier_tate.sql


List of Variables

Variables & Where to Find Them:

Variable Location Table
Actual Return CRSP A1
Abnormal Return CRSP A1
Average Return CRSP STATA
Weighted Average Return CRSP STATA
Cumulative Ab. Return CRSP A1
Boom Compustat tobinxcompxsdcboom
Competition Compustat tobinxcompxsdcboom
Distance SDC + google maps D.N.E.
IT Fixed Effect SDC SDCA4
Idiosyncratic Volatility CRSP (Calculated) A1
Industry Fixed Effect SDC SDCA4
Momentum CRSP (Calculated) A1
Private Financial Data CRSP(SDC) SDCA4
Percent Cash SDC SDCA4
Previous Acquisitions SDC SDCA4
Sales Compustat tobinxcompxsdcboom
Tobin's Q Compustat tobinxcompxsdcboom
Turnover CRSP A1
VC Fixed Effect SDC & VentureXpert D.N.E.
Governance Compustat D.N.E.
Friendly vs. Hostile SDC D.N.E.
CEO Overconfidence Execucomp malmendier_Tate


Boom - Created. Code in E:\McNair\Projects\Winner's Curse\Data\SQL\SDC_TABLE. Final variable in table SDCno_boom.

Competition - Created. Code in E:\McNair\Projects\Winner's Curse\Data\SQL\CRSP_TABLE. Final variable in table competition final.

IT Fixed Effect - Create an indicator variable taking the value one if the target has a NAICS code listed on page 31 of the article.

Idiosyncratic Volatility - RMSE, it should already be up on the database.

Industry Fixed Effect - Created. Jake, please update this.

Momentum - To control for systematic variations in return over time. The summation of the NYSE-Nasdaq-AMEX composite market return (as calculated by CRSP) over the event window

Private Financial Data - Look at [1]. The variables takes value 1 when the balance sheet is not publicly available.

Percent Cash - Possibly this is going to be the PCT_CASH variable in SDC. This should be the PC_CASH field in the SDC table.

Previous Acquisitions - The number of previous acquisitions (from 1985 on) of privately-held firms completed by the acquirer prior to its announcement of the acquisition.

Tobin's Q: The ratio of market-to-book value of assets. This would be MKVALT/ AT in the SDC table.

Turnover: AVG( # shares traded each month / # shares outstanding.

VC Fixed Effect: Is the target VC backed or not? Where could we find the VC data.

Three Big Pulls

SDC Mergers & Acquisitions

Add the following (A=L+E) ---- DONE

TargetTotalAssets	real, TASS: Taget Financials: Total Assets
TargetTotalLiabilities	real,  TLIA: Total Liabilities Last Twelve Months ($ Mil) 
TargetCommonEquity	real, COMEQ: Target Financials: Common Equity

Also nice ---- DONE

TargetNetSales	real,  SALES: Net Sales Last Twelve Months ($ Mil)
TargetNetSales2	real, ?
TargetBookValuePerShare	real, BV: Book Value per Share Last Twelve Months ($) 
TargetIntangibles	real, IASS: Intangible Assets Last Twelve Months 
TargetRAndD	real, RND1: Research & Development Expense 1 Year Prior ($ Mil)

Added just in case ---- DONE

Sales
Net Assets
Book Value (Perhaps needed for Tobin's Q?)
Session Details
---------------
Request   Hits    Request Description
   0        -     DATABASES: Domestic Mergers, 1979-Present (MA, OMA)
   1        -     Date Announced: 1/1/1985 to 10/11/2016 (Custom) (Calendar)
   2    300351    Target Nation : US
   3    257921    Acquiror Nation : US
   4    127852    Acquiror Public Status : P
   5     98102    Target Public Status : V, P
   6     63725    Deal Status : C
   7     52739    Percent of Shares Owned after Transaction: 100 to 100
   8              Custom Report: SDC_MA_Oct10v2 (Columnar) - Save As:
                  E:\McNair\Projects\Winner's Curse\Data\SDC_MA_Oct10v2.txt

  Billing Ref # : 1960756
  Capture File  : riceuniv.1960756
  Session Name  : SDC_MA_Oct10v2.ssh
Variables Pulled:
-----------------
Date Announced
Date Effective
Target Name 
Target Industry Sector 
Target Nation
Acquiror Name 
Acquiror Industry Sector 
Acquiror Nation
Pc of Shares Acq
Pc Owned After Transaction
Value of Transaction mil
Enterprise Value mil
Equity Value mil
Acquiror CUSIP
Acquiror Immediate Parent CUSIP
Acquiror Ultimate Parent CUSIP
Target Immediate Parent CUSIP
Target Ultimate Parent CUSIP
Target CUSIP
Acquiror Primary Ticker Symbol
Acquiror Ultimate Parent Primary Ticker Symbol
Target Primary Ticker Symbol
Target Ultimate Parent Primary Ticker Symbol
Target Ultimate Parent Ticker Symbol
Acquiror Primary NAIC Code
Acquiror Ultimate Parent Primary NAIC Code
Target Primary NAIC Code
Target s Ultimate Parent Primary NAIC Code
Number of Bidders
Status 
Value Est 
Value Amended Flag
Date Announced is Estimated
Consideration Structure
Number of Considerations Offered
Number of Considerations Sought
Consid Structure Description
Pc of Cash
Pc of Other
Pc of Stock
Pc of Unknown
Acquiror Full Name 
Target Name 
Acquiror City 
Target City 
Acquiror Zip Code
Target Zip Code
Acquiror State
Target State
Deal Currency Code
Target Bankrupt
Challenged Deal
Debt Restructuring
RecapDefense  
Government Owned Involvement Flag
Joint Venture
Restructuring
Acquiror is a Leveraged Buyout Firm
LBO 
IPO FlagY N 
Target is a Leveraged Buyout Firm
Merger of Equals
Reverse Takeover
Deal Began as a Rumor
Acquiror is a White Knight
White Knight Defense
Back End Defense
FlipOver Defense
Voting Plan Defense
Poison Pill
Creeping Acquisition
Repurchase Defense
Pacman Defense
Lockup FlagY N 
Target Lockup
Greenmail
Asset Lockup
Scorched Earth Defense
SelfTender Defense
Stock Lockup
Defense
White Squire
Acquiror Includes Employees
Acquiror Includes an ESOP
Significant Family Ownership of Target
Acquiror Lockup
Financial Acquiror
2 Step Spinoff
Acquiror Includes Mgmt
Open Market Purchases
Proxy Fight
Purpose Code
Related Deals
Foreign Provider of Funds
Stock Swap
Asset Swap Flag
Sweep the Street
SelfTender
Tender Offer
Unsolicited
Acquiror TermFee 
Target TermFee 
Forced vote provisions FlagY N
Walkaway
Acquiror Ultimate Parent Street Address 1
Acquiror Ultimate Parent Street Address 2
Target Ultimate Parent Street Address 1
Target Ultimate Parent Street Address 2
Acquiror Primary Stock ExchangeName
Target Primary Stock ExchangeName

COMPUSTAT

Use Compustat Industrial Annual (annual data)

Criteria:
-----------------
1970-1 to 2015-11
GVKEY, Entire Dbase
tab delimited, date in ISO8661
Variables:
----------
GVKEY
CONM
TIC
CUSIP
EXCHG
FYR
CURNCD
FYEAR
AT
CEQ
INTAN
EBITDA
REVT
SALE
NAICSH
SICH
MKVALT
PRCC_F
C
INDL
FS
STD

Note: TobinsQ is Market over book so MKVALT/AT (also pulled common stock and price)

DROP TABLE compustatpull; CREATE TABLE compustatpull ( gvkey int, datadate date, Fyear int, industry_format varchar(5), consol varchar(20), popsrc varchar(20), datafmt varchar(5), tic varchar(20), cusip varchar(20), conm varchar(50), curcd varchar(3), curncd varchar(3), fyr int, act float, ceq varchar(20), ebitda float, intan float, revt float, sale float, exchg varchar(20), costat varchar(5), naicsh float, sich varchar(20), mkvalt varchar(20), prcc_f varchar(20), county varchar(50), naics varchar(10), sic int, states varchar(2), ipodate date);

\COPY compustatpull FROM 'CSTAT-10Oct-ff1feb81b9f166ad.txt' WITH DELIMITER AS E'\t' HEADER NULL AS CSV --464894

All loaded up

CRSP

Use CRSP Annual, Daily Stock File

Criteria:
-----------------
PERMNO, Entire Dbase
1980-01-01 to 2015-12-31
tab delimited, date in ISO8661
Variables:
----------
PERMNO
CUSIP
NCUSIP
COMNAM
TICKER
PERMCO
EXCHCD
SICCD
NAICS
PRIMEXCH
PRC
VOL
NUMTRD
RET
SHROUT
VWRETD
EWRETD


Governance Measures

Projects --> Winner's Curse --> Data

Open the GovernanceVARS.txt

These are

  • staggered boards
  • limits to shareholder bylaw amendments
  • limits to shareholder charter amendments
  • supermajority requirements for mergers
  • poison pills
  • golden parachutes

To do list

Processing the SDC data:

  • Find SIC codes concordance to get NAICS for old data
  • Acquirer publicly traded ( must be AMEX, NASDAQ, or NYSE)
  • Magic with CUSIPs : CUSIP is a nine digit number (possibly ten, ) Seven issuer, two issue, one check

CRSP processing notes:

  • Estimation window 250 days ending 30 days before the Acq. must be at least 50 continuous days before the 30 days window.
  • Returns and prices may contain codes. Import as var_char and reprocess?

Other notes:

Governance_Final Table (Amir)

UPDATE Nov 22, 3:30 pm: All null entries are now stored as 0. Modified SQL codes can be found in GOV_Table- NULL AS ZERO.sql


Table Name: governance_final

Database: winner

Data: ISS (formerly RiskMetrics) - QUERY saved under 'RiskMetrics' in WRDS

Coverage:2007-2015

Summary:

SELECT COUNT(*) FROM governance_final;
count 
-------
40005
(1 row)
SELECT COUNT(DISTINCT CUSIP) FROM governance_final;
count 
-------
 2209
(1 row)
SELECT COUNT(DISTINCT(CUSIP, year)) FROM governance_final;
count 
-------
13332
(1 row)
Text file is saved in:
E:\McNair\Projects\Winner's Curse\Governance\RiskMetrics-0b578b37fbb59afa.txt

Variable Description is saved in

E:\McNair\Projects\Winner's Curse\Governance\Var-Gov-Desc.pdf

SQL code file for the table is saved in

E:\McNair\Projects\Winner's Curse\Data\SQL\GOV_Table.sql

The variables are coded as follows:

0 NO
1 YES
NULL NULL

otherwise see the following file:

E:\McNair\Projects\Winner's Curse\Data\SQL\GOVERNANCE_NOTES.txt

or here:

 BLANKCHECK	NuLL/YES/NO
 CARVE_OUT	NULL/YES/NO
 CBOARD	NULL/YES/NO
 CONAME	
 CONFVOTE	NULL/YES/NO
 CUMVOTE	NULL/YES/NO
 CUSIP		
 DUALCLASS	NULL/YES/NO
 FAIRPRICE	NULL/YES/NO
 GPARACHUTE	NULL/YES/NO
 LABYLW	NULL/YES/NO
 LACHTR	NULL/YES/NO
 LEGACYPPS_ID	NO ENTRY ---> DROPPED 
 LSPMT		NULL/YES/NO
 LWCNST	NULL/YES/NO/UNANIMOUS= 2
 MAJ_VOTE_REQUIRED	NULL/CAST=1/OUTSTANDING=2
 MAJ_VOTE_REQUIREMENT	NULL/NO=0/BY-LAWS=1/POLICY=2/CHARTER=3
 MAJOR_VOTE_COMM	USELESS ---> DROP 
 PPILL		NULL/YES/NO
 RESIGN_REQUIRE	NULL/NO=0/ POLICY=1/ BYLAWS-CHARTER=2
 SIC	varchar(4)
 TICKER	varchar(5)	
 TIER		DROPthis 
 UNEQVOTE	NULL =0, ELSE =1	DEPOSITORY R/TIME-PHASED/GOLDEN SHARES/FIXED VOTING RI/GOLDEN SHARE/PRIORITY SHA/PRIORITY SHARES/FIXED VOTING/YES/TIME-PHASED VOT/DEPOSITORY RECE	 
 OO_BUSCOMP	NULL/YES/NO
 OO_CASHOUT_PA	NULL/YES/NO
 OO_CSA	NULL/YES/NO
 OO_DUTIES	NULL/YES/NO
 OO_FAIRPRICE	NULL/YES/NO
 OO_PP		NULL/YES/NO
 OO_RPROFITS	NULL/YES/NO
 OO_STAKEHOLDER	NULL/YES/NO
 YEAR		int
 RT_ID		int
 MEETINGDATE	date
 COMPANY_ID	int
 STATE		LEAVE AS VARCHAR
 CHARTER_AMEND_VOTEPCNT	real
 FYEND		int
 LAW_AMEND_VOTEPCNT	real
 MTGMONTH	int
 PRICE		real
 SPINDEX	LEAVE AS VARCHAR
 SPL_MEET_VOTEPCNT	real
 SUPERMAJOR_PCNT	real
 WRITTEN_CONSENT_VOTEPCNT	real

Merging with CRSP:

Q) Is CUSIP in RiskMetrics current or historical?  How can I use it to merge with CRSP? 
A) The Legacy files have the current CUSIP.  With each update, WRDS updated the historical data with the latest value.  Starting with the new Director and Governance files, we no longer modify the historical data.
To merge any of these datasets with CRSP, you can join on the NCUSIP field.  This will match a single Permco (company identifier), but you may still need to select the primary Permno because some companies issue more than  1 security.

Merging EXECUCOMP AND IRRC:

Q) What is the best way to merge Execucomp and IRRC (director and governance) databases?  I understand they both have CUSIP, but that matching with CUSIPs isn't always ideal since the CUSIP can change over time for the   same firm.  
A) All Execucomp (CUSIP), IRRC Governance (CN6), and IRRC Directors (CUSIP) CUSIPs are header cusips, in that they reflect the most recent CUSIP that the company has had. There are however 2 main differences between   Execucomp's CUSIP and IRRC's CUSIP and CN6:
1. While Execucomp uses 8-digit CUSIP, both IRRC datasets have 6-digit CUSIPs. Therefore, you need to use a SAS function like "substr" to take the first 6-digit of Execucomp CUSIP before merging it to IRRC data. ex: cusip6  = substr(CUSIP,1,6);
2. While header convention reflect "most recent" value of an identifier variables, it is dependent on the date of update of each dataset. Therefore, for CUSIPs that change in between the time that both databases are updated, you might find some discrepancy. To overcome this issue, we recommend that you make use of the CRSP name files (ex: stocknames), that contains all historical CUSIPs that a company has had.


Also, good to know:

Best Identifier to Use in RiskMetrics Directors- Changes to Identifier between Legacy and Current Files
1. The primary identifier in the current dataset is year-ticker-director_detail_id. Ticker is better populated than cusip in earlier years, but should be about the same in the latest years. For the legacy directors, director_detail_id was in use for some years and legacy_director_id for others. 
2. Cusips in the legacy file are "header". With each update, WRDS modified all previous cusips for a company to match the latest. Although it may help in some cases, it may hurt in others and it is not quite the way the data     was delivered. Starting with the new directors file, Cusips appear in the file as they were delivered (effectively making them historical going forward). Cusips in the legacy data were also uniformly truncated to 6 digits for     consistency. The new file reports them as they are delivered, typically (but not always) 9 digits.
3. Tickers were not changed over time and appear as they were delivered. One example is legacy company id (legacy_pps_id) 25 has tickers ASN and IKN.
4. Each time IRRC - ISS - Riskmetrics was acquired, new identification methods were introduced. This is why you see legacy company and director IDs.  Neither is more correct, we recommend choosing the most populated one for  the years in which you are working.
5. Constructing a complete time series in the directors data is not easy. There is no single variable that is populated for all companies and all years. 
6. Be very careful when combining the legacy data (through 2006) and the current data (from 2007). They were separated because the collection methods and meaning of some variables changed.

Paper Discussion

Importing the CRSP data into the `winner' database (Amir)

Two important files:
Project --> Winner's Curse --> Data --> SQL --> CRSP_NOTES
Project --> Winner's Curse --> Data --> SQL --> CRSP_CODES

Data file is located in: E:\McNair\Projects\Winner's Curse\Data\CRSP-Oct10-c30cc89e52b70545-1.txt

Issue 1: The text file is 8 GB large and there's no way to open it in Textpad. I'll try to read the file in LogExpert which seems to do a neat job in in opening large files. Otherwise, I'll try to read the first few lines in the terminal. Update: I managed to open the file in LogExpert. However, extremely inefficient to scroll over the file.

I copied the file to Z:\WinnersCurse\CRSP-oct10

Entered the following command in the terminal to read the header:

head -1 CRSP-oct10.txt
CREATE TABLE CRSP (
 PermNo int,
 date date,
 EXcode int,
 SIC int,
 NCUSIP varchar(10),
 Ticker varchar(10), 
 Name varchar(100),
 NAICS int,
 PrimEx varchar(1),
 PERMCO int, 
 CUSIP varchar(12),
 Price real,
 VOL int,
 RET real,
 ShOut int, 
 trade int, 
 EQRET real,
 VRET real
);
 
 

We have unexpected data types in few columns. We'll first start by copying data into a table named CRSPtmp with varchar type for most of the fields.

CREATE TABLE CRSPtmp (
 PermNo varchar(10),
 date date,
 EXcode varchar(10),
 SIC varchar(10),
 NCUSIP varchar(10),
 Ticker varchar(10), 
 Name varchar(100),
 NAICS varchar(10),
 PrimEx varchar(1),
 PERMCO varchar(10), 
 CUSIP varchar(12),
 Price varchar(15),
 VOL varchar(10),
 RET varchar(10),
 ShOut varchar(10), 
 trade varchar(10), 
 EQRET varchar(10),
 VRET varchar(10)
);
 
\COPY crsptmp FROM '/bulk/WinnersCurse/CRSP-oct10.txt' WITH DELIMITER AS E'\t' HEADER NULL AS  CSV
-- COPY 64614281

Next, to create an index on CUSIP:

CREATE INDEX CUSIPIndex
ON crspfinal(CUSIP);

CRSP2 Variable Issues (Jake)

permno-

date-

excode -

sic - letter "Z", value 711 (most are 4 digits),

ncusip -

ticker -

name -

naics -

primex -

permco -

cusip -

Price - Null values, negative numbers,

vol - null values

ret - null values, letter "B" as value multiple times, letter "C",

shout - null values

trade - null values

eqret -

vret -

Importing SDC Data into Winner Database

Session Details
---------------
Request   Hits    Request Description
  0        -     DATABASES: Domestic Mergers, 1979-Present (MA, OMA)
  1        -     Date Announced: 1/1/1985 to 10/11/2016 (Custom) (Calendar)
  2    300400    Target Nation : US
  3    257952    Acquiror Nation : US
  4    127865    Acquiror Public Status : P
  5     98108    Target Public Status : V, P
  6     63732    Deal Status : C
  7     52746    Percent of Shares Owned after Transaction: 100 to 100
  8              Custom Report: SDC_MA_Oct10v4 (Columnar) - Save As:
                 E:\McNair\Projects\Winner's Curse\Data\SDC_MA_Oct10v4.txt
 Billing Ref # : 1962461
 Capture File  : riceuniv.1962461
 Session Name  : SDC_MA_Oct10v4.ssh

We encountered an issue with the variable Purpose Code in our most recent SDC pull. Purpose Code can carry multiple values, so we had extra lines with blanks for every value other than Purpose Code. Rather than doing another SDC pull, we used the following regular expressions to solve:

Find : ^[\s}.* 
Replace : 

Directly below is the original SDC file prior to our fix

E:\McNair\Projects\Winner's Curse\Data\SDC_MA_Oct10v4 -raw

Directly below is the SDC file post-fix

E:\McNair\Projects\Winner's Curse\Data\SDC_MA_Oct10v4


11332 rows were removed as a result of our regular expression use.

Normalizing SDC data

Make sure that the first line of the data file starts with the column names and column name are not preceded by empty lines. Also, remove the summary/report lines at the bottom of the text file.

A copy of the normalizer is save here

E:\McNair\Projects\Winner's Curse\Data\NormalizeFixedWidth.pl

Follow these steps:

  1. Activate the Komodo license.
  2. Open Komodo IDE 9, there should be a shortcut on your desktop
  3. Drag and drop NormalizeFixedWidth.pl in Komdo
  4. Click on the start or continue debugging
  5. Type : -file=SDC_MA_Oct10v4.txt in Script Arguments textbox.
  6. Click on OK
  7. Enter the number of last line of the header and press return. This should be the line immediately followed by the first row of data.
##########################################################  
#                  NormalizeFixedWidth.pl                #
#                           v0.01                        #
#                     (c)Ed Egan, 2010                   #
##########################################################

Starting the program...				[Done]
Your run options are:
	File to read from... 			[SDC_MA_Oct10v4.txt]
	File to write to... 			[SDC_MA_Oct10v4-normal.txt]
Opening the input file to read...		[Done]

##########################################################
Choose the last line of the header (inc. blanks):
0	  Date         Date       Target Name             
1	Announced    Effective                            
2	                                                  
3	                                                  
4	                                                  
5	                                                  
6	01/01/85     01/01/85     Gladieux Corp           
7	01/02/85     01/02/85     STG Electrosystems Inc  
8	01/03/85     01/03/85     American Title Co       
9	01/04/85     01/04/85     Bee Chemical Co         

Your Choice: 5


Thank you - Proceeding now...
##########################################################
Determining markers...				[Done]
Processing the header...			[Done]
Processing the body...				[Done]
Removing dead columns...			[Done]
##########################################################
Choose any columns you want repeated down (e.g. 0,1,2):
0	Date Announced 
1	Date Effective 
2	Target Name  
3	Target Industry Sector  
4	Target Nation 
5	Acquiror Name  
6	Acquiror Industry Sector  
7	Acquiror Nation 
8	Pc of Shares Acq 
9	Pc Owned After Transaction
10	Value of Transaction mil
11	Enterprise Value mil
12	Equity Value mil 
13	Acquiror CUSIP 
14	Acquiror Immediate Parent CUSIP
15	Acquiror Ultimate Parent CUSIP
16	Target Immediate Parent CUSIP
17	Target Ultimate Parent CUSIP
18	Target CUSIP 
19	Acquiror Primary Ticker Symbol
20	Acquiror Ultimate Parent Primary Ticker Symbol
21	Target Primary Ticker Symbol
22	Target Ultimate Parent Primary Ticker Symbol
23	Acquiror Primary NAIC Code
24	Acquiror Ultimate Parent Primary NAIC Code
25	Target Primary NAIC Code
26	Target s Ultimate Parent Primary NAIC Code
27	Number of Bidders 
28	Status  
29	Value Est  
30	Value Amended Flag
31	Date Announced is Estimated
32	Consideration Structure 
33	Number of Considerations Offered
34	Number of Considerations Sought
35	Consid Structure Description
36	Pc of Cash 
37	Pc of Other 
38	Pc of Stock 
39	Pc of Unknown 
40	Acquiror Full Name  
41	Target Name  
42	Acquiror City  
43	Target City  
44	Acquiror Zip Code 
45	Target Zip Code
46	Acquiror State 
47	Target State 
48	Deal Currency Code
49	Target Bankrupt 
50	Challenged Deal 
51	Debt Restructuring 
52	RecapDefense   
53	Government Owned Involvement Flag
54	Joint Venture 
55	Restructuring 
56	Acquiror is a Leveraged Buyout Firm
57	LBO  
58	IPO FlagY N  
59	Target is a Leveraged Buyout Firm
60	Merger of Equals
61	Reverse Takeover 
62	Deal Began as a Rumor
63	Acquiror is a White Knight
64	White Knight Defense
65	Back End Defense 
66	FlipOver Defense
67	Voting Plan Defense
68	Poison Pill 
69	Creeping Acquisition 
70	Repurchase Defense 
71	Pacman Defense 
72	Lockup FlagY N   
73	Target Lockup 
74	Greenmail  
75	Asset Lockup 
76	Scorched Earth Defense
77	SelfTender Defense
78	Stock Lockup 
79	Defense  
80	White Squire 
81	Acquiror Includes Employees
82	Acquiror Includes an ESOP
83	Significant Family Ownership of Target
84	Acquiror Lockup 
85	Financial Acquiror 
86	2 Step Spinoff  
87	Acquiror Includes Mgmt
88	Open Market Purchases
89	Proxy Fight 
90	Purpose Code 
91	Related Deals 
92	Foreign Provider of Funds
93	Stock Swap 
94	Asset Swap Flag
95	Sweep the Street
96	SelfTender 
97	Tender Offer 
98	Unsolicited  
99	Acquiror TermFee   
100	Target TermFee   
101	Forced vote provisions FlagY N  
102	Walkaway 
103	Acquiror Ultimate Parent Street Address 1 
104	Acquiror Ultimate Parent Street Address 2 
105	Target Ultimate Parent Street Address 1 
106	Target Ultimate Parent Street Address 2 
107	Acquiror Primary Stock ExchangeName 
108	Target Primary Stock ExchangeName 
109	Target Net Sales LTM mil
110	Target Net Assets mil
111	Target Total Assets mil
112	Target Common Equity mil
113	Target Book Value Per Share LTMUS  
114	Target Intangible Assets mil
115	Target R D One Year Priormil
116	Target Total Liabilities mil

Your Choice:


Thank you - Proceeding now...
##########################################################

Writing the output file...			[Done]

##########################################################
Thank you for processing data with NormalizeFixedWidth
Please cite any Ed Egan corporate finance paper in your 
references or otherwise acknowledge this help to your work.
(c)Ed Egan, 2010. Enjoy. (US dollars preferred.)
##########################################################

The output is now stored in the same directory: E:\McNair\Projects\Winner's Curse\Data\SDC_MA_Oct10v4-normal.txt

To import the data into winner database, I'll copy the above file to the /bulk directory.

The code to create the SDC table is stored in \McNair\Projects\Winner's Curse\Data\SQL\SDC_TABLE.

Create Table SDC(
 Date_Announced date,
 Date_Effective date,
 Tgt_Name varchar(80),
 Tgt_Industry varchar(100),
 Tgt_Nation varchar(100),
 Acq_Name varchar(80),
 Acq_Ind varchar(100),
 Acq_Nation varchar(100),
 Pc_Shares_Acq varchar(100),
 Pc_Owned_After_Transaction varchar(100),
 Value_Transaction varchar(100),
 Enterprise_Value varchar(100),
 Equity_Value varchar(100),
 Acq_CUSIP varchar(100),
 Acq_prnt_CUSIP varchar(100),
 Acq_Ultimate_CUSIP varchar(100),
 Tgt_prnt_CUSIP varchar(100),
 Tgt_Ultimate_CUSIP varchar(100),
 Tgt_CUSIP varchar(100),
 Acq_Primary_Ticker varchar(100),
 Acq_Ultimate_Ticker varchar(100),
 Tgt_Primary_Ticker varchar(100),
 Tgt_Ultimate_Ticker varchar(100),
 Acq_NAIC varchar(100),
 Acq_Ultimate_NAIC varchar(100),
 Tgt_Primary_NAIC varchar(100),
 Tgt_Ultimate_NAIC varchar(100),
 NBid varchar(100),
 Status varchar(100),
 Value_Est varchar(100),
 Value_Amended_Flag varchar(100),
 Date_Announced_Estimated varchar(100),
 Consideration_Structure varchar(100),
 NConsid_off varchar(100),
 NConsid_Sought varchar(100),
 Consid_Structure varchar(100),
 Pc_Cash varchar(100),
 Pc_Other varchar(100),
 Pc_Stock varchar(100),
 Pc_Unknown varchar(100),
 Acq_FullName varchar(100),
 Tgt_Name2 varchar(100),
 Acq_City varchar(100),
 Tgt_City varchar(100),
 Acq_Zip varchar(100),
 Tgt_Zip varchar(100),
 Acq_St varchar(100),
 Tgt_St varchar(100),
 Currency varchar(100),
 Tgt_Bankrupt varchar(100),
 Chlng_Deal varchar(100),
 Debt_Restructuring varchar(100),
 RecapDefense varchar(100),
 Government_Owned_Involvement_Flag varchar(100),
 Joint_Venture varchar(100),
 Restructuring varchar(100),
 Acq_LBO_firm varchar(100),
 LBO varchar(100),
 IPO_Flag varchar(100),
 Tgt_LBO_firm varchar(100),
 Merger_Equals varchar(100),
 Reverse_Takeover varchar(100),
 Deal_was_Rumor varchar(100),
 Acq_is_a_White_Knight varchar(100),
 White_Knight_Defense varchar(100),
 Back_End_Defense varchar(100),
 FlipOver_Defense varchar(100),
 Voting_Plan_Defense varchar(100),
 Poison_Pill varchar(100),
 Creeping_Acquisition varchar(100),
 Repurchase_Defense varchar(100),
 Pacman_Defense varchar(100),
 Lockup_FlagY_N varchar(100),
 Tgt_Lockup varchar(100),
 Greenmail varchar(100),
 Asset_Lockup varchar(100),
 Scorched_Earth_Defense varchar(100),
 SelfTender_Defense varchar(100),
 Stock_Lockup varchar(100),
 Defense varchar(100),
 White_Squire varchar(100),
 Acq_Includes_Employees varchar(100),
 Acq_Includes_an_ESOP varchar(100),
 Sig_Family_Ownership_Tgt varchar(100),
 Acq_Lockup varchar(100),
 Financial_Acq varchar(100),
 Step_Spinoff varchar(100),
 Acq_Includes_Mgmt varchar(100),
 Open_Market_Purchases varchar(100),
 Proxy_Fight varchar(100),
 Purpose_Code varchar(100),
 Related_Deals varchar(100),
 Foreign_Provider_Funds varchar(100),
 Stock_Swap varchar(100),
 Asset_Swap_Flag varchar(100),
 Sweep_the_Street varchar(100),
 SelfTender varchar(100),
 Tender_offer varchar(100),
 Unsolicited varchar(100),
 Acq_TermFee varchar(100),
 Tgt_TermFee varchar(100),
 Forced_vote_provisions_FlagY_N varchar(100),
 Walkaway varchar(100),
 Acq_Ultimate_Add1 varchar(100),
 Acq_Ultimate_Add2 varchar(100),
 Tgt_Ultimate_Add1 varchar(100),
 Tgt_Ultimate_Add2 varchar(100),
 Acq_stockEx varchar(100),
 Tgt_stockEx varchar(100),
 Tgt_Net_Sales varchar(100),
 Tgt_Net_Assets varchar(100),
 Tgt_Total_Assets varchar(100),
 Tgt_Common_Equity varchar(100),
 Tgt_BVpersh_LTMUS varchar(100),
 Tgt_IntangibleA varchar(100),
 Tgt_RD varchar(100),
 Tgt_Tot_liab varchar(100)
);

The column tgt_name seemed to have repeated twice in our data. To save time, I've just added 2 at the end of the column name for any such occurrence.

--COPY 52746

SDC Table with pairs of unique CUSIP and Announcement dates(Jake)

acq_cusip | acq_prnt_cusip | acq_ultimate_cusip

date_announced

Determine which of the cusips has the best coverage by checking for null values. All cusip variables have equal coverage. Picking acq_cusip.

Create a table with unique cusip (only first 6 digits) and announcement date values.

SELECT LEFT(acq_cusip, 6) AS acq_cusip, date_announced INTO cusip_announcedate FROM sdc GROUP BY 
 acq_cusip, date_announced;
 SELECT 49766

Creating compound variables from variable list and combining them (Jake)

DROP TABLE tobinq; CREATE TABLE tobinq AS SELECT conm, gvkey, cusip, datadate, extract(year from datadate) AS year, LEFT(naics,3) AS naics3, revt, CASE WHEN (CAST(ceq AS real)) = 0 THEN NULL ELSE (CAST(mkvalt AS real))/(CAST(ceq AS real)) END AS tobinq FROM compustatpull; --SELECT 464894

DROP TABLE tobinqxcompetition; CREATE TABLE tobinqxcompetition AS SELECT conm, gvkey, cusip, datadate, tobinq.year, tobinq.naics3, revt, LAG(revt) OVER (PARTITION BY gvkey ORDER BY tobinq.year) AS revtlag, tobinq, LAG(tobinq) OVER (PARTITION BY gvkey ORDER BY tobinq.year) AS tobinlag, sumsharesq, countgvkey FROM tobinq LEFT JOIN competitionfinal ON tobinq.year = competitionfinal.year AND tobinq.naics3 = competitionfinal.naics3; --SELECT 464894

DROP TABLE CPI; CREATE TABLE CPI( year int, avg real, twentytenbase real);

\COPY CPI FROM 'CPI Data.txt' WITH DELIMITER AS E'\t' HEADER NULL AS CSV;

DROP TABLE test; CREATE TABLE test AS SELECT tobinqxcompetition.*, acq_cusip, pc_cash, CASE WHEN (Tgt_stockEx = 'NYSE' OR Tgt_stockEx = 'AMEX' OR Tgt_stockEx = 'NASDAQ') THEN 1::int ELSE 0::int END AS Tgt_Public, date_announced, date_effective FROM tobinqxcompetition LEFT JOIN sdc ON LEFT(tobinqxcompetition.cusip, 6) = sdc.acq_cusip AND EXTRACT (year from tobinqxcompetition.datadate) = EXTRACT(year from sdc.date_effective);


STATA Work

All Stata work found in the following folder:

E:\McNair\Projects\Winner's Curse\Stata

Code for most recent regression:

set more off
insheet using "Estimation.txt"
log using "Estimation.log", replace

gen rmse=0
gen ressd=0
gen alpha=0
gen beta=0

tabstat acqkey, stats(min max) save
matrix acqnos=r(StatTotal)
local min=acqnos[1,1]
local max=acqnos[2,1]

forvalues acqnumber = `min'(1)`max' {
	capture reg ret vret if acqkey==`acqnumber'
	capture matrix betas=e(b)
	capture local beta=betas[1,1]
	capture local alpha=betas[1,2]
	capture local rmse=e(rmse)
	capture predict res,r
	capture tabstat res, stats(sd) save
	capture matrix resmat=r(StatTotal)
	capture local ressd=resmat[1,1]
	capture replace rmse=`rmse' if acqkey==`acqnumber'
	capture replace ressd=`ressd' if acqkey==`acqnumber'
	capture replace alpha=`alpha' if acqkey==`acqnumber'
	capture replace beta=`beta' if acqkey==`acqnumber'
	capture drop res
	display `acqnumber'
}

/*
reg ret vret if acqkey==2
matrix betas=e(b)
local beta=betas[1,1]
local alpha=betas[1,2]
local rmse=e(rmse)
predict res,r
tabstat res, stats(sd) save
matrix resmat=r(StatTotal)
local ressd=resmat[1,1]
replace rmse=`rmse' if acqkey==2
replace ressd=`ressd' if acqkey==2
replace alpha=`alpha' if acqkey==2
replace beta=`beta' if acqkey==2
drop res
*/

drop if reldayno !=-30

outsheet using "Estimation-processed.txt", replace

Previous Papers

From the old wiki

Related Pages

Resources