-
Geographical Analysis 6
-
Lecture1.1
-
Lecture1.2
-
Lecture1.3
-
Lecture1.4
-
Lecture1.5
-
Lecture1.6
-
-
Cap Table 3
-
Lecture2.1
-
Lecture2.2
-
Lecture2.3
-
-
Simulation 6
-
Lecture3.1
-
Lecture3.2
-
Lecture3.3
-
Lecture3.4
-
Lecture3.5
-
Lecture3.6
-
-
Search Index 8
-
Lecture4.1
-
Lecture4.2
-
Lecture4.3
-
Lecture4.4
-
Lecture4.5
-
Lecture4.6
-
Lecture4.7
-
Lecture4.8
-
-
Fund Distributions 5
-
Lecture5.1
-
Lecture5.2
-
Lecture5.3
-
Lecture5.4
-
Lecture5.5
-
The Venture Capital Life Cycle
The Venture Capital Life Cycle¶
-
Fundraise to get committed capital. Money is not transfered but legaly committed to be pulled down at any point in the fund life.
-
Begin drawing down on committed capital to make investments in companies.
-
Grow and manage portfolio companies.
-
Begin exiting companies through IPO, secondary sales, write downs, mergers, etc. and distribute the funds to the limited partners. Based on established term sheet, carry will be collected if investment returns exceed a certain threshold.
-
Close down the fund after all companies have been exited.
Management Fees¶
Management fees are assessed on committed capital not on drawdown capital. This is important because it means that even while some money may not have been pulled down for use within the fund, the VC will be collecting annual fees on it to pay for operating expenses. These fees can generally range from 1-2% a year. Let’s look at an example of management fees for a fund which has $500 million in committed capital, which we believe will be in operation for 8 years, and charges a 1% management fee.
import pandas as pd
#Start with a look at the committed capital in each year, it is constant
mgmt_fees = pd.DataFrame(500, index= ['Committed Capital'], columns=list(range(1,9)))
print(mgmt_fees)
1 2 3 4 5 6 7 8
Committed Capital 500 500 500 500 500 500 500 500
#Management fees will be 1% a year
mgmt_fees.loc['Management Fee'] = mgmt_fees.loc['Committed Capital'] * .01
print(mgmt_fees)
1 2 3 4 5 6 7 8
Committed Capital 500.0 500.0 500.0 500.0 500.0 500.0 500.0 500.0
Management Fee 5.0 5.0 5.0 5.0 5.0 5.0 5.0 5.0
Fund Capital Calls and Distributions¶
Let's return to our committed capital that we have. The fund will not call down all funds at once, but rather over time as investments are found. Let's first simulate capital calls of \$200 million in the first year, \\$150 million in the next year, and another \$150 million in the year after.
#Start with a look at the committed capital in each year, it is constant
distributions = pd.DataFrame(500, index= ['Committed Capital'], columns=list(range(1,9)))
#The capital calls in each year are $200, $150, $150, and $0 in the rest because all has been called down
distributions.loc['Capital Call'] = [200, 150, 150, 0, 0, 0, 0, 0]
print(distributions)
1 2 3 4 5 6 7 8
Committed Capital 500 500 500 500 500 500 500 500
Capital Call 200 150 150 0 0 0 0 0
#The cumsum function will get the cummulative sum of a column or row
print(distributions.loc['Capital Call'].cumsum())
1 200
2 350
3 500
4 500
5 500
6 500
7 500
8 500
Name: Capital Call, dtype: int64
#Add this row to the table
distributions.loc['Total Called Capital'] = distributions.loc['Capital Call'].cumsum()
print(distributions)
1 2 3 4 5 6 7 8
Committed Capital 500 500 500 500 500 500 500 500
Capital Call 200 150 150 0 0 0 0 0
Total Called Capital 200 350 500 500 500 500 500 500
Distributions begin as the companies are exited. These distributions are split between general and limited partners based on the agreed upon terms. Let's say the following numbers below represent the distributions.
distributions.loc['Distributions'] = [0, 0, 0, 350, 200, 200, 400, 200]
distributions.loc['Total Distributions'] = distributions.loc['Distributions'].cumsum()
print(distributions)
1 2 3 4 5 6 7 8
Committed Capital 500 500 500 500 500 500 500 500
Capital Call 200 150 150 0 0 0 0 0
Total Called Capital 200 350 500 500 500 500 500 500
Distributions 0 0 0 350 200 200 400 200
Total Distributions 0 0 0 350 550 750 1150 1350
Carry¶
Where a fund can make huge amounts of money for themselves is the carry. The carry is the fees that can be collected on profits. For example, carry might be 20% of the profits. The carry would not be charged on the committed capital returned (only on profits made on top of returning the capital), and might or might not be after management fees are exceeded as well. Generally speaking, carry tends to be collected at the end of the fund life as opposed to on the basis of as exits are completed. There are times, though, that terms are for carry on a deal by deal basis.
Carry without Management Fees Considered¶
Let's begin with an example where the terms of carry is simply that all the money is returned before a carry of 20% can be collected. Then the formula will be:
$ C = MAX(D-CC, 0) * P $
where
$ C = \text{Carry} $
$ D = \text{Distributions} $
$ CC = \text{Committed Capital} $
$ P = \text{Percent for Carry} $
Model 3 Scenarios¶
Find the carry for a fund which has 20% as the percent collected in the following scenarios:
- Distributions are only 350 million resulting in a loss.
- Distributions are exactly 500 million.
- Distributions are 800 million.
C1 = max(350-500, 0) * .2
C2 = max(500-500, 0) * .2
C3 = max(800-500, 0) * .2
print(C1)
print(C2)
print(C3)
0.0
0.0
60.0
#Calculate the total amount of management fees collected throughout the time period
MF = mgmt_fees.loc['Management Fee'].sum()
print(MF)
40.0
#The total fees collected will be the management fee + carry
F1 = C1 + MF
F2 = C2 + MF
F3 = C3 + MF
print(F1)
print(F2)
print(F3)
40.0
40.0
100.0