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, inv_tax_credit, pi, r)[source]

Compute the cost of capital

\[\rho = \frac{(r-\pi+\delta)}{1-u}(1-uz)+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) – statutory marginal tax rate for the first layer of income taxes

  • inv_tax_credit (scalar) – investment tax credit rate

  • pi (scalar) – inflation rate

  • r (scalar) – discount rate

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)