Skip to content

Add parameters for calibration of initial distribution of wealth - #1220

Draft
rickecon wants to merge 15 commits into
PSLmodels:masterfrom
rickecon:init_w
Draft

rickecon wants to merge 15 commits into
PSLmodels:masterfrom
rickecon:init_w

Conversation

@rickecon

Copy link
Copy Markdown
Member

This PR:

  • Adds three new parameters for calibrating the initial distribution of household wealth: initial_wealth_factor_mat, use_initial_BY_ratio, and initial_BY_ratio. The initial_wealth_factor_mat adjusts the initial distribution of household wealth relative to the steady-state distribution of household wealth. The other two parameters let the modeler adjust the initial distribution of household wealth by a factor that is based on a target value for the initial aggregate household wealth to GDP ratio. This is an alternative approach to PR Add initial_wealth_ratio to calibrate initial household wealth #1189 and PR Allow a supplied initial distribution of wealth in the transition #1209
  • Adds documentation in new last section of calibration.md on how to calibrate initial_wealth_factor_mat, use_initial_BY_ratio, and initial_BY_ratio parameters.
  • Removes the extraneous requirements.txt file. This file is clearly out-of-date, and I can't see anything that is calling it or using it. os is not a PyPI package, it is Python standard library. taxcalc is not a dependency of OG-Core. It omits the important dependencies listed in pyproject.toml. requirements.txt was added in commit 36727c7c (Aug 2019) as part of "add readthedocs files," and there's no .readthedocs.yaml in the repo anymore — docs now build via the Makefile and workflows. It's been touched twice since, last in f44266f2 (Jul 2024, "Added numba to requirements.txt"), which looks like someone updating it out of habit rather than because anything consumed it.
  • Fixed typos in output_talbes.py, pensions.py.
  • Updates the uv.lock.

The following table shows results from different combinations of parameters. All the folders and files are stored in this OG_WealthDist_PR Google Drive folder.

Script name Description base B_1/Y_1 base B_SS / Y_SS
run_ogcore_example.py Baseline and reform from current master branch 3.4496 3.7954
run_init_w.py Baseline and reform from PR branch with default params 3.1147 3.7954
run_init_w_usa.py Baseline and reform from PR branch with B/Y USA target ? 3.7954
run_init_w_oldmatch.py Baseline and reform from PR branch setting B/Y to match old ? ?

cc: @jdebacker @marcelolafleur

@rickecon
rickecon marked this pull request as draft September 14, 2026 07:53
@jdebacker

jdebacker commented Sep 16, 2026 •

Copy link
Copy Markdown
Member

@rickecon Thanks for providing an alternative approach to that in PRs #1189 and #1209. Calibration of an initial net wealth to GDP ratio will be much easier than calibrating a ratio of initial wealth to steady state wealth.

Adds three new parameters for calibrating the initial distribution of household wealth: initial_wealth_factor_mat, use_initial_BY_ratio, and initial_BY_ratio. The initial_wealth_factor_mat adjusts the initial distribution of household wealth relative to the steady-state distribution of household wealth. The other two parameters let the modeler adjust the initial distribution of household wealth by a factor that is based on a target value for the initial aggregate household wealth to GDP ratio.

I would suggests the following modifications here:

  1. The use_initial_BY_ratio parameter is unnecessary: it would be replaced by if initial_BY_ratio is None:.
  2. For the same reason that an initial net wealth to GDP makes more sense than a ratio of initial to SS wealth, I think the distributional parameter (initial_wealth_factor_mat) should be calibrated without reference to the SS distribution. I would prose and alternative initial_wealth_distribution parameter that is an SxJ matrix showing the fraction of aggregate net worth held by each (s,j) cell in the population. Such an object could be calibrated in a straight-forward manner from survey data on household net worth (such as the Survey of Consumer Finances in the US) by simply finding the weighted sum of net wealth by age and income group and then dividing that by aggregate net wealth found in the survey (wealthinit.py in the OG-USA repo does essentially this).

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants