From 204c1cd35357361fe7cb0869a5817502657aebc4 Mon Sep 17 00:00:00 2001 From: Richard Evans Date: Fri, 26 Jul 2024 00:59:57 -0600 Subject: [PATCH 1/9] Update version in setup.py --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 80f8331..f731493 100644 --- a/setup.py +++ b/setup.py @@ -5,7 +5,7 @@ setuptools.setup( name="ogzaf", - version="0.0.2", + version="0.0.3", author="Marcelo LaFleur, Richard W. Evans, and Jason DeBacker", license="CC0 1.0 Universal (CC0 1.0) Public Domain Dedication", description="South Africa Calibration for OG-Core", From 7691ff0237802d5765068e0786b9137e6e95681f Mon Sep 17 00:00:00 2001 From: Richard Evans Date: Fri, 26 Jul 2024 01:01:14 -0600 Subject: [PATCH 2/9] Updated versions in pyproject.toml --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 0da40b0..ac83d12 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -11,5 +11,5 @@ build-backend = "setuptools.build_meta" [tool.black] line-length = 79 -target-version = ["py39", "py310", "py311"] +target-version = ["py310", "py311"] include = '\.pyi?$' From d8861d31c3714138931108a6ad5f68a866ca6ed9 Mon Sep 17 00:00:00 2001 From: Richard Evans Date: Fri, 26 Jul 2024 01:03:26 -0600 Subject: [PATCH 3/9] Updated version in ogzaf/__init__.py --- ogzaf/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ogzaf/__init__.py b/ogzaf/__init__.py index 75d83a6..ee9eb47 100644 --- a/ogzaf/__init__.py +++ b/ogzaf/__init__.py @@ -8,4 +8,4 @@ from ogzaf.macro_params import * from ogzaf.utils import * -__version__ = "0.0.2" +__version__ = "0.0.3" From e1cd4fa954ccf2bc22a7cebad967b8d03f470991 Mon Sep 17 00:00:00 2001 From: Richard Evans Date: Fri, 26 Jul 2024 01:04:33 -0600 Subject: [PATCH 4/9] Updated Python version references in contributor_guide.md --- docs/book/content/contributing/contributor_guide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/book/content/contributing/contributor_guide.md b/docs/book/content/contributing/contributor_guide.md index e4ae088..fb88695 100644 --- a/docs/book/content/contributing/contributor_guide.md +++ b/docs/book/content/contributing/contributor_guide.md @@ -163,6 +163,6 @@ situations, in which case other contributors are here to help. (Sec_ContribFootnotes)= ## Footnotes -[^recent_python]:The most recent version of Python from Anaconda is Python 3.10. `OG-ZAF` is currently tested to run on Python 3.8, 3.9, and 3.10. +[^recent_python]:The most recent version of Python from Anaconda is Python 3.12. `OG-ZAF` is currently tested to run on Python 3.10 and 3.11. [^commandline_note]:The dollar sign is the end of the command prompt on a Mac. If you are using the Windows operating system, this is usually the right angle bracket (>). No matter the symbol, you don't need to type it (or anything to its left, which shows the current working directory) at the command line before you enter a command; the prompt symbol and preceding characters should already be there. From 244e4917a054d8763e6fc5219c985615b8e4d8b6 Mon Sep 17 00:00:00 2001 From: Richard Evans Date: Fri, 26 Jul 2024 01:16:35 -0600 Subject: [PATCH 5/9] Updated CHANGELOG.md --- CHANGELOG.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index f29ed3a..cfa47ca 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,14 @@ All notable changes to this project will be documented in this file. 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.0.3] - 2024-07-26 12:00:00 + +### Added + +- Removed incorrect references in documentation to OG-USA, and changed to OG-ZAF +- + + ## [0.0.2] - 2024-06-18 12:00:00 ### Added @@ -32,5 +40,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 +[0.0.3]: https://github.com/EAPD-DRB/OG-ZAF/compare/v0.0.2...v0.0.3 [0.0.2]: https://github.com/EAPD-DRB/OG-ZAF/compare/v0.0.1...v0.0.2 [0.0.1]: https://github.com/EAPD-DRB/OG-ZAF/compare/v0.0.0...v0.0.1 From 808e409945eb0ebea63e30b6e63d99dbd7dda720 Mon Sep 17 00:00:00 2001 From: Richard Evans Date: Fri, 26 Jul 2024 01:16:53 -0600 Subject: [PATCH 6/9] Changed OG-USA refs in docs to OG-ZAF --- docs/book/content/calibration/UBI.md | 10 +++---- .../calibration/exogenous_parameters.md | 2 +- .../book/content/calibration/tax_functions.md | 28 +++++++++---------- 3 files changed, 20 insertions(+), 20 deletions(-) diff --git a/docs/book/content/calibration/UBI.md b/docs/book/content/calibration/UBI.md index 6045647..38dc7f6 100644 --- a/docs/book/content/calibration/UBI.md +++ b/docs/book/content/calibration/UBI.md @@ -3,15 +3,15 @@ [TODO: This section is far along but needs to be updated.] -We have included the modeling of a universal basic income (UBI) policy directly in the theory and code for [`OG-Core`] on which dependency the `OG-USA` is based. UBI shows up in the household budget constraint {eq}`EqHHBC`, and is described in the [Budget Constraint](https://pslmodels.github.io/OG-Core/content/theory/households.html#budget-constraint) section of the Households chapter of the `OG-Core` documentation. We calculate the time series of a UBI matrix $ubi_{j,s,t}$ representing the UBI transfer to every household with head of household age $s$, lifetime income group $j$, in period $t$. We calculate the time series of this matrix from five parameters and some household composition data that we impose upon the existing demographics of `OG-USA`. +We have included the modeling of a universal basic income (UBI) policy directly in the theory and code for [`OG-Core`] on which dependency the `OG-ZAF` is based. UBI shows up in the household budget constraint {eq}`EqHHBC`, and is described in the [Budget Constraint](https://pslmodels.github.io/OG-Core/content/theory/households.html#budget-constraint) section of the Households chapter of the `OG-Core` documentation. We calculate the time series of a UBI matrix $ubi_{j,s,t}$ representing the UBI transfer to every household with head of household age $s$, lifetime income group $j$, in period $t$. We calculate the time series of this matrix from five parameters and some household composition data that we impose upon the existing demographics of `OG-ZAF`. (SecUBIcalc)= ## Calculating UBI - We calculate the time series of UBI household transfers in model units $ubi_{j,s,t)}$ and the time series of total UBI expenditures in model units $UBI_t$ from five parameters described in the [`ogusa_default_parameters.json`](https://github.com/PSLmodels/OG-USA/blob/master/ogusa/ogusa_default_parameters.json) file (`ubi_growthadj`, `ubi_nom_017`, `ubi_nom_1864`, `ubi_nom_65p`, and `ubi_nom_max`) interfaced with the `OG-USA` demographic dynamics over lifetime income groups $j$ and ages $s$, and multiplied by household composition matrices from the `Calibrate` class of the `OG-USA/ogusa/calibrate.py` module in the repository. + We calculate the time series of UBI household transfers in model units $ubi_{j,s,t)}$ and the time series of total UBI expenditures in model units $UBI_t$ from five parameters described in the [`ogzaf_default_parameters.json`](https://github.com/EAPD-DRB/OG-ZAF/blob/master/ogzaf/ogzaf_default_parameters.json) file (`ubi_growthadj`, `ubi_nom_017`, `ubi_nom_1864`, `ubi_nom_65p`, and `ubi_nom_max`) interfaced with the `OG-ZAF` demographic dynamics over lifetime income groups $j$ and ages $s$, and multiplied by household composition matrices from the `Calibrate` class of the `OG-ZAF/ogzaf/calibrate.py` module in the repository. - From the [OG-USA](https://github.com/PSLmodels/OG-USA) repository, we have four $S\times J$ matrices `ubi_num_017_mat`$_{j,s}$, `ubi_num_1864_mat`$_{j,s}$, and `ubi_num_65p_mat`$_{j,s}$ representing the number of children under age 0-17, number of adults ages 18-64, and the number of seniors age 65 and over, respectively, by lifetime ability group $j$ and age $s$ of head of household. Because our demographic age data match up well with head-of-household data from other datasets, we do not have to adjust the values in these matrices.[^HOH_age_dist_note] + From the [OG-ZAF](https://github.com/EAPD-DRB/OG-ZAF) repository, we have four $S\times J$ matrices `ubi_num_017_mat`$_{j,s}$, `ubi_num_1864_mat`$_{j,s}$, and `ubi_num_65p_mat`$_{j,s}$ representing the number of children under age 0-17, number of adults ages 18-64, and the number of seniors age 65 and over, respectively, by lifetime ability group $j$ and age $s$ of head of household. Because our demographic age data match up well with head-of-household data from other datasets, we do not have to adjust the values in these matrices.[^HOH_age_dist_note] Now we can solve for the dollar-valued (as opposed to model-unit-valued) UBI transfer to each household in the first period $ubi^{\$}_{j,s,t=0}$ in the following way. Let the parameter `ubi_nom_017` be the dollar value of the UBI transfer to each household per dependent child age 17 and under. Let the parameter `ubi_nom_1864` be the dollar value of the UBI transfer to each household per adult between the ages of 18 and 64. Let `ubi_nom_65p` be the dollar value of UBI transfer to each household per senior 65 and over. And let `ubi_nom_max` be the maximum UBI benefit per household. @@ -57,6 +57,6 @@ We have included the modeling of a universal basic income (UBI) policy directly (SecUBIfootnotes)= ## Footnotes -[^HOH_age_dist_note]: DeBacker and Evans compared the `OG-USA` age demographics $\hat{\omega}_{s,t}$ with the respective age demographics in Tax Policy Center's microsimulation model and in [Tax-Calculator](https://github.com/PSLmodels/Tax-Calculator)'s microsimulation model. The latter two microsimulation models' age demographics are based on head of household tax filer age distributions, whereas `OG-USA`'s demographics are based on the population age distribution. +[^HOH_age_dist_note]: DeBacker and Evans compared the `OG-ZAF` age demographics $\hat{\omega}_{s,t}$ with the respective age demographics in Tax Policy Center's microsimulation model and in [Tax-Calculator](https://github.com/PSLmodels/Tax-Calculator)'s microsimulation model. The latter two microsimulation models' age demographics are based on head of household tax filer age distributions, whereas `OG-ZAF`'s demographics are based on the population age distribution. -[^GrowthAdj_note]: We impose this requirement of `ubi_growthadj = False` when `g_y_annual < 0` in the [`ogusa_default_parameters.json`](https://github.com/PSLmodels/OG-USA/blob/master/ogusa/ogusa_default_parameters.json) "validators" specification of the parameter. +[^GrowthAdj_note]: We impose this requirement of `ubi_growthadj = False` when `g_y_annual < 0` in the [`ogzaf_default_parameters.json`](https://github.com/EAPD-DRB/OG-ZAF/blob/master/ogzaf/ogzaf_default_parameters.json) "validators" specification of the parameter. diff --git a/docs/book/content/calibration/exogenous_parameters.md b/docs/book/content/calibration/exogenous_parameters.md index 5e3e08a..a82a2a3 100644 --- a/docs/book/content/calibration/exogenous_parameters.md +++ b/docs/book/content/calibration/exogenous_parameters.md @@ -16,7 +16,7 @@ kernelspec: [TODO: This chapter needs heavy updating. Would be nice to do something similar to API chapter. But it is also nice to have references and descriptions as in the table below.] - In this chapter, list the exogenous inputs to the model, options, and where the values come from (weak calibration vs. strong calibration). Point to the respective chapters for some of the inputs. Mention the code in [`default_parameters.json`](https://github.com/PSLmodels/OG-USA/blob/master/ogusa/default_parameters.json) and [`parameters.py`](https://github.com/PSLmodels/OG-USA/blob/master/ogusa/parameters.py). + In this chapter, list the exogenous inputs to the model, options, and where the values come from (weak calibration vs. strong calibration). Point to the respective chapters for some of the inputs. Mention the code in [`ogzaf_default_parameters.json`](https://github.com/EAPD-DRB/OG-ZAF/blob/master/ogzaf/ogzaf_default_parameters.json) in the OG-ZAF repository and in [`default_parameters.json`](https://github.com/PSLmodels/OG-Core/blob/master/ogcore/default_parameters.json) and [`parameters.py`](https://github.com/PSLmodels/OG-Core/blob/master/ogcore/parameters.py) in the OG-Core repository.