0.17.0
This release enables new pension systems and makes the following bug fixes:
- Fixes the Defined Benefits and Points System pension paths so they run
against a realSpecificationsobject (Issues #1014 and #1075):
p.retire(an array since PR #433) was passed as the scalarS_ret
into the numba loops, the scalarp.g_ywas indexed as an array inside
the loops, the scalar steady-state wage was indexed as a path, and the
time-varying 3-Dematrix (PR #895) was sliced as 2-D. The systems
use the steady-state retirement age and earnings profile for now; full
time variation remains open in Issue #1014. The same coercions are
applied to the NDC path, but the NDC system additionally requires
growth-rate settings (ndc_growth_rate,dir_growth_rate) that are
not yet parameters indefault_parameters.json, so it still cannot
run against a realSpecificationsobject (see Issue #1169). - Wires the pre-time-path inputs the DB/NDC/PS benefit formulas need
into the TPI: labor supplied before the time path begins comes from
the model's initial condition (the same baseline object that
initializes wealth), and pre-time-path wages are anchored to the
period-0 wage of the current path. Adds the full time-path (T x S x J)
evaluation of Defined Benefits amounts (DB_3dim_loop) used when the
TPI computes aggregate revenues, built from each cohort's own wage and
labor history so aggregates are consistent with household behavior.
With these changes a country model using the Defined Benefits system
solves both the steady state and the transition path. - Adds regression tests that call
pension_amountwith a real
Specificationsobject per pension system (the existing tests
pre-scalarized the inputs and so never exercised the real interface)
and a local-marked steady-state solve test with the Defined Benefits
system. See PR #1167. - Fixes the tax-liability revenue calculation using the first year's tax
noncompliance and filer rates for every period, even when those rates
are set to vary over time (Issue #1168): households responded to the
changing rates while government revenue, the budget, and debt stayed on
the first-year values.income_tax_liabnow slices the rates over the
transition path. See PR #1174. - Fixes the steady-state
etr_ssandmtry_ssdiagnostics using the
labor-income tax noncompliance rate in place of the capital-income rate
(capital_noncompliance_rate_2DinSS.py, Issue #1170). This affects
only the post-solve SS diagnostics -- the solution itself already used
the correct rates -- and is a no-op when the two rates are equal (the
default). See PR #1171. - Fixes
alpha_FA(direct foreign aid, added in 0.16.0) not being
extended over the model time path: it was never registered in
tp_param_list, so a multi-year path stayed short and broke the
transition solve. It now extends toT + Swith the last value carried
forward, likealpha_G/alpha_T/alpha_I. See PR #1166.