# Tax Functions¶

tax.py modules

## ogcore.tax¶

### Functions for taxes in the steady state and along the transition path.¶

ogcore.tax.ETR_income(r, w, b, n, factor, e, etr_params, p)[source]

Calculates effective personal income tax rate.

Parameters
• r (array_like) – real interest rate

• w (array_like) – real wage rate

• b (Numpy array) – savings

• n (Numpy array) – labor supply

• factor (scalar) – scaling factor converting model units to dollars

• e (Numpy array) – effective labor units

• etr_params (Numpy array) – effective tax rate function parameters

• p (OG-Core Specifications object) – model parameters

Returns

effective tax rate on total income

Return type

tau (Numpy array)

ogcore.tax.ETR_wealth(b, h_wealth, m_wealth, p_wealth)[source]

Calculates the effective tax rate on wealth.

$T_{j,s,t}^{w} = \frac{h^{w}p_{w}b_{j,s,t}}{h^{w}b_{j,s,t} + m^{w}}$
Parameters
• b (Numpy array) – savings

• h_wealth (scalar) – parameter of wealth tax function

• p_wealth (scalar) – parameter of wealth tax function

• m_wealth (scalar) – parameter of wealth tax function

Returns

effective tax rate on wealth, size = SxJ

Return type

tau_w (Numpy array)

ogcore.tax.MTR_income(r, w, b, n, factor, mtr_capital, e, etr_params, mtr_params, p)[source]

Generates the marginal tax rate on labor income for households.

Parameters
• r (array_like) – real interest rate

• w (array_like) – real wage rate

• b (Numpy array) – savings

• n (Numpy array) – labor supply

• factor (scalar) – scaling factor converting model units to dollars

• mtr_capital (bool) – whether to compute the marginal tax rate on capital income or labor income

• e (Numpy array) – effective labor units

• etr_params (Numpy array) – effective tax rate function parameters

• p (OG-Core Specifications object) – model parameters

Returns

marginal tax rate on income source

Return type

tau (Numpy array)

ogcore.tax.MTR_wealth(b, h_wealth, m_wealth, p_wealth)[source]

Calculates the marginal tax rate on wealth from the wealth tax.

$\frac{\partial T_{j,s,t}^{w}}{\partial b_{j,s,t}} = \frac{h^{w}m^{w}p_{w}}{(b_{j,s,t}h^{w}m^{w})^{2}}$
Parameters
• b (Numpy array) – savings

• h_wealth (scalar) – parameter of wealth tax function

• p_wealth (scalar) – parameter of wealth tax function

• m_wealth (scalar) – parameter of wealth tax function

Returns

marginal tax rate on wealth, size = SxJ

Return type

tau_prime (Numpy array)

ogcore.tax.bequest_tax_liab(r, b, bq, t, j, method, p)[source]

Calculate liability due from taxes on bequests for each household.

Parameters
• r (array_like) – real interest rate

• b (Numpy array) – savings

• bq (Numpy array) – bequests received

• t (int) – time period

• j (int) – index of lifetime income group

• method (str) – adjusts calculation dimensions based on ‘SS’ or ‘TPI’

• p (OG-Core Specifications object) – model parameters

Returns

bequest tax liability for each household

Return type

T_BQ (Numpy array)

ogcore.tax.get_biz_tax(w, Y, L, K, p, method)[source]

Finds total business income tax revenue.

$R_{t}^{b} = \tau_{t}^{b}(Y_{t} - w_{t}L_{t}) - \tau_{t}^{b}\delta_{t}^{\tau}K_{t}^{\tau}$
Parameters
• r (array_like) – real interest rate

• Y (array_like) – aggregate output

• L (array_like) – aggregate labor demand

• K (array_like) – aggregate capital demand

Returns

Return type

ogcore.tax.income_tax_liab(r, w, b, n, factor, t, j, method, e, etr_params, p)[source]

Calculate income and payroll tax liability for each household

Parameters
• r (array_like) – real interest rate

• w (array_like) – real wage rate

• b (Numpy array) – savings

• n (Numpy array) – labor supply

• factor (scalar) – scaling factor converting model units to dollars

• t (int) – time period

• j (int) – index of lifetime income group

• method (str) – adjusts calculation dimensions based on ‘SS’ or ‘TPI’

• e (Numpy array) – effective labor units

• etr_params (Numpy array) – effective tax rate function parameters

• p (OG-Core Specifications object) – model parameters

Returns

total income and payroll taxes paid for each

household

Return type

T_I (Numpy array)

ogcore.tax.net_taxes(r, w, b, n, bq, factor, tr, ubi, theta, t, j, shift, method, e, etr_params, p)[source]

Calculate net taxes paid for each household.

Parameters
• r (array_like) – real interest rate

• w (array_like) – real wage rate

• b (Numpy array) – savings

• n (Numpy array) – labor supply

• bq (Numpy array) – bequests received

• factor (scalar) – scaling factor converting model units to dollars

• tr (Numpy array) – government transfers to the household

• ubi (Numpy array) – universal basic income payments to households

• theta (Numpy array) – social security replacement rate value for lifetime income group j

• t (int) – time period

• j (int) – index of lifetime income group

• shift (bool) – whether computing for periods 0–s or 1–(s+1), =True for 1–(s+1)

• method (str) – adjusts calculation dimensions based on ‘SS’ or ‘TPI’

• e (Numpy array) – effective labor units

• etr_params (Numpy array) – effective tax rate function parameters

• p (OG-Core Specifications object) – model parameters

Returns

net taxes paid for each household

Return type

net_tax (Numpy array)

ogcore.tax.pension_amount(w, n, theta, t, j, shift, method, e, p)[source]

Calculate public pension benefit amounts for each household.

Parameters
• w (array_like) – real wage rate

• n (Numpy array) – labor supply

• theta (Numpy array) – social security replacement rate value for lifetime income group j

• t (int) – time period

• j (int) – index of lifetime income group

• shift (bool) – whether computing for periods 0–s or 1–(s+1), =True for 1–(s+1)

• method (str) – adjusts calculation dimensions based on ‘SS’ or ‘TPI’

• e (Numpy array) – effective labor units

• p (OG-Core Specifications object) – model parameters

Returns

pension amount for each household

Return type

pension (Numpy array)

ogcore.tax.replacement_rate_vals(nssmat, wss, factor_ss, j, p)[source]

Calculates replacement rate values for the social security system.

Parameters
• nssmat (Numpy array) – initial guess at labor supply, size = SxJ

• new_w (scalar) – steady state real wage rate

• factor_ss (scalar) – scaling factor converting model units to dollars

• j (int) – index of lifetime income group

• p (OG-Core Specifications object) – model parameters

Returns

social security replacement rate value for

Return type

theta (Numpy array)

ogcore.tax.wealth_tax_liab(r, b, t, j, method, p)[source]

Calculate wealth tax liability for each household.

Parameters
• r (array_like) – real interest rate

• b (Numpy array) – savings

• t (int) – time period

• j (int) – index of lifetime income group

• method (str) – adjusts calculation dimensions based on ‘SS’ or ‘TPI’

• p (OG-Core Specifications object) – model parameters

Returns

wealth tax liability for each household

Return type

T_W (Numpy array)