policyengine-us 1.446.0__py3-none-any.whl → 1.447.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.
@@ -0,0 +1,29 @@
1
+ - name: Income and subtractions
2
+ absolute_error_margin: 0.01
3
+ period: 2021
4
+ input:
5
+ state_code: OH
6
+ oh_agi_person: 67_000
7
+ oh_joint_filing_credit_agi_subtractions: 40_000
8
+ output:
9
+ oh_joint_filing_credit_qualifying_income: 27_000
10
+
11
+ - name: Subtractions cannot be negative
12
+ absolute_error_margin: 0.01
13
+ period: 2025
14
+ input:
15
+ state_code: OH
16
+ oh_agi_person: -10_000
17
+ oh_joint_filing_credit_agi_subtractions: -40_000
18
+ output:
19
+ oh_joint_filing_credit_qualifying_income: -10_000
20
+
21
+ - name: Total income can be negative
22
+ absolute_error_margin: 0.01
23
+ period: 2025
24
+ input:
25
+ state_code: OH
26
+ oh_agi_person: 4_000
27
+ oh_joint_filing_credit_agi_subtractions: 10_000
28
+ output:
29
+ oh_joint_filing_credit_qualifying_income: -6_000
@@ -181,3 +181,85 @@
181
181
  output:
182
182
  oh_cdcc: 165
183
183
  oh_income_tax: 273
184
+
185
+ - name: 40115-OH.yaml
186
+ absolute_error_margin: 2
187
+ period: 2024
188
+ input:
189
+ people:
190
+ person1:
191
+ age: 40
192
+ employment_income: 129626.8
193
+ ssi: 0
194
+ wic: 0
195
+ head_start: 0
196
+ early_head_start: 0
197
+ commodity_supplemental_food_program: 0
198
+ long_term_capital_gains: -39740.8515
199
+ short_term_capital_gains: -601164.25
200
+ taxable_interest_income: 309.727295
201
+ is_tax_unit_head: true
202
+ person2:
203
+ age: 40
204
+ employment_income: 0.0
205
+ ssi: 0
206
+ wic: 0
207
+ head_start: 0
208
+ early_head_start: 0
209
+ commodity_supplemental_food_program: 0
210
+ long_term_capital_gains: -39740.8515
211
+ short_term_capital_gains: -601164.25
212
+ taxable_interest_income: 309.727295
213
+ is_tax_unit_spouse: true
214
+ person3:
215
+ age: 10
216
+ employment_income: 0
217
+ ssi: 0
218
+ wic: 0
219
+ head_start: 0
220
+ early_head_start: 0
221
+ commodity_supplemental_food_program: 0
222
+ is_tax_unit_dependent: true
223
+ is_tax_unit_head: false
224
+ is_tax_unit_spouse: false
225
+ person4:
226
+ age: 10
227
+ employment_income: 0
228
+ ssi: 0
229
+ wic: 0
230
+ head_start: 0
231
+ early_head_start: 0
232
+ commodity_supplemental_food_program: 0
233
+ is_tax_unit_dependent: true
234
+ is_tax_unit_head: false
235
+ is_tax_unit_spouse: false
236
+ person5:
237
+ age: 10
238
+ employment_income: 0
239
+ ssi: 0
240
+ wic: 0
241
+ head_start: 0
242
+ early_head_start: 0
243
+ commodity_supplemental_food_program: 0
244
+ is_tax_unit_dependent: true
245
+ is_tax_unit_head: false
246
+ is_tax_unit_spouse: false
247
+ tax_units:
248
+ tax_unit:
249
+ members: [person1, person2, person3, person4, person5]
250
+ premium_tax_credit: 0
251
+ local_income_tax: 0
252
+ state_sales_tax: 0
253
+ spm_units:
254
+ spm_unit:
255
+ members: [person1, person2, person3, person4, person5]
256
+ snap: 0
257
+ tanf: 0
258
+ free_school_meals: 0
259
+ reduced_price_school_meals: 0
260
+ households:
261
+ household:
262
+ members: [person1, person2, person3, person4, person5]
263
+ state_fips: 39
264
+ output:
265
+ oh_income_tax: 3_015
@@ -0,0 +1,17 @@
1
+ - name: Total income greater than alimony
2
+ period: 2024
3
+ input:
4
+ pr_gross_income: 20_000
5
+ alimony_expense: 5_000
6
+ state_code: PR
7
+ output:
8
+ pr_agi: 15_000
9
+
10
+ - name: Alimony greater than total income
11
+ period: 2024
12
+ input:
13
+ pr_gross_income: 5_000
14
+ alimony_expense: 10_000
15
+ state_code: PR
16
+ output:
17
+ pr_agi: 0
@@ -0,0 +1,17 @@
1
+ - name: Joint
2
+ period: 2024
3
+ input:
4
+ pr_agi: 20_000
5
+ filing_status: JOINT
6
+ state_code: PR
7
+ output:
8
+ pr_agi_person: 10_000
9
+
10
+ - name: Separate
11
+ period: 2024
12
+ input:
13
+ pr_agi: 20_000
14
+ filing_status: SEPARATE
15
+ state_code: PR
16
+ output:
17
+ pr_agi_person: 20_000
@@ -13,6 +13,10 @@ class oh_joint_filing_credit_qualifying_income(Variable):
13
13
  )
