diff --git a/CHANGELOG.md b/CHANGELOG.md index 54a1ffa17..3e7eb0a39 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,7 +5,7 @@ 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). -## [Unreleased] +## [0.19.1] - 2026-08-10 12:00:00 ### Added @@ -24,17 +24,23 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 escalates from cycling to diverging), and a run that ends unconverged while stalled carries the diagnosis in the `RuntimeError` message, so it reaches users who only see the traceback. + [PR #1178](https://github.com/PSLmodels/OG-Core/pull/1178). +- Changes the default of `stationarized` to `False` in `output_plots.plot_aggregates` and `output_plots.plot_industry_aggregates`, so unstationarized values are plotted by default, resolving Issue [#1133](https://github.com/PSLmodels/OG-Core/issues/1133). [PR #1183](https://github.com/PSLmodels/OG-Core/pull/1183). + ### Bug Fixes - Fixes Issue [#1186](https://github.com/PSLmodels/OG-Core/issues/1186): - with demographics that vary across lifetime income groups (PR #1165), the - `use_zeta = False` branch of `household.get_bq` divided each group's - bequest pool by its birth share (`lambdas[j]`) rather than its actual - population share, so bequests received did not sum to bequests left and - the steady-state resource constraint failed. Receipts are now divided by - the group's actual population (from `omega_SS` / `omega`), matching the - `use_zeta = True` branch. Results are unchanged when demographics are - common across groups. + with demographics that vary across lifetime income groups (introduced in + PR #1165), the `use_zeta = False` branch of `household.get_bq` divided + each group's bequest pool by its birth share (`lambdas[j]`) rather than + its actual population share, so bequests received did not sum to bequests + left and the steady-state resource constraint failed. Receipts are now + divided by the group's actual population (from `omega_SS` / `omega`), + matching the `use_zeta = True` branch. Results are unchanged when + demographics are common across groups. [PR #1187](https://github.com/PSLmodels/OG-Core/pull/1187). +- Fixes Issue [#1015](https://github.com/PSLmodels/OG-Core/issues/1015): fixes escape with special characters in parameter names that caused failures when reading from JSON files. Adds a test to prevent this in the future. [PR #1193](https://github.com/PSLmodels/OG-Core/pull/1193). +- Resolve Issue [#1152](https://github.com/PSLmodels/OG-Core/issues/1152): expose same keys in the steady-state and time path dictionaries. [PR #1185](https://github.com/PSLmodels/OG-Core/pull/1185). +- Correct payroll tax calculations, resolving Issue [#1023](https://github.com/PSLmodels/OG-Core/issues/1023). [PR #1184](https://github.com/PSLmodels/OG-Core/pull/1184). ## [0.19.0] - 2026-07-29 12:00:00 @@ -732,6 +738,8 @@ 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.19.1]: https://github.com/PSLmodels/OG-Core/compare/v0.19.0...v0.19.1 +[0.19.0]: https://github.com/PSLmodels/OG-Core/compare/v0.18.1...v0.19.0 [0.18.1]: https://github.com/PSLmodels/OG-Core/compare/v0.18.0...v0.18.1 [0.18.0]: https://github.com/PSLmodels/OG-Core/compare/v0.17.0...v0.18.0 [0.17.0]: https://github.com/PSLmodels/OG-Core/compare/v0.16.4...v0.17.0 diff --git a/docs/book/content/api/aggregates.rst b/docs/book/content/api/aggregates.rst index e83a73d79..35c817a4b 100644 --- a/docs/book/content/api/aggregates.rst +++ b/docs/book/content/api/aggregates.rst @@ -9,5 +9,6 @@ ogcore.aggregates ------------------------------------------ .. automodule:: ogcore.aggregates - :members: get_L, get_I, get_B, get_BQ, get_RM, get_C, revenue, get_r_p, - resource_constraint, get_K_splits, get_ptilde + :members: get_L, get_I, get_B, get_BQ, get_RM, get_C, revenue, + get_payroll_tax_revenue, get_r_p, resource_constraint, get_capital_outflows, + get_K_splits, get_ptilde diff --git a/docs/book/content/api/demographics.rst b/docs/book/content/api/demographics.rst index 8ae05304f..15dc1a1c7 100644 --- a/docs/book/content/api/demographics.rst +++ b/docs/book/content/api/demographics.rst @@ -10,4 +10,4 @@ ogcore.demographics .. automodule:: ogcore.demographics :members: get_un_data, get_fert, get_mort, get_pop, pop_rebin, get_imm_rates, - immsolve, get_pop_objs, pre_pop_solve + immsolve, expand_pop_obj_J, get_pop_objs diff --git a/docs/book/content/api/firm.rst b/docs/book/content/api/firm.rst index 6e53091ef..8b2a5e706 100644 --- a/docs/book/content/api/firm.rst +++ b/docs/book/content/api/firm.rst @@ -9,6 +9,6 @@ ogcore.firm ------------------------------------------ .. automodule:: ogcore.firm - :members: get_Y, get_r, get_w, get_KLratio, get_MPx, - get_w_from_r, get_K, get_L_from_Y, - get_pm, solve_L, get_cost_of_capital + :members: get_Y, get_r, get_w, get_KLratio_KLonly, get_KLratio, get_MPx, + get_w_from_r, get_K_KLonly, get_K, get_L_from_Y, get_cost_of_capital, + get_pm, get_KY_ratio, solve_L, adj_cost diff --git a/docs/book/content/api/output_tables.rst b/docs/book/content/api/output_tables.rst index dbb4c4d12..c863a0874 100644 --- a/docs/book/content/api/output_tables.rst +++ b/docs/book/content/api/output_tables.rst @@ -11,4 +11,4 @@ ogcore.output_tables .. automodule:: ogcore.output_tables :members: macro_table, macro_table_SS, ineq_table, gini_table, wealth_moments_table, time_series_table, - dynamic_revenue_decomposition + dynamic_revenue_decomposition, model_fit_table diff --git a/docs/book/content/api/pensions.rst b/docs/book/content/api/pensions.rst index c672e42dd..5d03efff0 100644 --- a/docs/book/content/api/pensions.rst +++ b/docs/book/content/api/pensions.rst @@ -13,4 +13,4 @@ ogcore.pensions NDC_amount, PS_amount, deriv_theta, deriv_NDC, deriv_DB, deriv_PS, delta_point, g_ndc, g_dir, delta_ret, deriv_DB_loop, deriv_PS_loop, deriv_NDC_loop, delta_ret_loop, PS_1dim_loop, PS_2dim_loop, DB_1dim_loop, - DB_2dim_loop, NDC_1dim_loop, NDC_2dim_loop + DB_2dim_loop, DB_3dim_loop, NDC_1dim_loop, NDC_2dim_loop diff --git a/docs/book/content/api/public_api.rst b/docs/book/content/api/public_api.rst index a407b1aa0..59812b70a 100644 --- a/docs/book/content/api/public_api.rst +++ b/docs/book/content/api/public_api.rst @@ -12,6 +12,7 @@ There is also a link to the source code for each documented member. :maxdepth: 1 aggregates + config demographics elliptical_u_est execute @@ -25,6 +26,8 @@ There is also a link to the source code for each documented member. parameters pensions solvers + SS tax + TPI txfunc utils diff --git a/docs/book/content/api/solvers.rst b/docs/book/content/api/solvers.rst index 0f2592c76..83592e537 100644 --- a/docs/book/content/api/solvers.rst +++ b/docs/book/content/api/solvers.rst @@ -14,4 +14,4 @@ ogcore.solvers :members: update, reset .. automodule:: ogcore.solvers - :members: make_outer_updater, pack_outer_vars, unpack_outer_vars + :members: make_outer_updater, pack_outer_vars, unpack_outer_vars, diagnose_stall diff --git a/docs/book/content/api/tax.rst b/docs/book/content/api/tax.rst index 1866139da..f7e091a92 100644 --- a/docs/book/content/api/tax.rst +++ b/docs/book/content/api/tax.rst @@ -11,4 +11,4 @@ ogcore.tax .. automodule:: ogcore.tax :members: ETR_wealth, MTR_wealth, ETR_income, MTR_income, get_biz_tax, net_taxes, income_tax_liab, - wealth_tax_liab, bequest_tax_liab + wealth_tax_liab, bequest_tax_liab, cons_tax_liab diff --git a/docs/book/content/api/txfunc.rst b/docs/book/content/api/txfunc.rst index b3b7c415b..d8cab1027 100644 --- a/docs/book/content/api/txfunc.rst +++ b/docs/book/content/api/txfunc.rst @@ -11,4 +11,4 @@ ogcore.txfunc .. automodule:: ogcore.txfunc :members: get_tax_rates, wsumsq, find_outliers, replace_outliers, txfunc_est, tax_data_sample, tax_func_loop, tax_func_estimate, - monotone_spline + avg_by_bin_multd, monotone_spline diff --git a/docs/book/content/api/utils.rst b/docs/book/content/api/utils.rst index 7292953b5..c148401e3 100644 --- a/docs/book/content/api/utils.rst +++ b/docs/book/content/api/utils.rst @@ -21,5 +21,5 @@ ogcore.utils pickle_file_compare, comp_array, comp_scalar, dict_compare, to_timepath_shape, get_initial_path, safe_read_pickle, rate_conversion, save_return_table, print_progress, fetch_files_from_web, not_connected, - avg_by_bin, extrapolate_arrays, get_legacy_session, shift_bio_clock, - unstationarize_vars, params_to_json + avg_by_bin, extrapolate_array, extrapolate_nested_list, get_legacy_session, + shift_bio_clock, unstationarize_vars, params_to_json, json_to_dict diff --git a/ogcore/__init__.py b/ogcore/__init__.py index 40b3bba0f..3165c6df1 100644 --- a/ogcore/__init__.py +++ b/ogcore/__init__.py @@ -21,4 +21,4 @@ from ogcore.txfunc import * # noqa: F403 from ogcore.utils import * # noqa: F403 -__version__ = "0.19.0" +__version__ = "0.19.1" diff --git a/pyproject.toml b/pyproject.toml index a1e6d062e..8c2ce6fa0 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "ogcore" -version = "0.19.0" +version = "0.19.1" authors = [ {name = "Jason DeBacker and Richard W. Evans"}, ]