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

Files changed (27) hide show
  1. policyengine_us/parameters/gov/states/mn/tax/income/credits/cdcc/reduced_base_amount.yaml +28 -0
  2. policyengine_us/parameters/gov/territories/pr/tax/income/taxable_income/exemptions/dependent/income_limit/nonstudent.yaml +1 -1
  3. policyengine_us/parameters/gov/territories/pr/tax/income/taxable_income/exemptions/dependent/income_limit/student.yaml +1 -1
  4. policyengine_us/parameters/gov/territories/pr/tax/income/taxable_income/exemptions/personal.yaml +1 -1
  5. policyengine_us/parameters/gov/territories/pr/tax/income/taxable_income/exemptions/veteran.yaml +1 -1
  6. policyengine_us/tests/policy/baseline/gov/states/mn/tax/income/{mn_cdcc.yaml → credits/cdcc/mn_cdcc.yaml} +66 -0
  7. policyengine_us/tests/policy/baseline/gov/states/mn/tax/income/credits/cdcc/mn_cdcc_dependent_count.yaml +51 -0
  8. policyengine_us/tests/policy/baseline/gov/states/mn/tax/income/credits/cdcc/mn_cdcc_eligible.yaml +24 -0
  9. policyengine_us/tests/policy/baseline/gov/states/mn/tax/income/credits/cdcc/mn_cdcc_phase_out.yaml +44 -0
  10. policyengine_us/tests/policy/baseline/gov/territories/pr/tax/income/credits/low_income/pr_low_income_credit_eligible.yaml +1 -1
  11. policyengine_us/tests/policy/baseline/gov/territories/pr/tax/income/taxable_income/exemptions/dependent/pr_dependents_exemption.yaml +1 -1
  12. policyengine_us/tests/policy/baseline/gov/territories/pr/tax/income/taxable_income/exemptions/dependent/pr_eligible_dependent_for_exemption.yaml +1 -1
  13. policyengine_us/tests/policy/baseline/gov/territories/pr/tax/income/taxable_income/exemptions/dependent/pr_exemptions_is_eligible_student.yaml +1 -1
  14. policyengine_us/tests/policy/baseline/gov/territories/pr/tax/income/taxable_income/exemptions/pr_personal_exemption.yaml +1 -1
  15. policyengine_us/tests/policy/baseline/gov/territories/pr/tax/income/taxable_income/exemptions/pr_veteran_exemption.yaml +1 -1
  16. policyengine_us/tests/policy/baseline/gov/territories/pr/tax_unit_dependent/integration.yaml +1 -1
  17. policyengine_us/tests/policy/baseline/gov/territories/pr/tax_unit_dependent/pr_is_tax_unit_dependent.yaml +1 -1
  18. policyengine_us/variables/gov/states/mn/tax/income/credits/cdcc/mn_cdcc.py +47 -0
  19. policyengine_us/variables/gov/states/mn/tax/income/credits/cdcc/mn_cdcc_dependent_count.py +27 -0
  20. policyengine_us/variables/gov/states/mn/tax/income/credits/cdcc/mn_cdcc_eligible.py +23 -0
  21. policyengine_us/variables/gov/states/mn/tax/income/credits/cdcc/mn_cdcc_phase_out.py +25 -0
  22. {policyengine_us-1.400.0.dist-info → policyengine_us-1.400.1.dist-info}/METADATA +1 -1
  23. {policyengine_us-1.400.0.dist-info → policyengine_us-1.400.1.dist-info}/RECORD +26 -19
  24. policyengine_us/variables/gov/states/mn/tax/income/credits/mn_cdcc.py +0 -49
  25. {policyengine_us-1.400.0.dist-info → policyengine_us-1.400.1.dist-info}/WHEEL +0 -0
  26. {policyengine_us-1.400.0.dist-info → policyengine_us-1.400.1.dist-info}/entry_points.txt +0 -0
  27. {policyengine_us-1.400.0.dist-info → policyengine_us-1.400.1.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,28 @@
1
+ description: Minnesota provides this reduced dependent care credit amount, based on the number of qualifying children.
2
+ metadata:
3
+ period: year
4
+ type: single_amount
5
+ threshold_unit: child
6
+ amount_unit: /1
7
+ label: Minnesota CDCC reduced base amount
8
+ reference:
9
+ - title: 2021 Schedule M1CD, Child and Dependent Care Credit, Line 6
10
+ href: https://www.revenue.state.mn.us/sites/default/files/2023-02/m1cd_21.pdf#page=6
11
+ - title: 2022 Schedule M1CD, Child and Dependent Care Credit, Line 6
12
+ href: https://www.revenue.state.mn.us/sites/default/files/2023-01/m1cd_22_0.pdf#page=6
13
+ - title: 2023 Schedule M1CD, Child and Dependent Care Credit, Line 6
14
+ href: https://www.revenue.state.mn.us/sites/default/files/2023-12/m1cd-23.pdf#page=6
15
+ - title: 2024 Schedule M1CD, Child and Dependent Care Credit, Line 6
16
+ href: https://www.revenue.state.mn.us/sites/default/files/2024-12/m1cd-24.pdf#page=6
17
+ - title: Minnesota Statutes 290.067 DEPENDENT CARE CREDIT. Subd. 1.Amount of credit. (h)
18
+ href: https://www.revisor.mn.gov/statutes/cite/290.067#stat.290.067.1
19
+
20
+ brackets:
21
+ - threshold:
22
+ 2021-01-01: 0
23
+ amount:
24
+ 2021-01-01: 600
25
+ - threshold:
26
+ 2021-01-01: 2
27
+ amount:
28
+ 2021-01-01: 1_200
@@ -9,4 +9,4 @@ metadata:
9
9
  - title: Gov. of Puerto Rico Individual Income Tax Return Instructions 2023
10
10
  href: https://hacienda.pr.gov/sites/default/files/inst_individuals_2023.pdf#page=28
11
11
  - title: P.R. Laws tit. 13, § 30138 (b)(1)(i)
12
- href: https://law.justia.com/codes/puerto-rico/title-thirteen/subtitle-17/part-ii/chapter-1005/subchapter-c/30138/
12
+ href: https://law.justia.com/codes/puerto-rico/title-thirteen/subtitle-17/part-ii/chapter-1005/subchapter-c/30138/
@@ -9,4 +9,4 @@ metadata:
9
9
  - title: Gov. of Puerto Rico Individual Income Tax Return Instructions 2023
10
10
  href: https://hacienda.pr.gov/sites/default/files/inst_individuals_2023.pdf#page=28
11
11
  - title: P.R. Laws tit. 13, § 30138 (b)(1)(ii)
12
- href: https://law.justia.com/codes/puerto-rico/title-thirteen/subtitle-17/part-ii/chapter-1005/subchapter-c/30138/
12
+ href: https://law.justia.com/codes/puerto-rico/title-thirteen/subtitle-17/part-ii/chapter-1005/subchapter-c/30138/
@@ -20,4 +20,4 @@ metadata:
20
20
  - title: Gov. of Puerto Rico Form 482.0 2024
21
21
  href: https://hacienda.pr.gov/sites/default/files/individuals_2024_rev._jul_12_24_9-30-24_informative.pdf#page=2
22
22
  - title: P.R. Laws tit. 13, § 30138 (a)
23
- href: https://law.justia.com/codes/puerto-rico/title-thirteen/subtitle-17/part-ii/chapter-1005/subchapter-c/30138/
23
+ href: https://law.justia.com/codes/puerto-rico/title-thirteen/subtitle-17/part-ii/chapter-1005/subchapter-c/30138/
@@ -9,4 +9,4 @@ metadata:
9
9
  - title: Gov. of Puerto Rico Form 482.0 2024
10
10
  href: https://hacienda.pr.gov/sites/default/files/individuals_2024_rev._jul_12_24_9-30-24_informative.pdf#page=2
11
11
  - title: P.R. Laws tit. 13, § 30138 (a)(2)
12
- href: https://law.justia.com/codes/puerto-rico/title-thirteen/subtitle-17/part-ii/chapter-1005/subchapter-c/30138/
12
+ href: https://law.justia.com/codes/puerto-rico/title-thirteen/subtitle-17/part-ii/chapter-1005/subchapter-c/30138/
@@ -174,3 +174,69 @@
174
174
  state_code: MN
175
175
  output:
176
176
  mn_cdcc: 660.5
177
+
178
+ - name: taxsim_record_1_2024.yaml
179
+ absolute_error_margin: 2
180
+ period: 2024
181
+ input:
182
+ people:
183
+ person1:
184
+ age: 40
185
+ employment_income: 60000.0
186
+ ssi: 0
187
+ wic: 0
188
+ head_start: 0
189
+ early_head_start: 0
190
+ commodity_supplemental_food_program: 0
191
+ is_tax_unit_head: true
192
+ person2:
193
+ age: 40
194
+ employment_income: 10000.0
195
+ ssi: 0
196
+ wic: 0
197
+ head_start: 0
198
+ early_head_start: 0
199
+ commodity_supplemental_food_program: 0
200
+ is_tax_unit_spouse: true
201
+ person3:
202
+ age: 4
203
+ employment_income: 0
204
+ ssi: 0
205
+ wic: 0
206
+ head_start: 0
207
+ early_head_start: 0
208
+ commodity_supplemental_food_program: 0
209
+ is_tax_unit_dependent: true
210
+ is_tax_unit_head: false
211
+ is_tax_unit_spouse: false
212
+ person4:
213
+ age: 4
214
+ employment_income: 0
215
+ ssi: 0
216
+ wic: 0
217
+ head_start: 0
218
+ early_head_start: 0
219
+ commodity_supplemental_food_program: 0
220
+ is_tax_unit_dependent: true
221
+ is_tax_unit_head: false
222
+ is_tax_unit_spouse: false
223
+ tax_units:
224
+ tax_unit:
225
+ members: [person1, person2, person3, person4]
226
+ premium_tax_credit: 0
227
+ local_income_tax: 0
228
+ state_sales_tax: 0
229
+ tax_unit_childcare_expenses: 4000
230
+ spm_units:
231
+ spm_unit:
232
+ members: [person1, person2, person3, person4]
233
+ snap: 0
234
+ tanf: 0
235
+ free_school_meals: 0
236
+ reduced_price_school_meals: 0
237
+ households:
238
+ household:
239
+ members: [person1, person2, person3, person4]
240
+ state_fips: 27
241
+ output:
242
+ mn_cdcc: 800
@@ -0,0 +1,51 @@
1
+ - name: One person qualifies by age, one by disability
2
+ absolute_error_margin: 0.01
3
+ period: 2021
4
+ input:
5
+ people:
6
+ person1:
7
+ is_tax_unit_head: true
8
+ age: 40
9
+ person2:
10
+ age: 10
11
+ person3:
12
+ age: 16
13
+ is_incapable_of_self_care: true
14
+ spm_units:
15
+ spm_unit:
16
+ members: [person1, person2, person3]
17
+ tax_units:
18
+ tax_unit:
19
+ members: [person1, person2, person3]
20
+ households:
21
+ household:
22
+ members: [person1, person2, person3]
23
+ state_code: MN
24
+ output:
25
+ mn_cdcc_dependent_count: 2
26
+
27
+ - name: No eligible dependents
28
+ absolute_error_margin: 0.01
29
+ period: 2021
30
+ input:
31
+ people:
32
+ person1:
33
+ is_tax_unit_head: true
34
+ age: 40
35
+ is_incapable_of_self_care: true
36
+ person2:
37
+ age: 17
38
+ person3:
39
+ age: 16
40
+ spm_units:
41
+ spm_unit:
42
+ members: [person1, person2, person3]
43
+ tax_units:
44
+ tax_unit:
45
+ members: [person1, person2, person3]
46
+ households:
47
+ household:
48
+ members: [person1, person2, person3]
49
+ state_code: MN
50
+ output:
51
+ mn_cdcc_dependent_count: 0
@@ -0,0 +1,24 @@
1
+ - name: Separate filers are ineligible in 2021
2
+ period: 2021
3
+ input:
4
+ filing_status: SEPARATE
5
+ state_code: MN
6
+ output:
7
+ mn_cdcc_eligible: False
8
+
9
+ - name: Separate joint filers are eligible in 2021
10
+ period: 2021
11
+ input:
12
+ filing_status: JOINT
13
+ state_code: MN
14
+ output:
15
+ mn_cdcc_eligible: True
16
+
17
+ - name: Separate filers are eligible in 2024`
18
+ period: 2024
19
+ input:
20
+ filing_status: SEPARATE
21
+ state_code: MN
22
+ output:
23
+ mn_cdcc_eligible: True
24
+
@@ -0,0 +1,44 @@
1
+ - name: Income below phaseout threshold
2
+ period: 2024
3
+ input:
4
+ mn_cdcc_dependent_count: 3
5
+ adjusted_gross_income: 50_000
6
+ state_code: MN
7
+ output:
8
+ mn_cdcc_phase_out: 1_200
9
+
10
+ - name: Income above phaseout threshold, 3 dependents
11
+ period: 2024
12
+ input:
13
+ mn_cdcc_dependent_count: 3
14
+ adjusted_gross_income: 80_000
15
+ state_code: MN
16
+ output:
17
+ mn_cdcc_phase_out: 320.5
18
+
19
+ - name: Income above phaseout threshold, no dependents
20
+ period: 2024
21
+ input:
22
+ mn_cdcc_dependent_count: 0
23
+ adjusted_gross_income: 80_000
24
+ state_code: MN
25
+ output:
26
+ mn_cdcc_phase_out: 0
27
+
28
+ - name: Income above phaseout threshold, 3 dependents, fully phased out
29
+ period: 2024
30
+ input:
31
+ mn_cdcc_dependent_count: 3
32
+ adjusted_gross_income: 300_000
33
+ state_code: MN
34
+ output:
35
+ mn_cdcc_phase_out: 0
36
+
37
+ - name: Income below phaseout threshold, one dependent
38
+ period: 2024
39
+ input:
40
+ mn_cdcc_dependent_count: 1
41
+ adjusted_gross_income: 50_000
42
+ state_code: MN
43
+ output:
44
+ mn_cdcc_phase_out: 600
@@ -73,4 +73,4 @@
73
73
  household:
74
74
  state_code: PR
75
75
  output:
76
- pr_low_income_credit_eligible: false
76
+ pr_low_income_credit_eligible: false
@@ -57,4 +57,4 @@
57
57
  members: [person1, person2, person3, person4]
58
58
  state_code: PR
59
59
  output:
60
- pr_dependents_exemption: 5_000
60
+ pr_dependents_exemption: 5_000
@@ -23,4 +23,4 @@
23
23
  pr_exemptions_is_eligible_nonstudent: false
24
24
  state_code: PR
25
25
  output:
26
- pr_eligible_dependent_for_exemption: false
26
+ pr_eligible_dependent_for_exemption: false
@@ -51,4 +51,4 @@
51
51
  age: 30
52
52
  state_code: PR
53
53
  output:
54
- pr_exemptions_is_eligible_student: false
54
+ pr_exemptions_is_eligible_student: false
@@ -12,4 +12,4 @@
12
12
  state_code: PR
13
13
  filing_status: SINGLE
14
14
  output:
15
- pr_personal_exemption: 3_500
15
+ pr_personal_exemption: 3_500
@@ -34,4 +34,4 @@
34
34
  state_code: PR
35
35
  members: [person1, person2]
36
36
  output:
37
- pr_veteran_exemption: [1_500, 0]
37
+ pr_veteran_exemption: [1_500, 0]
@@ -31,4 +31,4 @@
31
31
  members: [person1, person2, person3, person4]
32
32
  state_code: PR
33
33
  output:
34
- pr_is_tax_unit_dependent: [false, true, true, true]
34
+ pr_is_tax_unit_dependent: [false, true, true, true]
@@ -62,4 +62,4 @@
62
62
  is_incapable_of_self_care: false
63
63
  is_full_time_college_student: false
64
64
  output:
65
- pr_is_tax_unit_dependent: false
65
+ pr_is_tax_unit_dependent: false
@@ -0,0 +1,47 @@
1
+ from policyengine_us.model_api import *
2
+
3
+
4
+ class mn_cdcc(Variable):
5
+ value_type = float
6
+ entity = TaxUnit
7
+ label = "Minnesota child and dependent care expense credit"
8
+ unit = USD
9
+ definition_period = YEAR
10
+ reference = (
11
+ "https://www.revenue.state.mn.us/sites/default/files/2023-02/m1cd_21.pdf"
12
+ "https://www.revenue.state.mn.us/sites/default/files/2023-01/m1cd_22_0.pdf"
13
+ )
14
+ defined_for = "mn_cdcc_eligible"
15
+
16
+ def formula(tax_unit, period, parameters):
17
+ p = parameters(period).gov.states.mn.tax.income.credits.cdcc
18
+ dep_count = tax_unit("mn_cdcc_dependent_count", period)
19
+ # calculate qualifying care expenses
20
+ expenses = tax_unit("tax_unit_childcare_expenses", period)
21
+ # ... cap expense by number of qualifying dependents
22
+ eligible_count = min_(dep_count, p.maximum_dependents)
23
+ maximum_eligible_expenses = min_(
24
+ expenses, p.maximum_expense * eligible_count
25
+ )
26
+ # ... cap expense by lower earnings of head and spouse if present
27
+ # Line 2
28
+ capped_expenses = min_(
29
+ maximum_eligible_expenses,
30
+ tax_unit("min_head_spouse_earned", period),
31
+ )
32
+ # calculate pre-phaseout credit amount
33
+ # Line 5
34
+ agi = tax_unit("adjusted_gross_income", period)
35
+ # Line 7
36
+ pre_phaseout_amount = capped_expenses * p.expense_fraction.calc(agi)
37
+ # calculate post-phaseout credit amount
38
+ # Line 8
39
+ phaseout_amount = tax_unit("mn_cdcc_phase_out", period)
40
+ smaller_of_expenses_and_reduced_credit = min_(
41
+ pre_phaseout_amount, phaseout_amount
42
+ )
43
+ return where(
44
+ agi > p.phaseout_threshold,
45
+ smaller_of_expenses_and_reduced_credit,
46
+ pre_phaseout_amount,
47
+ )
@@ -0,0 +1,27 @@
1
+ from policyengine_us.model_api import *
2
+
3
+
4
+ class mn_cdcc_dependent_count(Variable):
5
+ value_type = float
6
+ entity = TaxUnit
7
+ label = "Minnesota child and dependent care expense credit dependent count"
8
+ unit = USD
9
+ definition_period = YEAR
10
+ reference = (
11
+ "https://www.revenue.state.mn.us/sites/default/files/2023-02/m1cd_21.pdf"
12
+ "https://www.revenue.state.mn.us/sites/default/files/2023-01/m1cd_22_0.pdf"
13
+ )
14
+ defined_for = "mn_cdcc_eligible"
15
+
16
+ def formula(tax_unit, period, parameters):
17
+ p = parameters(period).gov.states.mn.tax.income.credits.cdcc
18
+ person = tax_unit.members
19
+ # calculate number of qualifying dependents
20
+ # ... children
21
+ age = person("age", period)
22
+ qualifies_by_age = age < p.child_age
23
+ # ... disability
24
+ non_head = ~person("is_tax_unit_head", period)
25
+ disabled = person("is_incapable_of_self_care", period)
26
+ qualifies_by_disability = non_head & disabled
27
+ return tax_unit.sum(qualifies_by_age | qualifies_by_disability)
@@ -0,0 +1,23 @@
1
+ from policyengine_us.model_api import *
2
+
3
+
4
+ class mn_cdcc_eligible(Variable):
5
+ value_type = bool
6
+ entity = TaxUnit
7
+ label = (
8
+ "Eligible for the Minnesota child and dependent care expense credit"
9
+ )
10
+ definition_period = YEAR
11
+ reference = (
12
+ "https://www.revenue.state.mn.us/sites/default/files/2023-02/m1cd_21.pdf"
13
+ "https://www.revenue.state.mn.us/sites/default/files/2023-01/m1cd_22_0.pdf"
14
+ )
15
+ defined_for = StateCode.MN
16
+
17
+ def formula(tax_unit, period, parameters):
18
+ p = parameters(period).gov.states.mn.tax.income.credits.cdcc
19
+ if p.separate_filers_excluded:
20
+ filing_status = tax_unit("filing_status", period)
21
+ return filing_status != filing_status.possible_values.SEPARATE
22
+ else:
23
+ return True
@@ -0,0 +1,25 @@
1
+ from policyengine_us.model_api import *
2
+
3
+
4
+ class mn_cdcc_phase_out(Variable):
5
+ value_type = float
6
+ entity = TaxUnit
7
+ label = "Minnesota child and dependent care expense credit phase out"
8
+ unit = USD
9
+ definition_period = YEAR
10
+ reference = (
11
+ "https://www.revenue.state.mn.us/sites/default/files/2023-02/m1cd_21.pdf"
12
+ "https://www.revenue.state.mn.us/sites/default/files/2023-01/m1cd_22_0.pdf"
13
+ )
14
+ defined_for = "mn_cdcc_eligible"
15
+
16
+ def formula(tax_unit, period, parameters):
17
+ p = parameters(period).gov.states.mn.tax.income.credits.cdcc
18
+ dep_count = tax_unit("mn_cdcc_dependent_count", period)
19
+ # calculate pre-phaseout credit amount
20
+ agi = tax_unit("adjusted_gross_income", period)
21
+ # calculate post-phaseout credit amount
22
+ excess_agi = max_(0, agi - p.phaseout_threshold)
23
+ reduced_agi = excess_agi * p.phaseout_rate
24
+ reduced_base_amount = p.reduced_base_amount.calc(dep_count)
25
+ return max_(0, reduced_base_amount - reduced_agi)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: policyengine-us
3
- Version: 1.400.0
3
+ Version: 1.400.1
4
4
  Summary: Add your description here.
5
5
  Author-email: PolicyEngine <hello@policyengine.org>
6
6
  License-File: LICENSE
@@ -2081,6 +2081,7 @@ policyengine_us/parameters/gov/states/mn/tax/income/credits/cdcc/maximum_depende
2081
2081
  policyengine_us/parameters/gov/states/mn/tax/income/credits/cdcc/maximum_expense.yaml,sha256=dTcw4ikdz6FSUsEoe0bkzSjKcHW8ykaCJXdlgyp8LAM,1093
2082
2082
  policyengine_us/parameters/gov/states/mn/tax/income/credits/cdcc/phaseout_rate.yaml,sha256=Sbk1olA1qIs8ZESeAU7wnCZathcZxMLDlvXzKWTUoVE,1111
2083
2083
  policyengine_us/parameters/gov/states/mn/tax/income/credits/cdcc/phaseout_threshold.yaml,sha256=AuqQZr9LF5MRcgnpRK6qxUdrY-UmG0tq63E_ZOgbDvg,1454
2084
+ policyengine_us/parameters/gov/states/mn/tax/income/credits/cdcc/reduced_base_amount.yaml,sha256=pPircnA6vis0gtGsgRrz4vXHOpbUT8F0itTg0DMXCjE,1223
2084
2085
  policyengine_us/parameters/gov/states/mn/tax/income/credits/cdcc/separate_filers_excluded.yaml,sha256=wnDcQ70vpkuPzow4ixBKJ-K41KcMjmLjNsiJezZuDzQ,1107
2085
2086
  policyengine_us/parameters/gov/states/mn/tax/income/credits/cwfc/README.md,sha256=1bWxwlvhQviikikSa_CWh5hENn4T219uYvju0qIa3Gs,39
2086
2087
  policyengine_us/parameters/gov/states/mn/tax/income/credits/cwfc/ctc/README.md,sha256=TRI937j56he0xD-7rMRuHeehLoJwbJX3N2kozuxmVdk,18
@@ -3023,15 +3024,15 @@ policyengine_us/parameters/gov/territories/pr/tax/income/taxable_income/deductio
3023
3024
  policyengine_us/parameters/gov/territories/pr/tax/income/taxable_income/deductions/mortgage/max.yaml,sha256=4S7u4QMAq8EeYRcAu-QnNYawA4clCro7sc20g458gWU,752
3024
3025
  policyengine_us/parameters/gov/territories/pr/tax/income/taxable_income/deductions/retirement/age_threshold.yaml,sha256=zJ8Q3XZrh2INvKvW2xx5h1DhXuEtJGjnK-Gv2an4Ijo,559
3025
3026
  policyengine_us/parameters/gov/territories/pr/tax/income/taxable_income/deductions/retirement/max.yaml,sha256=D3uhpibDaJlhRXDOEu7PyBP-mqENdayWn9k-Y3Oab-g,560
3026
- policyengine_us/parameters/gov/territories/pr/tax/income/taxable_income/exemptions/personal.yaml,sha256=b7O3FuEUwKi9OQkojznnZ71kbsgSb8pBcHqv1lnA-5o,818
3027
- policyengine_us/parameters/gov/territories/pr/tax/income/taxable_income/exemptions/veteran.yaml,sha256=pozPiLv6zrgv4FmDHpHfuoo6FMmNu8FvSqP9r4k0qsc,571
3027
+ policyengine_us/parameters/gov/territories/pr/tax/income/taxable_income/exemptions/personal.yaml,sha256=56y0Qq2cx1XRF2cuV16iIeogOW1yWwggUQRdKl_yngg,819
3028
+ policyengine_us/parameters/gov/territories/pr/tax/income/taxable_income/exemptions/veteran.yaml,sha256=Png_1_EJcRdK-ALHKKtx_GW9T-MQ_Qy05chzGkOVRMg,572
3028
3029
  policyengine_us/parameters/gov/territories/pr/tax/income/taxable_income/exemptions/dependent/age_threshold/older.yaml,sha256=74MhyAjkxXsKxmOyNbmIIiDS9UnXbHP5bKcYhFBb3Nw,572
3029
3030
  policyengine_us/parameters/gov/territories/pr/tax/income/taxable_income/exemptions/dependent/age_threshold/student.yaml,sha256=gIxpF0jKVYuFyETD0L0XuWIrNYEYfSan4Lo8X-VO8iQ,586
3030
3031
  policyengine_us/parameters/gov/territories/pr/tax/income/taxable_income/exemptions/dependent/age_threshold/younger.yaml,sha256=mr1kAWgjfkAUGNd7QhZCXuvLC3qinmUoHMppxYsOnxk,567
3031
3032
  policyengine_us/parameters/gov/territories/pr/tax/income/taxable_income/exemptions/dependent/amount/non_separate.yaml,sha256=2TicjKXnfrnckN6BLxV9Bj7jMo1QLWAjzAXLjojKixk,594
3032
3033
  policyengine_us/parameters/gov/territories/pr/tax/income/taxable_income/exemptions/dependent/amount/separate.yaml,sha256=5Eq25MdBPsT6qmKme7T6Bee60E8pKoEVBcJEZPJLyvE,586
3033
- policyengine_us/parameters/gov/territories/pr/tax/income/taxable_income/exemptions/dependent/income_limit/nonstudent.yaml,sha256=DaQWvmK5Y1e-aLyABPiccHrmtxjak-8lhDdhMuroIFI,609
3034
- policyengine_us/parameters/gov/territories/pr/tax/income/taxable_income/exemptions/dependent/income_limit/student.yaml,sha256=6tn8LXnhMKK3h8PiOgp76BYDZfdKdeEgGXNKFEsiUI0,602
3034
+ policyengine_us/parameters/gov/territories/pr/tax/income/taxable_income/exemptions/dependent/income_limit/nonstudent.yaml,sha256=ORC4IPp7QyynM14yC-hj_e_nEOR1HOAnvLLZiEvdOyI,610
3035
+ policyengine_us/parameters/gov/territories/pr/tax/income/taxable_income/exemptions/dependent/income_limit/student.yaml,sha256=LPa10ahq_JvN1KOiSgMmF9NXMhhc9ua2jXZwtAsQg9Q,603
3035
3036
  policyengine_us/parameters/gov/usda/README.md,sha256=s1RL8S1-YDdtkeqmTRCjuRImSijVZAmBTkgmUs052jE,38
3036
3037
  policyengine_us/parameters/gov/usda/disabled_programs.yaml,sha256=Yva8iFoiwhqYAmmyt308QlJGMuJXKAzzCCsmqmySXm4,487
3037
3038
  policyengine_us/parameters/gov/usda/elderly_age_threshold.yaml,sha256=lArg_DYlYv3dhdEDbUui2K7zazmIirAwBQIt1742Ohw,289
@@ -4441,7 +4442,6 @@ policyengine_us/tests/policy/baseline/gov/states/mi/tax/income/exemptions/mi_per
4441
4442
  policyengine_us/tests/policy/baseline/gov/states/mn/tax/income/mn_amt.yaml,sha256=6ozAMR9YTz2J2lGB9x5SYeY_FM9vAe--7LHlQiVx-vc,745
4442
4443
  policyengine_us/tests/policy/baseline/gov/states/mn/tax/income/mn_amt_taxable_income.yaml,sha256=fSyT4OMcfiJaP0PdzCRR01VaDbZX2hk5iRWDBN9FULA,614
4443
4444
  policyengine_us/tests/policy/baseline/gov/states/mn/tax/income/mn_basic_tax.yaml,sha256=h8FQHVPzRT00-flb7S_0CwEZ1ue9-alWyyrF-EI7L8Q,906
4444
- policyengine_us/tests/policy/baseline/gov/states/mn/tax/income/mn_cdcc.yaml,sha256=9e0AizuD3qXbIj50uRMQAdDPKdKP6hIU7BawVX5SxkA,4091
4445
4445
  policyengine_us/tests/policy/baseline/gov/states/mn/tax/income/mn_charity_subtraction.yaml,sha256=ouH_guzno_xk7bn-0-kKbo64ZlnkytWgWZ-_URPv-JY,414
4446
4446
  policyengine_us/tests/policy/baseline/gov/states/mn/tax/income/mn_elderly_disabled_subtraction.yaml,sha256=jcNbixdE2XTj1BKu1UUtdMz04y4-syhTM7ieViOy_2Y,3180
4447
4447
  policyengine_us/tests/policy/baseline/gov/states/mn/tax/income/mn_exemptions.yaml,sha256=MXH8vbYqnoekptUBWPW7igaNqNorpTUMyAO1XQ--6lA,701
@@ -4459,6 +4459,10 @@ policyengine_us/tests/policy/baseline/gov/states/mn/tax/income/mn_withheld_incom
4459
4459
  policyengine_us/tests/policy/baseline/gov/states/mn/tax/income/credits/mn_child_and_working_families_credits.yaml,sha256=RxUQd7x6d1UdVuq_ZyGysscjhTmQnpF06CPGQtFQA4Y,7388
4460
4460
  policyengine_us/tests/policy/baseline/gov/states/mn/tax/income/credits/mn_wfc.yaml,sha256=ItudoAIykR5FIYd0E6w6iKn9Hm7doWvPXbxBcrCjFwo,1355
4461
4461
  policyengine_us/tests/policy/baseline/gov/states/mn/tax/income/credits/mn_wfc_eligible.yaml,sha256=xOElZvHJWJ5S61lOeszVhXp4S_ImtVJikX3vmaL4uVc,1412
4462
+ policyengine_us/tests/policy/baseline/gov/states/mn/tax/income/credits/cdcc/mn_cdcc.yaml,sha256=QVQDZ512AAsPrUmPIhoSkqnoD7QACRhYJiR54Lews-g,5748
4463
+ policyengine_us/tests/policy/baseline/gov/states/mn/tax/income/credits/cdcc/mn_cdcc_dependent_count.yaml,sha256=u7TfSZJTAkWGKZzVZblVMZFR3XIXQDRaDXnEbzb1_DA,1136
4464
+ policyengine_us/tests/policy/baseline/gov/states/mn/tax/income/credits/cdcc/mn_cdcc_eligible.yaml,sha256=UymVGw_TUt5qva_xy6JpuR-0dhZ5eTxX5m-1FcoqZ_4,469
4465
+ policyengine_us/tests/policy/baseline/gov/states/mn/tax/income/credits/cdcc/mn_cdcc_phase_out.yaml,sha256=WjBTfUycEIQ1LepHZuE1avlEkXn7hCTHddYBWogTbTo,1006
4462
4466
  policyengine_us/tests/policy/baseline/gov/states/mo/dss/tanf/mo_tanf_income_limit.yaml,sha256=49z1_Jb9jipHCCug9ve9pftg5hZ_7sKGXV5m0zmTi_M,484
4463
4467
  policyengine_us/tests/policy/baseline/gov/states/mo/tax/income/mo_withheld_income_tax.yaml,sha256=O-V9oQSMkq_tmSWoBAmOTVOMo9o4rkJKwXsCO5Rfaao,718
4464
4468
  policyengine_us/tests/policy/baseline/gov/states/mo/tax/income/adjusted_gross_income/mo_adjusted_gross_income.yaml,sha256=j1vBPq0UwDlQK_vxYq0l-gsBIp2NhCJT87jtZ9Dbv6g,1345
@@ -5038,7 +5042,7 @@ policyengine_us/tests/policy/baseline/gov/territories/pr/tax/income/credits/earn
5038
5042
  policyengine_us/tests/policy/baseline/gov/territories/pr/tax/income/credits/earned_income/pr_earned_income_credit_eligible_person.yaml,sha256=05_kLBxBq9we-w72eJj9fq_1fEeFnqv7P_mG0dl3e84,1196
5039
5043
  policyengine_us/tests/policy/baseline/gov/territories/pr/tax/income/credits/low_income/pr_compensatory_low_income_credit.yaml,sha256=h0MMBykqkifI6yQ_L0PLJePbWockE_6DI9U36mTWa8E,587
5040
5044
  policyengine_us/tests/policy/baseline/gov/territories/pr/tax/income/credits/low_income/pr_low_income_credit.yaml,sha256=pNbfl-WLMHos8cKr-J50F2ZqOZt-ovYCdY30lyEKBrU,1984
5041
- policyengine_us/tests/policy/baseline/gov/territories/pr/tax/income/credits/low_income/pr_low_income_credit_eligible.yaml,sha256=AM-okNG0CKpj-ePAGJl0VgvG3XONHOJexamh8Hf6tiM,1946
5045
+ policyengine_us/tests/policy/baseline/gov/territories/pr/tax/income/credits/low_income/pr_low_income_credit_eligible.yaml,sha256=ZwzsgITtWsJGAQVQd6qrSJNOyuQxWREG0NZDVZ9p5SQ,1947
5042
5046
  policyengine_us/tests/policy/baseline/gov/territories/pr/tax/income/credits/low_income/pr_low_income_credit_eligible_person.yaml,sha256=EAipNZfTMVye2BdYodTgAtJtWjzR7UTaGK-R8k3qvB0,813
5043
5047
  policyengine_us/tests/policy/baseline/gov/territories/pr/tax/income/credits/refundable_ctc/pr_refundable_ctc.yaml,sha256=uH6Rb2TLLIrAJSkX5zS9eUaeLgLDmUzYXg9Ws79eTyE,434
5044
5048
  policyengine_us/tests/policy/baseline/gov/territories/pr/tax/income/taxable_income/deductions/pr_casualty_loss_deduction.yaml,sha256=FteN_CqJcr_hjNt0BPagZ5bI9i4PwpHa4vCvphQ-FkY,333
@@ -5049,15 +5053,15 @@ policyengine_us/tests/policy/baseline/gov/territories/pr/tax/income/taxable_inco
5049
5053
  policyengine_us/tests/policy/baseline/gov/territories/pr/tax/income/taxable_income/deductions/education/pr_education_deduction_beneficiary_count.yaml,sha256=56yQJ77Qs7SaR23DwCRPrPy6HsazxW5_VLBB7RlPWEw,449
5050
5054
  policyengine_us/tests/policy/baseline/gov/territories/pr/tax/income/taxable_income/deductions/retirement/pr_retirement_deduction.yaml,sha256=3p1CdadJZB-qpaT3pGehtO-sJ2Oas-0-3leQ0Keaj9I,936
5051
5055
  policyengine_us/tests/policy/baseline/gov/territories/pr/tax/income/taxable_income/deductions/retirement/pr_retirement_deduction_eligibility.yaml,sha256=vnaMaSKukOdGtkytrLIzLAKGY2alcqrTelP-Ub9w1pk,262
5052
- policyengine_us/tests/policy/baseline/gov/territories/pr/tax/income/taxable_income/exemptions/pr_personal_exemption.yaml,sha256=Q4JqGPWIca2ZTeCIx5lDfjDwGWzz0uPRVdLorj8BJM4,271
5053
- policyengine_us/tests/policy/baseline/gov/territories/pr/tax/income/taxable_income/exemptions/pr_veteran_exemption.yaml,sha256=cBhlzaFuoK1jKTtjwXq8TZe_i6sX85Dho77SC39SQn8,827
5056
+ policyengine_us/tests/policy/baseline/gov/territories/pr/tax/income/taxable_income/exemptions/pr_personal_exemption.yaml,sha256=_MrdlwxP9C4zKhzcg8VRa8_vOjKfRAl_tzmTSKQHVEw,272
5057
+ policyengine_us/tests/policy/baseline/gov/territories/pr/tax/income/taxable_income/exemptions/pr_veteran_exemption.yaml,sha256=MzdTdRiqNpBpEAcjhF_jkcXMvks_xjO6ZzULDp_2Q3c,828
5054
5058
  policyengine_us/tests/policy/baseline/gov/territories/pr/tax/income/taxable_income/exemptions/dependent/integration.yaml,sha256=fzks2iBim6haRr-P5HEPRJPOXGRP5crGSgE5T2tb4L0,988
5055
- policyengine_us/tests/policy/baseline/gov/territories/pr/tax/income/taxable_income/exemptions/dependent/pr_dependents_exemption.yaml,sha256=kZEiW5abBtTumS-QUfN5hd-gleFxz6iGXotny45XfVQ,1515
5056
- policyengine_us/tests/policy/baseline/gov/territories/pr/tax/income/taxable_income/exemptions/dependent/pr_eligible_dependent_for_exemption.yaml,sha256=75jv4Ezb76Br3x1Cc06M8Nr1PZIiNk8YZIv7yJ1EIfo,679
5059
+ policyengine_us/tests/policy/baseline/gov/territories/pr/tax/income/taxable_income/exemptions/dependent/pr_dependents_exemption.yaml,sha256=4dyAw7NFI7G-szaIRoy0c84t7rgk4pQnRKlBQjF61tw,1516
5060
+ policyengine_us/tests/policy/baseline/gov/territories/pr/tax/income/taxable_income/exemptions/dependent/pr_eligible_dependent_for_exemption.yaml,sha256=tQrF8VT697kREiRWtLkUkegj3JeM4gCVdYV52vgnMKk,680
5057
5061
  policyengine_us/tests/policy/baseline/gov/territories/pr/tax/income/taxable_income/exemptions/dependent/pr_exemptions_is_eligible_nonstudent.yaml,sha256=zPPhTx82W0KWWfGFYsxC7EGhRsRP5QM4HyU1jP2NalI,597
5058
- policyengine_us/tests/policy/baseline/gov/territories/pr/tax/income/taxable_income/exemptions/dependent/pr_exemptions_is_eligible_student.yaml,sha256=uusbN0mQNgn0z2xueb2lh0xel3wgENIB6VtJTxnV_84,1342
5059
- policyengine_us/tests/policy/baseline/gov/territories/pr/tax_unit_dependent/integration.yaml,sha256=WZkbNxdpGOGI1fnMUXur8PM47CrGJi4X1HnXXj87rV0,975
5060
- policyengine_us/tests/policy/baseline/gov/territories/pr/tax_unit_dependent/pr_is_tax_unit_dependent.yaml,sha256=-w3jQCVG3bbkNf2uv-yRC6oqw7F8Mwx1mJL2kqfwvhQ,1538
5062
+ policyengine_us/tests/policy/baseline/gov/territories/pr/tax/income/taxable_income/exemptions/dependent/pr_exemptions_is_eligible_student.yaml,sha256=obBocZquMUEh27SP5C4h0_3SkyxV9-wnhUGFIAeMVco,1343
5063
+ policyengine_us/tests/policy/baseline/gov/territories/pr/tax_unit_dependent/integration.yaml,sha256=CJw393tZXVxDFxNI13kAczCWhCw9NSf1C7hrdd0Jc-8,976
5064
+ policyengine_us/tests/policy/baseline/gov/territories/pr/tax_unit_dependent/pr_is_tax_unit_dependent.yaml,sha256=bVx7_TTtGjGU6nTlih78-CPW8UbF0GzJwnx4UnwkEiU,1539
5061
5065
  policyengine_us/tests/policy/baseline/gov/usda/has_all_usda_elderly_disabled.yaml,sha256=2YpJcy_GKkH1VJvSpFCaNZY058Mm-y-lVavK12QMexU,596
5062
5066
  policyengine_us/tests/policy/baseline/gov/usda/has_usda_elderly_disabled.yaml,sha256=Jp3UJf52YXDlIOlwBSjNVnyDt8f1RqH6sf4Pg_uUJGQ,1284
5063
5067
  policyengine_us/tests/policy/baseline/gov/usda/is_usda_disabled.yaml,sha256=Vv4qYW3Q7daGgCG913RpQ_BPBd0dkWhbXy0BaCQTJzU,420
@@ -7045,13 +7049,16 @@ policyengine_us/variables/gov/states/mn/tax/income/mn_withheld_income_tax.py,sha
7045
7049
  policyengine_us/variables/gov/states/mn/tax/income/additions/mn_additions.py,sha256=AGEfrDIrYoCfvA4vSeGM9vlf7YHdfELf_sle06z6JBU,480
7046
7050
  policyengine_us/variables/gov/states/mn/tax/income/amt/mn_amt.py,sha256=H7BWnbmi8DvvweZ1Sx75c7rkpzlDvkCwAOilnAzaKiU,1249
7047
7051
  policyengine_us/variables/gov/states/mn/tax/income/amt/mn_amt_taxable_income.py,sha256=XL5emIq8wq5Bp2OGgeA_7Uj4ZwI90wmGsASqKvAArpk,1105
7048
- policyengine_us/variables/gov/states/mn/tax/income/credits/mn_cdcc.py,sha256=oXqAzZ86ey82DsEPkwwjPV0mtxjTM5YQSeYur_bdvrE,2219
7049
7052
  policyengine_us/variables/gov/states/mn/tax/income/credits/mn_child_and_working_families_credits.py,sha256=mppOT5C8uqBuYL0P0pvOL7siCXwhChSjlGKKhqaTyKI,3229
7050
7053
  policyengine_us/variables/gov/states/mn/tax/income/credits/mn_marriage_credit.py,sha256=ko9VGuDTaucb2bC1qwm68wI0XboKYth7pdEHiWaq5Yw,2186
7051
7054
  policyengine_us/variables/gov/states/mn/tax/income/credits/mn_non_refundable_credits.py,sha256=80Gi_gSYfHQNZqIyhZy6rGOQfvAXwSXGzxGjNSzMffM,507
7052
7055
  policyengine_us/variables/gov/states/mn/tax/income/credits/mn_refundable_credits.py,sha256=1odfb95ULPKxdA2E7VFLlpcbc5oR9xLzSOJhBczSnTU,501
7053
7056
  policyengine_us/variables/gov/states/mn/tax/income/credits/mn_wfc.py,sha256=zSQ_939TY_bY7d4PQAORUUfIx3C2bfeZFn8C1RKQa0w,1808
7054
7057
  policyengine_us/variables/gov/states/mn/tax/income/credits/mn_wfc_eligible.py,sha256=CnWl6ab4kgIC33R95ZzSQb17XXOpRmUc84cGMlBVblI,1477
7058
+ policyengine_us/variables/gov/states/mn/tax/income/credits/cdcc/mn_cdcc.py,sha256=LUKtK2QRm6LrXmb7zaLLSgVVVhlmsnkarV76IGRwWCI,1814
7059
+ policyengine_us/variables/gov/states/mn/tax/income/credits/cdcc/mn_cdcc_dependent_count.py,sha256=arkOtiCUWoVLB6ykUvva3mng9XRgnsxpBeNDKWIux7k,1054
7060
+ policyengine_us/variables/gov/states/mn/tax/income/credits/cdcc/mn_cdcc_eligible.py,sha256=tC_fgPadBTWKFXm3eF9A1hPzkfXR9Egby7W8BDCDB8U,797
7061
+ policyengine_us/variables/gov/states/mn/tax/income/credits/cdcc/mn_cdcc_phase_out.py,sha256=95BbiPbu6n5tF2YC22DwaocpPDQkfVaDLewR0VLk9W0,1032
7055
7062
  policyengine_us/variables/gov/states/mn/tax/income/deductions/mn_deductions.py,sha256=8EdLlFP-dEC0Y5WviucFrqNWbDzifP5WvUMdzS-4hu0,855
7056
7063
  policyengine_us/variables/gov/states/mn/tax/income/deductions/mn_itemized_deductions.py,sha256=a449LAL6IVXR8Sll-9xAFTwL5lfJVYCjIWy6rljnpIw,3417
7057
7064
  policyengine_us/variables/gov/states/mn/tax/income/deductions/mn_itemizing.py,sha256=hmyIbXtgbv0VJjszjEWWfQeOjD0FT125OAG5xoinL4E,808
@@ -8420,8 +8427,8 @@ policyengine_us/variables/input/farm_income.py,sha256=BEKxYmHNNnWJAAvULl5qZJigy5
8420
8427
  policyengine_us/variables/input/geography.py,sha256=Ux0ueAf0rhZaflyEqz81UuXP3xKCKBDvoO3CrKhiQEc,5421
8421
8428
  policyengine_us/variables/input/self_employment_income.py,sha256=PwsGz8R4lRikKWUYOhsC0qosNNLXq4f5SQmfw4S3mk8,511
8422
8429
  policyengine_us/variables/input/self_employment_income_before_lsr.py,sha256=E8fcX9Nlyqz8dziHhQv_euutdmoIwFMMWePUwbbwv_w,379
8423
- policyengine_us-1.400.0.dist-info/METADATA,sha256=PoCeyWPNQD88TIzC7jv5hS0z0hr8SyXwc2zgAL_MHo4,1649
8424
- policyengine_us-1.400.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
8425
- policyengine_us-1.400.0.dist-info/entry_points.txt,sha256=MLaqNyNTbReALyKNkde85VkuFFpdPWAcy8VRG1mjczc,57
8426
- policyengine_us-1.400.0.dist-info/licenses/LICENSE,sha256=2N5ReRelkdqkR9a-KP-y-shmcD5P62XoYiG-miLTAzo,34519
8427
- policyengine_us-1.400.0.dist-info/RECORD,,
8430
+ policyengine_us-1.400.1.dist-info/METADATA,sha256=cpDQ6eO8ChnA_TZS-FHF8JYJsAkduCFyfOQ5T8TuhNk,1649
8431
+ policyengine_us-1.400.1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
8432
+ policyengine_us-1.400.1.dist-info/entry_points.txt,sha256=MLaqNyNTbReALyKNkde85VkuFFpdPWAcy8VRG1mjczc,57
8433
+ policyengine_us-1.400.1.dist-info/licenses/LICENSE,sha256=2N5ReRelkdqkR9a-KP-y-shmcD5P62XoYiG-miLTAzo,34519
8434
+ policyengine_us-1.400.1.dist-info/RECORD,,
@@ -1,49 +0,0 @@
1
- from policyengine_us.model_api import *
2
-
3
-
4
- class mn_cdcc(Variable):
5
- value_type = float
6
- entity = TaxUnit
7
- label = "Minnesota child and dependent care expense credit"
8
- unit = USD
9
- definition_period = YEAR
10
- reference = (
11
- "https://www.revenue.state.mn.us/sites/default/files/2023-02/m1cd_21.pdf"
12
- "https://www.revenue.state.mn.us/sites/default/files/2023-01/m1cd_22_0.pdf"
13
- )
14
- defined_for = StateCode.MN
15
-
16
- def formula(tax_unit, period, parameters):
17
- p = parameters(period).gov.states.mn.tax.income.credits.cdcc
18
- person = tax_unit.members
19
- # determine eligibility for Minnesota CDCC
20
- if p.separate_filers_excluded:
21
- filing_status = tax_unit("filing_status", period)
22
- eligible = filing_status != filing_status.possible_values.SEPARATE
23
- else:
24
- eligible = True
25
- # calculate number of qualifying dependents
26
- # ... children
27
- age = person("age", period)
28
- qualifies_by_age = age < p.child_age
29
- # ... disability
30
- non_head = ~person("is_tax_unit_head", period)
31
- disabled = person("is_incapable_of_self_care", period)
32
- qualifies_by_disability = non_head & disabled
33
- dep_count = tax_unit.sum(qualifies_by_age | qualifies_by_disability)
34
- # calculate qualifying care expenses
35
- expense = tax_unit("tax_unit_childcare_expenses", period)
36
- # ... cap expense by number of qualifying dependents
37
- eligible_count = min_(dep_count, p.maximum_dependents)
38
- expense = min_(expense, p.maximum_expense * eligible_count)
39
- # ... cap expense by lower earnings of head and spouse if present
40
- expense = min_(expense, tax_unit("min_head_spouse_earned", period))
41
- # calculate pre-phaseout credit amount
42
- agi = tax_unit("adjusted_gross_income", period)
43
- pre_phaseout_amount = expense * p.expense_fraction.calc(agi)
44
- # calculate post-phaseout credit amount
45
- excess_agi = max_(0, agi - p.phaseout_threshold)
46
- phaseout_amount = excess_agi * p.phaseout_rate
47
- amount = max_(0, pre_phaseout_amount - phaseout_amount)
48
- # credit amount only for eligibles
49
- return eligible * amount