# 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)