policyengine-us 1.355.0__py3-none-any.whl → 1.357.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.

Files changed (55) hide show
  1. policyengine_us/parameters/gov/irs/credits/ctc/amount/adult_dependent.yaml +3 -1
  2. policyengine_us/parameters/gov/irs/credits/ctc/amount/base.yaml +9 -1
  3. policyengine_us/parameters/gov/irs/credits/ctc/child_ssn_requirement_applies.yaml +3 -0
  4. policyengine_us/parameters/gov/irs/credits/ctc/phase_out/threshold.yaml +3 -6
  5. policyengine_us/parameters/gov/irs/credits/ctc/refundable/individual_max.yaml +7 -1
  6. policyengine_us/parameters/gov/irs/credits/ctc/refundable/phase_in/threshold.yaml +3 -1
  7. policyengine_us/parameters/gov/irs/credits/estate/base.yaml +4 -4
  8. policyengine_us/parameters/gov/irs/deductions/itemized/casualty/active.yaml +4 -0
  9. policyengine_us/parameters/gov/irs/deductions/itemized/interest/mortgage/cap.yaml +3 -0
  10. policyengine_us/parameters/gov/irs/deductions/standard/amount.yaml +62 -60
  11. policyengine_us/parameters/gov/irs/income/amt/exemption/amount.yaml +58 -55
  12. policyengine_us/parameters/gov/irs/income/amt/exemption/phase_out/start.yaml +58 -54
  13. policyengine_us/parameters/gov/irs/income/amt/exemption/separate_limit.yaml +14 -1
  14. policyengine_us/parameters/gov/irs/income/bracket.yaml +223 -395
  15. policyengine_us/parameters/gov/irs/income/exemption/amount.yaml +3 -11
  16. policyengine_us/parameters/gov/territories/pr/tax/income/taxable_income/deductions/casualty_loss/separate_percentage.yaml +14 -0
  17. policyengine_us/parameters/gov/territories/pr/tax/income/taxable_income/deductions/charity/floor.yaml +14 -0
  18. policyengine_us/parameters/gov/territories/pr/tax/income/taxable_income/deductions/education/age_threshold.yaml +12 -0
  19. policyengine_us/parameters/gov/territories/pr/tax/income/taxable_income/deductions/education/max.yaml +12 -0
  20. policyengine_us/parameters/gov/territories/pr/tax/income/taxable_income/deductions/medical/floor.yaml +14 -0
  21. policyengine_us/parameters/gov/territories/pr/tax/income/taxable_income/deductions/mortgage/age_threshold.yaml +12 -0
  22. policyengine_us/parameters/gov/territories/pr/tax/income/taxable_income/deductions/mortgage/floor.yaml +14 -0
  23. policyengine_us/parameters/gov/territories/pr/tax/income/taxable_income/deductions/mortgage/max.yaml +14 -0
  24. policyengine_us/parameters/gov/territories/pr/tax/income/taxable_income/deductions/retirement/age_threshold.yaml +12 -0
  25. policyengine_us/parameters/gov/territories/pr/tax/income/taxable_income/deductions/retirement/max.yaml +12 -0
  26. policyengine_us/parameters/gov/territories/pr/tax/income/taxable_income/exemptions/dependent/amount/non_separate.yaml +12 -0
  27. policyengine_us/parameters/gov/territories/pr/tax/income/taxable_income/exemptions/dependent/amount/separate.yaml +12 -0
  28. policyengine_us/tests/policy/baseline/gov/irs/credits/ctc/maximum/individual/ctc_adult_individual_maximum.yaml +2 -2
  29. policyengine_us/tests/policy/baseline/gov/irs/deductions/itemized/salt_and_real_estate/reported_salt.yaml +2 -2
  30. policyengine_us/tests/policy/baseline/gov/states/ny/tax/income/credits/ny_ctc.yaml +6 -6
  31. policyengine_us/tests/policy/baseline/gov/territories/pr/tax/income/taxable_income/deductions/education/pr_education_deduction.yaml +17 -0
  32. policyengine_us/tests/policy/baseline/gov/territories/pr/tax/income/taxable_income/deductions/education/pr_education_deduction_beneficiary_count.yaml +21 -0
  33. policyengine_us/tests/policy/baseline/gov/territories/pr/tax/income/taxable_income/deductions/pr_casualty_loss_deduction.yaml +17 -0
  34. policyengine_us/tests/policy/baseline/gov/territories/pr/tax/income/taxable_income/deductions/pr_charitable_deduction.yaml +19 -0
  35. policyengine_us/tests/policy/baseline/gov/territories/pr/tax/income/taxable_income/deductions/pr_medical_expense_deduction.yaml +38 -0
  36. policyengine_us/tests/policy/baseline/gov/territories/pr/tax/income/taxable_income/deductions/pr_mortgage_deduction.yaml +87 -0
  37. policyengine_us/tests/policy/baseline/gov/territories/pr/tax/income/taxable_income/deductions/retirement/pr_retirement_deduction.yaml +39 -0
  38. policyengine_us/tests/policy/baseline/gov/territories/pr/tax/income/taxable_income/deductions/retirement/pr_retirement_deduction_eligibility.yaml +15 -0
  39. policyengine_us/tests/policy/contrib/additional_tax_bracket/additional_tax_bracket_reform.yaml +4 -4
  40. policyengine_us/tests/policy/contrib/ctc/ctc_additional_bracket.yaml +1 -1
  41. policyengine_us/tests/policy/contrib/treasury/repeal_dependent_exemptions.yaml +2 -2
  42. policyengine_us/variables/gov/territories/pr/tax/income/pr_agi.py +11 -0
  43. policyengine_us/variables/gov/territories/pr/tax/income/taxable_income/deductions/education/pr_education_deduction.py +20 -0
  44. policyengine_us/variables/gov/territories/pr/tax/income/taxable_income/deductions/education/pr_education_deduction_beneficiary_count.py +20 -0
  45. policyengine_us/variables/gov/territories/pr/tax/income/taxable_income/deductions/pr_casualty_loss_deduction.py +27 -0
  46. policyengine_us/variables/gov/territories/pr/tax/income/taxable_income/deductions/pr_charitable_deduction.py +23 -0
  47. policyengine_us/variables/gov/territories/pr/tax/income/taxable_income/deductions/pr_medical_expense_deduction.py +19 -0
  48. policyengine_us/variables/gov/territories/pr/tax/income/taxable_income/deductions/pr_mortgage_deduction.py +42 -0
  49. policyengine_us/variables/gov/territories/pr/tax/income/taxable_income/deductions/retirement/pr_retirement_deduction.py +25 -0
  50. policyengine_us/variables/gov/territories/pr/tax/income/taxable_income/deductions/retirement/pr_retirement_deduction_eligibility.py +20 -0
  51. {policyengine_us-1.355.0.dist-info → policyengine_us-1.357.0.dist-info}/METADATA +1 -1
  52. {policyengine_us-1.355.0.dist-info → policyengine_us-1.357.0.dist-info}/RECORD +55 -26
  53. {policyengine_us-1.355.0.dist-info → policyengine_us-1.357.0.dist-info}/WHEEL +0 -0
  54. {policyengine_us-1.355.0.dist-info → policyengine_us-1.357.0.dist-info}/entry_points.txt +0 -0
  55. {policyengine_us-1.355.0.dist-info → policyengine_us-1.357.0.dist-info}/licenses/LICENSE +0 -0
