From 75d14398992f76b459a928d626b8f01ab7fb5e77 Mon Sep 17 00:00:00 2001 From: Cody Kallen Date: Wed, 10 Jan 2018 17:23:55 -0500 Subject: [PATCH] add business loss limitation --- taxcalc/current_law_policy.json | 30 ++++++++++++++++++++++++ taxcalc/functions.py | 8 +++---- taxcalc/reforms/TCJA_Reconciliation.json | 3 +++ 3 files changed, 37 insertions(+), 4 deletions(-) diff --git a/taxcalc/current_law_policy.json b/taxcalc/current_law_policy.json index 6e9d573fb..2e7f7d067 100644 --- a/taxcalc/current_law_policy.json +++ b/taxcalc/current_law_policy.json @@ -619,6 +619,36 @@ "out_of_range_action": "stop" }, + "_ALD_BusinessLosses_c": { + "long_name": "Maximum amount of business losses deductible", + "description": "Business losses in excess of this amount may not be deducted from AGI.", + "section_1": "Above The Line Deductions", + "section_2": "Misc. Exclusions", + "irs_ref": "", + "notes": "", + "row_var": "FLPDYR", + "row_label": ["2013", + "2014", + "2015", + "2016", + "2017"], + "start_year": 2013, + "cpi_inflated": true, + "col_var": "MARS", + "col_label": ["single", "joint", "separate", "headhousehold", "widow"], + "boolean_value": false, + "integer_value": false, + "value": [[9e99, 9e99, 9e99, 9e99, 9e99], + [9e99, 9e99, 9e99, 9e99, 9e99], + [9e99, 9e99, 9e99, 9e99, 9e99], + [9e99, 9e99, 9e99, 9e99, 9e99], + [9e99, 9e99, 9e99, 9e99, 9e99]], + "range": {"min": 0.0, "max": 9e99}, + "out_of_range_minmsg": "", + "out_of_range_maxmsg": "", + "out_of_range_action": "stop" + }, + "_II_em": { "long_name": "Personal and dependent exemption amount", "description": "Subtracted from AGI in the calculation of taxable income, per taxpayer and dependent.", diff --git a/taxcalc/functions.py b/taxcalc/functions.py index f4a6b9bec..f376c9663 100644 --- a/taxcalc/functions.py +++ b/taxcalc/functions.py @@ -221,7 +221,7 @@ def ALD_InvInc_ec_base(p22250, p23250, sep, def CapGains(p23250, p22250, sep, ALD_StudentLoan_hc, ALD_InvInc_ec_rt, invinc_ec_base, ALD_InvInc_ec_base_RyanBrady, e00200, e00300, e00600, e00650, e00700, e00800, - CG_nodiff, CG_ec, CG_reinvest_ec_rt, + CG_nodiff, CG_ec, CG_reinvest_ec_rt, ALD_BusinessLosses_c, MARS, e00900, e01100, e01200, e01400, e01700, e02000, e02100, e02300, e00400, e02400, c02900, e03210, e03230, e03240, c01000, c23650, ymod, ymod1, invinc_agi_ec): @@ -249,9 +249,9 @@ def CapGains(p23250, p22250, sep, ALD_StudentLoan_hc, p22250 + ALD_InvInc_ec_rt * p23250)) invinc_agi_ec = ALD_InvInc_ec_rt * (e00300 + e00650) + CG_ec_RyanBrady # compute ymod1 variable that is included in AGI - ymod1 = (e00200 + e00700 + e00800 + e00900 + e01400 + e01700 + - invinc - invinc_agi_ec + - e02000 + e02100 + e02300) + ymod1 = (e00200 + e00700 + e00800 + e01400 + e01700 + + invinc - invinc_agi_ec + e02100 + e02300 + + max(e00900 + e02000, -ALD_BusinessLosses_c[MARS - 1])) if CG_nodiff: # apply QDIV+CG exclusion if QDIV+LTCG receive no special tax treatment qdcg_pos = max(0., e00650 + c01000) diff --git a/taxcalc/reforms/TCJA_Reconciliation.json b/taxcalc/reforms/TCJA_Reconciliation.json index 0b0fed23b..1f29111ce 100644 --- a/taxcalc/reforms/TCJA_Reconciliation.json +++ b/taxcalc/reforms/TCJA_Reconciliation.json @@ -153,6 +153,9 @@ "_ALD_Alimony_hc": {"2019": [1], "2026": [0]}, + "_ALD_BusinessLosses_c": + {"2018": [[250000, 500000, 250000, 250000, 500000]], + "2026": [[9e99, 9e99, 9e99, 9e99, 9e99]]}, "_ID_prt": {"2018": [0], "2026": [0.03]},