Difference between revisions of "CEO Compensation and Returns to Public and Private Acquisitions: Testing the Shareholder Value Hypothesis"
(→Draft) |
|||
Line 11: | Line 11: | ||
<pdf>File:Brander_Egan_Endl_(2019)_-_Comparing_CEO_Compensation_Effects_of_Public_and_Private_Acquisitions.pdf</pdf> | <pdf>File:Brander_Egan_Endl_(2019)_-_Comparing_CEO_Compensation_Effects_of_Public_and_Private_Acquisitions.pdf</pdf> | ||
− | |||
− | |||
==Database, dataset and scripts== | ==Database, dataset and scripts== | ||
Line 30: | Line 28: | ||
MasterV1-1.txt | MasterV1-1.txt | ||
− | == | + | There's also a CEO.log file that details results run on the old dataset, for information only. |
+ | |||
+ | ==Current Notes== | ||
+ | |||
+ | The paper was submitted to the [https://www.mdpi.com/journal/jrfm Journal of Risk and Financial Management (JRFM)], an open-access journal with fast turn-around times on January 17th, 2021. On February 8th, 2021, we received an R&R with a 10-day revision window. This section provides notes on the feasibility of the R&R. | ||
+ | |||
+ | A key issue concerns requests for us to update the data, which: | ||
+ | *Isn't a live dataset on my current [[Research Computing Hardware]]. | ||
+ | *Requires Cumulative Abnormal Returns (CARs) that were previously calculated as a part of the [[Winner's Curse in Acquisitions (Academic Paper)]] that was accepted for publication in 2017. | ||
+ | **Uses both public and private acquisitions data, that were loaded as a part of [[VCDB20]] but may need more variables. | ||
+ | *Needs ExecComp, Compustat, and CRSP data from WRDS (I have access to all until March). | ||
+ | |||
+ | I didn't notice any requests from the reviewers to handle multiple acquisitions on the same day, which doesn't appear to have been fixed in the previous version. However, I can see we are aggregating acquisitions over the year, so this is somewhat moot in the averages and totals. | ||
+ | |||
+ | ===Estimating a new build=== | ||
+ | |||
+ | ====Variables from the Winners dataset==== | ||
+ | |||
+ | The biggest hurdle to updating the data is that we pulled many of the variables from the Winner's dataset: | ||
+ | --Builds the Acqbase table where the unit of observation is an acquirer year | ||
+ | DROP TABLE Acqbase; | ||
+ | CREATE TABLE Acqbase AS | ||
+ | SELECT acusip, year, sum(car5) as car5tot, avg(car5) as car5avg, sum(car5*tpublic) as car5totpub, avg(car5*tpublic) as car5avgpub, sum(car5*(1-tpublic)) as car5totpriv, avg(car5*(1-tpublic)) as car5avgpriv, avg(sharesoutstanding) as sharesoutstanding, sum(car5*sharesoutstanding) as valctot, avg(car5*sharesoutstanding) as valcav, sum(tpublic) as numacqpub, sum(1-tpublic) as numacqpriv, count(tname) as numacq, | ||
+ | sum(transactionvalue) as transactionvalue, sum(transactionvalue*tpublic) as transactionvaluepub, sum(transactionvalue*(1-tpublic)) as transactionvaluepriv, | ||
+ | sum(CASE WHEN transactionvalue IS NOT NULL THEN 1::int ELSE 0::int END) as numwtv, sum(CASE WHEN transactionvalue IS NOT NULL THEN (1::int)*tpublic ELSE (0::int)*tpublic END) as numwtvpub, sum(CASE WHEN transactionvalue IS NOT NULL THEN (1::int)*(1-tpublic) ELSE (0::int)*(1-tpublic) END) as numwtvpriv, | ||
+ | sum(CASE WHEN transactionvalue IS NULL THEN 1::int ELSE 0::int END) as numwotv, sum(CASE WHEN transactionvalue IS NULL THEN (1::int)*tpublic ELSE (0::int)*tpublic END) as numwotvpub, sum(CASE WHEN transactionvalue IS NULL THEN (1::int)*(1-tpublic) ELSE (0::int)*(1-tpublic) END) as numwotvpriv, | ||
+ | sum(coalesce(transactionvalue,enterprisevalue,equityvalue)) as targetvalue, sum(coalesce(transactionvalue,enterprisevalue,equityvalue)*tpublic) as targetvaluepub, sum(coalesce(transactionvalue,enterprisevalue,equityvalue)*(1-tpublic)) as targetvaluepriv, | ||
+ | min(anaic::int) as anaic, | ||
+ | sum(tit) as numacqit, sum(tvc) as numacqvc, | ||
+ | sum (stockswap) as numstockswap, sum (terminationfeeacquiror) as numterminationfeeacquiror, sum (terminationfeetarget) as numterminationfeetarget, sum (tbalancesheetprivate) as numtbalancesheetprivate, sum (tincomestatementprivate) as numtincomestatementprivate, avg (agovgoldenparachute) as agovgoldenparachute, avg (agovlimitabilityactbywritconsent) as agovlimitabilityactbywritconsent, avg (agovmajvoterequirement) as agovmajvoterequirement, avg (agovresignrequiredonmajorityvote) as agovresignrequiredonmajorityvote, avg (pcstock) as pcstock, avg (pccash) as pccash, avg (drivingdur) as drivingdur, avg (distance) as distance, | ||
+ | sum (CASE WHEN pcstock=100 THEN 1::int ELSE 0::int END) as numallstock, sum (CASE WHEN pccash=100 THEN 1::int ELSE 0::int END) as numallcash | ||
+ | FROM Winners GROUP BY acusip, year; | ||
+ | --18341 | ||
+ | |||
+ | The variables, along with their new sources and comments, are as follows: | ||
+ | *acusip, year, tname, tpublic, anaic, transactionvalue, enterprisevalue, pcstock, pccash -- A part of the [[VCDB20]] build | ||
+ | *tit, tvc -- Added with lookup tables based on NAICS (Est. 30 mins) | ||
+ | *car5, sharesoutstanding -- Would need to be calculated used GVKEY based data pulled from CRSP, some pre-processing, and a STATA script, then a load. (Est. 6hrs, assuming I can find the old code.) | ||
+ | *equityvalue, stockswap, terminationfeeacquiror, terminationfeetarget, agovgoldenparachute, agovlimitabilityactbywritconsen, agovmajvoterequirement, agovresignrequiredonmajorityvote -- Could be pulled from SDC but I don't think they are used | ||
+ | *tbalancesheetprivate, tincomestatementprivate -- Built from a COMPUSTAT pull (Add 30 mins) | ||
+ | *drivingdur, distance -- Determined using a Google Maps API script. (Est 2hrs + $100 and 5hrs to run). | ||
+ | |||
+ | ====Other things==== | ||
+ | |||
+ | On top of this. we'd need to do the following: | ||
+ | *The ExecComp pull (1hr) | ||
+ | *The COMPUSTAT pull (1hr) | ||
+ | *Rework the SQL (2 hrs) | ||
+ | |||
+ | So, my best guess is: 1/2 + 6 + 1/2 + 2 + 1 + 1 + 2 = 13hrs... | ||
− | + | ==Old Notes== | |
===Same Day Acquisitions=== | ===Same Day Acquisitions=== |
Revision as of 17:37, 8 February 2021
Academic Paper | |
---|---|
Title | CEO Compensation and Returns to Public and Private Acquisitions: Testing the Shareholder Value Hypothesis |
Author | Ed Egan, Jim Brander |
Status | Working paper |
© edegan.com, 2016 |
Contents
Working Paper
The working paper is called "CEO Compensation Full (Last Version).docx". It's in the dropbox (Dropbox\coauthoredprojects\ResearchWithJim\ExecCompAcqs). This produces the pdf below, which is also available on SSRN:
- Brander, James A. and Egan, Edward and Endl, Sophie, Comparing CEO Compensation Effects of Public and Private Acquisitions (January 15, 2021). Available at SSRN: https://ssrn.com/abstract=3766568
Database, dataset and scripts
The database is compacqs
The SQL script and input data is in:
Z:\compacqs\
The SQL script is:
BuildCompAcqs.sql
The STATA do file is Master.do and is in:
E:\McNair\Projects\CompAcqs\
The current version of the dataset is:
MasterV1-1.txt
There's also a CEO.log file that details results run on the old dataset, for information only.
Current Notes
The paper was submitted to the Journal of Risk and Financial Management (JRFM), an open-access journal with fast turn-around times on January 17th, 2021. On February 8th, 2021, we received an R&R with a 10-day revision window. This section provides notes on the feasibility of the R&R.
A key issue concerns requests for us to update the data, which:
- Isn't a live dataset on my current Research Computing Hardware.
- Requires Cumulative Abnormal Returns (CARs) that were previously calculated as a part of the Winner's Curse in Acquisitions (Academic Paper) that was accepted for publication in 2017.
- Uses both public and private acquisitions data, that were loaded as a part of VCDB20 but may need more variables.
- Needs ExecComp, Compustat, and CRSP data from WRDS (I have access to all until March).
I didn't notice any requests from the reviewers to handle multiple acquisitions on the same day, which doesn't appear to have been fixed in the previous version. However, I can see we are aggregating acquisitions over the year, so this is somewhat moot in the averages and totals.
Estimating a new build
Variables from the Winners dataset
The biggest hurdle to updating the data is that we pulled many of the variables from the Winner's dataset:
--Builds the Acqbase table where the unit of observation is an acquirer year DROP TABLE Acqbase; CREATE TABLE Acqbase AS SELECT acusip, year, sum(car5) as car5tot, avg(car5) as car5avg, sum(car5*tpublic) as car5totpub, avg(car5*tpublic) as car5avgpub, sum(car5*(1-tpublic)) as car5totpriv, avg(car5*(1-tpublic)) as car5avgpriv, avg(sharesoutstanding) as sharesoutstanding, sum(car5*sharesoutstanding) as valctot, avg(car5*sharesoutstanding) as valcav, sum(tpublic) as numacqpub, sum(1-tpublic) as numacqpriv, count(tname) as numacq, sum(transactionvalue) as transactionvalue, sum(transactionvalue*tpublic) as transactionvaluepub, sum(transactionvalue*(1-tpublic)) as transactionvaluepriv, sum(CASE WHEN transactionvalue IS NOT NULL THEN 1::int ELSE 0::int END) as numwtv, sum(CASE WHEN transactionvalue IS NOT NULL THEN (1::int)*tpublic ELSE (0::int)*tpublic END) as numwtvpub, sum(CASE WHEN transactionvalue IS NOT NULL THEN (1::int)*(1-tpublic) ELSE (0::int)*(1-tpublic) END) as numwtvpriv, sum(CASE WHEN transactionvalue IS NULL THEN 1::int ELSE 0::int END) as numwotv, sum(CASE WHEN transactionvalue IS NULL THEN (1::int)*tpublic ELSE (0::int)*tpublic END) as numwotvpub, sum(CASE WHEN transactionvalue IS NULL THEN (1::int)*(1-tpublic) ELSE (0::int)*(1-tpublic) END) as numwotvpriv, sum(coalesce(transactionvalue,enterprisevalue,equityvalue)) as targetvalue, sum(coalesce(transactionvalue,enterprisevalue,equityvalue)*tpublic) as targetvaluepub, sum(coalesce(transactionvalue,enterprisevalue,equityvalue)*(1-tpublic)) as targetvaluepriv, min(anaic::int) as anaic, sum(tit) as numacqit, sum(tvc) as numacqvc, sum (stockswap) as numstockswap, sum (terminationfeeacquiror) as numterminationfeeacquiror, sum (terminationfeetarget) as numterminationfeetarget, sum (tbalancesheetprivate) as numtbalancesheetprivate, sum (tincomestatementprivate) as numtincomestatementprivate, avg (agovgoldenparachute) as agovgoldenparachute, avg (agovlimitabilityactbywritconsent) as agovlimitabilityactbywritconsent, avg (agovmajvoterequirement) as agovmajvoterequirement, avg (agovresignrequiredonmajorityvote) as agovresignrequiredonmajorityvote, avg (pcstock) as pcstock, avg (pccash) as pccash, avg (drivingdur) as drivingdur, avg (distance) as distance, sum (CASE WHEN pcstock=100 THEN 1::int ELSE 0::int END) as numallstock, sum (CASE WHEN pccash=100 THEN 1::int ELSE 0::int END) as numallcash FROM Winners GROUP BY acusip, year; --18341
The variables, along with their new sources and comments, are as follows:
- acusip, year, tname, tpublic, anaic, transactionvalue, enterprisevalue, pcstock, pccash -- A part of the VCDB20 build
- tit, tvc -- Added with lookup tables based on NAICS (Est. 30 mins)
- car5, sharesoutstanding -- Would need to be calculated used GVKEY based data pulled from CRSP, some pre-processing, and a STATA script, then a load. (Est. 6hrs, assuming I can find the old code.)
- equityvalue, stockswap, terminationfeeacquiror, terminationfeetarget, agovgoldenparachute, agovlimitabilityactbywritconsen, agovmajvoterequirement, agovresignrequiredonmajorityvote -- Could be pulled from SDC but I don't think they are used
- tbalancesheetprivate, tincomestatementprivate -- Built from a COMPUSTAT pull (Add 30 mins)
- drivingdur, distance -- Determined using a Google Maps API script. (Est 2hrs + $100 and 5hrs to run).
Other things
On top of this. we'd need to do the following:
- The ExecComp pull (1hr)
- The COMPUSTAT pull (1hr)
- Rework the SQL (2 hrs)
So, my best guess is: 1/2 + 6 + 1/2 + 2 + 1 + 1 + 2 = 13hrs...
Old Notes
Same Day Acquisitions
We need to solve the multiple acquisitions on a single day problem. The result needs the variables listed for acquisitions below (crucially including pub/priv indicator, CAR5, sameday indicator, sharesoutstanding, with a cusip-year key).
An outline of a process to do this:
- SDCv2 is the import with some simple exclusions and basic processing 49031 - but it was likely overwritten and became 40216. A rebuild from SDCBase appears the replacement but this seems to have thrown out same day acqs.
- We therefore need to go back to the raw import of SDC_MA_Oct10v4-fixed-normal.txt into table "SDC".
- Load table prc from backup: SHOUT appears to have come from prc, which in turn came from CRSPRelNOInc. *Load table CRSPRelNOInc: this a base table for both estimation and event window builds.
- Recode some queries from the previous work:
- We would need to calc day number again for SDC, which would mean bringing in the dayno table.
- Then we'd need to create new estimation data for the missing records: acq_cusip, date_announced, acqkey, dayno, avg(ret) as ret, primex, vret, eqret, reldayno, retdayno (see EstimationBase) - but maybe this time take SHOUT with you!
- Run the estimation (using script ???.do) and build a new estimationtotal file and import it in estimationoutput
- Recode some queries from the previous work:
- Build a new EventBase, and everything in CRSP_TABLE.sql through to Flatter
- Join this to EstimationOutput, calculate the abnormal returns and then CARs.
- Finally join all of this mess back to the data that we already have. We may need to recompute targetit and targetvc.
Variables
The unit of observation is an executive's compensation year, or firm and (year-1). Each observation must have a CEO identifier, a year, and CEO compensation info. Each observation also must have lagged acquisition information, though many of these variables will be zero, and should have lagged firm level control variables.
ID variable: ceofirmid - a unique id number for each ceo-firm pair. CEOs may serve as CEOs of more than one firm. This addresses this issue.
CEO variables: Year - the year of the CEO's compensation package Execid - belonging to CEO in that year age - of ceo in year tenurefirm - tenure with firm in years (int) calc'd from joined firm date tenureceofromdate - tenure as CEO in years (int) cal'd from becameceo date tenureceo - tenure since first appeared as ceo (for firm) tenurecomp - tenure since first appeared in execcomp (for firm) to first appeared as ceo tenurecfo - tenure since first appeared in comp as cfo (for firm) to first appeared as ceo prevcfo - 0/1 (with firm) ceobefore - 0/1 (with any firm in execcomp) gender - 1 for male, 0 for female salary - from execcomp bonus - from execcomp optionsfv - options fairvalue optionsrpt - options reported value optionsblk - options black-scholes values tdc1 - total compensation from execcomp histyears - the number of years the CEO has an acquisition record with the firm prevacqpub - the number of previous acquisitions made by the CEO (for the firm) of public targets prevacqpriv - the number of previous acquisitions made by the CEO (for the firm) of private targets prevacq - the number of previous acquisitions made by the CEO (for the firm) prevacqit - the number of previous acquisitions made by the CEO (for the firm) of IT targets prevacqvc - the number of previous acquisitions made by the CEO (for the firm) of IT ceoacqswformerfirm - 1/0 to indicate whether the CEO has an acquisition history from a previous firm numtimesceo - the number of times a CEO has been a CEO to date in the data ceototdur - the total number of years of the CEO has been a CEO to date ceoprevacqpub - the CEO's total acquisitions of public firms whilst CEO with previous firms ceoprevacqpriv - the CEO's total acquisitions of private firms whilst CEO with previous firms ceoprevacq - the CEO's total acquisitions whilst CEO with previous firms ceoprevacqit - the CEO's total acquisitions of IT firms whilst CEO with previous firms
Acquisitions (joined on cusip6, ayear s.t. ayear+1=year): numacq - number of acquisitions for the firm year numacqpriv - number of private acquisitions for the firm year numacqpub - number of private acquisitions for the firm year numacqit - number of IT acquisitions for the firm year numacqvc - number of VC-backed acquisitions for the firm year car5tot - the total 5-day Cummulative Abnormal Return (0 when no acqs) car5av - the average 5-day CAR(0 when no acqs) valctot - sharesoutstanding (in millions?) x car5tot valcav - sharesoutstanding (in millions?) x car5tot sharesoutstanding - only available when their was >=1 acquisition hasacqs - 0/1 of there were any acqs within year transactionvalue - the total reported transaction value of acqs targetvalue - the total reported value (transaction, enterprise, or equity in that order of appearance) of the acqs numstockswap - number of acquisitions that involved a stock swap anystockswap - 1/0 for if acquisitions involved a stock swap that firm-year numterminationfeeacquiror - number of acquisitions that involved an acquirer termination fee numterminationfeetarget - number of acquisitions that involved an acquirer target fee numtbalancesheetprivate - number of acquisitions where the target's balance sheet is private numtincomestatementprivate - number of acquisitions where the target's income statement is private pcstock - the average percentage of stock in the payment for acquisition targets that year pccash - the average percentage of cash in the payment for acquisition targets that year drivingdur - the average driving duration to acquisition targets that year distance - the average driving distance to acquisition targets that year Firm (acquirer, joined on GVKEY, fyear s.t. fyear+1=year): fyear - fiscal year from CSTAT naics - as a string (for redundancy) naics2 - 2dg NAICS naics3 - 3dg NAICS state - name of state statenum - number assigned to states [0-61] as some non-states at - total assets ppent - plant, property equipment net total ppegt - plant, property equipment gross total revt - sames as sales ni - net income acqi - current income from acquisitions in CSTAT acq - cost of acquisitions from CSTAT mktvalue - market value agovgoldenparachute - 0/1 for the CEO has a golden parachute (many missing) agovlimitabilityactbywritconsent - 0/1 whether governance has limited shareholders ability to act by written consent (many missing) agovmajvoterequirement - 0/1 for whether board members are elected on majority or plurality, which matters for uncontested seats (many missing) agovresignrequiredonmajorityvote - 0/1 "Indicates that a director is required to submit his/her resignation upon failing to receive support from a majority of votes cast (which, typically, the board may chose to accept or reject)." (many missing) CPI: deflator - for exec comp with 2010 as base year cpiavg - the average CPI for the compensation year deflatorlag - for fiscal/acq year with 2010 as base year cpiavglag - the average CPI for the fiscal/acq year
Notes from the draft
Execucomp data
Execuomp provides data on various characteristics of each CEO that can be used as explanatory variables for compensation, including age, sex, and experience.
Various compensation measures are provided, including salary, bonuses, and the value of option awards. We focus primarily on total compensation (variable TDC1 in Execucomp), which includes salary, bonuses, the value of option awards and other types of compensation.
Compustat data
We use Compustat data (also obtained through WRDS) for data on various firm-level explanatory variables, particularly firm size measures (employment and real plant and equipment) and industry identifiers (NAICS codes at the 2 digit and 3 digit level).
CPI data for deflating
We use annual data, converting compensation over time to real values using the CPI index as a deflator.
Old distribution from paper
After a small amount of data cleaning (consisting mainly of dropping observations for which data on important variables is missing) we are left with 6447 panels and 34,956 observations, implying an average tenure of about 5.4 years per CEO in our data.
For most observations (29,775), the number of acquisitions is zero. Exactly one acquisition occurs in 4,228 observations, exactly two occur in 1,122 observations, three occur in 391 observations, and in 310 observations there are four or more acquisitions. The data set contains 9,452 acquisitions overall, of which 8,211 are acquisitions of privately held companies and 1,241 are acquisitions of publicly traded companies.
In our primary analysis we therefore include observations (firm-CEO-year combinations) with more than acquisition. In such cases we consider two alternative measures of acquisition performance – the average abnormal return over all acquisitions in the year and the total abnormal return over all acquisitions. To see if using multiple acquisitions has an effect we can of course consider a subsample consisting only of observations with no more than a single acquisition.
Data Source Draws
COMPUSTAT
Query URL: https://wrds-web.wharton.upenn.edu/wrds/ds/comp/funda/index.cfm?navId=80
Execucomp
Query URL https://wrds-web.wharton.upenn.edu/wrds/ds/comp/execcomp/anncomp/index.cfm?navId=72
Saved Query: ExecCompForAcqsPaperV
Query spec:
Data Request ID e0a8b1599f177e67 Libraries/Data Sets comp/anncomp / Frequency/Date Range ann / 1992 - 2017 Search Variable TICKER Input Codes all item(s) -all- Conditional Statements n/a Output format/Compression tab / Variables Selected CONAME CUSIP GVKEY NAICS STATE EXECID EXEC_FULLNAME GENDER PAGE BECAMECEO CO_PER_ROL GVKEY JOINED_CO AGE BONUS CEOANN CFOANN OPTION_AWARDS_BLK_VALUE OPTION_AWARDS_FV OPTION_AWARDS_RPT_VALUE SALARY TDC1 TDC2 TITLEANN TOTAL_CURR YEAR
Note: We need GVKEY, CUSIP, and year to do the joins. NAICS and STATE can be supplemented by the COMPUSTAT and EXECUCOMP data.
Acquisition Data
This is currently taken directly from the last version of the Winner's Curse Dataset (see Z:\compacqs).
We need to rebuild this to include all of the times when we had multiple acquisitions on the same day. As we use various SDC dataset measure (like a public indicator, state, and naics) it isn't sufficient to just take the CAR5 and sharesoutstanding from the event regressions - we need to join it back to the SDC data first. We will then calculate car5tot and car5av and count private and public acquisitions by blowing out the data (so that the unit of obs is an acquisition, not an announcement day) and recalculating the aggregate variables.