From e5c3ae9a17aa87e12047f538c11a2f5e1cfb7b2c Mon Sep 17 00:00:00 2001 From: "martin.holmer@gmail.com" Date: Sat, 3 Aug 2024 14:58:40 -0400 Subject: [PATCH 1/3] Streamline EducationTaxCredit code; no change in logic or test results --- taxcalc/calcfunctions.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/taxcalc/calcfunctions.py b/taxcalc/calcfunctions.py index 1439c8077..47a3c3e39 100644 --- a/taxcalc/calcfunctions.py +++ b/taxcalc/calcfunctions.py @@ -2809,7 +2809,7 @@ def SchR(age_head, age_spouse, MARS, c00100, @iterate_jit(nopython=True) -def EducationTaxCredit(exact, e87530, MARS, c00100, num, c05800, +def EducationTaxCredit(exact, e87530, MARS, c00100, c05800, e07300, c07180, c07200, c87668, LLC_Expense_c, ETC_pe_Single, ETC_pe_Married, CR_Education_hc, @@ -2828,8 +2828,6 @@ def EducationTaxCredit(exact, e87530, MARS, c00100, num, c05800, Filing (marital) status. (1=single, 2=joint, 3=separate, 4=household-head, 5=widow(er)) c00100: float Adjusted Gross Income (AGI) - num: int - 2 when MARS is 2 (married filing jointly), otherwise 1 c05800: float Total (regular + AMT) income tax liability before credits e07300: float @@ -2860,14 +2858,19 @@ def EducationTaxCredit(exact, e87530, MARS, c00100, num, c05800, ----- Tax Law Parameters that are not parameterized: 0.2: Lifetime Learning Credit ratio against expense + 10000.0: AGI range bewteen ETC_pe_Single and single phase-out start; + twice this amount for ETC_pe_Married """ c87560 = 0.2 * min(e87530, LLC_Expense_c) + # on the following credit phase-out law see: + # https://www.law.cornell.edu/uscode/text/26/25A#d_1 if MARS == 2: c87570 = ETC_pe_Married * 1000. + c87600 = 20000. else: c87570 = ETC_pe_Single * 1000. + c87600 = 10000. c87590 = max(0., c87570 - c00100) - c87600 = 10000. * num if exact == 1: # exact calculation as on tax forms c87610 = min(1., round(c87590 / c87600, 3)) else: From 0c2960a50047316a76326b2fda60d5b6d76cc0a7 Mon Sep 17 00:00:00 2001 From: "martin.holmer@gmail.com" Date: Sat, 3 Aug 2024 15:32:08 -0400 Subject: [PATCH 2/3] Correct PR #2633 errors wrt ETC_pe_* policy parameters --- taxcalc/policy_current_law.json | 12 ++++++------ taxcalc/reforms/rounding2022.json | 2 +- taxcalc/tests/puf_var_wght_means_by_year.csv | 4 ++-- taxcalc/tests/pufcsv_agg_expect.csv | 6 +++--- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/taxcalc/policy_current_law.json b/taxcalc/policy_current_law.json index a4030ab11..f8f932435 100644 --- a/taxcalc/policy_current_law.json +++ b/taxcalc/policy_current_law.json @@ -19804,13 +19804,13 @@ } }, "ETC_pe_Single": { - "title": "Education tax credit phaseout ends (Single)", - "description": "The education tax credit will be zero for those taxpayers of single filing status with modified AGI (in thousands) higher than this level.", + "title": "Education tax credit phaseout ends (single and other non-joint)", + "description": "The education tax credit will be zero for those taxpayers of non-joint filing status with modified AGI (in thousands) higher than this level.", "notes": "", "section_1": "", "section_2": "", "indexable": true, - "indexed": true, + "indexed": false, "type": "float", "value": [ { @@ -19851,7 +19851,7 @@ }, { "year": 2022, - "value": 80.0 + "value": 90.0 } ], "validators": { @@ -19866,8 +19866,8 @@ } }, "ETC_pe_Married": { - "title": "Education tax credit phaseout ends (Married)", - "description": "The education tax credit will be zero for those taxpayers of married filing status with modified AGI level (in thousands) higher than this level.", + "title": "Education tax credit phaseout ends (joint)", + "description": "The education tax credit will be zero for those taxpayers of married filing joint status with modified AGI level (in thousands) higher than this level.", "notes": "", "section_1": "", "section_2": "", diff --git a/taxcalc/reforms/rounding2022.json b/taxcalc/reforms/rounding2022.json index d338dd818..fb07bc18a 100644 --- a/taxcalc/reforms/rounding2022.json +++ b/taxcalc/reforms/rounding2022.json @@ -129,7 +129,7 @@ "ETC_pe_Single": {"2019": 68, "2020": 69, "2021": 90, - "2022": 80}, + "2022": 90}, "ETC_pe_Married": {"2019": 136, "2020": 138, "2021": 180, diff --git a/taxcalc/tests/puf_var_wght_means_by_year.csv b/taxcalc/tests/puf_var_wght_means_by_year.csv index 30e5bef87..c91bf3427 100644 --- a/taxcalc/tests/puf_var_wght_means_by_year.csv +++ b/taxcalc/tests/puf_var_wght_means_by_year.csv @@ -6,7 +6,7 @@ c04600,Post-phase-out personal exemption, 7105, 7131, 7163, 7217, c04800,Federal regular taxable income, 35753, 39297, 39663, 39591, 42568, 44523, 45416, 46476, 55959, 54603, 57322, 58386, 60072, 61575, 63147, 64912, 66832, 68828, 70916, 73686, 74836, 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, 16817, 17279 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, 79, 77, 74, 72 +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 c11070,Extra child tax credit (refunded), 150, 144, 138, 133, 126, 122, 119, 120, 0, 108, 109, 109, 107, 105, 103, 101, 100, 98, 96, 95, 94, 92 c21040,Itemized deduction that is phased out, 203, 242, 231, 219, 255, 271, 271, 286, 379, 349, 364, 360, 367, 372, 379, 388, 397, 406, 414, 421, 451, 461 @@ -67,7 +67,7 @@ e87530,Adjusted qualified lifetime learning expenses for all students, 93, eitc,Federal EITC, 376, 369, 364, 352, 342, 340, 341, 347, 324, 335, 363, 385, 391, 395, 399, 403, 407, 411, 417, 425, 429, 436 elderly_dependents,number of dependents age 65+ in filing unit excluding taxpayer and spouse, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 g20500,Itemizable gross (before 10% AGI disregard) casualty or theft loss, 29, 30, 31, 32, 33, 35, 36, 38, 40, 41, 42, 44, 47, 48, 50, 52, 55, 57, 60, 63, 62, 66 -iitax,Federal income tax liability, 6550, 7474, 7521, 7477, 8281, 8755, 8951, 6544, 9148, 11187, 11705, 11832, 12199, 12529, 12871, 13262, 13686, 14117, 14554, 15116, 15514, 15967 +iitax,Federal income tax liability, 6550, 7474, 7521, 7477, 8281, 8755, 8952, 6544, 9149, 11188, 11707, 11833, 12201, 12531, 12873, 13264, 13689, 14120, 14557, 15119, 15518, 15971 k1bx14p,Partner self-employment earnings/loss for taxpayer (included in e26270 total), -213, -239, -187, -162, -144, -139, -133, -129, -156, -168, -183, -181, -178, -175, -168, -158, -146, -124, -103, -67, -149, -123 k1bx14s,Partner self-employment earnings/loss for spouse (included in e26270 total), -7, -9, 0, 2, 8, 10, 11, 11, 13, 14, 14, 14, 15, 16, 18, 21, 25, 27, 31, 34, 28, 33 nu06,Number of dependents under 6 years old, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 diff --git a/taxcalc/tests/pufcsv_agg_expect.csv b/taxcalc/tests/pufcsv_agg_expect.csv index 774a0ca33..5b9d257e0 100644 --- a/taxcalc/tests/pufcsv_agg_expect.csv +++ b/taxcalc/tests/pufcsv_agg_expect.csv @@ -13,12 +13,12 @@ AMT Liability ($b),51.3,22.1,23.0,25.1,27.8,27.4,28.8,30.3,31.8,85.1 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,2450.5,2518.3,2631.0,2877.6 Refundable Credits ($b),102.9,117.5,118.5,642.0,802.6,119.2,127.0,133.0,135.2,121.9 -Nonrefundable Credits ($b),67.0,127.3,129.2,128.5,47.6,140.9,143.3,144.0,145.9,78.0 +Nonrefundable Credits ($b),67.0,127.3,129.2,128.5,47.6,141.0,143.3,144.0,145.8,77.9 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,64.2 -Ind Income Tax ($b),1578.2,1534.3,1597.0,1145.8,1544.0,2111.6,2246.7,2306.5,2415.9,2742.0 +Ind Income Tax ($b),1578.2,1534.3,1597.0,1145.8,1544.0,2111.5,2246.6,2306.5,2416.0,2742.0 Payroll Taxes ($b),1083.8,1133.3,1185.4,1209.0,1306.0,1403.4,1489.3,1563.9,1637.9,1711.0 -Combined Liability ($b),2662.0,2667.7,2782.4,2354.8,2850.0,3515.0,3736.0,3870.5,4053.8,4452.9 +Combined Liability ($b),2662.0,2667.7,2782.4,2354.8,2850.0,3514.9,3735.9,3870.5,4053.9,4453.0 With Income Tax <= 0 (#m),92.8,98.6,99.7,131.7,125.0,100.3,101.9,103.4,104.4,101.0 With Combined Tax <= 0 (#m),63.4,65.6,66.8,102.1,94.5,68.9,70.2,71.6,72.6,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 From 923b4f28ecc26c4029f2ef1aa14e42e92e37e2bb Mon Sep 17 00:00:00 2001 From: "martin.holmer@gmail.com" Date: Sat, 3 Aug 2024 16:25:28 -0400 Subject: [PATCH 3/3] Add another correction that should have been in the prior commit --- taxcalc/policy_current_law.json | 2 +- taxcalc/tests/puf_var_wght_means_by_year.csv | 2 +- taxcalc/tests/pufcsv_agg_expect.csv | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/taxcalc/policy_current_law.json b/taxcalc/policy_current_law.json index f8f932435..6750c62b7 100644 --- a/taxcalc/policy_current_law.json +++ b/taxcalc/policy_current_law.json @@ -19872,7 +19872,7 @@ "section_1": "", "section_2": "", "indexable": true, - "indexed": true, + "indexed": false, "type": "float", "value": [ { diff --git a/taxcalc/tests/puf_var_wght_means_by_year.csv b/taxcalc/tests/puf_var_wght_means_by_year.csv index c91bf3427..034ea783c 100644 --- a/taxcalc/tests/puf_var_wght_means_by_year.csv +++ b/taxcalc/tests/puf_var_wght_means_by_year.csv @@ -67,7 +67,7 @@ e87530,Adjusted qualified lifetime learning expenses for all students, 93, eitc,Federal EITC, 376, 369, 364, 352, 342, 340, 341, 347, 324, 335, 363, 385, 391, 395, 399, 403, 407, 411, 417, 425, 429, 436 elderly_dependents,number of dependents age 65+ in filing unit excluding taxpayer and spouse, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 g20500,Itemizable gross (before 10% AGI disregard) casualty or theft loss, 29, 30, 31, 32, 33, 35, 36, 38, 40, 41, 42, 44, 47, 48, 50, 52, 55, 57, 60, 63, 62, 66 -iitax,Federal income tax liability, 6550, 7474, 7521, 7477, 8281, 8755, 8952, 6544, 9149, 11188, 11707, 11833, 12201, 12531, 12873, 13264, 13689, 14120, 14557, 15119, 15518, 15971 +iitax,Federal income tax liability, 6550, 7474, 7521, 7477, 8281, 8755, 8952, 6544, 9149, 11189, 11708, 11835, 12204, 12533, 12876, 13267, 13691, 14122, 14560, 15122, 15521, 15974 k1bx14p,Partner self-employment earnings/loss for taxpayer (included in e26270 total), -213, -239, -187, -162, -144, -139, -133, -129, -156, -168, -183, -181, -178, -175, -168, -158, -146, -124, -103, -67, -149, -123 k1bx14s,Partner self-employment earnings/loss for spouse (included in e26270 total), -7, -9, 0, 2, 8, 10, 11, 11, 13, 14, 14, 14, 15, 16, 18, 21, 25, 27, 31, 34, 28, 33 nu06,Number of dependents under 6 years old, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 diff --git a/taxcalc/tests/pufcsv_agg_expect.csv b/taxcalc/tests/pufcsv_agg_expect.csv index 5b9d257e0..d3b8c3a4a 100644 --- a/taxcalc/tests/pufcsv_agg_expect.csv +++ b/taxcalc/tests/pufcsv_agg_expect.csv @@ -13,12 +13,12 @@ AMT Liability ($b),51.3,22.1,23.0,25.1,27.8,27.4,28.8,30.3,31.8,85.1 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,2450.5,2518.3,2631.0,2877.6 Refundable Credits ($b),102.9,117.5,118.5,642.0,802.6,119.2,127.0,133.0,135.2,121.9 -Nonrefundable Credits ($b),67.0,127.3,129.2,128.5,47.6,141.0,143.3,144.0,145.8,77.9 +Nonrefundable Credits ($b),67.0,127.3,129.2,128.5,47.6,141.0,143.3,143.9,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,64.2 -Ind Income Tax ($b),1578.2,1534.3,1597.0,1145.8,1544.0,2111.5,2246.6,2306.5,2416.0,2742.0 +Ind Income Tax ($b),1578.2,1534.3,1597.0,1145.8,1544.0,2111.5,2246.7,2306.7,2416.1,2742.2 Payroll Taxes ($b),1083.8,1133.3,1185.4,1209.0,1306.0,1403.4,1489.3,1563.9,1637.9,1711.0 -Combined Liability ($b),2662.0,2667.7,2782.4,2354.8,2850.0,3514.9,3735.9,3870.5,4053.9,4453.0 +Combined Liability ($b),2662.0,2667.7,2782.4,2354.8,2850.0,3514.9,3736.0,3870.6,4054.0,4453.2 With Income Tax <= 0 (#m),92.8,98.6,99.7,131.7,125.0,100.3,101.9,103.4,104.4,101.0 With Combined Tax <= 0 (#m),63.4,65.6,66.8,102.1,94.5,68.9,70.2,71.6,72.6,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