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 . 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 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.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 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/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) 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},