You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The Policy class uses grow-factor values (for the ACPIU and AWAGE factors) to project indexed tax policy parameters beyond the Policy.LAST_KNOWN_YEAR. In most cases this is done correctly. However, since the Policy class was rewritten to use ParamTools in PR #2401 the projection of indexed parameters is done incorrectly is some cases. The most common case is when the Policy class constructor is passed a GrowFactors object that contains ACPIU or AWAGE values that differ from the values in the taxcalc/growfactors.csv file, which is generated in the taxdata repository for use with the CPS and PUF input data that are generated in that repository. The different grow-factor values could represent some kind of macroeconomic response to a tax reform that is thought to change future price-inflation rates or wage-growth rates. Or the different grow-factor values could be those used by the TMD data, which include their own tmd_growfactors.csv file that may differ from the CPS- and PUF-related growfactors.csv file included in the taxcalc package.
In all these cases, the Policy constructor is passed a GrowFactors object that is different from the default object created by the GrowFactors constructor (that is, by using GrowFactors()). The buggy logic is in the Policy.set_rates method
where the custom self._gfactors object passed to the Policy constructor is overwritten by self._gfactors = GrowFactor() statement. This overwriting incorrectly changes the custom grow-factor values to the default grow-factor values. This mistake means that in these cases, the wrong values of ACPIU and AWAGE are being used to project indexed policy parameters beyond Policy.LAST_KNOWN_YEAR.
The text was updated successfully, but these errors were encountered:
The
Policy
class uses grow-factor values (for theACPIU
andAWAGE
factors) to project indexed tax policy parameters beyond thePolicy.LAST_KNOWN_YEAR
. In most cases this is done correctly. However, since thePolicy
class was rewritten to useParamTools
in PR #2401 the projection of indexed parameters is done incorrectly is some cases. The most common case is when thePolicy
class constructor is passed aGrowFactors
object that containsACPIU
orAWAGE
values that differ from the values in thetaxcalc/growfactors.csv
file, which is generated in the taxdata repository for use with the CPS and PUF input data that are generated in that repository. The different grow-factor values could represent some kind of macroeconomic response to a tax reform that is thought to change future price-inflation rates or wage-growth rates. Or the different grow-factor values could be those used by the TMD data, which include their owntmd_growfactors.csv
file that may differ from the CPS- and PUF-relatedgrowfactors.csv
file included in thetaxcalc
package.In all these cases, the
Policy
constructor is passed aGrowFactors
object that is different from the default object created by theGrowFactors
constructor (that is, by usingGrowFactors()
). The buggy logic is in thePolicy.set_rates
methodTax-Calculator/taxcalc/policy.py
Line 166 in 1cad505
Parameters.adjust_with_indexing
methodTax-Calculator/taxcalc/parameters.py
Line 252 in 1cad505
self._gfactors
object passed to thePolicy
constructor is overwritten byself._gfactors = GrowFactor()
statement. This overwriting incorrectly changes the custom grow-factor values to the default grow-factor values. This mistake means that in these cases, the wrong values ofACPIU
andAWAGE
are being used to project indexed policy parameters beyondPolicy.LAST_KNOWN_YEAR
.The text was updated successfully, but these errors were encountered: