policyengine-us 1.400.1__py3-none-any.whl → 1.401.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of policyengine-us might be problematic. Click here for more details.
- policyengine_us/parameters/gov/irs/social_security/taxability/rate/additional/benefit_cap.yaml +11 -0
- policyengine_us/parameters/gov/irs/social_security/taxability/rate/additional/bracket.yaml +11 -0
- policyengine_us/parameters/gov/irs/social_security/taxability/rate/additional/excess.yaml +11 -0
- policyengine_us/parameters/gov/irs/social_security/taxability/rate/base/benefit_cap.yaml +11 -0
- policyengine_us/parameters/gov/irs/social_security/taxability/rate/base/excess.yaml +11 -0
- policyengine_us/parameters/gov/states/household/state_itemized_deductions.yaml +6 -6
- policyengine_us/parameters/gov/states/household/state_standard_deductions.yaml +6 -6
- policyengine_us/parameters/gov/states/la/tax/income/deductions/itemized/relevant_federal_deductions.yaml +1 -1
- policyengine_us/tests/policy/baseline/gov/irs/income/taxable_income/deductions/tax_unit_itemizes.yaml +109 -0
- policyengine_us/tests/policy/baseline/gov/irs/social_security/taxable_social_security.yaml +71 -0
- policyengine_us/tests/policy/baseline/gov/states/la/tax/income/deductions/la_itemized_deductions.yaml +4 -2
- policyengine_us/tests/policy/baseline/gov/states/me/tax/income/taxable_income/deductions/me_deductions.yaml +15 -10
- policyengine_us/tests/policy/baseline/gov/states/me/tax/income/taxable_income/deductions/me_itemized_deductions_pre_phaseout.yaml +4 -1
- policyengine_us/tests/policy/baseline/gov/states/mt/tax/income/deductions/itemized/federal_itemization/mt_federal_income_tax_deduction_for_federal_itemization.yaml +57 -0
- policyengine_us/tests/policy/baseline/gov/states/mt/tax/income/deductions/itemized/federal_itemization/mt_federal_income_tax_deduction_for_federal_itemization_indiv.yaml +39 -0
- policyengine_us/tests/policy/baseline/gov/states/mt/tax/income/deductions/itemized/federal_itemization/mt_itemized_deductions_for_federal_itemization_indiv.yaml +76 -0
- policyengine_us/tests/policy/baseline/gov/states/mt/tax/income/deductions/itemized/federal_itemization/mt_itemized_deductions_for_federal_itemization_joint.yaml +76 -0
- policyengine_us/tests/policy/baseline/gov/states/nm/tax/income/deductions/nm_itemized_deductions.yaml +47 -0
- policyengine_us/tests/policy/baseline/gov/states/tax/income/state_itemized_deductions.yaml +180 -0
- policyengine_us/tests/policy/baseline/gov/states/tax/income/state_standard_deduction.yaml +178 -0
- policyengine_us/variables/gov/irs/income/taxable_income/adjusted_gross_income/irs_gross_income/social_security/tax_unit_taxable_social_security.py +27 -11
- policyengine_us/variables/gov/irs/income/taxable_income/deductions/tax_unit_itemizes.py +21 -2
- policyengine_us/variables/gov/states/ia/tax/income/including_married_filing_separately/deductions/ia_standard_deduction_indiv.py +0 -2
- policyengine_us/variables/gov/states/la/tax/income/deductions/la_standard_deduction.py +4 -2
- policyengine_us/variables/gov/states/me/tax/income/taxable_income/deductions/me_itemized_deductions_pre_phaseout.py +1 -3
- policyengine_us/variables/gov/states/me/tax/income/taxable_income/me_deductions.py +5 -2
- policyengine_us/variables/gov/states/mt/tax/income/deductions/itemized/federal_itemization/README.md +1 -0
- policyengine_us/variables/gov/states/mt/tax/income/deductions/itemized/federal_itemization/mt_federal_income_tax_deduction_for_federal_itemization.py +26 -0
- policyengine_us/variables/gov/states/mt/tax/income/deductions/itemized/federal_itemization/mt_federal_income_tax_deduction_for_federal_itemization_indiv.py +34 -0
- policyengine_us/variables/gov/states/mt/tax/income/deductions/itemized/federal_itemization/mt_itemized_deductions_for_federal_itemization_indiv.py +41 -0
- policyengine_us/variables/gov/states/mt/tax/income/deductions/itemized/federal_itemization/mt_itemized_deductions_for_federal_itemization_joint.py +37 -0
- policyengine_us/variables/gov/states/nm/tax/income/deductions/nm_deductions.py +1 -1
- policyengine_us/variables/gov/states/nm/tax/income/deductions/nm_itemized_deductions.py +13 -0
- policyengine_us/variables/gov/states/tax/income/state_itemized_deductions.py +64 -0
- policyengine_us/variables/gov/states/tax/income/state_standard_deduction.py +68 -1
- {policyengine_us-1.400.1.dist-info → policyengine_us-1.401.0.dist-info}/METADATA +1 -1
- {policyengine_us-1.400.1.dist-info → policyengine_us-1.401.0.dist-info}/RECORD +40 -22
- policyengine_us/parameters/gov/irs/social_security/taxability/rate/additional.yaml +0 -11
- policyengine_us/parameters/gov/irs/social_security/taxability/rate/base.yaml +0 -11
- {policyengine_us-1.400.1.dist-info → policyengine_us-1.401.0.dist-info}/WHEEL +0 -0
- {policyengine_us-1.400.1.dist-info → policyengine_us-1.401.0.dist-info}/entry_points.txt +0 -0
- {policyengine_us-1.400.1.dist-info → policyengine_us-1.401.0.dist-info}/licenses/LICENSE +0 -0
policyengine_us/parameters/gov/irs/social_security/taxability/rate/additional/benefit_cap.yaml
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
description: Social Security benefits are taxable at this maximum rate for taxpayers with combined income above the adjusted base threshold.
|
|
2
|
+
values:
|
|
3
|
+
1993-01-01: 0.85
|
|
4
|
+
|
|
5
|
+
metadata:
|
|
6
|
+
unit: /1
|
|
7
|
+
period: year
|
|
8
|
+
label: Social Security taxability tier 2 benefit cap rate
|
|
9
|
+
reference:
|
|
10
|
+
- title: 26 U.S. Code § 86(a)(2)(B)
|
|
11
|
+
href: https://www.law.cornell.edu/uscode/text/26/86#a_2_B
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
description: The IRS includes this portion of the difference between adjusted base and base thresholds when calculating tier 2 Social Security taxability.
|
|
2
|
+
values:
|
|
3
|
+
1984-01-01: 0.5
|
|
4
|
+
|
|
5
|
+
metadata:
|
|
6
|
+
unit: /1
|
|
7
|
+
period: year
|
|
8
|
+
label: Social Security taxability tier 1 bracket rate
|
|
9
|
+
reference:
|
|
10
|
+
- title: 26 U.S. Code § 86(a)(2)(A)(ii)
|
|
11
|
+
href: https://www.law.cornell.edu/uscode/text/26/86#a_2_A_ii
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
description: The IRS taxes Social Security benefits at this rate applied to the excess of combined income over the adjusted base threshold for taxpayers in the second tier.
|
|
2
|
+
values:
|
|
3
|
+
1993-01-01: 0.85
|
|
4
|
+
|
|
5
|
+
metadata:
|
|
6
|
+
unit: /1
|
|
7
|
+
period: year
|
|
8
|
+
label: Social Security taxability tier 2 excess rate
|
|
9
|
+
reference:
|
|
10
|
+
- title: 26 U.S. Code § 86(a)(2)(A)(i)
|
|
11
|
+
href: https://www.law.cornell.edu/uscode/text/26/86#a_2_A_i
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
description: Social Security benefits are taxable at this rate for taxpayers with combined income between the base and adjusted base thresholds.
|
|
2
|
+
values:
|
|
3
|
+
1984-01-01: 0.5
|
|
4
|
+
|
|
5
|
+
metadata:
|
|
6
|
+
unit: /1
|
|
7
|
+
period: year
|
|
8
|
+
label: Social Security taxability tier 1 benefit cap rate
|
|
9
|
+
reference:
|
|
10
|
+
- title: 26 U.S. Code § 86(a)(1)(A)
|
|
11
|
+
href: https://www.law.cornell.edu/uscode/text/26/86#a_1_A
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
description: The IRS taxes Social Security benefits at this rate applied to the excess of combined income over the base threshold for taxpayers in the first tier.
|
|
2
|
+
values:
|
|
3
|
+
1984-01-01: 0.5
|
|
4
|
+
|
|
5
|
+
metadata:
|
|
6
|
+
unit: /1
|
|
7
|
+
period: year
|
|
8
|
+
label: Social Security taxability tier 1 excess rate
|
|
9
|
+
reference:
|
|
10
|
+
- title: 26 U.S. Code § 86(a)(1)(B)
|
|
11
|
+
href: https://www.law.cornell.edu/uscode/text/26/86#a_1_B
|
|
@@ -7,27 +7,27 @@ values:
|
|
|
7
7
|
- ca_itemized_deductions # California
|
|
8
8
|
# Connecticut adopts federal itemized deductions
|
|
9
9
|
- dc_itemized_deductions # DC
|
|
10
|
-
-
|
|
10
|
+
- de_itemized_deductions_unit # Delaware
|
|
11
11
|
# Georgia adopts federal itemized deductions
|
|
12
12
|
- hi_itemized_deductions # Hawaii
|
|
13
|
-
|
|
13
|
+
# Iowa allows for a married filing separately structure which requires two separate itemized deductions.
|
|
14
14
|
- id_itemized_deductions # Idaho
|
|
15
15
|
# Illinois doesn't have deductions.
|
|
16
16
|
- ks_itemized_deductions # Kansas
|
|
17
|
-
-
|
|
17
|
+
- ky_itemized_deductions_unit # Kentucky
|
|
18
18
|
- la_itemized_deductions # Louisiana
|
|
19
19
|
# Massachusetts doesn't have deductions in a standard form.
|
|
20
20
|
- md_itemized_deductions # Maryland
|
|
21
21
|
- me_itemized_deductions_pre_phaseout # Maine phases out deductions after choosing itemization.
|
|
22
22
|
- mn_itemized_deductions # Minnesota
|
|
23
23
|
- mo_itemized_deductions # Missouri
|
|
24
|
-
-
|
|
25
|
-
|
|
24
|
+
- ms_itemized_deductions_unit # Mississippi
|
|
25
|
+
# Montana allows for a married filing separately structure which requires two separate itemized deductions.
|
|
26
26
|
- nc_itemized_deductions # North Carolina
|
|
27
27
|
# North Dakota adopts federal deductions.
|
|
28
28
|
- ne_itemized_deductions # Nebraska
|
|
29
29
|
# New Jersey doesn't have a conventional itemized deduction system.
|
|
30
|
-
# New Mexico adopts federal itemized deductions
|
|
30
|
+
- nm_itemized_deductions # New Mexico adopts federal itemized deductions
|
|
31
31
|
- ny_itemized_deductions # New York
|
|
32
32
|
# Ohio doesn't have a conventional itemized deduction system.
|
|
33
33
|
- ok_itemized_deductions # Oklahoma
|
|
@@ -2,20 +2,20 @@ description: All state standard deduction variables.
|
|
|
2
2
|
values:
|
|
3
3
|
0000-01-01:
|
|
4
4
|
- al_standard_deduction # Alabama
|
|
5
|
-
|
|
5
|
+
# Arkansas allows for a married filing separately structure which requires two separate standard deductions.
|
|
6
6
|
- az_standard_deduction # Arizona
|
|
7
7
|
- ca_standard_deduction # California
|
|
8
8
|
# Connecticut adopts federal standard deduction
|
|
9
9
|
- dc_standard_deduction # DC
|
|
10
|
-
|
|
10
|
+
# Delaware allows for a married filing separately structure which requires two separate standard deductions.
|
|
11
11
|
- ga_standard_deduction # Georgia
|
|
12
12
|
- hi_standard_deduction # Hawaii
|
|
13
|
-
|
|
13
|
+
# Iowa allows for a married filing separately structure which requires two separate standard deductions.
|
|
14
14
|
# Idaho adopts federal standard deduction.
|
|
15
15
|
# Illinois doesn't have a standard deduction.
|
|
16
16
|
# Indiana doesn't have deductions (taxes AGI directly).
|
|
17
17
|
- ks_standard_deduction # Kansas
|
|
18
|
-
|
|
18
|
+
# Kentucky allows for a married filing separately structure which requires two separate standard deductions.
|
|
19
19
|
- la_standard_deduction # Louisiana
|
|
20
20
|
# Massachusetts doesn't have deductions in a standard form.
|
|
21
21
|
- md_standard_deduction # Maryland
|
|
@@ -23,8 +23,8 @@ values:
|
|
|
23
23
|
- mi_standard_deduction # Michigan
|
|
24
24
|
- mn_standard_deduction # Minnesota
|
|
25
25
|
# Missouri adopts federal standard deduction
|
|
26
|
-
|
|
27
|
-
|
|
26
|
+
# Mississippi allows for a married filing separately structure which requires two separate standard deductions.
|
|
27
|
+
# Montana allows for a married filing separately structure which requires two separate standard deductions.
|
|
28
28
|
- nc_standard_deduction # North Carolina
|
|
29
29
|
# North Dakota adopts federal deductions.
|
|
30
30
|
- ne_standard_deduction # Nebraska
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
description: Louisiana subtracts from adjusted gross income the excess of these relevant federal deductions over the standard deduction, based on year.
|
|
2
2
|
values:
|
|
3
3
|
2021-01-01:
|
|
4
|
-
-
|
|
4
|
+
- itemized_taxable_income_deductions
|
|
5
5
|
2022-01-01:
|
|
6
6
|
- medical_expense_deduction
|
|
7
7
|
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
- name: When branching, itemization is based on tax liability
|
|
2
|
+
period: 2024
|
|
3
|
+
input:
|
|
4
|
+
gov.simulation.branch_to_determine_itemization: true
|
|
5
|
+
state_itemized_deductions: 14_000
|
|
6
|
+
state_standard_deduction: 11_000
|
|
7
|
+
tax_liability_if_itemizing: 10_000
|
|
8
|
+
tax_liability_if_not_itemizing: 1_000
|
|
9
|
+
output:
|
|
10
|
+
tax_unit_itemizes: False
|
|
11
|
+
|
|
12
|
+
- name: When branching, itemization is based on tax liability, unit does not itemize
|
|
13
|
+
period: 2024
|
|
14
|
+
input:
|
|
15
|
+
gov.simulation.branch_to_determine_itemization: true
|
|
16
|
+
state_itemized_deductions: 14_000
|
|
17
|
+
state_standard_deduction: 11_000
|
|
18
|
+
tax_liability_if_itemizing: 10_000
|
|
19
|
+
tax_liability_if_not_itemizing: 11_000
|
|
20
|
+
output:
|
|
21
|
+
tax_unit_itemizes: True
|
|
22
|
+
|
|
23
|
+
- name: When tax liability is equal, itemization is based on state deductions
|
|
24
|
+
period: 2024
|
|
25
|
+
input:
|
|
26
|
+
gov.simulation.branch_to_determine_itemization: true
|
|
27
|
+
state_itemized_deductions: 14_000
|
|
28
|
+
state_standard_deduction: 11_000
|
|
29
|
+
tax_liability_if_itemizing: 10_000
|
|
30
|
+
tax_liability_if_not_itemizing: 10_000
|
|
31
|
+
output:
|
|
32
|
+
tax_unit_itemizes: True
|
|
33
|
+
|
|
34
|
+
- name: When tax liability is equal, itemization is based on state deductions, unit itemizes
|
|
35
|
+
period: 2024
|
|
36
|
+
input:
|
|
37
|
+
gov.simulation.branch_to_determine_itemization: true
|
|
38
|
+
state_itemized_deductions: 14_000
|
|
39
|
+
state_standard_deduction: 16_000
|
|
40
|
+
tax_liability_if_itemizing: 10_000
|
|
41
|
+
tax_liability_if_not_itemizing: 10_000
|
|
42
|
+
output:
|
|
43
|
+
tax_unit_itemizes: False
|
|
44
|
+
|
|
45
|
+
- name: Without branching, itemization is based on deduction amount
|
|
46
|
+
period: 2024
|
|
47
|
+
input:
|
|
48
|
+
gov.simulation.branch_to_determine_itemization: false
|
|
49
|
+
state_itemized_deductions: 20_000
|
|
50
|
+
state_standard_deduction: 16_000
|
|
51
|
+
tax_liability_if_itemizing: 10_000
|
|
52
|
+
tax_liability_if_not_itemizing: 9_000
|
|
53
|
+
standard_deduction: 16_000
|
|
54
|
+
itemized_taxable_income_deductions: 13_000
|
|
55
|
+
output:
|
|
56
|
+
tax_unit_itemizes: False
|
|
57
|
+
|
|
58
|
+
- name: Integration test which fails without tolerance in the itemization choice
|
|
59
|
+
period: 2024
|
|
60
|
+
absolute_error_margin: 0.1
|
|
61
|
+
input:
|
|
62
|
+
people:
|
|
63
|
+
person1:
|
|
64
|
+
age: 47
|
|
65
|
+
employment_income: 0.0
|
|
66
|
+
taxable_interest_income: 31428.572
|
|
67
|
+
is_tax_unit_head: true
|
|
68
|
+
person2:
|
|
69
|
+
age: 4
|
|
70
|
+
employment_income: 0
|
|
71
|
+
is_tax_unit_dependent: true
|
|
72
|
+
is_tax_unit_head: false
|
|
73
|
+
is_tax_unit_spouse: false
|
|
74
|
+
person3:
|
|
75
|
+
age: 11
|
|
76
|
+
employment_income: 0
|
|
77
|
+
is_tax_unit_dependent: true
|
|
78
|
+
is_tax_unit_head: false
|
|
79
|
+
is_tax_unit_spouse: false
|
|
80
|
+
person4:
|
|
81
|
+
age: 19
|
|
82
|
+
employment_income: 0
|
|
83
|
+
is_tax_unit_dependent: true
|
|
84
|
+
is_tax_unit_head: false
|
|
85
|
+
is_tax_unit_spouse: false
|
|
86
|
+
tax_units:
|
|
87
|
+
tax_unit:
|
|
88
|
+
members: [person1, person2, person3, person4]
|
|
89
|
+
premium_tax_credit: 0
|
|
90
|
+
local_income_tax: 0
|
|
91
|
+
state_sales_tax: 0
|
|
92
|
+
spm_units:
|
|
93
|
+
spm_unit:
|
|
94
|
+
members: [person1, person2, person3, person4]
|
|
95
|
+
snap: 0
|
|
96
|
+
tanf: 0
|
|
97
|
+
households:
|
|
98
|
+
household:
|
|
99
|
+
members: [person1, person2, person3, person4]
|
|
100
|
+
state_fips: 45
|
|
101
|
+
output:
|
|
102
|
+
tax_liability_if_itemizing: 0
|
|
103
|
+
tax_liability_if_not_itemizing: 0
|
|
104
|
+
itemized_taxable_income_deductions: 401
|
|
105
|
+
standard_deduction: 21_900
|
|
106
|
+
state_itemized_deductions: 401
|
|
107
|
+
state_standard_deduction: 21_900
|
|
108
|
+
tax_unit_itemizes: False
|
|
109
|
+
sc_income_tax: 0
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
- name: Test SS taxation with zero values
|
|
2
|
+
period: 2024
|
|
3
|
+
input:
|
|
4
|
+
people:
|
|
5
|
+
person1:
|
|
6
|
+
age: 67
|
|
7
|
+
social_security: 0
|
|
8
|
+
interest_income: 0
|
|
9
|
+
tax_units:
|
|
10
|
+
tax_unit:
|
|
11
|
+
members: [person1]
|
|
12
|
+
filing_status: SINGLE
|
|
13
|
+
households:
|
|
14
|
+
household:
|
|
15
|
+
members: [person1]
|
|
16
|
+
state_code: TX
|
|
17
|
+
output:
|
|
18
|
+
# No income = no taxable SS
|
|
19
|
+
tax_unit_taxable_social_security: 0
|
|
20
|
+
|
|
21
|
+
- name: Test flat 85% SS taxation with minimal parametric reform
|
|
22
|
+
period: 2024
|
|
23
|
+
input:
|
|
24
|
+
# These 3 parameter changes achieve flat 85% taxation
|
|
25
|
+
gov.irs.social_security.taxability.combined_income_ss_fraction: 1.0
|
|
26
|
+
gov.irs.social_security.taxability.threshold.base.main.SINGLE: 0
|
|
27
|
+
gov.irs.social_security.taxability.threshold.adjusted_base.main.SINGLE: 0
|
|
28
|
+
people:
|
|
29
|
+
person1:
|
|
30
|
+
age: 67
|
|
31
|
+
social_security: 20_000
|
|
32
|
+
interest_income: 0
|
|
33
|
+
tax_units:
|
|
34
|
+
tax_unit:
|
|
35
|
+
members: [person1]
|
|
36
|
+
filing_status: SINGLE
|
|
37
|
+
households:
|
|
38
|
+
household:
|
|
39
|
+
members: [person1]
|
|
40
|
+
state_code: TX
|
|
41
|
+
output:
|
|
42
|
+
# With thresholds at 0 and fraction at 1.0:
|
|
43
|
+
# Combined income = 0 + 1.0 * 20k = 20k
|
|
44
|
+
# Excess over base (0) = 20k
|
|
45
|
+
# Excess over adjusted (0) = 20k
|
|
46
|
+
# Since both thresholds are 0, we're in tier 2
|
|
47
|
+
# tier2_taxable = min(0.85 * 20k + 0, 0.85 * 20k) = 17_000
|
|
48
|
+
tax_unit_taxable_social_security: 17_000
|
|
49
|
+
|
|
50
|
+
- name: Test flat 85% taxation with higher benefits
|
|
51
|
+
period: 2024
|
|
52
|
+
input:
|
|
53
|
+
gov.irs.social_security.taxability.combined_income_ss_fraction: 1.0
|
|
54
|
+
gov.irs.social_security.taxability.threshold.base.main.SINGLE: 0
|
|
55
|
+
gov.irs.social_security.taxability.threshold.adjusted_base.main.SINGLE: 0
|
|
56
|
+
people:
|
|
57
|
+
person1:
|
|
58
|
+
age: 67
|
|
59
|
+
social_security: 40_000
|
|
60
|
+
interest_income: 0
|
|
61
|
+
tax_units:
|
|
62
|
+
tax_unit:
|
|
63
|
+
members: [person1]
|
|
64
|
+
filing_status: SINGLE
|
|
65
|
+
households:
|
|
66
|
+
household:
|
|
67
|
+
members: [person1]
|
|
68
|
+
state_code: TX
|
|
69
|
+
output:
|
|
70
|
+
# 85% of 40_000 = 34_000
|
|
71
|
+
tax_unit_taxable_social_security: 34_000
|
|
@@ -33,11 +33,13 @@
|
|
|
33
33
|
state_code: LA
|
|
34
34
|
standard_deduction: 12_550
|
|
35
35
|
medical_expense_deduction: 20_000
|
|
36
|
-
|
|
36
|
+
itemized_taxable_income_deductions: 30_000
|
|
37
|
+
qualified_business_income_deduction: 1_000
|
|
37
38
|
tax_unit_itemizes: true
|
|
38
39
|
output:
|
|
39
40
|
la_itemized_deductions: 17_450
|
|
40
41
|
#30_000-12_550
|
|
42
|
+
# QBID does not affect the state itemized deductions
|
|
41
43
|
|
|
42
44
|
- name: 2021 Louisiana deduction given Single status, with federal itemized deductions 10_000
|
|
43
45
|
period: 2021
|
|
@@ -45,7 +47,7 @@
|
|
|
45
47
|
state_code: LA
|
|
46
48
|
standard_deduction: 12_550
|
|
47
49
|
medical_expense_deduction: 20_000
|
|
48
|
-
|
|
50
|
+
itemized_taxable_income_deductions: 10_000
|
|
49
51
|
tax_unit_itemizes: true
|
|
50
52
|
output:
|
|
51
53
|
la_itemized_deductions: 0
|
|
@@ -9,24 +9,29 @@
|
|
|
9
9
|
output:
|
|
10
10
|
me_deductions: 0
|
|
11
11
|
|
|
12
|
-
- name: Maine deduction is
|
|
12
|
+
- name: Maine deduction is standard deduction minus phaseout.
|
|
13
13
|
period: 2022
|
|
14
14
|
absolute_error_margin: 0
|
|
15
15
|
input:
|
|
16
16
|
state_code: ME
|
|
17
|
-
me_deduction_phaseout_percentage: 0.
|
|
18
|
-
standard_deduction:
|
|
19
|
-
me_itemized_deductions_pre_phaseout:
|
|
17
|
+
me_deduction_phaseout_percentage: 0.90
|
|
18
|
+
standard_deduction: 25_000
|
|
19
|
+
me_itemized_deductions_pre_phaseout: 20_000
|
|
20
20
|
output:
|
|
21
|
-
me_deductions:
|
|
21
|
+
me_deductions: 2_500
|
|
22
22
|
|
|
23
|
-
- name: Maine deduction is
|
|
23
|
+
- name: Maine deduction is itemized deductions minus phaseout.
|
|
24
24
|
period: 2022
|
|
25
25
|
absolute_error_margin: 0
|
|
26
26
|
input:
|
|
27
|
+
gov.simulation.branch_to_determine_itemization: true
|
|
27
28
|
state_code: ME
|
|
28
|
-
me_deduction_phaseout_percentage: 0.
|
|
29
|
-
standard_deduction:
|
|
30
|
-
me_itemized_deductions_pre_phaseout:
|
|
29
|
+
me_deduction_phaseout_percentage: 0.40
|
|
30
|
+
standard_deduction: 10_000
|
|
31
|
+
me_itemized_deductions_pre_phaseout: 15_000
|
|
31
32
|
output:
|
|
32
|
-
|
|
33
|
+
tax_liability_if_itemizing: 0
|
|
34
|
+
tax_liability_if_not_itemizing: 0
|
|
35
|
+
state_standard_deduction: 10_000
|
|
36
|
+
state_itemized_deductions: 15_000
|
|
37
|
+
me_deductions: 9_000
|
|
@@ -53,12 +53,15 @@
|
|
|
53
53
|
tax_unit_itemizes: false
|
|
54
54
|
medical_expense_deduction: 500
|
|
55
55
|
charitable_deduction: 10_000
|
|
56
|
+
standard_deduction: 5_000
|
|
56
57
|
households:
|
|
57
58
|
household:
|
|
58
59
|
members: [person1]
|
|
59
60
|
state_code: ME
|
|
60
61
|
output:
|
|
61
|
-
me_itemized_deductions_pre_phaseout:
|
|
62
|
+
me_itemized_deductions_pre_phaseout: 11_500
|
|
63
|
+
me_deductions: 5_000
|
|
64
|
+
|
|
62
65
|
|
|
63
66
|
- name: Maine itemized deduction is capped.
|
|
64
67
|
period: 2022
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
- name: Test case filing separate with income tax over limit
|
|
2
|
+
period: 2021
|
|
3
|
+
input:
|
|
4
|
+
filing_status: SEPARATE
|
|
5
|
+
mt_withheld_income_tax: 6_000 # >5,000
|
|
6
|
+
state_code: MT
|
|
7
|
+
output:
|
|
8
|
+
mt_federal_income_tax_deduction_for_federal_itemization: 5_000
|
|
9
|
+
|
|
10
|
+
- name: Test case filing single with income tax below limit
|
|
11
|
+
period: 2021
|
|
12
|
+
input:
|
|
13
|
+
filing_status: SINGLE
|
|
14
|
+
mt_withheld_income_tax: 2_000 # <5,000
|
|
15
|
+
state_code: MT
|
|
16
|
+
output:
|
|
17
|
+
mt_federal_income_tax_deduction_for_federal_itemization: 2_000
|
|
18
|
+
|
|
19
|
+
- name: Test case filing joint with income tax below limit
|
|
20
|
+
period: 2021
|
|
21
|
+
input:
|
|
22
|
+
filing_status: JOINT
|
|
23
|
+
mt_withheld_income_tax: 7_000 #<10,000
|
|
24
|
+
state_code: MT
|
|
25
|
+
output:
|
|
26
|
+
mt_federal_income_tax_deduction_for_federal_itemization: 7_000
|
|
27
|
+
|
|
28
|
+
- name: Test case filing joint with income tax below limit
|
|
29
|
+
period: 2021
|
|
30
|
+
input:
|
|
31
|
+
filing_status: JOINT
|
|
32
|
+
mt_withheld_income_tax: 7_000 #<10,000
|
|
33
|
+
state_code: MT
|
|
34
|
+
output:
|
|
35
|
+
mt_federal_income_tax_deduction_for_federal_itemization: 7_000
|
|
36
|
+
|
|
37
|
+
- name: Amount distributed to the head
|
|
38
|
+
period: 2021
|
|
39
|
+
absolute_error_margin: 1
|
|
40
|
+
input:
|
|
41
|
+
people:
|
|
42
|
+
person1:
|
|
43
|
+
is_tax_unit_head: true
|
|
44
|
+
mt_withheld_income_tax: 3_000
|
|
45
|
+
person2:
|
|
46
|
+
is_tax_unit_head: false
|
|
47
|
+
mt_withheld_income_tax: 4_000
|
|
48
|
+
tax_units:
|
|
49
|
+
tax_unit:
|
|
50
|
+
members: [person1, person2]
|
|
51
|
+
filing_status: JOINT
|
|
52
|
+
households:
|
|
53
|
+
household:
|
|
54
|
+
members: [person1, person2]
|
|
55
|
+
state_code: MT
|
|
56
|
+
output:
|
|
57
|
+
mt_federal_income_tax_deduction_for_federal_itemization: 7_000
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
- name: Deductions split evenly
|
|
2
|
+
period: 2021
|
|
3
|
+
input:
|
|
4
|
+
people:
|
|
5
|
+
person1:
|
|
6
|
+
mt_agi: 500
|
|
7
|
+
person2:
|
|
8
|
+
mt_agi: 500
|
|
9
|
+
tax_units:
|
|
10
|
+
tax_unit:
|
|
11
|
+
members: [person1, person2]
|
|
12
|
+
mt_federal_income_tax_deduction_for_federal_itemization: 3_000
|
|
13
|
+
state_filing_status_if_married_filing_separately_on_same_return: SEPARATE
|
|
14
|
+
households:
|
|
15
|
+
household:
|
|
16
|
+
members: [person1, person2]
|
|
17
|
+
state_code: MT
|
|
18
|
+
output:
|
|
19
|
+
mt_federal_income_tax_deduction_for_federal_itemization_indiv: [1_500, 1_500]
|
|
20
|
+
|
|
21
|
+
- name: Deductions capped at max amount individually
|
|
22
|
+
period: 2021
|
|
23
|
+
input:
|
|
24
|
+
people:
|
|
25
|
+
person1:
|
|
26
|
+
mt_agi: 100
|
|
27
|
+
person2:
|
|
28
|
+
mt_agi: 900
|
|
29
|
+
tax_units:
|
|
30
|
+
tax_unit:
|
|
31
|
+
members: [person1, person2]
|
|
32
|
+
mt_federal_income_tax_deduction_for_federal_itemization: 10_000
|
|
33
|
+
state_filing_status_if_married_filing_separately_on_same_return: SEPARATE
|
|
34
|
+
households:
|
|
35
|
+
household:
|
|
36
|
+
members: [person1, person2]
|
|
37
|
+
state_code: MT
|
|
38
|
+
output:
|
|
39
|
+
mt_federal_income_tax_deduction_for_federal_itemization_indiv: [1_000, 5_000]
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
- name: Test case 1 # filing separate
|
|
2
|
+
period: 2021
|
|
3
|
+
input:
|
|
4
|
+
charitable_deduction: 800
|
|
5
|
+
investment_interest_expense: 265
|
|
6
|
+
mt_salt_deduction: 5_000
|
|
7
|
+
mt_medical_expense_deduction_indiv: 1_000
|
|
8
|
+
casualty_loss_deduction: 400
|
|
9
|
+
mt_child_dependent_care_expense_deduction: 123
|
|
10
|
+
mt_federal_income_tax_deduction_for_federal_itemization_indiv: 2_000
|
|
11
|
+
state_code: MT
|
|
12
|
+
output:
|
|
13
|
+
mt_itemized_deductions_for_federal_itemization_indiv: 9_188
|
|
14
|
+
|
|
15
|
+
- name: Test case 2 #salt has a cap of 10000 for single, head of household and joint
|
|
16
|
+
period: 2022
|
|
17
|
+
input:
|
|
18
|
+
charitable_deduction: 0
|
|
19
|
+
investment_interest_expense: 1_234
|
|
20
|
+
mt_salt_deduction: 10_000
|
|
21
|
+
mt_medical_expense_deduction_indiv: 3_000
|
|
22
|
+
casualty_loss_deduction: 0
|
|
23
|
+
mt_child_dependent_care_expense_deduction: 0
|
|
24
|
+
mt_federal_income_tax_deduction_for_federal_itemization_indiv: 2_000
|
|
25
|
+
state_code: MT
|
|
26
|
+
output:
|
|
27
|
+
mt_itemized_deductions_for_federal_itemization_indiv: 16_234
|
|
28
|
+
|
|
29
|
+
- name: Test case 3 #sum all terms
|
|
30
|
+
period: 2021
|
|
31
|
+
input:
|
|
32
|
+
charitable_deduction: 1_000
|
|
33
|
+
mortgage_interest: 34
|
|
34
|
+
mt_salt_deduction: 1_035
|
|
35
|
+
mt_medical_expense_deduction_indiv: 3_000
|
|
36
|
+
casualty_loss_deduction: 745
|
|
37
|
+
mt_child_dependent_care_expense_deduction: 1_004
|
|
38
|
+
mt_federal_income_tax_deduction_for_federal_itemization_indiv: 2_000
|
|
39
|
+
state_code: MT
|
|
40
|
+
output:
|
|
41
|
+
mt_itemized_deductions_for_federal_itemization_indiv: 8_318
|
|
42
|
+
|
|
43
|
+
- name: Amount only distributed to the head and spouse
|
|
44
|
+
period: 2021
|
|
45
|
+
absolute_error_margin: 1
|
|
46
|
+
input:
|
|
47
|
+
people:
|
|
48
|
+
person1:
|
|
49
|
+
is_tax_unit_head_or_spouse: true
|
|
50
|
+
mt_misc_deductions: 100
|
|
51
|
+
mt_medical_expense_deduction_indiv: 200
|
|
52
|
+
mt_salt_deduction: 300
|
|
53
|
+
mt_federal_income_tax_deduction_for_federal_itemization_indiv: 400
|
|
54
|
+
person2:
|
|
55
|
+
is_tax_unit_head_or_spouse: true
|
|
56
|
+
mt_misc_deductions: 100
|
|
57
|
+
mt_medical_expense_deduction_indiv: 200
|
|
58
|
+
mt_salt_deduction: 300
|
|
59
|
+
mt_federal_income_tax_deduction_for_federal_itemization_indiv: 100
|
|
60
|
+
person3:
|
|
61
|
+
is_tax_unit_head_or_spouse: false
|
|
62
|
+
is_tax_unit_dependent: true
|
|
63
|
+
mt_misc_deductions: 100
|
|
64
|
+
mt_medical_expense_deduction_indiv: 12
|
|
65
|
+
mt_salt_deduction: 200
|
|
66
|
+
mt_federal_income_tax_deduction_for_federal_itemization_indiv: 100
|
|
67
|
+
tax_units:
|
|
68
|
+
tax_unit:
|
|
69
|
+
members: [person1, person2, person3]
|
|
70
|
+
charitable_deduction: 0
|
|
71
|
+
households:
|
|
72
|
+
household:
|
|
73
|
+
members: [person1, person2, person3]
|
|
74
|
+
state_code: MT
|
|
75
|
+
output:
|
|
76
|
+
mt_itemized_deductions_for_federal_itemization_indiv: [1_000, 700, 0]
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
- name: Test case 1 # filing separate
|
|
2
|
+
period: 2021
|
|
3
|
+
input:
|
|
4
|
+
filing_status: SEPARATE
|
|
5
|
+
charitable_deduction: 800
|
|
6
|
+
investment_interest_expense: 265
|
|
7
|
+
mt_salt_deduction: 5_000
|
|
8
|
+
mt_medical_expense_deduction_joint: 1_000
|
|
9
|
+
casualty_loss_deduction: 400
|
|
10
|
+
mt_child_dependent_care_expense_deduction: 123
|
|
11
|
+
mt_federal_income_tax_deduction_for_federal_itemization: 2_000
|
|
12
|
+
state_code: MT
|
|
13
|
+
output:
|
|
14
|
+
mt_itemized_deductions_for_federal_itemization_joint: 9_588
|
|
15
|
+
|
|
16
|
+
- name: Test case 2 #salt has a cap of 10000 for single, head of household and joint
|
|
17
|
+
period: 2022
|
|
18
|
+
input:
|
|
19
|
+
filing_status: HEAD_OF_HOUSEHOLD
|
|
20
|
+
charitable_deduction: 0
|
|
21
|
+
mortgage_interest: 1_234
|
|
22
|
+
mt_salt_deduction: 10_000
|
|
23
|
+
mt_medical_expense_deduction_joint: 3_000
|
|
24
|
+
casualty_loss_deduction: 0
|
|
25
|
+
mt_child_dependent_care_expense_deduction: 0
|
|
26
|
+
mt_federal_income_tax_deduction_for_federal_itemization: 2_000
|
|
27
|
+
state_code: MT
|
|
28
|
+
output:
|
|
29
|
+
mt_itemized_deductions_for_federal_itemization_joint: 16_234
|
|
30
|
+
|
|
31
|
+
- name: Test case 3 #sum all terms
|
|
32
|
+
period: 2021
|
|
33
|
+
input:
|
|
34
|
+
filing_status: SINGLE
|
|
35
|
+
charitable_deduction: 1_000
|
|
36
|
+
mortgage_interest: 34
|
|
37
|
+
mt_salt_deduction: 1_035
|
|
38
|
+
mt_medical_expense_deduction_joint: 3_000
|
|
39
|
+
casualty_loss_deduction: 745
|
|
40
|
+
mt_child_dependent_care_expense_deduction: 1_004
|
|
41
|
+
mt_federal_income_tax_deduction_for_federal_itemization: 2_000
|
|
42
|
+
state_code: MT
|
|
43
|
+
output:
|
|
44
|
+
mt_itemized_deductions_for_federal_itemization_joint: 8_818
|
|
45
|
+
|
|
46
|
+
- name: Amount only distributed to the head
|
|
47
|
+
period: 2021
|
|
48
|
+
absolute_error_margin: 1
|
|
49
|
+
input:
|
|
50
|
+
people:
|
|
51
|
+
person1:
|
|
52
|
+
is_tax_unit_head: true
|
|
53
|
+
mt_misc_deductions: 100
|
|
54
|
+
mt_medical_expense_deduction_joint: 200
|
|
55
|
+
mt_salt_deduction: 300
|
|
56
|
+
investment_interest_expense: 100
|
|
57
|
+
person2:
|
|
58
|
+
is_tax_unit_head: false
|
|
59
|
+
mt_misc_deductions: 100
|
|
60
|
+
mt_medical_expense_deduction_joint: 200
|
|
61
|
+
mt_salt_deduction: 300
|
|
62
|
+
person3:
|
|
63
|
+
is_tax_unit_head: false
|
|
64
|
+
mt_misc_deductions: 100
|
|
65
|
+
mt_medical_expense_deduction_joint: 12
|
|
66
|
+
mt_salt_deduction: 200
|
|
67
|
+
households:
|
|
68
|
+
household:
|
|
69
|
+
members: [person1, person2, person3]
|
|
70
|
+
state_code: MT
|
|
71
|
+
tax_units:
|
|
72
|
+
tax_unit:
|
|
73
|
+
members: [person1, person2, person3]
|
|
74
|
+
mt_federal_income_tax_deduction_for_federal_itemization: 600
|
|
75
|
+
output:
|
|
76
|
+
mt_itemized_deductions_for_federal_itemization_joint: [2_212, 0, 0]
|