policyengine-us 1.387.1__py3-none-any.whl → 1.387.3__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.

@@ -2,6 +2,7 @@
2
2
  period: 2024
3
3
  input:
4
4
  long_term_capital_gains: 1_000
5
+ mt_taxable_income_joint: 1_000
5
6
  mt_capital_gains_tax_applicable_threshold_joint: 0
6
7
  filing_status: SINGLE
7
8
  state_code: MT
@@ -12,6 +13,7 @@
12
13
  period: 2024
13
14
  input:
14
15
  long_term_capital_gains: 1_000
16
+ mt_taxable_income_joint: 1_000
15
17
  mt_capital_gains_tax_applicable_threshold_joint: 2_000
16
18
  filing_status: SEPARATE
17
19
  state_code: MT
@@ -23,6 +25,7 @@
23
25
  period: 2024
24
26
  input:
25
27
  long_term_capital_gains: 3_000
28
+ mt_taxable_income_joint: 3_000
26
29
  mt_capital_gains_tax_applicable_threshold_joint: 2_000
27
30
  filing_status: SEPARATE
28
31
  state_code: MT
@@ -33,8 +36,42 @@
33
36
  period: 2023
34
37
  input:
35
38
  long_term_capital_gains: 3_000
39
+ mt_taxable_income_joint: 3_000
36
40
  mt_capital_gains_tax_applicable_threshold_joint: 2_000
37
41
  filing_status: JOINT
38
42
  state_code: MT
39
43
  output:
40
44
  mt_capital_gains_tax_joint: 0
45
+
46
+ - name: Taxable income below LTCG and below higher rate threshold
47
+ period: 2024
48
+ input:
49
+ long_term_capital_gains: 3_000
50
+ mt_taxable_income_joint: 1_000
51
+ mt_capital_gains_tax_applicable_threshold_joint: 2_000
52
+ filing_status: JOINT
53
+ state_code: MT
54
+ output:
55
+ mt_capital_gains_tax_joint: 30
56
+
57
+ - name: Taxable income below LTCG and above higher rate threshold
58
+ period: 2024
59
+ input:
60
+ long_term_capital_gains: 10_000
61
+ mt_taxable_income_joint: 3_000
62
+ mt_capital_gains_tax_applicable_threshold_joint: 2_000
63
+ filing_status: JOINT
64
+ state_code: MT
65
+ output:
66
+ mt_capital_gains_tax_joint: 101
67
+
68
+ - name: Taxable above above LTCG and above higher rate threshold
69
+ period: 2024
70
+ input:
71
+ long_term_capital_gains: 10_000
72
+ mt_taxable_income_joint: 12_000
73
+ mt_capital_gains_tax_applicable_threshold_joint: 2_000
74
+ filing_status: JOINT
75
+ state_code: MT
76
+ output:
77
+ mt_capital_gains_tax_joint: 410
@@ -252,3 +252,41 @@
252
252
  output:
253
253
  mt_files_separately: false
254
254
  mt_income_tax: 76_963
255
+
256
+ - name: taxsim_record_29826_2024.yaml
257
+ absolute_error_margin: 2
258
+ period: 2024
259
+ input:
260
+ people:
261
+ person1:
262
+ age: 77
263
+ employment_income: 0.0
264
+ qualified_dividend_income: 1804.41835
265
+ long_term_capital_gains: 19594.1835
266
+ taxable_interest_income: 1242.1687
267
+ is_tax_unit_head: true
268
+ person2:
269
+ age: 77
270
+ employment_income: 0.0
271
+ qualified_dividend_income: 1804.41835
272
+ long_term_capital_gains: 19594.1835
273
+ taxable_interest_income: 1242.1687
274
+ is_tax_unit_spouse: true
275
+ tax_units:
276
+ tax_unit:
277
+ members: [person1, person2]
278
+ premium_tax_credit: 0
279
+ local_income_tax: 0
280
+ state_sales_tax: 0
281
+ spm_units:
282
+ spm_unit:
283
+ members: [person1, person2]
284
+ snap: 0
285
+ tanf: 0
286
+ households:
287
+ household:
288
+ members: [person1, person2]
289
+ state_fips: 30
290
+ output:
291
+ mt_capital_gains_tax_joint: [59, 0]
292
+ mt_income_tax: 59
@@ -14,8 +14,22 @@ class mt_capital_gains_tax_joint(Variable):
14
14
  p = parameters(period).gov.states.mt.tax.income.main.capital_gains
