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

@@ -0,0 +1,7 @@
1
+ description: Prevent overlap between regular and ARPA CTC phase-outs by subtracting ARPA phase-out amount from regular phase-out calculation.
2
+ values:
3
+ 0000-01-01: false
4
+ metadata:
5
+ unit: bool
6
+ period: year
7
+ label: Avoid CTC phase-out overlap
@@ -29,7 +29,18 @@ def create_ctc_per_child_phase_out() -> Reform:
29
29
  excess = max_(0, income - phase_out_threshold)
30
30
  increments = np.ceil(excess / p.increment)
31
31
  reduction_amount = p.amount * qualifying_children
32
- return increments * reduction_amount
32
+ base_reduction = increments * reduction_amount
33
+
34
+ # Option to avoid overlap between regular and ARPA phase-outs
35
+ p_contrib = parameters(period).gov.contrib.ctc.per_child_phase_out
36
+ if p_contrib.avoid_overlap:
37
+ # Subtract ARPA phase-out to prevent double-counting
38
+ arpa_reduction = tax_unit(
39
+ "ctc_arpa_uncapped_phase_out", period
40
+ )
41
+ return max_(0, base_reduction - arpa_reduction)
42
+ else:
43
+ return base_reduction
33
44
 
34
45
  class ctc_arpa_uncapped_phase_out(Variable):
35
46
  value_type = float
@@ -258,8 +258,8 @@
258
258
 
259
259
  - name: Joint filer with 3 kids, 250k income
260
260
  period: 2025