@@ -12,6 +12,9 @@ metadata:
12
12
  - title: CBO Tax Parameters and Effective Marginal Tax Rates | Jan 2025
13
13
  # 1. Tax Parameters.
14
14
  href: https://www.cbo.gov/data/budget-economic-data
15
+ # OBBB permanently sets value to zero.
16
+ - title: H.R.1 - One Big Beautiful Bill Act
17
+ href: https://www.congress.gov/bill/119th-congress/house-bill/1/text
15
18
 
16
19
  values:
17
20
  2013-01-01: 3_900
@@ -20,14 +23,3 @@ values:
20
23
  2016-01-01: 4_050
21
24
  2017-01-01: 4_050
22
25
  2018-01-01: 0
23
- # Values derived from the CBO Projections
24
- 2026-01-01: 5_300
25
- 2027-01-01: 5_400
26
- 2028-01-01: 5_500
27
- 2029-01-01: 5_650
28
- 2030-01-01: 5_750
29
- 2031-01-01: 5_850
30
- 2032-01-01: 5_950
31
- 2033-01-01: 6_100
32
- 2034-01-01: 6_200
33
- 2035-01-01: 6_350
@@ -0,0 +1,14 @@
1
+ description: Puerto Rico deducts this percentage of casualty loss for separate filers.
2
+ metadata:
3
+ unit: /1
4
+ period: year
5
+ label: Puerto Rico casualty loss deduction separate filing status percentage
6
+ reference:
7
+ - title: P.R. Laws tit. 13, § 30135 (10)(A)(ii)
8
+ href: https://law.justia.com/codes/puerto-rico/title-thirteen/subtitle-17/part-ii/chapter-1005/subchapter-c/30135/
9
+ - title: Gov. of Puerto Rico Individual Income Tax Return Form 482.0 4
10
+ href: https://hacienda.pr.gov/sites/default/files/individuals_2024_rev._jul_12_24_9-30-24_informative.pdf#page=4
11
+ - title: Individual Income Tax Return Instructions Booklet 2023
12
+ href: https://hacienda.pr.gov/sites/default/files/inst_individuals_2023.pdf#page=24
13
+ values:
14
+ 2023-01-01: 0.5
@@ -0,0 +1,14 @@
1
+ description: Puerto Rico deducts charitable contributions exceeding this percentage of adjusted gross income from taxable income.
2
+ metadata:
3
+ unit: /1
4
+ period: year
5
+ label: Puerto Rico charity contributions deduction floor
6
+ reference:
7
+ - title: P.R. Laws tit. 13, § 30135 (3)(B)(i)(IV)
8
+ href: https://law.justia.com/codes/puerto-rico/title-thirteen/subtitle-17/part-ii/chapter-1005/subchapter-c/30135/
9
+ - title: Gov. of Puerto Rico Individual Income Tax Return Form 482.0 4
10
+ href: https://hacienda.pr.gov/sites/default/files/individuals_2024_rev._jul_12_24_9-30-24_informative.pdf#page=4
11
+ - title: Individual Income Tax Return Instructions Booklet 2023
12
+ href: https://hacienda.pr.gov/sites/default/files/inst_individuals_2023.pdf#page=25
13
+ values:
14
+ 2023-01-01: 0.5
@@ -0,0 +1,12 @@
1
+ description: Puerto Rico limits the education contribution deduction to taxpayers under this age.
2
+ metadata:
3
+ unit: year
4
+ period: year
5
+ label: Puerto Rico education contribution deduction age threshold
6
+ reference:
7
+ - title: P.R. Laws tit. 13, § 30135 (8)(C)
8
+ href: https://law.justia.com/codes/puerto-rico/title-thirteen/subtitle-17/part-ii/chapter-1005/subchapter-c/30135/
9
+ - title: Gov. of Puerto Rico Individual Income Tax Return Form 482.0 4
10
+ href: https://hacienda.pr.gov/sites/default/files/individuals_2024_rev._jul_12_24_9-30-24_informative.pdf#page=4
11
+ values:
12
+ 2023-01-01: 26
@@ -0,0 +1,12 @@
1
+ description: Puerto Rico allows this maximum amount for the education contribution deduction for each beneficiary.
2
+ metadata:
3
+ unit: currency-USD
4
+ period: year
5
+ label: Puerto Rico education contribution deduction maximum
6
+ reference:
7
+ - title: P.R. Laws tit. 13, § 30135 (8)(B)
8
+ href: https://law.justia.com/codes/puerto-rico/title-thirteen/subtitle-17/part-ii/chapter-1005/subchapter-c/30135/
9
+ - title: Gov. of Puerto Rico Individual Income Tax Return Form 482.0 4
10
+ href: https://hacienda.pr.gov/sites/default/files/individuals_2024_rev._jul_12_24_9-30-24_informative.pdf#page=4
11
+ values:
12
+ 2023-01-01: 500
@@ -0,0 +1,14 @@
1
+ description: Puerto Rico deducts medical expenses exceeding this percentage of adjusted gross income from taxable income.
2
+ metadata:
3
+ unit: /1
4
+ period: year
5
+ label: Puerto Rico medical expense deduction floor
6
+ reference:
7
+ - title: P.R. Laws tit. 13, § 30135 (4)
8
+ href: https://law.justia.com/codes/puerto-rico/title-thirteen/subtitle-17/part-ii/chapter-1005/subchapter-c/30135/
9
+ - title: Gov. of Puerto Rico Individual Income Tax Return Form 482.0 4
10
+ href: https://hacienda.pr.gov/sites/default/files/individuals_2024_rev._jul_12_24_9-30-24_informative.pdf#page=4
11
+ - title: Individual Income Tax Return Instructions Booklet 2023
12
+ href: https://hacienda.pr.gov/sites/default/files/inst_individuals_2023.pdf#page=24
13
+ values:
14
+ 2023-01-01: 0.06
@@ -0,0 +1,12 @@
1
+ description: Puerto Rico applies the mortgage deduction limitations to taxpayers under this age.
2
+ metadata:
3
+ unit: year
4
+ period: year
5
+ label: Puerto Rico mortgage deduction age threshold
6
+ reference:
7
+ - title: P.R. Laws tit. 13, § 30135 (1)(C)(iii)
8
+ href: https://law.justia.com/codes/puerto-rico/title-thirteen/subtitle-17/part-ii/chapter-1005/subchapter-c/30135/
9
+ - title: Individual Income Tax Return Instructions Booklet 2023
10
+ href: https://hacienda.pr.gov/sites/default/files/inst_individuals_2023.pdf#page=23
11
+ values:
12
+ 2023-01-01: 65
@@ -0,0 +1,14 @@
1
+ description: Puerto Rico limits home mortgage deduction to this percentage of the adjusted gross income.
2
+ metadata:
3
+ unit: /1
4
+ period: year
5
+ label: Puerto Rico mortgage deduction floor
6
+ reference:
7
+ - title: P.R. Laws tit. 13, § 30135 (1)(C)(I)
8
+ href: https://law.justia.com/codes/puerto-rico/title-thirteen/subtitle-17/part-ii/chapter-1005/subchapter-c/30135/
9
+ - title: Gov. of Puerto Rico Individual Income Tax Return Form 482.0 4
10
+ href: https://hacienda.pr.gov/sites/default/files/individuals_2024_rev._jul_12_24_9-30-24_informative.pdf#page=4
11
+ - title: Individual Income Tax Return Instructions Booklet 2023
12
+ href: https://hacienda.pr.gov/sites/default/files/inst_individuals_2023.pdf#page=23
13
+ values:
14
+ 2023-01-01: 0.3
@@ -0,0 +1,14 @@
1
+ description: Puerto Rico allows this maximum amount for the mortgage interest deduction.
2
+ metadata:
3
+ unit: currency-USD
4
+ period: year
5
+ label: Puerto Rico mortgage deduction maximum
6
+ reference:
7
+ - title: P.R. Laws tit. 13, § 30135 (1)(C)(i)
8
+ href: https://law.justia.com/codes/puerto-rico/title-thirteen/subtitle-17/part-ii/chapter-1005/subchapter-c/30135/
9
+ - title: Gov. of Puerto Rico Individual Income Tax Return Form 482.0 4
10
+ href: https://hacienda.pr.gov/sites/default/files/individuals_2024_rev._jul_12_24_9-30-24_informative.pdf#page=4
11
+ - title: Individual Income Tax Return Instructions Booklet 2023
12
+ href: https://hacienda.pr.gov/sites/default/files/inst_individuals_2023.pdf#page=23
13
+ values:
14
+ 2023-01-01: 35_000
@@ -0,0 +1,12 @@
1
+ description: Puerto Rico limits the retirement contribution deduction to taxpayers under this age.
2
+ metadata:
3
+ unit: year
4
+ period: year
5
+ label: Puerto Rico retirement deduction age threshold
6
+ reference:
7
+ - title: P.R. Laws tit. 13, § 30135 (7)(D)
8
+ href: https://law.justia.com/codes/puerto-rico/title-thirteen/subtitle-17/part-ii/chapter-1005/subchapter-c/30135/
9
+ - title: Individual Income Tax Return Instructions Booklet 2023
10
+ href: https://hacienda.pr.gov/sites/default/files/inst_individuals_2023.pdf#page=26
11
+ values:
12
+ 2023-01-01: 75
@@ -0,0 +1,12 @@
1
+ description: Puerto Rico allows this maximum amount for the retirement contribution deduction.
2
+ metadata:
3
+ unit: currency-USD
4
+ period: year
5
+ label: Puerto Rico retirement deduction maximum
6
+ reference:
7
+ - title: P.R. Laws tit. 13, § 30135 (7)(B)
8
+ href: https://law.justia.com/codes/puerto-rico/title-thirteen/subtitle-17/part-ii/chapter-1005/subchapter-c/30135/
9
+ - title: Individual Income Tax Return Instructions Booklet 2023
10
+ href: https://hacienda.pr.gov/sites/default/files/inst_individuals_2023.pdf#page=26
11
+ values:
12
+ 2023-01-01: 5_000
@@ -0,0 +1,12 @@
1
+ description: Puerto Rico provides the following dependent exemption amount for non-separate filers.
2
+ values:
3
+ 2023-01-01: 2_500
4
+ metadata:
5
+ unit: currency-USD
6
+ period: year
7
+ label: Puerto Rico dependent exemption non-separate filers amount
8
+ reference:
9
+ - title: Gov. of Puerto Rico Form 482.0 2024
10
+ href: https://hacienda.pr.gov/sites/default/files/individuals_2024_rev._jul_12_24_9-30-24_informative.pdf#page=2
11
+ - title: P.R. Laws tit. 13, § 30138 (b)(1)
12
+ href: https://law.justia.com/codes/puerto-rico/title-thirteen/subtitle-17/part-ii/chapter-1005/subchapter-c/30138/
@@ -0,0 +1,12 @@
1
+ description: Puerto Rico provides the following dependent exemption amount for separate filers.
2
+ values:
3
+ 2023-01-01: 1_250
4
+ metadata:
5
+ unit: currency-USD
6
+ period: year
7
+ label: Puerto Rico dependent exemption separate filers amount
8
+ reference:
9
+ - title: Gov. of Puerto Rico Form 482.0 2024
10
+ href: https://hacienda.pr.gov/sites/default/files/individuals_2024_rev._jul_12_24_9-30-24_informative.pdf#page=2
11
+ - title: P.R. Laws tit. 13, § 30138 (b)(1)
12
+ href: https://law.justia.com/codes/puerto-rico/title-thirteen/subtitle-17/part-ii/chapter-1005/subchapter-c/30138/
@@ -27,10 +27,10 @@
27
27
  output:
