diff --git a/.github/workflows/build_and_test.yml b/.github/workflows/build_and_test.yml index c1c4ac08e..42cd4049a 100644 --- a/.github/workflows/build_and_test.yml +++ b/.github/workflows/build_and_test.yml @@ -27,14 +27,16 @@ 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 + - 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 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 . 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/docs/about/releases.md b/docs/about/releases.md index eef8b8ead..88334cf50 100644 --- a/docs/about/releases.md +++ b/docs/about/releases.md @@ -4,6 +4,42 @@ 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 +[#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..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.1 (2024-10-28) ` +{doc}`4.3.3 (2024-11-14) ` 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/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 diff --git a/setup.py b/setup.py index 29d2bcea6..a6b665ede 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.3" config = { "description": "Tax Calculator", diff --git a/taxcalc.egg-info/PKG-INFO b/taxcalc.egg-info/PKG-INFO index b93fe2de9..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.0 +Version: 4.3.3 Summary: taxcalc Home-page: https://github.com/PSLmodels/Tax-Calculator Download-URL: https://github.com/PSLmodels/Tax-Calculator diff --git a/taxcalc/__init__.py b/taxcalc/__init__.py index 702744be1..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.1' +__version__ = '4.3.3' __min_python3_version__ = 10 __max_python3_version__ = 12 diff --git a/taxcalc/calculator.py b/taxcalc/calculator.py index af2abbd84..d0b92a598 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,11 +1190,10 @@ 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_array = isinstance(upda_value, np.ndarray) 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_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: @@ -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 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', diff --git a/taxcalc/policy.py b/taxcalc/policy.py index ad9b69d89..bda068914 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 @@ -37,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 @@ -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"] diff --git a/taxcalc/policy_current_law.json b/taxcalc/policy_current_law.json index 1cc335d93..53105b533 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": { @@ -1585,6 +1597,31 @@ "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 + }, { "year": 2029, "MARS": "single", @@ -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,31 @@ "year": 2024, "MARS": "widow", "value": 1950.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 +3422,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 +3769,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 +4142,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 +4489,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 +5403,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,26 +5802,51 @@ "year": 2024, "MARS": "widow", "value": 9e+99 - } - ], - "validators": { - "range": { - "min": 0, - "max": 9e+99 - } - }, - "compatible_data": { - "puf": true, - "cps": true - } - }, - "ID_RealEstate_hc": { - "title": "State, local, and foreign real estate taxes deduction haircut.", - "description": "This decimal fraction reduces real estate taxes paid eligible to deduct in itemized deduction.", - "notes": "", - "section_1": "Itemized Deductions", - "section_2": "State, Local, And Foreign Real Estate Taxes", - "indexable": false, + }, + { + "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 + } + }, + "ID_RealEstate_hc": { + "title": "State, local, and foreign real estate taxes deduction haircut.", + "description": "This decimal fraction reduces real estate taxes paid eligible to deduct in itemized deduction.", + "notes": "", + "section_1": "Itemized Deductions", + "section_2": "State, Local, And Foreign Real Estate Taxes", + "indexable": false, "indexed": false, "type": "float", "value": [ @@ -5931,6 +6201,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 +6897,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 +7366,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 +7840,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 +8268,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 +8616,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 +9159,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 +9646,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 +10149,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 +10522,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 +10895,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 +11294,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 +11667,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 +12040,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 +12187,10 @@ { "year": 2024, "value": 0.0 + }, + { + "year": 2025, + "value": 0.0 } ], "validators": { @@ -11982,6 +12606,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 +13044,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", @@ -12804,9 +13478,34 @@ "value": 100500.0 }, { - "year": 2024, + "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": 201050.0 + "value": 206700.0 }, { "year": 2026, @@ -13221,6 +13920,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 +14358,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 +14796,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 +15234,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 +15698,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 +16136,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 +16574,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 +17012,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 +17450,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 +17888,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 +18326,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", @@ -17891,22 +18865,47 @@ { "year": 2024, "MARS": "mjoint", - "value": 383900.0 + "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": 197300.0 + }, + { + "year": 2025, + "MARS": "mjoint", + "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 +19687,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 +20216,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 +20614,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 +20733,10 @@ { "year": 2024, "value": 9250.0 + }, + { + "year": 2025, + "value": 9550.0 } ], "validators": { @@ -19781,6 +20859,10 @@ { "year": 2024, "value": 232600.0 + }, + { + "year": 2025, + "value": 239100.0 } ], "validators": { @@ -19878,6 +20960,10 @@ "year": 2024, "value": 875950.0 }, + { + "year": 2025, + "value": 900350.0 + }, { "year": 2026, "value": 326410.0 @@ -20715,11 +21801,11 @@ }, { "year": 2024, - "value": 1600.0 + "value": 1700.0 }, { "year": 2025, - "value": 1600.0 + "value": 1700.0 }, { "year": 2026, @@ -21139,6 +22225,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 +22753,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 +23035,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 +23197,10 @@ { "year": 2024, "value": 11600.0 + }, + { + "year": 2025, + "value": 11950.0 } ], "validators": { @@ -22203,6 +23353,10 @@ { "year": 2024, "value": 0.0 + }, + { + "year": 2025, + "value": 0.0 } ], "validators": { @@ -22973,6 +24127,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 +24612,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 +24959,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 +25332,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 +25453,10 @@ { "year": 2024, "value": 0.0 + }, + { + "year": 2025, + "value": 0.0 } ], "validators": { @@ -24269,6 +25527,10 @@ { "year": 2024, "value": 0.0 + }, + { + "year": 2025, + "value": 0.0 } ], "validators": { @@ -24339,6 +25601,10 @@ { "year": 2024, "value": 0.0 + }, + { + "year": 2025, + "value": 0.0 } ], "validators": { diff --git a/taxcalc/reforms/ext.json b/taxcalc/reforms/ext.json index f3b624e1b..cd2e2d89f 100644 --- a/taxcalc/reforms/ext.json +++ b/taxcalc/reforms/ext.json @@ -1,45 +1,45 @@ // REFORM TO EXTEND TEMPORARY TCJA PROVISIONS BEYOND 2025 -// USING TAX-CALCULATOR 4.3.1 +// 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}, "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}, - "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/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 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 diff --git a/taxcalc/tests/test_reforms.py b/taxcalc/tests/test_reforms.py index d34c7ace6..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], [-230.805], rtol=0.0, atol=0.01) + assert np.allclose([weighted_sum_rdiff], [-233.447], rtol=0.0, atol=0.01) 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 diff --git a/update_pcl.py b/update_pcl.py index da533fdc9..43ccccb66 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 @@ -27,6 +28,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 +47,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: @@ -54,12 +69,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}, @@ -72,6 +91,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.}, @@ -85,6 +110,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}, @@ -98,6 +129,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}, @@ -111,6 +148,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}, @@ -124,6 +167,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}, @@ -137,6 +186,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}, @@ -150,6 +205,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}, @@ -163,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}, @@ -176,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}, @@ -189,6 +262,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}, ], 'EITC_c': [ {'year': 2023, 'EIC': '0kids', 'value': 600.0}, @@ -200,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}, @@ -211,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}, @@ -222,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}, @@ -245,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}, @@ -258,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}, @@ -281,11 +395,19 @@ {'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}, @@ -299,6 +421,12 @@ {'year': 2024, 'MARS': 'mseparate', 'value': 1550.0}, {'year': 2024, 'MARS': 'headhh', 'value': 1950.0}, {'year': 2024, 'MARS': 'widow', 'value': 1950.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}, @@ -312,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}, @@ -325,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}, @@ -339,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 @@ -354,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: