From faca174251369f572d9bf25474f0f6fb3b739ecc Mon Sep 17 00:00:00 2001 From: Peter-Metz Date: Tue, 28 Apr 2020 08:26:12 -0400 Subject: [PATCH 01/12] modify cpi_offset logic --- taxcalc/parameters.py | 51 +- taxcalc/policy_current_law.json | 6620 ++++++------------------------- taxcalc/reforms/2017_law.json | 2 +- 3 files changed, 1187 insertions(+), 5486 deletions(-) diff --git a/taxcalc/parameters.py b/taxcalc/parameters.py index 075eb3c8f..63845b0e7 100644 --- a/taxcalc/parameters.py +++ b/taxcalc/parameters.py @@ -9,6 +9,7 @@ import requests import taxcalc +from taxcalc.growfactors import GrowFactors from taxcalc.utils import json_to_dict @@ -117,6 +118,7 @@ def adjust(self, params_or_path, **kwargs): label_to_extend = self.label_to_extend array_first = self.array_first self.array_first = False + self._gfactors = GrowFactors() params = self.read_params(params_or_path) @@ -136,10 +138,16 @@ def adjust(self, params_or_path, **kwargs): cpi_min_year = min( cpi_adj["CPI_offset"], key=lambda vo: vo["year"] ) - # Apply new CPI_offset values to inflation rates + rate_adjustment_vals = self.select_gte( "CPI_offset", year=cpi_min_year["year"] ) + # "Undo" any existing CPI_offset for years after CPI_offset has been updated. + self._inflation_rates = self._inflation_rates[ + :cpi_min_year["year"] - self.start_year + ] + self._gfactors.price_inflation_rates(cpi_min_year["year"], self.LAST_BUDGET_YEAR) + + # Then apply new CPI_offset values to inflation rates for cpi_vo in rate_adjustment_vals: self._inflation_rates[ cpi_vo["year"] - self.start_year @@ -170,6 +178,43 @@ def adjust(self, params_or_path, **kwargs): init_vals = {} to_delete = {} last_known_year = max(cpi_min_year["year"], self._last_known_year) + # calculate 2026 value, using new inflation rates, for parameters + # that revert to their pre-TCJA values. + long_params = ['II_brk7', 'II_brk6', 'II_brk5', 'II_brk4', + 'II_brk3', 'II_brk2', 'II_brk1', + 'PT_brk7', 'PT_brk6', 'PT_brk5', 'PT_brk4', + 'PT_brk3', 'PT_brk2', 'PT_brk1', + 'PT_qbid_taxinc_thd', + 'ALD_BusinessLosses_c', + 'STD', 'II_em', 'II_em_ps', + 'AMT_em', 'AMT_em_ps', 'AMT_em_pe', + 'ID_ps', 'ID_AllTaxes_c'] + final_ifactor = 1.0 + pyear = 2017 # prior year before TCJA first implemented + fyear = 2026 # final year in which parameter values revert to pre-TCJA values + # construct final-year inflation factor from prior year + # NOTE: pvalue[t+1] = pvalue[t] * ( 1 + irate[t] ) + for year in range(pyear, fyear): + final_ifactor *= 1 + \ + self._inflation_rates[year - self.start_year] + # compute final year parameter value + for param in long_params: + # only revert param in 2026 if it's not in revision + if params.get(param) is None: + list_vals = [] + # grab param values from 2017 + for dim in self.select_eq(param, year=pyear): + list_vals.append(dim['value']) + new_vals = [] + # use final_ifactor to inflate from 2017 to 2026 + for idx in range(0, len(list_vals)): + val = min(9e99, round(list_vals[idx] * final_ifactor, 0)) + new_vals.append(val) + self._update( + {param: {fyear: new_vals}}, False, True + ) + else: + pass for param in self._data: if ( param in params or @@ -183,8 +228,8 @@ def adjust(self, params_or_path, **kwargs): True, {"year": last_known_year} ) - to_delete[param] = self.select_gt( - param, year=last_known_year + to_delete[param] = self.select_eq( + param, strict=True, _auto=True ) needs_reset.append(param) diff --git a/taxcalc/policy_current_law.json b/taxcalc/policy_current_law.json index f89b4f142..4f73eea43 100644 --- a/taxcalc/policy_current_law.json +++ b/taxcalc/policy_current_law.json @@ -624,30 +624,6 @@ "year": 2019, "value": 1.0 }, - { - "year": 2020, - "value": 1.0 - }, - { - "year": 2021, - "value": 1.0 - }, - { - "year": 2022, - "value": 1.0 - }, - { - "year": 2023, - "value": 1.0 - }, - { - "year": 2024, - "value": 1.0 - }, - { - "year": 2025, - "value": 1.0 - }, { "year": 2026, "value": 0.0 @@ -702,30 +678,6 @@ "year": 2019, "value": 0.0 }, - { - "year": 2020, - "value": 0.0 - }, - { - "year": 2021, - "value": 0.0 - }, - { - "year": 2022, - "value": 0.0 - }, - { - "year": 2023, - "value": 0.0 - }, - { - "year": 2024, - "value": 0.0 - }, - { - "year": 2025, - "value": 0.0 - }, { "year": 2026, "value": 1.0 @@ -858,30 +810,6 @@ "year": 2019, "value": 1.0 }, - { - "year": 2020, - "value": 1.0 - }, - { - "year": 2021, - "value": 1.0 - }, - { - "year": 2022, - "value": 1.0 - }, - { - "year": 2023, - "value": 1.0 - }, - { - "year": 2024, - "value": 1.0 - }, - { - "year": 2025, - "value": 1.0 - }, { "year": 2026, "value": 0.0 @@ -1332,156 +1260,6 @@ "MARS": "widow", "value": 510000.0 }, - { - "year": 2020, - "MARS": "single", - "value": 259029.0 - }, - { - "year": 2020, - "MARS": "mjoint", - "value": 518058.0 - }, - { - "year": 2020, - "MARS": "mseparate", - "value": 259029.0 - }, - { - "year": 2020, - "MARS": "headhh", - "value": 259029.0 - }, - { - "year": 2020, - "MARS": "widow", - "value": 518058.0 - }, - { - "year": 2021, - "MARS": "single", - "value": 264675.83 - }, - { - "year": 2021, - "MARS": "mjoint", - "value": 529351.66 - }, - { - "year": 2021, - "MARS": "mseparate", - "value": 264675.83 - }, - { - "year": 2021, - "MARS": "headhh", - "value": 264675.83 - }, - { - "year": 2021, - "MARS": "widow", - "value": 529351.66 - }, - { - "year": 2022, - "MARS": "single", - "value": 270683.97 - }, - { - "year": 2022, - "MARS": "mjoint", - "value": 541367.95 - }, - { - "year": 2022, - "MARS": "mseparate", - "value": 270683.97 - }, - { - "year": 2022, - "MARS": "headhh", - "value": 270683.97 - }, - { - "year": 2022, - "MARS": "widow", - "value": 541367.95 - }, - { - "year": 2023, - "MARS": "single", - "value": 276936.77 - }, - { - "year": 2023, - "MARS": "mjoint", - "value": 553873.55 - }, - { - "year": 2023, - "MARS": "mseparate", - "value": 276936.77 - }, - { - "year": 2023, - "MARS": "headhh", - "value": 276936.77 - }, - { - "year": 2023, - "MARS": "widow", - "value": 553873.55 - }, - { - "year": 2024, - "MARS": "single", - "value": 283084.77 - }, - { - "year": 2024, - "MARS": "mjoint", - "value": 566169.54 - }, - { - "year": 2024, - "MARS": "mseparate", - "value": 283084.77 - }, - { - "year": 2024, - "MARS": "headhh", - "value": 283084.77 - }, - { - "year": 2024, - "MARS": "widow", - "value": 566169.54 - }, - { - "year": 2025, - "MARS": "single", - "value": 289199.4 - }, - { - "year": 2025, - "MARS": "mjoint", - "value": 578398.8 - }, - { - "year": 2025, - "MARS": "mseparate", - "value": 289199.4 - }, - { - "year": 2025, - "MARS": "headhh", - "value": 289199.4 - }, - { - "year": 2025, - "MARS": "widow", - "value": 578398.8 - }, { "year": 2026, "MARS": "single", @@ -1557,30 +1335,6 @@ "year": 2019, "value": 0.0 }, - { - "year": 2020, - "value": 0.0 - }, - { - "year": 2021, - "value": 0.0 - }, - { - "year": 2022, - "value": 0.0 - }, - { - "year": 2023, - "value": 0.0 - }, - { - "year": 2024, - "value": 0.0 - }, - { - "year": 2025, - "value": 0.0 - }, { "year": 2026, "value": 4880.0 @@ -1783,177 +1537,27 @@ "value": 9e+99 }, { - "year": 2020, + "year": 2026, "MARS": "single", - "value": 9e+99 + "value": 316457.0 }, { - "year": 2020, + "year": 2026, "MARS": "mjoint", - "value": 9e+99 + "value": 379748.0 }, { - "year": 2020, + "year": 2026, "MARS": "mseparate", - "value": 9e+99 + "value": 189874.0 }, { - "year": 2020, + "year": 2026, "MARS": "headhh", - "value": 9e+99 + "value": 348102.0 }, { - "year": 2020, - "MARS": "widow", - "value": 9e+99 - }, - { - "year": 2021, - "MARS": "single", - "value": 9e+99 - }, - { - "year": 2021, - "MARS": "mjoint", - "value": 9e+99 - }, - { - "year": 2021, - "MARS": "mseparate", - "value": 9e+99 - }, - { - "year": 2021, - "MARS": "headhh", - "value": 9e+99 - }, - { - "year": 2021, - "MARS": "widow", - "value": 9e+99 - }, - { - "year": 2022, - "MARS": "single", - "value": 9e+99 - }, - { - "year": 2022, - "MARS": "mjoint", - "value": 9e+99 - }, - { - "year": 2022, - "MARS": "mseparate", - "value": 9e+99 - }, - { - "year": 2022, - "MARS": "headhh", - "value": 9e+99 - }, - { - "year": 2022, - "MARS": "widow", - "value": 9e+99 - }, - { - "year": 2023, - "MARS": "single", - "value": 9e+99 - }, - { - "year": 2023, - "MARS": "mjoint", - "value": 9e+99 - }, - { - "year": 2023, - "MARS": "mseparate", - "value": 9e+99 - }, - { - "year": 2023, - "MARS": "headhh", - "value": 9e+99 - }, - { - "year": 2023, - "MARS": "widow", - "value": 9e+99 - }, - { - "year": 2024, - "MARS": "single", - "value": 9e+99 - }, - { - "year": 2024, - "MARS": "mjoint", - "value": 9e+99 - }, - { - "year": 2024, - "MARS": "mseparate", - "value": 9e+99 - }, - { - "year": 2024, - "MARS": "headhh", - "value": 9e+99 - }, - { - "year": 2024, - "MARS": "widow", - "value": 9e+99 - }, - { - "year": 2025, - "MARS": "single", - "value": 9e+99 - }, - { - "year": 2025, - "MARS": "mjoint", - "value": 9e+99 - }, - { - "year": 2025, - "MARS": "mseparate", - "value": 9e+99 - }, - { - "year": 2025, - "MARS": "headhh", - "value": 9e+99 - }, - { - "year": 2025, - "MARS": "widow", - "value": 9e+99 - }, - { - "year": 2026, - "MARS": "single", - "value": 316457.0 - }, - { - "year": 2026, - "MARS": "mjoint", - "value": 379748.0 - }, - { - "year": 2026, - "MARS": "mseparate", - "value": 189874.0 - }, - { - "year": 2026, - "MARS": "headhh", - "value": 348102.0 - }, - { - "year": 2026, + "year": 2026, "MARS": "widow", "value": 379748.0 } @@ -2206,156 +1810,6 @@ "MARS": "widow", "value": 24400.0 }, - { - "year": 2020, - "MARS": "single", - "value": 12392.76 - }, - { - "year": 2020, - "MARS": "mjoint", - "value": 24785.52 - }, - { - "year": 2020, - "MARS": "mseparate", - "value": 12392.76 - }, - { - "year": 2020, - "MARS": "headhh", - "value": 18639.93 - }, - { - "year": 2020, - "MARS": "widow", - "value": 24785.52 - }, - { - "year": 2021, - "MARS": "single", - "value": 12662.92 - }, - { - "year": 2021, - "MARS": "mjoint", - "value": 25325.84 - }, - { - "year": 2021, - "MARS": "mseparate", - "value": 12662.92 - }, - { - "year": 2021, - "MARS": "headhh", - "value": 19046.28 - }, - { - "year": 2021, - "MARS": "widow", - "value": 25325.84 - }, - { - "year": 2022, - "MARS": "single", - "value": 12950.37 - }, - { - "year": 2022, - "MARS": "mjoint", - "value": 25900.74 - }, - { - "year": 2022, - "MARS": "mseparate", - "value": 12950.37 - }, - { - "year": 2022, - "MARS": "headhh", - "value": 19478.63 - }, - { - "year": 2022, - "MARS": "widow", - "value": 25900.74 - }, - { - "year": 2023, - "MARS": "single", - "value": 13249.52 - }, - { - "year": 2023, - "MARS": "mjoint", - "value": 26499.05 - }, - { - "year": 2023, - "MARS": "mseparate", - "value": 13249.52 - }, - { - "year": 2023, - "MARS": "headhh", - "value": 19928.59 - }, - { - "year": 2023, - "MARS": "widow", - "value": 26499.05 - }, - { - "year": 2024, - "MARS": "single", - "value": 13543.66 - }, - { - "year": 2024, - "MARS": "mjoint", - "value": 27087.33 - }, - { - "year": 2024, - "MARS": "mseparate", - "value": 13543.66 - }, - { - "year": 2024, - "MARS": "headhh", - "value": 20371.0 - }, - { - "year": 2024, - "MARS": "widow", - "value": 27087.33 - }, - { - "year": 2025, - "MARS": "single", - "value": 13836.21 - }, - { - "year": 2025, - "MARS": "mjoint", - "value": 27672.41 - }, - { - "year": 2025, - "MARS": "mseparate", - "value": 13836.21 - }, - { - "year": 2025, - "MARS": "headhh", - "value": 20811.02 - }, - { - "year": 2025, - "MARS": "widow", - "value": 27672.41 - }, { "year": 2026, "MARS": "single", @@ -4533,164 +3987,14 @@ "value": 10000.0 }, { - "year": 2020, + "year": 2026, "MARS": "single", - "value": 10000.0 + "value": 9e+99 }, { - "year": 2020, + "year": 2026, "MARS": "mjoint", - "value": 10000.0 - }, - { - "year": 2020, - "MARS": "mseparate", - "value": 5000.0 - }, - { - "year": 2020, - "MARS": "headhh", - "value": 10000.0 - }, - { - "year": 2020, - "MARS": "widow", - "value": 10000.0 - }, - { - "year": 2021, - "MARS": "single", - "value": 10000.0 - }, - { - "year": 2021, - "MARS": "mjoint", - "value": 10000.0 - }, - { - "year": 2021, - "MARS": "mseparate", - "value": 5000.0 - }, - { - "year": 2021, - "MARS": "headhh", - "value": 10000.0 - }, - { - "year": 2021, - "MARS": "widow", - "value": 10000.0 - }, - { - "year": 2022, - "MARS": "single", - "value": 10000.0 - }, - { - "year": 2022, - "MARS": "mjoint", - "value": 10000.0 - }, - { - "year": 2022, - "MARS": "mseparate", - "value": 5000.0 - }, - { - "year": 2022, - "MARS": "headhh", - "value": 10000.0 - }, - { - "year": 2022, - "MARS": "widow", - "value": 10000.0 - }, - { - "year": 2023, - "MARS": "single", - "value": 10000.0 - }, - { - "year": 2023, - "MARS": "mjoint", - "value": 10000.0 - }, - { - "year": 2023, - "MARS": "mseparate", - "value": 5000.0 - }, - { - "year": 2023, - "MARS": "headhh", - "value": 10000.0 - }, - { - "year": 2023, - "MARS": "widow", - "value": 10000.0 - }, - { - "year": 2024, - "MARS": "single", - "value": 10000.0 - }, - { - "year": 2024, - "MARS": "mjoint", - "value": 10000.0 - }, - { - "year": 2024, - "MARS": "mseparate", - "value": 5000.0 - }, - { - "year": 2024, - "MARS": "headhh", - "value": 10000.0 - }, - { - "year": 2024, - "MARS": "widow", - "value": 10000.0 - }, - { - "year": 2025, - "MARS": "single", - "value": 10000.0 - }, - { - "year": 2025, - "MARS": "mjoint", - "value": 10000.0 - }, - { - "year": 2025, - "MARS": "mseparate", - "value": 5000.0 - }, - { - "year": 2025, - "MARS": "headhh", - "value": 10000.0 - }, - { - "year": 2025, - "MARS": "widow", - "value": 10000.0 - }, - { - "year": 2026, - "MARS": "single", - "value": 9e+99 - }, - { - "year": 2026, - "MARS": "mjoint", - "value": 9e+99 + "value": 9e+99 }, { "year": 2026, @@ -4980,30 +4284,6 @@ "year": 2019, "value": 0.6 }, - { - "year": 2020, - "value": 0.6 - }, - { - "year": 2021, - "value": 0.6 - }, - { - "year": 2022, - "value": 0.6 - }, - { - "year": 2023, - "value": 0.6 - }, - { - "year": 2024, - "value": 0.6 - }, - { - "year": 2025, - "value": 0.6 - }, { "year": 2026, "value": 0.5 @@ -5408,30 +4688,6 @@ "year": 2019, "value": 1.0 }, - { - "year": 2020, - "value": 1.0 - }, - { - "year": 2021, - "value": 1.0 - }, - { - "year": 2022, - "value": 1.0 - }, - { - "year": 2023, - "value": 1.0 - }, - { - "year": 2024, - "value": 1.0 - }, - { - "year": 2025, - "value": 1.0 - }, { "year": 2026, "value": 0.0 @@ -5710,30 +4966,6 @@ "year": 2019, "value": 1.0 }, - { - "year": 2020, - "value": 1.0 - }, - { - "year": 2021, - "value": 1.0 - }, - { - "year": 2022, - "value": 1.0 - }, - { - "year": 2023, - "value": 1.0 - }, - { - "year": 2024, - "value": 1.0 - }, - { - "year": 2025, - "value": 1.0 - }, { "year": 2026, "value": 0.0 @@ -6133,177 +5365,27 @@ "value": 9e+99 }, { - "year": 2020, + "year": 2026, "MARS": "single", - "value": 9e+99 + "value": 315093.0 }, { - "year": 2020, + "year": 2026, "MARS": "mjoint", - "value": 9e+99 + "value": 378112.0 }, { - "year": 2020, + "year": 2026, "MARS": "mseparate", - "value": 9e+99 + "value": 189056.0 }, { - "year": 2020, + "year": 2026, "MARS": "headhh", - "value": 9e+99 + "value": 346603.0 }, { - "year": 2020, - "MARS": "widow", - "value": 9e+99 - }, - { - "year": 2021, - "MARS": "single", - "value": 9e+99 - }, - { - "year": 2021, - "MARS": "mjoint", - "value": 9e+99 - }, - { - "year": 2021, - "MARS": "mseparate", - "value": 9e+99 - }, - { - "year": 2021, - "MARS": "headhh", - "value": 9e+99 - }, - { - "year": 2021, - "MARS": "widow", - "value": 9e+99 - }, - { - "year": 2022, - "MARS": "single", - "value": 9e+99 - }, - { - "year": 2022, - "MARS": "mjoint", - "value": 9e+99 - }, - { - "year": 2022, - "MARS": "mseparate", - "value": 9e+99 - }, - { - "year": 2022, - "MARS": "headhh", - "value": 9e+99 - }, - { - "year": 2022, - "MARS": "widow", - "value": 9e+99 - }, - { - "year": 2023, - "MARS": "single", - "value": 9e+99 - }, - { - "year": 2023, - "MARS": "mjoint", - "value": 9e+99 - }, - { - "year": 2023, - "MARS": "mseparate", - "value": 9e+99 - }, - { - "year": 2023, - "MARS": "headhh", - "value": 9e+99 - }, - { - "year": 2023, - "MARS": "widow", - "value": 9e+99 - }, - { - "year": 2024, - "MARS": "single", - "value": 9e+99 - }, - { - "year": 2024, - "MARS": "mjoint", - "value": 9e+99 - }, - { - "year": 2024, - "MARS": "mseparate", - "value": 9e+99 - }, - { - "year": 2024, - "MARS": "headhh", - "value": 9e+99 - }, - { - "year": 2024, - "MARS": "widow", - "value": 9e+99 - }, - { - "year": 2025, - "MARS": "single", - "value": 9e+99 - }, - { - "year": 2025, - "MARS": "mjoint", - "value": 9e+99 - }, - { - "year": 2025, - "MARS": "mseparate", - "value": 9e+99 - }, - { - "year": 2025, - "MARS": "headhh", - "value": 9e+99 - }, - { - "year": 2025, - "MARS": "widow", - "value": 9e+99 - }, - { - "year": 2026, - "MARS": "single", - "value": 315093.0 - }, - { - "year": 2026, - "MARS": "mjoint", - "value": 378112.0 - }, - { - "year": 2026, - "MARS": "mseparate", - "value": 189056.0 - }, - { - "year": 2026, - "MARS": "headhh", - "value": 346603.0 - }, - { - "year": 2026, + "year": 2026, "MARS": "widow", "value": 378112.0 } @@ -6357,30 +5439,6 @@ "year": 2019, "value": 0.0 }, - { - "year": 2020, - "value": 0.0 - }, - { - "year": 2021, - "value": 0.0 - }, - { - "year": 2022, - "value": 0.0 - }, - { - "year": 2023, - "value": 0.0 - }, - { - "year": 2024, - "value": 0.0 - }, - { - "year": 2025, - "value": 0.0 - }, { "year": 2026, "value": 0.03 @@ -6435,30 +5493,6 @@ "year": 2019, "value": 1.0 }, - { - "year": 2020, - "value": 1.0 - }, - { - "year": 2021, - "value": 1.0 - }, - { - "year": 2022, - "value": 1.0 - }, - { - "year": 2023, - "value": 1.0 - }, - { - "year": 2024, - "value": 1.0 - }, - { - "year": 2025, - "value": 1.0 - }, { "year": 2026, "value": 0.8 @@ -8674,30 +7708,6 @@ "year": 2019, "value": 0.1 }, - { - "year": 2020, - "value": 0.1 - }, - { - "year": 2021, - "value": 0.1 - }, - { - "year": 2022, - "value": 0.1 - }, - { - "year": 2023, - "value": 0.1 - }, - { - "year": 2024, - "value": 0.1 - }, - { - "year": 2025, - "value": 0.1 - }, { "year": 2026, "value": 0.1 @@ -8900,213 +7910,63 @@ "value": 19400.0 }, { - "year": 2020, + "year": 2026, "MARS": "single", - "value": 9853.26 + "value": 11236.0 }, { - "year": 2020, + "year": 2026, "MARS": "mjoint", - "value": 19706.52 + "value": 22472.0 }, { - "year": 2020, + "year": 2026, "MARS": "mseparate", - "value": 9853.26 + "value": 11236.0 }, { - "year": 2020, + "year": 2026, "MARS": "headhh", - "value": 14068.83 + "value": 16086.0 }, { - "year": 2020, + "year": 2026, "MARS": "widow", - "value": 19706.52 + "value": 22472.0 + } + ], + "title": "Personal income (regular/non-AMT/non-pass-through) tax bracket (upper threshold) 1", + "type": "float", + "validators": { + "range": { + "min": 0, + "max": "II_brk2" + } + }, + "section_1": "Personal Income", + "section_2": "Regular: Non-AMT, Non-Pass-Through", + "indexable": true, + "indexed": true, + "compatible_data": { + "puf": true, + "cps": true + }, + "description": "Taxable income below this threshold is taxed at tax rate 1.", + "notes": "" + }, + "II_rt2": { + "value": [ + { + "year": 2013, + "value": 0.15 }, { - "year": 2021, - "MARS": "single", - "value": 10068.06 + "year": 2014, + "value": 0.15 }, { - "year": 2021, - "MARS": "mjoint", - "value": 20136.12 - }, - { - "year": 2021, - "MARS": "mseparate", - "value": 10068.06 - }, - { - "year": 2021, - "MARS": "headhh", - "value": 14375.53 - }, - { - "year": 2021, - "MARS": "widow", - "value": 20136.12 - }, - { - "year": 2022, - "MARS": "single", - "value": 10296.61 - }, - { - "year": 2022, - "MARS": "mjoint", - "value": 20593.21 - }, - { - "year": 2022, - "MARS": "mseparate", - "value": 10296.61 - }, - { - "year": 2022, - "MARS": "headhh", - "value": 14701.86 - }, - { - "year": 2022, - "MARS": "widow", - "value": 20593.21 - }, - { - "year": 2023, - "MARS": "single", - "value": 10534.46 - }, - { - "year": 2023, - "MARS": "mjoint", - "value": 21068.92 - }, - { - "year": 2023, - "MARS": "mseparate", - "value": 10534.46 - }, - { - "year": 2023, - "MARS": "headhh", - "value": 15041.47 - }, - { - "year": 2023, - "MARS": "widow", - "value": 21068.92 - }, - { - "year": 2024, - "MARS": "single", - "value": 10768.32 - }, - { - "year": 2024, - "MARS": "mjoint", - "value": 21536.65 - }, - { - "year": 2024, - "MARS": "mseparate", - "value": 10768.32 - }, - { - "year": 2024, - "MARS": "headhh", - "value": 15375.39 - }, - { - "year": 2024, - "MARS": "widow", - "value": 21536.65 - }, - { - "year": 2025, - "MARS": "single", - "value": 11000.92 - }, - { - "year": 2025, - "MARS": "mjoint", - "value": 22001.84 - }, - { - "year": 2025, - "MARS": "mseparate", - "value": 11000.92 - }, - { - "year": 2025, - "MARS": "headhh", - "value": 15707.5 - }, - { - "year": 2025, - "MARS": "widow", - "value": 22001.84 - }, - { - "year": 2026, - "MARS": "single", - "value": 11236.0 - }, - { - "year": 2026, - "MARS": "mjoint", - "value": 22472.0 - }, - { - "year": 2026, - "MARS": "mseparate", - "value": 11236.0 - }, - { - "year": 2026, - "MARS": "headhh", - "value": 16086.0 - }, - { - "year": 2026, - "MARS": "widow", - "value": 22472.0 - } - ], - "title": "Personal income (regular/non-AMT/non-pass-through) tax bracket (upper threshold) 1", - "type": "float", - "validators": { - "range": { - "min": 0, - "max": "II_brk2" - } - }, - "section_1": "Personal Income", - "section_2": "Regular: Non-AMT, Non-Pass-Through", - "indexable": true, - "indexed": true, - "compatible_data": { - "puf": true, - "cps": true - }, - "description": "Taxable income below this threshold is taxed at tax rate 1.", - "notes": "" - }, - "II_rt2": { - "value": [ - { - "year": 2013, - "value": 0.15 - }, - { - "year": 2014, - "value": 0.15 - }, - { - "year": 2015, - "value": 0.15 + "year": 2015, + "value": 0.15 }, { "year": 2016, @@ -9124,30 +7984,6 @@ "year": 2019, "value": 0.12 }, - { - "year": 2020, - "value": 0.12 - }, - { - "year": 2021, - "value": 0.12 - }, - { - "year": 2022, - "value": 0.12 - }, - { - "year": 2023, - "value": 0.12 - }, - { - "year": 2024, - "value": 0.12 - }, - { - "year": 2025, - "value": 0.12 - }, { "year": 2026, "value": 0.15 @@ -9350,253 +8186,79 @@ "value": 78950.0 }, { - "year": 2020, + "year": 2026, "MARS": "single", - "value": 40098.7 + "value": 45728.0 }, { - "year": 2020, + "year": 2026, "MARS": "mjoint", - "value": 80197.41 + "value": 91455.0 }, { - "year": 2020, + "year": 2026, "MARS": "mseparate", - "value": 40098.7 + "value": 45728.0 }, { - "year": 2020, + "year": 2026, "MARS": "headhh", - "value": 53685.03 + "value": 61211.0 }, { - "year": 2020, + "year": 2026, "MARS": "widow", - "value": 80197.41 - }, - { - "year": 2021, - "MARS": "single", - "value": 40972.86 - }, - { - "year": 2021, - "MARS": "mjoint", - "value": 81945.71 - }, - { - "year": 2021, - "MARS": "mseparate", - "value": 40972.86 - }, + "value": 91455.0 + } + ], + "title": "Personal income (regular/non-AMT/non-pass-through) tax bracket (upper threshold) 2", + "type": "float", + "validators": { + "range": { + "min": "II_brk1", + "max": "II_brk3" + } + }, + "section_1": "Personal Income", + "section_2": "Regular: Non-AMT, Non-Pass-Through", + "indexable": true, + "indexed": true, + "compatible_data": { + "puf": true, + "cps": true + }, + "description": "Income below this threshold and above tax bracket 1 is taxed at tax rate 2.", + "notes": "" + }, + "II_rt3": { + "value": [ { - "year": 2021, - "MARS": "headhh", - "value": 54855.36 + "year": 2013, + "value": 0.25 }, { - "year": 2021, - "MARS": "widow", - "value": 81945.71 + "year": 2014, + "value": 0.25 }, { - "year": 2022, - "MARS": "single", - "value": 41902.94 + "year": 2015, + "value": 0.25 }, { - "year": 2022, - "MARS": "mjoint", - "value": 83805.88 + "year": 2016, + "value": 0.25 }, { - "year": 2022, - "MARS": "mseparate", - "value": 41902.94 + "year": 2017, + "value": 0.25 }, { - "year": 2022, - "MARS": "headhh", - "value": 56100.58 + "year": 2018, + "value": 0.22 }, { - "year": 2022, - "MARS": "widow", - "value": 83805.88 - }, - { - "year": 2023, - "MARS": "single", - "value": 42870.9 - }, - { - "year": 2023, - "MARS": "mjoint", - "value": 85741.8 - }, - { - "year": 2023, - "MARS": "mseparate", - "value": 42870.9 - }, - { - "year": 2023, - "MARS": "headhh", - "value": 57396.5 - }, - { - "year": 2023, - "MARS": "widow", - "value": 85741.8 - }, - { - "year": 2024, - "MARS": "single", - "value": 43822.63 - }, - { - "year": 2024, - "MARS": "mjoint", - "value": 87645.26 - }, - { - "year": 2024, - "MARS": "mseparate", - "value": 43822.63 - }, - { - "year": 2024, - "MARS": "headhh", - "value": 58670.71 - }, - { - "year": 2024, - "MARS": "widow", - "value": 87645.26 - }, - { - "year": 2025, - "MARS": "single", - "value": 44769.2 - }, - { - "year": 2025, - "MARS": "mjoint", - "value": 89538.4 - }, - { - "year": 2025, - "MARS": "mseparate", - "value": 44769.2 - }, - { - "year": 2025, - "MARS": "headhh", - "value": 59937.99 - }, - { - "year": 2025, - "MARS": "widow", - "value": 89538.4 - }, - { - "year": 2026, - "MARS": "single", - "value": 45728.0 - }, - { - "year": 2026, - "MARS": "mjoint", - "value": 91455.0 - }, - { - "year": 2026, - "MARS": "mseparate", - "value": 45728.0 - }, - { - "year": 2026, - "MARS": "headhh", - "value": 61211.0 - }, - { - "year": 2026, - "MARS": "widow", - "value": 91455.0 - } - ], - "title": "Personal income (regular/non-AMT/non-pass-through) tax bracket (upper threshold) 2", - "type": "float", - "validators": { - "range": { - "min": "II_brk1", - "max": "II_brk3" - } - }, - "section_1": "Personal Income", - "section_2": "Regular: Non-AMT, Non-Pass-Through", - "indexable": true, - "indexed": true, - "compatible_data": { - "puf": true, - "cps": true - }, - "description": "Income below this threshold and above tax bracket 1 is taxed at tax rate 2.", - "notes": "" - }, - "II_rt3": { - "value": [ - { - "year": 2013, - "value": 0.25 - }, - { - "year": 2014, - "value": 0.25 - }, - { - "year": 2015, - "value": 0.25 - }, - { - "year": 2016, - "value": 0.25 - }, - { - "year": 2017, - "value": 0.25 - }, - { - "year": 2018, - "value": 0.22 - }, - { - "year": 2019, - "value": 0.22 - }, - { - "year": 2020, - "value": 0.22 - }, - { - "year": 2021, - "value": 0.22 - }, - { - "year": 2022, - "value": 0.22 - }, - { - "year": 2023, - "value": 0.22 - }, - { - "year": 2024, - "value": 0.22 - }, - { - "year": 2025, - "value": 0.22 + "year": 2019, + "value": 0.22 }, { "year": 2026, @@ -9800,187 +8462,313 @@ "value": 168400.0 }, { - "year": 2020, + "year": 2026, "MARS": "single", - "value": 85530.36 + "value": 110735.0 }, { - "year": 2020, + "year": 2026, "MARS": "mjoint", - "value": 171060.72 + "value": 184477.0 }, { - "year": 2020, + "year": 2026, "MARS": "mseparate", - "value": 85530.36 + "value": 92239.0 }, { - "year": 2020, + "year": 2026, "MARS": "headhh", - "value": 85530.36 + "value": 158089.0 }, { - "year": 2020, + "year": 2026, "MARS": "widow", - "value": 171060.72 + "value": 184477.0 + } + ], + "title": "Personal income (regular/non-AMT/non-pass-through) tax bracket (upper threshold) 3", + "type": "float", + "validators": { + "range": { + "min": "II_brk2", + "max": "II_brk4" + } + }, + "section_1": "Personal Income", + "section_2": "Regular: Non-AMT, Non-Pass-Through", + "indexable": true, + "indexed": true, + "compatible_data": { + "puf": true, + "cps": true + }, + "description": "Income below this threshold and above tax bracket 2 is taxed at tax rate 3.", + "notes": "" + }, + "II_rt4": { + "value": [ + { + "year": 2013, + "value": 0.28 }, { - "year": 2021, - "MARS": "single", - "value": 87394.92 + "year": 2014, + "value": 0.28 }, { - "year": 2021, - "MARS": "mjoint", - "value": 174789.84 + "year": 2015, + "value": 0.28 }, { - "year": 2021, - "MARS": "mseparate", - "value": 87394.92 + "year": 2016, + "value": 0.28 }, { - "year": 2021, - "MARS": "headhh", - "value": 87394.92 + "year": 2017, + "value": 0.28 }, { - "year": 2021, - "MARS": "widow", - "value": 174789.84 + "year": 2018, + "value": 0.24 }, { - "year": 2022, + "year": 2019, + "value": 0.24 + }, + { + "year": 2026, + "value": 0.28 + } + ], + "title": "Personal income (regular/non-AMT/non-pass-through) tax rate 4", + "type": "float", + "validators": { + "range": { + "min": 0, + "max": 1 + } + }, + "section_1": "Personal Income", + "section_2": "Regular: Non-AMT, Non-Pass-Through", + "indexable": false, + "indexed": false, + "compatible_data": { + "puf": true, + "cps": true + }, + "description": "The tax rate applied to the portion of taxable income below tax bracket 4 and above tax bracket 3.", + "notes": "" + }, + "II_brk4": { + "value": [ + { + "year": 2013, "MARS": "single", - "value": 89378.79 + "value": 183250.0 }, { - "year": 2022, + "year": 2013, "MARS": "mjoint", - "value": 178757.57 + "value": 223050.0 }, { - "year": 2022, + "year": 2013, "MARS": "mseparate", - "value": 89378.79 + "value": 111525.0 }, { - "year": 2022, + "year": 2013, "MARS": "headhh", - "value": 89378.79 + "value": 203150.0 }, { - "year": 2022, + "year": 2013, "MARS": "widow", - "value": 178757.57 + "value": 223050.0 }, { - "year": 2023, + "year": 2014, "MARS": "single", - "value": 91443.44 + "value": 186350.0 }, { - "year": 2023, + "year": 2014, "MARS": "mjoint", - "value": 182886.87 + "value": 226850.0 }, { - "year": 2023, + "year": 2014, "MARS": "mseparate", - "value": 91443.44 + "value": 113425.0 }, { - "year": 2023, + "year": 2014, "MARS": "headhh", - "value": 91443.44 + "value": 206600.0 }, { - "year": 2023, + "year": 2014, "MARS": "widow", - "value": 182886.87 + "value": 226850.0 }, { - "year": 2024, + "year": 2015, "MARS": "single", - "value": 93473.48 + "value": 189300.0 }, { - "year": 2024, + "year": 2015, "MARS": "mjoint", - "value": 186946.96 + "value": 230450.0 }, { - "year": 2024, + "year": 2015, "MARS": "mseparate", - "value": 93473.48 + "value": 115225.0 }, { - "year": 2024, + "year": 2015, "MARS": "headhh", - "value": 93473.48 + "value": 209850.0 }, { - "year": 2024, + "year": 2015, "MARS": "widow", - "value": 186946.96 + "value": 230450.0 }, { - "year": 2025, + "year": 2016, "MARS": "single", - "value": 95492.51 + "value": 190150.0 }, { - "year": 2025, + "year": 2016, "MARS": "mjoint", - "value": 190985.02 + "value": 231450.0 }, { - "year": 2025, + "year": 2016, "MARS": "mseparate", - "value": 95492.51 + "value": 115725.0 }, { - "year": 2025, + "year": 2016, "MARS": "headhh", - "value": 95492.51 + "value": 210800.0 }, { - "year": 2025, + "year": 2016, + "MARS": "widow", + "value": 231450.0 + }, + { + "year": 2017, + "MARS": "single", + "value": 191650.0 + }, + { + "year": 2017, + "MARS": "mjoint", + "value": 233350.0 + }, + { + "year": 2017, + "MARS": "mseparate", + "value": 116675.0 + }, + { + "year": 2017, + "MARS": "headhh", + "value": 212500.0 + }, + { + "year": 2017, + "MARS": "widow", + "value": 233350.0 + }, + { + "year": 2018, + "MARS": "single", + "value": 157500.0 + }, + { + "year": 2018, + "MARS": "mjoint", + "value": 315000.0 + }, + { + "year": 2018, + "MARS": "mseparate", + "value": 157500.0 + }, + { + "year": 2018, + "MARS": "headhh", + "value": 157500.0 + }, + { + "year": 2018, + "MARS": "widow", + "value": 315000.0 + }, + { + "year": 2019, + "MARS": "single", + "value": 160725.0 + }, + { + "year": 2019, + "MARS": "mjoint", + "value": 321450.0 + }, + { + "year": 2019, + "MARS": "mseparate", + "value": 160725.0 + }, + { + "year": 2019, + "MARS": "headhh", + "value": 160700.0 + }, + { + "year": 2019, "MARS": "widow", - "value": 190985.02 + "value": 321450.0 }, { "year": 2026, "MARS": "single", - "value": 110735.0 + "value": 230928.0 }, { "year": 2026, "MARS": "mjoint", - "value": 184477.0 + "value": 281174.0 }, { "year": 2026, "MARS": "mseparate", - "value": 92239.0 + "value": 140587.0 }, { "year": 2026, "MARS": "headhh", - "value": 158089.0 + "value": 256051.0 }, { "year": 2026, "MARS": "widow", - "value": 184477.0 + "value": 281174.0 } ], - "title": "Personal income (regular/non-AMT/non-pass-through) tax bracket (upper threshold) 3", + "title": "Personal income (regular/non-AMT/non-pass-through) tax bracket (upper threshold) 4", "type": "float", "validators": { "range": { - "min": "II_brk2", - "max": "II_brk4" + "min": "II_brk3", + "max": "II_brk5" } }, "section_1": "Personal Income", @@ -9991,69 +8779,45 @@ "puf": true, "cps": true }, - "description": "Income below this threshold and above tax bracket 2 is taxed at tax rate 3.", + "description": "Income below this threshold and above tax bracket 3 is taxed at tax rate 4.", "notes": "" }, - "II_rt4": { + "II_rt5": { "value": [ { "year": 2013, - "value": 0.28 + "value": 0.33 }, { "year": 2014, - "value": 0.28 + "value": 0.33 }, { "year": 2015, - "value": 0.28 + "value": 0.33 }, { "year": 2016, - "value": 0.28 + "value": 0.33 }, { "year": 2017, - "value": 0.28 + "value": 0.33 }, { "year": 2018, - "value": 0.24 + "value": 0.32 }, { "year": 2019, - "value": 0.24 - }, - { - "year": 2020, - "value": 0.24 - }, - { - "year": 2021, - "value": 0.24 - }, - { - "year": 2022, - "value": 0.24 - }, - { - "year": 2023, - "value": 0.24 - }, - { - "year": 2024, - "value": 0.24 - }, - { - "year": 2025, - "value": 0.24 + "value": 0.32 }, { "year": 2026, - "value": 0.28 + "value": 0.33 } ], - "title": "Personal income (regular/non-AMT/non-pass-through) tax rate 4", + "title": "Personal income (regular/non-AMT/non-pass-through) tax rate 5", "type": "float", "validators": { "range": { @@ -10069,368 +8833,218 @@ "puf": true, "cps": true }, - "description": "The tax rate applied to the portion of taxable income below tax bracket 4 and above tax bracket 3.", + "description": "The third highest tax rate, applied to the portion of taxable income below tax bracket 5 and above tax bracket 4.", "notes": "" }, - "II_brk4": { + "II_brk5": { "value": [ { "year": 2013, "MARS": "single", - "value": 183250.0 + "value": 398350.0 }, { "year": 2013, "MARS": "mjoint", - "value": 223050.0 + "value": 398350.0 }, { "year": 2013, "MARS": "mseparate", - "value": 111525.0 + "value": 199175.0 }, { "year": 2013, "MARS": "headhh", - "value": 203150.0 + "value": 398350.0 }, { "year": 2013, "MARS": "widow", - "value": 223050.0 + "value": 398350.0 }, { "year": 2014, "MARS": "single", - "value": 186350.0 + "value": 405100.0 }, { "year": 2014, "MARS": "mjoint", - "value": 226850.0 + "value": 405100.0 }, { "year": 2014, "MARS": "mseparate", - "value": 113425.0 + "value": 202550.0 }, { "year": 2014, "MARS": "headhh", - "value": 206600.0 + "value": 405100.0 }, { "year": 2014, "MARS": "widow", - "value": 226850.0 + "value": 405100.0 }, { "year": 2015, "MARS": "single", - "value": 189300.0 + "value": 411500.0 }, { "year": 2015, "MARS": "mjoint", - "value": 230450.0 + "value": 411500.0 }, { "year": 2015, "MARS": "mseparate", - "value": 115225.0 + "value": 205750.0 }, { "year": 2015, "MARS": "headhh", - "value": 209850.0 + "value": 411500.0 }, { "year": 2015, "MARS": "widow", - "value": 230450.0 + "value": 411500.0 }, { "year": 2016, "MARS": "single", - "value": 190150.0 + "value": 413350.0 }, { "year": 2016, "MARS": "mjoint", - "value": 231450.0 + "value": 413350.0 }, { "year": 2016, "MARS": "mseparate", - "value": 115725.0 + "value": 206675.0 }, { "year": 2016, "MARS": "headhh", - "value": 210800.0 + "value": 413350.0 }, { "year": 2016, "MARS": "widow", - "value": 231450.0 + "value": 413350.0 }, { "year": 2017, "MARS": "single", - "value": 191650.0 + "value": 416700.0 }, { "year": 2017, "MARS": "mjoint", - "value": 233350.0 + "value": 416700.0 }, { "year": 2017, "MARS": "mseparate", - "value": 116675.0 + "value": 208350.0 }, { "year": 2017, "MARS": "headhh", - "value": 212500.0 + "value": 416700.0 }, { "year": 2017, "MARS": "widow", - "value": 233350.0 + "value": 416700.0 }, { "year": 2018, "MARS": "single", - "value": 157500.0 + "value": 200000.0 }, { "year": 2018, "MARS": "mjoint", - "value": 315000.0 + "value": 400000.0 }, { "year": 2018, "MARS": "mseparate", - "value": 157500.0 + "value": 200000.0 }, { "year": 2018, "MARS": "headhh", - "value": 157500.0 + "value": 200000.0 }, { "year": 2018, "MARS": "widow", - "value": 315000.0 + "value": 400000.0 }, { "year": 2019, "MARS": "single", - "value": 160725.0 + "value": 204100.0 }, { "year": 2019, "MARS": "mjoint", - "value": 321450.0 + "value": 408200.0 }, { "year": 2019, "MARS": "mseparate", - "value": 160725.0 + "value": 204100.0 }, { "year": 2019, "MARS": "headhh", - "value": 160700.0 + "value": 204100.0 }, { "year": 2019, "MARS": "widow", - "value": 321450.0 - }, - { - "year": 2020, - "MARS": "single", - "value": 163264.46 - }, - { - "year": 2020, - "MARS": "mjoint", - "value": 326528.91 - }, - { - "year": 2020, - "MARS": "mseparate", - "value": 163264.46 - }, - { - "year": 2020, - "MARS": "headhh", - "value": 163239.06 - }, - { - "year": 2020, - "MARS": "widow", - "value": 326528.91 - }, - { - "year": 2021, - "MARS": "single", - "value": 166823.62 - }, - { - "year": 2021, - "MARS": "mjoint", - "value": 333647.24 - }, - { - "year": 2021, - "MARS": "mseparate", - "value": 166823.62 - }, - { - "year": 2021, - "MARS": "headhh", - "value": 166797.67 - }, - { - "year": 2021, - "MARS": "widow", - "value": 333647.24 - }, - { - "year": 2022, - "MARS": "single", - "value": 170610.52 - }, - { - "year": 2022, - "MARS": "mjoint", - "value": 341221.03 - }, - { - "year": 2022, - "MARS": "mseparate", - "value": 170610.52 - }, - { - "year": 2022, - "MARS": "headhh", - "value": 170583.98 - }, - { - "year": 2022, - "MARS": "widow", - "value": 341221.03 - }, - { - "year": 2023, - "MARS": "single", - "value": 174551.62 - }, - { - "year": 2023, - "MARS": "mjoint", - "value": 349103.24 - }, - { - "year": 2023, - "MARS": "mseparate", - "value": 174551.62 - }, - { - "year": 2023, - "MARS": "headhh", - "value": 174524.47 - }, - { - "year": 2023, - "MARS": "widow", - "value": 349103.24 - }, - { - "year": 2024, - "MARS": "single", - "value": 178426.67 - }, - { - "year": 2024, - "MARS": "mjoint", - "value": 356853.33 - }, - { - "year": 2024, - "MARS": "mseparate", - "value": 178426.67 - }, - { - "year": 2024, - "MARS": "headhh", - "value": 178398.91 - }, - { - "year": 2024, - "MARS": "widow", - "value": 356853.33 - }, - { - "year": 2025, - "MARS": "single", - "value": 182280.68 - }, - { - "year": 2025, - "MARS": "mjoint", - "value": 364561.36 - }, - { - "year": 2025, - "MARS": "mseparate", - "value": 182280.68 - }, - { - "year": 2025, - "MARS": "headhh", - "value": 182252.33 - }, - { - "year": 2025, - "MARS": "widow", - "value": 364561.36 + "value": 408200.0 }, { "year": 2026, "MARS": "single", - "value": 230928.0 + "value": 502101.0 }, { "year": 2026, "MARS": "mjoint", - "value": 281174.0 + "value": 502101.0 }, { "year": 2026, "MARS": "mseparate", - "value": 140587.0 + "value": 251050.0 }, { "year": 2026, "MARS": "headhh", - "value": 256051.0 + "value": 502101.0 }, { "year": 2026, "MARS": "widow", - "value": 281174.0 + "value": 502101.0 } ], - "title": "Personal income (regular/non-AMT/non-pass-through) tax bracket (upper threshold) 4", + "title": "Personal income (regular/non-AMT/non-pass-through) tax bracket (upper threshold) 5", "type": "float", "validators": { "range": { - "min": "II_brk3", - "max": "II_brk5" + "min": "II_brk4", + "max": "II_brk6" } }, "section_1": "Personal Income", @@ -10441,69 +9055,45 @@ "puf": true, "cps": true }, - "description": "Income below this threshold and above tax bracket 3 is taxed at tax rate 4.", + "description": "Income below this threshold and above tax bracket 4 is taxed at tax rate 5.", "notes": "" }, - "II_rt5": { + "II_rt6": { "value": [ { "year": 2013, - "value": 0.33 + "value": 0.35 }, { "year": 2014, - "value": 0.33 + "value": 0.35 }, { "year": 2015, - "value": 0.33 + "value": 0.35 }, { "year": 2016, - "value": 0.33 + "value": 0.35 }, { "year": 2017, - "value": 0.33 + "value": 0.35 }, { "year": 2018, - "value": 0.32 + "value": 0.35 }, { "year": 2019, - "value": 0.32 - }, - { - "year": 2020, - "value": 0.32 - }, - { - "year": 2021, - "value": 0.32 - }, - { - "year": 2022, - "value": 0.32 - }, - { - "year": 2023, - "value": 0.32 - }, - { - "year": 2024, - "value": 0.32 - }, - { - "year": 2025, - "value": 0.32 + "value": 0.35 }, { "year": 2026, - "value": 0.33 + "value": 0.35 } ], - "title": "Personal income (regular/non-AMT/non-pass-through) tax rate 5", + "title": "Personal income (regular/non-AMT/non-pass-through) tax rate 6", "type": "float", "validators": { "range": { @@ -10519,368 +9109,218 @@ "puf": true, "cps": true }, - "description": "The third highest tax rate, applied to the portion of taxable income below tax bracket 5 and above tax bracket 4.", + "description": "The second higher tax rate, applied to the portion of taxable income below tax bracket 6 and above tax bracket 5.", "notes": "" }, - "II_brk5": { + "II_brk6": { "value": [ { "year": 2013, "MARS": "single", - "value": 398350.0 + "value": 400000.0 }, { "year": 2013, "MARS": "mjoint", - "value": 398350.0 + "value": 450000.0 }, { "year": 2013, "MARS": "mseparate", - "value": 199175.0 + "value": 225000.0 }, { "year": 2013, "MARS": "headhh", - "value": 398350.0 + "value": 425000.0 }, { "year": 2013, "MARS": "widow", - "value": 398350.0 + "value": 450000.0 }, { "year": 2014, "MARS": "single", - "value": 405100.0 + "value": 406750.0 }, { "year": 2014, "MARS": "mjoint", - "value": 405100.0 + "value": 457600.0 }, { "year": 2014, "MARS": "mseparate", - "value": 202550.0 + "value": 228800.0 }, { "year": 2014, "MARS": "headhh", - "value": 405100.0 + "value": 432200.0 }, { "year": 2014, "MARS": "widow", - "value": 405100.0 + "value": 457600.0 }, { "year": 2015, "MARS": "single", - "value": 411500.0 + "value": 413200.0 }, { "year": 2015, "MARS": "mjoint", - "value": 411500.0 + "value": 464850.0 }, { "year": 2015, "MARS": "mseparate", - "value": 205750.0 + "value": 232425.0 }, { "year": 2015, "MARS": "headhh", - "value": 411500.0 + "value": 439000.0 }, { "year": 2015, "MARS": "widow", - "value": 411500.0 + "value": 464850.0 }, { "year": 2016, "MARS": "single", - "value": 413350.0 + "value": 415050.0 }, { "year": 2016, "MARS": "mjoint", - "value": 413350.0 + "value": 466950.0 }, { "year": 2016, "MARS": "mseparate", - "value": 206675.0 + "value": 233475.0 }, { "year": 2016, "MARS": "headhh", - "value": 413350.0 + "value": 441000.0 }, { "year": 2016, "MARS": "widow", - "value": 413350.0 + "value": 466950.0 }, { "year": 2017, "MARS": "single", - "value": 416700.0 + "value": 418400.0 }, { "year": 2017, "MARS": "mjoint", - "value": 416700.0 + "value": 470700.0 }, { "year": 2017, "MARS": "mseparate", - "value": 208350.0 + "value": 235350.0 }, { "year": 2017, "MARS": "headhh", - "value": 416700.0 + "value": 444550.0 }, { "year": 2017, "MARS": "widow", - "value": 416700.0 + "value": 470700.0 }, { "year": 2018, "MARS": "single", - "value": 200000.0 + "value": 500000.0 }, { "year": 2018, "MARS": "mjoint", - "value": 400000.0 + "value": 600000.0 }, { "year": 2018, "MARS": "mseparate", - "value": 200000.0 + "value": 300000.0 }, { "year": 2018, "MARS": "headhh", - "value": 200000.0 + "value": 500000.0 }, { "year": 2018, "MARS": "widow", - "value": 400000.0 + "value": 600000.0 }, { "year": 2019, "MARS": "single", - "value": 204100.0 + "value": 510300.0 }, { "year": 2019, "MARS": "mjoint", - "value": 408200.0 + "value": 612350.0 }, { "year": 2019, "MARS": "mseparate", - "value": 204100.0 + "value": 306175.0 }, { "year": 2019, "MARS": "headhh", - "value": 204100.0 + "value": 510300.0 }, { "year": 2019, "MARS": "widow", - "value": 408200.0 - }, - { - "year": 2020, - "MARS": "single", - "value": 207324.78 - }, - { - "year": 2020, - "MARS": "mjoint", - "value": 414649.56 - }, - { - "year": 2020, - "MARS": "mseparate", - "value": 207324.78 - }, - { - "year": 2020, - "MARS": "headhh", - "value": 207324.78 - }, - { - "year": 2020, - "MARS": "widow", - "value": 414649.56 - }, - { - "year": 2021, - "MARS": "single", - "value": 211844.46 - }, - { - "year": 2021, - "MARS": "mjoint", - "value": 423688.92 - }, - { - "year": 2021, - "MARS": "mseparate", - "value": 211844.46 - }, - { - "year": 2021, - "MARS": "headhh", - "value": 211844.46 - }, - { - "year": 2021, - "MARS": "widow", - "value": 423688.92 - }, - { - "year": 2022, - "MARS": "single", - "value": 216653.33 - }, - { - "year": 2022, - "MARS": "mjoint", - "value": 433306.66 - }, - { - "year": 2022, - "MARS": "mseparate", - "value": 216653.33 - }, - { - "year": 2022, - "MARS": "headhh", - "value": 216653.33 - }, - { - "year": 2022, - "MARS": "widow", - "value": 433306.66 - }, - { - "year": 2023, - "MARS": "single", - "value": 221658.02 - }, - { - "year": 2023, - "MARS": "mjoint", - "value": 443316.04 - }, - { - "year": 2023, - "MARS": "mseparate", - "value": 221658.02 - }, - { - "year": 2023, - "MARS": "headhh", - "value": 221658.02 - }, - { - "year": 2023, - "MARS": "widow", - "value": 443316.04 - }, - { - "year": 2024, - "MARS": "single", - "value": 226578.83 - }, - { - "year": 2024, - "MARS": "mjoint", - "value": 453157.66 - }, - { - "year": 2024, - "MARS": "mseparate", - "value": 226578.83 - }, - { - "year": 2024, - "MARS": "headhh", - "value": 226578.83 - }, - { - "year": 2024, - "MARS": "widow", - "value": 453157.66 - }, - { - "year": 2025, - "MARS": "single", - "value": 231472.93 - }, - { - "year": 2025, - "MARS": "mjoint", - "value": 462945.86 - }, - { - "year": 2025, - "MARS": "mseparate", - "value": 231472.93 - }, - { - "year": 2025, - "MARS": "headhh", - "value": 231472.93 - }, - { - "year": 2025, - "MARS": "widow", - "value": 462945.86 + "value": 612350.0 }, { "year": 2026, "MARS": "single", - "value": 502101.0 + "value": 504149.0 }, { "year": 2026, "MARS": "mjoint", - "value": 502101.0 + "value": 567168.0 }, { "year": 2026, "MARS": "mseparate", - "value": 251050.0 + "value": 283584.0 }, { "year": 2026, "MARS": "headhh", - "value": 502101.0 + "value": 535659.0 }, { "year": 2026, "MARS": "widow", - "value": 502101.0 + "value": 567168.0 } ], - "title": "Personal income (regular/non-AMT/non-pass-through) tax bracket (upper threshold) 5", + "title": "Personal income (regular/non-AMT/non-pass-through) tax bracket 6", "type": "float", "validators": { "range": { - "min": "II_brk4", - "max": "II_brk6" + "min": "II_brk5", + "max": "II_brk7" } }, "section_1": "Personal Income", @@ -10891,69 +9331,45 @@ "puf": true, "cps": true }, - "description": "Income below this threshold and above tax bracket 4 is taxed at tax rate 5.", + "description": "Income below this threshold and above tax bracket 5 is taxed at tax rate 6.", "notes": "" }, - "II_rt6": { + "II_rt7": { "value": [ { "year": 2013, - "value": 0.35 + "value": 0.396 }, { "year": 2014, - "value": 0.35 + "value": 0.396 }, { "year": 2015, - "value": 0.35 + "value": 0.396 }, { "year": 2016, - "value": 0.35 + "value": 0.396 }, { "year": 2017, - "value": 0.35 + "value": 0.396 }, { "year": 2018, - "value": 0.35 + "value": 0.37 }, { "year": 2019, - "value": 0.35 - }, - { - "year": 2020, - "value": 0.35 - }, - { - "year": 2021, - "value": 0.35 - }, - { - "year": 2022, - "value": 0.35 - }, - { - "year": 2023, - "value": 0.35 - }, - { - "year": 2024, - "value": 0.35 - }, - { - "year": 2025, - "value": 0.35 + "value": 0.37 }, { "year": 2026, - "value": 0.35 + "value": 0.396 } ], - "title": "Personal income (regular/non-AMT/non-pass-through) tax rate 6", + "title": "Personal income (regular/non-AMT/non-pass-through) tax rate 7", "type": "float", "validators": { "range": { @@ -10969,368 +9385,218 @@ "puf": true, "cps": true }, - "description": "The second higher tax rate, applied to the portion of taxable income below tax bracket 6 and above tax bracket 5.", + "description": "The tax rate applied to the portion of taxable income below tax bracket 7 and above tax bracket 6.", "notes": "" }, - "II_brk6": { + "II_brk7": { "value": [ { "year": 2013, "MARS": "single", - "value": 400000.0 + "value": 9e+99 }, { "year": 2013, "MARS": "mjoint", - "value": 450000.0 + "value": 9e+99 }, { "year": 2013, "MARS": "mseparate", - "value": 225000.0 + "value": 9e+99 }, { "year": 2013, "MARS": "headhh", - "value": 425000.0 + "value": 9e+99 }, { "year": 2013, "MARS": "widow", - "value": 450000.0 + "value": 9e+99 }, { "year": 2014, "MARS": "single", - "value": 406750.0 + "value": 9e+99 }, { "year": 2014, "MARS": "mjoint", - "value": 457600.0 + "value": 9e+99 }, { "year": 2014, "MARS": "mseparate", - "value": 228800.0 + "value": 9e+99 }, { "year": 2014, "MARS": "headhh", - "value": 432200.0 + "value": 9e+99 }, { "year": 2014, "MARS": "widow", - "value": 457600.0 + "value": 9e+99 }, { "year": 2015, "MARS": "single", - "value": 413200.0 + "value": 9e+99 }, { "year": 2015, "MARS": "mjoint", - "value": 464850.0 + "value": 9e+99 }, { "year": 2015, "MARS": "mseparate", - "value": 232425.0 + "value": 9e+99 }, { "year": 2015, "MARS": "headhh", - "value": 439000.0 + "value": 9e+99 }, { "year": 2015, "MARS": "widow", - "value": 464850.0 + "value": 9e+99 }, { "year": 2016, "MARS": "single", - "value": 415050.0 + "value": 9e+99 }, { "year": 2016, "MARS": "mjoint", - "value": 466950.0 + "value": 9e+99 }, { "year": 2016, "MARS": "mseparate", - "value": 233475.0 + "value": 9e+99 }, { "year": 2016, "MARS": "headhh", - "value": 441000.0 + "value": 9e+99 }, { "year": 2016, "MARS": "widow", - "value": 466950.0 + "value": 9e+99 }, { "year": 2017, "MARS": "single", - "value": 418400.0 + "value": 9e+99 }, { "year": 2017, "MARS": "mjoint", - "value": 470700.0 + "value": 9e+99 }, { "year": 2017, "MARS": "mseparate", - "value": 235350.0 + "value": 9e+99 }, { "year": 2017, "MARS": "headhh", - "value": 444550.0 + "value": 9e+99 }, { "year": 2017, "MARS": "widow", - "value": 470700.0 + "value": 9e+99 }, { "year": 2018, "MARS": "single", - "value": 500000.0 + "value": 9e+99 }, { "year": 2018, "MARS": "mjoint", - "value": 600000.0 + "value": 9e+99 }, { "year": 2018, "MARS": "mseparate", - "value": 300000.0 + "value": 9e+99 }, { "year": 2018, "MARS": "headhh", - "value": 500000.0 + "value": 9e+99 }, { "year": 2018, "MARS": "widow", - "value": 600000.0 + "value": 9e+99 }, { "year": 2019, "MARS": "single", - "value": 510300.0 + "value": 9e+99 }, { "year": 2019, "MARS": "mjoint", - "value": 612350.0 + "value": 9e+99 }, { "year": 2019, "MARS": "mseparate", - "value": 306175.0 + "value": 9e+99 }, { "year": 2019, "MARS": "headhh", - "value": 510300.0 + "value": 9e+99 }, { "year": 2019, "MARS": "widow", - "value": 612350.0 - }, - { - "year": 2020, - "MARS": "single", - "value": 518362.74 - }, - { - "year": 2020, - "MARS": "mjoint", - "value": 622025.13 - }, - { - "year": 2020, - "MARS": "mseparate", - "value": 311012.56 - }, - { - "year": 2020, - "MARS": "headhh", - "value": 518362.74 - }, - { - "year": 2020, - "MARS": "widow", - "value": 622025.13 - }, - { - "year": 2021, - "MARS": "single", - "value": 529663.05 - }, - { - "year": 2021, - "MARS": "mjoint", - "value": 635585.28 - }, - { - "year": 2021, - "MARS": "mseparate", - "value": 317792.64 - }, - { - "year": 2021, - "MARS": "headhh", - "value": 529663.05 - }, - { - "year": 2021, - "MARS": "widow", - "value": 635585.28 - }, - { - "year": 2022, - "MARS": "single", - "value": 541686.4 - }, - { - "year": 2022, - "MARS": "mjoint", - "value": 650013.06 - }, - { - "year": 2022, - "MARS": "mseparate", - "value": 325006.53 - }, - { - "year": 2022, - "MARS": "headhh", - "value": 541686.4 - }, - { - "year": 2022, - "MARS": "widow", - "value": 650013.06 - }, - { - "year": 2023, - "MARS": "single", - "value": 554199.35 - }, - { - "year": 2023, - "MARS": "mjoint", - "value": 665028.37 - }, - { - "year": 2023, - "MARS": "mseparate", - "value": 332514.18 - }, - { - "year": 2023, - "MARS": "headhh", - "value": 554199.35 - }, - { - "year": 2023, - "MARS": "widow", - "value": 665028.37 - }, - { - "year": 2024, - "MARS": "single", - "value": 566502.58 - }, - { - "year": 2024, - "MARS": "mjoint", - "value": 679792.0 - }, - { - "year": 2024, - "MARS": "mseparate", - "value": 339896.0 - }, - { - "year": 2024, - "MARS": "headhh", - "value": 566502.58 - }, - { - "year": 2024, - "MARS": "widow", - "value": 679792.0 - }, - { - "year": 2025, - "MARS": "single", - "value": 578739.04 - }, - { - "year": 2025, - "MARS": "mjoint", - "value": 694475.5 - }, - { - "year": 2025, - "MARS": "mseparate", - "value": 347237.75 - }, - { - "year": 2025, - "MARS": "headhh", - "value": 578739.04 - }, - { - "year": 2025, - "MARS": "widow", - "value": 694475.5 + "value": 9e+99 }, { "year": 2026, "MARS": "single", - "value": 504149.0 + "value": 9e+99 }, { "year": 2026, "MARS": "mjoint", - "value": 567168.0 + "value": 9e+99 }, { "year": 2026, "MARS": "mseparate", - "value": 283584.0 + "value": 9e+99 }, { "year": 2026, "MARS": "headhh", - "value": 535659.0 + "value": 9e+99 }, { "year": 2026, "MARS": "widow", - "value": 567168.0 + "value": 9e+99 } ], - "title": "Personal income (regular/non-AMT/non-pass-through) tax bracket 6", + "title": "Personal income (regular/non-AMT/non-pass-through) tax bracket 7", "type": "float", "validators": { "range": { - "min": "II_brk5", - "max": "II_brk7" + "min": "II_brk6", + "max": 9e+99 } }, "section_1": "Personal Income", @@ -11341,69 +9607,17 @@ "puf": true, "cps": true }, - "description": "Income below this threshold and above tax bracket 5 is taxed at tax rate 6.", + "description": "Income below this threshold and above tax bracket 6 is taxed at tax rate 7; income above this threshold is taxed at tax rate 8. Default value is essentially infinity.", "notes": "" }, - "II_rt7": { + "II_rt8": { "value": [ { "year": 2013, - "value": 0.396 - }, - { - "year": 2014, - "value": 0.396 - }, - { - "year": 2015, - "value": 0.396 - }, - { - "year": 2016, - "value": 0.396 - }, - { - "year": 2017, - "value": 0.396 - }, - { - "year": 2018, - "value": 0.37 - }, - { - "year": 2019, - "value": 0.37 - }, - { - "year": 2020, - "value": 0.37 - }, - { - "year": 2021, - "value": 0.37 - }, - { - "year": 2022, - "value": 0.37 - }, - { - "year": 2023, - "value": 0.37 - }, - { - "year": 2024, - "value": 0.37 - }, - { - "year": 2025, - "value": 0.37 - }, - { - "year": 2026, - "value": 0.396 + "value": 1.0 } ], - "title": "Personal income (regular/non-AMT/non-pass-through) tax rate 7", + "title": "Personal income (regular/non-AMT/non-pass-through) tax rate 8", "type": "float", "validators": { "range": { @@ -11419,1367 +9633,45 @@ "puf": true, "cps": true }, - "description": "The tax rate applied to the portion of taxable income below tax bracket 7 and above tax bracket 6.", + "description": "The tax rate applied to the portion of taxable income above tax bracket 7.", "notes": "" }, - "II_brk7": { + "PT_rt1": { "value": [ { "year": 2013, - "MARS": "single", - "value": 9e+99 - }, - { - "year": 2013, - "MARS": "mjoint", - "value": 9e+99 - }, - { - "year": 2013, - "MARS": "mseparate", - "value": 9e+99 - }, - { - "year": 2013, - "MARS": "headhh", - "value": 9e+99 + "value": 0.1 }, { - "year": 2013, - "MARS": "widow", - "value": 9e+99 + "year": 2014, + "value": 0.1 }, { - "year": 2014, - "MARS": "single", - "value": 9e+99 + "year": 2015, + "value": 0.1 }, { - "year": 2014, - "MARS": "mjoint", - "value": 9e+99 + "year": 2016, + "value": 0.1 }, { - "year": 2014, - "MARS": "mseparate", - "value": 9e+99 + "year": 2017, + "value": 0.1 }, { - "year": 2014, - "MARS": "headhh", - "value": 9e+99 + "year": 2018, + "value": 0.1 }, { - "year": 2014, - "MARS": "widow", - "value": 9e+99 - }, - { - "year": 2015, - "MARS": "single", - "value": 9e+99 - }, - { - "year": 2015, - "MARS": "mjoint", - "value": 9e+99 - }, - { - "year": 2015, - "MARS": "mseparate", - "value": 9e+99 - }, - { - "year": 2015, - "MARS": "headhh", - "value": 9e+99 - }, - { - "year": 2015, - "MARS": "widow", - "value": 9e+99 - }, - { - "year": 2016, - "MARS": "single", - "value": 9e+99 - }, - { - "year": 2016, - "MARS": "mjoint", - "value": 9e+99 - }, - { - "year": 2016, - "MARS": "mseparate", - "value": 9e+99 - }, - { - "year": 2016, - "MARS": "headhh", - "value": 9e+99 - }, - { - "year": 2016, - "MARS": "widow", - "value": 9e+99 - }, - { - "year": 2017, - "MARS": "single", - "value": 9e+99 - }, - { - "year": 2017, - "MARS": "mjoint", - "value": 9e+99 - }, - { - "year": 2017, - "MARS": "mseparate", - "value": 9e+99 - }, - { - "year": 2017, - "MARS": "headhh", - "value": 9e+99 - }, - { - "year": 2017, - "MARS": "widow", - "value": 9e+99 - }, - { - "year": 2018, - "MARS": "single", - "value": 9e+99 - }, - { - "year": 2018, - "MARS": "mjoint", - "value": 9e+99 - }, - { - "year": 2018, - "MARS": "mseparate", - "value": 9e+99 - }, - { - "year": 2018, - "MARS": "headhh", - "value": 9e+99 - }, - { - "year": 2018, - "MARS": "widow", - "value": 9e+99 - }, - { - "year": 2019, - "MARS": "single", - "value": 9e+99 - }, - { - "year": 2019, - "MARS": "mjoint", - "value": 9e+99 - }, - { - "year": 2019, - "MARS": "mseparate", - "value": 9e+99 - }, - { - "year": 2019, - "MARS": "headhh", - "value": 9e+99 - }, - { - "year": 2019, - "MARS": "widow", - "value": 9e+99 - }, - { - "year": 2020, - "MARS": "single", - "value": 9e+99 - }, - { - "year": 2020, - "MARS": "mjoint", - "value": 9e+99 - }, - { - "year": 2020, - "MARS": "mseparate", - "value": 9e+99 - }, - { - "year": 2020, - "MARS": "headhh", - "value": 9e+99 - }, - { - "year": 2020, - "MARS": "widow", - "value": 9e+99 - }, - { - "year": 2021, - "MARS": "single", - "value": 9e+99 - }, - { - "year": 2021, - "MARS": "mjoint", - "value": 9e+99 - }, - { - "year": 2021, - "MARS": "mseparate", - "value": 9e+99 - }, - { - "year": 2021, - "MARS": "headhh", - "value": 9e+99 - }, - { - "year": 2021, - "MARS": "widow", - "value": 9e+99 - }, - { - "year": 2022, - "MARS": "single", - "value": 9e+99 - }, - { - "year": 2022, - "MARS": "mjoint", - "value": 9e+99 - }, - { - "year": 2022, - "MARS": "mseparate", - "value": 9e+99 - }, - { - "year": 2022, - "MARS": "headhh", - "value": 9e+99 - }, - { - "year": 2022, - "MARS": "widow", - "value": 9e+99 - }, - { - "year": 2023, - "MARS": "single", - "value": 9e+99 - }, - { - "year": 2023, - "MARS": "mjoint", - "value": 9e+99 - }, - { - "year": 2023, - "MARS": "mseparate", - "value": 9e+99 - }, - { - "year": 2023, - "MARS": "headhh", - "value": 9e+99 - }, - { - "year": 2023, - "MARS": "widow", - "value": 9e+99 - }, - { - "year": 2024, - "MARS": "single", - "value": 9e+99 - }, - { - "year": 2024, - "MARS": "mjoint", - "value": 9e+99 - }, - { - "year": 2024, - "MARS": "mseparate", - "value": 9e+99 - }, - { - "year": 2024, - "MARS": "headhh", - "value": 9e+99 - }, - { - "year": 2024, - "MARS": "widow", - "value": 9e+99 - }, - { - "year": 2025, - "MARS": "single", - "value": 9e+99 - }, - { - "year": 2025, - "MARS": "mjoint", - "value": 9e+99 - }, - { - "year": 2025, - "MARS": "mseparate", - "value": 9e+99 - }, - { - "year": 2025, - "MARS": "headhh", - "value": 9e+99 - }, - { - "year": 2025, - "MARS": "widow", - "value": 9e+99 - }, - { - "year": 2026, - "MARS": "single", - "value": 9e+99 - }, - { - "year": 2026, - "MARS": "mjoint", - "value": 9e+99 - }, - { - "year": 2026, - "MARS": "mseparate", - "value": 9e+99 - }, - { - "year": 2026, - "MARS": "headhh", - "value": 9e+99 - }, - { - "year": 2026, - "MARS": "widow", - "value": 9e+99 - } - ], - "title": "Personal income (regular/non-AMT/non-pass-through) tax bracket 7", - "type": "float", - "validators": { - "range": { - "min": "II_brk6", - "max": 9e+99 - } - }, - "section_1": "Personal Income", - "section_2": "Regular: Non-AMT, Non-Pass-Through", - "indexable": true, - "indexed": true, - "compatible_data": { - "puf": true, - "cps": true - }, - "description": "Income below this threshold and above tax bracket 6 is taxed at tax rate 7; income above this threshold is taxed at tax rate 8. Default value is essentially infinity.", - "notes": "" - }, - "II_rt8": { - "value": [ - { - "year": 2013, - "value": 1.0 - } - ], - "title": "Personal income (regular/non-AMT/non-pass-through) tax rate 8", - "type": "float", - "validators": { - "range": { - "min": 0, - "max": 1 - } - }, - "section_1": "Personal Income", - "section_2": "Regular: Non-AMT, Non-Pass-Through", - "indexable": false, - "indexed": false, - "compatible_data": { - "puf": true, - "cps": true - }, - "description": "The tax rate applied to the portion of taxable income above tax bracket 7.", - "notes": "" - }, - "PT_rt1": { - "value": [ - { - "year": 2013, - "value": 0.1 - }, - { - "year": 2014, - "value": 0.1 - }, - { - "year": 2015, - "value": 0.1 - }, - { - "year": 2016, - "value": 0.1 - }, - { - "year": 2017, - "value": 0.1 - }, - { - "year": 2018, - "value": 0.1 - }, - { - "year": 2019, - "value": 0.1 - }, - { - "year": 2020, - "value": 0.1 - }, - { - "year": 2021, - "value": 0.1 - }, - { - "year": 2022, - "value": 0.1 - }, - { - "year": 2023, - "value": 0.1 - }, - { - "year": 2024, - "value": 0.1 - }, - { - "year": 2025, - "value": 0.1 - }, - { - "year": 2026, - "value": 0.1 - } - ], - "title": "Pass-through income tax rate 1", - "type": "float", - "validators": { - "range": { - "min": 0, - "max": 1 - } - }, - "section_1": "Personal Income", - "section_2": "Pass-Through", - "indexable": false, - "indexed": false, - "compatible_data": { - "puf": true, - "cps": true - }, - "description": "The lowest tax rate, applied to the portion of income from sole proprietorships, partnerships and S-corporations below tax bracket 1.", - "notes": "" - }, - "PT_brk1": { - "value": [ - { - "year": 2013, - "MARS": "single", - "value": 8925.0 - }, - { - "year": 2013, - "MARS": "mjoint", - "value": 17850.0 - }, - { - "year": 2013, - "MARS": "mseparate", - "value": 8925.0 - }, - { - "year": 2013, - "MARS": "headhh", - "value": 12750.0 - }, - { - "year": 2013, - "MARS": "widow", - "value": 17850.0 - }, - { - "year": 2014, - "MARS": "single", - "value": 9075.0 - }, - { - "year": 2014, - "MARS": "mjoint", - "value": 18150.0 - }, - { - "year": 2014, - "MARS": "mseparate", - "value": 9075.0 - }, - { - "year": 2014, - "MARS": "headhh", - "value": 12950.0 - }, - { - "year": 2014, - "MARS": "widow", - "value": 18150.0 - }, - { - "year": 2015, - "MARS": "single", - "value": 9225.0 - }, - { - "year": 2015, - "MARS": "mjoint", - "value": 18450.0 - }, - { - "year": 2015, - "MARS": "mseparate", - "value": 9225.0 - }, - { - "year": 2015, - "MARS": "headhh", - "value": 13150.0 - }, - { - "year": 2015, - "MARS": "widow", - "value": 18450.0 - }, - { - "year": 2016, - "MARS": "single", - "value": 9275.0 - }, - { - "year": 2016, - "MARS": "mjoint", - "value": 18550.0 - }, - { - "year": 2016, - "MARS": "mseparate", - "value": 9275.0 - }, - { - "year": 2016, - "MARS": "headhh", - "value": 13250.0 - }, - { - "year": 2016, - "MARS": "widow", - "value": 18550.0 - }, - { - "year": 2017, - "MARS": "single", - "value": 9325.0 - }, - { - "year": 2017, - "MARS": "mjoint", - "value": 18650.0 - }, - { - "year": 2017, - "MARS": "mseparate", - "value": 9325.0 - }, - { - "year": 2017, - "MARS": "headhh", - "value": 13350.0 - }, - { - "year": 2017, - "MARS": "widow", - "value": 18650.0 - }, - { - "year": 2018, - "MARS": "single", - "value": 9525.0 - }, - { - "year": 2018, - "MARS": "mjoint", - "value": 19050.0 - }, - { - "year": 2018, - "MARS": "mseparate", - "value": 9525.0 - }, - { - "year": 2018, - "MARS": "headhh", - "value": 13600.0 - }, - { - "year": 2018, - "MARS": "widow", - "value": 19050.0 - }, - { - "year": 2019, - "MARS": "single", - "value": 9700.0 - }, - { - "year": 2019, - "MARS": "mjoint", - "value": 19400.0 - }, - { - "year": 2019, - "MARS": "mseparate", - "value": 9700.0 - }, - { - "year": 2019, - "MARS": "headhh", - "value": 13850.0 - }, - { - "year": 2019, - "MARS": "widow", - "value": 19400.0 - }, - { - "year": 2020, - "MARS": "single", - "value": 9853.26 - }, - { - "year": 2020, - "MARS": "mjoint", - "value": 19706.52 - }, - { - "year": 2020, - "MARS": "mseparate", - "value": 9853.26 - }, - { - "year": 2020, - "MARS": "headhh", - "value": 14068.83 - }, - { - "year": 2020, - "MARS": "widow", - "value": 19706.52 - }, - { - "year": 2021, - "MARS": "single", - "value": 10068.06 - }, - { - "year": 2021, - "MARS": "mjoint", - "value": 20136.12 - }, - { - "year": 2021, - "MARS": "mseparate", - "value": 10068.06 - }, - { - "year": 2021, - "MARS": "headhh", - "value": 14375.53 - }, - { - "year": 2021, - "MARS": "widow", - "value": 20136.12 - }, - { - "year": 2022, - "MARS": "single", - "value": 10296.61 - }, - { - "year": 2022, - "MARS": "mjoint", - "value": 20593.21 - }, - { - "year": 2022, - "MARS": "mseparate", - "value": 10296.61 - }, - { - "year": 2022, - "MARS": "headhh", - "value": 14701.86 - }, - { - "year": 2022, - "MARS": "widow", - "value": 20593.21 - }, - { - "year": 2023, - "MARS": "single", - "value": 10534.46 - }, - { - "year": 2023, - "MARS": "mjoint", - "value": 21068.92 - }, - { - "year": 2023, - "MARS": "mseparate", - "value": 10534.46 - }, - { - "year": 2023, - "MARS": "headhh", - "value": 15041.47 - }, - { - "year": 2023, - "MARS": "widow", - "value": 21068.92 - }, - { - "year": 2024, - "MARS": "single", - "value": 10768.32 - }, - { - "year": 2024, - "MARS": "mjoint", - "value": 21536.65 - }, - { - "year": 2024, - "MARS": "mseparate", - "value": 10768.32 - }, - { - "year": 2024, - "MARS": "headhh", - "value": 15375.39 - }, - { - "year": 2024, - "MARS": "widow", - "value": 21536.65 - }, - { - "year": 2025, - "MARS": "single", - "value": 11000.92 - }, - { - "year": 2025, - "MARS": "mjoint", - "value": 22001.84 - }, - { - "year": 2025, - "MARS": "mseparate", - "value": 11000.92 - }, - { - "year": 2025, - "MARS": "headhh", - "value": 15707.5 - }, - { - "year": 2025, - "MARS": "widow", - "value": 22001.84 - }, - { - "year": 2026, - "MARS": "single", - "value": 11236.0 - }, - { - "year": 2026, - "MARS": "mjoint", - "value": 22472.0 - }, - { - "year": 2026, - "MARS": "mseparate", - "value": 11236.0 - }, - { - "year": 2026, - "MARS": "headhh", - "value": 16086.0 - }, - { - "year": 2026, - "MARS": "widow", - "value": 22472.0 - } - ], - "title": "Pass-through income tax bracket (upper threshold) 1", - "type": "float", - "validators": { - "range": { - "min": 0, - "max": "PT_brk2" - } - }, - "section_1": "Personal Income", - "section_2": "Pass-Through", - "indexable": true, - "indexed": true, - "compatible_data": { - "puf": true, - "cps": true - }, - "description": "Income from sole proprietorships, partnerships and S-corporations below this threshold is taxed at tax rate 1.", - "notes": "" - }, - "PT_rt2": { - "value": [ - { - "year": 2013, - "value": 0.15 - }, - { - "year": 2014, - "value": 0.15 - }, - { - "year": 2015, - "value": 0.15 - }, - { - "year": 2016, - "value": 0.15 - }, - { - "year": 2017, - "value": 0.15 - }, - { - "year": 2018, - "value": 0.12 - }, - { - "year": 2019, - "value": 0.12 - }, - { - "year": 2020, - "value": 0.12 - }, - { - "year": 2021, - "value": 0.12 - }, - { - "year": 2022, - "value": 0.12 - }, - { - "year": 2023, - "value": 0.12 - }, - { - "year": 2024, - "value": 0.12 - }, - { - "year": 2025, - "value": 0.12 - }, - { - "year": 2026, - "value": 0.15 - } - ], - "title": "Pass-through income tax rate 2", - "type": "float", - "validators": { - "range": { - "min": 0, - "max": 1 - } - }, - "section_1": "Personal Income", - "section_2": "Pass-Through", - "indexable": false, - "indexed": false, - "compatible_data": { - "puf": true, - "cps": true - }, - "description": "The second lowest tax rate, applied to the portion of income from sole proprietorships, partnerships and S-corporations below tax bracket 2 and above tax bracket 1.", - "notes": "" - }, - "PT_brk2": { - "value": [ - { - "year": 2013, - "MARS": "single", - "value": 36250.0 - }, - { - "year": 2013, - "MARS": "mjoint", - "value": 72500.0 - }, - { - "year": 2013, - "MARS": "mseparate", - "value": 36250.0 - }, - { - "year": 2013, - "MARS": "headhh", - "value": 48600.0 - }, - { - "year": 2013, - "MARS": "widow", - "value": 72500.0 - }, - { - "year": 2014, - "MARS": "single", - "value": 36900.0 - }, - { - "year": 2014, - "MARS": "mjoint", - "value": 73800.0 - }, - { - "year": 2014, - "MARS": "mseparate", - "value": 36900.0 - }, - { - "year": 2014, - "MARS": "headhh", - "value": 49400.0 - }, - { - "year": 2014, - "MARS": "widow", - "value": 73800.0 - }, - { - "year": 2015, - "MARS": "single", - "value": 37450.0 - }, - { - "year": 2015, - "MARS": "mjoint", - "value": 74900.0 - }, - { - "year": 2015, - "MARS": "mseparate", - "value": 37450.0 - }, - { - "year": 2015, - "MARS": "headhh", - "value": 50200.0 - }, - { - "year": 2015, - "MARS": "widow", - "value": 74900.0 - }, - { - "year": 2016, - "MARS": "single", - "value": 37650.0 - }, - { - "year": 2016, - "MARS": "mjoint", - "value": 75300.0 - }, - { - "year": 2016, - "MARS": "mseparate", - "value": 37650.0 - }, - { - "year": 2016, - "MARS": "headhh", - "value": 50400.0 - }, - { - "year": 2016, - "MARS": "widow", - "value": 75300.0 - }, - { - "year": 2017, - "MARS": "single", - "value": 37950.0 - }, - { - "year": 2017, - "MARS": "mjoint", - "value": 75900.0 - }, - { - "year": 2017, - "MARS": "mseparate", - "value": 37950.0 - }, - { - "year": 2017, - "MARS": "headhh", - "value": 50800.0 - }, - { - "year": 2017, - "MARS": "widow", - "value": 75900.0 - }, - { - "year": 2018, - "MARS": "single", - "value": 38700.0 - }, - { - "year": 2018, - "MARS": "mjoint", - "value": 77400.0 - }, - { - "year": 2018, - "MARS": "mseparate", - "value": 38700.0 - }, - { - "year": 2018, - "MARS": "headhh", - "value": 51800.0 - }, - { - "year": 2018, - "MARS": "widow", - "value": 77400.0 - }, - { - "year": 2019, - "MARS": "single", - "value": 39475.0 - }, - { - "year": 2019, - "MARS": "mjoint", - "value": 78950.0 - }, - { - "year": 2019, - "MARS": "mseparate", - "value": 39475.0 - }, - { - "year": 2019, - "MARS": "headhh", - "value": 52850.0 - }, - { - "year": 2019, - "MARS": "widow", - "value": 78950.0 - }, - { - "year": 2020, - "MARS": "single", - "value": 40098.7 - }, - { - "year": 2020, - "MARS": "mjoint", - "value": 80197.41 - }, - { - "year": 2020, - "MARS": "mseparate", - "value": 40098.7 - }, - { - "year": 2020, - "MARS": "headhh", - "value": 53685.03 - }, - { - "year": 2020, - "MARS": "widow", - "value": 80197.41 - }, - { - "year": 2021, - "MARS": "single", - "value": 40972.86 - }, - { - "year": 2021, - "MARS": "mjoint", - "value": 81945.71 - }, - { - "year": 2021, - "MARS": "mseparate", - "value": 40972.86 - }, - { - "year": 2021, - "MARS": "headhh", - "value": 54855.36 - }, - { - "year": 2021, - "MARS": "widow", - "value": 81945.71 - }, - { - "year": 2022, - "MARS": "single", - "value": 41902.94 - }, - { - "year": 2022, - "MARS": "mjoint", - "value": 83805.88 - }, - { - "year": 2022, - "MARS": "mseparate", - "value": 41902.94 - }, - { - "year": 2022, - "MARS": "headhh", - "value": 56100.58 - }, - { - "year": 2022, - "MARS": "widow", - "value": 83805.88 - }, - { - "year": 2023, - "MARS": "single", - "value": 42870.9 - }, - { - "year": 2023, - "MARS": "mjoint", - "value": 85741.8 - }, - { - "year": 2023, - "MARS": "mseparate", - "value": 42870.9 - }, - { - "year": 2023, - "MARS": "headhh", - "value": 57396.5 - }, - { - "year": 2023, - "MARS": "widow", - "value": 85741.8 - }, - { - "year": 2024, - "MARS": "single", - "value": 43822.63 - }, - { - "year": 2024, - "MARS": "mjoint", - "value": 87645.26 - }, - { - "year": 2024, - "MARS": "mseparate", - "value": 43822.63 - }, - { - "year": 2024, - "MARS": "headhh", - "value": 58670.71 - }, - { - "year": 2024, - "MARS": "widow", - "value": 87645.26 - }, - { - "year": 2025, - "MARS": "single", - "value": 44769.2 - }, - { - "year": 2025, - "MARS": "mjoint", - "value": 89538.4 - }, - { - "year": 2025, - "MARS": "mseparate", - "value": 44769.2 - }, - { - "year": 2025, - "MARS": "headhh", - "value": 59937.99 - }, - { - "year": 2025, - "MARS": "widow", - "value": 89538.4 - }, - { - "year": 2026, - "MARS": "single", - "value": 45728.0 - }, - { - "year": 2026, - "MARS": "mjoint", - "value": 91455.0 - }, - { - "year": 2026, - "MARS": "mseparate", - "value": 45728.0 - }, - { - "year": 2026, - "MARS": "headhh", - "value": 61211.0 - }, - { - "year": 2026, - "MARS": "widow", - "value": 91455.0 - } - ], - "title": "Pass-through income tax bracket (upper threshold) 2", - "type": "float", - "validators": { - "range": { - "min": "PT_brk1", - "max": "PT_brk3" - } - }, - "section_1": "Personal Income", - "section_2": "Pass-Through", - "indexable": true, - "indexed": true, - "compatible_data": { - "puf": true, - "cps": true - }, - "description": "Income from sole proprietorships, partnerships and S-corporations below this threshold and above tax bracket 1 is taxed at tax rate 2.", - "notes": "" - }, - "PT_rt3": { - "value": [ - { - "year": 2013, - "value": 0.25 - }, - { - "year": 2014, - "value": 0.25 - }, - { - "year": 2015, - "value": 0.25 - }, - { - "year": 2016, - "value": 0.25 - }, - { - "year": 2017, - "value": 0.25 - }, - { - "year": 2018, - "value": 0.22 - }, - { - "year": 2019, - "value": 0.22 - }, - { - "year": 2020, - "value": 0.22 - }, - { - "year": 2021, - "value": 0.22 - }, - { - "year": 2022, - "value": 0.22 - }, - { - "year": 2023, - "value": 0.22 - }, - { - "year": 2024, - "value": 0.22 - }, - { - "year": 2025, - "value": 0.22 + "year": 2019, + "value": 0.1 }, { "year": 2026, - "value": 0.25 + "value": 0.1 } ], - "title": "Pass-through income tax rate 3", + "title": "Pass-through income tax rate 1", "type": "float", "validators": { "range": { @@ -12795,368 +9687,218 @@ "puf": true, "cps": true }, - "description": "The third lowest tax rate, applied to the portion of income from sole proprietorships, partnerships and S-corporations below tax bracket 3 and above tax bracket 2.", + "description": "The lowest tax rate, applied to the portion of income from sole proprietorships, partnerships and S-corporations below tax bracket 1.", "notes": "" }, - "PT_brk3": { + "PT_brk1": { "value": [ { "year": 2013, "MARS": "single", - "value": 87850.0 + "value": 8925.0 }, { "year": 2013, "MARS": "mjoint", - "value": 146400.0 + "value": 17850.0 }, { "year": 2013, "MARS": "mseparate", - "value": 73200.0 + "value": 8925.0 }, { "year": 2013, "MARS": "headhh", - "value": 125450.0 + "value": 12750.0 }, { "year": 2013, "MARS": "widow", - "value": 146400.0 + "value": 17850.0 }, { "year": 2014, "MARS": "single", - "value": 89350.0 + "value": 9075.0 }, { "year": 2014, "MARS": "mjoint", - "value": 148850.0 + "value": 18150.0 }, { "year": 2014, "MARS": "mseparate", - "value": 74425.0 + "value": 9075.0 }, { "year": 2014, "MARS": "headhh", - "value": 127550.0 + "value": 12950.0 }, { "year": 2014, "MARS": "widow", - "value": 148850.0 + "value": 18150.0 }, { "year": 2015, "MARS": "single", - "value": 90750.0 + "value": 9225.0 }, { "year": 2015, "MARS": "mjoint", - "value": 151200.0 + "value": 18450.0 }, { "year": 2015, "MARS": "mseparate", - "value": 75600.0 + "value": 9225.0 }, { "year": 2015, "MARS": "headhh", - "value": 129600.0 + "value": 13150.0 }, { "year": 2015, "MARS": "widow", - "value": 151200.0 + "value": 18450.0 }, { "year": 2016, "MARS": "single", - "value": 91150.0 + "value": 9275.0 }, { "year": 2016, "MARS": "mjoint", - "value": 151900.0 + "value": 18550.0 }, { "year": 2016, "MARS": "mseparate", - "value": 75950.0 + "value": 9275.0 }, { "year": 2016, "MARS": "headhh", - "value": 130150.0 + "value": 13250.0 }, { "year": 2016, "MARS": "widow", - "value": 151900.0 + "value": 18550.0 }, { "year": 2017, "MARS": "single", - "value": 91900.0 + "value": 9325.0 }, { "year": 2017, "MARS": "mjoint", - "value": 153100.0 + "value": 18650.0 }, { "year": 2017, "MARS": "mseparate", - "value": 76550.0 + "value": 9325.0 }, { "year": 2017, "MARS": "headhh", - "value": 131200.0 + "value": 13350.0 }, { "year": 2017, "MARS": "widow", - "value": 153100.0 + "value": 18650.0 }, { "year": 2018, "MARS": "single", - "value": 82500.0 + "value": 9525.0 }, { "year": 2018, "MARS": "mjoint", - "value": 165000.0 + "value": 19050.0 }, { "year": 2018, "MARS": "mseparate", - "value": 82500.0 + "value": 9525.0 }, { "year": 2018, "MARS": "headhh", - "value": 82500.0 + "value": 13600.0 }, { "year": 2018, "MARS": "widow", - "value": 165000.0 + "value": 19050.0 }, { "year": 2019, "MARS": "single", - "value": 84200.0 + "value": 9700.0 }, { "year": 2019, "MARS": "mjoint", - "value": 168400.0 + "value": 19400.0 }, { "year": 2019, "MARS": "mseparate", - "value": 84200.0 + "value": 9700.0 }, { "year": 2019, "MARS": "headhh", - "value": 84200.0 + "value": 13850.0 }, { "year": 2019, "MARS": "widow", - "value": 168400.0 - }, - { - "year": 2020, - "MARS": "single", - "value": 85530.36 - }, - { - "year": 2020, - "MARS": "mjoint", - "value": 171060.72 - }, - { - "year": 2020, - "MARS": "mseparate", - "value": 85530.36 - }, - { - "year": 2020, - "MARS": "headhh", - "value": 85530.36 - }, - { - "year": 2020, - "MARS": "widow", - "value": 171060.72 - }, - { - "year": 2021, - "MARS": "single", - "value": 87394.92 - }, - { - "year": 2021, - "MARS": "mjoint", - "value": 174789.84 - }, - { - "year": 2021, - "MARS": "mseparate", - "value": 87394.92 - }, - { - "year": 2021, - "MARS": "headhh", - "value": 87394.92 - }, - { - "year": 2021, - "MARS": "widow", - "value": 174789.84 - }, - { - "year": 2022, - "MARS": "single", - "value": 89378.79 - }, - { - "year": 2022, - "MARS": "mjoint", - "value": 178757.57 - }, - { - "year": 2022, - "MARS": "mseparate", - "value": 89378.79 - }, - { - "year": 2022, - "MARS": "headhh", - "value": 89378.79 - }, - { - "year": 2022, - "MARS": "widow", - "value": 178757.57 - }, - { - "year": 2023, - "MARS": "single", - "value": 91443.44 - }, - { - "year": 2023, - "MARS": "mjoint", - "value": 182886.87 - }, - { - "year": 2023, - "MARS": "mseparate", - "value": 91443.44 - }, - { - "year": 2023, - "MARS": "headhh", - "value": 91443.44 - }, - { - "year": 2023, - "MARS": "widow", - "value": 182886.87 - }, - { - "year": 2024, - "MARS": "single", - "value": 93473.48 - }, - { - "year": 2024, - "MARS": "mjoint", - "value": 186946.96 - }, - { - "year": 2024, - "MARS": "mseparate", - "value": 93473.48 - }, - { - "year": 2024, - "MARS": "headhh", - "value": 93473.48 - }, - { - "year": 2024, - "MARS": "widow", - "value": 186946.96 - }, - { - "year": 2025, - "MARS": "single", - "value": 95492.51 - }, - { - "year": 2025, - "MARS": "mjoint", - "value": 190985.02 - }, - { - "year": 2025, - "MARS": "mseparate", - "value": 95492.51 - }, - { - "year": 2025, - "MARS": "headhh", - "value": 95492.51 - }, - { - "year": 2025, - "MARS": "widow", - "value": 190985.02 + "value": 19400.0 }, { "year": 2026, "MARS": "single", - "value": 110735.0 + "value": 11236.0 }, { "year": 2026, "MARS": "mjoint", - "value": 184477.0 + "value": 22472.0 }, { "year": 2026, "MARS": "mseparate", - "value": 92239.0 + "value": 11236.0 }, { "year": 2026, "MARS": "headhh", - "value": 158089.0 + "value": 16086.0 }, { "year": 2026, "MARS": "widow", - "value": 184477.0 + "value": 22472.0 } ], - "title": "Pass-through income tax bracket (upper threshold) 3", + "title": "Pass-through income tax bracket (upper threshold) 1", "type": "float", "validators": { "range": { - "min": "PT_brk2", - "max": "PT_brk4" + "min": 0, + "max": "PT_brk2" } }, "section_1": "Personal Income", @@ -13167,69 +9909,45 @@ "puf": true, "cps": true }, - "description": "Income from sole proprietorships, partnerships and S-corporations below this threshold and above tax bracket 2 is taxed at tax rate 3.", + "description": "Income from sole proprietorships, partnerships and S-corporations below this threshold is taxed at tax rate 1.", "notes": "" }, - "PT_rt4": { + "PT_rt2": { "value": [ { "year": 2013, - "value": 0.28 + "value": 0.15 }, { "year": 2014, - "value": 0.28 + "value": 0.15 }, { "year": 2015, - "value": 0.28 + "value": 0.15 }, { "year": 2016, - "value": 0.28 + "value": 0.15 }, { "year": 2017, - "value": 0.28 + "value": 0.15 }, { "year": 2018, - "value": 0.24 + "value": 0.12 }, { "year": 2019, - "value": 0.24 - }, - { - "year": 2020, - "value": 0.24 - }, - { - "year": 2021, - "value": 0.24 - }, - { - "year": 2022, - "value": 0.24 - }, - { - "year": 2023, - "value": 0.24 - }, - { - "year": 2024, - "value": 0.24 - }, - { - "year": 2025, - "value": 0.24 + "value": 0.12 }, { "year": 2026, - "value": 0.28 + "value": 0.15 } ], - "title": "Pass-through income tax rate 4", + "title": "Pass-through income tax rate 2", "type": "float", "validators": { "range": { @@ -13245,368 +9963,218 @@ "puf": true, "cps": true }, - "description": "The tax rate applied to the portion of income from sole proprietorships, partnerships and S-corporations below tax bracket 4 and above tax bracket 3.", + "description": "The second lowest tax rate, applied to the portion of income from sole proprietorships, partnerships and S-corporations below tax bracket 2 and above tax bracket 1.", "notes": "" }, - "PT_brk4": { + "PT_brk2": { "value": [ { "year": 2013, "MARS": "single", - "value": 183250.0 + "value": 36250.0 }, { "year": 2013, "MARS": "mjoint", - "value": 223050.0 + "value": 72500.0 }, { "year": 2013, "MARS": "mseparate", - "value": 111525.0 + "value": 36250.0 }, { "year": 2013, "MARS": "headhh", - "value": 203150.0 + "value": 48600.0 }, { "year": 2013, "MARS": "widow", - "value": 223050.0 + "value": 72500.0 }, { "year": 2014, "MARS": "single", - "value": 186350.0 + "value": 36900.0 }, { "year": 2014, "MARS": "mjoint", - "value": 226850.0 + "value": 73800.0 }, { "year": 2014, "MARS": "mseparate", - "value": 113425.0 + "value": 36900.0 }, { "year": 2014, "MARS": "headhh", - "value": 206600.0 + "value": 49400.0 }, { "year": 2014, "MARS": "widow", - "value": 226850.0 + "value": 73800.0 }, { "year": 2015, "MARS": "single", - "value": 189300.0 + "value": 37450.0 }, { "year": 2015, "MARS": "mjoint", - "value": 230450.0 + "value": 74900.0 }, { "year": 2015, "MARS": "mseparate", - "value": 115225.0 + "value": 37450.0 }, { "year": 2015, "MARS": "headhh", - "value": 209850.0 + "value": 50200.0 }, { "year": 2015, "MARS": "widow", - "value": 230450.0 + "value": 74900.0 }, { "year": 2016, "MARS": "single", - "value": 190150.0 + "value": 37650.0 }, { "year": 2016, "MARS": "mjoint", - "value": 231450.0 + "value": 75300.0 }, { "year": 2016, "MARS": "mseparate", - "value": 115725.0 + "value": 37650.0 }, { "year": 2016, "MARS": "headhh", - "value": 210800.0 + "value": 50400.0 }, { "year": 2016, "MARS": "widow", - "value": 231450.0 + "value": 75300.0 }, { "year": 2017, "MARS": "single", - "value": 191650.0 + "value": 37950.0 }, { "year": 2017, "MARS": "mjoint", - "value": 233350.0 + "value": 75900.0 }, { "year": 2017, "MARS": "mseparate", - "value": 116675.0 + "value": 37950.0 }, { "year": 2017, "MARS": "headhh", - "value": 212500.0 + "value": 50800.0 }, { "year": 2017, "MARS": "widow", - "value": 233350.0 + "value": 75900.0 }, { "year": 2018, "MARS": "single", - "value": 157500.0 + "value": 38700.0 }, { "year": 2018, "MARS": "mjoint", - "value": 315000.0 + "value": 77400.0 }, { "year": 2018, "MARS": "mseparate", - "value": 157500.0 + "value": 38700.0 }, { "year": 2018, "MARS": "headhh", - "value": 157500.0 + "value": 51800.0 }, { "year": 2018, "MARS": "widow", - "value": 315000.0 + "value": 77400.0 }, { "year": 2019, "MARS": "single", - "value": 160725.0 + "value": 39475.0 }, { "year": 2019, "MARS": "mjoint", - "value": 321450.0 + "value": 78950.0 }, { "year": 2019, "MARS": "mseparate", - "value": 160725.0 + "value": 39475.0 }, { "year": 2019, "MARS": "headhh", - "value": 160700.0 + "value": 52850.0 }, { "year": 2019, "MARS": "widow", - "value": 321450.0 - }, - { - "year": 2020, - "MARS": "single", - "value": 163264.46 - }, - { - "year": 2020, - "MARS": "mjoint", - "value": 326528.91 - }, - { - "year": 2020, - "MARS": "mseparate", - "value": 163264.46 - }, - { - "year": 2020, - "MARS": "headhh", - "value": 163239.06 - }, - { - "year": 2020, - "MARS": "widow", - "value": 326528.91 - }, - { - "year": 2021, - "MARS": "single", - "value": 166823.62 - }, - { - "year": 2021, - "MARS": "mjoint", - "value": 333647.24 - }, - { - "year": 2021, - "MARS": "mseparate", - "value": 166823.62 - }, - { - "year": 2021, - "MARS": "headhh", - "value": 166797.67 - }, - { - "year": 2021, - "MARS": "widow", - "value": 333647.24 - }, - { - "year": 2022, - "MARS": "single", - "value": 170610.52 - }, - { - "year": 2022, - "MARS": "mjoint", - "value": 341221.03 - }, - { - "year": 2022, - "MARS": "mseparate", - "value": 170610.52 - }, - { - "year": 2022, - "MARS": "headhh", - "value": 170583.98 - }, - { - "year": 2022, - "MARS": "widow", - "value": 341221.03 - }, - { - "year": 2023, - "MARS": "single", - "value": 174551.62 - }, - { - "year": 2023, - "MARS": "mjoint", - "value": 349103.24 - }, - { - "year": 2023, - "MARS": "mseparate", - "value": 174551.62 - }, - { - "year": 2023, - "MARS": "headhh", - "value": 174524.47 - }, - { - "year": 2023, - "MARS": "widow", - "value": 349103.24 - }, - { - "year": 2024, - "MARS": "single", - "value": 178426.67 - }, - { - "year": 2024, - "MARS": "mjoint", - "value": 356853.33 - }, - { - "year": 2024, - "MARS": "mseparate", - "value": 178426.67 - }, - { - "year": 2024, - "MARS": "headhh", - "value": 178398.91 - }, - { - "year": 2024, - "MARS": "widow", - "value": 356853.33 - }, - { - "year": 2025, - "MARS": "single", - "value": 182280.68 - }, - { - "year": 2025, - "MARS": "mjoint", - "value": 364561.36 - }, - { - "year": 2025, - "MARS": "mseparate", - "value": 182280.68 - }, - { - "year": 2025, - "MARS": "headhh", - "value": 182252.33 - }, - { - "year": 2025, - "MARS": "widow", - "value": 364561.36 + "value": 78950.0 }, { "year": 2026, "MARS": "single", - "value": 230928.0 + "value": 45728.0 }, { "year": 2026, "MARS": "mjoint", - "value": 281174.0 + "value": 91455.0 }, { "year": 2026, "MARS": "mseparate", - "value": 140587.0 + "value": 45728.0 }, { "year": 2026, "MARS": "headhh", - "value": 256051.0 + "value": 61211.0 }, { "year": 2026, "MARS": "widow", - "value": 281174.0 + "value": 91455.0 } ], - "title": "Pass-through income tax bracket (upper threshold) 4", + "title": "Pass-through income tax bracket (upper threshold) 2", "type": "float", "validators": { "range": { - "min": "PT_brk3", - "max": "PT_brk5" + "min": "PT_brk1", + "max": "PT_brk3" } }, "section_1": "Personal Income", @@ -13617,69 +10185,45 @@ "puf": true, "cps": true }, - "description": "Income from sole proprietorships, partnerships and S-corporations below this threshold and above tax bracket 3 is taxed at tax rate 4.", + "description": "Income from sole proprietorships, partnerships and S-corporations below this threshold and above tax bracket 1 is taxed at tax rate 2.", "notes": "" }, - "PT_rt5": { + "PT_rt3": { "value": [ { "year": 2013, - "value": 0.33 + "value": 0.25 }, { "year": 2014, - "value": 0.33 + "value": 0.25 }, { "year": 2015, - "value": 0.33 + "value": 0.25 }, { "year": 2016, - "value": 0.33 + "value": 0.25 }, { "year": 2017, - "value": 0.33 + "value": 0.25 }, { "year": 2018, - "value": 0.32 + "value": 0.22 }, { "year": 2019, - "value": 0.32 - }, - { - "year": 2020, - "value": 0.32 - }, - { - "year": 2021, - "value": 0.32 - }, - { - "year": 2022, - "value": 0.32 - }, - { - "year": 2023, - "value": 0.32 - }, - { - "year": 2024, - "value": 0.32 - }, - { - "year": 2025, - "value": 0.32 + "value": 0.22 }, { "year": 2026, - "value": 0.33 + "value": 0.25 } ], - "title": "Pass-through income tax rate 5", + "title": "Pass-through income tax rate 3", "type": "float", "validators": { "range": { @@ -13695,368 +10239,218 @@ "puf": true, "cps": true }, - "description": "The third highest tax rate, applied to the portion of income from sole proprietorships, partnerships and S-corporations below tax bracket 5 and above tax bracket 4.", + "description": "The third lowest tax rate, applied to the portion of income from sole proprietorships, partnerships and S-corporations below tax bracket 3 and above tax bracket 2.", "notes": "" }, - "PT_brk5": { + "PT_brk3": { "value": [ { "year": 2013, "MARS": "single", - "value": 398350.0 + "value": 87850.0 }, { "year": 2013, "MARS": "mjoint", - "value": 398350.0 + "value": 146400.0 }, { "year": 2013, "MARS": "mseparate", - "value": 199175.0 + "value": 73200.0 }, { "year": 2013, "MARS": "headhh", - "value": 398350.0 + "value": 125450.0 }, { "year": 2013, "MARS": "widow", - "value": 398350.0 + "value": 146400.0 }, { "year": 2014, "MARS": "single", - "value": 405100.0 + "value": 89350.0 }, { "year": 2014, "MARS": "mjoint", - "value": 405100.0 + "value": 148850.0 }, { "year": 2014, "MARS": "mseparate", - "value": 202550.0 + "value": 74425.0 }, { "year": 2014, "MARS": "headhh", - "value": 405100.0 + "value": 127550.0 }, { "year": 2014, "MARS": "widow", - "value": 405100.0 + "value": 148850.0 }, { "year": 2015, "MARS": "single", - "value": 411500.0 + "value": 90750.0 }, { "year": 2015, "MARS": "mjoint", - "value": 411500.0 + "value": 151200.0 }, { "year": 2015, "MARS": "mseparate", - "value": 205750.0 + "value": 75600.0 }, { "year": 2015, "MARS": "headhh", - "value": 411500.0 + "value": 129600.0 }, { "year": 2015, "MARS": "widow", - "value": 411500.0 + "value": 151200.0 }, { "year": 2016, "MARS": "single", - "value": 413350.0 + "value": 91150.0 }, { "year": 2016, "MARS": "mjoint", - "value": 413350.0 + "value": 151900.0 }, { "year": 2016, "MARS": "mseparate", - "value": 206675.0 + "value": 75950.0 }, { "year": 2016, "MARS": "headhh", - "value": 413350.0 + "value": 130150.0 }, { "year": 2016, "MARS": "widow", - "value": 413350.0 + "value": 151900.0 }, { "year": 2017, "MARS": "single", - "value": 416700.0 + "value": 91900.0 }, { "year": 2017, "MARS": "mjoint", - "value": 416700.0 + "value": 153100.0 }, { "year": 2017, "MARS": "mseparate", - "value": 208350.0 + "value": 76550.0 }, { "year": 2017, "MARS": "headhh", - "value": 416700.0 + "value": 131200.0 }, { "year": 2017, "MARS": "widow", - "value": 416700.0 + "value": 153100.0 }, { "year": 2018, "MARS": "single", - "value": 200000.0 + "value": 82500.0 }, { "year": 2018, "MARS": "mjoint", - "value": 400000.0 + "value": 165000.0 }, { "year": 2018, "MARS": "mseparate", - "value": 200000.0 + "value": 82500.0 }, { "year": 2018, "MARS": "headhh", - "value": 200000.0 + "value": 82500.0 }, { "year": 2018, "MARS": "widow", - "value": 400000.0 + "value": 165000.0 }, { "year": 2019, "MARS": "single", - "value": 204100.0 + "value": 84200.0 }, { "year": 2019, "MARS": "mjoint", - "value": 408200.0 + "value": 168400.0 }, { "year": 2019, "MARS": "mseparate", - "value": 204100.0 + "value": 84200.0 }, { "year": 2019, "MARS": "headhh", - "value": 204100.0 + "value": 84200.0 }, { "year": 2019, "MARS": "widow", - "value": 408200.0 - }, - { - "year": 2020, - "MARS": "single", - "value": 207324.78 - }, - { - "year": 2020, - "MARS": "mjoint", - "value": 414649.56 - }, - { - "year": 2020, - "MARS": "mseparate", - "value": 207324.78 - }, - { - "year": 2020, - "MARS": "headhh", - "value": 207324.78 - }, - { - "year": 2020, - "MARS": "widow", - "value": 414649.56 - }, - { - "year": 2021, - "MARS": "single", - "value": 211844.46 - }, - { - "year": 2021, - "MARS": "mjoint", - "value": 423688.92 - }, - { - "year": 2021, - "MARS": "mseparate", - "value": 211844.46 - }, - { - "year": 2021, - "MARS": "headhh", - "value": 211844.46 - }, - { - "year": 2021, - "MARS": "widow", - "value": 423688.92 - }, - { - "year": 2022, - "MARS": "single", - "value": 216653.33 - }, - { - "year": 2022, - "MARS": "mjoint", - "value": 433306.66 - }, - { - "year": 2022, - "MARS": "mseparate", - "value": 216653.33 - }, - { - "year": 2022, - "MARS": "headhh", - "value": 216653.33 - }, - { - "year": 2022, - "MARS": "widow", - "value": 433306.66 - }, - { - "year": 2023, - "MARS": "single", - "value": 221658.02 - }, - { - "year": 2023, - "MARS": "mjoint", - "value": 443316.04 - }, - { - "year": 2023, - "MARS": "mseparate", - "value": 221658.02 - }, - { - "year": 2023, - "MARS": "headhh", - "value": 221658.02 - }, - { - "year": 2023, - "MARS": "widow", - "value": 443316.04 - }, - { - "year": 2024, - "MARS": "single", - "value": 226578.83 - }, - { - "year": 2024, - "MARS": "mjoint", - "value": 453157.66 - }, - { - "year": 2024, - "MARS": "mseparate", - "value": 226578.83 - }, - { - "year": 2024, - "MARS": "headhh", - "value": 226578.83 - }, - { - "year": 2024, - "MARS": "widow", - "value": 453157.66 - }, - { - "year": 2025, - "MARS": "single", - "value": 231472.93 - }, - { - "year": 2025, - "MARS": "mjoint", - "value": 462945.86 - }, - { - "year": 2025, - "MARS": "mseparate", - "value": 231472.93 - }, - { - "year": 2025, - "MARS": "headhh", - "value": 231472.93 - }, - { - "year": 2025, - "MARS": "widow", - "value": 462945.86 + "value": 168400.0 }, { "year": 2026, "MARS": "single", - "value": 502101.0 + "value": 110735.0 }, { "year": 2026, "MARS": "mjoint", - "value": 502101.0 + "value": 184477.0 }, { "year": 2026, "MARS": "mseparate", - "value": 251050.0 + "value": 92239.0 }, { "year": 2026, "MARS": "headhh", - "value": 502101.0 + "value": 158089.0 }, { "year": 2026, "MARS": "widow", - "value": 502101.0 + "value": 184477.0 } ], - "title": "Pass-through income tax bracket (upper threshold) 5", + "title": "Pass-through income tax bracket (upper threshold) 3", "type": "float", "validators": { "range": { - "min": "PT_brk4", - "max": "PT_brk6" + "min": "PT_brk2", + "max": "PT_brk4" } }, "section_1": "Personal Income", @@ -14067,69 +10461,45 @@ "puf": true, "cps": true }, - "description": "Income from sole proprietorships, partnerships and S-corporations below this threshold and above tax bracket 4 is taxed at tax rate 5.", + "description": "Income from sole proprietorships, partnerships and S-corporations below this threshold and above tax bracket 2 is taxed at tax rate 3.", "notes": "" }, - "PT_rt6": { + "PT_rt4": { "value": [ { "year": 2013, - "value": 0.35 + "value": 0.28 }, { "year": 2014, - "value": 0.35 + "value": 0.28 }, { "year": 2015, - "value": 0.35 + "value": 0.28 }, { "year": 2016, - "value": 0.35 + "value": 0.28 }, { "year": 2017, - "value": 0.35 + "value": 0.28 }, { "year": 2018, - "value": 0.35 + "value": 0.24 }, { "year": 2019, - "value": 0.35 - }, - { - "year": 2020, - "value": 0.35 - }, - { - "year": 2021, - "value": 0.35 - }, - { - "year": 2022, - "value": 0.35 - }, - { - "year": 2023, - "value": 0.35 - }, - { - "year": 2024, - "value": 0.35 - }, - { - "year": 2025, - "value": 0.35 + "value": 0.24 }, { "year": 2026, - "value": 0.35 + "value": 0.28 } ], - "title": "Pass-through income tax rate 6", + "title": "Pass-through income tax rate 4", "type": "float", "validators": { "range": { @@ -14145,368 +10515,494 @@ "puf": true, "cps": true }, - "description": "The second higher tax rate, applied to the portion of income from sole proprietorships, partnerships and S-corporations below tax bracket 6 and above tax bracket 5.", + "description": "The tax rate applied to the portion of income from sole proprietorships, partnerships and S-corporations below tax bracket 4 and above tax bracket 3.", "notes": "" }, - "PT_brk6": { + "PT_brk4": { "value": [ { "year": 2013, "MARS": "single", - "value": 400000.0 + "value": 183250.0 }, { "year": 2013, "MARS": "mjoint", - "value": 450000.0 + "value": 223050.0 }, { "year": 2013, "MARS": "mseparate", - "value": 225000.0 + "value": 111525.0 }, { "year": 2013, "MARS": "headhh", - "value": 425000.0 + "value": 203150.0 }, { "year": 2013, "MARS": "widow", - "value": 450000.0 + "value": 223050.0 }, { "year": 2014, "MARS": "single", - "value": 406750.0 + "value": 186350.0 }, { "year": 2014, "MARS": "mjoint", - "value": 457600.0 + "value": 226850.0 }, { "year": 2014, "MARS": "mseparate", - "value": 228800.0 + "value": 113425.0 }, { "year": 2014, "MARS": "headhh", - "value": 432200.0 + "value": 206600.0 }, { "year": 2014, "MARS": "widow", - "value": 457600.0 + "value": 226850.0 }, { "year": 2015, "MARS": "single", - "value": 413200.0 + "value": 189300.0 }, { "year": 2015, "MARS": "mjoint", - "value": 464850.0 + "value": 230450.0 }, { "year": 2015, "MARS": "mseparate", - "value": 232425.0 + "value": 115225.0 }, { "year": 2015, "MARS": "headhh", - "value": 439000.0 + "value": 209850.0 }, { "year": 2015, "MARS": "widow", - "value": 464850.0 + "value": 230450.0 }, { "year": 2016, "MARS": "single", - "value": 415050.0 + "value": 190150.0 }, { "year": 2016, "MARS": "mjoint", - "value": 466950.0 + "value": 231450.0 }, { "year": 2016, "MARS": "mseparate", - "value": 233475.0 + "value": 115725.0 }, { "year": 2016, "MARS": "headhh", - "value": 441000.0 + "value": 210800.0 }, { "year": 2016, "MARS": "widow", - "value": 466950.0 + "value": 231450.0 }, { "year": 2017, "MARS": "single", - "value": 418400.0 + "value": 191650.0 }, { "year": 2017, "MARS": "mjoint", - "value": 470700.0 + "value": 233350.0 }, { "year": 2017, "MARS": "mseparate", - "value": 235350.0 + "value": 116675.0 }, { "year": 2017, "MARS": "headhh", - "value": 444550.0 + "value": 212500.0 }, { "year": 2017, "MARS": "widow", - "value": 470700.0 + "value": 233350.0 }, { "year": 2018, "MARS": "single", - "value": 500000.0 + "value": 157500.0 }, { "year": 2018, "MARS": "mjoint", - "value": 600000.0 + "value": 315000.0 }, { "year": 2018, "MARS": "mseparate", - "value": 300000.0 + "value": 157500.0 }, { "year": 2018, "MARS": "headhh", - "value": 500000.0 + "value": 157500.0 }, { "year": 2018, "MARS": "widow", - "value": 600000.0 + "value": 315000.0 }, { "year": 2019, "MARS": "single", - "value": 510300.0 + "value": 160725.0 }, { "year": 2019, "MARS": "mjoint", - "value": 612350.0 + "value": 321450.0 }, { "year": 2019, "MARS": "mseparate", - "value": 306175.0 + "value": 160725.0 }, { "year": 2019, "MARS": "headhh", - "value": 510300.0 + "value": 160700.0 }, { "year": 2019, "MARS": "widow", - "value": 612350.0 + "value": 321450.0 }, { - "year": 2020, + "year": 2026, "MARS": "single", - "value": 518362.74 + "value": 230928.0 }, { - "year": 2020, + "year": 2026, "MARS": "mjoint", - "value": 622025.13 + "value": 281174.0 }, { - "year": 2020, + "year": 2026, "MARS": "mseparate", - "value": 311012.56 + "value": 140587.0 }, { - "year": 2020, + "year": 2026, "MARS": "headhh", - "value": 518362.74 + "value": 256051.0 }, { - "year": 2020, + "year": 2026, "MARS": "widow", - "value": 622025.13 + "value": 281174.0 + } + ], + "title": "Pass-through income tax bracket (upper threshold) 4", + "type": "float", + "validators": { + "range": { + "min": "PT_brk3", + "max": "PT_brk5" + } + }, + "section_1": "Personal Income", + "section_2": "Pass-Through", + "indexable": true, + "indexed": true, + "compatible_data": { + "puf": true, + "cps": true + }, + "description": "Income from sole proprietorships, partnerships and S-corporations below this threshold and above tax bracket 3 is taxed at tax rate 4.", + "notes": "" + }, + "PT_rt5": { + "value": [ + { + "year": 2013, + "value": 0.33 }, { - "year": 2021, + "year": 2014, + "value": 0.33 + }, + { + "year": 2015, + "value": 0.33 + }, + { + "year": 2016, + "value": 0.33 + }, + { + "year": 2017, + "value": 0.33 + }, + { + "year": 2018, + "value": 0.32 + }, + { + "year": 2019, + "value": 0.32 + }, + { + "year": 2026, + "value": 0.33 + } + ], + "title": "Pass-through income tax rate 5", + "type": "float", + "validators": { + "range": { + "min": 0, + "max": 1 + } + }, + "section_1": "Personal Income", + "section_2": "Pass-Through", + "indexable": false, + "indexed": false, + "compatible_data": { + "puf": true, + "cps": true + }, + "description": "The third highest tax rate, applied to the portion of income from sole proprietorships, partnerships and S-corporations below tax bracket 5 and above tax bracket 4.", + "notes": "" + }, + "PT_brk5": { + "value": [ + { + "year": 2013, "MARS": "single", - "value": 529663.05 + "value": 398350.0 }, { - "year": 2021, + "year": 2013, "MARS": "mjoint", - "value": 635585.28 + "value": 398350.0 }, { - "year": 2021, + "year": 2013, "MARS": "mseparate", - "value": 317792.64 + "value": 199175.0 }, { - "year": 2021, + "year": 2013, "MARS": "headhh", - "value": 529663.05 + "value": 398350.0 }, { - "year": 2021, + "year": 2013, "MARS": "widow", - "value": 635585.28 + "value": 398350.0 }, { - "year": 2022, + "year": 2014, "MARS": "single", - "value": 541686.4 + "value": 405100.0 }, { - "year": 2022, + "year": 2014, "MARS": "mjoint", - "value": 650013.06 + "value": 405100.0 }, { - "year": 2022, + "year": 2014, "MARS": "mseparate", - "value": 325006.53 + "value": 202550.0 }, { - "year": 2022, + "year": 2014, "MARS": "headhh", - "value": 541686.4 + "value": 405100.0 }, { - "year": 2022, + "year": 2014, "MARS": "widow", - "value": 650013.06 + "value": 405100.0 }, { - "year": 2023, + "year": 2015, "MARS": "single", - "value": 554199.35 + "value": 411500.0 }, { - "year": 2023, + "year": 2015, "MARS": "mjoint", - "value": 665028.37 + "value": 411500.0 }, { - "year": 2023, + "year": 2015, + "MARS": "mseparate", + "value": 205750.0 + }, + { + "year": 2015, + "MARS": "headhh", + "value": 411500.0 + }, + { + "year": 2015, + "MARS": "widow", + "value": 411500.0 + }, + { + "year": 2016, + "MARS": "single", + "value": 413350.0 + }, + { + "year": 2016, + "MARS": "mjoint", + "value": 413350.0 + }, + { + "year": 2016, + "MARS": "mseparate", + "value": 206675.0 + }, + { + "year": 2016, + "MARS": "headhh", + "value": 413350.0 + }, + { + "year": 2016, + "MARS": "widow", + "value": 413350.0 + }, + { + "year": 2017, + "MARS": "single", + "value": 416700.0 + }, + { + "year": 2017, + "MARS": "mjoint", + "value": 416700.0 + }, + { + "year": 2017, "MARS": "mseparate", - "value": 332514.18 + "value": 208350.0 }, { - "year": 2023, + "year": 2017, "MARS": "headhh", - "value": 554199.35 + "value": 416700.0 }, { - "year": 2023, + "year": 2017, "MARS": "widow", - "value": 665028.37 + "value": 416700.0 }, { - "year": 2024, + "year": 2018, "MARS": "single", - "value": 566502.58 + "value": 200000.0 }, { - "year": 2024, + "year": 2018, "MARS": "mjoint", - "value": 679792.0 + "value": 400000.0 }, { - "year": 2024, + "year": 2018, "MARS": "mseparate", - "value": 339896.0 + "value": 200000.0 }, { - "year": 2024, + "year": 2018, "MARS": "headhh", - "value": 566502.58 + "value": 200000.0 }, { - "year": 2024, + "year": 2018, "MARS": "widow", - "value": 679792.0 + "value": 400000.0 }, { - "year": 2025, + "year": 2019, "MARS": "single", - "value": 578739.04 + "value": 204100.0 }, { - "year": 2025, + "year": 2019, "MARS": "mjoint", - "value": 694475.5 + "value": 408200.0 }, { - "year": 2025, + "year": 2019, "MARS": "mseparate", - "value": 347237.75 + "value": 204100.0 }, { - "year": 2025, + "year": 2019, "MARS": "headhh", - "value": 578739.04 + "value": 204100.0 }, { - "year": 2025, + "year": 2019, "MARS": "widow", - "value": 694475.5 + "value": 408200.0 }, { "year": 2026, "MARS": "single", - "value": 504149.0 + "value": 502101.0 }, { "year": 2026, "MARS": "mjoint", - "value": 567168.0 + "value": 502101.0 }, { "year": 2026, "MARS": "mseparate", - "value": 283584.0 + "value": 251050.0 }, { "year": 2026, "MARS": "headhh", - "value": 535659.0 + "value": 502101.0 }, { "year": 2026, "MARS": "widow", - "value": 567168.0 + "value": 502101.0 } ], - "title": "Pass-through income tax bracket (upper threshold) 6", + "title": "Pass-through income tax bracket (upper threshold) 5", "type": "float", "validators": { "range": { - "min": "PT_brk5", - "max": "PT_brk7" + "min": "PT_brk4", + "max": "PT_brk6" } }, "section_1": "Personal Income", @@ -14517,69 +11013,45 @@ "puf": true, "cps": true }, - "description": "Income from sole proprietorships, partnerships and S-corporations below this threshold and above tax bracket 5 is taxed at tax rate 6.", + "description": "Income from sole proprietorships, partnerships and S-corporations below this threshold and above tax bracket 4 is taxed at tax rate 5.", "notes": "" }, - "PT_rt7": { + "PT_rt6": { "value": [ { "year": 2013, - "value": 0.396 + "value": 0.35 }, { "year": 2014, - "value": 0.396 + "value": 0.35 }, { "year": 2015, - "value": 0.396 + "value": 0.35 }, { "year": 2016, - "value": 0.396 + "value": 0.35 }, { "year": 2017, - "value": 0.396 + "value": 0.35 }, { "year": 2018, - "value": 0.37 + "value": 0.35 }, { "year": 2019, - "value": 0.37 - }, - { - "year": 2020, - "value": 0.37 - }, - { - "year": 2021, - "value": 0.37 - }, - { - "year": 2022, - "value": 0.37 - }, - { - "year": 2023, - "value": 0.37 - }, - { - "year": 2024, - "value": 0.37 - }, - { - "year": 2025, - "value": 0.37 + "value": 0.35 }, { "year": 2026, - "value": 0.396 + "value": 0.35 } ], - "title": "Pass-through income tax rate 7", + "title": "Pass-through income tax rate 6", "type": "float", "validators": { "range": { @@ -14595,333 +11067,459 @@ "puf": true, "cps": true }, - "description": "The highest tax rate, applied to the portion of income from sole proprietorships, partnerships and S-corporations below tax bracket 7 and above tax bracket 6.", + "description": "The second higher tax rate, applied to the portion of income from sole proprietorships, partnerships and S-corporations below tax bracket 6 and above tax bracket 5.", "notes": "" }, - "PT_brk7": { + "PT_brk6": { "value": [ { "year": 2013, "MARS": "single", - "value": 9e+99 + "value": 400000.0 }, { "year": 2013, "MARS": "mjoint", - "value": 9e+99 + "value": 450000.0 }, { "year": 2013, "MARS": "mseparate", - "value": 9e+99 + "value": 225000.0 }, { "year": 2013, "MARS": "headhh", - "value": 9e+99 + "value": 425000.0 }, { "year": 2013, "MARS": "widow", - "value": 9e+99 + "value": 450000.0 }, { "year": 2014, "MARS": "single", - "value": 9e+99 + "value": 406750.0 }, { "year": 2014, "MARS": "mjoint", - "value": 9e+99 + "value": 457600.0 }, { "year": 2014, "MARS": "mseparate", - "value": 9e+99 + "value": 228800.0 }, { "year": 2014, "MARS": "headhh", - "value": 9e+99 + "value": 432200.0 }, { "year": 2014, "MARS": "widow", - "value": 9e+99 + "value": 457600.0 }, { "year": 2015, "MARS": "single", - "value": 9e+99 + "value": 413200.0 }, { "year": 2015, "MARS": "mjoint", - "value": 9e+99 + "value": 464850.0 }, { "year": 2015, "MARS": "mseparate", - "value": 9e+99 + "value": 232425.0 }, { "year": 2015, "MARS": "headhh", - "value": 9e+99 + "value": 439000.0 }, { "year": 2015, "MARS": "widow", - "value": 9e+99 + "value": 464850.0 }, { "year": 2016, "MARS": "single", - "value": 9e+99 + "value": 415050.0 }, { "year": 2016, "MARS": "mjoint", - "value": 9e+99 + "value": 466950.0 }, { "year": 2016, "MARS": "mseparate", - "value": 9e+99 + "value": 233475.0 }, { "year": 2016, "MARS": "headhh", - "value": 9e+99 + "value": 441000.0 }, { "year": 2016, "MARS": "widow", - "value": 9e+99 + "value": 466950.0 }, { "year": 2017, "MARS": "single", - "value": 9e+99 + "value": 418400.0 }, { "year": 2017, "MARS": "mjoint", - "value": 9e+99 + "value": 470700.0 }, { "year": 2017, "MARS": "mseparate", - "value": 9e+99 + "value": 235350.0 }, { "year": 2017, "MARS": "headhh", - "value": 9e+99 + "value": 444550.0 }, { "year": 2017, "MARS": "widow", - "value": 9e+99 + "value": 470700.0 }, { "year": 2018, "MARS": "single", - "value": 9e+99 + "value": 500000.0 }, { "year": 2018, "MARS": "mjoint", - "value": 9e+99 + "value": 600000.0 }, { "year": 2018, "MARS": "mseparate", - "value": 9e+99 + "value": 300000.0 }, { "year": 2018, "MARS": "headhh", - "value": 9e+99 + "value": 500000.0 }, { "year": 2018, "MARS": "widow", - "value": 9e+99 + "value": 600000.0 + }, + { + "year": 2019, + "MARS": "single", + "value": 510300.0 + }, + { + "year": 2019, + "MARS": "mjoint", + "value": 612350.0 + }, + { + "year": 2019, + "MARS": "mseparate", + "value": 306175.0 + }, + { + "year": 2019, + "MARS": "headhh", + "value": 510300.0 + }, + { + "year": 2019, + "MARS": "widow", + "value": 612350.0 + }, + { + "year": 2026, + "MARS": "single", + "value": 504149.0 + }, + { + "year": 2026, + "MARS": "mjoint", + "value": 567168.0 + }, + { + "year": 2026, + "MARS": "mseparate", + "value": 283584.0 + }, + { + "year": 2026, + "MARS": "headhh", + "value": 535659.0 + }, + { + "year": 2026, + "MARS": "widow", + "value": 567168.0 + } + ], + "title": "Pass-through income tax bracket (upper threshold) 6", + "type": "float", + "validators": { + "range": { + "min": "PT_brk5", + "max": "PT_brk7" + } + }, + "section_1": "Personal Income", + "section_2": "Pass-Through", + "indexable": true, + "indexed": true, + "compatible_data": { + "puf": true, + "cps": true + }, + "description": "Income from sole proprietorships, partnerships and S-corporations below this threshold and above tax bracket 5 is taxed at tax rate 6.", + "notes": "" + }, + "PT_rt7": { + "value": [ + { + "year": 2013, + "value": 0.396 + }, + { + "year": 2014, + "value": 0.396 + }, + { + "year": 2015, + "value": 0.396 + }, + { + "year": 2016, + "value": 0.396 + }, + { + "year": 2017, + "value": 0.396 + }, + { + "year": 2018, + "value": 0.37 }, { "year": 2019, + "value": 0.37 + }, + { + "year": 2026, + "value": 0.396 + } + ], + "title": "Pass-through income tax rate 7", + "type": "float", + "validators": { + "range": { + "min": 0, + "max": 1 + } + }, + "section_1": "Personal Income", + "section_2": "Pass-Through", + "indexable": false, + "indexed": false, + "compatible_data": { + "puf": true, + "cps": true + }, + "description": "The highest tax rate, applied to the portion of income from sole proprietorships, partnerships and S-corporations below tax bracket 7 and above tax bracket 6.", + "notes": "" + }, + "PT_brk7": { + "value": [ + { + "year": 2013, "MARS": "single", "value": 9e+99 }, { - "year": 2019, + "year": 2013, "MARS": "mjoint", "value": 9e+99 }, { - "year": 2019, + "year": 2013, "MARS": "mseparate", "value": 9e+99 }, { - "year": 2019, + "year": 2013, "MARS": "headhh", "value": 9e+99 }, { - "year": 2019, + "year": 2013, "MARS": "widow", "value": 9e+99 }, { - "year": 2020, + "year": 2014, "MARS": "single", "value": 9e+99 }, { - "year": 2020, + "year": 2014, "MARS": "mjoint", "value": 9e+99 }, { - "year": 2020, + "year": 2014, "MARS": "mseparate", "value": 9e+99 }, { - "year": 2020, + "year": 2014, "MARS": "headhh", "value": 9e+99 }, { - "year": 2020, + "year": 2014, "MARS": "widow", "value": 9e+99 }, { - "year": 2021, + "year": 2015, "MARS": "single", "value": 9e+99 }, { - "year": 2021, + "year": 2015, "MARS": "mjoint", "value": 9e+99 }, { - "year": 2021, + "year": 2015, "MARS": "mseparate", "value": 9e+99 }, { - "year": 2021, + "year": 2015, "MARS": "headhh", "value": 9e+99 }, { - "year": 2021, + "year": 2015, "MARS": "widow", "value": 9e+99 }, { - "year": 2022, + "year": 2016, "MARS": "single", "value": 9e+99 }, { - "year": 2022, + "year": 2016, "MARS": "mjoint", "value": 9e+99 }, { - "year": 2022, + "year": 2016, "MARS": "mseparate", "value": 9e+99 }, { - "year": 2022, + "year": 2016, "MARS": "headhh", "value": 9e+99 }, { - "year": 2022, + "year": 2016, "MARS": "widow", "value": 9e+99 }, { - "year": 2023, + "year": 2017, "MARS": "single", "value": 9e+99 }, { - "year": 2023, + "year": 2017, "MARS": "mjoint", "value": 9e+99 }, { - "year": 2023, + "year": 2017, "MARS": "mseparate", "value": 9e+99 }, { - "year": 2023, + "year": 2017, "MARS": "headhh", "value": 9e+99 }, { - "year": 2023, + "year": 2017, "MARS": "widow", "value": 9e+99 }, { - "year": 2024, + "year": 2018, "MARS": "single", "value": 9e+99 }, { - "year": 2024, + "year": 2018, "MARS": "mjoint", "value": 9e+99 }, { - "year": 2024, + "year": 2018, "MARS": "mseparate", "value": 9e+99 }, { - "year": 2024, + "year": 2018, "MARS": "headhh", "value": 9e+99 }, { - "year": 2024, + "year": 2018, "MARS": "widow", "value": 9e+99 }, { - "year": 2025, + "year": 2019, "MARS": "single", "value": 9e+99 }, { - "year": 2025, + "year": 2019, "MARS": "mjoint", "value": 9e+99 }, { - "year": 2025, + "year": 2019, "MARS": "mseparate", "value": 9e+99 }, { - "year": 2025, + "year": 2019, "MARS": "headhh", "value": 9e+99 }, { - "year": 2025, + "year": 2019, "MARS": "widow", "value": 9e+99 }, @@ -15130,30 +11728,6 @@ "year": 2019, "value": 0.2 }, - { - "year": 2020, - "value": 0.2 - }, - { - "year": 2021, - "value": 0.2 - }, - { - "year": 2022, - "value": 0.2 - }, - { - "year": 2023, - "value": 0.2 - }, - { - "year": 2024, - "value": 0.2 - }, - { - "year": 2025, - "value": 0.2 - }, { "year": 2026, "value": 0.0 @@ -15301,209 +11875,59 @@ "value": 0.0 }, { - "year": 2017, - "MARS": "widow", - "value": 0.0 - }, - { - "year": 2018, - "MARS": "single", - "value": 157500.0 - }, - { - "year": 2018, - "MARS": "mjoint", - "value": 315000.0 - }, - { - "year": 2018, - "MARS": "mseparate", - "value": 157500.0 - }, - { - "year": 2018, - "MARS": "headhh", - "value": 157500.0 - }, - { - "year": 2018, - "MARS": "widow", - "value": 315000.0 - }, - { - "year": 2019, - "MARS": "single", - "value": 160700.0 - }, - { - "year": 2019, - "MARS": "mjoint", - "value": 321400.0 - }, - { - "year": 2019, - "MARS": "mseparate", - "value": 160725.0 - }, - { - "year": 2019, - "MARS": "headhh", - "value": 160700.0 - }, - { - "year": 2019, - "MARS": "widow", - "value": 321400.0 - }, - { - "year": 2020, - "MARS": "single", - "value": 163239.06 - }, - { - "year": 2020, - "MARS": "mjoint", - "value": 326478.12 - }, - { - "year": 2020, - "MARS": "mseparate", - "value": 163264.46 - }, - { - "year": 2020, - "MARS": "headhh", - "value": 163239.06 - }, - { - "year": 2020, - "MARS": "widow", - "value": 326478.12 - }, - { - "year": 2021, - "MARS": "single", - "value": 166797.67 - }, - { - "year": 2021, - "MARS": "mjoint", - "value": 333595.34 - }, - { - "year": 2021, - "MARS": "mseparate", - "value": 166823.62 - }, - { - "year": 2021, - "MARS": "headhh", - "value": 166797.67 - }, - { - "year": 2021, - "MARS": "widow", - "value": 333595.34 - }, - { - "year": 2022, - "MARS": "single", - "value": 170583.98 - }, - { - "year": 2022, - "MARS": "mjoint", - "value": 341167.96 - }, - { - "year": 2022, - "MARS": "mseparate", - "value": 170610.52 - }, - { - "year": 2022, - "MARS": "headhh", - "value": 170583.98 - }, - { - "year": 2022, - "MARS": "widow", - "value": 341167.96 - }, - { - "year": 2023, - "MARS": "single", - "value": 174524.47 - }, - { - "year": 2023, - "MARS": "mjoint", - "value": 349048.94 - }, - { - "year": 2023, - "MARS": "mseparate", - "value": 174551.62 - }, - { - "year": 2023, - "MARS": "headhh", - "value": 174524.47 - }, - { - "year": 2023, + "year": 2017, "MARS": "widow", - "value": 349048.94 + "value": 0.0 }, { - "year": 2024, + "year": 2018, "MARS": "single", - "value": 178398.91 + "value": 157500.0 }, { - "year": 2024, + "year": 2018, "MARS": "mjoint", - "value": 356797.82 + "value": 315000.0 }, { - "year": 2024, + "year": 2018, "MARS": "mseparate", - "value": 178426.67 + "value": 157500.0 }, { - "year": 2024, + "year": 2018, "MARS": "headhh", - "value": 178398.91 + "value": 157500.0 }, { - "year": 2024, + "year": 2018, "MARS": "widow", - "value": 356797.82 + "value": 315000.0 }, { - "year": 2025, + "year": 2019, "MARS": "single", - "value": 182252.33 + "value": 160700.0 }, { - "year": 2025, + "year": 2019, "MARS": "mjoint", - "value": 364504.66 + "value": 321400.0 }, { - "year": 2025, + "year": 2019, "MARS": "mseparate", - "value": 182280.68 + "value": 160725.0 }, { - "year": 2025, + "year": 2019, "MARS": "headhh", - "value": 182252.33 + "value": 160700.0 }, { - "year": 2025, + "year": 2019, "MARS": "widow", - "value": 364504.66 + "value": 321400.0 }, { "year": 2026, @@ -15727,156 +12151,6 @@ "MARS": "widow", "value": 100000.0 }, - { - "year": 2020, - "MARS": "single", - "value": 50000.0 - }, - { - "year": 2020, - "MARS": "mjoint", - "value": 100000.0 - }, - { - "year": 2020, - "MARS": "mseparate", - "value": 50000.0 - }, - { - "year": 2020, - "MARS": "headhh", - "value": 50000.0 - }, - { - "year": 2020, - "MARS": "widow", - "value": 100000.0 - }, - { - "year": 2021, - "MARS": "single", - "value": 50000.0 - }, - { - "year": 2021, - "MARS": "mjoint", - "value": 100000.0 - }, - { - "year": 2021, - "MARS": "mseparate", - "value": 50000.0 - }, - { - "year": 2021, - "MARS": "headhh", - "value": 50000.0 - }, - { - "year": 2021, - "MARS": "widow", - "value": 100000.0 - }, - { - "year": 2022, - "MARS": "single", - "value": 50000.0 - }, - { - "year": 2022, - "MARS": "mjoint", - "value": 100000.0 - }, - { - "year": 2022, - "MARS": "mseparate", - "value": 50000.0 - }, - { - "year": 2022, - "MARS": "headhh", - "value": 50000.0 - }, - { - "year": 2022, - "MARS": "widow", - "value": 100000.0 - }, - { - "year": 2023, - "MARS": "single", - "value": 50000.0 - }, - { - "year": 2023, - "MARS": "mjoint", - "value": 100000.0 - }, - { - "year": 2023, - "MARS": "mseparate", - "value": 50000.0 - }, - { - "year": 2023, - "MARS": "headhh", - "value": 50000.0 - }, - { - "year": 2023, - "MARS": "widow", - "value": 100000.0 - }, - { - "year": 2024, - "MARS": "single", - "value": 50000.0 - }, - { - "year": 2024, - "MARS": "mjoint", - "value": 100000.0 - }, - { - "year": 2024, - "MARS": "mseparate", - "value": 50000.0 - }, - { - "year": 2024, - "MARS": "headhh", - "value": 50000.0 - }, - { - "year": 2024, - "MARS": "widow", - "value": 100000.0 - }, - { - "year": 2025, - "MARS": "single", - "value": 50000.0 - }, - { - "year": 2025, - "MARS": "mjoint", - "value": 100000.0 - }, - { - "year": 2025, - "MARS": "mseparate", - "value": 50000.0 - }, - { - "year": 2025, - "MARS": "headhh", - "value": 50000.0 - }, - { - "year": 2025, - "MARS": "widow", - "value": 100000.0 - }, { "year": 2026, "MARS": "single", @@ -15952,30 +12226,6 @@ "year": 2019, "value": 0.5 }, - { - "year": 2020, - "value": 0.5 - }, - { - "year": 2021, - "value": 0.5 - }, - { - "year": 2022, - "value": 0.5 - }, - { - "year": 2023, - "value": 0.5 - }, - { - "year": 2024, - "value": 0.5 - }, - { - "year": 2025, - "value": 0.5 - }, { "year": 2026, "value": 0.0 @@ -16030,30 +12280,6 @@ "year": 2019, "value": 0.25 }, - { - "year": 2020, - "value": 0.25 - }, - { - "year": 2021, - "value": 0.25 - }, - { - "year": 2022, - "value": 0.25 - }, - { - "year": 2023, - "value": 0.25 - }, - { - "year": 2024, - "value": 0.25 - }, - { - "year": 2025, - "value": 0.25 - }, { "year": 2026, "value": 0.0 @@ -16093,43 +12319,19 @@ "value": 0.0 }, { - "year": 2016, - "value": 0.0 - }, - { - "year": 2017, - "value": 0.0 - }, - { - "year": 2018, - "value": 0.025 - }, - { - "year": 2019, - "value": 0.025 - }, - { - "year": 2020, - "value": 0.025 - }, - { - "year": 2021, - "value": 0.025 - }, - { - "year": 2022, - "value": 0.025 + "year": 2016, + "value": 0.0 }, { - "year": 2023, - "value": 0.025 + "year": 2017, + "value": 0.0 }, { - "year": 2024, + "year": 2018, "value": 0.025 }, { - "year": 2025, + "year": 2019, "value": 0.025 }, { @@ -16333,156 +12535,6 @@ "MARS": "widow", "value": 111700.0 }, - { - "year": 2020, - "MARS": "single", - "value": 72832.86 - }, - { - "year": 2020, - "MARS": "mjoint", - "value": 113464.86 - }, - { - "year": 2020, - "MARS": "mseparate", - "value": 56732.43 - }, - { - "year": 2020, - "MARS": "headhh", - "value": 72832.86 - }, - { - "year": 2020, - "MARS": "widow", - "value": 113464.86 - }, - { - "year": 2021, - "MARS": "single", - "value": 74420.62 - }, - { - "year": 2021, - "MARS": "mjoint", - "value": 115938.39 - }, - { - "year": 2021, - "MARS": "mseparate", - "value": 57969.2 - }, - { - "year": 2021, - "MARS": "headhh", - "value": 74420.62 - }, - { - "year": 2021, - "MARS": "widow", - "value": 115938.39 - }, - { - "year": 2022, - "MARS": "single", - "value": 76109.96 - }, - { - "year": 2022, - "MARS": "mjoint", - "value": 118570.2 - }, - { - "year": 2022, - "MARS": "mseparate", - "value": 59285.1 - }, - { - "year": 2022, - "MARS": "headhh", - "value": 76109.96 - }, - { - "year": 2022, - "MARS": "widow", - "value": 118570.2 - }, - { - "year": 2023, - "MARS": "single", - "value": 77868.1 - }, - { - "year": 2023, - "MARS": "mjoint", - "value": 121309.17 - }, - { - "year": 2023, - "MARS": "mseparate", - "value": 60654.58 - }, - { - "year": 2023, - "MARS": "headhh", - "value": 77868.1 - }, - { - "year": 2023, - "MARS": "widow", - "value": 121309.17 - }, - { - "year": 2024, - "MARS": "single", - "value": 79596.78 - }, - { - "year": 2024, - "MARS": "mjoint", - "value": 124002.23 - }, - { - "year": 2024, - "MARS": "mseparate", - "value": 62001.12 - }, - { - "year": 2024, - "MARS": "headhh", - "value": 79596.78 - }, - { - "year": 2024, - "MARS": "widow", - "value": 124002.23 - }, - { - "year": 2025, - "MARS": "single", - "value": 81316.07 - }, - { - "year": 2025, - "MARS": "mjoint", - "value": 126680.68 - }, - { - "year": 2025, - "MARS": "mseparate", - "value": 63340.34 - }, - { - "year": 2025, - "MARS": "headhh", - "value": 81316.07 - }, - { - "year": 2025, - "MARS": "widow", - "value": 126680.68 - }, { "year": 2026, "MARS": "single", @@ -16704,182 +12756,32 @@ { "year": 2018, "MARS": "widow", - "value": 1000000.0 - }, - { - "year": 2019, - "MARS": "single", - "value": 510300.0 - }, - { - "year": 2019, - "MARS": "mjoint", - "value": 1020600.0 - }, - { - "year": 2019, - "MARS": "mseparate", - "value": 510300.0 - }, - { - "year": 2019, - "MARS": "headhh", - "value": 510300.0 - }, - { - "year": 2019, - "MARS": "widow", - "value": 1020600.0 - }, - { - "year": 2020, - "MARS": "single", - "value": 518362.74 - }, - { - "year": 2020, - "MARS": "mjoint", - "value": 1036725.48 - }, - { - "year": 2020, - "MARS": "mseparate", - "value": 518362.74 - }, - { - "year": 2020, - "MARS": "headhh", - "value": 518362.74 - }, - { - "year": 2020, - "MARS": "widow", - "value": 1036725.48 - }, - { - "year": 2021, - "MARS": "single", - "value": 529663.05 - }, - { - "year": 2021, - "MARS": "mjoint", - "value": 1059326.1 - }, - { - "year": 2021, - "MARS": "mseparate", - "value": 529663.05 - }, - { - "year": 2021, - "MARS": "headhh", - "value": 529663.05 - }, - { - "year": 2021, - "MARS": "widow", - "value": 1059326.1 - }, - { - "year": 2022, - "MARS": "single", - "value": 541686.4 - }, - { - "year": 2022, - "MARS": "mjoint", - "value": 1083372.8 - }, - { - "year": 2022, - "MARS": "mseparate", - "value": 541686.4 - }, - { - "year": 2022, - "MARS": "headhh", - "value": 541686.4 - }, - { - "year": 2022, - "MARS": "widow", - "value": 1083372.8 - }, - { - "year": 2023, - "MARS": "single", - "value": 554199.35 - }, - { - "year": 2023, - "MARS": "mjoint", - "value": 1108398.71 - }, - { - "year": 2023, - "MARS": "mseparate", - "value": 554199.35 - }, - { - "year": 2023, - "MARS": "headhh", - "value": 554199.35 - }, - { - "year": 2023, - "MARS": "widow", - "value": 1108398.71 - }, - { - "year": 2024, - "MARS": "single", - "value": 566502.58 - }, - { - "year": 2024, - "MARS": "mjoint", - "value": 1133005.16 - }, - { - "year": 2024, - "MARS": "mseparate", - "value": 566502.58 - }, - { - "year": 2024, - "MARS": "headhh", - "value": 566502.58 - }, - { - "year": 2024, - "MARS": "widow", - "value": 1133005.16 + "value": 1000000.0 }, { - "year": 2025, + "year": 2019, "MARS": "single", - "value": 578739.04 + "value": 510300.0 }, { - "year": 2025, + "year": 2019, "MARS": "mjoint", - "value": 1157478.07 + "value": 1020600.0 }, { - "year": 2025, + "year": 2019, "MARS": "mseparate", - "value": 578739.04 + "value": 510300.0 }, { - "year": 2025, + "year": 2019, "MARS": "headhh", - "value": 578739.04 + "value": 510300.0 }, { - "year": 2025, + "year": 2019, "MARS": "widow", - "value": 1157478.07 + "value": 1020600.0 }, { "year": 2026, @@ -17134,30 +13036,6 @@ "year": 2019, "value": 733700.0 }, - { - "year": 2020, - "value": 745292.46 - }, - { - "year": 2021, - "value": 761539.84 - }, - { - "year": 2022, - "value": 778826.79 - }, - { - "year": 2023, - "value": 796817.69 - }, - { - "year": 2024, - "value": 814507.04 - }, - { - "year": 2025, - "value": 832100.39 - }, { "year": 2026, "value": 300574.0 @@ -17290,30 +13168,6 @@ "year": 2019, "value": 2000.0 }, - { - "year": 2020, - "value": 2000.0 - }, - { - "year": 2021, - "value": 2000.0 - }, - { - "year": 2022, - "value": 2000.0 - }, - { - "year": 2023, - "value": 2000.0 - }, - { - "year": 2024, - "value": 2000.0 - }, - { - "year": 2025, - "value": 2000.0 - }, { "year": 2026, "value": 1000.0 @@ -17541,156 +13395,6 @@ "MARS": "widow", "value": 400000.0 }, - { - "year": 2020, - "MARS": "single", - "value": 200000.0 - }, - { - "year": 2020, - "MARS": "mjoint", - "value": 400000.0 - }, - { - "year": 2020, - "MARS": "mseparate", - "value": 200000.0 - }, - { - "year": 2020, - "MARS": "headhh", - "value": 200000.0 - }, - { - "year": 2020, - "MARS": "widow", - "value": 400000.0 - }, - { - "year": 2021, - "MARS": "single", - "value": 200000.0 - }, - { - "year": 2021, - "MARS": "mjoint", - "value": 400000.0 - }, - { - "year": 2021, - "MARS": "mseparate", - "value": 200000.0 - }, - { - "year": 2021, - "MARS": "headhh", - "value": 200000.0 - }, - { - "year": 2021, - "MARS": "widow", - "value": 400000.0 - }, - { - "year": 2022, - "MARS": "single", - "value": 200000.0 - }, - { - "year": 2022, - "MARS": "mjoint", - "value": 400000.0 - }, - { - "year": 2022, - "MARS": "mseparate", - "value": 200000.0 - }, - { - "year": 2022, - "MARS": "headhh", - "value": 200000.0 - }, - { - "year": 2022, - "MARS": "widow", - "value": 400000.0 - }, - { - "year": 2023, - "MARS": "single", - "value": 200000.0 - }, - { - "year": 2023, - "MARS": "mjoint", - "value": 400000.0 - }, - { - "year": 2023, - "MARS": "mseparate", - "value": 200000.0 - }, - { - "year": 2023, - "MARS": "headhh", - "value": 200000.0 - }, - { - "year": 2023, - "MARS": "widow", - "value": 400000.0 - }, - { - "year": 2024, - "MARS": "single", - "value": 200000.0 - }, - { - "year": 2024, - "MARS": "mjoint", - "value": 400000.0 - }, - { - "year": 2024, - "MARS": "mseparate", - "value": 200000.0 - }, - { - "year": 2024, - "MARS": "headhh", - "value": 200000.0 - }, - { - "year": 2024, - "MARS": "widow", - "value": 400000.0 - }, - { - "year": 2025, - "MARS": "single", - "value": 200000.0 - }, - { - "year": 2025, - "MARS": "mjoint", - "value": 400000.0 - }, - { - "year": 2025, - "MARS": "mseparate", - "value": 200000.0 - }, - { - "year": 2025, - "MARS": "headhh", - "value": 200000.0 - }, - { - "year": 2025, - "MARS": "widow", - "value": 400000.0 - }, { "year": 2026, "MARS": "single", @@ -17870,30 +13574,6 @@ "year": 2019, "value": 500.0 }, - { - "year": 2020, - "value": 500.0 - }, - { - "year": 2021, - "value": 500.0 - }, - { - "year": 2022, - "value": 500.0 - }, - { - "year": 2023, - "value": 500.0 - }, - { - "year": 2024, - "value": 500.0 - }, - { - "year": 2025, - "value": 500.0 - }, { "year": 2026, "value": 0.0 @@ -19101,30 +14781,6 @@ "year": 2019, "value": 2500.0 }, - { - "year": 2020, - "value": 2500.0 - }, - { - "year": 2021, - "value": 2500.0 - }, - { - "year": 2022, - "value": 2500.0 - }, - { - "year": 2023, - "value": 2500.0 - }, - { - "year": 2024, - "value": 2500.0 - }, - { - "year": 2025, - "value": 2500.0 - }, { "year": 2026, "value": 3000.0 diff --git a/taxcalc/reforms/2017_law.json b/taxcalc/reforms/2017_law.json index ee6e1ed9c..4df0a8f44 100644 --- a/taxcalc/reforms/2017_law.json +++ b/taxcalc/reforms/2017_law.json @@ -26,7 +26,7 @@ // NOTE: this reform projects pre-TCJA 2017 parameter values forward using the // unchained CPI-U price index. { - "CPI_offset": {"2017": 0.0025}, + "CPI_offset": {"2016": 0}, "II_rt1": {"2018": 0.10}, "II_brk1": {"2017": [9325, 18650, 9325, 13350, 18650]}, "II_rt2": {"2018": 0.15}, From cfcab584396e90836c1ba82fd57a0eff34397a6d Mon Sep 17 00:00:00 2001 From: Peter-Metz Date: Thu, 30 Apr 2020 17:37:37 -0400 Subject: [PATCH 02/12] update tests --- taxcalc/tests/test_policy.py | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/taxcalc/tests/test_policy.py b/taxcalc/tests/test_policy.py index a14046b1e..af6e7ddd6 100644 --- a/taxcalc/tests/test_policy.py +++ b/taxcalc/tests/test_policy.py @@ -896,6 +896,11 @@ def test_index_offset_reform(): Test a reform that includes both a change in CPI_offset and a change in a variable's indexed status in the same year. """ + # create policy0 to extract inflation rates before any CPI_offset + policy0 = Policy() + policy0.implement_reform({'CPI_offset': {2017: 0}}) + cpiu_rates = policy0.inflation_rates() + reform1 = {'CTC_c-indexed': {2020: True}} policy1 = Policy() policy1.implement_reform(reform1) @@ -920,7 +925,8 @@ def test_index_offset_reform(): assert pvalue2[2021] > pvalue2[2020] # ... calculate expected pvalue2[2021] from offset and pvalue1 values indexrate1 = pvalue1[2021] / pvalue1[2020] - 1. - expindexrate = indexrate1 + offset + syear = Policy.JSON_START_YEAR + expindexrate = cpiu_rates[2020 - syear] + offset expvalue = round(pvalue2[2020] * (1. + expindexrate), 2) # ... compare expected value with actual value of pvalue2 for 2021 assert np.allclose([expvalue], [pvalue2[2021]]) @@ -931,10 +937,12 @@ def test_cpi_offset_affect_on_prior_years(): Test that CPI_offset does not have affect on inflation rates in earlier years. """ - reform = {'CPI_offset': {2022: -0.005}} + reform1 = {'CPI_offset': {2022: 0}} + reform2 = {'CPI_offset': {2022: -0.005}} p1 = Policy() p2 = Policy() - p2.implement_reform(reform) + p1.implement_reform(reform1) + p2.implement_reform(reform2) start_year = p1.start_year p1_rates = np.array(p1.inflation_rates()) @@ -1167,6 +1175,7 @@ def test_apply_cpi_offset(self): cmp_policy_objs(pol1, pol2) pol0 = Policy() + pol0.implement_reform({"CPI_offset": {2021: 0}}) init_rates = pol0.inflation_rates() new_rates = pol2.inflation_rates() @@ -1367,6 +1376,7 @@ def test_adj_CPI_offset_and_index_status(self): # Check no difference prior to 2020 pol0 = Policy() + pol0.implement_reform({"CPI_offset": {2020: 0}}) cmp_policy_objs( pol0, pol2, From 54c3ded1bd6970f5489afe8c0c0fb1efe6dd146e Mon Sep 17 00:00:00 2001 From: Peter-Metz Date: Thu, 30 Apr 2020 17:39:27 -0400 Subject: [PATCH 03/12] adjust handling of TCJA reverting params during CPI_offset --- taxcalc/parameters.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/taxcalc/parameters.py b/taxcalc/parameters.py index 3806e2302..c533733bd 100644 --- a/taxcalc/parameters.py +++ b/taxcalc/parameters.py @@ -208,8 +208,6 @@ def adjust_with_indexing(self, params_or_path, **kwargs): super().adjust(init_vals, **kwargs) # 1.b For all others, these are years after last_known_year. - init_vals = {} - to_delete = {} last_known_year = max(cpi_min_year["year"], self._last_known_year) # calculate 2026 value, using new inflation rates, for parameters # that revert to their pre-TCJA values. @@ -230,8 +228,10 @@ def adjust_with_indexing(self, params_or_path, **kwargs): for year in range(pyear, fyear): final_ifactor *= 1 + \ self._inflation_rates[year - self.start_year] + long_param_vals = {} # compute final year parameter value for param in long_params: + long_param_vals[param] = {} # only revert param in 2026 if it's not in revision if params.get(param) is None: list_vals = [] @@ -243,11 +243,12 @@ def adjust_with_indexing(self, params_or_path, **kwargs): for idx in range(0, len(list_vals)): val = min(9e99, round(list_vals[idx] * final_ifactor, 0)) new_vals.append(val) - self._update( - {param: {fyear: new_vals}}, False, True - ) + long_param_vals[param][fyear] = new_vals else: pass + self._update(long_param_vals, False, True) + init_vals = {} + to_delete = {} for param in self._data: if ( param in params or From 4ba0524008b1e56d2b68d74b9965de331db970a5 Mon Sep 17 00:00:00 2001 From: Peter-Metz Date: Mon, 4 May 2020 08:31:08 -0400 Subject: [PATCH 04/12] pass tests and write new test --- taxcalc/tests/reforms.json | 2 +- taxcalc/tests/test_policy.py | 35 ++++++++++++++++++++++++++++++++++- 2 files changed, 35 insertions(+), 2 deletions(-) diff --git a/taxcalc/tests/reforms.json b/taxcalc/tests/reforms.json index ea9a2b79b..ff00ba916 100644 --- a/taxcalc/tests/reforms.json +++ b/taxcalc/tests/reforms.json @@ -554,7 +554,7 @@ "56": { "baseline": "policy_current_law.json", "start_year": 2017, - "value": {"CPI_offset": 0.0025}, + "value": {"CPI_offset": 0}, "name": "Repeal TCJA chained CPI indexing", "output_type": "iitax", "compare_with": {} diff --git a/taxcalc/tests/test_policy.py b/taxcalc/tests/test_policy.py index af6e7ddd6..b40e35e81 100644 --- a/taxcalc/tests/test_policy.py +++ b/taxcalc/tests/test_policy.py @@ -899,7 +899,7 @@ def test_index_offset_reform(): # create policy0 to extract inflation rates before any CPI_offset policy0 = Policy() policy0.implement_reform({'CPI_offset': {2017: 0}}) - cpiu_rates = policy0.inflation_rates() + cpiu_rates = policy0.inflation_rates() reform1 = {'CTC_c-indexed': {2020: True}} policy1 = Policy() @@ -961,6 +961,39 @@ def test_cpi_offset_affect_on_prior_years(): ) +def test_cpi_offset_on_reverting_params(): + """ + Test that params that revert to their pre-TCJA values + in 2026 revert if a CPI_offset is specified. + """ + reform0 = {'CPI_offset': {2020: -0.001}} + reform1 = {'STD': {2017: [6350, 12700, 6350, 9350, 12700]}, + 'CPI_offset': {2020: -0.001}} + reform2 = {'STD': {2020: [10000, 20000, 10000, 10000, 20000]}, + 'CPI_offset': {2020: -0.001}} + + p0 = Policy() + p1 = Policy() + p2 = Policy() + p0.implement_reform(reform0) + p1.implement_reform(reform1) + p2.implement_reform(reform2) + + ryear = 2026 + syear = Policy.JSON_START_YEAR + + # STD was reverted in 2026 + # atol=0.5 because ppp.py rounds params to nearest int + assert np.allclose( + p0._STD[ryear - syear], + p1._STD[ryear - syear], atol=0.5) + + # STD was not reverted in 2026 if included in revision + assert np.allclose( + p1._STD[ryear - syear], + p2._STD[ryear - syear], atol=0.5) == False + + class TestAdjust: """ Test update and indexing rules as defined in the Parameters docstring. From 6d9bada464d7792aa28ab92f7fb823b4d8ea0efe Mon Sep 17 00:00:00 2001 From: Peter-Metz Date: Mon, 4 May 2020 08:31:47 -0400 Subject: [PATCH 05/12] change CPI_offset to 0 in 2017_law --- taxcalc/reforms/2017_law.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/taxcalc/reforms/2017_law.json b/taxcalc/reforms/2017_law.json index 4df0a8f44..03d933a8a 100644 --- a/taxcalc/reforms/2017_law.json +++ b/taxcalc/reforms/2017_law.json @@ -26,7 +26,7 @@ // NOTE: this reform projects pre-TCJA 2017 parameter values forward using the // unchained CPI-U price index. { - "CPI_offset": {"2016": 0}, + "CPI_offset": {"2017": 0}, "II_rt1": {"2018": 0.10}, "II_brk1": {"2017": [9325, 18650, 9325, 13350, 18650]}, "II_rt2": {"2018": 0.15}, From be3bdf48e0c7fd06cc72c80f28a0b7fa5feb4924 Mon Sep 17 00:00:00 2001 From: Peter-Metz Date: Thu, 7 May 2020 14:50:57 -0400 Subject: [PATCH 06/12] update docstring --- taxcalc/parameters.py | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/taxcalc/parameters.py b/taxcalc/parameters.py index 6572a81f0..d8ae9e8ab 100644 --- a/taxcalc/parameters.py +++ b/taxcalc/parameters.py @@ -150,12 +150,16 @@ def adjust_with_indexing(self, params_or_path, **kwargs): Custom adjust method that handles special indexing logic. The logic is: - 1. If "CPI_offset" is adjusted, revert all values of indexed parameters - to the 'known' values: + 1. If "CPI_offset" is adjusted, first set CPI_offset to zero before + implementing the adjusted CPI_offset to avoid stacking adjustments. + Then, revert all values of indexed parameters to the 'known' values: a. The current values of parameters that are being adjusted are deleted after the first year in which CPI_offset is adjusted. b. The current values of parameters that are not being adjusted - (i.e. are not in params) are deleted after the last known year. + (i.e. are not in params) are deleted after the last known year, + with the exception of parameters that revert to their pre-TCJA + values in 2026. Instead, these (2026) parameter values are + recalculated using the new inflation rates. After the 'unknown' values have been deleted, the last known value is extrapolated through the budget window. If there are indexed parameters in the adjustment, they will be included in the final @@ -177,12 +181,6 @@ def adjust_with_indexing(self, params_or_path, **kwargs): parameters. Notable side-effects: - - All values of indexed parameters, including default values, are - wiped out after the first year in which the "CPI_offset" is - changed. This is only necessary because Tax-Calculator - hard-codes inflated values. If Tax-Calculator only hard-coded - values that were changed for non-inflation related reasons, - then this would not be necessary for default values. - All values of a parameter whose indexed status is adjusted are wiped out after the year in which the value is adjusted for the same hard-coding reason. @@ -284,7 +282,10 @@ def adjust_with_indexing(self, params_or_path, **kwargs): for idx in range(0, len(list_vals)): val = min(9e99, round(list_vals[idx] * final_ifactor, 0)) new_vals.append(val) - long_param_vals[param][fyear] = new_vals + if len(list_vals) == 1: + long_param_vals[param][fyear] = new_vals[0] + else: + long_param_vals[param][fyear] = new_vals else: pass self._update(long_param_vals, False, True) From 063c91c60100cf3d762cf7e5b520b413084da289 Mon Sep 17 00:00:00 2001 From: Peter-Metz Date: Thu, 7 May 2020 15:03:54 -0400 Subject: [PATCH 07/12] pep8 --- taxcalc/parameters.py | 14 +++++++++----- taxcalc/tests/test_policy.py | 4 ++-- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/taxcalc/parameters.py b/taxcalc/parameters.py index d8ae9e8ab..354547cd2 100644 --- a/taxcalc/parameters.py +++ b/taxcalc/parameters.py @@ -158,7 +158,7 @@ def adjust_with_indexing(self, params_or_path, **kwargs): b. The current values of parameters that are not being adjusted (i.e. are not in params) are deleted after the last known year, with the exception of parameters that revert to their pre-TCJA - values in 2026. Instead, these (2026) parameter values are + values in 2026. Instead, these (2026) parameter values are recalculated using the new inflation rates. After the 'unknown' values have been deleted, the last known value is extrapolated through the budget window. If there are indexed @@ -214,10 +214,12 @@ def adjust_with_indexing(self, params_or_path, **kwargs): rate_adjustment_vals = self.select_gte( "CPI_offset", year=cpi_min_year["year"] ) - # "Undo" any existing CPI_offset for years after CPI_offset has been updated. + # "Undo" any existing CPI_offset for years after CPI_offset has + # been updated. self._inflation_rates = self._inflation_rates[ :cpi_min_year["year"] - self.start_year - ] + self._gfactors.price_inflation_rates(cpi_min_year["year"], self.LAST_BUDGET_YEAR) + ] + self._gfactors.price_inflation_rates( + cpi_min_year["year"], self.LAST_BUDGET_YEAR) # Then apply new CPI_offset values to inflation rates for cpi_vo in rate_adjustment_vals: @@ -261,7 +263,8 @@ def adjust_with_indexing(self, params_or_path, **kwargs): 'ID_ps', 'ID_AllTaxes_c'] final_ifactor = 1.0 pyear = 2017 # prior year before TCJA first implemented - fyear = 2026 # final year in which parameter values revert to pre-TCJA values + fyear = 2026 # final year in which parameter values revert to + # pre-TCJA values # construct final-year inflation factor from prior year # NOTE: pvalue[t+1] = pvalue[t] * ( 1 + irate[t] ) for year in range(pyear, fyear): @@ -280,7 +283,8 @@ def adjust_with_indexing(self, params_or_path, **kwargs): new_vals = [] # use final_ifactor to inflate from 2017 to 2026 for idx in range(0, len(list_vals)): - val = min(9e99, round(list_vals[idx] * final_ifactor, 0)) + val = min(9e99, round( + list_vals[idx] * final_ifactor, 0)) new_vals.append(val) if len(list_vals) == 1: long_param_vals[param][fyear] = new_vals[0] diff --git a/taxcalc/tests/test_policy.py b/taxcalc/tests/test_policy.py index 19ee10400..a1675beaa 100644 --- a/taxcalc/tests/test_policy.py +++ b/taxcalc/tests/test_policy.py @@ -993,9 +993,9 @@ def test_cpi_offset_on_reverting_params(): p1._STD[ryear - syear], atol=0.5) # STD was not reverted in 2026 if included in revision - assert np.allclose( + assert not np.allclose( p1._STD[ryear - syear], - p2._STD[ryear - syear], atol=0.5) == False + p2._STD[ryear - syear], atol=0.5) class TestAdjust: From dec066c4439a0d0ad95bdd88941b9c2610ee56a2 Mon Sep 17 00:00:00 2001 From: Peter-Metz Date: Fri, 26 Jun 2020 12:16:45 -0400 Subject: [PATCH 08/12] modify paramtools syntax --- taxcalc/parameters.py | 33 ++++++++++++++++----------------- 1 file changed, 16 insertions(+), 17 deletions(-) diff --git a/taxcalc/parameters.py b/taxcalc/parameters.py index 354547cd2..b4a781108 100644 --- a/taxcalc/parameters.py +++ b/taxcalc/parameters.py @@ -270,29 +270,28 @@ def adjust_with_indexing(self, params_or_path, **kwargs): for year in range(pyear, fyear): final_ifactor *= 1 + \ self._inflation_rates[year - self.start_year] - long_param_vals = {} + + long_param_vals = defaultdict(list) # compute final year parameter value for param in long_params: - long_param_vals[param] = {} # only revert param in 2026 if it's not in revision if params.get(param) is None: - list_vals = [] # grab param values from 2017 - for dim in self.select_eq(param, year=pyear): - list_vals.append(dim['value']) - new_vals = [] + vos = self.select_eq(param, year=pyear) # use final_ifactor to inflate from 2017 to 2026 - for idx in range(0, len(list_vals)): - val = min(9e99, round( - list_vals[idx] * final_ifactor, 0)) - new_vals.append(val) - if len(list_vals) == 1: - long_param_vals[param][fyear] = new_vals[0] - else: - long_param_vals[param][fyear] = new_vals - else: - pass - self._update(long_param_vals, False, True) + for vo in vos: + long_param_vals[param].append( + # Create new dict to avoid modifying the original + dict( + vo, + value=min(9e99, round( + vo["value"] * final_ifactor, 0)), + year=fyear, + ) + ) + needs_reset.append(param) + super().adjust(long_param_vals, **kwargs) + init_vals = {} to_delete = {} for param in self._data: From 8ad6a2e3353331b533664c78936120d19783d28a Mon Sep 17 00:00:00 2001 From: Peter-Metz Date: Fri, 10 Jul 2020 09:14:25 -0400 Subject: [PATCH 09/12] CPI_offset -> parameter_indexing_CPI_offset --- taxcalc/calcfunctions.py | 9 +++--- taxcalc/parameters.py | 48 ++++++++++++++++++------------- taxcalc/policy.py | 6 ++-- taxcalc/policy_current_law.json | 2 +- taxcalc/reforms/2017_law.json | 4 +-- taxcalc/reforms/TCJA.json | 4 +-- taxcalc/tests/reforms.json | 2 +- taxcalc/tests/test_policy.py | 50 ++++++++++++++++++--------------- 8 files changed, 69 insertions(+), 56 deletions(-) diff --git a/taxcalc/calcfunctions.py b/taxcalc/calcfunctions.py index eb08d982a..c73b23b6a 100644 --- a/taxcalc/calcfunctions.py +++ b/taxcalc/calcfunctions.py @@ -3,10 +3,11 @@ These functions are imported into the Calculator class. -Note: the CPI_offset policy parameter is the only policy parameter that -does not appear here; it is used in the policy.py file to possibly adjust -the price inflation rate used to index policy parameters (as would be done -in a reform that introduces chained-CPI indexing). +Note: the parameter_indexing_CPI_offset policy parameter is the only +policy parameter that does not appear here; it is used in the policy.py +file to possibly adjust the price inflation rate used to index policy +parameters (as would be done in a reform that introduces chained-CPI +indexing). """ # CODING-STYLE CHECKS: # pycodestyle calcfunctions.py diff --git a/taxcalc/parameters.py b/taxcalc/parameters.py index b4a781108..8dffa10f3 100644 --- a/taxcalc/parameters.py +++ b/taxcalc/parameters.py @@ -150,11 +150,13 @@ def adjust_with_indexing(self, params_or_path, **kwargs): Custom adjust method that handles special indexing logic. The logic is: - 1. If "CPI_offset" is adjusted, first set CPI_offset to zero before - implementing the adjusted CPI_offset to avoid stacking adjustments. - Then, revert all values of indexed parameters to the 'known' values: + 1. If "parameter_indexing_CPI_offset" is adjusted, first set + parameter_indexing_CPI_offset to zero before implementing the + adjusted parameter_indexing_CPI_offset to avoid stacking adjustments. + Then, revert all values of indexed parameters to the 'known' values: a. The current values of parameters that are being adjusted are - deleted after the first year in which CPI_offset is adjusted. + deleted after the first year in which + parameter_indexing_CPI_offset is adjusted. b. The current values of parameters that are not being adjusted (i.e. are not in params) are deleted after the last known year, with the exception of parameters that revert to their pre-TCJA @@ -176,7 +178,7 @@ def adjust_with_indexing(self, params_or_path, **kwargs): parameter through the remaining years or until the -indexed status changes again. 3. Update all parameters that are not indexing related, i.e. they are - not "CPI_offset" or do not end with "-indexed". + not "parameter_indexing_CPI_offset" or do not end with "-indexed". 4. Return parsed adjustment with all adjustments, including "-indexed" parameters. @@ -194,34 +196,40 @@ def adjust_with_indexing(self, params_or_path, **kwargs): params = self.read_params(params_or_path) - # Check if CPI_offset is adjusted. If so, reset values of all indexed - # parameters after year where CPI_offset is changed. If CPI_offset is - # changed multiple times, then reset values after the first year in - # which the CPI_offset is changed. + # Check if parameter_indexing_CPI_offset is adjusted. If so, reset + # values of all indexed parameters after year where + # parameter_indexing_CPI_offset is changed. If + # parameter_indexing_CPI_offset is changed multiple times, then + # reset values after the first year in which the + # parameter_indexing_CPI_offset is changed. needs_reset = [] - if params.get("CPI_offset") is not None: - # Update CPI_offset with new value. + if params.get("parameter_indexing_CPI_offset") is not None: + # Update parameter_indexing_CPI_offset with new value. cpi_adj = super().adjust( - {"CPI_offset": params["CPI_offset"]}, **kwargs + {"parameter_indexing_CPI_offset": params["parameter_indexing_CPI_offset"]}, **kwargs ) - # turn off extend now that CPI_offset has been updated. + # turn off extend now that parameter_indexing_CPI_offset + # has been updated. self.label_to_extend = None - # Get first year in which CPI_offset is changed. + # Get first year in which parameter_indexing_CPI_offset + # is changed. cpi_min_year = min( - cpi_adj["CPI_offset"], key=lambda vo: vo["year"] + cpi_adj["parameter_indexing_CPI_offset"], key=lambda vo: vo["year"] ) rate_adjustment_vals = self.select_gte( - "CPI_offset", year=cpi_min_year["year"] + "parameter_indexing_CPI_offset", year=cpi_min_year["year"] ) - # "Undo" any existing CPI_offset for years after CPI_offset has + # "Undo" any existing parameter_indexing_CPI_offset for + # years after parameter_indexing_CPI_offset has # been updated. self._inflation_rates = self._inflation_rates[ :cpi_min_year["year"] - self.start_year ] + self._gfactors.price_inflation_rates( cpi_min_year["year"], self.LAST_BUDGET_YEAR) - # Then apply new CPI_offset values to inflation rates + # Then apply new parameter_indexing_CPI_offset values to + # inflation rates for cpi_vo in rate_adjustment_vals: self._inflation_rates[ cpi_vo["year"] - self.start_year @@ -231,7 +239,7 @@ def adjust_with_indexing(self, params_or_path, **kwargs): init_vals = {} to_delete = {} for param in params: - if param == "CPI_offset" or param in self._wage_indexed: + if param == "parameter_indexing_CPI_offset" or param in self._wage_indexed: continue if param.endswith("-indexed"): param = param.split("-indexed")[0] @@ -297,7 +305,7 @@ def adjust_with_indexing(self, params_or_path, **kwargs): for param in self._data: if ( param in params or - param == "CPI_offset" or + param == "parameter_indexing_CPI_offset" or param in self._wage_indexed ): continue diff --git a/taxcalc/policy.py b/taxcalc/policy.py index d2a7a9d18..c575f9fbe 100644 --- a/taxcalc/policy.py +++ b/taxcalc/policy.py @@ -124,9 +124,9 @@ def parameter_list(): def set_rates(self): """Initialize taxcalc indexing data.""" - cpi_vals = [vo["value"] for vo in self._data["CPI_offset"]["value"]] - # extend cpi_offset values through budget window if they - # have not been extended already. + cpi_vals = [vo["value"] for vo in self._data["parameter_indexing_CPI_offset"]["value"]] + # extend parameter_indexing_CPI_offset values through budget window + # if they have not been extended already. cpi_vals = cpi_vals + cpi_vals[-1:] * ( self.end_year - self.start_year + 1 - len(cpi_vals) ) diff --git a/taxcalc/policy_current_law.json b/taxcalc/policy_current_law.json index c97c13502..df948026b 100644 --- a/taxcalc/policy_current_law.json +++ b/taxcalc/policy_current_law.json @@ -75,7 +75,7 @@ } } }, - "CPI_offset": { + "parameter_indexing_CPI_offset": { "title": "Decimal offset ADDED to unchained CPI to get parameter indexing rate", "description": "Values are zero before 2017; reforms that introduce indexing with chained CPI would have values around -0.0025 beginning in the year before the first year policy parameters will have values computed with chained CPI.", "notes": "See April 2013 CBO report entitled 'What Would Be the Effect on the Deficit of Using the Chained CPI to Index Benefit Programs and the Tax Code?', which includes this: 'The chained CPI grows more slowly than the traditional CPI does: an average of about 0.25 percentage points more slowly per year over the past decade.' ", diff --git a/taxcalc/reforms/2017_law.json b/taxcalc/reforms/2017_law.json index 03d933a8a..caeee6f51 100644 --- a/taxcalc/reforms/2017_law.json +++ b/taxcalc/reforms/2017_law.json @@ -13,7 +13,7 @@ // - Set pre-TCJA above the line deduction policy (7) // - Set pre-TCJA itemized deduction policy (8) // Reform_Parameter_Map: -// - 0: CPI_offset +// - 0: parameter_indexing_CPI_offset // - 1: II_rt?/II_brk? and PT_rt?/PT_brk? // - 2: six PT_qbid_* parameters // - 3: STD and II_em parameters @@ -26,7 +26,7 @@ // NOTE: this reform projects pre-TCJA 2017 parameter values forward using the // unchained CPI-U price index. { - "CPI_offset": {"2017": 0}, + "parameter_indexing_CPI_offset": {"2017": 0}, "II_rt1": {"2018": 0.10}, "II_brk1": {"2017": [9325, 18650, 9325, 13350, 18650]}, "II_rt2": {"2018": 0.15}, diff --git a/taxcalc/reforms/TCJA.json b/taxcalc/reforms/TCJA.json index 5cc1f66e4..cf2fa225f 100644 --- a/taxcalc/reforms/TCJA.json +++ b/taxcalc/reforms/TCJA.json @@ -22,7 +22,7 @@ // - 6: AMT_em* // - 7: ALD_* // - 8: ID_* (can safely ignore WARNINGs about values for several parameters) -// - 9: CPI_offset +// - 9: parameter_indexing_CPI_offset // Note: II_brk*, PT_brk*, STD, II_em are rounded to nearest integer value { "II_rt1": {"2018": 0.10, @@ -153,5 +153,5 @@ "2026": 0}, "ID_Medical_frt": {"2017": 0.075, "2019": 0.075}, - "CPI_offset": {"2017": -0.0025} + "parameter_indexing_CPI_offset": {"2017": -0.0025} } diff --git a/taxcalc/tests/reforms.json b/taxcalc/tests/reforms.json index ff00ba916..1fc2bedd0 100644 --- a/taxcalc/tests/reforms.json +++ b/taxcalc/tests/reforms.json @@ -554,7 +554,7 @@ "56": { "baseline": "policy_current_law.json", "start_year": 2017, - "value": {"CPI_offset": 0}, + "value": {"parameter_indexing_CPI_offset": 0}, "name": "Repeal TCJA chained CPI indexing", "output_type": "iitax", "compare_with": {} diff --git a/taxcalc/tests/test_policy.py b/taxcalc/tests/test_policy.py index a1675beaa..9c3156ebc 100644 --- a/taxcalc/tests/test_policy.py +++ b/taxcalc/tests/test_policy.py @@ -897,19 +897,21 @@ def test_reform_with_scalar_vector_errors(): def test_index_offset_reform(): """ - Test a reform that includes both a change in CPI_offset and a change in - a variable's indexed status in the same year. + Test a reform that includes both a change in parameter_indexing_CPI_offset + and a change in a variable's indexed status in the same year. """ - # create policy0 to extract inflation rates before any CPI_offset + # create policy0 to extract inflation rates before any + # parameter_indexing_CPI_offset policy0 = Policy() - policy0.implement_reform({'CPI_offset': {2017: 0}}) + policy0.implement_reform({'parameter_indexing_CPI_offset': {2017: 0}}) cpiu_rates = policy0.inflation_rates() reform1 = {'CTC_c-indexed': {2020: True}} policy1 = Policy() policy1.implement_reform(reform1) offset = -0.005 - reform2 = {'CTC_c-indexed': {2020: True}, 'CPI_offset': {2020: offset}} + reform2 = {'CTC_c-indexed': {2020: True}, + 'parameter_indexing_CPI_offset': {2020: offset}} policy2 = Policy() policy2.implement_reform(reform2) # caused T-C crash before PR#2364 # extract from policy1 and policy2 the parameter values of CTC_c @@ -938,11 +940,11 @@ def test_index_offset_reform(): def test_cpi_offset_affect_on_prior_years(): """ - Test that CPI_offset does not have affect on inflation - rates in earlier years. + Test that parameter_indexing_CPI_offset does not have affect + on inflation rates in earlier years. """ - reform1 = {'CPI_offset': {2022: 0}} - reform2 = {'CPI_offset': {2022: -0.005}} + reform1 = {'parameter_indexing_CPI_offset': {2022: 0}} + reform2 = {'parameter_indexing_CPI_offset': {2022: -0.005}} p1 = Policy() p2 = Policy() p1.implement_reform(reform1) @@ -968,13 +970,13 @@ def test_cpi_offset_affect_on_prior_years(): def test_cpi_offset_on_reverting_params(): """ Test that params that revert to their pre-TCJA values - in 2026 revert if a CPI_offset is specified. + in 2026 revert if a parameter_indexing_CPI_offset is specified. """ - reform0 = {'CPI_offset': {2020: -0.001}} + reform0 = {'parameter_indexing_CPI_offset': {2020: -0.001}} reform1 = {'STD': {2017: [6350, 12700, 6350, 9350, 12700]}, - 'CPI_offset': {2020: -0.001}} + 'parameter_indexing_CPI_offset': {2020: -0.001}} reform2 = {'STD': {2020: [10000, 20000, 10000, 10000, 20000]}, - 'CPI_offset': {2020: -0.001}} + 'parameter_indexing_CPI_offset': {2020: -0.001}} p0 = Policy() p1 = Policy() @@ -1201,18 +1203,19 @@ def test_activate_index(self): def test_apply_cpi_offset(self): """ - Test applying the CPI_offset parameter without any other parameters. + Test applying the parameter_indexing_CPI_offset parameter + without any other parameters. """ pol1 = Policy() - pol1.implement_reform({"CPI_offset": {2021: -0.001}}) + pol1.implement_reform({"parameter_indexing_CPI_offset": {2021: -0.001}}) pol2 = Policy() - pol2.adjust({"CPI_offset": [{"year": 2021, "value": -0.001}]}) + pol2.adjust({"parameter_indexing_CPI_offset": [{"year": 2021, "value": -0.001}]}) cmp_policy_objs(pol1, pol2) pol0 = Policy() - pol0.implement_reform({"CPI_offset": {2021: 0}}) + pol0.implement_reform({"parameter_indexing_CPI_offset": {2021: 0}}) init_rates = pol0.inflation_rates() new_rates = pol2.inflation_rates() @@ -1220,7 +1223,7 @@ def test_apply_cpi_offset(self): start_ix = 2021 - pol2.start_year exp_rates = copy.deepcopy(new_rates) - exp_rates[start_ix:] -= pol2._CPI_offset[start_ix:] + exp_rates[start_ix:] -= pol2._parameter_indexing_CPI_offset[start_ix:] np.testing.assert_allclose(init_rates, exp_rates) # make sure values prior to 2021 were not affected. @@ -1393,18 +1396,19 @@ def test_multiple_cpi_swaps2(self): def test_adj_CPI_offset_and_index_status(self): """ - Test changing CPI_offset and another parameter simultaneously. + Test changing parameter_indexing_CPI_offset and another + parameter simultaneously. """ pol1 = Policy() pol1.implement_reform({ "CTC_c-indexed": {2020: True}, - "CPI_offset": {2020: -0.005}}, + "parameter_indexing_CPI_offset": {2020: -0.005}}, ) pol2 = Policy() pol2.adjust( { - "CPI_offset": [{"year": 2020, "value": -0.005}], + "parameter_indexing_CPI_offset": [{"year": 2020, "value": -0.005}], "CTC_c-indexed": [{"year": 2020, "value": True}], } ) @@ -1413,12 +1417,12 @@ def test_adj_CPI_offset_and_index_status(self): # Check no difference prior to 2020 pol0 = Policy() - pol0.implement_reform({"CPI_offset": {2020: 0}}) + pol0.implement_reform({"parameter_indexing_CPI_offset": {2020: 0}}) cmp_policy_objs( pol0, pol2, year_range=range(pol2.start_year, 2020 + 1), - exclude=["CPI_offset"] + exclude=["parameter_indexing_CPI_offset"] ) pol2.set_state(year=[2021, 2022]) From a5173ccc31506c057b7738c7049f08be151104a6 Mon Sep 17 00:00:00 2001 From: Peter-Metz Date: Fri, 10 Jul 2020 09:17:44 -0400 Subject: [PATCH 10/12] update error message for cpi_offset and CPI_offset --- taxcalc/policy.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/taxcalc/policy.py b/taxcalc/policy.py index c575f9fbe..fa116d72d 100644 --- a/taxcalc/policy.py +++ b/taxcalc/policy.py @@ -53,7 +53,8 @@ class instance: Policy 'FilerCredit_c': 'is a removed parameter name', 'ALD_InvInc_ec_base_RyanBrady': 'is a removed parameter name', # TODO: following parameter renamed in PR 2292 merged on 2019-04-15 - 'cpi_offset': 'was renamed CPI_offset in release 2.0.0', + 'cpi_offset': 'was renamed parameter_indexing_CPI_offset. See documentation for change in usage.', + 'CPI_offset': 'was renamed parameter_indexing_CPI_offset. See documentation for change in usage.', # TODO: following parameters renamed in PR 2345 merged on 2019-06-24 'PT_excl_rt': 'was renamed PT_qbid_rt in release 2.4.0', From 0911bd30da6eaf38fe03629dcfcc65c2fd7bf46b Mon Sep 17 00:00:00 2001 From: Peter-Metz Date: Fri, 10 Jul 2020 10:21:26 -0400 Subject: [PATCH 11/12] pep8 --- taxcalc/parameters.py | 11 ++++++++--- taxcalc/policy.py | 15 ++++++++++++--- taxcalc/tests/test_policy.py | 13 ++++++++++--- 3 files changed, 30 insertions(+), 9 deletions(-) diff --git a/taxcalc/parameters.py b/taxcalc/parameters.py index 8dffa10f3..8d6d03c59 100644 --- a/taxcalc/parameters.py +++ b/taxcalc/parameters.py @@ -206,7 +206,8 @@ def adjust_with_indexing(self, params_or_path, **kwargs): if params.get("parameter_indexing_CPI_offset") is not None: # Update parameter_indexing_CPI_offset with new value. cpi_adj = super().adjust( - {"parameter_indexing_CPI_offset": params["parameter_indexing_CPI_offset"]}, **kwargs + {"parameter_indexing_CPI_offset": + params["parameter_indexing_CPI_offset"]}, **kwargs ) # turn off extend now that parameter_indexing_CPI_offset # has been updated. @@ -214,7 +215,8 @@ def adjust_with_indexing(self, params_or_path, **kwargs): # Get first year in which parameter_indexing_CPI_offset # is changed. cpi_min_year = min( - cpi_adj["parameter_indexing_CPI_offset"], key=lambda vo: vo["year"] + cpi_adj["parameter_indexing_CPI_offset"], + key=lambda vo: vo["year"] ) rate_adjustment_vals = self.select_gte( @@ -239,7 +241,10 @@ def adjust_with_indexing(self, params_or_path, **kwargs): init_vals = {} to_delete = {} for param in params: - if param == "parameter_indexing_CPI_offset" or param in self._wage_indexed: + if ( + param == "parameter_indexing_CPI_offset" + or param in self._wage_indexed + ): continue if param.endswith("-indexed"): param = param.split("-indexed")[0] diff --git a/taxcalc/policy.py b/taxcalc/policy.py index fa116d72d..a1ed3e5c1 100644 --- a/taxcalc/policy.py +++ b/taxcalc/policy.py @@ -53,8 +53,14 @@ class instance: Policy 'FilerCredit_c': 'is a removed parameter name', 'ALD_InvInc_ec_base_RyanBrady': 'is a removed parameter name', # TODO: following parameter renamed in PR 2292 merged on 2019-04-15 - 'cpi_offset': 'was renamed parameter_indexing_CPI_offset. See documentation for change in usage.', - 'CPI_offset': 'was renamed parameter_indexing_CPI_offset. See documentation for change in usage.', + "cpi_offset": ( + "was renamed parameter_indexing_CPI_offset. " + "See documentation for change in usage." + ), + "CPI_offset": ( + "was renamed parameter_indexing_CPI_offset. " + "See documentation for change in usage." + ), # TODO: following parameters renamed in PR 2345 merged on 2019-06-24 'PT_excl_rt': 'was renamed PT_qbid_rt in release 2.4.0', @@ -125,7 +131,10 @@ def parameter_list(): def set_rates(self): """Initialize taxcalc indexing data.""" - cpi_vals = [vo["value"] for vo in self._data["parameter_indexing_CPI_offset"]["value"]] + cpi_vals = [ + vo["value"] for + vo in self._data["parameter_indexing_CPI_offset"]["value"] + ] # extend parameter_indexing_CPI_offset values through budget window # if they have not been extended already. cpi_vals = cpi_vals + cpi_vals[-1:] * ( diff --git a/taxcalc/tests/test_policy.py b/taxcalc/tests/test_policy.py index 9c3156ebc..9f48e8455 100644 --- a/taxcalc/tests/test_policy.py +++ b/taxcalc/tests/test_policy.py @@ -1207,10 +1207,16 @@ def test_apply_cpi_offset(self): without any other parameters. """ pol1 = Policy() - pol1.implement_reform({"parameter_indexing_CPI_offset": {2021: -0.001}}) + pol1.implement_reform( + {"parameter_indexing_CPI_offset": {2021: -0.001}} + ) pol2 = Policy() - pol2.adjust({"parameter_indexing_CPI_offset": [{"year": 2021, "value": -0.001}]}) + pol2.adjust( + {"parameter_indexing_CPI_offset": [ + {"year": 2021, "value": -0.001} + ]} + ) cmp_policy_objs(pol1, pol2) @@ -1408,7 +1414,8 @@ def test_adj_CPI_offset_and_index_status(self): pol2 = Policy() pol2.adjust( { - "parameter_indexing_CPI_offset": [{"year": 2020, "value": -0.005}], + "parameter_indexing_CPI_offset": + [{"year": 2020, "value": -0.005}], "CTC_c-indexed": [{"year": 2020, "value": True}], } ) From c14e7a62737b49b893ee841207509fc6a0db6cab Mon Sep 17 00:00:00 2001 From: Peter-Metz Date: Fri, 10 Jul 2020 10:37:07 -0400 Subject: [PATCH 12/12] pep8 take 2 --- taxcalc/parameters.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/taxcalc/parameters.py b/taxcalc/parameters.py index 8d6d03c59..b0408a164 100644 --- a/taxcalc/parameters.py +++ b/taxcalc/parameters.py @@ -242,8 +242,8 @@ def adjust_with_indexing(self, params_or_path, **kwargs): to_delete = {} for param in params: if ( - param == "parameter_indexing_CPI_offset" - or param in self._wage_indexed + param == "parameter_indexing_CPI_offset" or + param in self._wage_indexed ): continue if param.endswith("-indexed"):