Hello,
I am a PhD student working on a project that involves identifying ownership structure patterns, which I will subsequently use to calculate cash flow rights and control rights. I am particularly following the methodology outlined in the paper
Aslan, H., & Kumar, P. (2012). Strategic ownership structure and the cost of debt. The Review of Financial Studies, 25(7), 2257-2299.
On page 15 of this paper, the authors categorize ownership structures into four distinct types: Pyramids, Cross-Holding, Circular, and Dual Cross-Holding. These classifications are precisely what I need for my research. Please refer to the accompanying image or the main text for further details.

I have a dataset that I'm working with, and I would like to share a few rows for your reference. Please let me know if these sample rows are sufficient or if you need additional data.
I am using the dataset from the following paper, which is available on their website:
Schwartz-Ziv, Miriam, and Ekaterina Volkova. "Is blockholder diversity detrimental?." Management Science (2024).
Listed 100 out of 518009 observations
and I found the following Statalist posts very helpful:
https://www.statalist.org/forums/for...s-observations
https://www.statalist.org/forums/for...d-observations
Based on these discussions, I tried using the following code to identify the ownership structures in my dataset:
However, my code is still running because it appears that each firm holds another, leading to an extensive and far-reaching chain of ultimate parents. I am concerned that I may be stuck in an infinite loop and not producing the desired results. I need to identify all four types of ownership structures: Pyramids, Cross-Holding, Circular, and Dual Cross-Holding. it would be appreciated if I can have an indicator (flag) for each so I can use afterwards whn computing cash flow rights and control rights!
Can anyone please help me resolve this issue?
these are the current results of the code:
I feel the code keeps repeating the output, but I'm not sure.
Regards,
Thea
I am a PhD student working on a project that involves identifying ownership structure patterns, which I will subsequently use to calculate cash flow rights and control rights. I am particularly following the methodology outlined in the paper
Aslan, H., & Kumar, P. (2012). Strategic ownership structure and the cost of debt. The Review of Financial Studies, 25(7), 2257-2299.
On page 15 of this paper, the authors categorize ownership structures into four distinct types: Pyramids, Cross-Holding, Circular, and Dual Cross-Holding. These classifications are precisely what I need for my research. Please refer to the accompanying image or the main text for further details.
I have a dataset that I'm working with, and I would like to share a few rows for your reference. Please let me know if these sample rows are sufficient or if you need additional data.
I am using the dataset from the following paper, which is available on their website:
Schwartz-Ziv, Miriam, and Ekaterina Volkova. "Is blockholder diversity detrimental?." Management Science (2024).
Code:
* Example generated by -dataex-. For more info, type help dataex clear input long blockholder_cik str149 blockholder_name long company_cik str110 company_name int year float position 9015 "BABSON DAVID L & CO INC" 20 "K TRON INTERNATIONAL INC" 1997 10.69 9015 "BABSON DAVID L & CO INC" 20 "K TRON INTERNATIONAL INC" 1998 10.69 9015 "BABSON DAVID L & CO INC" 20 "K TRON INTERNATIONAL INC" 1999 11.29 9015 "BABSON DAVID L & CO INC" 20 "K TRON INTERNATIONAL INC" 2000 4.9 50341 "FLEETBOSTON FINANCIAL CORP" 20 "K TRON INTERNATIONAL INC" 2000 5.8 50341 "FLEETBOSTON FINANCIAL CORP" 20 "K TRON INTERNATIONAL INC" 2001 6.03 50341 "FLEETBOSTON FINANCIAL CORP" 20 "K TRON INTERNATIONAL INC" 2002 5.97 50341 "FLEETBOSTON FINANCIAL CORP" 20 "K TRON INTERNATIONAL INC" 2003 6.06 70858 "BANK OF AMERICA CORP /DE/" 20 "K TRON INTERNATIONAL INC" 2004 5 80255 "PRICE T ROWE ASSOCIATES INC /MD/" 20 "K TRON INTERNATIONAL INC" 1995 6.4 80255 "PRICE T ROWE ASSOCIATES INC /MD/" 20 "K TRON INTERNATIONAL INC" 1996 7.9 80255 "PRICE T ROWE ASSOCIATES INC /MD/" 20 "K TRON INTERNATIONAL INC" 1997 7.8 80255 "PRICE T ROWE ASSOCIATES INC /MD/" 20 "K TRON INTERNATIONAL INC" 1998 8.2 80255 "PRICE T ROWE ASSOCIATES INC /MD/" 20 "K TRON INTERNATIONAL INC" 1999 9.1 80255 "PRICE T ROWE ASSOCIATES INC /MD/" 20 "K TRON INTERNATIONAL INC" 2000 10.5 80255 "PRICE T ROWE ASSOCIATES INC /MD/" 20 "K TRON INTERNATIONAL INC" 2001 10.5 80255 "PRICE T ROWE ASSOCIATES INC /MD/" 20 "K TRON INTERNATIONAL INC" 2002 10.5 80255 "PRICE T ROWE ASSOCIATES INC /MD/" 20 "K TRON INTERNATIONAL INC" 2003 10.5 80255 "PRICE T ROWE ASSOCIATES INC /MD/" 20 "K TRON INTERNATIONAL INC" 2004 10.4 80255 "PRICE T ROWE ASSOCIATES INC /MD/" 20 "K TRON INTERNATIONAL INC" 2005 9.9 80255 "PRICE T ROWE ASSOCIATES INC /MD/" 20 "K TRON INTERNATIONAL INC" 2006 9.9 80255 "PRICE T ROWE ASSOCIATES INC /MD/" 20 "K TRON INTERNATIONAL INC" 2007 9.4 80255 "PRICE T ROWE ASSOCIATES INC /MD/" 20 "K TRON INTERNATIONAL INC" 2008 9.4 80255 "PRICE T ROWE ASSOCIATES INC /MD/" 20 "K TRON INTERNATIONAL INC" 2009 9 354204 "DIMENSIONAL FUND ADVISORS INC" 20 "K TRON INTERNATIONAL INC" 1998 5.04 354204 "DIMENSIONAL FUND ADVISORS INC" 20 "K TRON INTERNATIONAL INC" 1999 4.82 354204 "DIMENSIONAL FUND ADVISORS INC" 20 "K TRON INTERNATIONAL INC" 2000 5.72 354204 "DIMENSIONAL FUND ADVISORS INC" 20 "K TRON INTERNATIONAL INC" 2001 5.71 354204 "DIMENSIONAL FUND ADVISORS INC" 20 "K TRON INTERNATIONAL INC" 2002 5 354204 "DIMENSIONAL FUND ADVISORS INC" 20 "K TRON INTERNATIONAL INC" 2003 5 888002 "AXA FINANCIAL INC" 20 "K TRON INTERNATIONAL INC" 2007 5.2 904571 "GOLDMAN SACHS GROUP LP" 20 "K TRON INTERNATIONAL INC" 1998 7.8 906304 "ROYCE & ASSOCIATES LLC" 20 "K TRON INTERNATIONAL INC" 2007 4.84 929372 "PARADIGM CAPITAL MANAGEMENT INC /NY/ /ADV" 20 "K TRON INTERNATIONAL INC" 1998 5.7 937394 "HEARTLAND ADVISORS INC" 20 "K TRON INTERNATIONAL INC" 1999 6.7 937394 "HEARTLAND ADVISORS INC" 20 "K TRON INTERNATIONAL INC" 2000 11.4 937394 "HEARTLAND ADVISORS INC" 20 "K TRON INTERNATIONAL INC" 2001 11.3 937394 "HEARTLAND ADVISORS INC" 20 "K TRON INTERNATIONAL INC" 2002 11.4 937394 "HEARTLAND ADVISORS INC" 20 "K TRON INTERNATIONAL INC" 2003 11.3 937394 "HEARTLAND ADVISORS INC" 20 "K TRON INTERNATIONAL INC" 2004 7.73 937394 "HEARTLAND ADVISORS INC" 20 "K TRON INTERNATIONAL INC" 2005 5.7 944808 "LIBERTY INVESTMENT MANAGEMENT INC/" 20 "K TRON INTERNATIONAL INC" 1997 6.15 1037792 "PARADIGM CAPITAL MANAGEMENT INC/NY" 20 "K TRON INTERNATIONAL INC" 2001 9.7 1037792 "PARADIGM CAPITAL MANAGEMENT INC/NY" 20 "K TRON INTERNATIONAL INC" 2002 8 1037792 "PARADIGM CAPITAL MANAGEMENT INC/NY" 20 "K TRON INTERNATIONAL INC" 2003 7.2 1037792 "PARADIGM CAPITAL MANAGEMENT INC/NY" 20 "K TRON INTERNATIONAL INC" 2004 7.3 1037792 "PARADIGM CAPITAL MANAGEMENT INC/NY" 20 "K TRON INTERNATIONAL INC" 2005 6.7 1037792 "PARADIGM CAPITAL MANAGEMENT INC/NY" 20 "K TRON INTERNATIONAL INC" 2006 5 1088084 "GOLDMAN SACHS ASSET MANAGEMENT/" 20 "K TRON INTERNATIONAL INC" 1999 10.5 1105838 "ROBOTTI ROBERT" 20 "K TRON INTERNATIONAL INC" 2001 7.5 1105838 "ROBOTTI ROBERT" 20 "K TRON INTERNATIONAL INC" 2002 8.8 1105838 "ROBOTTI ROBERT" 20 "K TRON INTERNATIONAL INC" 2003 9.5 1105838 "ROBOTTI ROBERT" 20 "K TRON INTERNATIONAL INC" 2004 9.5 1105838 "ROBOTTI ROBERT" 20 "K TRON INTERNATIONAL INC" 2005 9.4 1105838 "ROBOTTI ROBERT" 20 "K TRON INTERNATIONAL INC" 2006 9.4 1105838 "ROBOTTI ROBERT" 20 "K TRON INTERNATIONAL INC" 2007 7.8 1145949 "CLOUES EDWARD B II" 20 "K TRON INTERNATIONAL INC" 2001 9.3 1145949 "CLOUES EDWARD B II" 20 "K TRON INTERNATIONAL INC" 2002 9.3 1145949 "CLOUES EDWARD B II" 20 "K TRON INTERNATIONAL INC" 2003 9.3 1145949 "CLOUES EDWARD B II" 20 "K TRON INTERNATIONAL INC" 2004 9.5 1145949 "CLOUES EDWARD B II" 20 "K TRON INTERNATIONAL INC" 2005 9.5 1145949 "CLOUES EDWARD B II" 20 "K TRON INTERNATIONAL INC" 2006 11.1 1145949 "CLOUES EDWARD B II" 20 "K TRON INTERNATIONAL INC" 2007 11.1 1145949 "CLOUES EDWARD B II" 20 "K TRON INTERNATIONAL INC" 2008 11.1 1145949 "CLOUES EDWARD B II" 20 "K TRON INTERNATIONAL INC" 2009 8.9 1145949 "CLOUES EDWARD B II" 20 "K TRON INTERNATIONAL INC" 2010 7.5 1328618 "Nichols James William" 20 "K TRON INTERNATIONAL INC" 2005 6.2 1620275 "Paradice Investment Management LLC" 63 "FNW BANCORP INC" 2020 5.3 38777 "FRANKLIN RESOURCES INC" 1750 "AAR CORP" 2012 9.8 38777 "FRANKLIN RESOURCES INC" 1750 "AAR CORP" 2013 9.3 38777 "FRANKLIN RESOURCES INC" 1750 "AAR CORP" 2014 9.7 38777 "FRANKLIN RESOURCES INC" 1750 "AAR CORP" 2015 10.3 38777 "FRANKLIN RESOURCES INC" 1750 "AAR CORP" 2016 12.3 38777 "FRANKLIN RESOURCES INC" 1750 "AAR CORP" 2017 10.9 70858 "BANK OF AMERICA CORP /DE/" 1750 "AAR CORP" 2009 6.4 70858 "BANK OF AMERICA CORP /DE/" 1750 "AAR CORP" 2010 5 72971 "NORWEST CORP" 1750 "AAR CORP" 1994 6.7 72971 "NORWEST CORP" 1750 "AAR CORP" 1995 8.7 72971 "NORWEST CORP" 1750 "AAR CORP" 1996 5 102909 "VANGUARD GROUP INC" 1750 "AAR CORP" 2011 5.04 102909 "VANGUARD GROUP INC" 1750 "AAR CORP" 2012 5.75 102909 "VANGUARD GROUP INC" 1750 "AAR CORP" 2013 5.93 102909 "VANGUARD GROUP INC" 1750 "AAR CORP" 2014 6.23 102909 "VANGUARD GROUP INC" 1750 "AAR CORP" 2015 7.06 102909 "VANGUARD GROUP INC" 1750 "AAR CORP" 2016 8.06 102909 "VANGUARD GROUP INC" 1750 "AAR CORP" 2017 8.85 102909 "VANGUARD GROUP INC" 1750 "AAR CORP" 2018 9.58 102909 "VANGUARD GROUP INC" 1750 "AAR CORP" 2019 9.96 102909 "VANGUARD GROUP INC" 1750 "AAR CORP" 2020 9.45 315066 "FMR CORP" 1750 "AAR CORP" 2003 10.11 315066 "FMR CORP" 1750 "AAR CORP" 2004 10.11 315066 "FMR CORP" 1750 "AAR CORP" 2005 8.35 315066 "FMR CORP" 1750 "AAR CORP" 2006 10.85 354204 "DIMENSIONAL FUND ADVISORS INC" 1750 "AAR CORP" 1999 7.06 354204 "DIMENSIONAL FUND ADVISORS INC" 1750 "AAR CORP" 2000 7.56 354204 "DIMENSIONAL FUND ADVISORS INC" 1750 "AAR CORP" 2001 7.69 354204 "DIMENSIONAL FUND ADVISORS INC" 1750 "AAR CORP" 2002 5 354204 "DIMENSIONAL FUND ADVISORS INC" 1750 "AAR CORP" 2003 6.7 354204 "DIMENSIONAL FUND ADVISORS INC" 1750 "AAR CORP" 2004 8.25 354204 "DIMENSIONAL FUND ADVISORS INC" 1750 "AAR CORP" 2005 8.48 end
and I found the following Statalist posts very helpful:
https://www.statalist.org/forums/for...s-observations
https://www.statalist.org/forums/for...d-observations
Based on these discussions, I tried using the following code to identify the ownership structures in my dataset:
Code:
clear all import delimited "C:\Users\Downloads\ownership.csv" * Create a temporary file for the data tempfile data save `data' * Generate list of largest owner by company bys company_name (position): gen level1 = blockholder_name[_N] * Tag ties bys company_name (position): gen tie = position[_N] == position[_N-1] * Data set of largest shareholders contract company_name level1 drop _freq tempfile level1 sort level1 save `level1' clear use `data' merge m:1 company_name using `level1' drop if _merge == 2 drop _merge sort level1 save `data', replace * Initialize the iteration local continue = 1 local iter = 1 while `continue' { local next_iter = `iter' + 1 * Identify next level of ownership use `level1' rename (*) (level`iter' level`next_iter') sort level`iter' save `level1', replace use `data' merge m:1 level`iter' using `level1' drop if _merge == 2 drop _merge * Check if any new levels were added count if !missing(level`next_iter') local new_levels = r(N) * Save the updated data save `data', replace * Update iteration counter local iter = `next_iter' * Stop if no new levels were added if `new_levels' == 0 local continue = 0 } * Generate the ultimate parent variable gen ultimate_parent = level`iter' * Replace missing ultimate parents with the highest known level forval i = `=`iter'-1'(-1)1 { replace ultimate_parent = level`i' if missing(ultimate_parent) } * Save the results save "calculated_cash_flow_control_rights_pyramidal.dta", replace
However, my code is still running because it appears that each firm holds another, leading to an extensive and far-reaching chain of ultimate parents. I am concerned that I may be stuck in an infinite loop and not producing the desired results. I need to identify all four types of ownership structures: Pyramids, Cross-Holding, Circular, and Dual Cross-Holding. it would be appreciated if I can have an indicator (flag) for each so I can use afterwards whn computing cash flow rights and control rights!
Can anyone please help me resolve this issue?
these are the current results of the code:
Code:
Result Number of obs ----------------------------------------- Not matched 499,088 from master 464,200 (_merge==1) from using 34,888 (_merge==2) Matched 53,809 (_merge==3) ----------------------------------------- (34,888 observations deleted) 53,809 file C:\Users\Thea\AppData\Local\Temp\ST_535c_000001.tmp saved as .dta format file C:\Users\Thea\AppData\Local\Temp\ST_535c_000002.tmp saved as .dta format Result Number of obs ----------------------------------------- Not matched 499,088 from master 464,200 (_merge==1) from using 34,888 (_merge==2) Matched 53,809 (_merge==3) ----------------------------------------- (34,888 observations deleted) 53,809 file C:\Users\Thea\AppData\Local\Temp\ST_535c_000001.tmp saved as .dta format file C:\Users\Thea\AppData\Local\Temp\ST_535c_000002.tmp saved as .dta format
Regards,
Thea
Comment