15
15
  # the tax for capital gains comes into effect after 2024
16
16
  if p.in_effect:
17
+ # Line instructions from the 2024 Montana Individual Income Tax Return Form 2
18
+ # https://revenue.mt.gov/files/Forms/Montana-Individual-Income-Tax-Return-Form-2/2024_Montana_Individual_Income_Tax_Return_Form_2.pdf#page=2
19
+ # Line 1
20
+ taxable_income = person("mt_taxable_income_joint", period)
21
+ # Line 2
17
22
  capital_gains = person("long_term_capital_gains", period)
23
+ # Line 3
24
+ lesser_of_cg_and_taxable_income = min_(
25
+ capital_gains, taxable_income
26
+ )
27
+ # Line 4
28
+ excess_over_taxable_income = max_(
29
+ taxable_income - lesser_of_cg_and_taxable_income, 0
30
+ )
18
31
  filing_status = person.tax_unit("filing_status", period)
32
+ # Line 5
19
33
  applicable_threshold = person(
20
34
  "mt_capital_gains_tax_applicable_threshold_joint", period
21
35
  )
@@ -53,21 +67,25 @@ class mt_capital_gains_tax_joint(Variable):
53
67
  p.rates.head_of_household.amounts[-1],
54
68
  ],
55
69
  )
