Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Updates to txfunc.py #932

Merged
merged 12 commits into from
Jun 7, 2024
Merged
7 changes: 7 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,12 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).


## [0.11.7] - 2024-06-07 01:00:00

### Added

- Heathcote, Storesletten, and Violante (2017) tax functions to `txfunc.py`

## [0.11.6] - 2024-04-19 01:00:00

### Added
Expand Down Expand Up @@ -227,6 +233,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Any earlier versions of OG-USA can be found in the [`OG-Core`](https://github.com/PSLmodels/OG-Core) repository [release history](https://github.com/PSLmodels/OG-Core/releases) from [v.0.6.4](https://github.com/PSLmodels/OG-Core/releases/tag/v0.6.4) (Jul. 20, 2021) or earlier.


[0.11.7]: https://github.com/PSLmodels/OG-Core/compare/v0.11.6...v0.11.7
[0.11.6]: https://github.com/PSLmodels/OG-Core/compare/v0.11.5...v0.11.6
[0.11.5]: https://github.com/PSLmodels/OG-Core/compare/v0.11.4...v0.11.5
[0.11.4]: https://github.com/PSLmodels/OG-Core/compare/v0.11.3...v0.11.4
Expand Down
15 changes: 15 additions & 0 deletions docs/book/OGCore_references.bib
Original file line number Diff line number Diff line change
Expand Up @@ -215,6 +215,21 @@ @Article{GouveiaStrauss:1994
month={June},
}

@Article{HeathcoteStoreslettenViolante:2017,
author={Jonathan Heathcote and Kjetil Storesletten and Giovanni L. Violante},
title={{Optimal Tax Progressivity: An Analytical Framework}},
journal={The Quarterly Journal of Economics},
year=2017,
volume={132},
number={4},
pages={1693-1754},
month={},
keywords={},
doi={},
abstract={What shapes the optimal degree of progressivity of the tax and transfer system? On the one hand, a progressive tax system can counteract inequality in initial conditions and substitute for imperfect private insurance against idiosyncratic earnings risk. On the other hand, progressivity reduces incentives to work and to invest in skills, distortions that are especially costly when the government must finance public goods. We develop a tractable equilibrium model that features all of these trade-offs. The analytical expressions we derive for social welfare deliver a transparent understanding of how preference, technology, and market structure parameters influence the optimal degree of progressivity. A calibration for the U.S. economy indicates that endogenous skill investment, flexible labor supply, and the desire to finance government purchases play quantitatively similar roles in limiting optimal progressivity. In a version of the model where poverty constrains skill investment, optimal progressivity is close to the U.S. value. An empirical analysis on cross-country data offers support to the theory.},
url={https://ideas.repec.org/a/oup/qjecon/v132y2017i4p1693-1754..html}
}

@TECHREPORT{MoorePecoraro:2021,
AUTHOR = {Rachel Moore and Brandon Pecoraro},
TITLE = {Quantitative Analysis of a Wealth Tax in the United States: Exclusions, Evasion, and Expenditures},
Expand Down
12 changes: 10 additions & 2 deletions docs/book/content/theory/government.md
Original file line number Diff line number Diff line change
Expand Up @@ -251,9 +251,17 @@ The second difficulty in modeling realistic tax and incentive detail is the need

Users can select this option by setting the parameter `tax_func_type="GS"`. The three parameters of this function ($\phi_{0}, \phi_{1}, \phi_{2}$) are estimated using the weighted sum of squares estimated described in Equation {eq}`EqTaxCalcThetaWSSQ`.

3. Linear tax functions (i.e., $\tau =$ a constant). Users can select this option by setting the parameter `tax_func_type="linear"`. The constant rate is found by taking the weighted average of the appropriate tax rate (effective tax rate, marginal tax rate on labor income, marginal tax rate on labor income) for each age and year, where the values are weighted by sampling weights and income.
3. Tax functions from {cite}`HeathcoteStoreslettenViolante:2017`:

4. Monotonically increasing smoothing spline `tax_func_type="mono"`. This functional approach is based on {cite}`EilersMarx:1996`, {cite}`Eilers:2003` and {cite}`Eilers:2005`, which is a least squares smoothing spline that penalizes nonmonotonicities. We used k-fold cross validation to show that the optimal smoothing parameter for this function on our tax data is $\lambda=12$, which is set as the default. These tax functions are fit to total income data (labor income plus capital income).
```{math}
\tau = 1 - \phi_{0}(x+y)^{1-phi_1}
```

Users can select this option by setting the parameter `tax_func_type="HSV"`. The two parameters of this function ($\phi_{0}, \phi_{1}$) are estimated using ordinary least squares.

4. Linear tax functions (i.e., $\tau =$ a constant). Users can select this option by setting the parameter `tax_func_type="linear"`. The constant rate is found by taking the weighted average of the appropriate tax rate (effective tax rate, marginal tax rate on labor income, marginal tax rate on labor income) for each age and year, where the values are weighted by sampling weights and income.

5. Monotonically increasing smoothing spline `tax_func_type="mono"`. This functional approach is based on {cite}`EilersMarx:1996`, {cite}`Eilers:2003` and {cite}`Eilers:2005`, which is a least squares smoothing spline that penalizes nonmonotonicities. We used k-fold cross validation to show that the optimal smoothing parameter for this function on our tax data is $\lambda=12$, which is set as the default. These tax functions are fit to total income data (labor income plus capital income).

Among all of these tax functional forms, users can set the `age_specific` parameter to `False` if they wish to have one function for all ages $s$. In addition, for the functions based on {cite}`DeBackerEtAl:2019` (`tax_func_type="DEP"` or `tax_func_type="DEP_totinc"`), one can set `analytical_mtrs=True` if they wish to have the $\tau^{mtrx}_{s,t}$ and $\tau^{mtry}_{s,t}$ derived from the $\tau^{etr}_{s,t}$ functions. This provides theoretical consistency, but reduced fit of the functions (see {cite}`DeBackerEtAl:2019` for more details).

Expand Down
2 changes: 1 addition & 1 deletion ogcore/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,4 +20,4 @@
from ogcore.txfunc import *
from ogcore.utils import *

__version__ = "0.11.6"
__version__ = "0.11.7"
Loading
Loading