From 9f5bc41a4f52ce142afb892ec53fe151c6055410 Mon Sep 17 00:00:00 2001 From: "martin.holmer@gmail.com" Date: Thu, 7 Nov 2024 09:48:38 -0500 Subject: [PATCH 01/30] Fix handling of tmd_growfactors.csv file --- taxcalc.egg-info/PKG-INFO | 2 +- taxcalc/growfactors.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/taxcalc.egg-info/PKG-INFO b/taxcalc.egg-info/PKG-INFO index b93fe2de9..59007e8e1 100644 --- a/taxcalc.egg-info/PKG-INFO +++ b/taxcalc.egg-info/PKG-INFO @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: taxcalc -Version: 4.3.0 +Version: 4.3.1 Summary: taxcalc Home-page: https://github.com/PSLmodels/Tax-Calculator Download-URL: https://github.com/PSLmodels/Tax-Calculator diff --git a/taxcalc/growfactors.py b/taxcalc/growfactors.py index 336d8ae74..8be68f1fb 100644 --- a/taxcalc/growfactors.py +++ b/taxcalc/growfactors.py @@ -38,7 +38,7 @@ class instance: GrowFactors which is for use with puf and cps data from the taxdata repository. """ - PACKAGE_FILE_NAMES = ['growfactors.csv', 'tmd_growfactors.csv'] + PACKAGE_FILE_NAMES = ['growfactors.csv'] FILE_PATH = os.path.abspath(os.path.dirname(__file__)) VALID_NAMES = set(['ABOOK', 'ACGNS', 'ACPIM', 'ACPIU', From 73b0aee5ee3adadda5b9ae47eace4d8e6ef92659 Mon Sep 17 00:00:00 2001 From: "martin.holmer@gmail.com" Date: Thu, 7 Nov 2024 14:48:28 -0500 Subject: [PATCH 02/30] Fix bug introduced in PR #2401: Use ParamTools --- taxcalc/calculator.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/taxcalc/calculator.py b/taxcalc/calculator.py index af2abbd84..014ae2369 100644 --- a/taxcalc/calculator.py +++ b/taxcalc/calculator.py @@ -1189,12 +1189,14 @@ def lines(text, num_indent_spaces, max_line_length=77): for pname in baseline.keys(): upda_value = getattr(updated, pname) base_value = getattr(baseline, pname) - if ( - (isinstance(upda_value, np.ndarray) and - np.allclose(upda_value, base_value)) or - (not isinstance(upda_value, np.ndarray) and - upda_value != base_value) - ): + is_diff = False + if isinstance(upda_value, np.ndarray): + if not np.allclose(upda_value, base_value): + is_diff = True + else: + if upda_value != base_value: + is_diff = True + if is_diff: params_with_diff.append(pname) if params_with_diff: mdata_base = baseline.specification(meta_data=True) From fb58222adddfc8b25d0257bbb5fb315aa0b27ce7 Mon Sep 17 00:00:00 2001 From: "martin.holmer@gmail.com" Date: Thu, 7 Nov 2024 15:31:12 -0500 Subject: [PATCH 03/30] Minor revision to test_taxcalcio.py --- taxcalc.egg-info/PKG-INFO | 2 +- taxcalc/tests/test_taxcalcio.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/taxcalc.egg-info/PKG-INFO b/taxcalc.egg-info/PKG-INFO index b93fe2de9..59007e8e1 100644 --- a/taxcalc.egg-info/PKG-INFO +++ b/taxcalc.egg-info/PKG-INFO @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: taxcalc -Version: 4.3.0 +Version: 4.3.1 Summary: taxcalc Home-page: https://github.com/PSLmodels/Tax-Calculator Download-URL: https://github.com/PSLmodels/Tax-Calculator diff --git a/taxcalc/tests/test_taxcalcio.py b/taxcalc/tests/test_taxcalcio.py index edf1793e0..891d9df75 100644 --- a/taxcalc/tests/test_taxcalcio.py +++ b/taxcalc/tests/test_taxcalcio.py @@ -88,7 +88,7 @@ def fixture_reformfile1(): "II_em": { // personal exemption amount (see indexing changes below) "2016": 6000, "2018": 7500, - "2020": 9000}, + "2021": 9000}, "II_em-indexed": { // personal exemption amount indexing status "2016": false, // values in future years are same as this year value "2018": true // values in future years indexed with this year as base From 52460b360d1e63d34d7764a73ec4bff94c17b104 Mon Sep 17 00:00:00 2001 From: "martin.holmer@gmail.com" Date: Thu, 7 Nov 2024 15:39:42 -0500 Subject: [PATCH 04/30] Consolidate logical statements --- taxcalc/calculator.py | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/taxcalc/calculator.py b/taxcalc/calculator.py index 014ae2369..fe5e9a21c 100644 --- a/taxcalc/calculator.py +++ b/taxcalc/calculator.py @@ -1189,14 +1189,9 @@ def lines(text, num_indent_spaces, max_line_length=77): for pname in baseline.keys(): upda_value = getattr(updated, pname) base_value = getattr(baseline, pname) - is_diff = False - if isinstance(upda_value, np.ndarray): - if not np.allclose(upda_value, base_value): - is_diff = True - else: - if upda_value != base_value: - is_diff = True - if is_diff: + isarray = isinstance(upda_value, np.ndarray) + if ((isarray and not np.allclose(upda_value, base_value)) + or (not is_array and upda_value != base_value)): params_with_diff.append(pname) if params_with_diff: mdata_base = baseline.specification(meta_data=True) From 4bdaef3dc4ae1ba91fbe7876a91849dc24cf1516 Mon Sep 17 00:00:00 2001 From: "martin.holmer@gmail.com" Date: Thu, 7 Nov 2024 16:00:28 -0500 Subject: [PATCH 05/30] Additional logic revision; fix too long a line --- taxcalc/calculator.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/taxcalc/calculator.py b/taxcalc/calculator.py index fe5e9a21c..353d09959 100644 --- a/taxcalc/calculator.py +++ b/taxcalc/calculator.py @@ -698,7 +698,8 @@ def mtr(self, variable_str='e00200p', self.policy_param('FICA_ss_trt_employee') + self.policy_param('FICA_mc_trt_employer') + self.policy_param('FICA_mc_trt_employee')), - 0.5 * (self.policy_param('FICA_mc_trt_employer') + self.policy_param('FICA_mc_trt_employee'))) + 0.5 * (self.policy_param('FICA_mc_trt_employer') + + self.policy_param('FICA_mc_trt_employee'))) else: adj = 0.0 # compute marginal tax rates @@ -1189,9 +1190,11 @@ def lines(text, num_indent_spaces, max_line_length=77): for pname in baseline.keys(): upda_value = getattr(updated, pname) base_value = getattr(baseline, pname) - isarray = isinstance(upda_value, np.ndarray) - if ((isarray and not np.allclose(upda_value, base_value)) - or (not is_array and upda_value != base_value)): + is_array = isinstance(upda_value, np.ndarray) + if ( + (is_array and not np.allclose(upda_value, base_value)) + or (is_array == False and upda_value != base_value) + ): params_with_diff.append(pname) if params_with_diff: mdata_base = baseline.specification(meta_data=True) From ef34d5ad8348aa688682af55c0c48815bdb3cbed Mon Sep 17 00:00:00 2001 From: "martin.holmer@gmail.com" Date: Thu, 7 Nov 2024 18:03:34 -0500 Subject: [PATCH 06/30] Fix indentation of statement in calculator.py module --- taxcalc/calculator.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/taxcalc/calculator.py b/taxcalc/calculator.py index 353d09959..d0b92a598 100644 --- a/taxcalc/calculator.py +++ b/taxcalc/calculator.py @@ -1248,7 +1248,7 @@ def lines(text, num_indent_spaces, max_line_length=77): else: # if baseline is GrowDiff object # each GrowDiff parameter has zero as default value doc += ' baseline_value: 0.0\n' - del mdata_base + del mdata_base return doc # begin main logic of reform_documentation From fad07461f0a88f4b90cbcf0f1a3282746abbbf57 Mon Sep 17 00:00:00 2001 From: "martin.holmer@gmail.com" Date: Thu, 7 Nov 2024 18:04:52 -0500 Subject: [PATCH 07/30] Update T-C version --- taxcalc/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/taxcalc/__init__.py b/taxcalc/__init__.py index 702744be1..96858709e 100644 --- a/taxcalc/__init__.py +++ b/taxcalc/__init__.py @@ -14,6 +14,6 @@ from taxcalc.utils import * from taxcalc.cli import * -__version__ = '4.3.1' +__version__ = '4.3.1a' __min_python3_version__ = 10 __max_python3_version__ = 12 From ed04183245ba75c073a093a7e3a15cd75c4823e4 Mon Sep 17 00:00:00 2001 From: "martin.holmer@gmail.com" Date: Fri, 8 Nov 2024 09:53:48 -0500 Subject: [PATCH 08/30] Add Policy.tmd_constructor static method --- taxcalc/__init__.py | 2 +- taxcalc/policy.py | 19 ++++++++++++++++--- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/taxcalc/__init__.py b/taxcalc/__init__.py index 96858709e..01e8fef75 100644 --- a/taxcalc/__init__.py +++ b/taxcalc/__init__.py @@ -14,6 +14,6 @@ from taxcalc.utils import * from taxcalc.cli import * -__version__ = '4.3.1a' +__version__ = '4.3.1b' __min_python3_version__ = 10 __max_python3_version__ = 12 diff --git a/taxcalc/policy.py b/taxcalc/policy.py index ad9b69d89..4f1fa29a9 100644 --- a/taxcalc/policy.py +++ b/taxcalc/policy.py @@ -7,6 +7,7 @@ import os import json +from pathlib import Path import numpy as np from taxcalc.parameters import Parameters from taxcalc.growfactors import GrowFactors @@ -80,7 +81,7 @@ class instance: Policy # (3) specify which Policy parameters are wage (rather than price) indexed WAGE_INDEXED_PARAMS = ['SS_Earnings_c', 'SS_Earnings_thd'] - def __init__(self, gfactors=None, only_reading_defaults=False, **kwargs): + def __init__(self, gfactors=None, **kwargs): # put JSON contents of DEFAULTS_FILE_NAME into self._vals dictionary super().__init__() # handle gfactors argument @@ -92,7 +93,6 @@ def __init__(self, gfactors=None, only_reading_defaults=False, **kwargs): raise ValueError('gfactors is not None or a GrowFactors instance') # read default parameters and initialize syr = Policy.JSON_START_YEAR - lyr = Policy.LAST_BUDGET_YEAR nyrs = Policy.DEFAULT_NUM_YEARS self._inflation_rates = None self._wage_growth_rates = None @@ -101,6 +101,19 @@ def __init__(self, gfactors=None, only_reading_defaults=False, **kwargs): Policy.REDEFINED_PARAMS, Policy.WAGE_INDEXED_PARAMS, **kwargs) + @staticmethod + def tmd_constructor(growfactors_path): # pragma: no cover + """ + Static method returns a Policy object instantiated with TMD + input data. This convenience method works in a analogous way + to Policy(), which returns a Policy object instantiated with + non-TMD input data. + """ + assert isinstance(growfactors_path, Path) + gf_filename = str(growfactors_path) + tmd_growfactors = GrowFactors(growfactors_filename=gf_filename) + return Policy(gfactors=tmd_growfactors) + @staticmethod def read_json_reform(obj): """ @@ -129,7 +142,7 @@ def parameter_list(): Policy.DEFAULTS_FILE_PATH, Policy.DEFAULTS_FILE_NAME ) - with open(path) as f: + with open(path, 'r', encoding='utf-8') as f: defaults = json.loads(f.read()) # pylint: disable=protected-access return [k for k in defaults if k != "schema"] From 435de0d675f42759417ce8e56e6f13795aa645e1 Mon Sep 17 00:00:00 2001 From: "martin.holmer@gmail.com" Date: Fri, 8 Nov 2024 11:16:53 -0500 Subject: [PATCH 09/30] Changes for 4.3.2 version --- docs/about/releases.md | 20 ++++++++++++++++++++ docs/index.md | 2 +- docs/usage/data.md | 4 ++-- setup.py | 2 +- taxcalc/__init__.py | 2 +- taxcalc/reforms/ext.json | 2 +- 6 files changed, 26 insertions(+), 6 deletions(-) diff --git a/docs/about/releases.md b/docs/about/releases.md index eef8b8ead..59e048970 100644 --- a/docs/about/releases.md +++ b/docs/about/releases.md @@ -4,6 +4,26 @@ Go [here](https://github.com/PSLmodels/Tax-Calculator/pulls?q=is%3Apr+is%3Aclose for a complete commit history. +2024-11-08 Release 4.3.2 +------------------------ +(last merged pull request is +[#2834](https://github.com/PSLmodels/Tax-Calculator/pull/2834)) + +**This is a bug-fix release.** + +**API Changes** + +**New Features** +- Add Policy.tmd_constructor() static method for convenience when using Python API +[[#2834](https://github.com/PSLmodels/Tax-Calculator/pull/2834) by Martin Holmer] + +**Bug Fixes** +- Fix handling of tmd_growfactors.csv file +[[#2832](https://github.com/PSLmodels/Tax-Calculator/pull/2832) by Martin Holmer] +- Fix `tc` reform documentation output +[[#2833](https://github.com/PSLmodels/Tax-Calculator/pull/2833) by Martin Holmer] + + 2024-10-28 Release 4.3.1 ------------------------ (last merged pull request is diff --git a/docs/index.md b/docs/index.md index f9c8bf320..e6309e7e6 100644 --- a/docs/index.md +++ b/docs/index.md @@ -57,7 +57,7 @@ The cross-model validation work with NBER's TAXSIM-27 model is described ## Latest release -{doc}`4.3.1 (2024-10-28) ` +{doc}`4.3.2 (2024-11-08) ` If you are already using Tax-Calculator, upgrade using the following command: diff --git a/docs/usage/data.md b/docs/usage/data.md index 13d387f33..141c1a3f8 100644 --- a/docs/usage/data.md +++ b/docs/usage/data.md @@ -69,8 +69,8 @@ available only to Tax-Calculator users who have purchased their own version of the 2015 IRS-SOI PUF. For those users, those three files are avaiable from the tax-microdata repository. These three tmd files can be used with the Tax-Calculator Python API (using the -`Records.tmd_constructor()` static method) or with the Tax-Calculator -CLI tool, `tc`. +`Records.tmd_constructor()` and `Policy.tmd_constructor()`static methods) +or with the Tax-Calculator CLI tool, `tc`. ## Using other data with Tax-Calculator diff --git a/setup.py b/setup.py index 29d2bcea6..48fa78297 100644 --- a/setup.py +++ b/setup.py @@ -3,7 +3,7 @@ with open("README.md") as f: longdesc = f.read() -version = "4.3.1" +version = "4.3.2" config = { "description": "Tax Calculator", diff --git a/taxcalc/__init__.py b/taxcalc/__init__.py index 01e8fef75..73242a5ff 100644 --- a/taxcalc/__init__.py +++ b/taxcalc/__init__.py @@ -14,6 +14,6 @@ from taxcalc.utils import * from taxcalc.cli import * -__version__ = '4.3.1b' +__version__ = '4.3.2' __min_python3_version__ = 10 __max_python3_version__ = 12 diff --git a/taxcalc/reforms/ext.json b/taxcalc/reforms/ext.json index f3b624e1b..32418b982 100644 --- a/taxcalc/reforms/ext.json +++ b/taxcalc/reforms/ext.json @@ -1,5 +1,5 @@ // REFORM TO EXTEND TEMPORARY TCJA PROVISIONS BEYOND 2025 -// USING TAX-CALCULATOR 4.3.1 +// USING TAX-CALCULATOR 4.3.2 // WITH 2025-to-2026 INDEXING FACTOR = 1.022000 // AND 2028-to-2029 INDEXING FACTOR = 1.019400 { From 6d1d51fc365637109fceee591a47a8b534529a1d Mon Sep 17 00:00:00 2001 From: "martin.holmer@gmail.com" Date: Fri, 8 Nov 2024 14:01:58 -0500 Subject: [PATCH 10/30] Update tcja_after_2025.md documentation --- docs/usage/tcja_after_2025.md | 15 ++------------- 1 file changed, 2 insertions(+), 13 deletions(-) diff --git a/docs/usage/tcja_after_2025.md b/docs/usage/tcja_after_2025.md index 346769235..8e8f573f0 100644 --- a/docs/usage/tcja_after_2025.md +++ b/docs/usage/tcja_after_2025.md @@ -86,23 +86,12 @@ To analyze your reform relative to a reform that extends all TCJA temporary provisions beyond 2025, you would execute this command: ``` -tc z.csv 2026 --exact --tables --baseline ext.json --reform x.json +tc z.csv 2026 --exact --tables --baseline ext.json --reform ext.json+x.json ``` -The tables would be in the `z-26-ext-x-#-tab.text` output file +The tables would be in the `z-26-ext-ext+x-#-tab.text` output file generated by this `tc` run. -Also, remember that you can simulate a _compound reform_ using the -following syntax: - -``` -tc z.csv 2026 --exact --tables --baseline ext.json --reform x.json+y.json -``` - -where `y.json` contains a reform with additional provisions not -included in your `x.json` reform file. The resulting table output -would be in a file named `z-26-ext-x+y-#-tab.text`. - And finally, you might consider creating a reform file called `end.json` that contains just the two characters `{}`. This is a null reform, which is equivalent to current-law policy, that could be used From 573718a0f2a587cc82d84d2e5798b06b1d363207 Mon Sep 17 00:00:00 2001 From: "martin.holmer@gmail.com" Date: Sat, 9 Nov 2024 15:02:28 -0500 Subject: [PATCH 11/30] Update taxcalc.egg-info version --- taxcalc.egg-info/PKG-INFO | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/taxcalc.egg-info/PKG-INFO b/taxcalc.egg-info/PKG-INFO index 59007e8e1..85eccd51c 100644 --- a/taxcalc.egg-info/PKG-INFO +++ b/taxcalc.egg-info/PKG-INFO @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: taxcalc -Version: 4.3.1 +Version: 4.3.2 Summary: taxcalc Home-page: https://github.com/PSLmodels/Tax-Calculator Download-URL: https://github.com/PSLmodels/Tax-Calculator From d7012f7e49163af9d5687bc377a0af231b11ed29 Mon Sep 17 00:00:00 2001 From: "martin.holmer@gmail.com" Date: Tue, 12 Nov 2024 09:05:52 -0500 Subject: [PATCH 12/30] Begin revising update_pcl.py --- update_pcl.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/update_pcl.py b/update_pcl.py index da533fdc9..51fb26a4b 100644 --- a/update_pcl.py +++ b/update_pcl.py @@ -54,12 +54,16 @@ {'year': 2023, 'value': 160200.0}, {'year': 2024, 'value': 168600.0}, + + {'year': 2025, 'value': 176100.0}, ], # INCOME TAX PARAMETER SOURCES: # - IRS Rev. Proc. 2022-38 containing 2023 policy parameter values is at: # https://www.irs.gov/pub/irs-drop/rp-22-38.pdf # - IRS Rev. Proc. 2023-34 containing 2024 policy parameter values is at: # https://www.irs.gov/pub/irs-drop/rp-23-34.pdf + # - IRS Rev. Proc. 2024-40 containing 2025 policy parameter values is at: + # https://www.irs.gov/pub/irs-drop/rp-24-40.pdf 'II_brk1': [ {'year': 2023, 'MARS': 'single', 'value': 11000.0}, {'year': 2023, 'MARS': 'mjoint', 'value': 22000.0}, From 6f8681d72b44eff558d9070e5a6e91bbeaac19ce Mon Sep 17 00:00:00 2001 From: "martin.holmer@gmail.com" Date: Tue, 12 Nov 2024 12:08:36 -0500 Subject: [PATCH 13/30] Add 2025 income tax brackets --- update_pcl.py | 56 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) diff --git a/update_pcl.py b/update_pcl.py index 51fb26a4b..9445a8571 100644 --- a/update_pcl.py +++ b/update_pcl.py @@ -27,6 +27,12 @@ {'year': 2024, 'MARS': 'mseparate', 'value': 0.0}, {'year': 2024, 'MARS': 'headhh', 'value': 0.0}, {'year': 2024, 'MARS': 'widow', 'value': 0.0}, + + {'year': 2025, 'MARS': 'single', 'value': 0.0}, + {'year': 2025, 'MARS': 'mjoint', 'value': 0.0}, + {'year': 2025, 'MARS': 'mseparate', 'value': 0.0}, + {'year': 2025, 'MARS': 'headhh', 'value': 0.0}, + {'year': 2025, 'MARS': 'widow', 'value': 0.0}, ] LIST_MARS_INF = [ {'year': 2023, 'MARS': 'single', 'value': 9e99}, @@ -40,11 +46,19 @@ {'year': 2024, 'MARS': 'mseparate', 'value': 9e99}, {'year': 2024, 'MARS': 'headhh', 'value': 9e99}, {'year': 2024, 'MARS': 'widow', 'value': 9e99}, + + {'year': 2025, 'MARS': 'single', 'value': 9e99}, + {'year': 2025, 'MARS': 'mjoint', 'value': 9e99}, + {'year': 2025, 'MARS': 'mseparate', 'value': 9e99}, + {'year': 2025, 'MARS': 'headhh', 'value': 9e99}, + {'year': 2025, 'MARS': 'widow', 'value': 9e99}, ] LIST_SCALAR_ZERO = [ {'year': 2023, 'value': 0.0}, {'year': 2024, 'value': 0.0}, + + {'year': 2025, 'value': 0.0}, ] NEW_KNOWN_ITEMS = { # PAYROLL TAX PARAMETER SOURCES: @@ -76,6 +90,12 @@ {'year': 2024, 'MARS': 'mseparate', 'value': 11600.0}, {'year': 2024, 'MARS': 'headhh', 'value': 16550.0}, {'year': 2024, 'MARS': 'widow', 'value': 23200.0}, + + {'year': 2025, 'MARS': 'single', 'value': 11925.0}, + {'year': 2025, 'MARS': 'mjoint', 'value': 23850.0}, + {'year': 2025, 'MARS': 'mseparate', 'value': 11925.0}, + {'year': 2025, 'MARS': 'headhh', 'value': 17000.0}, + {'year': 2025, 'MARS': 'widow', 'value': 23850.0}, ], 'II_brk2': [ {'year': 2023, 'MARS': 'single', 'value': 44725.}, @@ -89,6 +109,12 @@ {'year': 2024, 'MARS': 'mseparate', 'value': 47150.0}, {'year': 2024, 'MARS': 'headhh', 'value': 63100.0}, {'year': 2024, 'MARS': 'widow', 'value': 94300.0}, + + {'year': 2025, 'MARS': 'single', 'value': 48475.0}, + {'year': 2025, 'MARS': 'mjoint', 'value': 96950.0}, + {'year': 2025, 'MARS': 'mseparate', 'value': 48475.0}, + {'year': 2025, 'MARS': 'headhh', 'value': 64850.0}, + {'year': 2025, 'MARS': 'widow', 'value': 96950.0}, ], 'II_brk3': [ {'year': 2023, 'MARS': 'single', 'value': 95375.0}, @@ -102,6 +128,12 @@ {'year': 2024, 'MARS': 'mseparate', 'value': 100525.0}, {'year': 2024, 'MARS': 'headhh', 'value': 100500.0}, {'year': 2024, 'MARS': 'widow', 'value': 201050.0}, + + {'year': 2025, 'MARS': 'single', 'value': 103350.0}, + {'year': 2025, 'MARS': 'mjoint', 'value': 206700.0}, + {'year': 2025, 'MARS': 'mseparate', 'value': 103350.0}, + {'year': 2025, 'MARS': 'headhh', 'value': 103350.0}, + {'year': 2025, 'MARS': 'widow', 'value': 206700.0}, ], 'II_brk4': [ {'year': 2023, 'MARS': 'single', 'value': 182100.0}, @@ -115,6 +147,12 @@ {'year': 2024, 'MARS': 'mseparate', 'value': 191950.0}, {'year': 2024, 'MARS': 'headhh', 'value': 191950.0}, {'year': 2024, 'MARS': 'widow', 'value': 383900.0}, + + {'year': 2025, 'MARS': 'single', 'value': 197300.0}, + {'year': 2025, 'MARS': 'mjoint', 'value': 394600.0}, + {'year': 2025, 'MARS': 'mseparate', 'value': 197300.0}, + {'year': 2025, 'MARS': 'headhh', 'value': 197300.0}, + {'year': 2025, 'MARS': 'widow', 'value': 394600.0}, ], 'II_brk5': [ {'year': 2023, 'MARS': 'single', 'value': 231250.0}, @@ -128,6 +166,12 @@ {'year': 2024, 'MARS': 'mseparate', 'value': 243725.0}, {'year': 2024, 'MARS': 'headhh', 'value': 243700.0}, {'year': 2024, 'MARS': 'widow', 'value': 487450.0}, + + {'year': 2025, 'MARS': 'single', 'value': 250525.0}, + {'year': 2025, 'MARS': 'mjoint', 'value': 501050.0}, + {'year': 2025, 'MARS': 'mseparate', 'value': 250525.0}, + {'year': 2025, 'MARS': 'headhh', 'value': 250500.0}, + {'year': 2025, 'MARS': 'widow', 'value': 501050.0}, ], 'II_brk6': [ {'year': 2023, 'MARS': 'single', 'value': 578125.0}, @@ -141,6 +185,12 @@ {'year': 2024, 'MARS': 'mseparate', 'value': 365600.0}, {'year': 2024, 'MARS': 'headhh', 'value': 609350.0}, {'year': 2024, 'MARS': 'widow', 'value': 731200.0}, + + {'year': 2025, 'MARS': 'single', 'value': 626350.0}, + {'year': 2025, 'MARS': 'mjoint', 'value': 751600.0}, + {'year': 2025, 'MARS': 'mseparate', 'value': 375800.0}, + {'year': 2025, 'MARS': 'headhh', 'value': 626350.0}, + {'year': 2025, 'MARS': 'widow', 'value': 751600.0}, ], 'II_brk7': [ {'year': 2023, 'MARS': 'single', 'value': 9e99}, @@ -154,6 +204,12 @@ {'year': 2024, 'MARS': 'mseparate', 'value': 9e99}, {'year': 2024, 'MARS': 'headhh', 'value': 9e99}, {'year': 2024, 'MARS': 'widow', 'value': 9e99}, + + {'year': 2025, 'MARS': 'single', 'value': 9e99}, + {'year': 2025, 'MARS': 'mjoint', 'value': 9e99}, + {'year': 2025, 'MARS': 'mseparate', 'value': 9e99}, + {'year': 2025, 'MARS': 'headhh', 'value': 9e99}, + {'year': 2025, 'MARS': 'widow', 'value': 9e99}, ], 'CG_brk1': [ {'year': 2023, 'MARS': 'single', 'value': 44625.0}, From d4da62669a190d34d42d69ac9643b3ab524d1e98 Mon Sep 17 00:00:00 2001 From: "martin.holmer@gmail.com" Date: Tue, 12 Nov 2024 12:18:11 -0500 Subject: [PATCH 14/30] Add 2025 CG+QD tax brackets --- update_pcl.py | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/update_pcl.py b/update_pcl.py index 9445a8571..30c98d73f 100644 --- a/update_pcl.py +++ b/update_pcl.py @@ -7,7 +7,8 @@ IF DIFFS OK: % mv pcl.json taxcalc/policy_current_law.json WHEN TO USE: use this script to update taxcalc/policy_current_law.json -whenever post-2016 inflation rates in the growfactors.csv files are changed. +whenever post-2016 inflation rates in the growfactors.csv files are changed, +or whenever new known policy parameter values are published. """ import os @@ -223,6 +224,12 @@ {'year': 2024, 'MARS': 'mseparate', 'value': 47025.0}, {'year': 2024, 'MARS': 'headhh', 'value': 63000.0}, {'year': 2024, 'MARS': 'widow', 'value': 94050.0}, + + {'year': 2025, 'MARS': 'single', 'value': 48350.0}, + {'year': 2025, 'MARS': 'mjoint', 'value': 96700.0}, + {'year': 2025, 'MARS': 'mseparate', 'value': 48350.0}, + {'year': 2025, 'MARS': 'headhh', 'value': 64750.0}, + {'year': 2025, 'MARS': 'widow', 'value': 96700.0}, ], 'CG_brk2': [ {'year': 2023, 'MARS': 'single', 'value': 492300.0}, @@ -236,6 +243,12 @@ {'year': 2024, 'MARS': 'mseparate', 'value': 291850.0}, {'year': 2024, 'MARS': 'headhh', 'value': 551350.0}, {'year': 2024, 'MARS': 'widow', 'value': 583750.0}, + + {'year': 2025, 'MARS': 'single', 'value': 533400.0}, + {'year': 2025, 'MARS': 'mjoint', 'value': 600050.0}, + {'year': 2025, 'MARS': 'mseparate', 'value': 300000.0}, + {'year': 2025, 'MARS': 'headhh', 'value': 566700.0}, + {'year': 2025, 'MARS': 'widow', 'value': 600050.0}, ], 'CG_brk3': [ {'year': 2023, 'MARS': 'single', 'value': 9e99}, @@ -249,8 +262,14 @@ {'year': 2024, 'MARS': 'mseparate', 'value': 9e99}, {'year': 2024, 'MARS': 'headhh', 'value': 9e99}, {'year': 2024, 'MARS': 'widow', 'value': 9e99}, + + {'year': 2025, 'MARS': 'single', 'value': 9e99}, + {'year': 2025, 'MARS': 'mjoint', 'value': 9e99}, + {'year': 2025, 'MARS': 'mseparate', 'value': 9e99}, + {'year': 2025, 'MARS': 'headhh', 'value': 9e99}, + {'year': 2025, 'MARS': 'widow', 'value': 9e99}, ], - 'EITC_c': [ + 'EITC_c': [ # TODO: begin adding 2025 values here: {'year': 2023, 'EIC': '0kids', 'value': 600.0}, {'year': 2023, 'EIC': '1kid', 'value': 3995.0}, {'year': 2023, 'EIC': '2kids', 'value': 6604.0}, From e272d36600cc29835ff3830df9514c245069207a Mon Sep 17 00:00:00 2001 From: "martin.holmer@gmail.com" Date: Tue, 12 Nov 2024 13:18:28 -0500 Subject: [PATCH 15/30] Add other 2025 policy parameters --- update_pcl.py | 79 +++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 76 insertions(+), 3 deletions(-) diff --git a/update_pcl.py b/update_pcl.py index 30c98d73f..0b5bce83b 100644 --- a/update_pcl.py +++ b/update_pcl.py @@ -269,7 +269,7 @@ {'year': 2025, 'MARS': 'headhh', 'value': 9e99}, {'year': 2025, 'MARS': 'widow', 'value': 9e99}, ], - 'EITC_c': [ # TODO: begin adding 2025 values here: + 'EITC_c': [ {'year': 2023, 'EIC': '0kids', 'value': 600.0}, {'year': 2023, 'EIC': '1kid', 'value': 3995.0}, {'year': 2023, 'EIC': '2kids', 'value': 6604.0}, @@ -279,6 +279,11 @@ {'year': 2024, 'EIC': '1kid', 'value': 4213.0}, {'year': 2024, 'EIC': '2kids', 'value': 6960.0}, {'year': 2024, 'EIC': '3+kids', 'value': 7830.0}, + + {'year': 2025, 'EIC': '0kids', 'value': 649.0}, + {'year': 2025, 'EIC': '1kid', 'value': 4328.0}, + {'year': 2025, 'EIC': '2kids', 'value': 7152.0}, + {'year': 2025, 'EIC': '3+kids', 'value': 8046.0}, ], 'EITC_ps': [ {'year': 2023, 'EIC': '0kids', 'value': 9800.0}, @@ -290,6 +295,11 @@ {'year': 2024, 'EIC': '1kid', 'value': 22720.0}, {'year': 2024, 'EIC': '2kids', 'value': 22720.0}, {'year': 2024, 'EIC': '3+kids', 'value': 22720.0}, + + {'year': 2025, 'EIC': '0kids', 'value': 10620.0}, + {'year': 2025, 'EIC': '1kid', 'value': 23350.0}, + {'year': 2025, 'EIC': '2kids', 'value': 23350.0}, + {'year': 2025, 'EIC': '3+kids', 'value': 23350.0}, ], 'EITC_ps_MarriedJ': [ {'year': 2023, 'EIC': '0kids', 'value': 6570.0}, @@ -301,16 +311,25 @@ {'year': 2024, 'EIC': '1kid', 'value': 6920.0}, {'year': 2024, 'EIC': '2kids', 'value': 6920.0}, {'year': 2024, 'EIC': '3+kids', 'value': 6920.0}, + + {'year': 2025, 'EIC': '0kids', 'value': 7110.0}, + {'year': 2025, 'EIC': '1kid', 'value': 7120.0}, + {'year': 2025, 'EIC': '2kids', 'value': 7120.0}, + {'year': 2025, 'EIC': '3+kids', 'value': 7120.0}, ], 'EITC_InvestIncome_c': [ {'year': 2023, 'value': 11000.0}, {'year': 2024, 'value': 11600.0}, + + {'year': 2025, 'value': 11950.0}, ], 'AMT_brk1': [ {'year': 2023, 'value': 220700.0}, {'year': 2024, 'value': 232600.0}, + + {'year': 2025, 'value': 239100.0}, ], 'AMT_em': [ {'year': 2023, 'MARS': 'single', 'value': 81300.0}, @@ -324,6 +343,12 @@ {'year': 2024, 'MARS': 'mseparate', 'value': 66650.0}, {'year': 2024, 'MARS': 'headhh', 'value': 85700.0}, {'year': 2024, 'MARS': 'widow', 'value': 133300.0}, + + {'year': 2025, 'MARS': 'single', 'value': 88100.0}, + {'year': 2025, 'MARS': 'mjoint', 'value': 137000.0}, + {'year': 2025, 'MARS': 'mseparate', 'value': 68500.0}, + {'year': 2025, 'MARS': 'headhh', 'value': 88100.0}, + {'year': 2025, 'MARS': 'widow', 'value': 137000.0}, ], 'AMT_em_ps': [ {'year': 2023, 'MARS': 'single', 'value': 578150.0}, @@ -337,16 +362,26 @@ {'year': 2024, 'MARS': 'mseparate', 'value': 609350.0}, {'year': 2024, 'MARS': 'headhh', 'value': 609350.0}, {'year': 2024, 'MARS': 'widow', 'value': 1218700.0}, + + {'year': 2025, 'MARS': 'single', 'value': 626350.0}, + {'year': 2025, 'MARS': 'mjoint', 'value': 1252700.0}, + {'year': 2025, 'MARS': 'mseparate', 'value': 626350.0}, + {'year': 2025, 'MARS': 'headhh', 'value': 626350.0}, + {'year': 2025, 'MARS': 'widow', 'value': 1252700.0}, ], 'AMT_em_pe': [ {"year": 2023, "value": 831150.0}, {"year": 2024, "value": 875950.0}, + + {"year": 2025, "value": 900350.0}, ], 'AMT_child_em': [ {'year': 2023, 'value': 8800.0}, {'year': 2024, 'value': 9250.0}, + + {'year': 2025, 'value': 9550.0}, ], 'STD': [ {'year': 2023, 'MARS': 'single', 'value': 13850.0}, @@ -360,24 +395,38 @@ {'year': 2024, 'MARS': 'mseparate', 'value': 14600.0}, {'year': 2024, 'MARS': 'headhh', 'value': 21900.0}, {'year': 2024, 'MARS': 'widow', 'value': 29200.0}, + + {'year': 2025, 'MARS': 'single', 'value': 15000.0}, + {'year': 2025, 'MARS': 'mjoint', 'value': 30000.0}, + {'year': 2025, 'MARS': 'mseparate', 'value': 15000.0}, + {'year': 2025, 'MARS': 'headhh', 'value': 22500.0}, + {'year': 2025, 'MARS': 'widow', 'value': 30000.0}, ], 'STD_Dep': [ {'year': 2023, 'value': 1250.0}, {'year': 2024, 'value': 1300.0}, + + {'year': 2025, 'value': 1350.0}, ], 'STD_Aged': [ {'year': 2023, 'MARS': 'single', 'value': 1800.0}, {'year': 2023, 'MARS': 'mjoint', 'value': 1500.0}, {'year': 2023, 'MARS': 'mseparate', 'value': 1500.0}, {'year': 2023, 'MARS': 'headhh', 'value': 1800.0}, - {'year': 2023, 'MARS': 'widow', 'value': 1800.0}, + {'year': 2023, 'MARS': 'widow', 'value': 1500.0}, {'year': 2024, 'MARS': 'single', 'value': 1950.0}, {'year': 2024, 'MARS': 'mjoint', 'value': 1550.0}, {'year': 2024, 'MARS': 'mseparate', 'value': 1550.0}, {'year': 2024, 'MARS': 'headhh', 'value': 1950.0}, - {'year': 2024, 'MARS': 'widow', 'value': 1950.0}, + {'year': 2024, 'MARS': 'widow', 'value': 1550.0}, + + {'year': 2025, 'MARS': 'single', 'value': 2000.0}, + {'year': 2025, 'MARS': 'mjoint', 'value': 1600.0}, + {'year': 2025, 'MARS': 'mseparate', 'value': 1600.0}, + {'year': 2025, 'MARS': 'headhh', 'value': 2000.0}, + {'year': 2025, 'MARS': 'widow', 'value': 1600.0}, ], 'PT_qbid_taxinc_thd': [ {'year': 2023, 'MARS': 'single', 'value': 182100.0}, @@ -391,6 +440,12 @@ {'year': 2024, 'MARS': 'mseparate', 'value': 191950.0}, {'year': 2024, 'MARS': 'headhh', 'value': 191950.0}, {'year': 2024, 'MARS': 'widow', 'value': 191950.0}, + + {'year': 2025, 'MARS': 'single', 'value': 197300.0}, + {'year': 2025, 'MARS': 'mjoint', 'value': 394600.0}, + {'year': 2025, 'MARS': 'mseparate', 'value': 197300.0}, + {'year': 2025, 'MARS': 'headhh', 'value': 197300.0}, + {'year': 2025, 'MARS': 'widow', 'value': 197300.0}, ], 'ALD_BusinessLosses_c': [ {'year': 2023, 'MARS': 'single', 'value': 289000.0}, @@ -404,6 +459,12 @@ {'year': 2024, 'MARS': 'mseparate', 'value': 305000.0}, {'year': 2024, 'MARS': 'headhh', 'value': 305000.0}, {'year': 2024, 'MARS': 'widow', 'value': 610000.0}, + + {'year': 2025, 'MARS': 'single', 'value': 313000.0}, + {'year': 2025, 'MARS': 'mjoint', 'value': 626000.0}, + {'year': 2025, 'MARS': 'mseparate', 'value': 313000.0}, + {'year': 2025, 'MARS': 'headhh', 'value': 313000.0}, + {'year': 2025, 'MARS': 'widow', 'value': 626000.0}, ], 'FST_AGI_thd_lo': [ # not part of current-law policy, but needs to be here {'year': 2023, 'MARS': 'single', 'value': 1000000.0}, @@ -418,6 +479,12 @@ {'year': 2024, 'MARS': 'headhh', 'value': 1000000.0}, {'year': 2024, 'MARS': 'widow', 'value': 1000000.0}, + {'year': 2025, 'MARS': 'single', 'value': 1000000.0}, + {'year': 2025, 'MARS': 'mjoint', 'value': 1000000.0}, + {'year': 2025, 'MARS': 'mseparate', 'value': 500000.0}, + {'year': 2025, 'MARS': 'headhh', 'value': 1000000.0}, + {'year': 2025, 'MARS': 'widow', 'value': 1000000.0}, + # each year's values are the same as for the prior year ], 'FST_AGI_thd_hi': [ # not part of current-law policy, but needs to be here @@ -433,6 +500,12 @@ {'year': 2024, 'MARS': 'headhh', 'value': 2000000.0}, {'year': 2024, 'MARS': 'widow', 'value': 2000000.0}, + {'year': 2025, 'MARS': 'single', 'value': 2000000.0}, + {'year': 2025, 'MARS': 'mjoint', 'value': 2000000.0}, + {'year': 2025, 'MARS': 'mseparate', 'value': 1000000.0}, + {'year': 2025, 'MARS': 'headhh', 'value': 2000000.0}, + {'year': 2025, 'MARS': 'widow', 'value': 2000000.0}, + # each year's values are the same as for the prior year ], # ITEMS NOT PART OF CURRENT-LAW POLICY IN 2022-2025 PERIOD: From 25325287e1af4ca59b0b6d94065d84a15db56d75 Mon Sep 17 00:00:00 2001 From: "martin.holmer@gmail.com" Date: Tue, 12 Nov 2024 13:41:06 -0500 Subject: [PATCH 16/30] Update 2024-2025 ACTC_c values --- taxcalc/policy_current_law.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/taxcalc/policy_current_law.json b/taxcalc/policy_current_law.json index 1cc335d93..527ddede9 100644 --- a/taxcalc/policy_current_law.json +++ b/taxcalc/policy_current_law.json @@ -20715,11 +20715,11 @@ }, { "year": 2024, - "value": 1600.0 + "value": 1700.0 }, { "year": 2025, - "value": 1600.0 + "value": 1700.0 }, { "year": 2026, From e5bda55fc8c4ac8fa66b0b9081f73cd8da023ac8 Mon Sep 17 00:00:00 2001 From: "martin.holmer@gmail.com" Date: Tue, 12 Nov 2024 13:44:12 -0500 Subject: [PATCH 17/30] Update 2026 ACTC_c value in ext.json --- taxcalc/reforms/ext.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/taxcalc/reforms/ext.json b/taxcalc/reforms/ext.json index 32418b982..ab913595b 100644 --- a/taxcalc/reforms/ext.json +++ b/taxcalc/reforms/ext.json @@ -32,7 +32,7 @@ "PT_rt7": {"2026": 0.37}, "PT_brk7": {"2026": [9e+99, 9e+99, 9e+99, 9e+99, 9e+99]}, "CTC_c": {"2026": 2000.00}, - "ACTC_c": {"2026": 1600.00}, + "ACTC_c": {"2026": 1700.00}, "ODC_c": {"2026": 500.00}, "CTC_ps": {"2026": [200000.0, 400000.0, 200000.0, 200000.0, 400000.0]}, "ACTC_Income_thd": {"2026": 2500.00}, From 7d87023ead03fe894abc8a90ae60ce4f87b9f305 Mon Sep 17 00:00:00 2001 From: "martin.holmer@gmail.com" Date: Tue, 12 Nov 2024 14:45:29 -0500 Subject: [PATCH 18/30] Add known 2025 policy parameter values --- taxcalc/policy_current_law.json | 1318 ++++++++++++++++++++++++++++++- 1 file changed, 1297 insertions(+), 21 deletions(-) diff --git a/taxcalc/policy_current_law.json b/taxcalc/policy_current_law.json index 527ddede9..47a485329 100644 --- a/taxcalc/policy_current_law.json +++ b/taxcalc/policy_current_law.json @@ -226,6 +226,10 @@ { "year": 2024, "value": 168600.0 + }, + { + "year": 2025, + "value": 176100.0 } ], "validators": { @@ -1145,6 +1149,10 @@ { "year": 2024, "value": 0.0 + }, + { + "year": 2025, + "value": 0.0 } ], "validators": { @@ -1215,6 +1223,10 @@ { "year": 2024, "value": 0.0 + }, + { + "year": 2025, + "value": 0.0 } ], "validators": { @@ -1609,6 +1621,31 @@ "year": 2029, "MARS": "widow", "value": 9e+99 + }, + { + "year": 2025, + "MARS": "single", + "value": 313000.0 + }, + { + "year": 2025, + "MARS": "mjoint", + "value": 626000.0 + }, + { + "year": 2025, + "MARS": "mseparate", + "value": 313000.0 + }, + { + "year": 2025, + "MARS": "headhh", + "value": 313000.0 + }, + { + "year": 2025, + "MARS": "widow", + "value": 626000.0 } ], "validators": { @@ -1680,6 +1717,10 @@ "year": 2024, "value": 0.0 }, + { + "year": 2025, + "value": 0.0 + }, { "year": 2026, "value": 5300.0 @@ -2006,6 +2047,31 @@ "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", @@ -2405,6 +2471,31 @@ "MARS": "widow", "value": 29200.0 }, + { + "year": 2025, + "MARS": "single", + "value": 15000.0 + }, + { + "year": 2025, + "MARS": "mjoint", + "value": 30000.0 + }, + { + "year": 2025, + "MARS": "mseparate", + "value": 15000.0 + }, + { + "year": 2025, + "MARS": "headhh", + "value": 22500.0 + }, + { + "year": 2025, + "MARS": "widow", + "value": 30000.0 + }, { "year": 2026, "MARS": "single", @@ -2499,6 +2590,10 @@ { "year": 2024, "value": 1300.0 + }, + { + "year": 2025, + "value": 1350.0 } ], "validators": { @@ -2821,6 +2916,41 @@ "year": 2024, "MARS": "widow", "value": 1950.0 + }, + { + "year": 2023, + "MARS": "widow", + "value": 1500.0 + }, + { + "year": 2024, + "MARS": "widow", + "value": 1550.0 + }, + { + "year": 2025, + "MARS": "single", + "value": 2000.0 + }, + { + "year": 2025, + "MARS": "mjoint", + "value": 1600.0 + }, + { + "year": 2025, + "MARS": "mseparate", + "value": 1600.0 + }, + { + "year": 2025, + "MARS": "headhh", + "value": 2000.0 + }, + { + "year": 2025, + "MARS": "widow", + "value": 1600.0 } ], "validators": { @@ -3302,6 +3432,31 @@ "year": 2024, "MARS": "widow", "value": 0.0 + }, + { + "year": 2025, + "MARS": "single", + "value": 0.0 + }, + { + "year": 2025, + "MARS": "mjoint", + "value": 0.0 + }, + { + "year": 2025, + "MARS": "mseparate", + "value": 0.0 + }, + { + "year": 2025, + "MARS": "headhh", + "value": 0.0 + }, + { + "year": 2025, + "MARS": "widow", + "value": 0.0 } ], "validators": { @@ -3624,6 +3779,31 @@ "year": 2024, "MARS": "widow", "value": 0.0 + }, + { + "year": 2025, + "MARS": "single", + "value": 0.0 + }, + { + "year": 2025, + "MARS": "mjoint", + "value": 0.0 + }, + { + "year": 2025, + "MARS": "mseparate", + "value": 0.0 + }, + { + "year": 2025, + "MARS": "headhh", + "value": 0.0 + }, + { + "year": 2025, + "MARS": "widow", + "value": 0.0 } ], "validators": { @@ -3972,6 +4152,31 @@ "year": 2024, "MARS": "widow", "value": 0.0 + }, + { + "year": 2025, + "MARS": "single", + "value": 0.0 + }, + { + "year": 2025, + "MARS": "mjoint", + "value": 0.0 + }, + { + "year": 2025, + "MARS": "mseparate", + "value": 0.0 + }, + { + "year": 2025, + "MARS": "headhh", + "value": 0.0 + }, + { + "year": 2025, + "MARS": "widow", + "value": 0.0 } ], "validators": { @@ -4294,6 +4499,31 @@ "year": 2024, "MARS": "widow", "value": 0.0 + }, + { + "year": 2025, + "MARS": "single", + "value": 0.0 + }, + { + "year": 2025, + "MARS": "mjoint", + "value": 0.0 + }, + { + "year": 2025, + "MARS": "mseparate", + "value": 0.0 + }, + { + "year": 2025, + "MARS": "headhh", + "value": 0.0 + }, + { + "year": 2025, + "MARS": "widow", + "value": 0.0 } ], "validators": { @@ -5183,6 +5413,31 @@ "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 } ], "validators": { @@ -5557,16 +5812,41 @@ "year": 2024, "MARS": "widow", "value": 9e+99 - } - ], - "validators": { - "range": { - "min": 0, - "max": 9e+99 - } - }, - "compatible_data": { - "puf": true, + }, + { + "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 + } + ], + "validators": { + "range": { + "min": 0, + "max": 9e+99 + } + }, + "compatible_data": { + "puf": true, "cps": true } }, @@ -5931,6 +6211,31 @@ "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 } ], "validators": { @@ -6602,6 +6907,31 @@ "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 } ], "validators": { @@ -7046,6 +7376,31 @@ "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 } ], "validators": { @@ -7495,6 +7850,31 @@ "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 } ], "validators": { @@ -7898,6 +8278,31 @@ "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 } ], "validators": { @@ -8221,6 +8626,31 @@ "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", @@ -8739,6 +9169,31 @@ "year": 2024, "MARS": "widow", "value": 0.0 + }, + { + "year": 2025, + "MARS": "single", + "value": 0.0 + }, + { + "year": 2025, + "MARS": "mjoint", + "value": 0.0 + }, + { + "year": 2025, + "MARS": "mseparate", + "value": 0.0 + }, + { + "year": 2025, + "MARS": "headhh", + "value": 0.0 + }, + { + "year": 2025, + "MARS": "widow", + "value": 0.0 } ], "validators": { @@ -9201,6 +9656,31 @@ "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 } ], "validators": { @@ -9679,6 +10159,31 @@ "year": 2024, "MARS": "widow", "value": 94050.0 + }, + { + "year": 2025, + "MARS": "single", + "value": 48350.0 + }, + { + "year": 2025, + "MARS": "mjoint", + "value": 96700.0 + }, + { + "year": 2025, + "MARS": "mseparate", + "value": 48350.0 + }, + { + "year": 2025, + "MARS": "headhh", + "value": 64750.0 + }, + { + "year": 2025, + "MARS": "widow", + "value": 96700.0 } ], "validators": { @@ -10027,6 +10532,31 @@ "year": 2024, "MARS": "widow", "value": 583750.0 + }, + { + "year": 2025, + "MARS": "single", + "value": 533400.0 + }, + { + "year": 2025, + "MARS": "mjoint", + "value": 600050.0 + }, + { + "year": 2025, + "MARS": "mseparate", + "value": 300000.0 + }, + { + "year": 2025, + "MARS": "headhh", + "value": 566700.0 + }, + { + "year": 2025, + "MARS": "widow", + "value": 600050.0 } ], "validators": { @@ -10375,6 +10905,31 @@ "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 } ], "validators": { @@ -10749,6 +11304,31 @@ "year": 2024, "MARS": "widow", "value": 94050.0 + }, + { + "year": 2025, + "MARS": "single", + "value": 48350.0 + }, + { + "year": 2025, + "MARS": "mjoint", + "value": 96700.0 + }, + { + "year": 2025, + "MARS": "mseparate", + "value": 48350.0 + }, + { + "year": 2025, + "MARS": "headhh", + "value": 64750.0 + }, + { + "year": 2025, + "MARS": "widow", + "value": 96700.0 } ], "validators": { @@ -11097,6 +11677,31 @@ "year": 2024, "MARS": "widow", "value": 583750.0 + }, + { + "year": 2025, + "MARS": "single", + "value": 533400.0 + }, + { + "year": 2025, + "MARS": "mjoint", + "value": 600050.0 + }, + { + "year": 2025, + "MARS": "mseparate", + "value": 300000.0 + }, + { + "year": 2025, + "MARS": "headhh", + "value": 566700.0 + }, + { + "year": 2025, + "MARS": "widow", + "value": 600050.0 } ], "validators": { @@ -11445,6 +12050,31 @@ "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 } ], "validators": { @@ -11567,6 +12197,10 @@ { "year": 2024, "value": 0.0 + }, + { + "year": 2025, + "value": 0.0 } ], "validators": { @@ -11982,6 +12616,31 @@ "MARS": "widow", "value": 23200.0 }, + { + "year": 2025, + "MARS": "single", + "value": 11925.0 + }, + { + "year": 2025, + "MARS": "mjoint", + "value": 23850.0 + }, + { + "year": 2025, + "MARS": "mseparate", + "value": 11925.0 + }, + { + "year": 2025, + "MARS": "headhh", + "value": 17000.0 + }, + { + "year": 2025, + "MARS": "widow", + "value": 23850.0 + }, { "year": 2026, "MARS": "single", @@ -12395,6 +13054,31 @@ "MARS": "widow", "value": 94300.0 }, + { + "year": 2025, + "MARS": "single", + "value": 48475.0 + }, + { + "year": 2025, + "MARS": "mjoint", + "value": 96950.0 + }, + { + "year": 2025, + "MARS": "mseparate", + "value": 48475.0 + }, + { + "year": 2025, + "MARS": "headhh", + "value": 64850.0 + }, + { + "year": 2025, + "MARS": "widow", + "value": 96950.0 + }, { "year": 2026, "MARS": "single", @@ -12806,7 +13490,32 @@ { "year": 2024, "MARS": "widow", - "value": 201050.0 + "value": 201050.0 + }, + { + "year": 2025, + "MARS": "single", + "value": 103350.0 + }, + { + "year": 2025, + "MARS": "mjoint", + "value": 206700.0 + }, + { + "year": 2025, + "MARS": "mseparate", + "value": 103350.0 + }, + { + "year": 2025, + "MARS": "headhh", + "value": 103350.0 + }, + { + "year": 2025, + "MARS": "widow", + "value": 206700.0 }, { "year": 2026, @@ -13221,6 +13930,31 @@ "MARS": "widow", "value": 383900.0 }, + { + "year": 2025, + "MARS": "single", + "value": 197300.0 + }, + { + "year": 2025, + "MARS": "mjoint", + "value": 394600.0 + }, + { + "year": 2025, + "MARS": "mseparate", + "value": 197300.0 + }, + { + "year": 2025, + "MARS": "headhh", + "value": 197300.0 + }, + { + "year": 2025, + "MARS": "widow", + "value": 394600.0 + }, { "year": 2026, "MARS": "single", @@ -13634,6 +14368,31 @@ "MARS": "widow", "value": 487450.0 }, + { + "year": 2025, + "MARS": "single", + "value": 250525.0 + }, + { + "year": 2025, + "MARS": "mjoint", + "value": 501050.0 + }, + { + "year": 2025, + "MARS": "mseparate", + "value": 250525.0 + }, + { + "year": 2025, + "MARS": "headhh", + "value": 250500.0 + }, + { + "year": 2025, + "MARS": "widow", + "value": 501050.0 + }, { "year": 2026, "MARS": "single", @@ -14047,6 +14806,31 @@ "MARS": "widow", "value": 731200.0 }, + { + "year": 2025, + "MARS": "single", + "value": 626350.0 + }, + { + "year": 2025, + "MARS": "mjoint", + "value": 751600.0 + }, + { + "year": 2025, + "MARS": "mseparate", + "value": 375800.0 + }, + { + "year": 2025, + "MARS": "headhh", + "value": 626350.0 + }, + { + "year": 2025, + "MARS": "widow", + "value": 751600.0 + }, { "year": 2026, "MARS": "single", @@ -14460,6 +15244,31 @@ "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", @@ -14899,6 +15708,31 @@ "MARS": "widow", "value": 23200.0 }, + { + "year": 2025, + "MARS": "single", + "value": 11925.0 + }, + { + "year": 2025, + "MARS": "mjoint", + "value": 23850.0 + }, + { + "year": 2025, + "MARS": "mseparate", + "value": 11925.0 + }, + { + "year": 2025, + "MARS": "headhh", + "value": 17000.0 + }, + { + "year": 2025, + "MARS": "widow", + "value": 23850.0 + }, { "year": 2026, "MARS": "single", @@ -15312,6 +16146,31 @@ "MARS": "widow", "value": 94300.0 }, + { + "year": 2025, + "MARS": "single", + "value": 48475.0 + }, + { + "year": 2025, + "MARS": "mjoint", + "value": 96950.0 + }, + { + "year": 2025, + "MARS": "mseparate", + "value": 48475.0 + }, + { + "year": 2025, + "MARS": "headhh", + "value": 64850.0 + }, + { + "year": 2025, + "MARS": "widow", + "value": 96950.0 + }, { "year": 2026, "MARS": "single", @@ -15725,6 +16584,31 @@ "MARS": "widow", "value": 201050.0 }, + { + "year": 2025, + "MARS": "single", + "value": 103350.0 + }, + { + "year": 2025, + "MARS": "mjoint", + "value": 206700.0 + }, + { + "year": 2025, + "MARS": "mseparate", + "value": 103350.0 + }, + { + "year": 2025, + "MARS": "headhh", + "value": 103350.0 + }, + { + "year": 2025, + "MARS": "widow", + "value": 206700.0 + }, { "year": 2026, "MARS": "single", @@ -16138,6 +17022,31 @@ "MARS": "widow", "value": 383900.0 }, + { + "year": 2025, + "MARS": "single", + "value": 197300.0 + }, + { + "year": 2025, + "MARS": "mjoint", + "value": 394600.0 + }, + { + "year": 2025, + "MARS": "mseparate", + "value": 197300.0 + }, + { + "year": 2025, + "MARS": "headhh", + "value": 197300.0 + }, + { + "year": 2025, + "MARS": "widow", + "value": 394600.0 + }, { "year": 2026, "MARS": "single", @@ -16551,6 +17460,31 @@ "MARS": "widow", "value": 487450.0 }, + { + "year": 2025, + "MARS": "single", + "value": 250525.0 + }, + { + "year": 2025, + "MARS": "mjoint", + "value": 501050.0 + }, + { + "year": 2025, + "MARS": "mseparate", + "value": 250525.0 + }, + { + "year": 2025, + "MARS": "headhh", + "value": 250500.0 + }, + { + "year": 2025, + "MARS": "widow", + "value": 501050.0 + }, { "year": 2026, "MARS": "single", @@ -16964,6 +17898,31 @@ "MARS": "widow", "value": 731200.0 }, + { + "year": 2025, + "MARS": "single", + "value": 626350.0 + }, + { + "year": 2025, + "MARS": "mjoint", + "value": 751600.0 + }, + { + "year": 2025, + "MARS": "mseparate", + "value": 375800.0 + }, + { + "year": 2025, + "MARS": "headhh", + "value": 626350.0 + }, + { + "year": 2025, + "MARS": "widow", + "value": 751600.0 + }, { "year": 2026, "MARS": "single", @@ -17377,6 +18336,31 @@ "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", @@ -17884,29 +18868,54 @@ "value": 182100.0 }, { - "year": 2024, + "year": 2024, + "MARS": "single", + "value": 191950.0 + }, + { + "year": 2024, + "MARS": "mjoint", + "value": 383900.0 + }, + { + "year": 2024, + "MARS": "mseparate", + "value": 191950.0 + }, + { + "year": 2024, + "MARS": "headhh", + "value": 191950.0 + }, + { + "year": 2024, + "MARS": "widow", + "value": 191950.0 + }, + { + "year": 2025, "MARS": "single", - "value": 191950.0 + "value": 197300.0 }, { - "year": 2024, + "year": 2025, "MARS": "mjoint", - "value": 383900.0 + "value": 394600.0 }, { - "year": 2024, + "year": 2025, "MARS": "mseparate", - "value": 191950.0 + "value": 197300.0 }, { - "year": 2024, + "year": 2025, "MARS": "headhh", - "value": 191950.0 + "value": 197300.0 }, { - "year": 2024, + "year": 2025, "MARS": "widow", - "value": 191950.0 + "value": 197300.0 }, { "year": 2026, @@ -18688,6 +19697,31 @@ "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 } ], "validators": { @@ -19192,6 +20226,31 @@ "MARS": "widow", "value": 133300.0 }, + { + "year": 2025, + "MARS": "single", + "value": 88100.0 + }, + { + "year": 2025, + "MARS": "mjoint", + "value": 137000.0 + }, + { + "year": 2025, + "MARS": "mseparate", + "value": 68500.0 + }, + { + "year": 2025, + "MARS": "headhh", + "value": 88100.0 + }, + { + "year": 2025, + "MARS": "widow", + "value": 137000.0 + }, { "year": 2026, "MARS": "single", @@ -19565,6 +20624,31 @@ "MARS": "widow", "value": 1218700.0 }, + { + "year": 2025, + "MARS": "single", + "value": 626350.0 + }, + { + "year": 2025, + "MARS": "mjoint", + "value": 1252700.0 + }, + { + "year": 2025, + "MARS": "mseparate", + "value": 626350.0 + }, + { + "year": 2025, + "MARS": "headhh", + "value": 626350.0 + }, + { + "year": 2025, + "MARS": "widow", + "value": 1252700.0 + }, { "year": 2026, "MARS": "single", @@ -19659,6 +20743,10 @@ { "year": 2024, "value": 9250.0 + }, + { + "year": 2025, + "value": 9550.0 } ], "validators": { @@ -19781,6 +20869,10 @@ { "year": 2024, "value": 232600.0 + }, + { + "year": 2025, + "value": 239100.0 } ], "validators": { @@ -19878,6 +20970,10 @@ "year": 2024, "value": 875950.0 }, + { + "year": 2025, + "value": 900350.0 + }, { "year": 2026, "value": 326410.0 @@ -21139,6 +22235,26 @@ "year": 2024, "EIC": "3+kids", "value": 7830.0 + }, + { + "year": 2025, + "EIC": "0kids", + "value": 649.0 + }, + { + "year": 2025, + "EIC": "1kid", + "value": 4328.0 + }, + { + "year": 2025, + "EIC": "2kids", + "value": 7152.0 + }, + { + "year": 2025, + "EIC": "3+kids", + "value": 8046.0 } ], "validators": { @@ -21647,6 +22763,26 @@ "year": 2024, "EIC": "3+kids", "value": 22720.0 + }, + { + "year": 2025, + "EIC": "0kids", + "value": 10620.0 + }, + { + "year": 2025, + "EIC": "1kid", + "value": 23350.0 + }, + { + "year": 2025, + "EIC": "2kids", + "value": 23350.0 + }, + { + "year": 2025, + "EIC": "3+kids", + "value": 23350.0 } ], "validators": { @@ -21909,6 +23045,26 @@ "year": 2024, "EIC": "3+kids", "value": 6920.0 + }, + { + "year": 2025, + "EIC": "0kids", + "value": 7110.0 + }, + { + "year": 2025, + "EIC": "1kid", + "value": 7120.0 + }, + { + "year": 2025, + "EIC": "2kids", + "value": 7120.0 + }, + { + "year": 2025, + "EIC": "3+kids", + "value": 7120.0 } ], "validators": { @@ -22051,6 +23207,10 @@ { "year": 2024, "value": 11600.0 + }, + { + "year": 2025, + "value": 11950.0 } ], "validators": { @@ -22203,6 +23363,10 @@ { "year": 2024, "value": 0.0 + }, + { + "year": 2025, + "value": 0.0 } ], "validators": { @@ -22973,6 +24137,31 @@ "year": 2024, "MARS": "widow", "value": 0.0 + }, + { + "year": 2025, + "MARS": "single", + "value": 0.0 + }, + { + "year": 2025, + "MARS": "mjoint", + "value": 0.0 + }, + { + "year": 2025, + "MARS": "mseparate", + "value": 0.0 + }, + { + "year": 2025, + "MARS": "headhh", + "value": 0.0 + }, + { + "year": 2025, + "MARS": "widow", + "value": 0.0 } ], "validators": { @@ -23433,6 +24622,31 @@ "year": 2024, "MARS": "widow", "value": 1000000.0 + }, + { + "year": 2025, + "MARS": "single", + "value": 1000000.0 + }, + { + "year": 2025, + "MARS": "mjoint", + "value": 1000000.0 + }, + { + "year": 2025, + "MARS": "mseparate", + "value": 500000.0 + }, + { + "year": 2025, + "MARS": "headhh", + "value": 1000000.0 + }, + { + "year": 2025, + "MARS": "widow", + "value": 1000000.0 } ], "validators": { @@ -23755,6 +24969,31 @@ "year": 2024, "MARS": "widow", "value": 2000000.0 + }, + { + "year": 2025, + "MARS": "single", + "value": 2000000.0 + }, + { + "year": 2025, + "MARS": "mjoint", + "value": 2000000.0 + }, + { + "year": 2025, + "MARS": "mseparate", + "value": 1000000.0 + }, + { + "year": 2025, + "MARS": "headhh", + "value": 2000000.0 + }, + { + "year": 2025, + "MARS": "widow", + "value": 2000000.0 } ], "validators": { @@ -24103,6 +25342,31 @@ "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 } ], "validators": { @@ -24199,6 +25463,10 @@ { "year": 2024, "value": 0.0 + }, + { + "year": 2025, + "value": 0.0 } ], "validators": { @@ -24269,6 +25537,10 @@ { "year": 2024, "value": 0.0 + }, + { + "year": 2025, + "value": 0.0 } ], "validators": { @@ -24339,6 +25611,10 @@ { "year": 2024, "value": 0.0 + }, + { + "year": 2025, + "value": 0.0 } ], "validators": { From 53541fd45f3a75b41f99929e58454de05aa71f93 Mon Sep 17 00:00:00 2001 From: "martin.holmer@gmail.com" Date: Tue, 12 Nov 2024 14:52:33 -0500 Subject: [PATCH 19/30] Fix policy_current_law.json typo --- taxcalc/policy_current_law.json | 1 - 1 file changed, 1 deletion(-) diff --git a/taxcalc/policy_current_law.json b/taxcalc/policy_current_law.json index 47a485329..74c03ecc0 100644 --- a/taxcalc/policy_current_law.json +++ b/taxcalc/policy_current_law.json @@ -5847,7 +5847,6 @@ }, "compatible_data": { "puf": true, - "cps": true } }, "ID_RealEstate_hc": { From 99d4f319b78ba94b8e236e8f7b6cf78a5a77828c Mon Sep 17 00:00:00 2001 From: "martin.holmer@gmail.com" Date: Tue, 12 Nov 2024 14:58:44 -0500 Subject: [PATCH 20/30] Fix JSON syntax error in policy_current_law.json --- taxcalc/policy_current_law.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/taxcalc/policy_current_law.json b/taxcalc/policy_current_law.json index 74c03ecc0..f107d01e3 100644 --- a/taxcalc/policy_current_law.json +++ b/taxcalc/policy_current_law.json @@ -5846,7 +5846,7 @@ } }, "compatible_data": { - "puf": true, + "puf": true } }, "ID_RealEstate_hc": { From 268acc9e81f27737ef316b2ac3661728639be600 Mon Sep 17 00:00:00 2001 From: "martin.holmer@gmail.com" Date: Tue, 12 Nov 2024 15:33:46 -0500 Subject: [PATCH 21/30] Fix policy_current_law.json typos --- taxcalc/policy_current_law.json | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/taxcalc/policy_current_law.json b/taxcalc/policy_current_law.json index f107d01e3..882aa0fbe 100644 --- a/taxcalc/policy_current_law.json +++ b/taxcalc/policy_current_law.json @@ -2917,16 +2917,6 @@ "MARS": "widow", "value": 1950.0 }, - { - "year": 2023, - "MARS": "widow", - "value": 1500.0 - }, - { - "year": 2024, - "MARS": "widow", - "value": 1550.0 - }, { "year": 2025, "MARS": "single", @@ -5846,7 +5836,8 @@ } }, "compatible_data": { - "puf": true + "puf": true, + "cps": true } }, "ID_RealEstate_hc": { From daae5b1a757536f2031cc36a08edc95be3224545 Mon Sep 17 00:00:00 2001 From: "martin.holmer@gmail.com" Date: Tue, 12 Nov 2024 15:54:06 -0500 Subject: [PATCH 22/30] Update cpscsv_agg_expect.csv file --- taxcalc/tests/cpscsv_agg_expect.csv | 30 ++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/taxcalc/tests/cpscsv_agg_expect.csv b/taxcalc/tests/cpscsv_agg_expect.csv index 62c315997..a4187a91a 100644 --- a/taxcalc/tests/cpscsv_agg_expect.csv +++ b/taxcalc/tests/cpscsv_agg_expect.csv @@ -1,26 +1,26 @@ ,2017,2018,2019,2020,2021,2022,2023,2024,2025,2026 Returns (#m),187.1,199.2,201.9,204.5,207.1,209.7,212.3,214.9,217.5,220.1 AGI ($b),9087.6,10714.8,11167.0,11573.2,13174.9,13543.8,14390.3,15077.5,15785.2,16487.0 -Itemizers (#m),62.8,23.9,25.0,27.5,31.2,31.2,30.0,29.6,30.6,81.1 -Itemized Deduction ($b),1218.6,612.0,655.1,745.4,862.7,881.9,891.8,917.9,968.3,2181.6 -Standard Deduction Filers (#m),124.3,175.3,176.9,176.9,175.8,178.5,182.3,185.3,186.9,139.0 -Standard Deduction ($b),1092.1,2951.3,3026.1,3080.8,3091.9,3231.4,3534.5,3791.7,3921.6,1610.3 +Itemizers (#m),62.8,23.9,25.0,27.5,31.2,31.2,30.0,29.6,30.4,81.1 +Itemized Deduction ($b),1218.6,612.0,655.1,745.4,862.7,881.9,891.8,917.9,964.3,2181.4 +Standard Deduction Filers (#m),124.3,175.3,176.9,176.9,175.8,178.5,182.3,185.3,187.1,139.0 +Standard Deduction ($b),1092.1,2951.3,3026.1,3080.8,3091.9,3231.4,3534.5,3791.7,3933.0,1610.8 Personal Exemption ($b),1383.6,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2081.5 -Taxable Income ($b),6230.6,7959.2,8322.8,8615.4,10049.9,10332.2,10954.0,11432.4,11996.4,11810.2 -Regular Tax ($b),1108.0,1380.0,1449.0,1497.4,1762.8,1837.4,1939.0,2018.1,2125.0,2347.7 -AMT Income ($b),8319.8,10212.6,10630.3,10965.7,12473.9,12821.8,13655.8,14315.8,14980.8,15102.6 +Taxable Income ($b),6230.6,7959.2,8322.8,8615.4,10049.9,10332.2,10954.0,11432.4,11991.8,11810.0 +Regular Tax ($b),1108.0,1380.0,1449.0,1497.4,1762.8,1837.4,1939.0,2018.1,2122.8,2347.6 +AMT Income ($b),8319.8,10212.6,10630.3,10965.7,12473.9,12821.8,13655.8,14315.8,14983.7,15102.7 AMT Liability ($b),8.1,0.4,0.4,0.5,1.4,0.7,0.7,0.6,0.6,17.1 AMT Filers (#m),2.6,0.1,0.1,0.1,0.2,0.1,0.1,0.1,0.1,4.1 -Tax before Credits ($b),1116.0,1380.4,1449.4,1497.9,1764.3,1838.0,1939.7,2018.7,2125.6,2364.9 -Refundable Credits ($b),70.8,102.5,102.7,655.0,827.1,98.5,106.2,111.4,111.9,97.5 -Nonrefundable Credits ($b),32.7,97.2,99.2,99.2,0.0,107.7,108.4,109.4,111.3,30.0 +Tax before Credits ($b),1116.0,1380.4,1449.4,1497.9,1764.3,1838.0,1939.7,2018.7,2123.4,2364.7 +Refundable Credits ($b),70.8,102.5,102.7,655.0,827.1,98.5,106.2,111.9,112.8,97.8 +Nonrefundable Credits ($b),32.7,97.2,99.2,99.2,0.0,107.7,108.4,109.4,111.2,30.0 Reform Surtaxes ($b),0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 Other Taxes ($b),5.5,10.7,11.3,12.6,13.9,14.4,16.5,17.6,18.8,19.9 -Ind Income Tax ($b),1018.1,1191.4,1258.9,756.3,951.0,1646.2,1741.7,1815.6,1921.2,2257.4 -Payroll Taxes ($b),1040.8,1141.6,1194.9,1217.9,1318.7,1421.6,1509.2,1585.1,1659.9,1734.1 -Combined Liability ($b),2059.0,2333.0,2453.8,1974.2,2269.7,3067.8,3250.9,3400.7,3581.1,3991.5 -With Income Tax <= 0 (#m),88.1,96.2,97.0,135.4,127.8,96.1,97.8,99.1,99.5,97.3 -With Combined Tax <= 0 (#m),62.8,65.4,66.4,98.2,97.7,67.9,69.3,70.4,71.3,70.6 +Ind Income Tax ($b),1018.1,1191.4,1258.9,756.3,951.0,1646.2,1741.7,1815.1,1918.2,2256.9 +Payroll Taxes ($b),1040.8,1141.6,1194.9,1217.9,1318.7,1421.6,1509.2,1585.1,1660.8,1735.0 +Combined Liability ($b),2059.0,2333.0,2453.8,1974.2,2269.7,3067.8,3250.9,3400.2,3578.9,3991.9 +With Income Tax <= 0 (#m),88.1,96.2,97.0,135.4,127.8,96.1,97.8,99.1,99.6,97.3 +With Combined Tax <= 0 (#m),62.8,65.4,66.4,98.2,97.7,67.9,69.3,70.4,71.3,70.7 UBI Benefits ($b),0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 "Total Benefits, Consumption Value ($b)",2790.7,3225.5,3429.9,3617.0,3993.0,4069.6,4390.5,4696.3,4983.2,5266.5 Total Benefits Cost ($b),2790.7,3225.5,3429.9,3617.0,3993.0,4069.6,4390.5,4696.3,4983.2,5266.5 From 006982e4e43acf46ffb9a00d47ca3e76ffd27094 Mon Sep 17 00:00:00 2001 From: "martin.holmer@gmail.com" Date: Tue, 12 Nov 2024 16:00:45 -0500 Subject: [PATCH 23/30] Update Policy.LAST_KNOWN_YEAR from 2024 to 2025 --- taxcalc/policy.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/taxcalc/policy.py b/taxcalc/policy.py index 4f1fa29a9..bda068914 100644 --- a/taxcalc/policy.py +++ b/taxcalc/policy.py @@ -38,7 +38,7 @@ class instance: Policy DEFAULTS_FILE_NAME = 'policy_current_law.json' DEFAULTS_FILE_PATH = os.path.abspath(os.path.dirname(__file__)) JSON_START_YEAR = 2013 # remains the same unless earlier data added - LAST_KNOWN_YEAR = 2024 # last year for which indexed param vals are known + LAST_KNOWN_YEAR = 2025 # last year for which indexed param vals are known # should increase LAST_KNOWN_YEAR by one every calendar year LAST_BUDGET_YEAR = 2034 # last extrapolation year # should increase LAST_BUDGET_YEAR by one every calendar year From 0a8ac78a64ddeea0d2274ff07ecebcfd5a6b1828 Mon Sep 17 00:00:00 2001 From: "martin.holmer@gmail.com" Date: Tue, 12 Nov 2024 16:07:38 -0500 Subject: [PATCH 24/30] Slight update in expected cost of ext.json reform --- taxcalc/tests/test_reforms.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/taxcalc/tests/test_reforms.py b/taxcalc/tests/test_reforms.py index d34c7ace6..894ce108e 100644 --- a/taxcalc/tests/test_reforms.py +++ b/taxcalc/tests/test_reforms.py @@ -383,4 +383,4 @@ def test_ext_reform(tests_path): iitax_ext = calc_ext.array('iitax') rdiff = iitax_ext - iitax_end weighted_sum_rdiff = (rdiff * calc_end.array('s006')).sum() * 1.0e-9 - assert np.allclose([weighted_sum_rdiff], [-230.805], rtol=0.0, atol=0.01) + assert np.allclose([weighted_sum_rdiff], [-231.304], rtol=0.0, atol=0.01) From 79f79e6e301fed282061e4d9ef497a1fce008d9a Mon Sep 17 00:00:00 2001 From: "martin.holmer@gmail.com" Date: Tue, 12 Nov 2024 16:51:48 -0500 Subject: [PATCH 25/30] Slight updates of two PUF expected test results files --- taxcalc/tests/puf_var_wght_means_by_year.csv | 8 ++--- taxcalc/tests/pufcsv_agg_expect.csv | 32 ++++++++++---------- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/taxcalc/tests/puf_var_wght_means_by_year.csv b/taxcalc/tests/puf_var_wght_means_by_year.csv index 4f4d61834..49b011bd1 100644 --- a/taxcalc/tests/puf_var_wght_means_by_year.csv +++ b/taxcalc/tests/puf_var_wght_means_by_year.csv @@ -1,10 +1,10 @@ ,description,2013,2014,2015,2016,2017,2018,2019,2020,2021,2022,2023,2024,2025,2026,2027,2028,2029,2030,2031,2032,2033,2034 -c00100,Federal AGI, 50840, 54457, 54942, 55071, 58024, 60318, 61591, 63130, 73017, 72224, 75916, 77963, 80250, 82362, 84514, 86849, 89344, 91950, 94677, 98306, 99812, 102616 +c00100,Federal AGI, 50840, 54457, 54942, 55071, 58024, 60318, 61591, 63130, 73017, 72224, 75916, 77963, 80250, 82362, 84514, 86849, 89344, 91949, 94677, 98305, 99811, 102616 c02500,OASDI benefits in AGI, 1295, 1394, 1416, 1479, 1501, 1587, 1690, 1832, 2005, 2129, 2428, 2659, 2844, 3028, 3214, 3413, 3619, 3833, 4055, 4308, 4459, 4698 c04470,Post-phase-out itemized deduction, 5908, 6037, 6150, 6383, 6563, 6803, 7011, 7493, 7881, 8018, 8324, 8672, 8950, 9288, 9614, 9940, 10266, 10611, 10970, 11450, 11641, 12004 c04600,Post-phase-out personal exemption, 7105, 7131, 7163, 7217, 7149, 7247, 7380, 7471, 7481, 7806, 8373, 8834, 9054, 9248, 9434, 9612, 9797, 9988, 10186, 10398, 10579, 10791 -c04800,Federal regular taxable income, 35753, 39297, 39663, 39591, 42568, 44523, 45416, 46476, 55959, 54603, 57321, 58385, 60072, 61575, 63147, 64911, 66831, 68828, 70916, 73686, 74835, 76970 -c05200,Regular tax on taxable income, 7671, 8731, 8725, 8584, 9499, 10001, 10138, 10475, 13361, 12576, 13165, 13230, 13561, 13847, 14165, 14544, 14965, 15398, 15840, 16404, 16816, 17278 +c04800,Federal regular taxable income, 35753, 39297, 39663, 39591, 42568, 44523, 45416, 46476, 55959, 54603, 57321, 58385, 60072, 61575, 63147, 64911, 66831, 68828, 70916, 73685, 74835, 76970 +c05200,Regular tax on taxable income, 7671, 8731, 8725, 8584, 9499, 10001, 10138, 10475, 13361, 12576, 13165, 13230, 13561, 13847, 14164, 14544, 14965, 15398, 15840, 16404, 16816, 17278 c07180,Child care credit, 17, 17, 17, 17, 17, 17, 17, 17, 0, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 16, 16 c07220,Child tax credit (adjusted), 158, 155, 147, 143, 139, 134, 129, 124, 359, 116, 107, 101, 97, 94, 91, 88, 85, 82, 80, 77, 74, 72 c09600,Federal AMT liability, 212, 227, 240, 251, 268, 280, 288, 317, 351, 339, 347, 357, 371, 387, 400, 415, 430, 446, 458, 487, 496, 513 @@ -75,6 +75,6 @@ nu13,Number of dependents under 13 years old, 0, 0, 0, 0 p08000,Other tax credits (but not including Sch R credit), 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 p22250,Sch D: Net short-term capital gains/losses, -120, -173, -172, -151, -195, -212, -202, -267, -481, -308, -330, -304, -299, -292, -288, -288, -290, -293, -284, -286, -326, -335 p23250,Sch D: Net long-term capital gains/losses, 2284, 3191, 3138, 2776, 3680, 3912, 3596, 4616, 8212, 5153, 5389, 4987, 4839, 4662, 4598, 4612, 4669, 4756, 4864, 5023, 5090, 5224 -payrolltax,Payroll taxes (ee+er) for OASDI+HI, 5193, 5382, 5440, 5516, 5676, 5834, 6009, 6042, 6437, 6824, 7161, 7425, 7674, 7914, 8144, 8377, 8619, 8873, 9142, 9503, 9599, 9866 +payrolltax,Payroll taxes (ee+er) for OASDI+HI, 5193, 5382, 5440, 5516, 5676, 5834, 6009, 6042, 6437, 6824, 7161, 7425, 7679, 7919, 8150, 8383, 8625, 8879, 9148, 9509, 9606, 9872 pencon_p,Contributions to defined-contribution pension plans for taxpayer, 856, 897, 916, 941, 963, 996, 1029, 1030, 1107, 1185, 1239, 1282, 1326, 1368, 1408, 1448, 1491, 1532, 1578, 1638, 1655, 1698 pencon_s,Contributions to defined-contribution pension plans for spouse, 393, 410, 421, 424, 440, 452, 466, 466, 500, 535, 558, 577, 595, 612, 629, 645, 661, 678, 695, 720, 738, 756 diff --git a/taxcalc/tests/pufcsv_agg_expect.csv b/taxcalc/tests/pufcsv_agg_expect.csv index 8b7b27a3e..81e192ec0 100644 --- a/taxcalc/tests/pufcsv_agg_expect.csv +++ b/taxcalc/tests/pufcsv_agg_expect.csv @@ -1,26 +1,26 @@ ,2017,2018,2019,2020,2021,2022,2023,2024,2025,2026 Returns (#m),190.9,194.3,197.3,200.1,202.9,205.6,208.4,211.2,214.0,216.8 -AGI ($b),11078.7,11816.6,12247.2,12722.3,14930.0,14973.9,15955.0,16597.4,17310.1,18001.3 -Itemizers (#m),45.7,19.4,20.0,21.0,22.6,22.8,21.7,21.2,21.3,52.0 -Itemized Deduction ($b),1274.3,602.7,633.9,692.3,761.9,782.7,788.7,808.1,835.2,2047.5 -Standard Deduction Filers (#m),145.2,174.8,177.2,178.5,179.6,182.8,186.7,190.0,192.6,164.8 -Standard Deduction ($b),1239.3,2865.3,2954.5,3025.8,3081.1,3234.0,3537.5,3798.4,3952.6,1853.9 +AGI ($b),11078.7,11816.6,12247.2,12722.3,14930.0,14973.9,15955.0,16597.4,17310.1,18001.2 +Itemizers (#m),45.7,19.4,20.0,21.0,22.6,22.8,21.7,21.2,21.2,51.9 +Itemized Deduction ($b),1274.3,602.7,633.9,692.3,761.9,782.7,788.7,808.1,833.2,2047.4 +Standard Deduction Filers (#m),145.2,174.8,177.2,178.5,179.6,182.8,186.7,190.0,192.7,164.8 +Standard Deduction ($b),1239.3,2865.3,2954.5,3025.8,3081.1,3234.0,3537.5,3798.4,3962.0,1854.3 Personal Exemption ($b),1365.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1959.0 -Taxable Income ($b),8112.2,9179.2,9520.5,9907.3,12003.2,11927.7,12697.8,13130.7,13703.8,13460.3 -Regular Tax ($b),1656.8,1712.3,1778.2,1838.3,2281.5,2282.7,2423.4,2489.9,2601.1,2816.2 -AMT Income ($b),10512.4,11343.5,11749.7,12180.1,14330.8,14356.1,15323.1,15943.0,16630.5,17082.5 -AMT Liability ($b),51.3,22.1,23.0,25.1,27.8,27.4,28.8,30.3,31.8,87.9 +Taxable Income ($b),8112.2,9179.2,9520.5,9907.3,12003.2,11927.7,12697.8,13130.7,13699.2,13460.1 +Regular Tax ($b),1656.8,1712.3,1778.2,1838.3,2281.5,2282.7,2423.4,2489.9,2598.6,2816.0 +AMT Income ($b),10512.4,11343.5,11749.7,12180.1,14330.8,14356.1,15323.1,15943.0,16631.7,17082.5 +AMT Liability ($b),51.3,22.1,23.0,25.1,27.8,27.4,28.8,30.3,31.8,87.8 AMT Filers (#m),5.7,0.2,0.2,0.3,0.4,0.3,0.3,0.3,0.3,7.4 -Tax before Credits ($b),1708.1,1734.4,1801.1,1863.4,2309.4,2310.1,2452.2,2520.2,2632.9,2904.0 -Refundable Credits ($b),102.9,117.5,118.5,642.0,802.6,119.2,126.9,132.8,135.0,121.7 +Tax before Credits ($b),1708.1,1734.4,1801.1,1863.4,2309.4,2310.1,2452.2,2520.2,2630.5,2903.8 +Refundable Credits ($b),102.9,117.5,118.5,642.0,802.6,119.2,126.9,133.5,136.0,122.0 Nonrefundable Credits ($b),67.0,127.3,129.2,128.5,47.6,141.0,143.3,144.0,145.7,77.7 Reform Surtaxes ($b),0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 Other Taxes ($b),40.0,44.8,43.6,52.9,84.9,61.5,66.5,65.2,66.0,66.3 -Ind Income Tax ($b),1578.2,1534.3,1597.0,1145.8,1544.0,2111.5,2248.5,2308.6,2418.2,2770.9 -Payroll Taxes ($b),1083.8,1133.3,1185.4,1209.0,1306.0,1403.4,1492.6,1568.0,1642.1,1715.4 -Combined Liability ($b),2662.0,2667.7,2782.4,2354.8,2850.0,3514.9,3741.1,3876.6,4060.3,4486.3 -With Income Tax <= 0 (#m),92.8,98.6,99.7,131.7,125.0,100.3,101.8,103.4,104.3,100.9 -With Combined Tax <= 0 (#m),63.4,65.6,66.8,102.1,94.5,68.9,70.2,71.6,72.6,72.3 +Ind Income Tax ($b),1578.2,1534.3,1597.0,1145.8,1544.0,2111.5,2248.5,2308.0,2414.8,2770.5 +Payroll Taxes ($b),1083.8,1133.3,1185.4,1209.0,1306.0,1403.4,1492.6,1568.0,1643.2,1716.5 +Combined Liability ($b),2662.0,2667.7,2782.4,2354.8,2850.0,3514.9,3741.1,3876.0,4058.0,4487.0 +With Income Tax <= 0 (#m),92.8,98.6,99.7,131.7,125.0,100.3,101.8,103.4,104.3,101.0 +With Combined Tax <= 0 (#m),63.4,65.6,66.8,102.1,94.5,68.9,70.2,71.6,72.7,72.4 UBI Benefits ($b),0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 "Total Benefits, Consumption Value ($b)",1052.3,1104.9,1175.3,1243.9,1476.4,1411.5,1569.5,1707.8,1818.1,1924.4 Total Benefits Cost ($b),1052.3,1104.9,1175.3,1243.9,1476.4,1411.5,1569.5,1707.8,1818.1,1924.4 From 46e1e8c429f8dc80e23eb5c398ed1b120ebd67b3 Mon Sep 17 00:00:00 2001 From: "martin.holmer@gmail.com" Date: Wed, 13 Nov 2024 09:24:25 -0500 Subject: [PATCH 26/30] No check-in fail if codecov upload does not work --- .github/workflows/build_and_test.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build_and_test.yml b/.github/workflows/build_and_test.yml index c1c4ac08e..decf8bd48 100644 --- a/.github/workflows/build_and_test.yml +++ b/.github/workflows/build_and_test.yml @@ -30,11 +30,13 @@ jobs: pip install -e . --user pip install pytest-cov --user pip install pytest-pycodestyle --user + - name: Test shell: bash -l {0} working-directory: ./ run: | pytest -m 'not requires_pufcsv and not pre_release and not local' --cov=./ --cov-report=xml + - name: Upload coverage to Codecov if: matrix.os == 'ubuntu-latest' && contains(github.repository, 'PSLmodels/Tax-Calculator') uses: codecov/codecov-action@v4 @@ -43,5 +45,6 @@ jobs: file: ./coverage.xml flags: unittests name: codecov-umbrella - fail_ci_if_error: true + #fail_ci_if_error: true + fail_ci_if_error: false verbose: true From e9a9b2d0628a4793941d6be66f7e0fcf2542852c Mon Sep 17 00:00:00 2001 From: "martin.holmer@gmail.com" Date: Wed, 13 Nov 2024 11:33:16 -0500 Subject: [PATCH 27/30] Changes for new release --- docs/about/releases.md | 16 +++++++++++++ docs/index.md | 2 +- setup.py | 2 +- taxcalc/__init__.py | 2 +- taxcalc/policy_current_law.json | 40 ++++++++++++++++----------------- taxcalc/reforms/ext.json | 38 +++++++++++++++---------------- update_pcl.py | 4 ++-- 7 files changed, 60 insertions(+), 44 deletions(-) diff --git a/docs/about/releases.md b/docs/about/releases.md index 59e048970..88334cf50 100644 --- a/docs/about/releases.md +++ b/docs/about/releases.md @@ -4,6 +4,22 @@ Go [here](https://github.com/PSLmodels/Tax-Calculator/pulls?q=is%3Apr+is%3Aclose for a complete commit history. +2024-11-14 Release 4.3.3 +------------------------ +(last merged pull request is +[#2837](https://github.com/PSLmodels/Tax-Calculator/pull/2837)) + +**This is a minor enhancement release.** + +**API Changes** + +**New Features** +- Clarify TCJA-after-2025 documentation +[[#2836](https://github.com/PSLmodels/Tax-Calculator/pull/2836) by Martin Holmer] +- Add known values of 2025 policy parameters +[[#2837](https://github.com/PSLmodels/Tax-Calculator/pull/2837) by Martin Holmer] + + 2024-11-08 Release 4.3.2 ------------------------ (last merged pull request is diff --git a/docs/index.md b/docs/index.md index e6309e7e6..ba6115221 100644 --- a/docs/index.md +++ b/docs/index.md @@ -57,7 +57,7 @@ The cross-model validation work with NBER's TAXSIM-27 model is described ## Latest release -{doc}`4.3.2 (2024-11-08) ` +{doc}`4.3.3 (2024-11-14) ` If you are already using Tax-Calculator, upgrade using the following command: diff --git a/setup.py b/setup.py index 48fa78297..a6b665ede 100644 --- a/setup.py +++ b/setup.py @@ -3,7 +3,7 @@ with open("README.md") as f: longdesc = f.read() -version = "4.3.2" +version = "4.3.3" config = { "description": "Tax Calculator", diff --git a/taxcalc/__init__.py b/taxcalc/__init__.py index 73242a5ff..0daa7de10 100644 --- a/taxcalc/__init__.py +++ b/taxcalc/__init__.py @@ -14,6 +14,6 @@ from taxcalc.utils import * from taxcalc.cli import * -__version__ = '4.3.2' +__version__ = '4.3.3' __min_python3_version__ = 10 __max_python3_version__ = 12 diff --git a/taxcalc/policy_current_law.json b/taxcalc/policy_current_law.json index 882aa0fbe..53105b533 100644 --- a/taxcalc/policy_current_law.json +++ b/taxcalc/policy_current_law.json @@ -1598,54 +1598,54 @@ "value": 610000.0 }, { - "year": 2029, + "year": 2025, "MARS": "single", - "value": 9e+99 + "value": 313000.0 }, { - "year": 2029, + "year": 2025, "MARS": "mjoint", - "value": 9e+99 + "value": 626000.0 }, { - "year": 2029, + "year": 2025, "MARS": "mseparate", - "value": 9e+99 + "value": 313000.0 }, { - "year": 2029, + "year": 2025, "MARS": "headhh", - "value": 9e+99 + "value": 313000.0 }, { - "year": 2029, + "year": 2025, "MARS": "widow", - "value": 9e+99 + "value": 626000.0 }, { - "year": 2025, + "year": 2029, "MARS": "single", - "value": 313000.0 + "value": 9e+99 }, { - "year": 2025, + "year": 2029, "MARS": "mjoint", - "value": 626000.0 + "value": 9e+99 }, { - "year": 2025, + "year": 2029, "MARS": "mseparate", - "value": 313000.0 + "value": 9e+99 }, { - "year": 2025, + "year": 2029, "MARS": "headhh", - "value": 313000.0 + "value": 9e+99 }, { - "year": 2025, + "year": 2029, "MARS": "widow", - "value": 626000.0 + "value": 9e+99 } ], "validators": { diff --git a/taxcalc/reforms/ext.json b/taxcalc/reforms/ext.json index ab913595b..cd2e2d89f 100644 --- a/taxcalc/reforms/ext.json +++ b/taxcalc/reforms/ext.json @@ -1,32 +1,32 @@ // REFORM TO EXTEND TEMPORARY TCJA PROVISIONS BEYOND 2025 -// USING TAX-CALCULATOR 4.3.2 +// USING TAX-CALCULATOR 4.3.3 // WITH 2025-to-2026 INDEXING FACTOR = 1.022000 // AND 2028-to-2029 INDEXING FACTOR = 1.019400 { "II_rt1": {"2026": 0.10}, - "II_brk1": {"2026": [12157.51, 24315.02, 12157.51, 17345.41, 24315.02]}, + "II_brk1": {"2026": [12187.35, 24374.7, 12187.35, 17374.0, 24374.7]}, "PT_rt1": {"2026": 0.10}, - "PT_brk1": {"2026": [12157.51, 24315.02, 12157.51, 17345.41, 24315.02]}, + "PT_brk1": {"2026": [12187.35, 24374.7, 12187.35, 17374.0, 24374.7]}, "II_rt2": {"2026": 0.12}, - "II_brk2": {"2026": [49416.07, 98832.15, 49416.07, 66132.65, 98832.15]}, + "II_brk2": {"2026": [49541.45, 99082.9, 49541.45, 66276.7, 99082.9]}, "PT_rt2": {"2026": 0.12}, - "PT_brk2": {"2026": [49416.07, 98832.15, 49416.07, 66132.65, 98832.15]}, + "PT_brk2": {"2026": [49541.45, 99082.9, 49541.45, 66276.7, 99082.9]}, "II_rt3": {"2026": 0.22}, - "II_brk3": {"2026": [105356.33, 210712.67, 105356.33, 105330.13, 210712.67]}, + "II_brk3": {"2026": [105623.7, 211247.4, 105623.7, 105623.7, 211247.4]}, "PT_rt3": {"2026": 0.22}, - "PT_brk3": {"2026": [105356.33, 210712.67, 105356.33, 105330.13, 210712.67]}, + "PT_brk3": {"2026": [105623.7, 211247.4, 105623.7, 105623.7, 211247.4]}, "II_rt4": {"2026": 0.24}, - "II_brk4": {"2026": [201175.3, 402350.62, 201175.3, 201175.3, 402350.62]}, + "II_brk4": {"2026": [201640.6, 403281.2, 201640.6, 201640.6, 403281.2]}, "PT_rt4": {"2026": 0.24}, - "PT_brk4": {"2026": [201175.3, 402350.62, 201175.3, 201175.3, 402350.62]}, + "PT_brk4": {"2026": [201640.6, 403281.2, 201640.6, 201640.6, 403281.2]}, "II_rt5": {"2026": 0.32}, - "II_brk5": {"2026": [255438.67, 510877.34, 255438.67, 255412.47, 510877.34]}, + "II_brk5": {"2026": [256036.55, 512073.1, 256036.55, 256011.0, 512073.1]}, "PT_rt5": {"2026": 0.32}, - "PT_brk5": {"2026": [255438.67, 510877.34, 255438.67, 255412.47, 510877.34]}, + "PT_brk5": {"2026": [256036.55, 512073.1, 256036.55, 256011.0, 512073.1]}, "II_rt6": {"2026": 0.35}, - "II_brk6": {"2026": [638635.98, 766342.2, 383171.1, 638635.98, 766342.2]}, + "II_brk6": {"2026": [640129.7, 768135.2, 384067.6, 640129.7, 768135.2]}, "PT_rt6": {"2026": 0.35}, - "PT_brk6": {"2026": [638635.98, 766342.2, 383171.1, 638635.98, 766342.2]}, + "PT_brk6": {"2026": [640129.7, 768135.2, 384067.6, 640129.7, 768135.2]}, "II_rt7": {"2026": 0.37}, "II_brk7": {"2026": [9e+99, 9e+99, 9e+99, 9e+99, 9e+99]}, "PT_rt7": {"2026": 0.37}, @@ -36,10 +36,10 @@ "ODC_c": {"2026": 500.00}, "CTC_ps": {"2026": [200000.0, 400000.0, 200000.0, 200000.0, 400000.0]}, "ACTC_Income_thd": {"2026": 2500.00}, - "AMT_em": {"2026": [89818.83, 139706.53, 69853.27, 89818.83, 139706.53]}, - "AMT_em_ps": {"2026": [638635.98, 1277271.94, 638635.98, 638635.98, 1277271.94]}, - "AMT_em_pe": {"2026": 938246.12}, - "STD": {"2026": [15301.69, 30603.38, 15301.69, 22952.54, 30603.38]}, + "AMT_em": {"2026": [90038.2, 140014.0, 70007.0, 90038.2, 140014.0]}, + "AMT_em_ps": {"2026": [640129.7, 1280259.4, 640129.7, 640129.7, 1280259.4]}, + "AMT_em_pe": {"2026": 940401.17}, + "STD": {"2026": [15330.0, 30660.0, 15330.0, 22995.0, 30660.0]}, "ID_AllTaxes_c": {"2026": [10000.0, 10000.0, 5000.0, 10000.0, 10000.0]}, "ID_Charity_crt_cash": {"2026": 0.60}, "ID_Casualty_hc": {"2026": 1.00}, @@ -50,10 +50,10 @@ "II_em": {"2026": 0.00}, "II_em_ps": {"2026": [9e+99, 9e+99, 9e+99, 9e+99, 9e+99]}, "PT_qbid_rt": {"2026": 0.20}, - "PT_qbid_taxinc_thd": {"2026": [201175.3, 402350.62, 201175.3, 201175.3, 201175.3]}, + "PT_qbid_taxinc_thd": {"2026": [201640.6, 403281.2, 201640.6, 201640.6, 201640.6]}, "PT_qbid_taxinc_gap": {"2026": [50000.0, 100000.0, 50000.0, 50000.0, 100000.0]}, "PT_qbid_w2_wages_rt": {"2026": 0.50}, "PT_qbid_alt_w2_wages_rt": {"2026": 0.25}, "PT_qbid_alt_property_rt": {"2026": 0.03}, - "ALD_BusinessLosses_c": {"2029": [339091.08, 678182.18, 339091.08, 339091.08, 678182.18]} + "ALD_BusinessLosses_c": {"2029": [339332.31, 678664.61, 339332.31, 339332.31, 678664.61]} } diff --git a/update_pcl.py b/update_pcl.py index 0b5bce83b..43ccccb66 100644 --- a/update_pcl.py +++ b/update_pcl.py @@ -414,13 +414,13 @@ {'year': 2023, 'MARS': 'mjoint', 'value': 1500.0}, {'year': 2023, 'MARS': 'mseparate', 'value': 1500.0}, {'year': 2023, 'MARS': 'headhh', 'value': 1800.0}, - {'year': 2023, 'MARS': 'widow', 'value': 1500.0}, + {'year': 2023, 'MARS': 'widow', 'value': 1800.0}, {'year': 2024, 'MARS': 'single', 'value': 1950.0}, {'year': 2024, 'MARS': 'mjoint', 'value': 1550.0}, {'year': 2024, 'MARS': 'mseparate', 'value': 1550.0}, {'year': 2024, 'MARS': 'headhh', 'value': 1950.0}, - {'year': 2024, 'MARS': 'widow', 'value': 1550.0}, + {'year': 2024, 'MARS': 'widow', 'value': 1950.0}, {'year': 2025, 'MARS': 'single', 'value': 2000.0}, {'year': 2025, 'MARS': 'mjoint', 'value': 1600.0}, From 36ab46672343f541b05f54a5b5b4904ef5dbf4ba Mon Sep 17 00:00:00 2001 From: "martin.holmer@gmail.com" Date: Wed, 13 Nov 2024 11:56:22 -0500 Subject: [PATCH 28/30] Update expected 2026 results of extend-TCJA reform --- taxcalc/tests/test_reforms.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/taxcalc/tests/test_reforms.py b/taxcalc/tests/test_reforms.py index 894ce108e..197609195 100644 --- a/taxcalc/tests/test_reforms.py +++ b/taxcalc/tests/test_reforms.py @@ -383,4 +383,4 @@ def test_ext_reform(tests_path): iitax_ext = calc_ext.array('iitax') rdiff = iitax_ext - iitax_end weighted_sum_rdiff = (rdiff * calc_end.array('s006')).sum() * 1.0e-9 - assert np.allclose([weighted_sum_rdiff], [-231.304], rtol=0.0, atol=0.01) + assert np.allclose([weighted_sum_rdiff], [-233.447], rtol=0.0, atol=0.01) From aeec409be963be07d17083815e72cdcb3358eb47 Mon Sep 17 00:00:00 2001 From: "martin.holmer@gmail.com" Date: Fri, 15 Nov 2024 14:48:24 -0500 Subject: [PATCH 29/30] Fix Makefile package target logic --- Makefile | 2 +- taxcalc.egg-info/PKG-INFO | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 778d70226..42920992f 100644 --- a/Makefile +++ b/Makefile @@ -36,7 +36,7 @@ clean: .PHONY=package package: - @pip install -e . + @pip install -e . --config-settings editable_mode=compat define pytest-setup rm -f taxcalc/tests/reforms_actual_init diff --git a/taxcalc.egg-info/PKG-INFO b/taxcalc.egg-info/PKG-INFO index 85eccd51c..4841fd28a 100644 --- a/taxcalc.egg-info/PKG-INFO +++ b/taxcalc.egg-info/PKG-INFO @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: taxcalc -Version: 4.3.2 +Version: 4.3.3 Summary: taxcalc Home-page: https://github.com/PSLmodels/Tax-Calculator Download-URL: https://github.com/PSLmodels/Tax-Calculator From fd4645f98e1083734f30e20c9cb892cd39052cef Mon Sep 17 00:00:00 2001 From: "martin.holmer@gmail.com" Date: Fri, 15 Nov 2024 15:19:05 -0500 Subject: [PATCH 30/30] Fix 'pip install -e .' commands in ./github/workflows/*yml files --- .github/workflows/build_and_test.yml | 2 +- .github/workflows/check_jupyterbook.yml | 2 +- .github/workflows/deploy_jupyterbook.yml | 2 +- .github/workflows/deploy_parameters_docs.yml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build_and_test.yml b/.github/workflows/build_and_test.yml index decf8bd48..42cd4049a 100644 --- a/.github/workflows/build_and_test.yml +++ b/.github/workflows/build_and_test.yml @@ -27,7 +27,7 @@ jobs: - name: Build shell: bash -l {0} run: | - pip install -e . --user + pip install -e . --user --config-settings editable_mode=compat pip install pytest-cov --user pip install pytest-pycodestyle --user diff --git a/.github/workflows/check_jupyterbook.yml b/.github/workflows/check_jupyterbook.yml index 3c3b65950..fa5989ede 100644 --- a/.github/workflows/check_jupyterbook.yml +++ b/.github/workflows/check_jupyterbook.yml @@ -23,7 +23,7 @@ jobs: run: | pip install jupyter-book conda install -c pslmodels behresp - pip install -e . + pip install -e . --config-settings editable_mode=compat python docs/guide/make/make_uguide.py cd docs jb build . diff --git a/.github/workflows/deploy_jupyterbook.yml b/.github/workflows/deploy_jupyterbook.yml index 87c36b992..0cd0a30b7 100644 --- a/.github/workflows/deploy_jupyterbook.yml +++ b/.github/workflows/deploy_jupyterbook.yml @@ -26,7 +26,7 @@ jobs: run: | pip install jupyter-book conda install -c pslmodels behresp - pip install -e . + pip install -e . --config-settings editable_mode=compat cd docs jb build . diff --git a/.github/workflows/deploy_parameters_docs.yml b/.github/workflows/deploy_parameters_docs.yml index f3342557f..2ef71e2ee 100644 --- a/.github/workflows/deploy_parameters_docs.yml +++ b/.github/workflows/deploy_parameters_docs.yml @@ -26,7 +26,7 @@ jobs: run: | pip install jupyter-book conda install -c pslmodels behresp - pip install -e . + pip install -e . --config-settings editable_mode=compat python docs/guide/make/make_uguide.py cd docs jb build .