28
28
  ctc_adult_individual_maximum: 500
29
29
 
30
- - name: Returns to zero post-TCJA.
30
+ - name: Extended by OBBB.
31
31
  period: 2026
32
32
  input:
33
33
  is_tax_unit_dependent: true
34
34
  ctc_child_individual_maximum: 0
35
35
  output:
36
- ctc_adult_individual_maximum: 0
36
+ ctc_adult_individual_maximum: 500
@@ -33,8 +33,8 @@
33
33
  employment_income: 40_000
34
34
  output:
35
35
  adjusted_gross_income: 40_000
36
- exemptions: 5_300
37
- reported_salt: 34_700
36
+ exemptions: 0
37
+ reported_salt: 40_000
38
38
  amt_income: 40_000
39
39
  taxable_income: 0
40
40
 
@@ -126,9 +126,9 @@
126
126
  state_code: NY
127
127
  output:
128
128
  refundable_ctc: 0
129
- non_refundable_ctc: 2_000
129
+ non_refundable_ctc: 2_200
130
130
  income_tax_before_credits: 0
131
- ctc: 2_000 # $1,000 for the calculation as pre-TCJA values apply
131
+ ctc: 2_200 # $1,000 for the calculation as pre-TCJA values apply
132
132
  ctc_value: 0
