From d8438aa7e81a6696877bbc8ffbfc64be8b82bdcd Mon Sep 17 00:00:00 2001 From: martinholmer Date: Wed, 10 Jan 2018 12:13:56 -0500 Subject: [PATCH 1/4] Rename _ALD_Alimony_hc as _ALD_AlimonyPaid_hc --- taxcalc/current_law_policy.json | 8 ++++---- taxcalc/functions.py | 6 +++--- taxcalc/reforms/TCJA_Reconciliation.json | 2 +- taxcalc/tests/reforms.json | 4 ++-- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/taxcalc/current_law_policy.json b/taxcalc/current_law_policy.json index 42ca2834f..01d5eb4da 100644 --- a/taxcalc/current_law_policy.json +++ b/taxcalc/current_law_policy.json @@ -339,13 +339,13 @@ "out_of_range_action": "stop" }, - "_ALD_Alimony_hc": { - "long_name": "Adjustment for alimony payment haircut", - "description": "Under current law, the full amount of alimony payment is taken as an adjustment from gross income in arriving at AGI. This haircut can be used to limit the deduction allowed.", + "_ALD_AlimonyPaid_hc": { + "long_name": "Adjustment for alimony-paid haircut", + "description": "Under pre-TCJA law, the full amount of alimony paid is taken as an adjustment from gross income in arriving at AGI. This haircut can be used to limit the deduction allowed.", "section_1": "Above The Line Deductions", "section_2": "Misc. Adjustment Haircuts", "irs_ref": "Form 1040, line 31", - "notes": "The final adjustment amount would be (1-Haircut)*AlimonyPayments.", + "notes": "The final adjustment amount would be (1-Haircut)*AlimonyPaid.", "row_var": "FLPDYR", "row_label": ["2013"], "start_year": 2013, diff --git a/taxcalc/functions.py b/taxcalc/functions.py index 62f91bf31..02be09efc 100644 --- a/taxcalc/functions.py +++ b/taxcalc/functions.py @@ -117,7 +117,7 @@ def Adj(e03150, e03210, c03260, e03270, e03300, e03400, e03500, e03220, e03230, e03240, e03290, care_deduction, ALD_StudentLoan_hc, ALD_SelfEmp_HealthIns_hc, ALD_KEOGH_SEP_hc, - ALD_EarlyWithdraw_hc, ALD_Alimony_hc, ALD_EducatorExpenses_hc, + ALD_EarlyWithdraw_hc, ALD_AlimonyPaid_hc, ALD_EducatorExpenses_hc, ALD_HSADeduction_hc, ALD_IRAContributions_hc, ALD_DomesticProduction_hc, ALD_Tuition_hc, c02900, c02900_in_ei): @@ -162,7 +162,7 @@ def Adj(e03150, e03210, c03260, ALD_EarlyWithdraw_hc : Penalty on early withdrawal deduction haricut - ALD_Alimony_hc : Alimony paid deduction haircut + ALD_AlimonyPaid_hc : Alimony paid deduction haircut ALD_EducatorExpenses_hc: Eductor expenses haircut @@ -185,7 +185,7 @@ def Adj(e03150, e03210, c03260, c02900_in_ei = ((1. - ALD_StudentLoan_hc) * e03210 + c03260 + (1. - ALD_EarlyWithdraw_hc) * e03400 + - (1. - ALD_Alimony_hc) * e03500 + + (1. - ALD_AlimonyPaid_hc) * e03500 + (1. - ALD_EducatorExpenses_hc) * e03220 + (1. - ALD_Tuition_hc) * e03230 + (1. - ALD_DomesticProduction_hc) * e03240 + diff --git a/taxcalc/reforms/TCJA_Reconciliation.json b/taxcalc/reforms/TCJA_Reconciliation.json index 2f995a140..2b66c33aa 100644 --- a/taxcalc/reforms/TCJA_Reconciliation.json +++ b/taxcalc/reforms/TCJA_Reconciliation.json @@ -144,7 +144,7 @@ "_ALD_DomesticProduction_hc": {"2018": [1], "2026": [0]}, - "_ALD_Alimony_hc": + "_ALD_AlimonyPaid_hc": {"2019": [1], "2026": [0]}, "_ID_prt": diff --git a/taxcalc/tests/reforms.json b/taxcalc/tests/reforms.json index d2d827ab9..f6b8a9d56 100644 --- a/taxcalc/tests/reforms.json +++ b/taxcalc/tests/reforms.json @@ -96,8 +96,8 @@ "11": { "start_year": 2015, - "value": {"_ALD_Alimony_hc": [1]}, - "name": "Eliminate adjustment for alimony payments", + "value": {"_ALD_AlimonyPaid_hc": [1]}, + "name": "Eliminate AGI adjustment for alimony paid", "output_type": "iitax", "compare_with": {}, "expected": "Tax-Calculator,3.2,3.3,3.5,3.4" From 2a4d2f7bef2a79cb09d49f8a4ec68190d22b3fdb Mon Sep 17 00:00:00 2001 From: martinholmer Date: Wed, 10 Jan 2018 13:25:04 -0500 Subject: [PATCH 2/4] Add _ALD_AlimonyReceived_hc policy parameter and associated logic --- taxcalc/current_law_policy.json | 24 +++++++++++++++++++++++- taxcalc/functions.py | 13 +++++++++---- taxcalc/reforms/TCJA_Reconciliation.json | 5 ++++- 3 files changed, 36 insertions(+), 6 deletions(-) diff --git a/taxcalc/current_law_policy.json b/taxcalc/current_law_policy.json index 01d5eb4da..a8fae559b 100644 --- a/taxcalc/current_law_policy.json +++ b/taxcalc/current_law_policy.json @@ -341,7 +341,7 @@ "_ALD_AlimonyPaid_hc": { "long_name": "Adjustment for alimony-paid haircut", - "description": "Under pre-TCJA law, the full amount of alimony paid is taken as an adjustment from gross income in arriving at AGI. This haircut can be used to limit the deduction allowed.", + "description": "Under pre-TCJA law, the full amount of alimony paid is taken as an adjustment from gross income in arriving at AGI. This haircut can be used to change the deduction allowed.", "section_1": "Above The Line Deductions", "section_2": "Misc. Adjustment Haircuts", "irs_ref": "Form 1040, line 31", @@ -361,6 +361,28 @@ "out_of_range_action": "stop" }, + "_ALD_AlimonyReceived_hc": { + "long_name": "Adjustment for alimony-received haircut", + "description": "Under pre-TCJA law, none of alimony received is taken as an adjustment from gross income in arriving at AGI. This haircut can be used to change the deduction allowed.", + "section_1": "Above The Line Deductions", + "section_2": "Misc. Adjustment Haircuts", + "irs_ref": "Form 1040, line ?? (new with TCJA)", + "notes": "The final adjustment amount would be (1-Haircut)*AlimonyReceived.", + "row_var": "FLPDYR", + "row_label": ["2013"], + "start_year": 2013, + "cpi_inflated": false, + "col_var": "", + "col_label": "", + "boolean_value": false, + "integer_value": false, + "value": [1.0], + "range": {"min": 0, "max": 1}, + "out_of_range_minmsg": "", + "out_of_range_maxmsg": "", + "out_of_range_action": "stop" + }, + "_ALD_EducatorExpenses_hc": { "long_name": "Deduction for educator expenses haircut", "description": "If greater than zero, this decimal fraction reduces the portion of educator expenses that can be deducted from AGI.", diff --git a/taxcalc/functions.py b/taxcalc/functions.py index 02be09efc..ee345e704 100644 --- a/taxcalc/functions.py +++ b/taxcalc/functions.py @@ -114,11 +114,11 @@ def DependentCare(nu13, elderly_dependent, earned, @iterate_jit(nopython=True) def Adj(e03150, e03210, c03260, - e03270, e03300, e03400, e03500, + e03270, e03300, e03400, e03500, e00800, e03220, e03230, e03240, e03290, care_deduction, ALD_StudentLoan_hc, ALD_SelfEmp_HealthIns_hc, ALD_KEOGH_SEP_hc, - ALD_EarlyWithdraw_hc, ALD_AlimonyPaid_hc, ALD_EducatorExpenses_hc, - ALD_HSADeduction_hc, ALD_IRAContributions_hc, + ALD_EarlyWithdraw_hc, ALD_AlimonyPaid_hc, ALD_AlimonyReceived_hc, + ALD_EducatorExpenses_hc, ALD_HSADeduction_hc, ALD_IRAContributions_hc, ALD_DomesticProduction_hc, ALD_Tuition_hc, c02900, c02900_in_ei): """ @@ -148,7 +148,9 @@ def Adj(e03150, e03210, c03260, e03400 : Penalty on early withdrawal of savings deduction - e03500 : Alimony paid deduction + e03500 : Alimony paid + + e00800 : Alimony received care_deduction : Dependent care expense deduction @@ -164,6 +166,8 @@ def Adj(e03150, e03210, c03260, ALD_AlimonyPaid_hc : Alimony paid deduction haircut + ALD_AlimonyReceived_hc : Alimony received deduction haircut + ALD_EducatorExpenses_hc: Eductor expenses haircut ALD_HSADeduction_hc: HSA Deduction haircut @@ -186,6 +190,7 @@ def Adj(e03150, e03210, c03260, c03260 + (1. - ALD_EarlyWithdraw_hc) * e03400 + (1. - ALD_AlimonyPaid_hc) * e03500 + + (1. - ALD_AlimonyReceived_hc) * e00800 + (1. - ALD_EducatorExpenses_hc) * e03220 + (1. - ALD_Tuition_hc) * e03230 + (1. - ALD_DomesticProduction_hc) * e03240 + diff --git a/taxcalc/reforms/TCJA_Reconciliation.json b/taxcalc/reforms/TCJA_Reconciliation.json index 2b66c33aa..4c0681e3d 100644 --- a/taxcalc/reforms/TCJA_Reconciliation.json +++ b/taxcalc/reforms/TCJA_Reconciliation.json @@ -8,7 +8,7 @@ // - Repeal personal exemption (4) // - Modification to child tax credit, nonrefundable dependent credits (5) // - Modification of Alternative Minimum Tax exemption (6) -// - Repeal of certain above the line deductions (7) +// - Changes to certain above the line deductions (7) // - Changes to itemized deductions (8) // - Switch to chained CPI from CPI-U for tax parameter adjustment (9) // Reform_Parameter_Map: @@ -147,6 +147,9 @@ "_ALD_AlimonyPaid_hc": {"2019": [1], "2026": [0]}, + "_ALD_AlimonyReceived_hc": + {"2019": [0], + "2026": [1]}, "_ID_prt": {"2018": [0], "2026": [0.03]}, From 041532576b23efa21410c36dd0787c60277f53f9 Mon Sep 17 00:00:00 2001 From: martinholmer Date: Wed, 10 Jan 2018 22:14:59 -0500 Subject: [PATCH 3/4] Update RELEASES.md info for PR 1818 and PR 1819 --- RELEASES.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/RELEASES.md b/RELEASES.md index 5465fec36..2237cb661 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -24,6 +24,12 @@ for a complete commit history. - Change minimum required pandas version from 0.21.0 to 0.22.0 and remove zsum() pandas work-around [[#1805](https://github.com/open-source-economics/Tax-Calculator/pull/1805) by Martin Holmer] +- Add policy parameter and logic needed to represent TCJA treatment of alimony received + [[#1818](https://github.com/open-source-economics/Tax-Calculator/pull/1818) + by Martin Holmer as suggested by Cody Kallen] +- Add policy parameters and logic needed to represent TCJA limits on pass-through income and business losses + [[#1819](https://github.com/open-source-economics/Tax-Calculator/pull/1819) + by Cody Kallen] **Bug Fixes** - None From 814da535e9de0db14901bdc933158ef3ebf8bf9e Mon Sep 17 00:00:00 2001 From: martinholmer Date: Thu, 11 Jan 2018 12:03:18 -0500 Subject: [PATCH 4/4] Update RELEASES.md info --- RELEASES.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/RELEASES.md b/RELEASES.md index 2237cb661..f2a2ece18 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -26,7 +26,7 @@ for a complete commit history. by Martin Holmer] - Add policy parameter and logic needed to represent TCJA treatment of alimony received [[#1818](https://github.com/open-source-economics/Tax-Calculator/pull/1818) - by Martin Holmer as suggested by Cody Kallen] + by Martin Holmer and Cody Kallen] - Add policy parameters and logic needed to represent TCJA limits on pass-through income and business losses [[#1819](https://github.com/open-source-economics/Tax-Calculator/pull/1819) by Cody Kallen]