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)