261
- reforms: [policyengine_us.reforms.ctc.ctc_per_child_phase_in.ctc_per_child_phase_in,
262
- policyengine_us.reforms.ctc.ctc_minimum_refundable_amount.ctc_minimum_refundable_amount,
261
+ reforms: [policyengine_us.reforms.ctc.ctc_per_child_phase_in.ctc_per_child_phase_in,
262
+ policyengine_us.reforms.ctc.ctc_minimum_refundable_amount.ctc_minimum_refundable_amount,
263
263
  policyengine_us.reforms.ctc.ctc_per_child_phase_out.ctc_per_child_phase_out]
264
264
  input:
265
265
  gov.contrib.ctc.per_child_phase_out.in_effect: true
@@ -286,6 +286,7 @@
286
286
  gov.irs.credits.ctc.phase_out.threshold.SEPARATE: 100_000
287
287
  gov.irs.credits.ctc.phase_out.arpa.amount: 25
288
288
  gov.irs.credits.ctc.phase_out.amount: 25
289
+ gov.contrib.ctc.per_child_phase_out.avoid_overlap: false
289
290
  people:
290
291
  person1:
291
292
  age: 40
@@ -308,3 +309,205 @@
308
309
  output:
309
310
  refundable_ctc: 2_850
310
311
  non_refundable_ctc: 0
312
+
313
+ - name: Single filer, 1 child, 120k income, avoid_overlap enabled
314
+ period: 2025
315
+ reforms: [policyengine_us.reforms.ctc.ctc_per_child_phase_in.ctc_per_child_phase_in,
316
+ policyengine_us.reforms.ctc.ctc_minimum_refundable_amount.ctc_minimum_refundable_amount,
317
+ policyengine_us.reforms.ctc.ctc_per_child_phase_out.ctc_per_child_phase_out]
318
+ input:
319
+ gov.contrib.ctc.per_child_phase_out.in_effect: true
320
+ gov.contrib.ctc.per_child_phase_in.in_effect: true
321
+ gov.contrib.ctc.minimum_refundable.in_effect: true
322
+ gov.contrib.ctc.minimum_refundable.amount[0].amount: 2_400
323
+ gov.contrib.ctc.minimum_refundable.amount[1].amount: 2_400
324
+ gov.irs.credits.ctc.refundable.individual_max: 4_800
325
+ gov.irs.credits.ctc.refundable.phase_in.threshold: 0
326
+ gov.irs.credits.ctc.refundable.phase_in.rate: 0.2
327
+ gov.irs.credits.ctc.amount.base[0].amount: 2_200
328
+ gov.irs.credits.ctc.amount.arpa[0].amount: 4_800
329
+ gov.irs.credits.ctc.amount.arpa[1].amount: 4_800
330
+ gov.irs.credits.ctc.phase_out.arpa.in_effect: true
331
+ gov.irs.credits.ctc.phase_out.arpa.threshold.JOINT: 35_000
332
+ gov.irs.credits.ctc.phase_out.arpa.threshold.SINGLE: 25_000
333
+ gov.irs.credits.ctc.phase_out.arpa.threshold.HEAD_OF_HOUSEHOLD: 25_000
334
+ gov.irs.credits.ctc.phase_out.arpa.threshold.SURVIVING_SPOUSE: 25_000
335
+ gov.irs.credits.ctc.phase_out.arpa.threshold.SEPARATE: 25_000
336
+ gov.irs.credits.ctc.phase_out.threshold.JOINT: 200_000
337
+ gov.irs.credits.ctc.phase_out.threshold.SINGLE: 100_000
338
+ gov.irs.credits.ctc.phase_out.threshold.HEAD_OF_HOUSEHOLD: 100_000
339
+ gov.irs.credits.ctc.phase_out.threshold.SURVIVING_SPOUSE: 100_000
340
+ gov.irs.credits.ctc.phase_out.threshold.SEPARATE: 100_000
341
+ gov.irs.credits.ctc.phase_out.arpa.amount: 25
342
+ gov.irs.credits.ctc.phase_out.amount: 25
343
+ gov.contrib.ctc.per_child_phase_out.avoid_overlap: true
344
+ people:
345
+ person1:
346
+ age: 40
347
+ employment_income: 120_000
348
+ person2:
349
+ age: 10
350
+ tax_units:
351
+ tax_unit:
352
+ members: [person1, person2]
353
+ households:
354
+ household:
355
+ members: [person1, person2]
356
+ state_code: TX
357
+ output:
358
+ ctc_arpa_uncapped_phase_out: 2_375
359
+ ctc_phase_out: 0
360
+ ctc: 2_425
361
+ refundable_ctc: 2_425
362
+
363
+ - name: Single filer, 1 child, 120k income, avoid_overlap disabled
364
+ period: 2025
365
+ reforms: [policyengine_us.reforms.ctc.ctc_per_child_phase_in.ctc_per_child_phase_in,
366
+ policyengine_us.reforms.ctc.ctc_minimum_refundable_amount.ctc_minimum_refundable_amount,
367
+ policyengine_us.reforms.ctc.ctc_per_child_phase_out.ctc_per_child_phase_out]
368
+ input:
369
+ gov.contrib.ctc.per_child_phase_out.in_effect: true
370
+ gov.contrib.ctc.per_child_phase_in.in_effect: true
371
+ gov.contrib.ctc.minimum_refundable.in_effect: true
372
+ gov.contrib.ctc.minimum_refundable.amount[0].amount: 2_400
373
+ gov.contrib.ctc.minimum_refundable.amount[1].amount: 2_400
374
+ gov.irs.credits.ctc.refundable.individual_max: 4_800
375
+ gov.irs.credits.ctc.refundable.phase_in.threshold: 0
376
+ gov.irs.credits.ctc.refundable.phase_in.rate: 0.2
377
+ gov.irs.credits.ctc.amount.base[0].amount: 2_200
378
+ gov.irs.credits.ctc.amount.arpa[0].amount: 4_800
379
+ gov.irs.credits.ctc.amount.arpa[1].amount: 4_800
380
+ gov.irs.credits.ctc.phase_out.arpa.in_effect: true
381
+ gov.irs.credits.ctc.phase_out.arpa.threshold.JOINT: 35_000
382
+ gov.irs.credits.ctc.phase_out.arpa.threshold.SINGLE: 25_000
383
+ gov.irs.credits.ctc.phase_out.arpa.threshold.HEAD_OF_HOUSEHOLD: 25_000
384
+ gov.irs.credits.ctc.phase_out.arpa.threshold.SURVIVING_SPOUSE: 25_000
385
+ gov.irs.credits.ctc.phase_out.arpa.threshold.SEPARATE: 25_000
386
+ gov.irs.credits.ctc.phase_out.threshold.JOINT: 200_000
387
+ gov.irs.credits.ctc.phase_out.threshold.SINGLE: 100_000
388
+ gov.irs.credits.ctc.phase_out.threshold.HEAD_OF_HOUSEHOLD: 100_000
389
+ gov.irs.credits.ctc.phase_out.threshold.SURVIVING_SPOUSE: 100_000
390
+ gov.irs.credits.ctc.phase_out.threshold.SEPARATE: 100_000
391
+ gov.irs.credits.ctc.phase_out.arpa.amount: 25
392
+ gov.irs.credits.ctc.phase_out.amount: 25
393
+ gov.contrib.ctc.per_child_phase_out.avoid_overlap: false
394
+ people:
395
+ person1:
396
+ age: 40
397
+ employment_income: 120_000
398
+ person2:
399
+ age: 10
400
+ tax_units:
401
+ tax_unit:
402
+ members: [person1, person2]
403
+ households:
404
+ household:
405
+ members: [person1, person2]
406
+ state_code: TX
407
+ output:
408
+ ctc_arpa_uncapped_phase_out: 2_375
409
+ ctc_phase_out: 500
410
+ ctc: 1_925
411
+ refundable_ctc: 1_925
412
+
413
+ - name: Single filer, 1 child, 50k income, avoid_overlap enabled (only ARPA applies)
414
+ period: 2025
415
+ reforms: [policyengine_us.reforms.ctc.ctc_per_child_phase_in.ctc_per_child_phase_in,
416
+ policyengine_us.reforms.ctc.ctc_minimum_refundable_amount.ctc_minimum_refundable_amount,
417
+ policyengine_us.reforms.ctc.ctc_per_child_phase_out.ctc_per_child_phase_out]
418
+ input:
419
+ gov.contrib.ctc.per_child_phase_out.in_effect: true
420
+ gov.contrib.ctc.per_child_phase_in.in_effect: true
421
+ gov.contrib.ctc.minimum_refundable.in_effect: true
422
+ gov.contrib.ctc.minimum_refundable.amount[0].amount: 2_400
423
+ gov.contrib.ctc.minimum_refundable.amount[1].amount: 2_400
424
+ gov.irs.credits.ctc.refundable.individual_max: 4_800
425
+ gov.irs.credits.ctc.refundable.phase_in.threshold: 0
426
+ gov.irs.credits.ctc.refundable.phase_in.rate: 0.2
427
+ gov.irs.credits.ctc.amount.base[0].amount: 2_200
428
+ gov.irs.credits.ctc.amount.arpa[0].amount: 4_800
429
+ gov.irs.credits.ctc.amount.arpa[1].amount: 4_800
430
+ gov.irs.credits.ctc.phase_out.arpa.in_effect: true
431
+ gov.irs.credits.ctc.phase_out.arpa.threshold.JOINT: 35_000
432
+ gov.irs.credits.ctc.phase_out.arpa.threshold.SINGLE: 25_000
433
+ gov.irs.credits.ctc.phase_out.arpa.threshold.HEAD_OF_HOUSEHOLD: 25_000
434
+ gov.irs.credits.ctc.phase_out.arpa.threshold.SURVIVING_SPOUSE: 25_000
435
+ gov.irs.credits.ctc.phase_out.arpa.threshold.SEPARATE: 25_000
436
+ gov.irs.credits.ctc.phase_out.threshold.JOINT: 200_000
437
+ gov.irs.credits.ctc.phase_out.threshold.SINGLE: 100_000
438
+ gov.irs.credits.ctc.phase_out.threshold.HEAD_OF_HOUSEHOLD: 100_000
439
+ gov.irs.credits.ctc.phase_out.threshold.SURVIVING_SPOUSE: 100_000
440
+ gov.irs.credits.ctc.phase_out.threshold.SEPARATE: 100_000
441
+ gov.irs.credits.ctc.phase_out.arpa.amount: 25
442
+ gov.irs.credits.ctc.phase_out.amount: 25
443
+ gov.contrib.ctc.per_child_phase_out.avoid_overlap: true
444
+ people:
445
+ person1:
446
+ age: 40
447
+ employment_income: 50_000
448
+ person2:
449
+ age: 10
450
+ tax_units:
451
+ tax_unit:
452
+ members: [person1, person2]
453
+ households:
454
+ household:
455
+ members: [person1, person2]
456
+ state_code: TX
457
+ output:
458
+ ctc_arpa_uncapped_phase_out: 625
459
+ ctc_phase_out: 0
460
+ ctc: 4_175
461
+ refundable_ctc: 4_175
462
+
463
+ - name: HoH filer, 2 kids, 150k income, avoid_overlap enabled (in overlap zone)
464
+ period: 2025
465
+ reforms: [policyengine_us.reforms.ctc.ctc_per_child_phase_in.ctc_per_child_phase_in,
466
+ policyengine_us.reforms.ctc.ctc_minimum_refundable_amount.ctc_minimum_refundable_amount,
467
+ policyengine_us.reforms.ctc.ctc_per_child_phase_out.ctc_per_child_phase_out]
468
+ input:
469
+ gov.contrib.ctc.per_child_phase_out.in_effect: true
470
+ gov.contrib.ctc.per_child_phase_in.in_effect: true
471
+ gov.contrib.ctc.minimum_refundable.in_effect: true
472
+ gov.contrib.ctc.minimum_refundable.amount[0].amount: 2_400
473
+ gov.contrib.ctc.minimum_refundable.amount[1].amount: 2_400
474
+ gov.irs.credits.ctc.refundable.individual_max: 4_800
475
+ gov.irs.credits.ctc.refundable.phase_in.threshold: 0
476
+ gov.irs.credits.ctc.refundable.phase_in.rate: 0.2
477
+ gov.irs.credits.ctc.amount.base[0].amount: 2_200
478
+ gov.irs.credits.ctc.amount.arpa[0].amount: 4_800
479
+ gov.irs.credits.ctc.amount.arpa[1].amount: 4_800
480
+ gov.irs.credits.ctc.phase_out.arpa.in_effect: true
481
+ gov.irs.credits.ctc.phase_out.arpa.threshold.JOINT: 35_000
482
+ gov.irs.credits.ctc.phase_out.arpa.threshold.SINGLE: 25_000
483
+ gov.irs.credits.ctc.phase_out.arpa.threshold.HEAD_OF_HOUSEHOLD: 25_000
484
+ gov.irs.credits.ctc.phase_out.arpa.threshold.SURVIVING_SPOUSE: 25_000
485
+ gov.irs.credits.ctc.phase_out.arpa.threshold.SEPARATE: 25_000
486
+ gov.irs.credits.ctc.phase_out.threshold.JOINT: 200_000
487
+ gov.irs.credits.ctc.phase_out.threshold.SINGLE: 100_000
488
+ gov.irs.credits.ctc.phase_out.threshold.HEAD_OF_HOUSEHOLD: 100_000
489
+ gov.irs.credits.ctc.phase_out.threshold.SURVIVING_SPOUSE: 100_000
490
+ gov.irs.credits.ctc.phase_out.threshold.SEPARATE: 100_000
491
+ gov.irs.credits.ctc.phase_out.arpa.amount: 25
492
+ gov.irs.credits.ctc.phase_out.amount: 25
493
+ gov.contrib.ctc.per_child_phase_out.avoid_overlap: true
494
+ people:
495
+ person1:
496
+ age: 40
497
+ employment_income: 150_000
498
+ person2:
499
+ age: 10
500
+ person3:
501
+ age: 10
502
+ tax_units:
503
+ tax_unit:
504
+ members: [person1, person2, person3]
505
+ households:
506
+ household:
507
+ members: [person1, person2, person3]
508
+ state_code: TX
509
+ output:
510
+ ctc_arpa_uncapped_phase_out: 6_250
511
+ ctc_phase_out: 0
512
+ ctc: 5_850
513
+ refundable_ctc: 5_850
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: policyengine-us
3
- Version: 1.422.0
3
+ Version: 1.423.0
4
4
  Summary: Add your description here.
5
5
  Author-email: PolicyEngine <hello@policyengine.org>
6
6
  License-File: LICENSE
@@ -224,6 +224,7 @@ policyengine_us/parameters/gov/contrib/ctc/minimum_refundable/in_effect.yaml,sha
224
224
  policyengine_us/parameters/gov/contrib/ctc/oldest_child_supplement/amount.yaml,sha256=-AtkjP9B6crQ614NPcKC1pENjFG2VAp7sapWA2wj9Fk,213
225
225
  policyengine_us/parameters/gov/contrib/ctc/oldest_child_supplement/in_effect.yaml,sha256=pEG7lrB40aoTw8sASIk_FBjdyH8GR0Dke6KsnPZWaFI,228
226
226
  policyengine_us/parameters/gov/contrib/ctc/per_child_phase_in/in_effect.yaml,sha256=r-KcWaveg451v-uPGqQex3rubXeXU5EFUMsF_4k7Au8,211
227
+ policyengine_us/parameters/gov/contrib/ctc/per_child_phase_out/avoid_overlap.yaml,sha256=D2OG8a0SOjvDO2ZPVZfjHG6cJmf3NoxH8jHXo0yu4ys,245
227
228
  policyengine_us/parameters/gov/contrib/ctc/per_child_phase_out/in_effect.yaml,sha256=iP6h0bnOU6wZCv86PPXB97TncyvqgWUV2yanR3JRgRU,213
228
229
  policyengine_us/parameters/gov/contrib/dc_kccatc/README.md,sha256=T7HWK3KBedbUs698XSGQGObR5KrOmdavdMzx6GyG2MU,76
229
230
  policyengine_us/parameters/gov/contrib/dc_kccatc/active.yaml,sha256=pqkV9omZweK_C22ZZ570uQxoiNK932yPatX-Y6M_wX8,181
@@ -3317,7 +3318,7 @@ policyengine_us/reforms/ctc/ctc_additional_bracket.py,sha256=KNmEB_OLwpLbvaPo4w0
3317
3318
  policyengine_us/reforms/ctc/ctc_minimum_refundable_amount.py,sha256=skiy8zgkddt5UXJ-__LNHAlsT0Qj9pHidBhS7_8Y7W8,5168
3318
3319
  policyengine_us/reforms/ctc/ctc_older_child_supplement.py,sha256=eGkehEr_26CYSFo3K4gZ2vJYR_8wDX4r776DIMEaaik,1714
3319
3320
  policyengine_us/reforms/ctc/ctc_per_child_phase_in.py,sha256=9URwoFEFvP7W-N_rmEG9_N1LTUEEvOS_jX7z8qT6PAQ,1765
3320
- policyengine_us/reforms/ctc/ctc_per_child_phase_out.py,sha256=6Z55YKtB5K_Wl21O_6HpohPEp4nJ0PUCAtkt_T2nYY8,3363
3321
+ policyengine_us/reforms/ctc/ctc_per_child_phase_out.py,sha256=F2haPX2UbSjoemY4tXAN3Lfyp7Qq49R_lijO2wtKH4E,3875
3321
3322
  policyengine_us/reforms/deductions/salt/__init__.py,sha256=wbfISQikAqCdy0MnLC-oZKmieRksm64MKHnNFbW3Ldw,114
3322
3323
  policyengine_us/reforms/deductions/salt/limit_salt_deduction_to_property_taxes.py,sha256=F3KrYmOeR0JdkSxj7iClIdkagpHDcUpGnYLFCIjd7hw,1372
3323
3324
  policyengine_us/reforms/eitc/__init__.py,sha256=bHbMSYp45mGa_JeBgHxDeyBh2_cGoc74SGKZ_8NKCCc,100
@@ -5488,7 +5489,7 @@ policyengine_us/tests/policy/contrib/ctc/ctc_minimum_refundable_amount.yaml,sha2
5488
5489
  policyengine_us/tests/policy/contrib/ctc/ctc_older_child_supplement.yaml,sha256=7P67DlafOtTxAcpH2ossYPDInWyz6DJayNf_0Ed7rcQ,2059
5489
5490
  policyengine_us/tests/policy/contrib/ctc/ctc_per_child_phase_in.yaml,sha256=uCAlu5Gj4iww2hCWbsqFst7zcT6UvM9_D9cKQyRc5QE,4754
5490
5491
  policyengine_us/tests/policy/contrib/ctc/ctc_per_child_phase_out.yaml,sha256=H5k9TyIge7VeZRGxIXVTOQPV5SpqAuX509iV-SXLBI4,3829
5491
- policyengine_us/tests/policy/contrib/ctc/integration.yaml,sha256=AXSMGiunYvGYxnz8DWAF90w_2dytjOReofBOD51a7_g,13300
5492
+ policyengine_us/tests/policy/contrib/ctc/integration.yaml,sha256=Xtw04Z20RlKI4xNrnMx2eXX5Ni0Bj6vEdZ9iGApp71c,22338
5492
5493
  policyengine_us/tests/policy/contrib/deductions/salt/limit_salt_deduction_to_property_taxes.yaml,sha256=hm9EmieOGGkIMfWgcNeKegLgAz9QQiGAeZKTlmxpJgU,1453
5493
5494
  policyengine_us/tests/policy/contrib/eitc/halve_joint_eitc_phase_out_rate.yaml,sha256=PxlvKGjORZl3BldCdXJMCxTuQ4mcdwPXYWsuSSB9fqw,1605
5494
5495
  policyengine_us/tests/policy/contrib/federal/abolish_federal_income_tax.yaml,sha256=mz696NDcL4oiTfj4jCg-PLKDE5p3-nsdAaIUglkz9rs,1600
@@ -8785,8 +8786,8 @@ policyengine_us/variables/input/farm_income.py,sha256=BEKxYmHNNnWJAAvULl5qZJigy5
8785
8786
  policyengine_us/variables/input/geography.py,sha256=Ux0ueAf0rhZaflyEqz81UuXP3xKCKBDvoO3CrKhiQEc,5421
8786
8787
  policyengine_us/variables/input/self_employment_income.py,sha256=PwsGz8R4lRikKWUYOhsC0qosNNLXq4f5SQmfw4S3mk8,511
8787
8788
  policyengine_us/variables/input/self_employment_income_before_lsr.py,sha256=E8fcX9Nlyqz8dziHhQv_euutdmoIwFMMWePUwbbwv_w,379
8788
- policyengine_us-1.422.0.dist-info/METADATA,sha256=m7Fq3C7Khodo4Cec4lI5eW0xH4OVaP3tkhsZcNMDVEg,1649
8789
- policyengine_us-1.422.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
8790
- policyengine_us-1.422.0.dist-info/entry_points.txt,sha256=MLaqNyNTbReALyKNkde85VkuFFpdPWAcy8VRG1mjczc,57
8791
- policyengine_us-1.422.0.dist-info/licenses/LICENSE,sha256=2N5ReRelkdqkR9a-KP-y-shmcD5P62XoYiG-miLTAzo,34519
8792
- policyengine_us-1.422.0.dist-info/RECORD,,
8789
+ policyengine_us-1.423.0.dist-info/METADATA,sha256=BdLGy9CtS_jq_YJSmsRQDj_td4qtE76n62qeuT8Zvpk,1649
8790
+ policyengine_us-1.423.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
8791
+ policyengine_us-1.423.0.dist-info/entry_points.txt,sha256=MLaqNyNTbReALyKNkde85VkuFFpdPWAcy8VRG1mjczc,57
8792
+ policyengine_us-1.423.0.dist-info/licenses/LICENSE,sha256=2N5ReRelkdqkR9a-KP-y-shmcD5P62XoYiG-miLTAzo,34519
8793
+ policyengine_us-1.423.0.dist-info/RECORD,,