14
14
  defined_for = StateCode.OH
15
15
 
16
- adds = ["oh_agi_person"]
17
-
18
- subtracts = ["oh_joint_filing_credit_agi_subtractions"]
16
+ def formula(person, period, parameters):
17
+ agi = person("oh_agi_person", period)
18
+ # Prevent negative subtractions from acting as additions
19
+ subtractions = max_(
20
+ 0, person("oh_joint_filing_credit_agi_subtractions", period)
21
+ )
22
+ return agi - subtractions
@@ -8,4 +8,14 @@ class pr_agi(Variable):
8
8
  unit = USD
9
9
  definition_period = YEAR
10
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/"
11
+ reference = (
12
+ "https://hacienda.pr.gov/sites/default/files/individuals_2024_rev._jul_12_24_9-30-24_informative.pdf#page=2",
13
+ "https://law.justia.com/codes/puerto-rico/title-thirteen/subtitle-17/part-ii/chapter-1005/subchapter-a/30103/",
14
+ )
15
+
16
+ # Discrepancy: legal code defines Puerto Rico AGI as gross income minus deductions and exemptions, among other items
17
+ def formula(tax_unit, period, parameters):
18
+ # person = tax_unit.members
19
+ total_income = add(tax_unit, period, ["pr_gross_income"])
20
+ alimony_paid = add(tax_unit, period, ["alimony_expense"])
21
+ return max_(0, total_income - alimony_paid)
@@ -8,4 +8,14 @@ class pr_agi_person(Variable):
8
8
  unit = USD
9
9
  definition_period = YEAR
10
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/"
11
+ reference = (
12
+ "https://hacienda.pr.gov/sites/default/files/individuals_2024_rev._jul_12_24_9-30-24_informative.pdf#page=2",
13
+ "https://law.justia.com/codes/puerto-rico/title-thirteen/subtitle-17/part-ii/chapter-1005/subchapter-a/30103/",
14
+ )
15
+
16
+ def formula(person, period, parameters):
17
+ filing_status = person.tax_unit("filing_status", period)
18
+ filing_statuses = filing_status.possible_values
19
+ agi_taxunit = person.tax_unit("pr_agi", period)
20
+ frac = where(filing_status == filing_statuses.JOINT, 0.5, 1.0)
21
+ return agi_taxunit * frac
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: policyengine-us
3
- Version: 1.446.0
3
+ Version: 1.447.0
4
4
  Summary: Add your description here.
5
5
  Author-email: PolicyEngine <hello@policyengine.org>
6
6
  License-File: LICENSE
@@ -5038,7 +5038,7 @@ policyengine_us/tests/policy/baseline/gov/states/ny/tax/income/taxable_income/de
5038
5038
  policyengine_us/tests/policy/baseline/gov/states/ny/tax/income/taxable_income/deductions/itemized/ny_itemized_deductions_reduction_based_on_charitable_deduction.yaml,sha256=1uzaus-lN19vtzMfTWANUuajpsp32F498fNIomh8c1A,1115
5039
5039
  policyengine_us/tests/policy/baseline/gov/states/ny/tax/income/taxable_income/deductions/itemized/ny_itemized_deductions_reduction_based_on_charitable_deduction_applies.yaml,sha256=bVrcl4Ol2QiDmbCShC_CAcWEhxGPef_pB5-dpZAmIkI,440
5040
5040
  policyengine_us/tests/policy/baseline/gov/states/ny/tax/income/taxable_income/deductions/itemized/ny_itemizes.yaml,sha256=YmmMVqSYoSIAe8cyA2FZ34M3ysZ8GTyKn_delt9YuRs,749
5041
- policyengine_us/tests/policy/baseline/gov/states/oh/tax/income/integration.yaml,sha256=YmY4_8L6eOLZYuEwTpGAVnQkYVRjCzvBxdb3grKFv7c,5245
5041
+ policyengine_us/tests/policy/baseline/gov/states/oh/tax/income/integration.yaml,sha256=Jf3Af_B8v1LOB6pb6KwFAL-bzCzqaN2sB8FIn2p9XVc,7439
5042
5042
  policyengine_us/tests/policy/baseline/gov/states/oh/tax/income/oh_income_tax_before_non_refundable_credits.yaml,sha256=U-UhhYcKc2B93NIvgLUJAUj7fgtc56WU1dl3dSFi5FM,622
5043
5043
  policyengine_us/tests/policy/baseline/gov/states/oh/tax/income/oh_income_tax_before_refundable_credits.yaml,sha256=Ypv2xQF3bdw4qekYQPh1CarA2XgdIT7VssfKtAwPen8,499
5044
5044
  policyengine_us/tests/policy/baseline/gov/states/oh/tax/income/oh_taxable_income.yaml,sha256=qwA5S8vkIJ7DE3GpAdqpa8si40ch4Ykvr3BG2qQ1kiU,362
@@ -5052,6 +5052,7 @@ policyengine_us/tests/policy/baseline/gov/states/oh/tax/income/credits/oh_senior
5052
5052
  policyengine_us/tests/policy/baseline/gov/states/oh/tax/income/credits/joint_filing_credit/integration.yaml,sha256=Xp2F-waC7M6vWRDQz2SrHS3r9-XNQx6nINHECeDlzu0,1269
5053
5053
  policyengine_us/tests/policy/baseline/gov/states/oh/tax/income/credits/joint_filing_credit/oh_joint_filing_credit.yaml,sha256=mJjEjy-e1-Kba5dlY6CYG2WxFzpARJ-O21iCf7tU3Hk,893
5054
5054
  policyengine_us/tests/policy/baseline/gov/states/oh/tax/income/credits/joint_filing_credit/oh_joint_filing_credit_eligible.yaml,sha256=jorw3RIsx5OMfwQUW4dFfysIIdFtjyeQdhST7mesFIg,1577
5055
+ policyengine_us/tests/policy/baseline/gov/states/oh/tax/income/credits/joint_filing_credit/oh_joint_filing_credit_qualifying_income.yaml,sha256=yJipKsVjUe6n4Vj3ZGAvcUxee0KU43hZW1Nti-VuCok,755
5055
5056
  policyengine_us/tests/policy/baseline/gov/states/oh/tax/income/credits/joint_filing_credit/oh_tax_before_joint_filing_credit.yaml,sha256=-2ADQdxFICpAxzcI9MS21tEcNfpBInG2VU2V9LHfmiU,417
5056
5057
  policyengine_us/tests/policy/baseline/gov/states/oh/tax/income/credits/lump_sum_distribution/oh_lump_sum_distribution_credit_eligible.yaml,sha256=27_K0CF_Zg_e6UuA4FaKa3AW937w9PhRlMd9vXmps-E,984
5057
5058
  policyengine_us/tests/policy/baseline/gov/states/oh/tax/income/credits/lump_sum_distribution/oh_lump_sum_distribution_credit_eligible_person.yaml,sha256=KKJ6PddK-nEjLRuUG6w80H-Op70y4k6-MuiAG27U-uo,965
@@ -5377,6 +5378,8 @@ policyengine_us/tests/policy/baseline/gov/states/wv/tax/income/subtractions/seni
5377
5378
  policyengine_us/tests/policy/baseline/gov/states/wv/tax/income/subtractions/social_security/wv_social_security_benefits_subtraction_eligible.yaml,sha256=14LNSRJcEUKcNrs0TeQbBbDIyo_oEjl796L89IRRrtY,2401