133
133
  ny_ctc: 1_000 # Updated CTC: $1,000 for child age 0
134
134
 
@@ -149,10 +149,10 @@
149
149
  members: [parent, child]
150
150
  state_code: NY
151
151
  output:
152
- refundable_ctc: 1_250
153
- non_refundable_ctc: 750
154
- ctc: 2_000
155
- ctc_value: 2_000
152
+ refundable_ctc: 1_562.50
153
+ non_refundable_ctc: 637.5
154
+ ctc: 2_200
155
+ ctc_value: 2_200
156
156
  ny_ctc: 1_000 # Updated CTC: $1,000 for child age 0
157
157
 
158
158
  # Updated CTC Tests for 2025-2027 Rules
@@ -0,0 +1,17 @@
1
+ - name: Contribution smaller than maximum
2
+ period: 2024
3
+ input:
4
+ investment_in_529_plan: 1_300
5
+ pr_education_deduction_beneficiary_count: 3
6
+ state_code: PR
7
+ output:
8
+ pr_education_deduction: 1_300
9
+
10
+ - name: Contribution larger than maximum
11
+ period: 2024
12
+ input:
13
+ investment_in_529_plan: 5_000
14
+ pr_education_deduction_beneficiary_count: 4
15
+ state_code: PR
16
+ output:
17
+ pr_education_deduction: 2_000
@@ -0,0 +1,21 @@
1
+ - name: Base test
2
+ period: 2024
3
+ input:
4
+ people:
5
+ person1:
6
+ age: 30
7
+ is_tax_unit_dependent: false
8
+ person2:
9
+ age: 26
10
+ is_tax_unit_dependent: true
11
+ person3:
12
+ age: 21
13
+ is_tax_unit_dependent: true
14
+ tax_units:
15
+ tax_unit:
16
+ members: [person1, person2, person3]
17
+ households:
18
+ household:
19
+ state_code: PR
20
+ output:
21
+ pr_education_deduction_beneficiary_count: 1
@@ -0,0 +1,17 @@
1
+ - name: Separate filer
2
+ period: 2024
3
+ input:
4
+ casualty_loss: 20_000
5
+ filing_status: SEPARATE
6
+ state_code: PR
7
+ output:
8
+ pr_casualty_loss_deduction: 10_000
9
+
10
+ - name: Single filer
11
+ period: 2024
12
+ input:
13
+ casualty_loss: 3_000
14
+ filing_status: SINGLE
15
+ state_code: PR
16
+ output:
17
+ pr_casualty_loss_deduction: 3_000
@@ -0,0 +1,19 @@
1
+ - name: More charitable contributions than income
2
+ period: 2024
3
+ input:
4
+ charitable_cash_donations: 20_000
5
+ charitable_non_cash_donations: 1_000
6
+ pr_agi: 10_000
7
+ state_code: PR
8
+ output:
9
+ pr_charitable_deduction: 5000
10
+
11
+ - name: More income than charitable contributions
12
+ period: 2024
13
+ input:
14
+ charitable_cash_donations: 1_000
15
+ charitable_non_cash_donations: 500
16
+ pr_agi: 50_000
17
+ state_code: PR
18
+ output:
19
+ pr_charitable_deduction: 1_500
@@ -0,0 +1,38 @@
1
+ - name: Medical expenses higher than adjusted gross income
2
+ period: 2024
3
+ input:
4
+ people:
5
+ person1:
6
+ medical_out_of_pocket_expenses: 15_000
7
+ person2:
8
+ medical_out_of_pocket_expenses: 5_000
9
+ tax_units:
10
+ tax_unit:
11
+ members: [person1, person2]
12
+ pr_agi: 1_000
13
+ households:
14
+ household:
15
+ members: [person1, person2]
16
+ state_code: PR
17
+ output:
18
+ pr_medical_expense_deduction: 19_940
19
+
20
+
21
+ - name: Medical expenses lower than adjusted gross income
22
+ period: 2024
23
+ input:
24
+ people:
25
+ person1:
26
+ medical_out_of_pocket_expenses: 2000
27
+ person2:
28
+ medical_out_of_pocket_expenses: 999
29
+ tax_units:
30
+ tax_unit:
31
+ members: [person1, person2]
32
+ pr_agi: 50_000
33
+ households:
34
+ household:
35
+ members: [person1, person2]
36
+ state_code: PR
37
+ output:
38
+ pr_medical_expense_deduction: 0
@@ -0,0 +1,87 @@
1
+ - name: Taxpayer over 65 years old over maximum deduction amount
2
+ period: 2024
3
+ input:
4
+ people:
5
+ person1:
6
+ age: 65
7
+ is_tax_unit_head_or_spouse: true
8
+ deductible_mortgage_interest: 20_000
9
+ person2:
10
+ age: 40
11
+ is_tax_unit_head_or_spouse: true
12
+ deductible_mortgage_interest: 20_000
13
+ tax_units:
14
+ tax_unit:
15
+ members: [person1, person2]
16
+ pr_agi: 10_000
17
+ households:
18
+ household:
19
+ state_code: PR
20
+ output:
21
+ pr_mortgage_deduction: 35_000
22
+
23
+ - name: Spouse over 65 years old under maximum deduction amount
24
+ period: 2024
25
+ input:
26
+ people:
27
+ person1:
28
+ age: 40
29
+ is_tax_unit_head_or_spouse: true
30
+ deductible_mortgage_interest: 30_000
31
+ person2:
32
+ age: 65
33
+ is_tax_unit_head_or_spouse: true
34
+ deductible_mortgage_interest: 4_000
35
+ tax_units:
36
+ tax_unit:
37
+ members: [person1, person2]
38
+ pr_agi: 10_000
39
+ households:
40
+ household:
41
+ state_code: PR
42
+ output:
43
+ pr_mortgage_deduction: 34_000
44
+
45
+ - name: Taxpayer under 65 years old limited by AGI
46
+ period: 2024
47
+ input:
48
+ people:
49
+ person1:
50
+ age: 40
51
+ is_tax_unit_head_or_spouse: true
52
+ deductible_mortgage_interest: 20_000
53
+ person2:
54
+ age: 64
55
+ is_tax_unit_head_or_spouse: true
56
+ deductible_mortgage_interest: 10_000
57
+ tax_units:
58
+ tax_unit:
59
+ members: [person1, person2]
60
+ pr_agi: 10_000
61
+ households:
62
+ household:
63
+ state_code: PR
64
+ output:
65
+ pr_mortgage_deduction: 3_000
66
+
67
+ - name: Base test
68
+ period: 2024
69
+ input:
70
+ people:
71
+ person1:
72
+ age: 64
73
+ is_tax_unit_head_or_spouse: true
74
+ deductible_mortgage_interest: 3_000
75
+ person2:
76
+ age: 64
77
+ is_tax_unit_head_or_spouse: true
78
+ deductible_mortgage_interest: 3_001
79
+ tax_units:
80
+ tax_unit:
81
+ members: [person1, person2]
82
+ pr_agi: 20_000
83
+ households:
84
+ household:
85
+ state_code: PR
86
+ output:
87
+ pr_mortgage_deduction: 6_000
@@ -0,0 +1,39 @@
1
+ - name: Contributions are higher than maximum deduction
2
+ period: 2024
3
+ input:
4
+ pr_agi_person: 10_000
5
+ traditional_ira_contributions: 3_001
6
+ roth_ira_contributions: 2_000
7
+ state_code: PR
8
+ output:
9
+ pr_retirement_deduction: 5_000
10
+
11
+ - name: Contributions are lower than maximum deduction
12
+ period: 2024
13
+ input:
14
+ pr_agi_person: 1_300
15
+ traditional_ira_contributions: 500
16
+ roth_ira_contributions: 300
17
+ state_code: PR
18
+ output:
19
+ pr_retirement_deduction: 800
20
+
21
+ - name: Contributions are lower than AGI
22
+ period: 2024
23
+ input:
24
+ pr_agi_person: 4_000
25
+ traditional_ira_contributions: 500
26
+ roth_ira_contributions: 301
27
+ state_code: PR
28
+ output:
29
+ pr_retirement_deduction: 801
30
+
31
+ - name: Contributions are higher than AGI
32
+ period: 2024
33
+ input:
34
+ pr_agi_person: 4_000
35
+ traditional_ira_contributions: 5000
36
+ roth_ira_contributions: 3000
37
+ state_code: PR
38
+ output:
39
+ pr_retirement_deduction: 4_000
@@ -0,0 +1,15 @@
1
+ - name: Not eligible
2
+ period: 2024
3
+ input:
4
+ age: 75
5
+ state_code: PR
6
+ output:
7
+ pr_retirement_deduction_eligibility: False
8
+
9
+ - name: Eligible
10
+ period: 2024
11
+ input:
12
+ age: 74
13
+ state_code: PR
14
+ output:
15
+ pr_retirement_deduction_eligibility: True
@@ -22,8 +22,8 @@
22
22
  taxable_income: 1_000_000
23
23
  filing_status: JOINT
24
24
  output:
25
- regular_tax_before_credits: 323_310
26
- income_tax_main_rates: 323_310
25
+ regular_tax_before_credits: 291_360
26
+ income_tax_main_rates: 291_360
27
27
 
28
28
  - name: Additional tax bracket is applied, taxable income is below the threshold.
29
29
  period: 2027
@@ -49,5 +49,5 @@
49
49
  taxable_income: 600_000
50
50
  filing_status: JOINT
51
51
  output:
52
- regular_tax_before_credits: 166_046
53
- income_tax_main_rates: 166_046
52
+ regular_tax_before_credits: 147_196
53
+ income_tax_main_rates: 147_196
@@ -36,7 +36,7 @@
36
36
  tax_unit:
37
37
  members: [person1, person2, person3, person4]
38
38
  output:
39
- ctc_child_individual_maximum: [0, 0, 2_000, 2_000]
39
+ ctc_child_individual_maximum: [0, 0, 2_200, 2_200]
40
40
 
41
41
  - name: Joint filers with two kids, different refundable amounts
42
42
  period: 2024
@@ -38,7 +38,7 @@
38
38
  filing_status: SINGLE
39
39
  output:
40
40
  exemptions_count: 3
41
- exemptions: 15_900
41
+ exemptions: 0
42
42
 
43
43
  - name: Three people, reform applies
44
44
  period: 2026
@@ -62,4 +62,4 @@
62
62
  filing_status: SINGLE
63
63
  output:
64
64
  exemptions_count: 2
65
- exemptions: 10_600
65
+ exemptions: 0
@@ -0,0 +1,11 @@
1
+ from policyengine_us.model_api import *
2
+
3
+
4
+ class pr_agi(Variable):
5
+ value_type = float
6
+ entity = TaxUnit
7
+ label = "Puerto Rico adjusted gross income"
8
+ unit = USD
9
+ definition_period = YEAR
10
+ defined_for = StateCode.PR
11
+ reference = "https://law.justia.com/codes/puerto-rico/title-thirteen/subtitle-17/part-ii/chapter-1005/subchapter-a/30103/"
@@ -0,0 +1,20 @@
1
+ from policyengine_us.model_api import *
2
+
3
+
4
+ class pr_education_deduction(Variable):
5
+ value_type = float
6
+ entity = TaxUnit
7
+ label = "Puerto Rico education contribution deduction"
8
+ unit = USD
9
+ definition_period = YEAR
10
+ reference = "https://law.justia.com/codes/puerto-rico/title-thirteen/subtitle-17/part-ii/chapter-1005/subchapter-c/30135/" # (8)
11
+ defined_for = StateCode.PR
12
+
13
+ def formula(tax_unit, period, parameters):
14
+ p = parameters(
15
+ period
16
+ ).gov.territories.pr.tax.income.taxable_income.deductions.education
17
+ contributions = add(tax_unit, period, ["investment_in_529_plan"])
18
+ count = tax_unit("pr_education_deduction_beneficiary_count", period)
19
+ maximum_contribution = p.max * count
20
+ return min_(maximum_contribution, contributions)
@@ -0,0 +1,20 @@
1
+ from policyengine_us.model_api import *
2
+
3
+
4
+ class pr_education_deduction_beneficiary_count(Variable):
5
+ value_type = float
6
+ entity = TaxUnit
7
+ label = "Puerto Rico education contribution deduction beneficiary count"
8
+ unit = USD
9
+ definition_period = YEAR
10
+ reference = "https://law.justia.com/codes/puerto-rico/title-thirteen/subtitle-17/part-ii/chapter-1005/subchapter-c/30135/" # (8)
11
+ defined_for = StateCode.PR
12
+
13
+ def formula(tax_unit, period, parameters):
14
+ p = parameters(
15
+ period
16
+ ).gov.territories.pr.tax.income.taxable_income.deductions.education
17
+ person = tax_unit.members
18
+ is_dependent = person("is_tax_unit_dependent", period)
19
+ age_eligible = person("age", period) < p.age_threshold
20
+ return tax_unit.sum(is_dependent & age_eligible)
@@ -0,0 +1,27 @@
1
+ from policyengine_us.model_api import *
2
+
3
+
4
+ class pr_casualty_loss_deduction(Variable):
5
+ value_type = float
6
+ entity = TaxUnit
7
+ label = "Puerto Rico casualty loss deduction"
8
+ unit = USD
9
+ definition_period = YEAR
10
+ reference = "https://law.justia.com/codes/puerto-rico/title-thirteen/subtitle-17/part-ii/chapter-1005/subchapter-c/30135/" # (10)
11
+ defined_for = StateCode.PR
12
+
13
+ def formula(tax_unit, period, parameters):
14
+ p = parameters(
15
+ period
16
+ ).gov.territories.pr.tax.income.taxable_income.deductions.casualty_loss
17
+ loss = add(tax_unit, period, ["casualty_loss"])
18
+ filing_status = tax_unit("filing_status", period)
19
+
20
+ return (
21
+ where(
22
+ filing_status == filing_status.possible_values.SEPARATE,
23
+ p.separate_percentage,
24
+ 1,
25
+ )
26
+ * loss
27
+ )