/******************************************************************************/
/*****************************Introductory remarks*****************************/
/******************************************************************************/
/*
- This do-file calculates the total cost of borrowing (TCB) measure using the reduced
model provided in Online Appendix D.
- It requires as input the variables described below under Step 0
- We also provides a dta-file that contains the TCB-measure alongside the FacilityID
and loan type (file "TCB.dta")
*/
/*Step 0: Read data*/
/*Required variables:
1) Variables that directly enter the TCB-calculation
- Maturity_w Dealscan Maturity in months, winsorized
- AFR0_w Dealscan Facility Fee in bps, set to zero if no facility fee exists, winsorized (1 percent level)
- CF0_w Dealscan Commitment Fee in bps, set to zero if no commitment fee exists, winsorized (1 percent level)
- LIBOR_w Dealscan Spread over LIBOR in bps, winsorized (1 percent level)
- UTF0_w Dealscan Utilization Fee in bps, set to zero if no utilization fee exists, winsorized (1 percent level)
- CAF0_w Dealscan Cancellation Fee in bps, set to zero if no cancellation fee exists, winsorized (1 percent level)
2) Variables that are needed to predict usage rates (ONLY FOR CREDIT LINES)
- LoanType2 Dealscan Variable equal to "TermLoan" or "Revolver"
- AISUAISD_ratio_w Dealscan ASIU/AISD-ratio, winsorized (1 percent level)
- UTFd Dealscan Dummy equal to one if utilization fee exists
- SyndicateSize_w Dealscan Syndicate Size, winsorized (1 percent level)
- Prof_w Compustat Profitability, winsorized (1 percent level)
- logta_w Compustat Log(TotalAssets), total assets in USD mn deflated/inflated to 2005, winsorized (1 percent level)
- logcoverage_w Compustat Log(1+CoverageRatio), winsorized (1 percent level)
- lev_w Compustat Leverage, winsorized (1 percent level)
- sprat_catmiss4 Compustat Rating status according to S&P: IG, non-IG, not-rated
- PrimaryPurpose2 Dealscan Primary purpose
3) Variables that are needed to predict upfront fee (if necessary)
- ProfVola_w_revolver Compustat Volatility of EBITDA/sales using annual report data over the three years prior to loan origination, winsorized (1 percent level), set equal to zero for term loans
- PP_incr_revolver Dealscan Dummy equal to one if the credit line contains a performance-pricing schedule where the spread can increase more than it can decrease, set equal to zero for term loans
- PP_decr_revolver Dealscan Dummy equal to one if the credit line contains a performance-pricing schedule where the spread can decrease more than it can increase, set equal to zero for term loans
- Secured_d Dealscan Dummy equal to one if facility is secured
- SyndicateSize_w Dealscan Number of syndicate members
- LeadSize_w Dealscan Number of lead arrangers
- logta_w Compustat Log(TotalAssets), total assets in USD mn defalated/inflated to 2005, winsorized (1 percent level)
- logcoverage_w Compustat Log(1+CoverageRatio), winsorized (1 percent level)
- sprat_catmiss4 Compustat Rating status according to S&P: IG, non-IG, not-rated
- LoanType Dealscan Revolver/Line < 1 Yr., Revolver/Line >= 1 Yr., Term Loan, Institutional Term Loan, Delay Draw Term Loan
- PrimaryPurpose2 Dealscan Primary purpose
*/
/*******************************************************************************************************************/
/**************** Import your data set into stata *****************************************************************/
/**************** Data set should include variables listed above **************************************************/
/**************** Please check unit of variables (USD, USD mn, etc.), might deviate from Dealscan/Compustat********/
/**************** (example: total assets should be in USD mn AND deflated/inflated to 2005)***********************/
/*******************************************************************************************************************/
/*Step 1: Predict usage rates*/
/*Step 1a: Mean usage rate*/
*For term loans, set usage = 1
gen meanusage_predict = 1 if LoanType2 == "TermLoan"
*For credit lines, estimate usage rate with reduced model
#d;
replace meanusage_predict = 0.4122736
+ 0.3025533 * (UTFd==0) * AISUAISD_ratio_w
- 0.0060188 * (UTFd==1) * AISUAISD_ratio_w
+ 0.1144776 * UTFd
- 0.0036125 * UTF0_w
+ 0.0027634 * SyndicateSize_w
+ 0.1561499 * prof_w
- 0.0377434 * logta_w
- 0.0260364 * logcoverage_w
+ 0.1548211 * lev_w
+ 0.0178103 * (sprat_catmiss4 == 2) /*non-IG*/
+ 0.0724009 * (sprat_catmiss4 == 3) /*not-rated*/
- 0.0171077 * (PrimaryPurpose2 == "Work. cap.")
+ 0.0825614 * (PrimaryPurpose2 == "Debt Repay.")
+ 0.0426178 * (PrimaryPurpose2 == "Takeover")
+ 0.0191357 * (PrimaryPurpose2 == "CP backup")
+ 0.0381242 * (PrimaryPurpose2 == "Acquis. line")
+ 0.0293295 * (PrimaryPurpose2 == "Other")
+ 0.0555288 * (PrimaryPurpose2 == "LBO/MBO")
+ 0.0153746 * (PrimaryPurpose2 == "Recap.")
+ 0.2826573 * (PrimaryPurpose2 == "Debtor-in-poss.")
if LoanType2 == "Revolver";
#d cr
*Make sure estimated usage rate is in [0,1]
replace meanusage_predict = max(0, min(1, meanusage_predict)) if meanusage_predict != .
/*Step 1b: Probability that usage > 30%*/
*For term loans, set probability = 1
gen usage30d_predict = 1 if LoanType2 == "TermLoan"
*For credit lines, estimate usage rate with reduced model
#d;
replace usage30d_predict = 0.6673142
+ 0.3331432 * (UTFd==0) * AISUAISD_ratio_w
- 0.2034144 * (UTFd==1) * AISUAISD_ratio_w
+ 0.1933412 * UTFd
- 0.0057855 * UTF0_w
+ 0.0051372 * SyndicateSize_w
+ 0.3367591 * prof_w
- 0.0667810 * logta_w
- 0.0442881 * logcoverage_w
+ 0.2028023 * lev_w
+ 0.0542699 * (sprat_catmiss4 == 2) /*non-IG*/
+ 0.1222244 * (sprat_catmiss4 == 3) /*not-rated*/
- 0.0148307 * (PrimaryPurpose2 == "Work. cap.")
+ 0.1128066 * (PrimaryPurpose2 == "Debt Repay.")
+ 0.0857774 * (PrimaryPurpose2 == "Takeover")
+ 0.0181000 * (PrimaryPurpose2 == "CP backup")
+ 0.0748752 * (PrimaryPurpose2 == "Acquis. line")
+ 0.0907093 * (PrimaryPurpose2 == "Other") /*=all other types not listed here and not equal to "Corp. purposes" (baseline category)*/
+ 0.0296326 * (PrimaryPurpose2 == "LBO/MBO") /*=LBO, MBO*/
+ 0.1748873 * (PrimaryPurpose2 == "Recap.")
+ 0.3641934 * (PrimaryPurpose2 == "Debtor-in-poss.")
if LoanType2 == "Revolver";
#d cr
*Make sure estimated usage rate is in [0,1]
replace usage30d_predict = max(0, min(1, usage30d_predict)) if usage30d_predict != .
/*Step 2: Predict ufront fee (for sample with missing upfront fee information)*/
#d;
gen UFR_predict = 0.8605202
+ 50.86304 * ProfVola_w_revolver
- 12.42721 * PP_incr_revolver
- 11.24407 * PP_decr_revolver
+ 22.37659 * Secured_d
- 0.56859 * SyndicateSize_w
+ 10.04860 * LeadSize_w
+ 3.66720 * logta_w
- 4.14030 * logcoverage_w
+ 3.54468 * (sprat_catmiss4 == 2) /*non-IG*/
+ 12.74115 * (sprat_catmiss4 == 3) /*not-rated*/
+ 25.11954 * (LoanType == "Delay Draw Term Loan")
+ 6.22393 * (LoanType == "Institutional Term Loan") /*= Term Loan B - Term Loan H*/
- 4.30193 * (LoanType == "Revolver/Line < 1 Yr.") /*= Revolver/Line < 1 Yr., 364-Day Facility, Limited Line*/
+ 14.66171 * (LoanType == "Term Loan") /*=Term Loan A*/
- 2.13928 * (PrimaryPurpose2 == "Work. cap.")
- 3.29338 * (PrimaryPurpose2 == "Debt Repay.")
+ 13.49863 * (PrimaryPurpose2 == "Takeover")
- 11.67904 * (PrimaryPurpose2 == "CP backup")
- 0.88272 * (PrimaryPurpose2 == "Acquis. line")
+ 14.64962 * (PrimaryPurpose2 == "Other") /*=all other types not listed here and not equal to "Corp. purposes" (baseline category)*/
+ 62.87003 * (PrimaryPurpose2 == "LBO/MBO") /*=LBO, MBO*/
+ 41.80537 * (PrimaryPurpose2 == "Recap.")
+ 65.45347 * (PrimaryPurpose2 == "Debtor-in-poss.");
#d cr
*Make sure estimated upfront fee is zero or larger
replace UFR_predict = max(0, UFR_predict) if UFR_predict != .
*Use upfront fee from Dealscan if available
replace UFR_predict = UFR_w if UFR_w != .
/*Step 3: Determine total-cost-of-borrowing measure (TCB)*/
gen TCB = UFR_predict / (Maturity_w/12) + (1-meanusage_predict)*(AFR0_w + CF0_w) + meanusage_predict * (AFR0_w + LIBOR_w) + usage30d_predict* UTF0_w + 0.005 * CAF0_w