5378
5379
  policyengine_us/tests/policy/baseline/gov/states/wv/tax/income/subtractions/social_security/wv_social_security_benefits_subtraction_person.yaml,sha256=FYlFFRNZkMEs3-BBc9aoLKqjQE1vYQYMrAw9w3OyvYA,7445
5379
5380
  policyengine_us/tests/policy/baseline/gov/tax/income/integration.yaml,sha256=1kwIJmcmqG6X5kZjCga-hfsclylJB0fWVXSdh08OZHM,706
5381
+ policyengine_us/tests/policy/baseline/gov/territories/pr/tax/income/pr_agi.yaml,sha256=3KYYppk94c0n1eGMagYYPodWYO_hBkWb07HnPN3AsT0,333
5382
+ policyengine_us/tests/policy/baseline/gov/territories/pr/tax/income/pr_agi_person.yaml,sha256=f4cfqcVls_zfO8r-3uZRha1fxs9FkVkfOwR5cEXPxsI,280
5380
5383
  policyengine_us/tests/policy/baseline/gov/territories/pr/tax/income/pr_normal_tax.yaml,sha256=79H2cj93JYnaUZGdG9zNatvf1s3SHzgkxJU6Ujzhm7Q,536
5381
5384
  policyengine_us/tests/policy/baseline/gov/territories/pr/tax/income/pr_tax_before_credits.yaml,sha256=Zqy1wFK2JWRlYUq_dNssdDdDZKJcHC6BgsJqOdHSMic,415
5382
5385
  policyengine_us/tests/policy/baseline/gov/territories/pr/tax/income/credits/earned_income/integration.yaml,sha256=-9Q9J78TOZuPG8LLK5PqHM4dgi9PmT3KB08jgPNTHFU,1570
@@ -7899,7 +7902,7 @@ policyengine_us/variables/gov/states/oh/tax/income/credits/oh_senior_citizen_cre
7899
7902
  policyengine_us/variables/gov/states/oh/tax/income/credits/joint_filing_credit/oh_joint_filing_credit.py,sha256=ADWeZEnlifCYEuHEKT3IZUM7nZvtS3rEimV2JKXmWG0,1123
7900
7903
  policyengine_us/variables/gov/states/oh/tax/income/credits/joint_filing_credit/oh_joint_filing_credit_agi_subtractions.py,sha256=jZMLYcJbreviNEZOU0lF94MGI_c7K2DS8qCUJt_dTdQ,560
7901
7904
  policyengine_us/variables/gov/states/oh/tax/income/credits/joint_filing_credit/oh_joint_filing_credit_eligible.py,sha256=_sAOn5gsqUrjKMzIZh_k6QdbAlq_sv3EJZPTfBnEUTw,1287
7902
- policyengine_us/variables/gov/states/oh/tax/income/credits/joint_filing_credit/oh_joint_filing_credit_qualifying_income.py,sha256=rXGE9KJb84szXDH6OPzprGivaXXLYqAK4oMAtOCQqIY,575
7905
+ policyengine_us/variables/gov/states/oh/tax/income/credits/joint_filing_credit/oh_joint_filing_credit_qualifying_income.py,sha256=ZAdnJMCWR8aNs5lT0cRSU3_be8ZokAH8HJNPdQQhU2M,787
7903
7906
  policyengine_us/variables/gov/states/oh/tax/income/credits/joint_filing_credit/oh_partial_non_refundable_credits.py,sha256=emj1tLhQpq0Ng86OkMLy-n1TOzVzC7gBZHSURocayXY,669
7904
7907
  policyengine_us/variables/gov/states/oh/tax/income/credits/joint_filing_credit/oh_tax_before_joint_filing_credit.py,sha256=Lox0V3FSFracI4VXCHgRJaJwsctQ2HGXNLS-hj_k0G0,869
7905
7908
  policyengine_us/variables/gov/states/oh/tax/income/credits/lump_sum_distribution/oh_lump_sum_distribution_credit.py,sha256=N6-bvCuBvaI0HIeuB8kN1uKNa_avEW1mr_o-jxO-2Fg,414
@@ -8329,8 +8332,8 @@ policyengine_us/variables/gov/states/wv/tax/income/subtractions/social_security/
8329
8332
  policyengine_us/variables/gov/states/wv/tax/income/subtractions/social_security/wv_social_security_benefits_subtraction_eligible.py,sha256=LXBlZQyL9U8pozDaKQ32vBhfijNjhezsobwPxN3aLPc,1272
