Cost of Capital Calculation Functions#
calcfunctions
ccc.calcfunctions#
- ccc.calcfunctions.dbsl(Y, b, bonus, r)[source]#
Makes the calculation for the declining balance with a switch to straight line (DBSL) method of depreciation.
\[z = \frac{\beta}{\beta+r}\left[1-e^{-(\beta+r)Y^{*}}\right]+ \frac{e^{-\beta Y^{*}}}{(Y-Y^{*})r} \left[e^{-rY^{*}}-e^{-rY}\right]\]- Parameters:
Y (array_like) – asset life in years
b (array_like) – scale of declining balance (e.g., b=2 means double declining balance)
bonus (array_like) – rate of bonus depreciation
r (scalar) – discount rate
- Returns:
- net present value of depreciation deductions for
$1 of investment
- Return type:
z (array_like)
- ccc.calcfunctions.econ(delta, bonus, r, pi)[source]#
Makes the calculation for the NPV of depreciation deductions using economic depreciation rates.
\[z = \frac{\delta}{(\delta + r - \pi)}\]- Parameters:
delta (array_like) – rate of economic depreciation
bonus (array_like) – rate of bonus depreciation
r (scalar) – discount rate
pi (scalar) – inflation rate
- Returns:
- net present value of depreciation deductions for
$1 of investment
- Return type:
z (array_like)
- ccc.calcfunctions.eq_coc(delta, z, w, u, u_d, inv_tax_credit, psi, nu, pi, r, re_credit=None, asset_code=None, ind_code=None)[source]#
Compute the cost of capital
\[\rho = \frac{(r-\pi+\delta)}{1-u}(1-u_dz(1-\psi k) - k\nu)+w-\delta\]- Parameters:
delta (array_like) – rate of economic depreciation
z (array_like) – net present value of depreciation deductions for $1 of investment
w (scalar) – property tax rate
u (scalar) – marginal tax rate for the first layer of income taxes
u_d (scalar) – marginal tax rate on deductions
inv_tax_credit (scalar) – investment tax credit rate
psi (scalar) – fraction investment tax credit that affects depreciable basis of the investment
nu (scalar) – NPV of the investment tax credit
pi (scalar) – inflation rate
r (scalar) – discount rate
re_credit (dict) – rate of R&E credit by asset or industry
asset_code (array_like) – asset code
ind_code (array_like) – industry code
- Returns:
the cost of capital
- Return type:
rho (array_like)
- ccc.calcfunctions.eq_coc_inventory(u, phi, Y_v, pi, r)[source]#
Compute the cost of capital for inventories
\[\rho = \phi \rho_{FIFO} + (1-\phi)\rho_{LIFO}\]- Parameters:
u (scalar) – statutory marginal tax rate for the first layer of income taxes
phi (scalar) – fraction of inventories that use FIFO accounting
Y_v (scalar) – average number of year inventories are held
pi (scalar) – inflation rate
r (scalar) – discount rate
- Returns:
cost of capital for inventories
- Return type:
rho (scalar)
- ccc.calcfunctions.eq_eatr(rho, metr, p, u)[source]#
Compute the effective average tax rate (EATR).
\[eatr = \left(\frac{p - rho}{p}\right)u + \left(\frac{\rho}{p}\right)metr\]- Parameters:
rho (array_like) – cost of capital
metr (array_like) – marginal effective tax rate
p (scalar) – profit rate
u (scalar) – statutory marginal tax rate for the first layer of income taxes
- Returns:
EATR
- Return type:
eatr (array_like)
- ccc.calcfunctions.eq_metr(rho, r_prime, pi)[source]#
Compute the marginal effective tax rate (METR)
\[metr = \frac{\rho - (r^{'}-\pi)}{\rho}\]- Parameters:
rho (array_like) – cost of capital
r_prime (array_like) – after-tax rate of return
pi (scalar) – inflation rate
- Returns:
METR
- Return type:
metr (array_like)
- ccc.calcfunctions.eq_mettr(rho, s)[source]#
Compute the marginal effective total tax rate (METTR)
\[mettr = \frac{\rho - s}{\rho}\]- Parameters:
rho (array_like) – cost of capital
s (array_like) – after-tax return on savings
- Returns:
METTR
- Return type:
mettr (array_like)
- ccc.calcfunctions.eq_tax_wedge(rho, s)[source]#
Compute the tax wedge
\[wedge = \rho - s\]- Parameters:
rho (array_like) – cost of capital
s (array_like) – after-tax return on savings
- Returns:
tax wedge
- Return type:
wedge (array_like)
- ccc.calcfunctions.eq_ucc(rho, delta)[source]#
Compute the user cost of capital
\[ucc = \rho + \delta\]- Parameters:
rho (array_like) – cost of capital
delta (array_like) – rate of economic depreciation
- Returns:
the user cost of capital
- Return type:
ucc (array_like)
- ccc.calcfunctions.npv_tax_depr(df, r, pi, land_expensing)[source]#
Depending on the method of depreciation, makes calls to either the straight line or declining balance calculations.
- Parameters:
df (Pandas DataFrame) – assets by type and tax treatment
r (scalar) – discount rate
pi (scalar) – inflation rate
land_expensing (scalar) – rate of expensing on land
- Returns:
- NPV of depreciation deductions for all asset
types and tax treatments
- Return type:
z (Pandas series)
- ccc.calcfunctions.sl(Y, bonus, r)[source]#
Makes the calculation for straight line (SL) method of depreciation.
\[z = \frac{1 - e^{-rY}}{Yr}\]- Parameters:
Y (array_like) – asset life in years
bonus (array_like) – rate of bonus depreciation
r (scalar) – discount rate
- Returns:
- net present value of depreciation deductions for
$1 of investment
- Return type:
z (array_like)
- ccc.calcfunctions.update_depr_methods(df, p, dp)[source]#
Updates depreciation methods per changes from defaults that are specified by user.
- Parameters:
df (Pandas DataFrame) – assets by type and tax treatment
p (CCC Specifications object) – CCC parameters
dp (CCC DepreciationParams object) – asset-specific depreciation parameters
- Returns:
- assets by type and tax treatment with
updated tax depreciation methods
- Return type:
df (Pandas DataFrame)