diff --git a/taxcalc/policy_current_law.json b/taxcalc/policy_current_law.json index 806ce7fcc..c71e8abb4 100644 --- a/taxcalc/policy_current_law.json +++ b/taxcalc/policy_current_law.json @@ -1271,26 +1271,51 @@ { "year": 2026, "MARS": "single", - "value": 9e+99 + "value": 283535.22 }, { "year": 2026, "MARS": "mjoint", - "value": 9e+99 + "value": 567070.42 }, { "year": 2026, "MARS": "mseparate", - "value": 9e+99 + "value": 283535.22 }, { "year": 2026, "MARS": "headhh", - "value": 9e+99 + "value": 283535.22 }, { "year": 2026, "MARS": "widow", + "value": 567070.42 + }, + { + "year": 2027, + "MARS": "single", + "value": 9e+99 + }, + { + "year": 2027, + "MARS": "mjoint", + "value": 9e+99 + }, + { + "year": 2027, + "MARS": "mseparate", + "value": 9e+99 + }, + { + "year": 2027, + "MARS": "headhh", + "value": 9e+99 + }, + { + "year": 2027, + "MARS": "widow", "value": 9e+99 } ], @@ -3023,6 +3048,14 @@ { "year": 2013, "value": 0.0 + }, + { + "year": 2021, + "value": 1400 + }, + { + "year": 2022, + "value": 0.0 } ], "validators": { @@ -3070,6 +3103,56 @@ "year": 2013, "MARS": "widow", "value": 0.0 + }, + { + "year": 2021, + "MARS": "single", + "value": 75000.00 + }, + { + "year": 2021, + "MARS": "mjoint", + "value": 150000.00 + }, + { + "year": 2021, + "MARS": "mseparate", + "value": 75000.00 + }, + { + "year": 2021, + "MARS": "headhh", + "value": 112500.00 + }, + { + "year": 2021, + "MARS": "widow", + "value": 150000.00 + }, + { + "year": 2022, + "MARS": "single", + "value": 0.0 + }, + { + "year": 2022, + "MARS": "mjoint", + "value": 0.0 + }, + { + "year": 2022, + "MARS": "mseparate", + "value": 0.0 + }, + { + "year": 2022, + "MARS": "headhh", + "value": 0.0 + }, + { + "year": 2022, + "MARS": "widow", + "value": 0.0 } ], "validators": { @@ -3117,6 +3200,56 @@ "year": 2013, "MARS": "widow", "value": 0.0 + }, + { + "year": 2021, + "MARS": "single", + "value": 80000.00 + }, + { + "year": 2021, + "MARS": "mjoint", + "value": 160000.00 + }, + { + "year": 2021, + "MARS": "mseparate", + "value": 80000.00 + }, + { + "year": 2021, + "MARS": "headhh", + "value": 120000.00 + }, + { + "year": 2021, + "MARS": "widow", + "value": 160000.00 + }, + { + "year": 2022, + "MARS": "single", + "value": 0.0 + }, + { + "year": 2022, + "MARS": "mjoint", + "value": 0.0 + }, + { + "year": 2022, + "MARS": "mseparate", + "value": 0.0 + }, + { + "year": 2022, + "MARS": "headhh", + "value": 0.0 + }, + { + "year": 2022, + "MARS": "widow", + "value": 0.0 } ], "validators": { @@ -12814,6 +12947,14 @@ { "year": 2013, "value": 0.0 + }, + { + "year": 2020, + "value": 10200.00 + }, + { + "year": 2021, + "value": 0.0 } ], "validators": { @@ -12861,6 +13002,56 @@ "year": 2013, "MARS": "widow", "value": 0.0 + }, + { + "year": 2020, + "MARS": "single", + "value": 150000.00 + }, + { + "year": 2020, + "MARS": "mjoint", + "value": 150000.00 + }, + { + "year": 2020, + "MARS": "mseparate", + "value": 150000.00 + }, + { + "year": 2020, + "MARS": "headhh", + "value": 150000.00 + }, + { + "year": 2020, + "MARS": "widow", + "value": 150000.00 + }, + { + "year": 2021, + "MARS": "single", + "value": 0.0 + }, + { + "year": 2021, + "MARS": "mjoint", + "value": 0.0 + }, + { + "year": 2021, + "MARS": "mseparate", + "value": 0.0 + }, + { + "year": 2021, + "MARS": "headhh", + "value": 0.0 + }, + { + "year": 2021, + "MARS": "widow", + "value": 0.0 } ], "validators": { @@ -13589,6 +13780,14 @@ { "year": 2013, "value": 3000.0 + }, + { + "year": 2021, + "value": 8000.0 + }, + { + "year": 2022, + "value": 3000.0 } ], "validators": { @@ -13615,6 +13814,14 @@ { "year": 2013, "value": 15000.0 + }, + { + "year": 2021, + "value": 125000.0 + }, + { + "year": 2022, + "value": 15000.0 } ], "validators": { @@ -13641,6 +13848,14 @@ { "year": 2013, "value": 9e+99 + }, + { + "year": 2021, + "value": 400000.0 + }, + { + "year": 2022, + "value": 9e+99 } ], "validators": { @@ -13667,6 +13882,14 @@ { "year": 2013, "value": 35.0 + }, + { + "year": 2021, + "value": 50.0 + }, + { + "year": 2022, + "value": 35.0 } ], "validators": { @@ -13745,6 +13968,14 @@ { "year": 2013, "value": false + }, + { + "year": 2021, + "value": true + }, + { + "year": 2022, + "value": false } ], "validators": { @@ -13851,6 +14082,14 @@ { "year": 2013, "value": false + }, + { + "year": 2021, + "value": true + }, + { + "year": 2022, + "value": false } ], "validators": { @@ -13877,6 +14116,14 @@ { "year": 2013, "value": false + }, + { + "year": 2021, + "value": true + }, + { + "year": 2022, + "value": false } ], "validators": { @@ -14518,6 +14765,46 @@ "year": 2019, "EIC": "3+kids", "value": 6557.0 + }, + { + "year": 2021, + "EIC": "0kids", + "value": 1502.46 + }, + { + "year": 2021, + "EIC": "1kid", + "value": 3606.44 + }, + { + "year": 2021, + "EIC": "2kids", + "value": 5960.95 + }, + { + "year": 2021, + "EIC": "3+kids", + "value": 6706.58 + }, + { + "year": 2022, + "EIC": "0kids", + "value": 546.21 + }, + { + "year": 2022, + "EIC": "1kid", + "value": 3640.70 + }, + { + "year": 2022, + "EIC": "2kids", + "value": 6017.58 + }, + { + "year": 2022, + "EIC": "3+kids", + "value": 6770.29 } ], "validators": { @@ -14560,6 +14847,46 @@ "year": 2013, "EIC": "3+kids", "value": 0.45 + }, + { + "year": 2021, + "EIC": "0kids", + "value": 0.153 + }, + { + "year": 2021, + "EIC": "1kid", + "value": 0.34 + }, + { + "year": 2021, + "EIC": "2kids", + "value": 0.4 + }, + { + "year": 2021, + "EIC": "3+kids", + "value": 0.45 + }, + { + "year": 2022, + "EIC": "0kids", + "value": 0.0765 + }, + { + "year": 2022, + "EIC": "1kid", + "value": 0.34 + }, + { + "year": 2022, + "EIC": "2kids", + "value": 0.4 + }, + { + "year": 2022, + "EIC": "3+kids", + "value": 0.45 } ], "validators": { @@ -14814,6 +15141,46 @@ "year": 2019, "EIC": "3+kids", "value": 19030.0 + }, + { + "year": 2021, + "EIC": "0kids", + "value": 11610.0 + }, + { + "year": 2021, + "EIC": "1kid", + "value": 19464.12 + }, + { + "year": 2021, + "EIC": "2kids", + "value": 19464.12 + }, + { + "year": 2021, + "EIC": "3+kids", + "value": 19464.12 + }, + { + "year": 2022, + "EIC": "0kids", + "value": 8931.38 + }, + { + "year": 2022, + "EIC": "1kid", + "value": 19649.03 + }, + { + "year": 2022, + "EIC": "2kids", + "value": 19649.03 + }, + { + "year": 2022, + "EIC": "3+kids", + "value": 19649.03 } ], "validators": { @@ -15002,6 +15369,14 @@ { "year": 2013, "value": 25 + }, + { + "year": 2021, + "value": 19 + }, + { + "year": 2022, + "value": 25 } ], "validators": { @@ -15028,6 +15403,14 @@ { "year": 2013, "value": 64 + }, + { + "year": 2021, + "value": 125 + }, + { + "year": 2022, + "value": 64 } ], "validators": { @@ -15078,6 +15461,10 @@ { "year": 2019, "value": 3600.0 + }, + { + "year": 2021, + "value": 10000.00 } ], "validators": { @@ -15156,6 +15543,10 @@ { "year": 2013, "value": false + }, + { + "year": 2021, + "value": true } ], "validators": { @@ -15516,6 +15907,14 @@ { "year": 2013, "value": 0.0 + }, + { + "year": 2021, + "value": 1000.00 + }, + { + "year": 2022, + "value": 0.0 } ], "validators": { @@ -15542,6 +15941,14 @@ { "year": 2013, "value": 0.0 + }, + { + "year": 2021, + "value": 1000.00 + }, + { + "year": 2022, + "value": 0.0 } ], "validators": { @@ -15568,6 +15975,14 @@ { "year": 2013, "value": false + }, + { + "year": 2021, + "value": true + }, + { + "year": 2022, + "value": false } ], "validators": { @@ -15791,6 +16206,56 @@ "year": 2019, "MARS": "widow", "value": 0.0 + }, + { + "year": 2021, + "MARS": "single", + "value": 75000.00 + }, + { + "year": 2021, + "MARS": "mjoint", + "value": 150000.00 + }, + { + "year": 2021, + "MARS": "mseparate", + "value": 75000.00 + }, + { + "year": 2021, + "MARS": "headhh", + "value": 112500.00 + }, + { + "year": 2021, + "MARS": "widow", + "value": 150000.00 + }, + { + "year": 2022, + "MARS": "single", + "value": 0.0 + }, + { + "year": 2022, + "MARS": "mjoint", + "value": 0.0 + }, + { + "year": 2022, + "MARS": "mseparate", + "value": 0.0 + }, + { + "year": 2022, + "MARS": "headhh", + "value": 0.0 + }, + { + "year": 2022, + "MARS": "widow", + "value": 0.0 } ], "validators": { @@ -15817,6 +16282,14 @@ { "year": 2013, "value": 0.0 + }, + { + "year": 2021, + "value": 0.05 + }, + { + "year": 2022, + "value": 0.0 } ], "validators": { diff --git a/taxcalc/tests/cpscsv_agg_expect.csv b/taxcalc/tests/cpscsv_agg_expect.csv index 23f434bef..d05cf3a34 100644 --- a/taxcalc/tests/cpscsv_agg_expect.csv +++ b/taxcalc/tests/cpscsv_agg_expect.csv @@ -2,25 +2,25 @@ Returns (#m),197.0,199.9,202.7,205.4,208.1,210.8,213.5,216.2,219.0,221.7 AGI ($b),10549.1,11168.4,11713.7,11475.6,11691.4,12219.5,12722.8,13288.9,13916.9,14582.0 Itemizers (#m),67.8,28.8,30.5,31.0,29.2,30.7,32.1,33.4,35.0,81.6 -Itemized Deduction ($b),1339.1,734.2,791.0,824.4,760.4,809.8,863.4,919.3,986.0,1956.9 +Itemized Deduction ($b),1339.1,734.2,791.0,824.0,760.4,809.8,863.4,919.3,986.0,1956.9 Standard Deduction Filers (#m),129.2,171.1,172.3,174.5,179.0,180.1,181.5,182.8,184.0,140.1 -Standard Deduction ($b),1224.7,3016.4,3089.9,3188.2,3289.5,3344.9,3425.1,3520.0,3615.8,1559.6 +Standard Deduction ($b),1224.7,3016.4,3089.9,3188.5,3289.5,3344.9,3425.1,3520.0,3615.8,1559.6 Personal Exemption ($b),1482.3,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1907.3 -Taxable Income ($b),7471.9,8388.7,8836.0,8524.8,8731.1,9177.5,9580.0,10032.6,10538.5,10457.6 -Regular Tax ($b),1482.0,1496.5,1581.8,1506.7,1544.5,1635.6,1715.0,1803.9,1904.2,2121.2 -AMT Income ($b),9689.3,10621.1,11121.6,10856.1,11122.1,11611.6,12072.5,12593.9,13168.6,13306.6 +Taxable Income ($b),7471.9,8388.7,8836.0,8513.1,8731.1,9177.5,9580.0,10032.6,10538.5,10457.6 +Regular Tax ($b),1482.0,1496.5,1581.8,1505.2,1544.5,1635.6,1715.0,1803.9,1904.2,2121.2 +AMT Income ($b),9689.3,10621.1,11121.6,10856.4,11122.1,11611.6,12072.5,12593.9,13168.6,13306.6 AMT Liability ($b),10.8,0.8,1.0,0.9,0.9,0.9,0.9,0.9,0.9,15.0 AMT Filers (#m),3.4,0.2,0.4,0.4,0.4,0.4,0.4,0.4,0.4,4.3 -Tax before Credits ($b),1492.9,1497.2,1582.7,1507.6,1545.4,1636.5,1715.9,1804.8,1905.1,2136.2 -Refundable Credits ($b),82.1,96.6,96.7,103.4,103.0,102.3,102.1,102.1,102.7,87.5 -Nonrefundable Credits ($b),33.2,95.6,97.4,95.2,96.9,98.9,100.6,102.2,103.8,31.1 +Tax before Credits ($b),1492.9,1497.2,1582.7,1506.1,1545.4,1636.5,1715.9,1804.8,1905.1,2136.2 +Refundable Credits ($b),82.1,96.6,96.7,103.5,867.1,102.5,102.3,102.3,102.9,87.7 +Nonrefundable Credits ($b),33.2,95.6,97.4,95.0,3.9,98.9,100.6,102.2,103.8,31.1 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),12.4,13.6,14.3,13.9,12.3,13.1,13.7,14.7,16.0,17.3 -Ind Income Tax ($b),1390.0,1318.6,1402.9,1322.9,1357.9,1448.3,1526.9,1615.2,1714.7,2034.9 +Ind Income Tax ($b),1390.0,1318.6,1402.9,1321.5,686.6,1448.1,1526.7,1615.0,1714.5,2034.7 Payroll Taxes ($b),1104.5,1156.3,1210.9,1186.7,1213.9,1267.1,1319.5,1375.5,1436.8,1502.7 -Combined Liability ($b),2494.5,2474.9,2613.8,2509.7,2571.8,2715.4,2846.5,2990.7,3151.5,3537.6 -With Income Tax <= 0 (#m),92.2,96.8,97.4,101.0,102.1,102.4,103.0,103.6,104.2,101.5 -With Combined Tax <= 0 (#m),63.7,66.3,67.2,69.3,70.8,71.6,72.6,73.5,74.4,73.6 +Combined Liability ($b),2494.5,2474.9,2613.8,2508.2,1900.6,2715.2,2846.3,2990.5,3151.3,3537.4 +With Income Tax <= 0 (#m),92.2,96.8,97.4,101.3,136.3,102.4,103.1,103.7,104.2,101.5 +With Combined Tax <= 0 (#m),63.7,66.3,67.2,69.4,106.3,71.7,72.6,73.5,74.5,73.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)",3061.5,3253.0,3458.2,3650.1,3871.6,4112.5,4372.9,4645.2,4929.2,5219.0 Total Benefits Cost ($b),3061.5,3253.0,3458.2,3650.1,3871.6,4112.5,4372.9,4645.2,4929.2,5219.0 diff --git a/taxcalc/tests/puf_var_wght_means_by_year.csv b/taxcalc/tests/puf_var_wght_means_by_year.csv index 19075e9be..841a7d66b 100644 --- a/taxcalc/tests/puf_var_wght_means_by_year.csv +++ b/taxcalc/tests/puf_var_wght_means_by_year.csv @@ -1,14 +1,14 @@ ,description,2013,2014,2015,2016,2017,2018,2019,2020,2021,2022,2023,2024,2025,2026,2027,2028,2029,2030 c00100,Federal AGI, 57146, 61263, 63408, 63408, 66570, 69275, 71469, 69070, 69479, 71637, 73576, 75917, 78467, 81207, 84023, 86753, 89324, 91925 c02500,OASDI benefits in AGI, 1449, 1557, 1661, 1700, 1798, 1909, 2035, 2120, 2169, 2314, 2476, 2654, 2846, 3050, 3268, 3506, 3757, 4024 -c04470,Post-phase-out itemized deduction, 6617, 6762, 7085, 7282, 7562, 7885, 8163, 8382, 7930, 8150, 8424, 8733, 9085, 9456, 9840, 10252, 10671, 11091 +c04470,Post-phase-out itemized deduction, 6617, 6762, 7085, 7282, 7562, 7885, 8163, 8376, 7930, 8150, 8424, 8733, 9085, 9456, 9840, 10252, 10671, 11091 c04600,Post-phase-out personal exemption, 7299, 7322, 7374, 7426, 7373, 7486, 7635, 7761, 7810, 7875, 7992, 8139, 8294, 8452, 8607, 8769, 8937, 9110 -c04800,Federal regular taxable income, 40087, 44105, 45811, 45617, 48513, 50731, 52442, 49642, 50419, 52249, 53725, 55544, 57539, 59664, 61852, 63918, 65813, 67727 -c05200,Regular tax on taxable income, 8601, 9801, 10188, 10058, 10884, 11453, 11854, 11079, 11235, 11672, 11992, 12408, 12873, 13365, 13874, 14345, 14772, 15203 -c07180,Child care credit, 18, 19, 19, 19, 19, 19, 19, 19, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18 -c07220,Child tax credit (adjusted), 174, 170, 166, 162, 159, 153, 149, 142, 141, 139, 135, 132, 128, 125, 121, 118, 115, 112 +c04800,Federal regular taxable income, 40087, 44105, 45811, 45617, 48513, 50731, 52442, 49583, 50419, 52249, 53725, 55544, 57539, 59664, 61852, 63918, 65813, 67727 +c05200,Regular tax on taxable income, 8601, 9801, 10188, 10058, 10884, 11453, 11854, 11071, 11235, 11672, 11992, 12408, 12873, 13365, 13874, 14345, 14772, 15203 +c07180,Child care credit, 18, 19, 19, 19, 19, 19, 19, 18, 0, 18, 18, 18, 18, 18, 18, 18, 18, 18 +c07220,Child tax credit (adjusted), 174, 170, 166, 162, 159, 153, 149, 141, 315, 139, 135, 132, 128, 125, 121, 118, 115, 112 c09600,Federal AMT liability, 237, 253, 268, 274, 294, 311, 323, 331, 309, 316, 327, 338, 352, 368, 386, 405, 424, 443 -c11070,Extra child tax credit (refunded), 164, 159, 154, 150, 145, 141, 138, 144, 139, 135, 132, 130, 127, 124, 121, 118, 117, 115 +c11070,Extra child tax credit (refunded), 164, 159, 154, 150, 145, 141, 138, 145, 0, 135, 132, 130, 127, 124, 121, 118, 117, 115 c21040,Itemized deduction that is phased out, 228, 272, 283, 276, 304, 322, 333, 311, 310, 322, 332, 344, 359, 373, 388, 402, 414, 427 cmbtp,Estimate of income on (AMT) Form 6251 but not in AGI, 414, 432, 452, 461, 481, 503, 521, 535, 516, 527, 545, 562, 583, 608, 634, 660, 685, 710 data_source,1 if unit is created primarily from IRS-SOI PUF data; 0 if created primarily from CPS data (not used in tax-calculation logic), 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 @@ -64,10 +64,10 @@ e58990,Investment income elected amount from Form 4952, 15, 16, 1 e62900,Alternative Minimum Tax foreign tax credit from Form 6251, 88, 97, 100, 101, 105, 109, 112, 114, 109, 112, 115, 118, 121, 126, 130, 135, 140, 144 e87521,Total tentative AmOppCredit amount for all students, 193, 197, 204, 207, 216, 225, 231, 235, 225, 230, 236, 243, 251, 259, 268, 279, 289, 299 e87530,Adjusted qualified lifetime learning expenses for all students, 104, 104, 108, 109, 114, 119, 123, 125, 120, 122, 125, 129, 133, 138, 143, 148, 153, 159 -eitc,Federal EITC, 411, 407, 404, 397, 390, 390, 392, 414, 411, 405, 405, 407, 409, 411, 412, 415, 420, 425 +eitc,Federal EITC, 411, 407, 404, 397, 390, 390, 392, 414, 427, 405, 405, 407, 409, 411, 413, 415, 420, 425 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 g20500,Itemizable gross (before 10% AGI disregard) casualty or theft loss, 31, 32, 34, 35, 37, 38, 40, 40, 39, 40, 41, 42, 44, 45, 47, 48, 50, 53 -iitax,Federal income tax liability, 7359, 8402, 8794, 8763, 9433, 9955, 10328, 9580, 9768, 10225, 10573, 10998, 11470, 11966, 12475, 12948, 13369, 13794 +iitax,Federal income tax liability, 7359, 8402, 8794, 8763, 9433, 9955, 10328, 9572, 7395, 10225, 10572, 10998, 11469, 11965, 12475, 12947, 13369, 13794 k1bx14p,Partner self-employment earnings/loss for taxpayer (included in e26270 total), -243, -269, -269, -254, -244, -247, -242, -232, -241, -258, -274, -292, -313, -323, -334, -336, -334, -332 k1bx14s,Partner self-employment earnings/loss for spouse (included in e26270 total), -9, -9, -9, -7, -6, -6, -5, -5, -5, -5, -6, -5, -6, -6, -7, -6, -5, -3 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 diff --git a/taxcalc/tests/pufcsv_agg_expect.csv b/taxcalc/tests/pufcsv_agg_expect.csv index 560bc147f..c756d409e 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),169.9,172.7,175.2,177.5,179.8,182.0,184.3,186.4,188.7,190.9 -AGI ($b),11313.0,12036.9,12586.7,12320.7,12552.8,13103.6,13627.7,14227.7,14889.8,15505.7 +AGI ($b),11313.0,12036.9,12586.7,12320.7,12552.8,13103.6,13627.7,14227.7,14889.8,15589.9 Itemizers (#m),46.2,20.8,21.8,21.8,20.8,21.5,22.1,22.7,23.4,53.8 -Itemized Deduction ($b),1306.5,653.5,691.3,714.2,667.2,698.9,734.3,770.7,813.0,1840.4 +Itemized Deduction ($b),1306.5,653.5,691.3,713.7,667.2,698.9,734.3,770.7,813.0,1840.0 Standard Deduction Filers (#m),123.7,152.0,153.4,155.7,159.0,160.5,162.1,163.7,165.3,137.1 -Standard Deduction ($b),1096.2,2579.0,2651.8,2754.6,2815.1,2870.3,2946.5,3033.3,3126.0,1421.1 +Standard Deduction ($b),1096.2,2579.0,2651.8,2754.9,2815.1,2870.3,2946.5,3033.3,3126.0,1421.1 Personal Exemption ($b),1253.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1576.8 -Taxable Income ($b),8228.7,9296.8,9761.6,9409.6,9640.2,10111.8,10535.8,11026.7,11572.4,11421.1 -Regular Tax ($b),1679.9,1733.3,1822.0,1733.2,1782.3,1882.6,1968.8,2069.6,2181.9,2375.4 -AMT Income ($b),10708.6,11605.2,12127.5,11842.9,12110.6,12637.9,13135.8,13708.2,14338.2,14645.4 -AMT Liability ($b),50.1,22.9,24.2,25.2,24.5,25.2,26.3,27.5,28.9,71.5 +Taxable Income ($b),8228.7,9296.8,9761.6,9398.7,9640.2,10111.8,10535.8,11026.7,11572.4,11464.7 +Regular Tax ($b),1679.9,1733.3,1822.0,1731.8,1782.3,1882.6,1968.8,2069.6,2181.9,2387.3 +AMT Income ($b),10708.6,11605.2,12127.5,11843.2,12110.6,12637.9,13135.8,13708.2,14338.2,14729.6 +AMT Liability ($b),50.1,22.9,24.2,25.2,24.5,25.2,26.3,27.5,28.9,73.4 AMT Filers (#m),5.4,0.5,1.2,1.2,1.2,1.2,1.2,1.2,1.2,7.2 -Tax before Credits ($b),1730.1,1756.2,1846.2,1758.5,1806.8,1907.8,1995.1,2097.1,2210.8,2446.8 -Refundable Credits ($b),104.6,120.0,121.0,127.2,126.0,126.3,127.0,128.1,130.1,114.5 -Nonrefundable Credits ($b),67.4,126.7,128.2,125.2,126.8,130.3,133.2,136.6,139.6,76.3 +Tax before Credits ($b),1730.1,1756.2,1846.2,1757.0,1806.8,1907.8,1995.1,2097.1,2210.8,2460.7 +Refundable Credits ($b),104.6,120.0,121.0,127.3,725.8,126.6,127.4,128.4,130.4,114.9 +Nonrefundable Credits ($b),67.4,126.7,128.2,124.9,48.1,130.3,133.2,136.6,139.6,76.3 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),42.1,47.5,50.4,49.2,47.6,48.3,48.8,49.9,51.7,52.3 -Ind Income Tax ($b),1600.1,1557.0,1647.4,1555.3,1601.6,1699.5,1783.7,1882.3,1992.7,2308.3 +Other Taxes ($b),42.1,47.5,50.4,49.2,47.6,48.3,48.8,49.9,51.7,53.6 +Ind Income Tax ($b),1600.1,1557.0,1647.4,1554.0,1080.5,1699.2,1783.4,1882.0,1992.4,2323.2 Payroll Taxes ($b),1110.4,1160.6,1214.4,1191.6,1217.1,1269.9,1322.4,1378.3,1439.2,1504.9 -Combined Liability ($b),2710.5,2717.6,2861.8,2746.9,2818.8,2969.4,3106.1,3260.6,3432.0,3813.2 -With Income Tax <= 0 (#m),69.2,75.4,75.4,78.8,79.2,79.1,79.2,79.4,79.7,74.1 -With Combined Tax <= 0 (#m),40.4,42.1,42.7,44.4,45.2,45.5,45.9,46.6,47.0,45.6 +Combined Liability ($b),2710.5,2717.6,2861.8,2745.7,2297.7,2969.1,3105.8,3260.3,3431.6,3828.0 +With Income Tax <= 0 (#m),69.2,75.4,75.4,79.0,108.8,79.1,79.2,79.5,79.7,74.1 +With Combined Tax <= 0 (#m),40.4,42.1,42.7,44.5,75.9,45.5,45.9,46.7,47.1,45.6 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)",907.9,950.8,1007.9,1066.2,1132.5,1206.8,1288.9,1371.9,1457.6,1546.8 Total Benefits Cost ($b),907.9,950.8,1007.9,1066.2,1132.5,1206.8,1288.9,1371.9,1457.6,1546.8 diff --git a/taxcalc/tests/test_cpscsv.py b/taxcalc/tests/test_cpscsv.py index 6cb55fa0d..25777c789 100644 --- a/taxcalc/tests/test_cpscsv.py +++ b/taxcalc/tests/test_cpscsv.py @@ -63,7 +63,7 @@ def test_agg(tests_path, cps_fullsample): raise ValueError(msg) # create aggregate diagnostic table using unweighted sub-sample of records rn_seed = 180 # to ensure sub-sample is always the same - subfrac = 0.03 # sub-sample fraction + subfrac = 0.07# 0.03 # sub-sample fraction subsample = cps_fullsample.sample(frac=subfrac, random_state=rn_seed) recs_subsample = Records.cps_constructor(data=subsample) calc_subsample = Calculator(policy=baseline_policy, records=recs_subsample) @@ -71,6 +71,8 @@ def test_agg(tests_path, cps_fullsample): adt_subsample = calc_subsample.diagnostic_table(nyrs) # compare combined tax liability from full and sub samples for each year taxes_subsample = adt_subsample.loc["Combined Liability ($b)"] + print('taxes_submsampe = ', taxes_subsample) + print('TAXES full sample = ', taxes_fullsample) msg = '' for cyr in range(calc_start_year, calc_start_year + nyrs): if cyr == calc_start_year: diff --git a/taxcalc/tests/test_parameters.py b/taxcalc/tests/test_parameters.py index b9467acfe..0fcbd648d 100644 --- a/taxcalc/tests/test_parameters.py +++ b/taxcalc/tests/test_parameters.py @@ -21,6 +21,7 @@ GrowFactors, is_paramtools_format, ) +from taxcalc.growdiff import GrowDiff # Test specification and use of simple Parameters-derived class that has @@ -232,27 +233,22 @@ def test_json_file_contents(tests_path, fname): param.get('indexable', False), param['value_type']) failures += fail + '\n' - # check that indexed parameters have all known years in value_yrs list - # (form_parameters are those whose value is available only on IRS form) - form_parameters = [] - if param.get('indexed', False): - defined_years = set( - vo["year"] for vo in param["value"] - ) - error = False - if pname in long_params: - exp_years = long_known_years - else: - exp_years = known_years - if pname in form_parameters: - if defined_years != exp_years: - error = True - else: - if defined_years != exp_years: - error = True - if error: - msg = 'param:<{}>; len(value_yrs)={}; known_years={}' - fail = msg.format(pname, len(defined_years), exp_years) + if fname == "consumption.json": + o = Consumption() + elif fname == "policy_current_law.json": + o = Policy() + elif fname == "growdiff.json": + o = GrowDiff() + param_list = [] + for k in o: + if k[0].isupper(): # find parameters by case of first letter + param_list.append(k) + for param in param_list: + for y in known_years: + o.set_year(y) + if np.isnan(getattr(o, param)).any(): + msg = 'param:<{}>; not found in year={}' + fail = msg.format(param, y) failures += fail + '\n' if failures: raise ValueError(failures) diff --git a/taxcalc/tests/test_policy.py b/taxcalc/tests/test_policy.py index 5f8b40d2d..3b87afc82 100644 --- a/taxcalc/tests/test_policy.py +++ b/taxcalc/tests/test_policy.py @@ -1262,10 +1262,10 @@ def test_apply_cpi_offset(self): # make sure values prior to 2021 were not affected. cmp_policy_objs(pol0, pol2, year_range=range(pol2.start_year, 2021)) - pol2.set_state(year=[2021, 2022]) + pol2.set_state(year=[2022, 2023]) np.testing.assert_equal( (pol2.EITC_c[1] / pol2.EITC_c[0] - 1).round(4), - pol0.inflation_rates(year=2021) + (-0.001), + pol0.inflation_rates(year=2022) + (-0.001), ) def test_multiple_cpi_swaps(self): diff --git a/taxcalc/tests/test_reforms.py b/taxcalc/tests/test_reforms.py index 695e93823..7ff0545d8 100644 --- a/taxcalc/tests/test_reforms.py +++ b/taxcalc/tests/test_reforms.py @@ -115,6 +115,49 @@ def test_round_trip_tcja_reform(tests_path): assert not pol.errors pol.set_year(fyear) rtr_mdata = dict(pol.items()) + # Layer on ARPA + pol.implement_reform({'RRC_c': {2021: 1400, 2022: 0}, + 'RRC_ps': {2021: [75000, 150000, 75000, 112500, + 150000], 2022: [0, 0, 0, 0, 0]}, + 'RRC_pe': {2021: [80000, 160000, 80000, 120000, + 160000], 2022: [0, 0, 0, 0, 0]}, + 'UI_em': {2020: 10200, 2021: 0}, + 'UI_thd': {2020: [150000, 150000, 150000, 150000, + 150000], 2021: [0, 0, 0, 0, 0]}, + 'CTC_refundable': {2021: True, 2022: False}, + 'CTC_include17': {2021: True, 2022: False}, + 'CTC_new_c': {2021: 1000, 2022: 0}, + 'CTC_new_c_under6_bonus': {2021: 600, 2022: 0}, + 'CTC_new_for_all': {2021: True, 2022: False}, + 'CTC_new_ps': {2021: [75000, 150000, 75000, 112500, + 150000], 2022: [0, 0, 0, 0, 0]}, + 'CTC_new_prt': {2021: 0.05, 2022: 0}, + 'EITC_c': {2021: [1502.46, 3606.44, 5960.95, + 6706.58], 2022: [546.21, 3640.7, 6017.58, + 6770.29]}, + 'EITC_rt': {2021: [0.153, 0.34, 0.4, 0.45], + 2022: [0.0765, 0.34, 0.4, 0.45]}, + 'EITC_ps': {2021: [11610, 19464.12, 19464.12, + 19464.12], 2022: [8931.38, 19649.03, + 19649.03, 19649.03]}, + 'EITC_MinEligAge': {2021: 19, 2022: 25}, + 'EITC_MaxEligAge': {2021: 125, 2022: 64}, + 'EITC_InvestIncome_c': {2021: 10000}, + 'EITC_sep_filers_elig': {2021: True}, + 'CDCC_c': {2021: 8000, 2022: 3000}, + 'CDCC_ps': {2021: 125000, 2022: 15000}, + 'CDCC_ps2': {2021: 400000, 2022: 9e+99}, + 'CDCC_crt': {2021: 50.0, 2022: 35.0}, + 'CDCC_refundable': {2021: True, 2022: False}, + 'ALD_BusinessLosses_c': {2026: [283535.22, 567070.42, + 283535.22, 283535.22, + 567070.42], 2027: [9e+99, + 9e+99, 9e+99, 9e+99, + 9e+99]}}) + assert not pol.parameter_warnings + assert not pol.errors + pol.set_year(fyear) + rtr_mdata = dict(pol.items()) # compare fyear policy parameter values assert clp_mdata.keys() == rtr_mdata.keys() fail_dump = False