8330
8333
  policyengine_us/variables/gov/states/wv/tax/income/subtractions/social_security/wv_social_security_benefits_subtraction_person.py,sha256=tqjqCyI36lbExGp0vjhMd6wEB0iMwj_p1MaqV-cBJUI,1952
8331
8334
  policyengine_us/variables/gov/territories/pr/pr_is_tax_unit_dependent.py,sha256=gRsYnnDuDbrM-9CIUWFvAsHEj5sK5_HA7GJgOdcQTWM,1493
8332
- policyengine_us/variables/gov/territories/pr/tax/income/pr_agi.py,sha256=yqLyP6w4mvABXqLIKECZ4lHI9OetLpgqN-0hbvYl51s,360
8333
- policyengine_us/variables/gov/territories/pr/tax/income/pr_agi_person.py,sha256=gveEdwFLkTFd_76v_mHGK47tXrozNwtoNTS4bNif_h0,379
8335
+ policyengine_us/variables/gov/territories/pr/tax/income/pr_agi.py,sha256=rLZX8fhZKTsEHZSpHRMho5j9KFsENxUcfRbIr7BP6EQ,884
8336
+ policyengine_us/variables/gov/territories/pr/tax/income/pr_agi_person.py,sha256=6tiozIFG7zmMqgfuHTZcyVUkDN2AJOGNdFN5Y8lXdbo,842
8334
8337
  policyengine_us/variables/gov/territories/pr/tax/income/pr_gross_income.py,sha256=P2Mn2tUhrnP2LsIx4P0OFz67oo6t9NKZKpKCzqb1RLc,399
8335
8338
  policyengine_us/variables/gov/territories/pr/tax/income/pr_gross_income_person.py,sha256=SFZtLDY2V-a1qH8p_EvIvOYhUsH_cjhHJBWYnmBB3jU,431
8336
8339
  policyengine_us/variables/gov/territories/pr/tax/income/pr_income_tax.py,sha256=oSXFwy96SUJkhVN0MwaW_zpmrN-nL9BHtJKyGsuoRao,442
@@ -8940,8 +8943,8 @@ policyengine_us/variables/input/farm_income.py,sha256=BEKxYmHNNnWJAAvULl5qZJigy5
8940
8943
  policyengine_us/variables/input/geography.py,sha256=Ux0ueAf0rhZaflyEqz81UuXP3xKCKBDvoO3CrKhiQEc,5421
8941
8944
  policyengine_us/variables/input/self_employment_income.py,sha256=PwsGz8R4lRikKWUYOhsC0qosNNLXq4f5SQmfw4S3mk8,511
8942
8945
  policyengine_us/variables/input/self_employment_income_before_lsr.py,sha256=E8fcX9Nlyqz8dziHhQv_euutdmoIwFMMWePUwbbwv_w,379
8943
- policyengine_us-1.446.0.dist-info/METADATA,sha256=pXdmPynYPJookA7sM32kN3hzxUFOahXClK3c9mhpkdQ,1649
8944
- policyengine_us-1.446.0.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
8945
- policyengine_us-1.446.0.dist-info/entry_points.txt,sha256=MLaqNyNTbReALyKNkde85VkuFFpdPWAcy8VRG1mjczc,57
8946
- policyengine_us-1.446.0.dist-info/licenses/LICENSE,sha256=2N5ReRelkdqkR9a-KP-y-shmcD5P62XoYiG-miLTAzo,34519
8947
- policyengine_us-1.446.0.dist-info/RECORD,,
8946
+ policyengine_us-1.447.0.dist-info/METADATA,sha256=uxT9qqgfKOo7UsHelvrgbThb-aYoJU9RNMtV9T7j1kE,1649
8947
+ policyengine_us-1.447.0.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
8948
+ policyengine_us-1.447.0.dist-info/entry_points.txt,sha256=MLaqNyNTbReALyKNkde85VkuFFpdPWAcy8VRG1mjczc,57
8949
+ policyengine_us-1.447.0.dist-info/licenses/LICENSE,sha256=2N5ReRelkdqkR9a-KP-y-shmcD5P62XoYiG-miLTAzo,34519
8950
+ policyengine_us-1.447.0.dist-info/RECORD,,