From 854cf2aca2dc5b57759912fe2a4a5683a5b4d389 Mon Sep 17 00:00:00 2001 From: martinholmer Date: Fri, 7 Oct 2016 12:45:17 -0400 Subject: [PATCH 1/2] Attempt to tax LTCG+QDIV same as other income. --- taxcalc/current_law_policy.json | 13 +++++++++++++ taxcalc/functions.py | 10 ++++++++-- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/taxcalc/current_law_policy.json b/taxcalc/current_law_policy.json index 50a0f697f..c58010512 100644 --- a/taxcalc/current_law_policy.json +++ b/taxcalc/current_law_policy.json @@ -876,6 +876,19 @@ "validations": {"min": "_II_brk6"} }, + "_CG_as_II": { + "long_name": "Long term capital gains and qualified dividends taxed same as other income", + "description": "This zero/one parameter specifies whether or not long term capital gains and qualified dividends are taxed like other income.", + "irs_ref": "Current-law value is zero and Schedule D tax rules are used.", + "start_year": 2013, + "col_var": "", + "row_var": "FLPDYR", + "row_label": ["2013"], + "cpi_inflated": false, + "col_label": "", + "value": [0] + }, + "_CG_rt1": { "long_name": "Long term capital gain and qualified dividends rate 1", "description": "The capital gain and dividends (stacked on top of regular income) that are below threshold 1 are taxed at this rate. ", diff --git a/taxcalc/functions.py b/taxcalc/functions.py index 8a5a7046e..9102a2485 100644 --- a/taxcalc/functions.py +++ b/taxcalc/functions.py @@ -154,8 +154,9 @@ def CapGains(p23250, p22250, _sep, ALD_Interest_ec, ALD_StudentLoan_HC, # limitation on capital losses c01000 = max((-3000. / _sep), c23650) # compute ymod* variables - ymod1 = (e00200 + (1 - ALD_Interest_ec) * e00300 + e00600 + e00700 + - e00800 + e00900 + c01000 + e01100 + e01200 + e01400 + e01700 + + ymod1 = (e00200 + e00700 + e00800 + e00900 + e01400 + e01700 + + (1 - ALD_Interest_ec) * (e00300 + e00600 + + c01000 + e01100 + e01200) + e02000 + e02100 + e02300) ymod2 = e00400 + (0.50 * e02400) - c02900 ymod3 = (1 - ALD_StudentLoan_HC) * e03210 + e03230 + e03240 @@ -483,11 +484,13 @@ def GainsTax(e00650, c01000, c23650, p23250, e01100, e58990, e24515, e24518, MARS, c04800, c05200, II_rt1, II_rt2, II_rt3, II_rt4, II_rt5, II_rt6, II_rt7, II_rt8, II_brk1, II_brk2, II_brk3, II_brk4, II_brk5, II_brk6, II_brk7, + CG_as_II, CG_rt1, CG_rt2, CG_rt3, CG_rt4, CG_thd1, CG_thd2, CG_thd3, c24516, c24517, c24520, c05700, _taxbc): """ GainsTax function implements (2015) Schedule D Tax Worksheet logic for the special taxation of long-term capital gains and qualified dividends + if CG_as_II is false (that is, zero) """ # pylint: disable=too-many-statements,too-many-branches if c01000 > 0. or c23650 > 0. or p23250 > 0. or e01100 > 0. or e00650 > 0.: @@ -495,6 +498,9 @@ def GainsTax(e00650, c01000, c23650, p23250, e01100, e58990, else: hasqdivltcg = 0 # no qualified dividends or long-term capital gains + if CG_as_II != 0.: + hasqdivltcg = 0 # no special taxation of qual divids and l-t cap gains + if hasqdivltcg == 1: dwks1 = c04800 From 3f6f1048044ec03f24e9763bc5de500caae30585 Mon Sep 17 00:00:00 2001 From: martinholmer Date: Fri, 7 Oct 2016 13:03:41 -0400 Subject: [PATCH 2/2] Fix typo in prior commit. --- taxcalc/functions.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/taxcalc/functions.py b/taxcalc/functions.py index 62997d75e..f83c062b7 100644 --- a/taxcalc/functions.py +++ b/taxcalc/functions.py @@ -155,8 +155,8 @@ def CapGains(p23250, p22250, _sep, ALD_Investment_ec, ALD_StudentLoan_HC, c01000 = max((-3000. / _sep), c23650) # compute ymod* variables ymod1 = (e00200 + e00700 + e00800 + e00900 + e01400 + e01700 + - (1 - ALD_Interest_ec) * (e00300 + e00600 + - c01000 + e01100 + e01200) + + (1 - ALD_Investment_ec) * (e00300 + e00600 + + c01000 + e01100 + e01200) + e02000 + e02100 + e02300) ymod2 = e00400 + (0.50 * e02400) - c02900 ymod3 = (1 - ALD_StudentLoan_HC) * e03210 + e03230 + e03240