diff --git a/changelog_entry.yaml b/changelog_entry.yaml index e69de29bb2d..05fa6eac906 100644 --- a/changelog_entry.yaml +++ b/changelog_entry.yaml @@ -0,0 +1,4 @@ +- bump: minor + changes: + added: + - Chapter 7 bankruptcy means test. diff --git a/policyengine_us/parameters/gov/bankruptcy/README.md b/policyengine_us/parameters/gov/bankruptcy/README.md new file mode 100644 index 00000000000..14c4bb278e7 --- /dev/null +++ b/policyengine_us/parameters/gov/bankruptcy/README.md @@ -0,0 +1 @@ +# Chapter 7 Bankruptcy Means Test diff --git a/policyengine_us/parameters/gov/bankruptcy/expenses/dependent_expense.yaml b/policyengine_us/parameters/gov/bankruptcy/expenses/dependent_expense.yaml new file mode 100644 index 00000000000..a200365f80a --- /dev/null +++ b/policyengine_us/parameters/gov/bankruptcy/expenses/dependent_expense.yaml @@ -0,0 +1,13 @@ +description: The IRS limits dependent education expenses to this amount for each child under the chapter 7 bankruptcy means test. + +values: + 2024-01-01: 189.58 + +metadata: + unit: currency-USD + period: month + label: Chapter 7 Bankruptcy dependent education expense limit + reference: + # The number $189.58 only appears in line 28 of the form. + - title: Official Form 122A-2 Chapter 7 Means Test Calculation + href: https://www.cacb.uscourts.gov/sites/cacb/files/documents/forms/122A2.pdf#page=6 diff --git a/policyengine_us/parameters/gov/bankruptcy/local_standards/housing_and_utilities/insurance_and_operating.yaml b/policyengine_us/parameters/gov/bankruptcy/local_standards/housing_and_utilities/insurance_and_operating.yaml new file mode 100644 index 00000000000..15fde89332b --- /dev/null +++ b/policyengine_us/parameters/gov/bankruptcy/local_standards/housing_and_utilities/insurance_and_operating.yaml @@ -0,0 +1,575 @@ +description: The IRS limits insurance and operating expenses to this amount, based on household size and state code under the chapter 7 bankruptcy means test. + + +AL: + 1: + 2024-01-01: 594 + 2: + 2024-01-01: 698 + 3: + 2024-01-01: 736 + 4: + 2024-01-01: 820 + 5: + 2024-01-01: 834 +AK: + 1: + 2024-01-01: 705 + 2: + 2024-01-01: 828 + 3: + 2024-01-01: 872 + 4: + 2024-01-01: 973 + 5: + 2024-01-01: 988 +AZ: + 1: + 2024-01-01: 547 + 2: + 2024-01-01: 642 + 3: + 2024-01-01: 676 + 4: + 2024-01-01: 754 + 5: + 2024-01-01: 766 +AR: + 1: + 2024-01-01: 563 + 2: + 2024-01-01: 661 + 3: + 2024-01-01: 696 + 4: + 2024-01-01: 776 + 5: + 2024-01-01: 789 +CA: + 1: + 2024-01-01: 579 + 2: + 2024-01-01: 680 + 3: + 2024-01-01: 716 + 4: + 2024-01-01: 799 + 5: + 2024-01-01: 812 +CO: + 1: + 2024-01-01: 560 + 2: + 2024-01-01: 658 + 3: + 2024-01-01: 693 + 4: + 2024-01-01: 773 + 5: + 2024-01-01: 785 +CT: + 1: + 2024-01-01: 627 + 2: + 2024-01-01: 736 + 3: + 2024-01-01: 775 + 4: + 2024-01-01: 864 + 5: + 2024-01-01: 878 +DE: + 1: + 2024-01-01: 586 + 2: + 2024-01-01: 688 + 3: + 2024-01-01: 725 + 4: + 2024-01-01: 809 + 5: + 2024-01-01: 822 +DC: + 1: + 2024-01-01: 638 + 2: + 2024-01-01: 749 + 3: + 2024-01-01: 789 + 4: + 2024-01-01: 880 + 5: + 2024-01-01: 894 +FL: + 1: + 2024-01-01: 549 + 2: + 2024-01-01: 645 + 3: + 2024-01-01: 680 + 4: + 2024-01-01: 758 + 5: + 2024-01-01: 770 +GA: + 1: + 2024-01-01: 578 + 2: + 2024-01-01: 679 + 3: + 2024-01-01: 716 + 4: + 2024-01-01: 798 + 5: + 2024-01-01: 811 +HI: + 1: + 2024-01-01: 602 + 2: + 2024-01-01: 706 + 3: + 2024-01-01: 744 + 4: + 2024-01-01: 830 + 5: + 2024-01-01: 843 +ID: + 1: + 2024-01-01: 522 + 2: + 2024-01-01: 614 + 3: + 2024-01-01: 646 + 4: + 2024-01-01: 721 + 5: + 2024-01-01: 732 +IL: + 1: + 2024-01-01: 578 + 2: + 2024-01-01: 678 + 3: + 2024-01-01: 715 + 4: + 2024-01-01: 797 + 5: + 2024-01-01: 810 +IN: + 1: + 2024-01-01: 581 + 2: + 2024-01-01: 683 + 3: + 2024-01-01: 719 + 4: + 2024-01-01: 802 + 5: + 2024-01-01: 815 +IA: + 1: + 2024-01-01: 582 + 2: + 2024-01-01: 684 + 3: + 2024-01-01: 720 + 4: + 2024-01-01: 803 + 5: + 2024-01-01: 816 +KS: + 1: + 2024-01-01: 588 + 2: + 2024-01-01: 690 + 3: + 2024-01-01: 727 + 4: + 2024-01-01: 811 + 5: + 2024-01-01: 824 +KY: + 1: + 2024-01-01: 562 + 2: + 2024-01-01: 660 + 3: + 2024-01-01: 696 + 4: + 2024-01-01: 776 + 5: + 2024-01-01: 788 +LA: + 1: + 2024-01-01: 555 + 2: + 2024-01-01: 652 + 3: + 2024-01-01: 687 + 4: + 2024-01-01: 766 + 5: + 2024-01-01: 779 +ME: + 1: + 2024-01-01: 563 + 2: + 2024-01-01: 661 + 3: + 2024-01-01: 696 + 4: + 2024-01-01: 776 + 5: + 2024-01-01: 789 +MD: + 1: + 2024-01-01: 593 + 2: + 2024-01-01: 697 + 3: + 2024-01-01: 734 + 4: + 2024-01-01: 819 + 5: + 2024-01-01: 832 +MA: + 1: + 2024-01-01: 636 + 2: + 2024-01-01: 747 + 3: + 2024-01-01: 787 + 4: + 2024-01-01: 878 + 5: + 2024-01-01: 892 +MI: + 1: + 2024-01-01: 571 + 2: + 2024-01-01: 671 + 3: + 2024-01-01: 707 + 4: + 2024-01-01: 789 + 5: + 2024-01-01: 801 +MN: + 1: + 2024-01-01: 580 + 2: + 2024-01-01: 681 + 3: + 2024-01-01: 717 + 4: + 2024-01-01: 800 + 5: + 2024-01-01: 813 +MS: + 1: + 2024-01-01: 577 + 2: + 2024-01-01: 678 + 3: + 2024-01-01: 714 + 4: + 2024-01-01: 797 + 5: + 2024-01-01: 809 +MO: + 1: + 2024-01-01: 575 + 2: + 2024-01-01: 675 + 3: + 2024-01-01: 711 + 4: + 2024-01-01: 793 + 5: + 2024-01-01: 806 +MT: + 1: + 2024-01-01: 551 + 2: + 2024-01-01: 647 + 3: + 2024-01-01: 682 + 4: + 2024-01-01: 760 + 5: + 2024-01-01: 773 +NE: + 1: + 2024-01-01: 592 + 2: + 2024-01-01: 695 + 3: + 2024-01-01: 732 + 4: + 2024-01-01: 816 + 5: + 2024-01-01: 830 +NV: + 1: + 2024-01-01: 547 + 2: + 2024-01-01: 643 + 3: + 2024-01-01: 677 + 4: + 2024-01-01: 756 + 5: + 2024-01-01: 768 +NH: + 1: + 2024-01-01: 596 + 2: + 2024-01-01: 700 + 3: + 2024-01-01: 738 + 4: + 2024-01-01: 823 + 5: + 2024-01-01: 836 +NJ: + 1: + 2024-01-01: 626 + 2: + 2024-01-01: 736 + 3: + 2024-01-01: 775 + 4: + 2024-01-01: 865 + 5: + 2024-01-01: 879 +NM: + 1: + 2024-01-01: 568 + 2: + 2024-01-01: 667 + 3: + 2024-01-01: 703 + 4: + 2024-01-01: 784 + 5: + 2024-01-01: 796 +NY: + 1: + 2024-01-01: 589 + 2: + 2024-01-01: 692 + 3: + 2024-01-01: 729 + 4: + 2024-01-01: 813 + 5: + 2024-01-01: 826 +NC: + 1: + 2024-01-01: 564 + 2: + 2024-01-01: 662 + 3: + 2024-01-01: 698 + 4: + 2024-01-01: 778 + 5: + 2024-01-01: 791 +ND: + 1: + 2024-01-01: 597 + 2: + 2024-01-01: 701 + 3: + 2024-01-01: 739 + 4: + 2024-01-01: 824 + 5: + 2024-01-01: 837 +OH: + 1: + 2024-01-01: 576 + 2: + 2024-01-01: 676 + 3: + 2024-01-01: 713 + 4: + 2024-01-01: 794 + 5: + 2024-01-01: 807 +OK: + 1: + 2024-01-01: 574 + 2: + 2024-01-01: 674 + 3: + 2024-01-01: 710 + 4: + 2024-01-01: 791 + 5: + 2024-01-01: 804 +OR: + 1: + 2024-01-01: 536 + 2: + 2024-01-01: 630 + 3: + 2024-01-01: 664 + 4: + 2024-01-01: 740 + 5: + 2024-01-01: 752 +PA: + 1: + 2024-01-01: 583 + 2: + 2024-01-01: 684 + 3: + 2024-01-01: 721 + 4: + 2024-01-01: 804 + 5: + 2024-01-01: 817 +RI: + 1: + 2024-01-01: 603 + 2: + 2024-01-01: 708 + 3: + 2024-01-01: 746 + 4: + 2024-01-01: 831 + 5: + 2024-01-01: 845 +SC: + 1: + 2024-01-01: 581 + 2: + 2024-01-01: 682 + 3: + 2024-01-01: 719 + 4: + 2024-01-01: 801 + 5: + 2024-01-01: 814 +SD: + 1: + 2024-01-01: 603 + 2: + 2024-01-01: 708 + 3: + 2024-01-01: 746 + 4: + 2024-01-01: 832 + 5: + 2024-01-01: 846 +TN: + 1: + 2024-01-01: 552 + 2: + 2024-01-01: 648 + 3: + 2024-01-01: 683 + 4: + 2024-01-01: 761 + 5: + 2024-01-01: 773 +TX: + 1: + 2024-01-01: 584 + 2: + 2024-01-01: 686 + 3: + 2024-01-01: 723 + 4: + 2024-01-01: 806 + 5: + 2024-01-01: 819 +UT: + 1: + 2024-01-01: 523 + 2: + 2024-01-01: 615 + 3: + 2024-01-01: 648 + 4: + 2024-01-01: 722 + 5: + 2024-01-01: 734 +VT: + 1: + 2024-01-01: 581 + 2: + 2024-01-01: 682 + 3: + 2024-01-01: 719 + 4: + 2024-01-01: 802 + 5: + 2024-01-01: 814 +VA: + 1: + 2024-01-01: 564 + 2: + 2024-01-01: 663 + 3: + 2024-01-01: 699 + 4: + 2024-01-01: 779 + 5: + 2024-01-01: 791 +WA: + 1: + 2024-01-01: 638 + 2: + 2024-01-01: 632 + 3: + 2024-01-01: 666 + 4: + 2024-01-01: 743 + 5: + 2024-01-01: 755 +WV: + 1: + 2024-01-01: 562 + 2: + 2024-01-01: 660 + 3: + 2024-01-01: 695 + 4: + 2024-01-01: 775 + 5: + 2024-01-01: 788 +WI: + 1: + 2024-01-01: 555 + 2: + 2024-01-01: 651 + 3: + 2024-01-01: 686 + 4: + 2024-01-01: 765 + 5: + 2024-01-01: 778 +WY: + 1: + 2024-01-01: 554 + 2: + 2024-01-01: 651 + 3: + 2024-01-01: 686 + 4: + 2024-01-01: 764 + 5: + 2024-01-01: 777 +metadata: + unit: currency-USD + period: month + label: Chapter 7 Bankruptcy insurance and operating expense limit + breakdown: + - state_code + - range(1, 6) + reference: + # We use average state level values while the amount can vary based on county + - title: Local standards -- Housing and Utilities and Transportation + href: https://www.justice.gov/ust/means-testing/20221101 diff --git a/policyengine_us/parameters/gov/bankruptcy/local_standards/housing_and_utilities/mortgage_or_rent.yaml b/policyengine_us/parameters/gov/bankruptcy/local_standards/housing_and_utilities/mortgage_or_rent.yaml new file mode 100644 index 00000000000..476e7566137 --- /dev/null +++ b/policyengine_us/parameters/gov/bankruptcy/local_standards/housing_and_utilities/mortgage_or_rent.yaml @@ -0,0 +1,574 @@ +description: The IRS limits mortgage or rent expenses to this amount, based on household size und state code under the chapter 7 bankruptcy means test. + +AL: + 1: + 2024-01-01: 677 + 2: + 2024-01-01: 796 + 3: + 2024-01-01: 838 + 4: + 2024-01-01: 935 + 5: + 2024-01-01: 950 +AK: + 1: + 2024-01-01: 1_049 + 2: + 2024-01-01: 1_232 + 3: + 2024-01-01: 1_298 + 4: + 2024-01-01: 1_448 + 5: + 2024-01-01: 1_471 +AZ: + 1: + 2024-01-01: 840 + 2: + 2024-01-01: 987 + 3: + 2024-01-01: 1_040 + 4: + 2024-01-01: 1_160 + 5: + 2024-01-01: 1_178 +AR: + 1: + 2024-01-01: 614 + 2: + 2024-01-01: 721 + 3: + 2024-01-01: 759 + 4: + 2024-01-01: 847 + 5: + 2024-01-01: 860 +CA: + 1: + 2024-01-01: 1_558 + 2: + 2024-01-01: 1_830 + 3: + 2024-01-01: 1_928 + 4: + 2024-01-01: 2_150 + 5: + 2024-01-01: 2_184 +CO: + 1: + 2024-01-01: 1_063 + 2: + 2024-01-01: 1_248 + 3: + 2024-01-01: 1_315 + 4: + 2024-01-01: 1_466 + 5: + 2024-01-01: 1_490 +CT: + 1: + 2024-01-01: 1_507 + 2: + 2024-01-01: 1_770 + 3: + 2024-01-01: 1_865 + 4: + 2024-01-01: 2_080 + 5: + 2024-01-01: 2_114 +DE: + 1: + 2024-01-01: 1_107 + 2: + 2024-01-01: 1_301 + 3: + 2024-01-01: 1_371 + 4: + 2024-01-01: 1_528 + 5: + 2024-01-01: 1_553 +DC: + 1: + 2024-01-01: 1_958 + 2: + 2024-01-01: 2_300 + 3: + 2024-01-01: 2_424 + 4: + 2024-01-01: 2_702 + 5: + 2024-01-01: 2_746 +FL: + 1: + 2024-01-01: 935 + 2: + 2024-01-01: 1_098 + 3: + 2024-01-01: 1_157 + 4: + 2024-01-01: 1_290 + 5: + 2024-01-01: 1_311 +GA: + 1: + 2024-01-01: 790 + 2: + 2024-01-01: 928 + 3: + 2024-01-01: 978 + 4: + 2024-01-01: 1_090 + 5: + 2024-01-01: 1_108 +HI: + 1: + 2024-01-01: 1_733 + 2: + 2024-01-01: 2_036 + 3: + 2024-01-01: 2_145 + 4: + 2024-01-01: 2_392 + 5: + 2024-01-01: 2_431 +ID: + 1: + 2024-01-01: 865 + 2: + 2024-01-01: 1_016 + 3: + 2024-01-01: 1_071 + 4: + 2024-01-01: 1_194 + 5: + 2024-01-01: 1_213 +IL: + 1: + 2024-01-01: 788 + 2: + 2024-01-01: 926 + 3: + 2024-01-01: 975 + 4: + 2024-01-01: 1_087 + 5: + 2024-01-01: 1_105 +IN: + 1: + 2024-01-01: 699 + 2: + 2024-01-01: 821 + 3: + 2024-01-01: 865 + 4: + 2024-01-01: 965 + 5: + 2024-01-01: 981 +IA: + 1: + 2024-01-01: 746 + 2: + 2024-01-01: 876 + 3: + 2024-01-01: 923 + 4: + 2024-01-01: 1_029 + 5: + 2024-01-01: 1_046 +KS: + 1: + 2024-01-01: 747 + 2: + 2024-01-01: 877 + 3: + 2024-01-01: 924 + 4: + 2024-01-01: 1_031 + 5: + 2024-01-01: 1_047 +KY: + 1: + 2024-01-01: 683 + 2: + 2024-01-01: 802 + 3: + 2024-01-01: 845 + 4: + 2024-01-01: 942 + 5: + 2024-01-01: 957 +LA: + 1: + 2024-01-01: 788 + 2: + 2024-01-01: 926 + 3: + 2024-01-01: 975 + 4: + 2024-01-01: 1_088 + 5: + 2024-01-01: 1_105 +ME: + 1: + 2024-01-01: 880 + 2: + 2024-01-01: 1_034 + 3: + 2024-01-01: 1_089 + 4: + 2024-01-01: 1_216 + 5: + 2024-01-01: 1_234 +MD: + 1: + 2024-01-01: 1_314 + 2: + 2024-01-01: 1_575 + 3: + 2024-01-01: 1_660 + 4: + 2024-01-01: 1_851 + 5: + 2024-01-01: 1_881 +MA: + 1: + 2024-01-01: 1_602 + 2: + 2024-01-01: 1_881 + 3: + 2024-01-01: 1_982 + 4: + 2024-01-01: 2_210 + 5: + 2024-01-01: 2_246 +MI: + 1: + 2024-01-01: 749 + 2: + 2024-01-01: 879 + 3: + 2024-01-01: 927 + 4: + 2024-01-01: 1_033 + 5: + 2024-01-01: 1_050 +MN: + 1: + 2024-01-01: 896 + 2: + 2024-01-01: 1_053 + 3: + 2024-01-01: 1_109 + 4: + 2024-01-01: 1_237 + 5: + 2024-01-01: 1_257 +MS: + 1: + 2024-01-01: 662 + 2: + 2024-01-01: 778 + 3: + 2024-01-01: 819 + 4: + 2024-01-01: 914 + 5: + 2024-01-01: 928 +MO: + 1: + 2024-01-01: 686 + 2: + 2024-01-01: 806 + 3: + 2024-01-01: 850 + 4: + 2024-01-01: 947 + 5: + 2024-01-01: 962 +MT: + 1: + 2024-01-01: 865 + 2: + 2024-01-01: 1_016 + 3: + 2024-01-01: 1_071 + 4: + 2024-01-01: 1_194 + 5: + 2024-01-01: 1_213 +NE: + 1: + 2024-01-01: 735 + 2: + 2024-01-01: 864 + 3: + 2024-01-01: 910 + 4: + 2024-01-01: 1_015 + 5: + 2024-01-01: 1_031 +NV: + 1: + 2024-01-01: 960 + 2: + 2024-01-01: 1_127 + 3: + 2024-01-01: 1_188 + 4: + 2024-01-01: 1_324 + 5: + 2024-01-01: 1_346 +NH: + 1: + 2024-01-01: 1_272 + 2: + 2024-01-01: 1_494 + 3: + 2024-01-01: 1_575 + 4: + 2024-01-01: 1_756 + 5: + 2024-01-01: 1_784 +NJ: + 1: + 2024-01-01: 1_801 + 2: + 2024-01-01: 2_115 + 3: + 2024-01-01: 2_229 + 4: + 2024-01-01: 2_485 + 5: + 2024-01-01: 2_525 +NM: + 1: + 2024-01-01: 762 + 2: + 2024-01-01: 895 + 3: + 2024-01-01: 943 + 4: + 2024-01-01: 1_051 + 5: + 2024-01-01: 1_068 +NY: + 1: + 2024-01-01: 1_157 + 2: + 2024-01-01: 1_359 + 3: + 2024-01-01: 1_432 + 4: + 2024-01-01: 1_596 + 5: + 2024-01-01: 1_622 +NC: + 1: + 2024-01-01: 829 + 2: + 2024-01-01: 973 + 3: + 2024-01-01: 1_026 + 4: + 2024-01-01: 1_144 + 5: + 2024-01-01: 1_162 +ND: + 1: + 2024-01-01: 782 + 2: + 2024-01-01: 918 + 3: + 2024-01-01: 968 + 4: + 2024-01-01: 1_079 + 5: + 2024-01-01: 1_096 +OH: + 1: + 2024-01-01: 797 + 2: + 2024-01-01: 936 + 3: + 2024-01-01: 986 + 4: + 2024-01-01: 1_099 + 5: + 2024-01-01: 1_117 +OK: + 1: + 2024-01-01: 699 + 2: + 2024-01-01: 821 + 3: + 2024-01-01: 866 + 4: + 2024-01-01: 965 + 5: + 2024-01-01: 981 +OR: + 1: + 2024-01-01: 1_045 + 2: + 2024-01-01: 1_227 + 3: + 2024-01-01: 1_293 + 4: + 2024-01-01: 1_442 + 5: + 2024-01-01: 1_465 +PA: + 1: + 2024-01-01: 888 + 2: + 2024-01-01: 1_043 + 3: + 2024-01-01: 1_099 + 4: + 2024-01-01: 1_225 + 5: + 2024-01-01: 1_245 +RI: + 1: + 2024-01-01: 1_506 + 2: + 2024-01-01: 1_769 + 3: + 2024-01-01: 1_864 + 4: + 2024-01-01: 2_079 + 5: + 2024-01-01: 2_113 +SC: + 1: + 2024-01-01: 758 + 2: + 2024-01-01: 890 + 3: + 2024-01-01: 938 + 4: + 2024-01-01: 1_046 + 5: + 2024-01-01: 1_063 +SD: + 1: + 2024-01-01: 749 + 2: + 2024-01-01: 879 + 3: + 2024-01-01: 926 + 4: + 2024-01-01: 1_033 + 5: + 2024-01-01: 1_050 +TN: + 1: + 2024-01-01: 730 + 2: + 2024-01-01: 857 + 3: + 2024-01-01: 903 + 4: + 2024-01-01: 1_007 + 5: + 2024-01-01: 1_024 +TX: + 1: + 2024-01-01: 854 + 2: + 2024-01-01: 1_003 + 3: + 2024-01-01: 1_057 + 4: + 2024-01-01: 1_178 + 5: + 2024-01-01: 1_197 +UT: + 1: + 2024-01-01: 997 + 2: + 2024-01-01: 1_171 + 3: + 2024-01-01: 1_234 + 4: + 2024-01-01: 1_376 + 5: + 2024-01-01: 1_398 +VT: + 1: + 2024-01-01: 1_109 + 2: + 2024-01-01: 1_302 + 3: + 2024-01-01: 1_372 + 4: + 2024-01-01: 1_530 + 5: + 2024-01-01: 1_555 +VA: + 1: + 2024-01-01: 1_026 + 2: + 2024-01-01: 1_205 + 3: + 2024-01-01: 1_270 + 4: + 2024-01-01: 1_416 + 5: + 2024-01-01: 1_439 +WA: + 1: + 2024-01-01: 1_138 + 2: + 2024-01-01: 1_337 + 3: + 2024-01-01: 1_408 + 4: + 2024-01-01: 1_570 + 5: + 2024-01-01: 1_596 +WV: + 1: + 2024-01-01: 614 + 2: + 2024-01-01: 721 + 3: + 2024-01-01: 760 + 4: + 2024-01-01: 847 + 5: + 2024-01-01: 861 +WI: + 1: + 2024-01-01: 920 + 2: + 2024-01-01: 1_081 + 3: + 2024-01-01: 1_139 + 4: + 2024-01-01: 1_270 + 5: + 2024-01-01: 1_290 +WY: + 1: + 2024-01-01: 1_044 + 2: + 2024-01-01: 1_227 + 3: + 2024-01-01: 1_293 + 4: + 2024-01-01: 1_441 + 5: + 2024-01-01: 1_465 +metadata: + unit: currency-USD + period: month + label: Chapter 7 Bankruptcy mortgage or rent expense limit + breakdown: + - state_code + - range(1, 6) + reference: + # We use average state level values while the amount can vary based on county + - title: Local standards -- Housing and Utilities and Transportation + href: https://www.justice.gov/ust/means-testing/20221101 diff --git a/policyengine_us/parameters/gov/bankruptcy/local_standards/vehicle_operation/ownership_costs.yaml b/policyengine_us/parameters/gov/bankruptcy/local_standards/vehicle_operation/ownership_costs.yaml new file mode 100644 index 00000000000..0133fe19de6 --- /dev/null +++ b/policyengine_us/parameters/gov/bankruptcy/local_standards/vehicle_operation/ownership_costs.yaml @@ -0,0 +1,16 @@ +description: The IRS limits the ownership costs to this amount, based on the number of owned vehicle, under the chapter 7 bankruptcy means test. + +1: + 2024-01-01: 619 +2: + 2024-01-01: 1_238 + +metadata: + unit: currency-USD + period: month + label: Chapter 7 Bankruptcy ownership costs limit + breakdown: + - list(range(1,3)) + reference: + - title: Local standards -- Transportation + href: https://www.irs.gov/businesses/small-businesses-self-employed/local-standards-transportation diff --git a/policyengine_us/parameters/gov/bankruptcy/local_standards/vehicle_operation/public_transportation.yaml b/policyengine_us/parameters/gov/bankruptcy/local_standards/vehicle_operation/public_transportation.yaml new file mode 100644 index 00000000000..ea2424a378d --- /dev/null +++ b/policyengine_us/parameters/gov/bankruptcy/local_standards/vehicle_operation/public_transportation.yaml @@ -0,0 +1,12 @@ +description: The IRS limits public transportation expenses to this amount under the chapter 7 bankruptcy means test. + +values: + 2024-01-01: 215 + +metadata: + unit: currency-USD + period: month + label: Chapter 7 Bankruptcy public transportation expense limit + reference: + - title: Local standards -- Transportation + href: https://www.irs.gov/businesses/small-businesses-self-employed/local-standards-transportation diff --git a/policyengine_us/parameters/gov/bankruptcy/local_standards/vehicle_operation/region_operating_costs/midwest.yaml b/policyengine_us/parameters/gov/bankruptcy/local_standards/vehicle_operation/region_operating_costs/midwest.yaml new file mode 100644 index 00000000000..0ef96af30c4 --- /dev/null +++ b/policyengine_us/parameters/gov/bankruptcy/local_standards/vehicle_operation/region_operating_costs/midwest.yaml @@ -0,0 +1,48 @@ +description: The IRS limits the midwestern region operating costs to this amount, based on the number of owned vehicle, under the Chapter 7 Bankruptcy means test. + +MIDWEST_DEFAULT: + 1: + 2024-01-01: 239 + 2: + 2024-01-01: 478 +CHICAGO: + 1: + 2024-01-01: 266 + 2: + 2024-01-01: 532 +CLEVELAND: + 1: + 2024-01-01: 239 + 2: + 2024-01-01: 478 +DETROIT: + 1: + 2024-01-01: 299 + 2: + 2024-01-01: 598 +MINNEAPOLIS_ST_PAUL: + 1: + 2024-01-01: 243 + 2: + 2024-01-01: 486 +ST_LOUIS: + 1: + 2024-01-01: 220 + 2: + 2024-01-01: 440 +NONE: + 1: + 2024-01-01: 0 + 2: + 2024-01-01: 0 + +metadata: + unit: currency-USD + period: month + label: Chapter 7 Bankruptcy midwestern region operating costs limit + breakdown: + - midwestern_county + - list(range(1,3)) + reference: + - title: Local standards -- Transportation + href: https://www.irs.gov/businesses/small-businesses-self-employed/local-standards-transportation diff --git a/policyengine_us/parameters/gov/bankruptcy/local_standards/vehicle_operation/region_operating_costs/northeast.yaml b/policyengine_us/parameters/gov/bankruptcy/local_standards/vehicle_operation/region_operating_costs/northeast.yaml new file mode 100644 index 00000000000..f9efc4dab5f --- /dev/null +++ b/policyengine_us/parameters/gov/bankruptcy/local_standards/vehicle_operation/region_operating_costs/northeast.yaml @@ -0,0 +1,38 @@ +description: The IRS limits the northeastern region operating costs to this amount, based on the number of owned vehicle, under the Chapter 7 Bankruptcy means test. + +NORTHEAST_DEFAULT: + 1: + 2024-01-01: 285 + 2: + 2024-01-01: 570 +BOSTON: + 1: + 2024-01-01: 310 + 2: + 2024-01-01: 620 +NEW_YORK: + 1: + 2024-01-01: 377 + 2: + 2024-01-01: 754 +PHILADELPHIA: + 1: + 2024-01-01: 307 + 2: + 2024-01-01: 614 +NONE: + 1: + 2024-01-01: 0 + 2: + 2024-01-01: 0 + +metadata: + unit: currency-USD + period: month + label: Chapter 7 Bankruptcy northeastern region operating costs limit + breakdown: + - northeastern_county + - list(range(1,3)) + reference: + - title: Local standards -- Transportation + href: https://www.irs.gov/businesses/small-businesses-self-employed/local-standards-transportation diff --git a/policyengine_us/parameters/gov/bankruptcy/local_standards/vehicle_operation/region_operating_costs/south.yaml b/policyengine_us/parameters/gov/bankruptcy/local_standards/vehicle_operation/region_operating_costs/south.yaml new file mode 100644 index 00000000000..d9e54931883 --- /dev/null +++ b/policyengine_us/parameters/gov/bankruptcy/local_standards/vehicle_operation/region_operating_costs/south.yaml @@ -0,0 +1,58 @@ +description: The IRS limits the southern region operating costs to this amount, based on the number of owned vehicle, under the Chapter 7 Bankruptcy means test. + +SOUTH_DEFAULT: + 1: + 2024-01-01: 260 + 2: + 2024-01-01: 520 +ATLANTA: + 1: + 2024-01-01: 304 + 2: + 2024-01-01: 608 +BALTIMORE: + 1: + 2024-01-01: 272 + 2: + 2024-01-01: 544 +DALLAS_FT_WORTH: + 1: + 2024-01-01: 292 + 2: + 2024-01-01: 584 +HOUSTON: + 1: + 2024-01-01: 332 + 2: + 2024-01-01: 664 +MIAMI: + 1: + 2024-01-01: 355 + 2: + 2024-01-01: 710 +TAMPA: + 1: + 2024-01-01: 305 + 2: + 2024-01-01: 610 +WASHINGTON_DC: + 1: + 2024-01-01: 301 + 2: + 2024-01-01: 602 +NONE: + 1: + 2024-01-01: 0 + 2: + 2024-01-01: 0 + +metadata: + unit: currency-USD + period: month + label: Chapter 7 Bankruptcy southern region operating costs limit + breakdown: + - southern_county + - list(range(1,3)) + reference: + - title: Local standards -- Transportation + href: https://www.irs.gov/businesses/small-businesses-self-employed/local-standards-transportation diff --git a/policyengine_us/parameters/gov/bankruptcy/local_standards/vehicle_operation/region_operating_costs/west.yaml b/policyengine_us/parameters/gov/bankruptcy/local_standards/vehicle_operation/region_operating_costs/west.yaml new file mode 100644 index 00000000000..ea8670f4116 --- /dev/null +++ b/policyengine_us/parameters/gov/bankruptcy/local_standards/vehicle_operation/region_operating_costs/west.yaml @@ -0,0 +1,63 @@ +description: The IRS limits the western region operating costs to this amount, based on the number of owned vehicle, under the Chapter 7 Bankruptcy means test. + +WEST_DEFAULT: + 1: + 2024-01-01: 273 + 2: + 2024-01-01: 546 +ANCHORAGE: + 1: + 2024-01-01: 200 + 2: + 2024-01-01: 400 +DENVER: + 1: + 2024-01-01: 321 + 2: + 2024-01-01: 642 +HONOLULU: + 1: + 2024-01-01: 254 + 2: + 2024-01-01: 508 +LOS_ANGELES: + 1: + 2024-01-01: 331 + 2: + 2024-01-01: 662 +PHOENIX: + 1: + 2024-01-01: 300 + 2: + 2024-01-01: 600 +SAN_DIEGO: + 1: + 2024-01-01: 310 + 2: + 2024-01-01: 620 +SAN_FRANCISCO: + 1: + 2024-01-01: 348 + 2: + 2024-01-01: 696 +SEATTLE: + 1: + 2024-01-01: 271 + 2: + 2024-01-01: 542 +NONE: + 1: + 2024-01-01: 0 + 2: + 2024-01-01: 0 + +metadata: + unit: currency-USD + period: month + label: Chapter 7 Bankruptcy western region operating costs limit + breakdown: + - western_county + - list(range(1,3)) + reference: + - title: Local standards -- Transportation + href: https://www.irs.gov/businesses/small-businesses-self-employed/local-standards-transportation diff --git a/policyengine_us/parameters/gov/bankruptcy/local_standards/vehicle_operation/vehicles_owned_cap.yaml b/policyengine_us/parameters/gov/bankruptcy/local_standards/vehicle_operation/vehicles_owned_cap.yaml new file mode 100644 index 00000000000..fcf951ede68 --- /dev/null +++ b/policyengine_us/parameters/gov/bankruptcy/local_standards/vehicle_operation/vehicles_owned_cap.yaml @@ -0,0 +1,12 @@ +description: The IRS limits the number of owned vehicles to this amount under the chapter 7 bankruptcy means test. + +values: + 2024-01-01: 2 + +metadata: + unit: float + period: year + label: Chapter 7 Bankruptcy qualified vehicles owned cap amount + reference: + - title: Form 122A-2 Chapter 7 Means Test Calculation + href: https://www.cacb.uscourts.gov/sites/cacb/files/documents/forms/122A2.pdf#page=4 diff --git a/policyengine_us/parameters/gov/bankruptcy/national_standards/food_clothing_and_others/additional.yaml b/policyengine_us/parameters/gov/bankruptcy/national_standards/food_clothing_and_others/additional.yaml new file mode 100644 index 00000000000..0fc05d8aa74 --- /dev/null +++ b/policyengine_us/parameters/gov/bankruptcy/national_standards/food_clothing_and_others/additional.yaml @@ -0,0 +1,12 @@ +description: The IRS increases food, clothing and other items expenses to this amount, for each additonal person under the chapter 7 bankruptcy means test. + +values: + 2024-01-01: 386 + +metadata: + unit: currency-USD + period: year + label: Chapter 7 Bankruptcy food, clothing and other items additional expense limit + reference: + - title: National standards -- Food, clothing and other items + href: https://www.irs.gov/businesses/small-businesses-self-employed/national-standards-food-clothing-and-other-items diff --git a/policyengine_us/parameters/gov/bankruptcy/national_standards/food_clothing_and_others/main.yaml b/policyengine_us/parameters/gov/bankruptcy/national_standards/food_clothing_and_others/main.yaml new file mode 100644 index 00000000000..fbfaac60a79 --- /dev/null +++ b/policyengine_us/parameters/gov/bankruptcy/national_standards/food_clothing_and_others/main.yaml @@ -0,0 +1,21 @@ +description: The IRS limits food, clothing and other items expenses to this amount, based on household size under the chapter 7 bankruptcy means test. + +1: + 2024-01-01: 808 +2: + 2024-01-01: 1_411 +3: + 2024-01-01: 1_677 +4: + 2024-01-01: 2_027 + +metadata: + unit: currency-USD + period: year + label: Chapter 7 Bankruptcy food, clothing and other items expense limit + breakdown: + - list(range(1,5)) + reference: + - title: National standards -- Food, clothing and other items + href: https://www.irs.gov/businesses/small-businesses-self-employed/national-standards-food-clothing-and-other-items + diff --git a/policyengine_us/parameters/gov/bankruptcy/national_standards/out_of_pocket_health_care/amount.yaml b/policyengine_us/parameters/gov/bankruptcy/national_standards/out_of_pocket_health_care/amount.yaml new file mode 100644 index 00000000000..40a9f53e1ba --- /dev/null +++ b/policyengine_us/parameters/gov/bankruptcy/national_standards/out_of_pocket_health_care/amount.yaml @@ -0,0 +1,20 @@ +description: The IRS sets different expense limits on out-of-pocket health care for filers based on this age threshold under the Chapter 7 Bankruptcy means test. +brackets: + - threshold: + 2024-01-01: 0 + amount: + 2024-01-01: 83 + - threshold: + 2024-01-01: 65 + amount: + 2024-01-01: 158 +metadata: + label: Chapter 7 Bankruptcy out of pocket health care allowance + type: single_amount + threshold_unit: year + amount_unit: currency-USD + period: month + reference: + - title: National standards -- Out-of-pocket health care + href: https://www.irs.gov/businesses/small-businesses-self-employed/national-standards-out-of-pocket-health-care + diff --git a/policyengine_us/parameters/gov/bankruptcy/presumption_abuse/amount/higher.yaml b/policyengine_us/parameters/gov/bankruptcy/presumption_abuse/amount/higher.yaml new file mode 100644 index 00000000000..8a2475b1345 --- /dev/null +++ b/policyengine_us/parameters/gov/bankruptcy/presumption_abuse/amount/higher.yaml @@ -0,0 +1,12 @@ +description: The IRS determines whether there is a presumption of abuse with this higher amount under the chapter 7 bankruptcy means test. + +values: + 2024-01-01: 15_150 + +metadata: + unit: currency-USD + period: year + label: Chapter 7 Bankruptcy presumption of abuse higher amount + reference: + - title: Official Form 122A-2 Chapter 7 Means Test Calculation + href: https://www.cacb.uscourts.gov/sites/cacb/files/documents/forms/122A2.pdf#page=8 diff --git a/policyengine_us/parameters/gov/bankruptcy/presumption_abuse/amount/lower.yaml b/policyengine_us/parameters/gov/bankruptcy/presumption_abuse/amount/lower.yaml new file mode 100644 index 00000000000..8329a65fff7 --- /dev/null +++ b/policyengine_us/parameters/gov/bankruptcy/presumption_abuse/amount/lower.yaml @@ -0,0 +1,12 @@ +description: The IRS determines whether there is a presumption of abuse with this lower amount under the chapter 7 bankruptcy means test. + +values: + 2024-01-01: 9_075 + +metadata: + unit: currency-USD + period: year + label: Chapter 7 Bankruptcy presumption of abuse lower amount + reference: + - title: Official Form 122A-2 Chapter 7 Means Test Calculation + href: https://www.cacb.uscourts.gov/sites/cacb/files/documents/forms/122A2.pdf#page=8 diff --git a/policyengine_us/parameters/gov/bankruptcy/presumption_abuse/rate.yaml b/policyengine_us/parameters/gov/bankruptcy/presumption_abuse/rate.yaml new file mode 100644 index 00000000000..4327d9c6cfb --- /dev/null +++ b/policyengine_us/parameters/gov/bankruptcy/presumption_abuse/rate.yaml @@ -0,0 +1,14 @@ +description: The IRS matches this percent of the nonpriorirty unsecured debt under the chapter 7 bankruptcy means test. + +values: + 2024-01-01: 0.25 + +metadata: + unit: /1 + period: year + label: Chapter 7 Bankruptcy nonpriority unsecured debt rate + reference: + - title: Official Form 122A-2 Chapter 7 Means Test Calculation + href: https://www.cacb.uscourts.gov/sites/cacb/files/documents/forms/122A2.pdf#page=9 + - title: 11 U.S.C. ยง 707(b)(2)(A)(i)(I) + href: https://www.law.cornell.edu/uscode/text/11/707 diff --git a/policyengine_us/parameters/household/county_group/midwest/chicago.yaml b/policyengine_us/parameters/household/county_group/midwest/chicago.yaml new file mode 100644 index 00000000000..dd624b1e37e --- /dev/null +++ b/policyengine_us/parameters/household/county_group/midwest/chicago.yaml @@ -0,0 +1,26 @@ +description: The IRS follows the Metropolitan Statistical Area to define the default counties in the Chicago area under the Chapter 7 Bankruptcy means test. + +metadata: + unit: list + period: year + label: IRS Metropolitan Statistical Area Chicago area counties + reference: + - title: Internal Revenue Service, Local standards -- Transportation + href: https://www.irs.gov/businesses/small-businesses-self-employed/local-standards-transportation +values: + 2024-01-01: + - COOK_COUNTY_IL + - DEKALB_COUNTY_IL + - DUPAGE_COUNTY_IL + - GRUNDY_COUNTY_IL + - KANE_COUNTY_IL + - KENDALL_COUNTY_IL + - LAKE_COUNTY_IL + - MCHENRY_COUNTY_IL + - WILL_COUNTY_IL + - JASPER_COUNTY_IN + - LAKE_COUNTY_IN + - NEWTON_COUNTY_IN + - PORTER_COUNTY_IN + - KENOSHA_COUNTY_WI + diff --git a/policyengine_us/parameters/household/county_group/midwest/cleveland.yaml b/policyengine_us/parameters/household/county_group/midwest/cleveland.yaml new file mode 100644 index 00000000000..6b462d040bd --- /dev/null +++ b/policyengine_us/parameters/household/county_group/midwest/cleveland.yaml @@ -0,0 +1,20 @@ +description: The IRS follows the Metropolitan Statistical Area to define the default counties in the Cleveland area under the Chapter 7 Bankruptcy means test. + +metadata: + unit: list + period: year + label: IRS Metropolitan Statistical Area Cleveland area counties + reference: + - title: Internal Revenue Service, Local standards -- Transportation + href: https://www.irs.gov/businesses/small-businesses-self-employed/local-standards-transportation +values: + 2024-01-01: + - ASHTABULA_COUNTY_OH + - CUYAHOGA_COUNTY_OH + - GEAUGA_COUNTY_OH + - LAKE_COUNTY_OH + - LORAIN_COUNTY_OH + - MEDINA_COUNTY_OH + - PORTAGE_COUNTY_OH + - SUMMIT_COUNTY_OH + diff --git a/policyengine_us/parameters/household/county_group/midwest/detroit.yaml b/policyengine_us/parameters/household/county_group/midwest/detroit.yaml new file mode 100644 index 00000000000..46673be4d14 --- /dev/null +++ b/policyengine_us/parameters/household/county_group/midwest/detroit.yaml @@ -0,0 +1,17 @@ +description: The IRS follows the Metropolitan Statistical Area to define the default counties in the Detroit area under the Chapter 7 Bankruptcy means test. + +metadata: + unit: list + period: year + label: IRS Metropolitan Statistical Area Detroit area counties + reference: + - title: Internal Revenue Service, Local standards -- Transportation + href: https://www.irs.gov/businesses/small-businesses-self-employed/local-standards-transportation +values: + 2024-01-01: + - LAPEER_COUNTY_MI + - LIVINGSTON_COUNTY_MI + - MACOMB_COUNTY_MI + - OAKLAND_COUNTY_MI + - ST_CLAIR_COUNTY_MI + - WAYNE_COUNTY_MI diff --git a/policyengine_us/parameters/household/county_group/midwest/minneapolis_st_paul.yaml b/policyengine_us/parameters/household/county_group/midwest/minneapolis_st_paul.yaml new file mode 100644 index 00000000000..7d4768d899b --- /dev/null +++ b/policyengine_us/parameters/household/county_group/midwest/minneapolis_st_paul.yaml @@ -0,0 +1,27 @@ +description: The IRS follows the Metropolitan Statistical Area to define the default counties in the Minneapolis-St.Paul area under the Chapter 7 Bankruptcy means test. + +metadata: + unit: list + period: year + label: IRS Metropolitan Statistical Area Minneapolis-St.Paul area counties + reference: + - title: Internal Revenue Service, Local standards -- Transportation + href: https://www.irs.gov/businesses/small-businesses-self-employed/local-standards-transportation +values: + 2024-01-01: + - ANOKA_COUNTY_MN + - CARVER_COUNTY_MN + - CHISAGO_COUNTY_MN + - DAKOTA_COUNTY_MN + - HENNEPIN_COUNTY_MN + - ISANTI_COUNTY_MN + - LESUEUR_COUNTY_MN + - MILLE_LACS_COUNTY_MN + - RAMSEY_COUNTY_MN + - SCOTT_COUNTY_MN + - SHERBURNE_COUNTY_MN + - SIBLEY_COUNTY_MN + - WASHINGTON_COUNTY_MN + - WRIGHT_COUNTY_MN + - PIERCE_COUNTY_WI + - ST_CROIX_WI diff --git a/policyengine_us/parameters/household/county_group/midwest/st_louis.yaml b/policyengine_us/parameters/household/county_group/midwest/st_louis.yaml new file mode 100644 index 00000000000..c865ed904ef --- /dev/null +++ b/policyengine_us/parameters/household/county_group/midwest/st_louis.yaml @@ -0,0 +1,26 @@ +description: The IRS follows the Metropolitan Statistical Area to define the default counties in the St.Louis area under the Chapter 7 Bankruptcy means test. + +metadata: + unit: list + period: year + label: IRS Metropolitan Statistical Area St.Louis area counties + reference: + - title: Internal Revenue Service, Local standards -- Transportation + href: https://www.irs.gov/businesses/small-businesses-self-employed/local-standards-transportation +values: + 2024-01-01: + - FRANKLIN_COUNTY_MO + - JEFFERSON_COUNTY_MO + - LINCOLN_COUNTY_MO + - ST_CHARLES_COUNTY_MO + - ST_LOUIS_COUNTY_MO + - WARREN_COUNTY_MO + - ST_LOUIS_CITY_COUNTY_MO + - BOND_COUNTY_IL + - CALHOUN_COUNTY_IL + - CLINTON_COUNTY_IL + - JERSEY_COUNTY_IL + - MACOUPIN_COUNTY_IL + - MADISON_COUNTY_IL + - MONROW_COUNTY_IL + - ST_CLAIR_COUNTY_IL diff --git a/policyengine_us/parameters/household/county_group/northeast/boston.yaml b/policyengine_us/parameters/household/county_group/northeast/boston.yaml new file mode 100644 index 00000000000..62ad9b83031 --- /dev/null +++ b/policyengine_us/parameters/household/county_group/northeast/boston.yaml @@ -0,0 +1,18 @@ +description: The IRS follows the Metropolitan Statistical Area to define the default counties in the Boston area under the Chapter 7 Bankruptcy means test. + +metadata: + unit: list + period: year + label: IRS Metropolitan Statistical Area Boston area counties + reference: + - title: Internal Revenue Service, Local standards -- Transportation + href: https://www.irs.gov/businesses/small-businesses-self-employed/local-standards-transportation +values: + 2024-01-01: + - ESSEX_COUNTY_MA + - MIDDLESEX_COUNTY_MA + - NORFOLK_COUNTY_MA + - PLYMOUTH_COUNTY_MA + - SUFFOLK_COUNTY_MA + - ROCKINGHAM_COUNTY_NH + - STRAFFORD_COUNTY_NH diff --git a/policyengine_us/parameters/household/county_group/northeast/new_york.yaml b/policyengine_us/parameters/household/county_group/northeast/new_york.yaml new file mode 100644 index 00000000000..c8e69bc05ec --- /dev/null +++ b/policyengine_us/parameters/household/county_group/northeast/new_york.yaml @@ -0,0 +1,36 @@ +description: The IRS follows the Metropolitan Statistical Area to define the default counties in the New York area under the Chapter 7 Bankruptcy means test. + +metadata: + unit: list + period: year + label: IRS Metropolitan Statistical Area New York area counties + reference: + - title: Internal Revenue Service, Local standards -- Transportation + href: https://www.irs.gov/businesses/small-businesses-self-employed/local-standards-transportation +values: + 2024-01-01: + - BRONX_COUNTY_NY + - DUTCHESS_COUNTY_NY + - KINGS_COUNTY_NY + - NASSAU_COUNTY_NY + - NEW_YORK_COUNTY_NY + - ORANGE_COUNTY_NY + - PUTNAM_COUNTY_NY + - QUEENS_COUNTY_NY + - RICHMOND_COUNTY_NY + - ROCKLAND_COUNTY_NY + - SUFFOLK_COUNTY_NY + - WESTCHESTER_COUNTY_NY + - BERGEN_COUNTY_NJ + - ESSEX_COUNTY_NJ + - HUDSON_COUNTY_NJ + - HUNTERDON_COUNTY_NJ + - MIDDLESEX_COUNTY_NJ + - MONMOUTH_COUNTY_NJ + - MORRIS_COUNTY_NJ + - OCEAN_COUNTY_NJ + - PASSAIC_COUNTY_NJ + - SOMERSET_COUNTY_NJ + - SUSSEX_COUNTY_NJ + - UNION_COUNTY_NJ + - PIKE_COUNTY_PA diff --git a/policyengine_us/parameters/household/county_group/northeast/philadelphia.yaml b/policyengine_us/parameters/household/county_group/northeast/philadelphia.yaml new file mode 100644 index 00000000000..c034131ca1b --- /dev/null +++ b/policyengine_us/parameters/household/county_group/northeast/philadelphia.yaml @@ -0,0 +1,22 @@ +description: The IRS follows the Metropolitan Statistical Area to define the default counties in the Philadelphia area under the Chapter 7 Bankruptcy means test. + +metadata: + unit: list + period: year + label: IRS Metropolitan Statistical Area Philadelphia area counties + reference: + - title: Internal Revenue Service, Local standards -- Transportation + href: https://www.irs.gov/businesses/small-businesses-self-employed/local-standards-transportation +values: + 2024-01-01: + - BUCKS_COUNTY_PA + - CHESTER_COUNTY_PA + - DELAWARE_COUNTY_PA + - MONTGOMERY_COUNTY_PA + - PHILADELPHIA_COUNTY_PA + - BURLINGTON_COUNTY_NJ + - CAMDEN_COUNTY_NJ + - GLOUCESTER_COUNTY_NJ + - SALEM_COUNTY_NJ + - NEW_CASTLE_COUNTY_DE + - CECIL_COUNTY_MD diff --git a/policyengine_us/parameters/household/county_group/south/atlanta.yaml b/policyengine_us/parameters/household/county_group/south/atlanta.yaml new file mode 100644 index 00000000000..9bed0bedf74 --- /dev/null +++ b/policyengine_us/parameters/household/county_group/south/atlanta.yaml @@ -0,0 +1,40 @@ +description: The IRS follows the Metropolitan Statistical Area to define the default counties in the Atlanta area under the Chapter 7 Bankruptcy means test. + +metadata: + unit: list + period: year + label: IRS Metropolitan Statistical Area Atlanta area counties + reference: + - title: Internal Revenue Service, Local standards -- Transportation + href: https://www.irs.gov/businesses/small-businesses-self-employed/local-standards-transportation +values: + 2024-01-01: + - BARROW_COUNTY_GA + - BARTOW_COUNTY_GA + - BUTTS_COUNTY_GA + - CARROLL_COUNTY_GA + - CHEROKEE_COUNTY_GA + - CLAYTON_COUNTY_GA + - COBB_COUNTY_GA + - COWETA_COUNTY_GA + - DAWSON_COUNTY_GA + - DEKALB_COUNTY_GA + - DOUGLAS_COUNTY_GA + - FAYETTE_COUNTY_GA + - FORSYTH_COUNTY_GA + - FULTON_COUNTY_GA + - GWINNETT_COUNTY_GA + - HARALSON_COUNTY_GA + - HEARD_COUNTY_GA + - HENRY_COUNTY_GA + - JASPER_COUNTY_GA + - LAMAR_COUNTY_GA + - MERIWETHER_COUNTY_GA + - MORGAN_COUNTY_GA + - NEWTON_COUNTY_GA + - PAULDING_COUNTY_GA + - PICKENS_COUNTY_GA + - PIKE_COUNTY_GA + - ROCKDALE_COUNTY_GA + - SPALDING_COUNTY_GA + - WALTON_COUNTY_GA diff --git a/policyengine_us/parameters/household/county_group/south/baltimore.yaml b/policyengine_us/parameters/household/county_group/south/baltimore.yaml new file mode 100644 index 00000000000..e912649bb0c --- /dev/null +++ b/policyengine_us/parameters/household/county_group/south/baltimore.yaml @@ -0,0 +1,18 @@ +description: The IRS follows the Metropolitan Statistical Area to define the default counties in the Baltimore area under the Chapter 7 Bankruptcy means test. + +metadata: + unit: list + period: year + label: IRS Metropolitan Statistical Area Baltimore area counties + reference: + - title: Internal Revenue Service, Local standards -- Transportation + href: https://www.irs.gov/businesses/small-businesses-self-employed/local-standards-transportation +values: + 2024-01-01: + - ANNE_ARUNDEL_COUNTY_MD + - BALTIMORE_COUNTY_MD + - CARROLL_COUNTY_MD + - HARFORD_COUNTY_MD + - HOWARD_COUNTY_MD + - QUEEN_ANNE_S_COUNTY_MD + - BALTIMORE_CITY_MD diff --git a/policyengine_us/parameters/household/county_group/south/dallas_ft_worth.yaml b/policyengine_us/parameters/household/county_group/south/dallas_ft_worth.yaml new file mode 100644 index 00000000000..8c39c6db33e --- /dev/null +++ b/policyengine_us/parameters/household/county_group/south/dallas_ft_worth.yaml @@ -0,0 +1,24 @@ +description: The IRS follows the Metropolitan Statistical Area to define the default counties in the Dallas Ft.Worth area under the Chapter 7 Bankruptcy means test. + +metadata: + unit: list + period: year + label: IRS Metropolitan Statistical Area Dallas Ft.Worth area counties + reference: + - title: Internal Revenue Service, Local standards -- Transportation + href: https://www.irs.gov/businesses/small-businesses-self-employed/local-standards-transportation +values: + 2024-01-01: + - COLLIN_COUNTY_TX + - DALLAS_COUNTY_TX + - DENTON_COUNTY_TX + - ELLIS_COUNTY_TX + - HOOD_COUNTY_TX + - HUNT_COUNTY_TX + - JOHNSON_COUNTY_TX + - KAUFMAN_COUNTY_TX + - PARKER_COUNTY_TX + - ROCKWALL_COUNTY_TX + - SOMERVELL_COUNTY_TX + - TARRANT_COUNTY_TX + - WISE_COUNTY_TX diff --git a/policyengine_us/parameters/household/county_group/south/houston.yaml b/policyengine_us/parameters/household/county_group/south/houston.yaml new file mode 100644 index 00000000000..8911fd690a5 --- /dev/null +++ b/policyengine_us/parameters/household/county_group/south/houston.yaml @@ -0,0 +1,20 @@ +description: The IRS follows the Metropolitan Statistical Area to define the default counties in the Houston area under the Chapter 7 Bankruptcy means test. + +metadata: + unit: list + period: year + label: IRS Metropolitan Statistical Area Houston area counties + reference: + - title: Internal Revenue Service, Local standards -- Transportation + href: https://www.irs.gov/businesses/small-businesses-self-employed/local-standards-transportation +values: + 2024-01-01: + - AUSTIN_COUNTY_TX + - BRAZORIA_COUNTY_TX + - CHAMBERS_COUNTY_TX + - FORT_BEND_COUNTY_TX + - GALVESTON_COUNTY_TX + - HARRIS_COUNTY_TX + - LIBERTY_COUNTY_TX + - MONTGOMERY_COUNTY_TX + - WALLER_COUNTY_TX diff --git a/policyengine_us/parameters/household/county_group/south/miami.yaml b/policyengine_us/parameters/household/county_group/south/miami.yaml new file mode 100644 index 00000000000..85097626cba --- /dev/null +++ b/policyengine_us/parameters/household/county_group/south/miami.yaml @@ -0,0 +1,14 @@ +description: The IRS follows the Metropolitan Statistical Area to define the default counties in the Miami area under the Chapter 7 Bankruptcy means test. + +metadata: + unit: list + period: year + label: IRS Metropolitan Statistical Area Miami area counties + reference: + - title: Internal Revenue Service, Local standards -- Transportation + href: https://www.irs.gov/businesses/small-businesses-self-employed/local-standards-transportation +values: + 2024-01-01: + - BROWARD_COUNTY_FL + - MIAMI_DADE_COUNTY_FL + - PALM_BEACH_COUNTY_FL diff --git a/policyengine_us/parameters/household/county_group/south/tampa.yaml b/policyengine_us/parameters/household/county_group/south/tampa.yaml new file mode 100644 index 00000000000..bf5d71f612c --- /dev/null +++ b/policyengine_us/parameters/household/county_group/south/tampa.yaml @@ -0,0 +1,15 @@ +description: The IRS follows the Metropolitan Statistical Area to define the default counties in the Tampa area under the Chapter 7 Bankruptcy means test. + +metadata: + unit: list + period: year + label: IRS Metropolitan Statistical Area Tampa area counties + reference: + - title: Internal Revenue Service, Local standards -- Transportation + href: https://www.irs.gov/businesses/small-businesses-self-employed/local-standards-transportation +values: + 2024-01-01: + - HERNANDO_COUNTY_FL + - HILLSBOROUGH_COUNTY_FL + - PASCO_COUNTY_FL + - PINELLAS_COUNTY_FL diff --git a/policyengine_us/parameters/household/county_group/south/washington_dc.yaml b/policyengine_us/parameters/household/county_group/south/washington_dc.yaml new file mode 100644 index 00000000000..35c7f6c6d02 --- /dev/null +++ b/policyengine_us/parameters/household/county_group/south/washington_dc.yaml @@ -0,0 +1,35 @@ +description: The IRS follows the Metropolitan Statistical Area to define the default counties in the Washington DC area under the Chapter 7 Bankruptcy means test. + +metadata: + unit: list + period: year + label: IRS Metropolitan Statistical Area Washington DC area counties + reference: + - title: Internal Revenue Service, Local standards -- Transportation + href: https://www.irs.gov/businesses/small-businesses-self-employed/local-standards-transportation +values: + 2024-01-01: + - DISTRICT_OF_COLUMBIA_DC + - CALVERT_COUNTY_MD + - CHARLES_COUNTY_MD + - FREDERICK_COUNTY_MD + - MONTGOMERY_COUNTY_MD + - PRINCE_GEORGE_COUNTY_MD + - ARLINGTON_COUNTY_VA + - CLARKE_COUNTY_VA + - CULPEPER_COUNTY_VA + - FAIRFAX_COUNTY_VA + - FAUQUIER_COUNTY_VA + - LOUDOUN_COUNTY_VA + - PRINCE_WILLIAM_COUNTY_VA + - RAPPAHANNOCK_COUNTY_VA + - SPOTSYLVANIA_COUNTY_VA + - STAFFORD_COUNTY_VA + - WARREN_COUNTY_VA + - ALEXANDRIA_CITY_VA + - FAIRFAX_CITY_VA + - FALLS_CHURCH_CITY_VA + - FREDERICKSBURG_CITY_VA + # - MANASSAS_CITY_VA ## We don't have this county in county_enum.py + - MANASSAS_PARK_CITY_VA + - JEFFERSON_COUNTY_WV diff --git a/policyengine_us/parameters/household/county_group/west/anchorage.yaml b/policyengine_us/parameters/household/county_group/west/anchorage.yaml new file mode 100644 index 00000000000..00fd889940d --- /dev/null +++ b/policyengine_us/parameters/household/county_group/west/anchorage.yaml @@ -0,0 +1,13 @@ +description: The IRS follows the Metropolitan Statistical Area to define the default counties in the Anchorage area under the Chapter 7 Bankruptcy means test. + +metadata: + unit: list + period: year + label: IRS Metropolitan Statistical Area Anchorage area counties + reference: + - title: Internal Revenue Service, Local standards -- Transportation + href: https://www.irs.gov/businesses/small-businesses-self-employed/local-standards-transportation +values: + 2024-01-01: + - ANCHORAGE_MUNICIPALITY_AK + - MATANUSKA_SUSITNA_BOROUGH_AK diff --git a/policyengine_us/parameters/household/county_group/west/denver.yaml b/policyengine_us/parameters/household/county_group/west/denver.yaml new file mode 100644 index 00000000000..82d5b78b8aa --- /dev/null +++ b/policyengine_us/parameters/household/county_group/west/denver.yaml @@ -0,0 +1,21 @@ +description: The IRS follows the Metropolitan Statistical Area to define the default counties in the Denver area under the Chapter 7 Bankruptcy means test. + +metadata: + unit: list + period: year + label: IRS Metropolitan Statistical Area Denver area counties + reference: + - title: Internal Revenue Service, Local standards -- Transportation + href: https://www.irs.gov/businesses/small-businesses-self-employed/local-standards-transportation +values: + 2024-01-01: + - ADAMS_COUNTY_CO + - ARAPAHOE_COUNTY_CO + - BROOMFIELD_COUNTY_CO + - CLEAR_CREEK_COUNTY_CO + - DENVER_COUNTY_CO + - DOUGLAS_COUNTY_CO + - ELBERT_COUNTY_CO + - GILPIN_COUNTY_CO + - JEFFERSON_COUNTY_CO + - PARK_COUNTY_CO diff --git a/policyengine_us/parameters/household/county_group/west/honolulu.yaml b/policyengine_us/parameters/household/county_group/west/honolulu.yaml new file mode 100644 index 00000000000..e08420d8166 --- /dev/null +++ b/policyengine_us/parameters/household/county_group/west/honolulu.yaml @@ -0,0 +1,12 @@ +description: The IRS follows the Metropolitan Statistical Area to define the default counties in the Honolulu area under the Chapter 7 Bankruptcy means test. + +metadata: + unit: list + period: year + label: IRS Metropolitan Statistical Area Honolulu area county + reference: + - title: Internal Revenue Service, Local standards -- Transportation + href: https://www.irs.gov/businesses/small-businesses-self-employed/local-standards-transportation +values: + 2024-01-01: + - HONOLULU_COUNTY_HI diff --git a/policyengine_us/parameters/household/county_group/west/los_angeles.yaml b/policyengine_us/parameters/household/county_group/west/los_angeles.yaml new file mode 100644 index 00000000000..864cb1e0b7a --- /dev/null +++ b/policyengine_us/parameters/household/county_group/west/los_angeles.yaml @@ -0,0 +1,15 @@ +description: The IRS follows the Metropolitan Statistical Area to define the default counties in the Los Angeles area under the Chapter 7 Bankruptcy means test. + +metadata: + unit: list + period: year + label: IRS Metropolitan Statistical Area Los Angeles area counties + reference: + - title: Internal Revenue Service, Local standards -- Transportation + href: https://www.irs.gov/businesses/small-businesses-self-employed/local-standards-transportation +values: + 2024-01-01: + - LOS_ANGELES_COUNTY_CA + - ORANGE_COUNTY_CA + - RIVERSIDE_COUNTY_CA + - SAN_BERNARDINO_COUNTY_CA diff --git a/policyengine_us/parameters/household/county_group/west/phoenix.yaml b/policyengine_us/parameters/household/county_group/west/phoenix.yaml new file mode 100644 index 00000000000..99268837800 --- /dev/null +++ b/policyengine_us/parameters/household/county_group/west/phoenix.yaml @@ -0,0 +1,13 @@ +description: The IRS follows the Metropolitan Statistical Area to define the default counties in the Phoenix area under the Chapter 7 Bankruptcy means test. + +metadata: + unit: list + period: year + label: IRS Metropolitan Statistical Area Phoenix area counties + reference: + - title: Internal Revenue Service, Local standards -- Transportation + href: https://www.irs.gov/businesses/small-businesses-self-employed/local-standards-transportation +values: + 2024-01-01: + - MARICOPA_COUNTY_AZ + - PINAL_COUNTY_AZ diff --git a/policyengine_us/parameters/household/county_group/west/san_diego.yaml b/policyengine_us/parameters/household/county_group/west/san_diego.yaml new file mode 100644 index 00000000000..0506cc9f119 --- /dev/null +++ b/policyengine_us/parameters/household/county_group/west/san_diego.yaml @@ -0,0 +1,12 @@ +description: The IRS follows the Metropolitan Statistical Area to define the default counties in the San Diego area under the Chapter 7 Bankruptcy means test. + +metadata: + unit: list + period: year + label: IRS Metropolitan Statistical Area San Diego area county + reference: + - title: Internal Revenue Service, Local standards -- Transportation + href: https://www.irs.gov/businesses/small-businesses-self-employed/local-standards-transportation +values: + 2024-01-01: + - SAN_DIEGO_COUNTY_CA diff --git a/policyengine_us/parameters/household/county_group/west/san_francisco.yaml b/policyengine_us/parameters/household/county_group/west/san_francisco.yaml new file mode 100644 index 00000000000..e83aec1a792 --- /dev/null +++ b/policyengine_us/parameters/household/county_group/west/san_francisco.yaml @@ -0,0 +1,16 @@ +description: The IRS follows the Metropolitan Statistical Area to define the default counties in the San Francisco area under the Chapter 7 Bankruptcy means test. + +metadata: + unit: list + period: year + label: IRS Metropolitan Statistical Area San Francisco area counties + reference: + - title: Internal Revenue Service, Local standards -- Transportation + href: https://www.irs.gov/businesses/small-businesses-self-employed/local-standards-transportation +values: + 2024-01-01: + - ALAMEDA_COUNTY_CA + - CONTRA_COSTA_COUNTY_CA + - MARIN_COUNTY_CA + - SAN_FRANCISCO_COUNTY_CA + - SAN_MATEO_COUNTY_CA diff --git a/policyengine_us/parameters/household/county_group/west/seattle.yaml b/policyengine_us/parameters/household/county_group/west/seattle.yaml new file mode 100644 index 00000000000..1d6d74443fa --- /dev/null +++ b/policyengine_us/parameters/household/county_group/west/seattle.yaml @@ -0,0 +1,14 @@ +description: The IRS follows the Metropolitan Statistical Area to define the default counties in the Seattle area under the Chapter 7 Bankruptcy means test. + +metadata: + unit: list + period: year + label: IRS Metropolitan Statistical Area Seattle area counties + reference: + - title: Internal Revenue Service, Local standards -- Transportation + href: https://www.irs.gov/businesses/small-businesses-self-employed/local-standards-transportation +values: + 2024-01-01: + - KING_COUNTY_WA + - PIERCE_COUNTY_WA + - SNOHOMISH_COUNTY_WA diff --git a/policyengine_us/parameters/household/state_group/midwest.yaml b/policyengine_us/parameters/household/state_group/midwest.yaml new file mode 100644 index 00000000000..7b6534c4176 --- /dev/null +++ b/policyengine_us/parameters/household/state_group/midwest.yaml @@ -0,0 +1,23 @@ +description: The IRS follows the Metropolitan Statistical Area to define the default states in the midwest region under the Chapter 7 Bankruptcy means test. + +metadata: + unit: list + period: year + label: IRS Metropolitan Statistical Area midwest region states + reference: + - title: Internal Revenue Service, Local standards -- Transportation + href: https://www.irs.gov/businesses/small-businesses-self-employed/local-standards-transportation +values: + 2024-01-01: + - ND + - SD + - NE + - KS + - MO + - IL + - IN + - OH + - MI + - WI + - MN + - IA diff --git a/policyengine_us/parameters/household/state_group/northeast.yaml b/policyengine_us/parameters/household/state_group/northeast.yaml new file mode 100644 index 00000000000..68848211330 --- /dev/null +++ b/policyengine_us/parameters/household/state_group/northeast.yaml @@ -0,0 +1,20 @@ +description: The IRS follows the Metropolitan Statistical Area to define the default states in the northeast region under the Chapter 7 Bankruptcy means test. + +metadata: + unit: list + period: year + label: IRS Metropolitan Statistical Area northeast region states + reference: + - title: Internal Revenue Service, Local standards -- Transportation + href: https://www.irs.gov/businesses/small-businesses-self-employed/local-standards-transportation +values: + 2024-01-01: + - ME + - NH + - VT + - MA + - RI + - CT + - PA + - NY + - NJ diff --git a/policyengine_us/parameters/household/state_group/south.yaml b/policyengine_us/parameters/household/state_group/south.yaml new file mode 100644 index 00000000000..4508e08ea9d --- /dev/null +++ b/policyengine_us/parameters/household/state_group/south.yaml @@ -0,0 +1,27 @@ +description: The IRS follows the Metropolitan Statistical Area to define the default states in the south region under the Chapter 7 Bankruptcy means test. + +metadata: + unit: list + period: year + label: IRS Metropolitan Statistical Area south region states + reference: + - title: Internal Revenue Service, Local standards -- Transportation + href: https://www.irs.gov/businesses/small-businesses-self-employed/local-standards-transportation +values: + 2024-01-01: + - TX + - OK + - AR + - LA + - MS + - TN + - KY + - WV + - MD + - DC + - DE + - NC + - SC + - GA + - FL + - AL diff --git a/policyengine_us/parameters/household/state_group/west.yaml b/policyengine_us/parameters/household/state_group/west.yaml new file mode 100644 index 00000000000..7a7e8d27063 --- /dev/null +++ b/policyengine_us/parameters/household/state_group/west.yaml @@ -0,0 +1,24 @@ +description: The IRS follows the Metropolitan Statistical Area to define the default states in the west region under the Chapter 7 Bankruptcy means test. + +metadata: + unit: list + period: year + label: IRS Metropolitan Statistical Area west region states + reference: + - title: Internal Revenue Service, Local standards -- Transportation + href: https://www.irs.gov/businesses/small-businesses-self-employed/local-standards-transportation +values: + 2024-01-01: + - NM + - AZ + - CO + - WY + - MT + - NV + - UT + - WA + - OR + - ID + - CA + - AK + - HI diff --git a/policyengine_us/tests/policy/baseline/gov/bankruptcy/chapter_7_bankruptcy_adjust_monthly_income.yaml b/policyengine_us/tests/policy/baseline/gov/bankruptcy/chapter_7_bankruptcy_adjust_monthly_income.yaml new file mode 100644 index 00000000000..a23dad776bd --- /dev/null +++ b/policyengine_us/tests/policy/baseline/gov/bankruptcy/chapter_7_bankruptcy_adjust_monthly_income.yaml @@ -0,0 +1,17 @@ +- name: Case 1. + period: 2024 + input: + irs_employment_income: 100 + alimony_income: 100 + child_support_received: 100 + partnership_s_corp_income: 100 + farm_income: 100 + farm_rent_income: 100 + rental_income: 100 + dividend_income: 100 + interest_income: 100 + unemployment_compensation: 100 + pension_income: 100 + retirement_distributions: 100 + output: + chapter_7_bankruptcy_adjust_monthly_income: 1_200 diff --git a/policyengine_us/tests/policy/baseline/gov/bankruptcy/deductions/chapter_7_bankruptcy_additonal_expenses_deductions.yaml b/policyengine_us/tests/policy/baseline/gov/bankruptcy/deductions/chapter_7_bankruptcy_additonal_expenses_deductions.yaml new file mode 100644 index 00000000000..0433ecf48ac --- /dev/null +++ b/policyengine_us/tests/policy/baseline/gov/bankruptcy/deductions/chapter_7_bankruptcy_additonal_expenses_deductions.yaml @@ -0,0 +1,12 @@ +- name: Case 1, have housing cost and vehile mortgage expense. + period: 2024-01 + input: + health_insurance_premiums: 120 + health_savings_account_payroll_contributions: 120 + care_expenses: 0 + k12_tuition_and_fees: 2_400 + is_child_dependent: true + charitable_cash_donations: 0 + charitable_non_cash_donations: 0 + output: + chapter_7_bankruptcy_additonal_expenses_deductions: 209.58 diff --git a/policyengine_us/tests/policy/baseline/gov/bankruptcy/deductions/chapter_7_bankruptcy_debt_payment_deductions.yaml b/policyengine_us/tests/policy/baseline/gov/bankruptcy/deductions/chapter_7_bankruptcy_debt_payment_deductions.yaml new file mode 100644 index 00000000000..4841619ffdf --- /dev/null +++ b/policyengine_us/tests/policy/baseline/gov/bankruptcy/deductions/chapter_7_bankruptcy_debt_payment_deductions.yaml @@ -0,0 +1,15 @@ +- name: Case 1, have housing cost and vehile mortgage expense. + period: 2024-01 + input: + housing_cost: 120 + vehicle_mortgage_expense: 0 + output: + chapter_7_bankruptcy_debt_payment_deductions: 10 + +- name: Case 2, both expenses are 0. + period: 2024-01 + input: + housing_cost: 0 + vehicle_mortgage_expense: 0 + output: + chapter_7_bankruptcy_debt_payment_deductions: 0 diff --git a/policyengine_us/tests/policy/baseline/gov/bankruptcy/deductions/chapter_7_bankruptcy_food_clothing_and_others_deduction.yaml b/policyengine_us/tests/policy/baseline/gov/bankruptcy/deductions/chapter_7_bankruptcy_food_clothing_and_others_deduction.yaml new file mode 100644 index 00000000000..7326593e3a9 --- /dev/null +++ b/policyengine_us/tests/policy/baseline/gov/bankruptcy/deductions/chapter_7_bankruptcy_food_clothing_and_others_deduction.yaml @@ -0,0 +1,27 @@ +- name: Case 1, size 1. + period: 2024-01 + input: + spm_unit_size: 1 + output: + chapter_7_bankruptcy_food_clothing_and_others_deduction: 808 + +- name: Case 2, size 4. + period: 2024-01 + input: + spm_unit_size: 4 + output: + chapter_7_bankruptcy_food_clothing_and_others_deduction: 2_027 + +- name: Case 3, size 5. + period: 2024-01 + input: + spm_unit_size: 5 + output: + chapter_7_bankruptcy_food_clothing_and_others_deduction: 2_413 + +- name: Case 4, size 7. + period: 2024-01 + input: + spm_unit_size: 7 + output: + chapter_7_bankruptcy_food_clothing_and_others_deduction: 3_185 diff --git a/policyengine_us/tests/policy/baseline/gov/bankruptcy/deductions/chapter_7_bankruptcy_local_standards_deductions.yaml b/policyengine_us/tests/policy/baseline/gov/bankruptcy/deductions/chapter_7_bankruptcy_local_standards_deductions.yaml new file mode 100644 index 00000000000..84dc0f9b4a5 --- /dev/null +++ b/policyengine_us/tests/policy/baseline/gov/bankruptcy/deductions/chapter_7_bankruptcy_local_standards_deductions.yaml @@ -0,0 +1,14 @@ +- name: Case 1, have housing cost and vehile mortgage expense. + period: 2024-01 + input: + spm_unit_size: 3 + state_code: CA + housing_cost: 22_800 + #has_a_vehicle_loan: true + vehicles_loan_count: 1 + vehicle_mortgage_expense: 7_200 + public_transportation_expense: 240 + + output: + chapter_7_bankruptcy_local_standards_deductions: 998 + # 716 + 28 + 19 + 215 + 20 diff --git a/policyengine_us/tests/policy/baseline/gov/bankruptcy/deductions/chapter_7_bankruptcy_other_necessary_expenses_deductions.yaml b/policyengine_us/tests/policy/baseline/gov/bankruptcy/deductions/chapter_7_bankruptcy_other_necessary_expenses_deductions.yaml new file mode 100644 index 00000000000..060fbacb591 --- /dev/null +++ b/policyengine_us/tests/policy/baseline/gov/bankruptcy/deductions/chapter_7_bankruptcy_other_necessary_expenses_deductions.yaml @@ -0,0 +1,67 @@ +- name: Case 1, medical expense higher than medical deductions. + period: 2024-01 + input: + spm_unit_federal_tax: 120 + child_support_expense: 0 + childcare_expenses: 0 + chapter_7_bankruptcy_out_of_pocket_health_care_deduction: 100 + medical_out_of_pocket_expenses: 220 + + output: + chapter_7_bankruptcy_other_necessary_expenses_deductions: 20 + +- name: Case 2, medical expense smaller than medical deductions. + period: 2024-01 + input: + spm_unit_federal_tax: 120 + child_support_expense: 0 + childcare_expenses: 0 + chapter_7_bankruptcy_out_of_pocket_health_care_deduction: 100 + medical_out_of_pocket_expenses: 20 + + output: + chapter_7_bankruptcy_other_necessary_expenses_deductions: 10 + +- name: Case 3, integration test. + period: 2024-01 + input: + people: + person1: + age: 40 + child_support_expense: 0 + medical_out_of_pocket_expenses: 20 + person2: + age: 45 + spm_units: + spm_unit: + members: [person1, person2] + spm_unit_federal_tax: 120 + childcare_expenses: 0 + households: + household: + members: [person1, person2] + + output: + chapter_7_bankruptcy_other_necessary_expenses_deductions: 10 + +- name: Case 4, integration test. + period: 2024-01 + input: + people: + person1: + age: 40 + child_support_expense: 0 + medical_out_of_pocket_expenses: 2_112 + person2: + age: 45 + spm_units: + spm_unit: + members: [person1, person2] + spm_unit_federal_tax: 120 + childcare_expenses: 0 + households: + household: + members: [person1, person2] + + output: + chapter_7_bankruptcy_other_necessary_expenses_deductions: 20 diff --git a/policyengine_us/tests/policy/baseline/gov/bankruptcy/deductions/chapter_7_bankruptcy_out_of_pocket_health_care_deduction.yaml b/policyengine_us/tests/policy/baseline/gov/bankruptcy/deductions/chapter_7_bankruptcy_out_of_pocket_health_care_deduction.yaml new file mode 100644 index 00000000000..2760d6b8f07 --- /dev/null +++ b/policyengine_us/tests/policy/baseline/gov/bankruptcy/deductions/chapter_7_bankruptcy_out_of_pocket_health_care_deduction.yaml @@ -0,0 +1,50 @@ +- name: Case 1, both people below age 65. + period: 2024-01 + input: + people: + person1: + age: 40 + person2: + age: 45 + spm_units: + spm_unit: + members: [person1, person2] + households: + household: + members: [person1, person2] + output: + chapter_7_bankruptcy_out_of_pocket_health_care_deduction: 166 + +- name: Case 2, one above age 65, one below age 65. + period: 2024-01 + input: + people: + person1: + age: 70 + person2: + age: 45 + spm_units: + spm_unit: + members: [person1, person2] + households: + household: + members: [person1, person2] + output: + chapter_7_bankruptcy_out_of_pocket_health_care_deduction: 241 + +- name: Case 3, both age above 65. + period: 2024-01 + input: + people: + person1: + age: 75 + person2: + age: 78 + spm_units: + spm_unit: + members: [person1, person2] + households: + household: + members: [person1, person2] + output: + chapter_7_bankruptcy_out_of_pocket_health_care_deduction: 316 diff --git a/policyengine_us/tests/policy/baseline/gov/bankruptcy/deductions/chapter_7_bankruptcy_vehicle_operation_expense_deduction.yaml b/policyengine_us/tests/policy/baseline/gov/bankruptcy/deductions/chapter_7_bankruptcy_vehicle_operation_expense_deduction.yaml new file mode 100644 index 00000000000..df6efe8c135 --- /dev/null +++ b/policyengine_us/tests/policy/baseline/gov/bankruptcy/deductions/chapter_7_bankruptcy_vehicle_operation_expense_deduction.yaml @@ -0,0 +1,19 @@ +- name: Case 1, deafult county in west region. + period: 2024-01 + input: + county_str: kern_county_ca + state_code: CA + vehicles_loan_count: 1 + + output: + chapter_7_bankruptcy_vehicle_operation_expense_deduction: 273 + +- name: Case 2, special county in northeast region. + period: 2024-01 + input: + county_str: SUFFOLK_COUNTY_MA + state_code: MA + vehicles_loan_count: 2 + + output: + chapter_7_bankruptcy_vehicle_operation_expense_deduction: 620 diff --git a/policyengine_us/tests/policy/baseline/gov/bankruptcy/is_presumption_of_abuse.yaml b/policyengine_us/tests/policy/baseline/gov/bankruptcy/is_presumption_of_abuse.yaml new file mode 100644 index 00000000000..d2e86807d71 --- /dev/null +++ b/policyengine_us/tests/policy/baseline/gov/bankruptcy/is_presumption_of_abuse.yaml @@ -0,0 +1,39 @@ +- name: Case 1, total_disposable_income less than 9075, no abuse. + period: 2024 + input: + chapter_7_bankruptcy_adjust_monthly_income: 2_000 + chapter_7_bankruptcy_total_deductions: 1_900 + chapter_7_bankruptcy_nonpriority_unsecured_debt: 0 + output: + is_presumption_of_abuse: false + # (2000 - 1900)*60 = 6000 < 9075 + +- name: Case 2, total_disposable_income higher than 15150, has abuse. + period: 2024 + input: + chapter_7_bankruptcy_adjust_monthly_income: 2_000 + chapter_7_bankruptcy_total_deductions: 1_700 + chapter_7_bankruptcy_nonpriority_unsecured_debt: 0 + output: + is_presumption_of_abuse: true + # (2000-1700)*60 = 18000 > 15150 + +- name: Case 3, total_disposable_income in between, and enough to pay 25% of nonpriority unsecured debt. + period: 2024 + input: + chapter_7_bankruptcy_adjust_monthly_income: 2_000 + chapter_7_bankruptcy_total_deductions: 1_750 + chapter_7_bankruptcy_nonpriority_unsecured_debt: 1_000 + output: + is_presumption_of_abuse: true + # (2000-1750)*60 = 15000 is higher than 1000*25% + +- name: Case 4, total_disposable_income in between, and not enough to pay 25% of nonpriority unsecured debt. + period: 2024 + input: + chapter_7_bankruptcy_adjust_monthly_income: 2_000 + chapter_7_bankruptcy_total_deductions: 1_750 + chapter_7_bankruptcy_nonpriority_unsecured_debt: 61_000 + output: + is_presumption_of_abuse: false + # (2000-1750)*60 = 15000 is less than 61000*25% = 15250 diff --git a/policyengine_us/tests/policy/baseline/household/demographic/geographic/region/is_midwestern_region.yaml b/policyengine_us/tests/policy/baseline/household/demographic/geographic/region/is_midwestern_region.yaml new file mode 100644 index 00000000000..02d1003a8ff --- /dev/null +++ b/policyengine_us/tests/policy/baseline/household/demographic/geographic/region/is_midwestern_region.yaml @@ -0,0 +1,20 @@ +- name: Illinois is in midwest region. + period: 2024 + input: + state_code: IL + output: + is_midwestern_region: true + +- name: North Dakota is in midwest region. + period: 2024 + input: + state_code: ND + output: + is_midwestern_region: true + +- name: Massachusetts is not in midwest region. + period: 2024 + input: + state_code: MA + output: + is_midwestern_region: false diff --git a/policyengine_us/tests/policy/baseline/household/demographic/geographic/region/is_northeastern_region.yaml b/policyengine_us/tests/policy/baseline/household/demographic/geographic/region/is_northeastern_region.yaml new file mode 100644 index 00000000000..665527469c1 --- /dev/null +++ b/policyengine_us/tests/policy/baseline/household/demographic/geographic/region/is_northeastern_region.yaml @@ -0,0 +1,20 @@ +- name: Massachusetts is in northeast region. + period: 2024 + input: + state_code: MA + output: + is_northeastern_region: true + +- name: Pennsylvania is in northeast region. + period: 2024 + input: + state_code: PA + output: + is_northeastern_region: true + +- name: Illinois is not in northeast region. + period: 2024 + input: + state_code: IL + output: + is_northeastern_region: false diff --git a/policyengine_us/tests/policy/baseline/household/demographic/geographic/region/is_southern_region.yaml b/policyengine_us/tests/policy/baseline/household/demographic/geographic/region/is_southern_region.yaml new file mode 100644 index 00000000000..f51bb112891 --- /dev/null +++ b/policyengine_us/tests/policy/baseline/household/demographic/geographic/region/is_southern_region.yaml @@ -0,0 +1,20 @@ +- name: Georgia is in south region. + period: 2024 + input: + state_code: GA + output: + is_southern_region: true + +- name: Florida is in south region. + period: 2024 + input: + state_code: FL + output: + is_southern_region: true + +- name: Massachusetts is not in south region. + period: 2024 + input: + state_code: MA + output: + is_southern_region: false diff --git a/policyengine_us/tests/policy/baseline/household/demographic/geographic/region/is_western_region.yaml b/policyengine_us/tests/policy/baseline/household/demographic/geographic/region/is_western_region.yaml new file mode 100644 index 00000000000..c5a7699c833 --- /dev/null +++ b/policyengine_us/tests/policy/baseline/household/demographic/geographic/region/is_western_region.yaml @@ -0,0 +1,20 @@ +- name: New Mexico is in west region. + period: 2024 + input: + state_code: NM + output: + is_western_region: true + +- name: California is in west region. + period: 2024 + input: + state_code: CA + output: + is_western_region: true + +- name: Massachusetts is not in west region. + period: 2024 + input: + state_code: MA + output: + is_western_region: false diff --git a/policyengine_us/tests/policy/baseline/household/demographic/geographic/region/midwestern_county.yaml b/policyengine_us/tests/policy/baseline/household/demographic/geographic/region/midwestern_county.yaml new file mode 100644 index 00000000000..475de3b7221 --- /dev/null +++ b/policyengine_us/tests/policy/baseline/household/demographic/geographic/region/midwestern_county.yaml @@ -0,0 +1,23 @@ +- name: Cook county belongs to Chicago by MSA. + period: 2024 + input: + state_code: IL + county_str: COOK_COUNTY_IL + output: + midwestern_county: CHICAGO + +- name: Slope county belongs to default midwest. + period: 2024 + input: + state_code: ND + county_str: SLOPE_COUNTY_ND + output: + midwestern_county: MIDWEST_DEFAULT + +- name: Not part of any midwest region. + period: 2024 + input: + state_code: MA + county_str: SUFFOLK_COUNTY_MA + output: + midwestern_county: NONE diff --git a/policyengine_us/tests/policy/baseline/household/demographic/geographic/region/northeastern_county.yaml b/policyengine_us/tests/policy/baseline/household/demographic/geographic/region/northeastern_county.yaml new file mode 100644 index 00000000000..fbaddee2c87 --- /dev/null +++ b/policyengine_us/tests/policy/baseline/household/demographic/geographic/region/northeastern_county.yaml @@ -0,0 +1,23 @@ +- name: Essex county belongs to Boston by MSA. + period: 2024 + input: + state_code: MA + county_str: ESSEX_COUNTY_MA + output: + northeastern_county: BOSTON + +- name: Barnstable county belongs to default northeast. + period: 2024 + input: + state_code: MA + county_str: BARNSTABLE_COUNTY_MA + output: + northeastern_county: NORTHEAST_DEFAULT + +- name: Not part of any northeast region. + period: 2024 + input: + state_code: IL + county_str: COOK_COUNTY_IL + output: + northeastern_county: NONE diff --git a/policyengine_us/tests/policy/baseline/household/demographic/geographic/region/southern_county.yaml b/policyengine_us/tests/policy/baseline/household/demographic/geographic/region/southern_county.yaml new file mode 100644 index 00000000000..c4af8986838 --- /dev/null +++ b/policyengine_us/tests/policy/baseline/household/demographic/geographic/region/southern_county.yaml @@ -0,0 +1,23 @@ +- name: Fulton county belongs to Atlanta by MSA. + period: 2024 + input: + state_code: GA + county_str: FULTON_COUNTY_GA + output: + southern_county: ATLANTA + +- name: Calhoun county belongs to default south. + period: 2024 + input: + state_code: FL + county_str: CALHOUN_COUNTY_FL + output: + southern_county: SOUTH_DEFAULT + +- name: Not part of any south region. + period: 2024 + input: + state_code: MA + county_str: SUFFOLK_COUNTY_MA + output: + southern_county: NONE diff --git a/policyengine_us/tests/policy/baseline/household/demographic/geographic/region/western_county.yaml b/policyengine_us/tests/policy/baseline/household/demographic/geographic/region/western_county.yaml new file mode 100644 index 00000000000..223bf097b48 --- /dev/null +++ b/policyengine_us/tests/policy/baseline/household/demographic/geographic/region/western_county.yaml @@ -0,0 +1,24 @@ +- name: Orange county belongs to Los Angeles by MSA. + period: 2024 + input: + state_code: CA + county: ORANGE_COUNTY_CA + output: + western_county: LOS_ANGELES + +- name: Kern county belongs to default west. + period: 2024 + input: + state_code: CA + county: KERN_COUNTY_CA + output: + western_county: WEST_DEFAULT + +- name: Not part of any west region. + period: 2024 + input: + state_code: MA + county: SUFFOLK_COUNTY_MA + is_western_region: false + output: + western_county: NONE diff --git a/policyengine_us/tests/policy/baseline/household/demographic/person/has_a_vehicle_loan.yaml b/policyengine_us/tests/policy/baseline/household/demographic/person/has_a_vehicle_loan.yaml new file mode 100644 index 00000000000..5345fff1e29 --- /dev/null +++ b/policyengine_us/tests/policy/baseline/household/demographic/person/has_a_vehicle_loan.yaml @@ -0,0 +1,14 @@ +- name: Has a vehicle loan. + period: 2024 + input: + vehicle_mortgage_expense: 1_000 + output: + has_a_vehicle_loan: true + +- name: Don't have a vehicle loan. + period: 2024 + input: + vehicle_mortgage_expense: 0 + output: + has_a_vehicle_loan: false + diff --git a/policyengine_us/tests/policy/baseline/household/demographic/spm_unit/vehicles_loan_count.yaml b/policyengine_us/tests/policy/baseline/household/demographic/spm_unit/vehicles_loan_count.yaml new file mode 100644 index 00000000000..92383bd1bed --- /dev/null +++ b/policyengine_us/tests/policy/baseline/household/demographic/spm_unit/vehicles_loan_count.yaml @@ -0,0 +1,31 @@ +- name: Case 1, 3 people have vehicle loan. + period: 2022 + input: + people: + p1: + has_a_vehicle_loan: true + p2: + has_a_vehicle_loan: true + p3: + has_a_vehicle_loan: true + spm_units: + spm_unit: + members: [p1, p2, p3] + output: + vehicles_loan_count: 3 + +- name: Case 2, 2 people have vehivle loan. + period: 2022 + input: + people: + p1: + has_a_vehicle_loan: true + p2: + has_a_vehicle_loan: false + p3: + has_a_vehicle_loan: true + spm_units: + spm_unit: + members: [p1, p2, p3] + output: + vehicles_loan_count: 2 diff --git a/policyengine_us/variables/gov/bankruptcy/chapter_7_bankruptcy_adjust_monthly_income.py b/policyengine_us/variables/gov/bankruptcy/chapter_7_bankruptcy_adjust_monthly_income.py new file mode 100644 index 00000000000..ac2c36612dc --- /dev/null +++ b/policyengine_us/variables/gov/bankruptcy/chapter_7_bankruptcy_adjust_monthly_income.py @@ -0,0 +1,46 @@ +from policyengine_us.model_api import * + + +class chapter_7_bankruptcy_adjust_monthly_income(Variable): + value_type = float + entity = SPMUnit + label = "Adjust monthly income" + definition_period = MONTH + reference = ( + "https://www.uscourts.gov/sites/default/files/form_b122a-1.pdf#page=1", + "https://www.cacb.uscourts.gov/sites/cacb/files/documents/forms/122A2.pdf#page=1", + ) + documentation = "Line 4 in form 122A-2" + + def formula(spm_unit, period, parameters): + employment_income = add(spm_unit, period, ["irs_employment_income"]) + alimony_income = add(spm_unit, period, ["alimony_income"]) + child_support_received = add( + spm_unit, period, ["child_support_received"] + ) + business_and_farm_income = add( + spm_unit, period, ["partnership_s_corp_income", "farm_income"] + ) + rental_income = add( + spm_unit, period, ["farm_rent_income", "rental_income"] + ) + interest_and_dividends_income = add( + spm_unit, period, ["dividend_income", "interest_income"] + ) + unemployment_compensation = add( + spm_unit, period, ["unemployment_compensation"] + ) + pension_and_retirement_income = add( + spm_unit, period, ["pension_income", "retirement_distributions"] + ) + total = ( + employment_income + + alimony_income + + child_support_received + + business_and_farm_income + + rental_income + + interest_and_dividends_income + + unemployment_compensation + + pension_and_retirement_income + ) + return total diff --git a/policyengine_us/variables/gov/bankruptcy/chapter_7_bankruptcy_nonpriority_unsecured_debt.py b/policyengine_us/variables/gov/bankruptcy/chapter_7_bankruptcy_nonpriority_unsecured_debt.py new file mode 100644 index 00000000000..dc861a22cc3 --- /dev/null +++ b/policyengine_us/variables/gov/bankruptcy/chapter_7_bankruptcy_nonpriority_unsecured_debt.py @@ -0,0 +1,10 @@ +from policyengine_us.model_api import * + + +class chapter_7_bankruptcy_nonpriority_unsecured_debt(Variable): + value_type = float + entity = SPMUnit + label = "Nonpriority unsecured debt" + definition_period = MONTH + reference = "https://www.cacb.uscourts.gov/sites/cacb/files/documents/forms/122A2.pdf#page=9" + documentation = "Line 41a in form 122A-2" diff --git a/policyengine_us/variables/gov/bankruptcy/deductions/chapter_7_bankruptcy_additional_expense_deductions.py b/policyengine_us/variables/gov/bankruptcy/deductions/chapter_7_bankruptcy_additional_expense_deductions.py new file mode 100644 index 00000000000..a2b605b696f --- /dev/null +++ b/policyengine_us/variables/gov/bankruptcy/deductions/chapter_7_bankruptcy_additional_expense_deductions.py @@ -0,0 +1,43 @@ +from policyengine_us.model_api import * + + +class chapter_7_bankruptcy_additonal_expenses_deductions(Variable): + value_type = float + entity = SPMUnit + label = "Additional expenses deductions" + definition_period = MONTH + reference = "https://www.cacb.uscourts.gov/sites/cacb/files/documents/forms/122A2.pdf#page=6" + + def formula(spm_unit, period, parameters): + health_insurance_expense = add( + spm_unit, period, ["health_insurance_premiums"] + ) + health_savings_account_expense = add( + spm_unit, period, ["health_savings_account_payroll_contributions"] + ) + + care_expense = add(spm_unit, period, ["care_expenses"]) + home_energy_costs = spm_unit.household( + "current_home_energy_use", period + ) + education_expense = add(spm_unit, period, ["k12_tuition_and_fees"]) + child_count = add(spm_unit, period, ["is_child_dependent"]) + p = parameters(period).gov.bankruptcy.expenses + education_expense_allowance = child_count * p.dependent_expense + adjust_education_expense = min_( + education_expense, education_expense_allowance + ) + + charitable_contributions = add( + spm_unit, + period, + ["charitable_cash_donations", "charitable_non_cash_donations"], + ) + return ( + health_insurance_expense + + health_savings_account_expense + + care_expense + + home_energy_costs + + adjust_education_expense + + charitable_contributions + ) diff --git a/policyengine_us/variables/gov/bankruptcy/deductions/chapter_7_bankruptcy_debt_payment_deductions.py b/policyengine_us/variables/gov/bankruptcy/deductions/chapter_7_bankruptcy_debt_payment_deductions.py new file mode 100644 index 00000000000..2fa900dc1fc --- /dev/null +++ b/policyengine_us/variables/gov/bankruptcy/deductions/chapter_7_bankruptcy_debt_payment_deductions.py @@ -0,0 +1,16 @@ +from policyengine_us.model_api import * + + +class chapter_7_bankruptcy_debt_payment_deductions(Variable): + value_type = float + entity = SPMUnit + label = "Debt payment deductions" + definition_period = MONTH + reference = "https://www.cacb.uscourts.gov/sites/cacb/files/documents/forms/122A2.pdf#page=7" + + def formula(spm_unit, period, parameters): + housing_expense = spm_unit("housing_cost", period) + vehicle_mortgage_expense = add( + spm_unit, period, ["vehicle_mortgage_expense"] + ) + return housing_expense + vehicle_mortgage_expense diff --git a/policyengine_us/variables/gov/bankruptcy/deductions/chapter_7_bankruptcy_food_clothing_and_others_deduction.py b/policyengine_us/variables/gov/bankruptcy/deductions/chapter_7_bankruptcy_food_clothing_and_others_deduction.py new file mode 100644 index 00000000000..0cc96e403a2 --- /dev/null +++ b/policyengine_us/variables/gov/bankruptcy/deductions/chapter_7_bankruptcy_food_clothing_and_others_deduction.py @@ -0,0 +1,23 @@ +from policyengine_us.model_api import * + + +class chapter_7_bankruptcy_food_clothing_and_others_deduction(Variable): + value_type = float + entity = SPMUnit + label = "National standards of food, clothing and other items deduction" + definition_period = MONTH + reference = "https://www.cacb.uscourts.gov/sites/cacb/files/documents/forms/122A2.pdf#page=2" + documentation = "Line 6 in form 122A-2" + + def formula(spm_unit, period, parameters): + p = parameters( + period + ).gov.bankruptcy.national_standards.food_clothing_and_others + unit = spm_unit("spm_unit_size", period) + size = clip(unit, 1, None) + capped_people = min_(size, 4).astype(int) + additional_people = size - capped_people + base = p.main[capped_people] + additional_amount = p.additional * additional_people + + return base + additional_amount diff --git a/policyengine_us/variables/gov/bankruptcy/deductions/chapter_7_bankruptcy_local_standards_deductions.py b/policyengine_us/variables/gov/bankruptcy/deductions/chapter_7_bankruptcy_local_standards_deductions.py new file mode 100644 index 00000000000..4559278f406 --- /dev/null +++ b/policyengine_us/variables/gov/bankruptcy/deductions/chapter_7_bankruptcy_local_standards_deductions.py @@ -0,0 +1,65 @@ +from policyengine_us.model_api import * + + +class chapter_7_bankruptcy_local_standards_deductions(Variable): + value_type = float + entity = SPMUnit + label = "Local standards deductions" + definition_period = MONTH + reference = "https://www.cacb.uscourts.gov/sites/cacb/files/documents/forms/122A2.pdf#page=3" + documentation = "Line 8 to line 15 (expect line 12)in form 122A-2" + + def formula(spm_unit, period, parameters): + p = parameters(period).gov.bankruptcy.local_standards + unit = spm_unit("spm_unit_size", period) + state = spm_unit.household("state_code", period) + size = clip(unit, 1, None) + insurance_and_operating_allowance = ( + p.housing_and_utilities.insurance_and_operating[state][size] + ) + + mortgage_or_rent_allowance = p.housing_and_utilities.mortgage_or_rent[ + state + ][size] + housing_expense = spm_unit("housing_cost", period) + net_mortgage_or_rent_expense = max_( + mortgage_or_rent_allowance - housing_expense, 0 + ) + + qualify_vehicles_owned = spm_unit("vehicles_loan_count", period) + qualify_vehicles_owned_capped = min_( + qualify_vehicles_owned, p.vehicle_operation.vehicles_owned_cap + ) + ownership_costs_allowance = p.vehicle_operation.ownership_costs[ + qualify_vehicles_owned_capped + ] + vehicle_mortgage_expense = add( + spm_unit, period, ["vehicle_mortgage_expense"] + ) + + net_vehicle_ownership_expense = max_( + ownership_costs_allowance - vehicle_mortgage_expense, 0 + ) + + public_transportation_allowance = ( + p.vehicle_operation.public_transportation + ) + public_transportation_expense = add( + spm_unit, period, ["public_transportation_expense"] + ) + + have_one_ore_more_vehicles = qualify_vehicles_owned >= 1 + capped_public_transportation_expense = min_( + public_transportation_expense, public_transportation_allowance + ) + additional_public_transportation_allowance = where( + have_one_ore_more_vehicles, capped_public_transportation_expense, 0 + ) + + return ( + insurance_and_operating_allowance + + net_mortgage_or_rent_expense + + net_vehicle_ownership_expense + + public_transportation_allowance + + additional_public_transportation_allowance + ) diff --git a/policyengine_us/variables/gov/bankruptcy/deductions/chapter_7_bankruptcy_other_necessary_expenses_deductions.py b/policyengine_us/variables/gov/bankruptcy/deductions/chapter_7_bankruptcy_other_necessary_expenses_deductions.py new file mode 100644 index 00000000000..5f3c63f7d2d --- /dev/null +++ b/policyengine_us/variables/gov/bankruptcy/deductions/chapter_7_bankruptcy_other_necessary_expenses_deductions.py @@ -0,0 +1,36 @@ +from policyengine_us.model_api import * + + +class chapter_7_bankruptcy_other_necessary_expenses_deductions(Variable): + value_type = float + entity = SPMUnit + label = "Other necessary expenses deductions" + definition_period = MONTH + reference = "https://www.cacb.uscourts.gov/sites/cacb/files/documents/forms/122A2.pdf#page=5" + + def formula(spm_unit, period, parameters): + income_tax = spm_unit("spm_unit_federal_tax", period) + + child_support_expense = add( + spm_unit, period, ["child_support_expense"] + ) + childcare_expenses = spm_unit("childcare_expenses", period) + + out_of_pocket_healthcare_allowance = spm_unit( + "chapter_7_bankruptcy_out_of_pocket_health_care_deduction", period + ) + out_of_pocket_healthcare_expense = add( + spm_unit, period, ["medical_out_of_pocket_expenses"] + ) + additional_health_care_expenses = max_( + out_of_pocket_healthcare_expense + - out_of_pocket_healthcare_allowance, + 0, + ) + + return ( + income_tax + + child_support_expense + + childcare_expenses + + additional_health_care_expenses + ) diff --git a/policyengine_us/variables/gov/bankruptcy/deductions/chapter_7_bankruptcy_out_of_pocket_health_care_deduction.py b/policyengine_us/variables/gov/bankruptcy/deductions/chapter_7_bankruptcy_out_of_pocket_health_care_deduction.py new file mode 100644 index 00000000000..4ddc4766149 --- /dev/null +++ b/policyengine_us/variables/gov/bankruptcy/deductions/chapter_7_bankruptcy_out_of_pocket_health_care_deduction.py @@ -0,0 +1,22 @@ +from policyengine_us.model_api import * + + +class chapter_7_bankruptcy_out_of_pocket_health_care_deduction(Variable): + value_type = float + entity = SPMUnit + label = "National standard of Out-of-pocket health care deduction" + definition_period = YEAR + reference = "https://www.cacb.uscourts.gov/sites/cacb/files/documents/forms/122A2.pdf#page=2" + documentation = "Line 7 in form 122A-2" + + def formula(spm_unit, period, parameters): + p = parameters( + period + ).gov.bankruptcy.national_standards.out_of_pocket_health_care.amount + + age = spm_unit.members("age", period) + out_of_pocket_health_care_allowance = p.calc(age) + + return ( + spm_unit.sum(out_of_pocket_health_care_allowance) * MONTHS_IN_YEAR + ) diff --git a/policyengine_us/variables/gov/bankruptcy/deductions/chapter_7_bankruptcy_total_deductions.py b/policyengine_us/variables/gov/bankruptcy/deductions/chapter_7_bankruptcy_total_deductions.py new file mode 100644 index 00000000000..fd97573a928 --- /dev/null +++ b/policyengine_us/variables/gov/bankruptcy/deductions/chapter_7_bankruptcy_total_deductions.py @@ -0,0 +1,18 @@ +from policyengine_us.model_api import * + + +class chapter_7_bankruptcy_total_deductions(Variable): + value_type = float + entity = SPMUnit + label = "Total deductions from Income" + definition_period = MONTH + + adds = [ + "chapter_7_bankruptcy_food_clothing_and_others_deduction", + "chapter_7_bankruptcy_out_of_pocket_health_care_deduction", + "chapter_7_bankruptcy_local_standards_deductions", + "chapter_7_bankruptcy_vehicle_operation_expense_deduction", + "chapter_7_bankruptcy_other_necessary_expenses_deductions", + "chapter_7_bankruptcy_additional_expense_deductions", + "chapter_7_bankruptcy_debt_payment_deductions", + ] diff --git a/policyengine_us/variables/gov/bankruptcy/deductions/chapter_7_bankruptcy_vehicle_operation_expense_deduction.py b/policyengine_us/variables/gov/bankruptcy/deductions/chapter_7_bankruptcy_vehicle_operation_expense_deduction.py new file mode 100644 index 00000000000..be73494e6da --- /dev/null +++ b/policyengine_us/variables/gov/bankruptcy/deductions/chapter_7_bankruptcy_vehicle_operation_expense_deduction.py @@ -0,0 +1,43 @@ +from policyengine_us.model_api import * + + +class chapter_7_bankruptcy_vehicle_operation_expense_deduction(Variable): + value_type = float + entity = SPMUnit + label = "Vehicle operation expense deduction" + definition_period = MONTH + reference = "https://www.cacb.uscourts.gov/sites/cacb/files/documents/forms/122A2.pdf#page=4" + documentation = "Line 12 in form 122A-2" + + def formula(spm_unit, period, parameters): + p = parameters(period).gov.bankruptcy.local_standards.vehicle_operation + + qualify_vehicles_owned = spm_unit("vehicles_loan_count", period) + qualify_vehicles_owned_capped = min_( + qualify_vehicles_owned, p.vehicles_owned_cap + ) + northeast = spm_unit.household("northeastern_county", period) + midwest = spm_unit.household("midwestern_county", period) + south = spm_unit.household("southern_county", period) + west = spm_unit.household("western_county", period) + vehicle_operating_expense_northeast = ( + p.region_operating_costs.northeast[northeast][ + qualify_vehicles_owned_capped + ] + ) + vehicle_operating_expense_midwest = p.region_operating_costs.midwest[ + midwest + ][qualify_vehicles_owned_capped] + vehicle_operating_expense_south = p.region_operating_costs.south[ + south + ][qualify_vehicles_owned_capped] + vehicle_operating_expense_west = p.region_operating_costs.west[west][ + qualify_vehicles_owned_capped + ] + + return ( + vehicle_operating_expense_northeast + + vehicle_operating_expense_midwest + + vehicle_operating_expense_south + + vehicle_operating_expense_west + ) diff --git a/policyengine_us/variables/gov/bankruptcy/expenses/public_transportation_expense.py b/policyengine_us/variables/gov/bankruptcy/expenses/public_transportation_expense.py new file mode 100644 index 00000000000..e1b6a6afa9b --- /dev/null +++ b/policyengine_us/variables/gov/bankruptcy/expenses/public_transportation_expense.py @@ -0,0 +1,9 @@ +from policyengine_us.model_api import * + + +class public_transportation_expense(Variable): + value_type = float + entity = Person + label = "Public transportation expense" + unit = USD + definition_period = YEAR diff --git a/policyengine_us/variables/gov/bankruptcy/expenses/vehicle_mortgage_expense.py b/policyengine_us/variables/gov/bankruptcy/expenses/vehicle_mortgage_expense.py new file mode 100644 index 00000000000..c9da02b5719 --- /dev/null +++ b/policyengine_us/variables/gov/bankruptcy/expenses/vehicle_mortgage_expense.py @@ -0,0 +1,10 @@ +from policyengine_us.model_api import * + + +class vehicle_mortgage_expense(Variable): + value_type = float + entity = Person + label = "Vehicle mortgage expense" + unit = USD + definition_period = YEAR + reference = "https://www.cacb.uscourts.gov/sites/cacb/files/documents/forms/122A2.pdf#page=4" diff --git a/policyengine_us/variables/gov/bankruptcy/is_presumption_of_abuse.py b/policyengine_us/variables/gov/bankruptcy/is_presumption_of_abuse.py new file mode 100644 index 00000000000..25447928125 --- /dev/null +++ b/policyengine_us/variables/gov/bankruptcy/is_presumption_of_abuse.py @@ -0,0 +1,39 @@ +from policyengine_us.model_api import * + + +class is_presumption_of_abuse(Variable): + value_type = bool + entity = SPMUnit + label = "Is presumption of abuse" + definition_period = YEAR + reference = "https://www.cacb.uscourts.gov/sites/cacb/files/documents/forms/122A2.pdf#page=8" + documentation = "Line 39-xx in form 122A-2" + + def formula(spm_unit, period, parameters): + p = parameters(period).gov.bankruptcy.presumption_abuse + + adjusted_monthly_income = spm_unit( + "chapter_7_bankruptcy_adjust_monthly_income", period + ) + total_deductions = spm_unit( + "chapter_7_bankruptcy_total_deductions", period + ) + monthly_disposable_income = adjusted_monthly_income - total_deductions + total_disposable_income = ( + monthly_disposable_income * MONTHS_IN_YEAR * 5 + ) + nonpriority_unsecured_debt = spm_unit( + "chapter_7_bankruptcy_nonpriority_unsecured_debt", period + ) + adjust_nonpriority_unsecured_debt = nonpriority_unsecured_debt * p.rate + is_income_high = total_disposable_income > p.amount.higher + is_income_in_between = ( + p.amount.lower < total_disposable_income < p.amount.higher + ) + is_income_exceeding_debt = ( + total_disposable_income >= adjust_nonpriority_unsecured_debt + ) + + return is_income_high | ( + is_income_in_between & is_income_exceeding_debt + ) diff --git a/policyengine_us/variables/household/demographic/geographic/region/is_midwestern_region.py b/policyengine_us/variables/household/demographic/geographic/region/is_midwestern_region.py new file mode 100644 index 00000000000..da902716c06 --- /dev/null +++ b/policyengine_us/variables/household/demographic/geographic/region/is_midwestern_region.py @@ -0,0 +1,18 @@ +from policyengine_us.model_api import * + + +class is_midwestern_region(Variable): + value_type = bool + entity = SPMUnit + label = ( + "Is in a midwestern region under the Chapter 7 Bankruptcy means test" + ) + definition_period = YEAR + reference = "https://www.irs.gov/businesses/small-businesses-self-employed/local-standards-transportation" + + def formula(spm_unit, period, parameters): + state_code = spm_unit.household("state_code", period).decode_to_str() + + p = parameters(period).household.state_group + + return np.isin(state_code, p.midwest) diff --git a/policyengine_us/variables/household/demographic/geographic/region/is_northeastern_region.py b/policyengine_us/variables/household/demographic/geographic/region/is_northeastern_region.py new file mode 100644 index 00000000000..efc4c8501bb --- /dev/null +++ b/policyengine_us/variables/household/demographic/geographic/region/is_northeastern_region.py @@ -0,0 +1,18 @@ +from policyengine_us.model_api import * + + +class is_northeastern_region(Variable): + value_type = bool + entity = SPMUnit + label = ( + "Is in a norteastern region under the Chapter 7 Bankruptcy means test" + ) + definition_period = YEAR + reference = "https://www.irs.gov/businesses/small-businesses-self-employed/local-standards-transportation" + + def formula(spm_unit, period, parameters): + state_code = spm_unit.household("state_code", period).decode_to_str() + + p = parameters(period).household.state_group + + return np.isin(state_code, p.northeast) diff --git a/policyengine_us/variables/household/demographic/geographic/region/is_southern_region.py b/policyengine_us/variables/household/demographic/geographic/region/is_southern_region.py new file mode 100644 index 00000000000..09e8f9153a2 --- /dev/null +++ b/policyengine_us/variables/household/demographic/geographic/region/is_southern_region.py @@ -0,0 +1,16 @@ +from policyengine_us.model_api import * + + +class is_southern_region(Variable): + value_type = bool + entity = SPMUnit + label = "Is in a southern region under the Chapter 7 Bankruptcy means test" + definition_period = YEAR + reference = "https://www.irs.gov/businesses/small-businesses-self-employed/local-standards-transportation" + + def formula(spm_unit, period, parameters): + state_code = spm_unit.household("state_code", period).decode_to_str() + + p = parameters(period).household.state_group + + return np.isin(state_code, p.south) diff --git a/policyengine_us/variables/household/demographic/geographic/region/is_western_region.py b/policyengine_us/variables/household/demographic/geographic/region/is_western_region.py new file mode 100644 index 00000000000..c40a7b396a2 --- /dev/null +++ b/policyengine_us/variables/household/demographic/geographic/region/is_western_region.py @@ -0,0 +1,16 @@ +from policyengine_us.model_api import * + + +class is_western_region(Variable): + value_type = bool + entity = SPMUnit + label = "Is in a western region under the Chapter 7 Bankruptcy means test" + definition_period = YEAR + reference = "https://www.irs.gov/businesses/small-businesses-self-employed/local-standards-transportation" + + def formula(spm_unit, period, parameters): + state_code = spm_unit.household("state_code", period).decode_to_str() + + p = parameters(period).household.state_group + + return np.isin(state_code, p.west) diff --git a/policyengine_us/variables/household/demographic/geographic/region/midwestern_county.py b/policyengine_us/variables/household/demographic/geographic/region/midwestern_county.py new file mode 100644 index 00000000000..2457bbb51c6 --- /dev/null +++ b/policyengine_us/variables/household/demographic/geographic/region/midwestern_county.py @@ -0,0 +1,56 @@ +from policyengine_us.model_api import * + + +class MidWesternCounty(Enum): + CHICAGO = "Chicago" + CLEVELAND = "Cleveland" + DETROIT = "Detroit" + MINNEAPOLIS_ST_PAUL = "Minneapolis-St. Paul" + ST_LOUIS = "St. Louis" + MIDWEST_DEFAULT = "Midwest default" + NONE = "None" + + +class midwestern_county(Variable): + value_type = Enum + entity = Household + possible_values = MidWesternCounty + default_value = MidWesternCounty.NONE + definition_period = YEAR + defined_for = "is_midwestern_region" + label = "Midwestern region county group" + reference = "https://www.irs.gov/businesses/small-businesses-self-employed/local-standards-transportation" + + def formula(household, period, parameters): + county = household("county_str", period) + + p = parameters(period).household.county_group + + chicago = np.isin(county, p.midwest.chicago) + cleveland = np.isin(county, p.midwest.cleveland) + detroit = np.isin(county, p.midwest.detroit) + minneapolis_st_paul = np.isin(county, p.midwest.minneapolis_st_paul) + st_louis = np.isin(county, p.midwest.st_louis) + + conditions = [ + chicago, + cleveland, + detroit, + minneapolis_st_paul, + st_louis, + ~(chicago | cleveland | detroit | minneapolis_st_paul | st_louis), + ] + results = [ + MidWesternCounty.CHICAGO, + MidWesternCounty.CLEVELAND, + MidWesternCounty.DETROIT, + MidWesternCounty.MINNEAPOLIS_ST_PAUL, + MidWesternCounty.ST_LOUIS, + MidWesternCounty.MIDWEST_DEFAULT, + ] + + return select( + conditions, + results, + default=MidWesternCounty.NONE, + ) diff --git a/policyengine_us/variables/household/demographic/geographic/region/northeastern_county.py b/policyengine_us/variables/household/demographic/geographic/region/northeastern_county.py new file mode 100644 index 00000000000..f8d406fb402 --- /dev/null +++ b/policyengine_us/variables/household/demographic/geographic/region/northeastern_county.py @@ -0,0 +1,47 @@ +from policyengine_us.model_api import * + + +class NorthEasternCounty(Enum): + BOSTON = "Boston" + NEW_YORK = "New York" + PHILADELPHIA = "Philadelphia" + NORTHEAST_DEFAULT = "Northeast default" + NONE = "None" + + +class northeastern_county(Variable): + value_type = Enum + entity = Household + possible_values = NorthEasternCounty + default_value = NorthEasternCounty.NONE + definition_period = YEAR + defined_for = "is_northeastern_region" + label = "Northeastern region county group" + reference = "https://www.irs.gov/businesses/small-businesses-self-employed/local-standards-transportation" + + def formula(household, period, parameters): + county = household("county_str", period) + + p = parameters(period).household.county_group + boston = np.isin(county, p.northeast.boston) + new_york = np.isin(county, p.northeast.new_york) + philadelphia = np.isin(county, p.northeast.philadelphia) + + conditions = [ + boston, + new_york, + philadelphia, + ~(boston | new_york | philadelphia), + ] + results = [ + NorthEasternCounty.BOSTON, + NorthEasternCounty.NEW_YORK, + NorthEasternCounty.PHILADELPHIA, + NorthEasternCounty.NORTHEAST_DEFAULT, + ] + + return select( + conditions, + results, + default=NorthEasternCounty.NONE, + ) diff --git a/policyengine_us/variables/household/demographic/geographic/region/southern_county.py b/policyengine_us/variables/household/demographic/geographic/region/southern_county.py new file mode 100644 index 00000000000..4b9ce5c1b3b --- /dev/null +++ b/policyengine_us/variables/household/demographic/geographic/region/southern_county.py @@ -0,0 +1,72 @@ +from policyengine_us.model_api import * + + +class SouthernCounty(Enum): + ATLANTA = "Atlanta" + BALTIMORE = "Baltimore" + DALLAS_FT_WORTH = "Dallas-Ft. Worth" + HOUSTON = "Houston" + MIAMI = "Miami" + TAMPA = "Tampa" + WASHINGTON_DC = "Washington DC" + SOUTH_DEFAULT = "South default" + NONE = "None" + + +class southern_county(Variable): + value_type = Enum + entity = Household + possible_values = SouthernCounty + default_value = SouthernCounty.NONE + definition_period = YEAR + defined_for = "is_southern_region" + label = "Southern region county group" + reference = "https://www.irs.gov/businesses/small-businesses-self-employed/local-standards-transportation" + + def formula(household, period, parameters): + county = household("county_str", period) + + p = parameters(period).household.county_group + + atlanta = np.isin(county, p.south.atlanta) + baltimore = np.isin(county, p.south.baltimore) + dallas_ft_worth = np.isin(county, p.south.dallas_ft_worth) + houston = np.isin(county, p.south.houston) + miami = np.isin(county, p.south.miami) + tampa = np.isin(county, p.south.tampa) + washington_dc = np.isin(county, p.south.washington_dc) + + conditions = [ + atlanta, + baltimore, + dallas_ft_worth, + houston, + miami, + tampa, + washington_dc, + ~( + atlanta + | baltimore + | dallas_ft_worth + | houston + | miami + | tampa + | washington_dc + ), + ] + results = [ + SouthernCounty.ATLANTA, + SouthernCounty.BALTIMORE, + SouthernCounty.DALLAS_FT_WORTH, + SouthernCounty.HOUSTON, + SouthernCounty.MIAMI, + SouthernCounty.TAMPA, + SouthernCounty.WASHINGTON_DC, + SouthernCounty.SOUTH_DEFAULT, + ] + + return select( + conditions, + results, + default=SouthernCounty.NONE, + ) diff --git a/policyengine_us/variables/household/demographic/geographic/region/western_county.py b/policyengine_us/variables/household/demographic/geographic/region/western_county.py new file mode 100644 index 00000000000..b87af8c7c50 --- /dev/null +++ b/policyengine_us/variables/household/demographic/geographic/region/western_county.py @@ -0,0 +1,77 @@ +from policyengine_us.model_api import * + + +class WesternCounty(Enum): + ANCHORAGE = "Anchorage" + DENVER = "Denver" + HONOLULU = "Honolulu" + LOS_ANGELES = "Los Angeles" + PHOENIX = "Phoenix" + SAN_DIEGO = "San Diego" + SAN_FRANCISCO = "San Francisco" + SEATTLE = "Seattle" + WEST_DEFAULT = "West default" + NONE = "None" + + +class western_county(Variable): + value_type = Enum + entity = Household + possible_values = WesternCounty + default_value = WesternCounty.NONE + definition_period = YEAR + defined_for = "is_western_region" + label = "Western region county group" + reference = "https://www.irs.gov/businesses/small-businesses-self-employed/local-standards-transportation" + + def formula(household, period, parameters): + county = household("county", period).decode_to_str() + + p = parameters(period).household.county_group + + anchorage = np.isin(county, p.west.anchorage) + denver = np.isin(county, p.west.denver) + honolulu = np.isin(county, p.west.honolulu) + los_angeles = np.isin(county, p.west.los_angeles) + phoenix = np.isin(county, p.west.phoenix) + san_diego = np.isin(county, p.west.san_diego) + san_francisco = np.isin(county, p.west.san_francisco) + seattle = np.isin(county, p.west.seattle) + + conditions = [ + anchorage, + denver, + honolulu, + los_angeles, + phoenix, + san_diego, + san_francisco, + seattle, + ~( + anchorage + | denver + | honolulu + | los_angeles + | phoenix + | san_diego + | san_francisco + | seattle + ), + ] + results = [ + WesternCounty.ANCHORAGE, + WesternCounty.DENVER, + WesternCounty.HONOLULU, + WesternCounty.LOS_ANGELES, + WesternCounty.PHOENIX, + WesternCounty.SAN_DIEGO, + WesternCounty.SAN_FRANCISCO, + WesternCounty.SEATTLE, + WesternCounty.WEST_DEFAULT, + ] + + return select( + conditions, + results, + default=WesternCounty.NONE, + ) diff --git a/policyengine_us/variables/household/demographic/person/has_a_vehicle_loan.py b/policyengine_us/variables/household/demographic/person/has_a_vehicle_loan.py new file mode 100644 index 00000000000..38191684874 --- /dev/null +++ b/policyengine_us/variables/household/demographic/person/has_a_vehicle_loan.py @@ -0,0 +1,12 @@ +from policyengine_us.model_api import * + + +class has_a_vehicle_loan(Variable): + value_type = bool + entity = Person + label = "Has vehicel loan or lease" + definition_period = YEAR + + def formula(person, period, parameters): + total_mortage_expenses = person("vehicle_mortgage_expense", period) + return total_mortage_expenses > 0 diff --git a/policyengine_us/variables/household/demographic/spm_unit/vehicles_loan_count.py b/policyengine_us/variables/household/demographic/spm_unit/vehicles_loan_count.py new file mode 100644 index 00000000000..0e8cfeafa1e --- /dev/null +++ b/policyengine_us/variables/household/demographic/spm_unit/vehicles_loan_count.py @@ -0,0 +1,10 @@ +from policyengine_us.model_api import * + + +class vehicles_loan_count(Variable): + value_type = int + entity = SPMUnit + label = "Number of loaned vehicles in SPM unit" + definition_period = YEAR + + adds = ["has_a_vehicle_loan"]