56
- # Calculate taxes
57
- capital_gains_below_threshold = min_(
58
- applicable_threshold, capital_gains
70
+ # Line 6
71
+ excess_over_threshold = max_(
72
+ applicable_threshold - excess_over_taxable_income, 0
59
73
  )
60
- capital_gains_above_threshold = max_(
61
- capital_gains - applicable_threshold, 0
74
+ # Line 7
75
+ capital_gains_below_threshold = min_(
76
+ excess_over_threshold, lesser_of_cg_and_taxable_income
62
77
  )
63
-
78
+ # Line 8
64
79
  lower_capital_gains_tax = (
65
80
  capital_gains_below_threshold * lower_rate
66
81
  )
67
- higher_capital_gains_tax = (
68
- capital_gains_above_threshold * higher_rate
82
+ # Line 9
83
+ income_above_threshold = max_(
84
+ lesser_of_cg_and_taxable_income - excess_over_threshold, 0
69
85
  )
70
-
86
+ # Line 10
87
+ higher_capital_gains_tax = income_above_threshold * higher_rate
88
+ # Line 11
71
89
  return lower_capital_gains_tax + higher_capital_gains_tax
72
90
 
73
91
  return 0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: policyengine-us
3
- Version: 1.387.1
3
+ Version: 1.387.3
4
4
  Summary: Add your description here.
5
5
  Author-email: PolicyEngine <hello@policyengine.org>
6
6
  License-File: LICENSE
@@ -4470,7 +4470,7 @@ policyengine_us/tests/policy/baseline/gov/states/ms/tax/income/exemptions/ms_dep
4470
4470
  policyengine_us/tests/policy/baseline/gov/states/ms/tax/income/exemptions/ms_regular_exemption.yaml,sha256=eRXW1ftjSMnYHaX4tkJjevd2Y9VekXizaAMlLIHRfBI,817
4471
4471
  policyengine_us/tests/policy/baseline/gov/states/ms/tax/income/exemptions/ms_total_exemptions_indiv.yaml,sha256=3XJ-RUERhQ5C5-6oId-arGtjbRogEmBuYxWxs37P3Q0,450
4472
4472
  policyengine_us/tests/policy/baseline/gov/states/ms/tax/income/exemptions/ms_total_exemptions_joint.yaml,sha256=XMlfs06wLIxWnDLg7mk8Njh1lt05vVUC0wkbpeDlqno,428
4473
- policyengine_us/tests/policy/baseline/gov/states/mt/tax/income/integration.yaml,sha256=St9ghv7FUsAcs7jar-UercNUrPyatgOSFLbJ2PsZ4a0,6494
4473
+ policyengine_us/tests/policy/baseline/gov/states/mt/tax/income/integration.yaml,sha256=gA11ti79fHrpQcyoYiCBJIMrwTlaByF0HD9MIr8LT-o,7465
4474
4474
  policyengine_us/tests/policy/baseline/gov/states/mt/tax/income/mt_agi.yaml,sha256=1o4BhamZL4Fh9S_d86ObNITwmSYxb6szyi4h0ga6QdM,2015
4475
4475
  policyengine_us/tests/policy/baseline/gov/states/mt/tax/income/mt_applicable_ald_deductions.yaml,sha256=csbfWJXij9KI2MjAuo-IE9mGz2EKiWfCibjPL92RK0k,975
4476
4476
  policyengine_us/tests/policy/baseline/gov/states/mt/tax/income/mt_files_separately.yaml,sha256=UfK24SNJkiAjRMhtWG9UUqZo7VIXyfhtZ42UTJiIJoA,1221
@@ -4490,7 +4490,7 @@ policyengine_us/tests/policy/baseline/gov/states/mt/tax/income/mt_withheld_incom
4490
4490
  policyengine_us/tests/policy/baseline/gov/states/mt/tax/income/capital_gains/mt_capital_gains_tax_applicable_threshold_indiv.yaml,sha256=Fx3AkCPiCstVZKJUHvUnry4kKccTnoPnZBEwtmQ2T2Y,891
4491
4491
  policyengine_us/tests/policy/baseline/gov/states/mt/tax/income/capital_gains/mt_capital_gains_tax_applicable_threshold_joint.yaml,sha256=0fjuquAsV22W4FyGz7cqxLBXP_qGTm4TRO-I5pjsuxc,971
4492
4492
  policyengine_us/tests/policy/baseline/gov/states/mt/tax/income/capital_gains/mt_capital_gains_tax_indiv.yaml,sha256=2Ps224S6zapd9gsJb1cDaTu65GNNJGAzfDsqW96vWhk,892
4493
- policyengine_us/tests/policy/baseline/gov/states/mt/tax/income/capital_gains/mt_capital_gains_tax_joint.yaml,sha256=4LlyvnDvIe_JIvrdIEeJbX7vSDIagM5A0fl4qjye2I0,973
4493
+ policyengine_us/tests/policy/baseline/gov/states/mt/tax/income/capital_gains/mt_capital_gains_tax_joint.yaml,sha256=bMlxdc1ErMfL3tv1lImcWjyntpiMRIj2cpRjUH2KtV4,2044
4494
4494
  policyengine_us/tests/policy/baseline/gov/states/mt/tax/income/credits/mt_capital_gain_credit.yaml,sha256=0rYQmOF27fcRN6bujop4dE0y1osdWx1CAcWx9gynVdY,303
4495
4495
  policyengine_us/tests/policy/baseline/gov/states/mt/tax/income/credits/mt_eitc.yaml,sha256=8f_7w5hADYpq6S1AplpchLUyf7mrhHmFgAuff241qTU,860
4496
4496
  policyengine_us/tests/policy/baseline/gov/states/mt/tax/income/credits/elderly_homeowner_or_renter/mt_elderly_homeowner_or_renter_credit.yaml,sha256=9hu9upDL76IB6j49k_CuB-Q9u5Q6BXoqrIy2NFoCcFo,4258
@@ -7041,7 +7041,7 @@ policyengine_us/variables/gov/states/mt/tax/income/base/mt_withheld_income_tax.p
7041
7041
  policyengine_us/variables/gov/states/mt/tax/income/capital_gains/mt_capital_gains_tax_applicable_threshold_indiv.py,sha256=ghk5F7Mlfxrdeufnp8GDeJaSILV6xCW1DMxLIdk-1zY,1598
7042
7042
  policyengine_us/variables/gov/states/mt/tax/income/capital_gains/mt_capital_gains_tax_applicable_threshold_joint.py,sha256=mt2iuukSnk6pynWyo9wZDGCwvBESJMaaR8mlHkBxQ60,1638
7043
7043
  policyengine_us/variables/gov/states/mt/tax/income/capital_gains/mt_capital_gains_tax_indiv.py,sha256=vqqCb4j3OlQhXw3-_0sidLh9LBqc06HEi7MAFvZE_vE,2795
7044
- policyengine_us/variables/gov/states/mt/tax/income/capital_gains/mt_capital_gains_tax_joint.py,sha256=HCyBCTJTkr5h4BN0nOmNDn2OF-4fpImLVqhMV-06vUE,2890
7044
+ policyengine_us/variables/gov/states/mt/tax/income/capital_gains/mt_capital_gains_tax_joint.py,sha256=cNed-vQvUJXDrqd8xXlG9pVtPrykK6GpoaQoNsAjLuw,3763
7045
7045
  policyengine_us/variables/gov/states/mt/tax/income/credits/capital_gain/mt_capital_gain_credit.py,sha256=FQ-be8ndCvh5IKnztkQQ7ARsHWFwbN41AZO0LCFyKsA,601
7046
7046
  policyengine_us/variables/gov/states/mt/tax/income/credits/eitc/mt_eitc.py,sha256=zZEXyPRJCaJ8LimfDXEo58n5hI5m1DtpgO8cSQ1e9SA,908
7047
7047
  policyengine_us/variables/gov/states/mt/tax/income/credits/mt_elderly_homeowner_or_renter/mt_elderly_homeowner_or_renter_credit.py,sha256=F9kVR24wocnjTkFU99SprMlnRiJDK1eOIKI6RodnV5I,1514
@@ -8318,8 +8318,8 @@ policyengine_us/variables/input/farm_income.py,sha256=BEKxYmHNNnWJAAvULl5qZJigy5
8318
8318
  policyengine_us/variables/input/geography.py,sha256=Ux0ueAf0rhZaflyEqz81UuXP3xKCKBDvoO3CrKhiQEc,5421
8319
8319
  policyengine_us/variables/input/self_employment_income.py,sha256=PwsGz8R4lRikKWUYOhsC0qosNNLXq4f5SQmfw4S3mk8,511
8320
8320
  policyengine_us/variables/input/self_employment_income_before_lsr.py,sha256=E8fcX9Nlyqz8dziHhQv_euutdmoIwFMMWePUwbbwv_w,379
8321
- policyengine_us-1.387.1.dist-info/METADATA,sha256=RyvgRXSNgO24yzTmOUqs9ZrLdzXYwzo1ni3gn83cfNc,1649
8322
- policyengine_us-1.387.1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
8323
- policyengine_us-1.387.1.dist-info/entry_points.txt,sha256=MLaqNyNTbReALyKNkde85VkuFFpdPWAcy8VRG1mjczc,57
8324
- policyengine_us-1.387.1.dist-info/licenses/LICENSE,sha256=2N5ReRelkdqkR9a-KP-y-shmcD5P62XoYiG-miLTAzo,34519
8325
- policyengine_us-1.387.1.dist-info/RECORD,,
8321
+ policyengine_us-1.387.3.dist-info/METADATA,sha256=5NvqpiJPHutEoJocz25lk7F4I3B1c_YA8x1sDs56Dcg,1649
8322
+ policyengine_us-1.387.3.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
8323
+ policyengine_us-1.387.3.dist-info/entry_points.txt,sha256=MLaqNyNTbReALyKNkde85VkuFFpdPWAcy8VRG1mjczc,57
8324
+ policyengine_us-1.387.3.dist-info/licenses/LICENSE,sha256=2N5ReRelkdqkR9a-KP-y-shmcD5P62XoYiG-miLTAzo,34519
8325
+ policyengine_us-1.387.3.dist-info/RECORD,,