policyengine-us 1.426.0__py3-none-any.whl → 1.439.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (124) hide show
  1. policyengine_us/parameters/gov/aca/state_rating_area_cost.yaml +511 -12
  2. policyengine_us/parameters/gov/contrib/congress/tlaib/{income_security_package → economic_dignity_for_all_agenda}/end_child_poverty_act/adult_dependent_credit/min_age.yaml +1 -1
  3. policyengine_us/parameters/gov/contrib/states/ri/ctc/young_child_boost/age_limit.yaml +9 -0
  4. policyengine_us/parameters/gov/contrib/states/ri/ctc/young_child_boost/amount.yaml +9 -0
  5. policyengine_us/parameters/gov/contrib/states/ri/dependent_exemption/amount.yaml +2 -2
  6. policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/senior_or_disabled/income/limit/couple.yaml +60 -51
  7. policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/senior_or_disabled/income/limit/individual.yaml +60 -51
  8. policyengine_us/parameters/gov/hhs/tanf/cash/income/sources/earned.yaml +13 -0
  9. policyengine_us/parameters/gov/hhs/tanf/cash/income/sources/unearned.yaml +23 -0
  10. policyengine_us/parameters/gov/simulation/labor_supply_responses/elasticities/README.md +1 -206
  11. policyengine_us/parameters/gov/simulation/labor_supply_responses/elasticities/{income/all.yaml → income.yaml} +1 -1
  12. policyengine_us/parameters/gov/simulation/labor_supply_responses/elasticities/substitution.yaml +70 -0
  13. policyengine_us/parameters/gov/states/co/tax/income/credits/care_worker/amount/joint.yaml +10 -0
  14. policyengine_us/parameters/gov/states/co/tax/income/credits/care_worker/amount/single.yaml +10 -0
  15. policyengine_us/parameters/gov/states/co/tax/income/credits/care_worker/income_limit/joint.yaml +10 -0
  16. policyengine_us/parameters/gov/states/co/tax/income/credits/care_worker/income_limit/single.yaml +10 -0
  17. policyengine_us/parameters/gov/states/co/tax/income/credits/refundable.yaml +10 -0
  18. policyengine_us/parameters/gov/states/ga/tax/income/credits/itemizer/amount.yaml +14 -0
  19. policyengine_us/parameters/gov/states/ga/tax/income/credits/non_refundable.yaml +9 -0
  20. policyengine_us/parameters/gov/states/hi/tax/income/alternative_tax/availability.yaml +2 -3
  21. policyengine_us/parameters/gov/states/pa/tax/income/credits/eitc/match.yaml +10 -0
  22. policyengine_us/parameters/gov/states/pa/tax/income/credits/refundable.yaml +6 -0
  23. policyengine_us/parameters/gov/states/va/tax/income/credits/non_refundable.yaml +1 -1
  24. policyengine_us/parameters/gov/territories/pr/tax/income/credits/refundable.yaml +2 -0
  25. policyengine_us/parameters/gov/territories/pr/tax/income/tax_rate/amount.yaml +35 -0
  26. policyengine_us/parameters/gov/usda/snap/work_requirements/general/age_threshold/caring_dependent_child.yaml +1 -1
  27. policyengine_us/parameters/gov/usda/snap/work_requirements/general/age_threshold/exempted.yaml +1 -1
  28. policyengine_us/parameters/gov/usda/snap/work_requirements/general/weekly_hours_threshold.yaml +1 -1
  29. policyengine_us/reforms/congress/tlaib/__init__.py +4 -3
  30. policyengine_us/reforms/congress/tlaib/economic_dignity_for_all_agenda/__init__.py +9 -0
  31. policyengine_us/reforms/congress/tlaib/economic_dignity_for_all_agenda/edaa_end_child_poverty_act.py +237 -0
  32. policyengine_us/reforms/reforms.py +5 -4
  33. policyengine_us/reforms/states/ri/ctc/ri_ctc_reform.py +32 -1
  34. policyengine_us/reforms/states/ri/exemption/ri_exemption_reform.py +26 -5
  35. policyengine_us/tests/policy/baseline/gov/ed/pell_grant/pell_grant_simplified_formula_applies.yaml +1 -1
  36. policyengine_us/tests/policy/baseline/gov/hhs/tanf/tanf_fpg.yaml +53 -0
  37. policyengine_us/tests/policy/baseline/gov/simulation/labor_supply_response/income_elasticity.yaml +6 -12
  38. policyengine_us/tests/policy/baseline/gov/simulation/labor_supply_response/labor_supply_behavioral_response.yaml +24 -2
  39. policyengine_us/tests/policy/baseline/gov/simulation/labor_supply_response/substitution_elasticity.yaml +35 -10
  40. policyengine_us/tests/policy/baseline/gov/ssa/ssi/integration_tests.yaml +150 -4
  41. policyengine_us/tests/policy/baseline/gov/states/co/tax/income/credits/care_worker/co_care_worker_credit.yaml +64 -0
  42. policyengine_us/tests/policy/baseline/gov/states/co/tax/income/credits/care_worker/co_care_worker_credit_eligible.yaml +122 -0
  43. policyengine_us/tests/policy/baseline/gov/states/co/tax/income/credits/care_worker/co_care_worker_credit_eligible_care_worker_count.yaml +65 -0
  44. policyengine_us/tests/policy/baseline/gov/states/ga/tax/income/credits/ga_itemizer_credit.yaml +44 -0
  45. policyengine_us/tests/policy/baseline/gov/states/hi/tax/income/alternative_tax/hi_alternative_tax_on_capital_gains_eligible.yaml +0 -8
  46. policyengine_us/tests/policy/baseline/gov/states/hi/tax/income/credits/cdcc/hi_cdcc.yaml +4 -0
  47. policyengine_us/tests/policy/baseline/gov/states/hi/tax/income/credits/cdcc/hi_cdcc_eligible.yaml +15 -0
  48. policyengine_us/tests/policy/baseline/gov/states/hi/tax/income/integration.yaml +96 -0
  49. policyengine_us/tests/policy/baseline/gov/states/nj/tax/income/credits/cdcc/nj_cdcc.yaml +8 -8
  50. policyengine_us/tests/policy/baseline/gov/states/nj/tax/income/integation.yaml +57 -0
  51. policyengine_us/tests/policy/baseline/gov/states/oh/tax/income/credits/oh_cdcc.yaml +4 -4
  52. policyengine_us/tests/policy/baseline/gov/states/oh/tax/income/integration.yaml +59 -0
  53. policyengine_us/tests/policy/baseline/gov/states/pa/tax/income/credits/pa_eitc.yaml +26 -0
  54. policyengine_us/tests/policy/baseline/gov/territories/pr/tax/income/pr_normal_tax.yaml +31 -0
  55. policyengine_us/tests/policy/baseline/gov/test_categorical_eligibility_vectorization.yaml +41 -0
  56. policyengine_us/tests/policy/contrib/congress/tlaib/economic_dignity_for_all_agenda/edaa_end_child_poverty_act.yaml +198 -0
  57. policyengine_us/tests/policy/contrib/states/ri/ctc_reform_test.yaml +144 -0
  58. policyengine_us/tests/policy/contrib/states/ri/exemption_reform_test.yaml +2 -2
  59. policyengine_us/variables/gov/ed/pell_grant/efc/pell_grant_simplified_formula_applies.py +1 -2
  60. policyengine_us/variables/gov/fcc/lifeline/is_lifeline_eligible.py +2 -2
  61. policyengine_us/variables/gov/hhs/head_start/early_head_start.py +2 -1
  62. policyengine_us/variables/gov/hhs/head_start/head_start.py +2 -1
  63. policyengine_us/variables/gov/hhs/head_start/is_head_start_categorically_eligible.py +1 -3
  64. policyengine_us/variables/gov/hhs/tanf/cash/income/tanf_gross_earned_income.py +13 -0
  65. policyengine_us/variables/gov/hhs/tanf/cash/income/tanf_gross_unearned_income.py +13 -0
  66. policyengine_us/variables/gov/hhs/tanf/tanf_fpg.py +28 -0
  67. policyengine_us/variables/gov/simulation/labor_supply_response/income_elasticity.py +1 -27
  68. policyengine_us/variables/gov/simulation/labor_supply_response/substitution_elasticity.py +18 -43
  69. policyengine_us/variables/gov/ssa/ssi/eligibility/income/deemed/from_ineligible_spouse/is_ssi_spousal_deeming_applies.py +41 -0
  70. policyengine_us/variables/gov/ssa/ssi/eligibility/income/deemed/from_ineligible_spouse/ssi_income_deemed_from_ineligible_spouse.py +20 -20
  71. policyengine_us/variables/gov/ssa/ssi/ssi.py +22 -1
  72. policyengine_us/variables/gov/ssa/ssi/ssi_amount_if_eligible.py +26 -4
  73. policyengine_us/variables/gov/states/ca/cpuc/care/eligibility/ca_care_categorically_eligible.py +2 -2
  74. policyengine_us/variables/gov/states/co/tax/income/credits/care_worker/co_care_worker_credit.py +26 -0
  75. policyengine_us/variables/gov/states/co/tax/income/credits/care_worker/co_care_worker_credit_eligible.py +27 -0
  76. policyengine_us/variables/gov/states/co/tax/income/credits/care_worker/co_care_worker_credit_eligible_care_worker.py +10 -0
  77. policyengine_us/variables/gov/states/co/tax/income/credits/care_worker/co_care_worker_credit_eligible_care_worker_count.py +18 -0
  78. policyengine_us/variables/gov/states/ga/tax/income/credits/ga_itemizer_credit.py +19 -0
  79. policyengine_us/variables/gov/states/hi/tax/income/credits/cdcc/hi_cdcc.py +1 -1
  80. policyengine_us/variables/gov/states/hi/tax/income/credits/cdcc/hi_cdcc_eligible.py +14 -0
  81. policyengine_us/variables/gov/states/nj/tax/income/credits/cdcc/nj_cdcc.py +2 -2
  82. policyengine_us/variables/gov/states/oh/tax/income/credits/oh_cdcc.py +2 -2
  83. policyengine_us/variables/gov/states/pa/tax/income/credits/pa_eitc.py +16 -0
  84. policyengine_us/variables/gov/territories/pr/tax/income/pr_income_tax.py +14 -0
  85. policyengine_us/variables/gov/territories/pr/tax/income/pr_normal_tax.py +16 -0
  86. policyengine_us/variables/gov/territories/pr/tax/income/pr_regular_tax_before_credits.py +11 -0
  87. policyengine_us/variables/gov/territories/pr/tax/income/taxable_income/pr_net_taxable_income.py +11 -0
  88. {policyengine_us-1.426.0.dist-info → policyengine_us-1.439.0.dist-info}/METADATA +1 -1
  89. {policyengine_us-1.426.0.dist-info → policyengine_us-1.439.0.dist-info}/RECORD +100 -84
  90. policyengine_us/parameters/gov/contrib/congress/tlaib/income_security_package/baby_bonus_act/age_limit.yaml +0 -8
  91. policyengine_us/parameters/gov/contrib/congress/tlaib/income_security_package/baby_bonus_act/amount.yaml +0 -13
  92. policyengine_us/parameters/gov/contrib/congress/tlaib/income_security_package/baby_bonus_act/in_effect.yaml +0 -8
  93. policyengine_us/parameters/gov/contrib/congress/tlaib/income_security_package/baby_bonus_act/min_birth_year.yaml +0 -8
  94. policyengine_us/parameters/gov/contrib/congress/tlaib/income_security_package/boost_act/amount.yaml +0 -13
  95. policyengine_us/parameters/gov/contrib/congress/tlaib/income_security_package/boost_act/in_effect.yaml +0 -8
  96. policyengine_us/parameters/gov/contrib/congress/tlaib/income_security_package/boost_act/max_age.yaml +0 -8
  97. policyengine_us/parameters/gov/contrib/congress/tlaib/income_security_package/boost_act/min_age.yaml +0 -8
  98. policyengine_us/parameters/gov/contrib/congress/tlaib/income_security_package/boost_act/tax/rate.yaml +0 -8
  99. policyengine_us/parameters/gov/contrib/congress/tlaib/income_security_package/boost_act/tax/threshold.yaml +0 -24
  100. policyengine_us/parameters/gov/simulation/labor_supply_responses/elasticities/income/age_multiplier_over_threshold.yaml +0 -11
  101. policyengine_us/parameters/gov/simulation/labor_supply_responses/elasticities/income/age_threshold.yaml +0 -9
  102. policyengine_us/parameters/gov/simulation/labor_supply_responses/elasticities/income/base.yaml +0 -11
  103. policyengine_us/parameters/gov/simulation/labor_supply_responses/elasticities/substitution/age_multiplier_over_threshold.yaml +0 -11
  104. policyengine_us/parameters/gov/simulation/labor_supply_responses/elasticities/substitution/age_threshold.yaml +0 -9
  105. policyengine_us/parameters/gov/simulation/labor_supply_responses/elasticities/substitution/all.yaml +0 -6
  106. policyengine_us/parameters/gov/simulation/labor_supply_responses/elasticities/substitution/by_position_and_decile.yaml +0 -71
  107. policyengine_us/reforms/congress/tlaib/income_security_package/__init__.py +0 -17
  108. policyengine_us/reforms/congress/tlaib/income_security_package/income_security_package.py +0 -402
  109. policyengine_us/tests/policy/baseline/gov/simulation/labor_supply_response/integration.yaml +0 -45
  110. policyengine_us/tests/policy/contrib/congress/tlaib/income_security/integration.yaml +0 -154
  111. policyengine_us/tests/policy/contrib/congress/tlaib/income_security/state_integration.yaml +0 -110
  112. policyengine_us/tests/policy/contrib/congress/tlaib/income_security/test_individual_acts.yaml +0 -149
  113. policyengine_us/tests/policy/contrib/congress/tlaib/income_security/unit_tests.yaml +0 -272
  114. /policyengine_us/parameters/gov/contrib/congress/tlaib/{income_security_package → economic_dignity_for_all_agenda}/end_child_poverty_act/adult_dependent_credit/amount.yaml +0 -0
  115. /policyengine_us/parameters/gov/contrib/congress/tlaib/{income_security_package → economic_dignity_for_all_agenda}/end_child_poverty_act/child_benefit/age_limit.yaml +0 -0
  116. /policyengine_us/parameters/gov/contrib/congress/tlaib/{income_security_package → economic_dignity_for_all_agenda}/end_child_poverty_act/filer_credit/amount.yaml +0 -0
  117. /policyengine_us/parameters/gov/contrib/congress/tlaib/{income_security_package → economic_dignity_for_all_agenda}/end_child_poverty_act/filer_credit/eligibility/max_age.yaml +0 -0
  118. /policyengine_us/parameters/gov/contrib/congress/tlaib/{income_security_package → economic_dignity_for_all_agenda}/end_child_poverty_act/filer_credit/eligibility/min_age.yaml +0 -0
  119. /policyengine_us/parameters/gov/contrib/congress/tlaib/{income_security_package → economic_dignity_for_all_agenda}/end_child_poverty_act/filer_credit/phase_out/rate.yaml +0 -0
  120. /policyengine_us/parameters/gov/contrib/congress/tlaib/{income_security_package → economic_dignity_for_all_agenda}/end_child_poverty_act/filer_credit/phase_out/start.yaml +0 -0
  121. /policyengine_us/parameters/gov/contrib/congress/tlaib/{income_security_package → economic_dignity_for_all_agenda}/end_child_poverty_act/in_effect.yaml +0 -0
  122. {policyengine_us-1.426.0.dist-info → policyengine_us-1.439.0.dist-info}/WHEEL +0 -0
  123. {policyengine_us-1.426.0.dist-info → policyengine_us-1.439.0.dist-info}/entry_points.txt +0 -0
  124. {policyengine_us-1.426.0.dist-info → policyengine_us-1.439.0.dist-info}/licenses/LICENSE +0 -0
@@ -1,8 +0,0 @@
1
- description: Representative Rashida Tlaib's Baby Bonus Act provides a credit to filers with children above this age limit.
2
- metadata:
3
- unit: year
4
- period: year
5
- label: Baby bonus age limit
6
- reference: placeholder - bill not yet introduced
7
- values:
8
- 2026-01-01: 1
@@ -1,13 +0,0 @@
1
- description: Representative Rashida Tlaib's Baby Bonus Act provides this payment amount to qualifying pregnant persons or eligible parents with a qualifying child.
2
- metadata:
3
- unit: currency-USD
4
- period: year
5
- # reference: placeholder - bill not yet introduced
6
- label: Baby bonus amount
7
- uprating:
8
- parameter: gov.irs.uprating
9
- rounding:
10
- type: downwards
11
- interval: 1
12
- values:
13
- 2026-01-01: 2_000
@@ -1,8 +0,0 @@
1
- description: Representative Rashida Tlaib's Baby Bonus Act is in effect when this is true.
2
- metadata:
3
- unit: bool
4
- period: year
5
- # reference: placeholder - bill not yet introduced
6
- label: Baby Bonus Act in effect
7
- values:
8
- 0000-01-01: false
@@ -1,8 +0,0 @@
1
- description: Representative Rashida Tlaib's Baby Bonus Act sets the minimum birth year for eligibility.
2
- metadata:
3
- unit: year
4
- period: year
5
- label: Baby bonus minimum birth year
6
- reference: placeholder - bill not yet introduced
7
- values:
8
- 2026-01-01: 2026
@@ -1,13 +0,0 @@
1
- description: Representative Rashida Tlaib's BOOST Act provides this monthly amount to eligible adults.
2
- metadata:
3
- unit: currency-USD
4
- period: month
5
- # reference: placeholder - bill not yet introduced
6
- label: BOOST Act monthly amount
7
- uprating:
8
- parameter: gov.irs.uprating
9
- rounding:
10
- type: downwards
11
- interval: 1
12
- values:
13
- 2026-01-01: 250
@@ -1,8 +0,0 @@
1
- description: Representative Rashida Tlaib's BOOST Act is in effect when this is true.
2
- metadata:
3
- unit: bool
4
- period: year
5
- # reference: placeholder - bill not yet introduced
6
- label: BOOST Act in effect
7
- values:
8
- 0000-01-01: false
@@ -1,8 +0,0 @@
1
- description: Representative Rashida Tlaib's BOOST Act sets this maximum age for eligibility.
2
- metadata:
3
- unit: year
4
- period: year
5
- # reference: placeholder - bill not yet introduced
6
- label: BOOST Act maximum age
7
- values:
8
- 2026-01-01: 67
@@ -1,8 +0,0 @@
1
- description: Representative Rashida Tlaib's BOOST Act sets this minimum age for eligibility.
2
- metadata:
3
- unit: year
4
- period: year
5
- # reference: placeholder - bill not yet introduced
6
- label: BOOST Act minimum age
7
- values:
8
- 2026-01-01: 19
@@ -1,8 +0,0 @@
1
- description: Representative Rashida Tlaib's BOOST Act applies this supplemental tax rate on income above certain thresholds.
2
- metadata:
3
- unit: /1
4
- period: year
5
- # reference: placeholder - bill not yet introduced
6
- label: BOOST Act tax rate
7
- values:
8
- 2026-01-01: 0.025
@@ -1,24 +0,0 @@
1
- description: Representative Rashida Tlaib's BOOST Act applies a supplemental tax above this adjusted gross inccome threshold.
2
- metadata:
3
- unit: currency-USD
4
- period: year
5
- # reference: placeholder - bill not yet introduced
6
- label: BOOST Act tax threshold
7
- propagate_metadata_to_children: true
8
- uprating:
9
- parameter: gov.irs.uprating
10
- rounding:
11
- type: downwards
12
- interval: 1
13
- breakdown:
14
- - filing_status
15
- JOINT:
16
- 2026-01-01: 60_000
17
- SINGLE:
18
- 2026-01-01: 30_000
19
- SEPARATE:
20
- 2026-01-01: 30_000
21
- HEAD_OF_HOUSEHOLD:
22
- 2026-01-01: 30_000
23
- SURVIVING_SPOUSE:
24
- 2026-01-01: 30_000
@@ -1,11 +0,0 @@
1
- description: Multiplier applied to base income elasticity for individuals at or above the age threshold. Research suggests income effects are stronger for older workers. French (2005) shows much higher elasticities near retirement age. A multiplier of 2.0 is conservative. Set to 1.0 for no age difference.
2
- values:
3
- 2020-01-01: 2.0
4
- metadata:
5
- unit: /1
6
- label: elasticity multiplier for ages at or above threshold
7
- reference:
8
- - title: "French (2005): The Effects of Health, Wealth, and Wages on Labour Supply and Retirement Behaviour"
9
- href: https://academic.oup.com/restud/article-abstract/72/2/395/1558553
10
- - title: "CBO Working Paper 2012-12: A Review of Recent Research on Labor Supply Elasticities"
11
- href: https://www.cbo.gov/publication/43675
@@ -1,9 +0,0 @@
1
- description: Age at which the age multiplier begins to apply. Individuals at this age or older will have their base elasticity multiplied by the age multiplier. Default is 65 (typical retirement age), but can be adjusted to reflect different retirement patterns or policy scenarios (e.g., 62 for early retirement, 67 for full retirement age).
2
- values:
3
- 2020-01-01: 65
4
- metadata:
5
- unit: year
6
- label: age threshold for elasticity multiplier
7
- reference:
8
- - title: "French (2005): The Effects of Health, Wealth, and Wages on Labour Supply and Retirement Behaviour"
9
- href: https://academic.oup.com/restud/article-abstract/72/2/395/1558553
@@ -1,11 +0,0 @@
1
- description: Base income elasticity of labor supply for working-age individuals (under 65). This value is multiplied by the age multiplier for individuals 65 and over. Typically negative, indicating that higher income reduces labor supply.
2
- values:
3
- 2020-01-01: 0
4
- metadata:
5
- unit: /1
6
- label: base income elasticity below threshold
7
- reference:
8
- - title: "CBO Working Paper 2012-12: A Review of Recent Research on Labor Supply Elasticities"
9
- href: https://www.cbo.gov/publication/43675
10
- - title: "CBO Working Paper 2012-13: Review of Estimates of the Frisch Elasticity of Labor Supply"
11
- href: https://www.cbo.gov/publication/43676
@@ -1,11 +0,0 @@
1
- description: Multiplier applied to all substitution elasticities for individuals at or above the age threshold. Research shows older workers have higher labor supply elasticities than working-age adults. French (2005) finds elasticities 3x higher for age 60 vs age 40. A multiplier of 2.0 is conservative. Set to 1.0 for no age difference.
2
- values:
3
- 2020-01-01: 2.0
4
- metadata:
5
- unit: /1
6
- label: elasticity multiplier for ages at or above threshold
7
- reference:
8
- - title: "French (2005): The Effects of Health, Wealth, and Wages on Labour Supply and Retirement Behaviour"
9
- href: https://academic.oup.com/restud/article-abstract/72/2/395/1558553
10
- - title: "CBO Working Paper 2012-12: A Review of Recent Research on Labor Supply Elasticities"
11
- href: https://www.cbo.gov/publication/43675
@@ -1,9 +0,0 @@
1
- description: Age at which the age multiplier begins to apply. Individuals at this age or older will have their base elasticity multiplied by the age multiplier. Default is 65 (typical retirement age), but can be adjusted to reflect different retirement patterns or policy scenarios (e.g., 62 for early retirement, 67 for full retirement age).
2
- values:
3
- 2020-01-01: 65
4
- metadata:
5
- unit: year
6
- label: age threshold for elasticity multiplier
7
- reference:
8
- - title: "French (2005): The Effects of Health, Wealth, and Wages on Labour Supply and Retirement Behaviour"
9
- href: https://academic.oup.com/restud/article-abstract/72/2/395/1558553
@@ -1,6 +0,0 @@
1
- description: Percent change (of the change in the effective marginal wage) in labor supply given a 1% change in the effective marginal wage. This parameter overrides all other substitution elasticities if provided.
2
- values:
3
- 2020-01-01: 0
4
- metadata:
5
- unit: /1
6
- label: substitution elasticity of labor supply
@@ -1,71 +0,0 @@
1
- metadata:
2
- label: by position and decile
3
- unit: /1
4
- propagate_metadata_to_children: true
5
- reference:
6
- - title: "CBO Working Paper 2012-12: A Review of Recent Research on Labor Supply Elasticities"
7
- href: https://www.cbo.gov/publication/43675
8
- - title: "CBO Working Paper 2012-13: Review of Estimates of the Frisch Elasticity of Labor Supply"
9
- href: https://www.cbo.gov/publication/43676
10
- - title: "French (2005): The Effects of Health, Wealth, and Wages on Labour Supply and Retirement Behaviour"
11
- href: https://academic.oup.com/restud/article-abstract/72/2/395/1558553
12
- primary:
13
- metadata:
14
- label: primary adult
15
- description: The highest earner within the tax unit. Elasticity varies by earnings decile.
16
- 1:
17
- metadata:
18
- label: primary adult, 1st decile substitution elasticity
19
- values:
20
- 2020-01-01: 0
21
- 2:
22
- metadata:
23
- label: primary adult, 2nd decile substitution elasticity
24
- values:
25
- 2020-01-01: 0
26
- 3:
27
- metadata:
28
- label: primary adult, 3rd decile substitution elasticity
29
- values:
30
- 2020-01-01: 0
31
- 4:
32
- metadata:
33
- label: primary adult, 4th decile substitution elasticity
34
- values:
35
- 2020-01-01: 0
36
- 5:
37
- metadata:
38
- label: primary adult, 5th decile substiticity
39
- values:
40
- 2020-01-01: 0
41
- 6:
42
- metadata:
43
- label: primary adult, 6th decile substitution elasticity
44
- values:
45
- 2020-01-01: 0
46
- 7:
47
- metadata:
48
- label: primary adult, 7th decile substitution elasticity
49
- values:
50
- 2020-01-01: 0
51
- 8:
52
- metadata:
53
- label: primary adult, 8th decile substitution elasticity
54
- values:
55
- 2020-01-01: 0
56
- 9:
57
- metadata:
58
- label: primary adult, 9th decile substitution elasticity
59
- values:
60
- 2020-01-01: 0
61
- 10:
62
- metadata:
63
- label: primary adult, 10th decile substitution elasticity
64
- values:
65
- 2020-01-01: 0
66
- secondary:
67
- metadata:
68
- label: secondary adult, all deciles substitution elasticity
69
- description: Any earner in the tax unit who is not the primary (highest) earner.
70
- values:
71
- 2020-01-01: 0
@@ -1,17 +0,0 @@
1
- from .income_security_package import (
2
- income_security_package,
3
- create_income_security_package_reform,
4
- )
5
-
6
- # Keep individual reforms for backward compatibility but they all use the same implementation
7
- baby_bonus_act = income_security_package
8
- boost_act = income_security_package
9
- end_child_poverty_act = income_security_package
10
-
11
- __all__ = [
12
- "income_security_package",
13
- "create_income_security_package_reform",
14
- "baby_bonus_act",
15
- "boost_act",
16
- "end_child_poverty_act",
17
- ]
@@ -1,402 +0,0 @@
1
- from policyengine_us.model_api import *
2
- from policyengine_core.periods import period as period_
3
-
4
-
5
- def create_income_security_package() -> Reform:
6
- class baby_bonus_act_payment(Variable):
7
- value_type = float
8
- entity = Person
9
- definition_period = YEAR
10
- label = "Baby Bonus Act payment"
11
- unit = USD
12
- documentation = (
13
- "One-time payment for newborns under the Baby Bonus Act"
14
- )
15
- reference = "placeholder - bill not yet introduced"
16
-
17
- def formula(person, period, parameters):
18
- p = parameters(
19
- period
20
- ).gov.contrib.congress.tlaib.income_security_package.baby_bonus_act
21
-
22
- # Baby bonus is for those born in 2026 and after, paid in their birth year
23
- birth_year = person("birth_year", period)
24
-
25
- age = person("age", period)
26
-
27
- # Payment only in the birth year for those born 2026+
28
- is_eligible = (birth_year >= p.min_birth_year) & (
29
- age < p.age_limit
30
- )
31
-
32
- return is_eligible * p.amount
33
-
34
- class boost_act_payment(Variable):
35
- value_type = float
36
- entity = Person
37
- definition_period = YEAR
38
- label = "BOOST Act payment"
39
- unit = USD
40
- documentation = (
41
- "Monthly payments under the BOOST Act for eligible adults"
42
- )
43
- reference = "placeholder - bill not yet introduced"
44
-
45
- def formula(person, period, parameters):
46
- p = parameters(
47
- period
48
- ).gov.contrib.congress.tlaib.income_security_package.boost_act
49
-
50
- age = person("age", period)
51
- is_eligible = (age >= p.min_age) & (age <= p.max_age)
52
-
53
- annual_amount = p.amount * MONTHS_IN_YEAR
54
-
55
- return is_eligible * annual_amount
56
-
57
- class boost_act_tax(Variable):
58
- value_type = float
59
- entity = TaxUnit
60
- definition_period = YEAR
61
- label = "BOOST Act supplemental tax"
62
- unit = USD
63
- documentation = "Supplemental tax on AGI to fund the BOOST Act"
64
- reference = "placeholder - bill not yet introduced"
65
-
66
- def formula(tax_unit, period, parameters):
67
- p = parameters(
68
- period
69
- ).gov.contrib.congress.tlaib.income_security_package.boost_act
70
-
71
- agi = tax_unit("adjusted_gross_income", period)
72
- filing_status = tax_unit("filing_status", period)
73
-
74
- excess_agi = max_(agi - p.tax.threshold[filing_status], 0)
75
-
76
- return excess_agi * p.tax.rate
77
-
78
- class ecpa_child_benefit(Variable):
79
- value_type = float
80
- entity = Person
81
- definition_period = YEAR
82
- label = "End Child Poverty Act child benefit"
83
- unit = USD
84
- documentation = (
85
- "Universal child benefit under the End Child Poverty Act"
86
- )
87
- reference = "placeholder - bill not yet introduced"
88
-
89
- def formula(person, period, parameters):
90
- p = parameters(
91
- period
92
- ).gov.contrib.congress.tlaib.income_security_package.end_child_poverty_act
93
-
94
- age = person("age", period)
95
- is_eligible = age < p.child_benefit.age_limit
96
-
97
- # Use FPG additional_person amount (CONTIGUOUS_US for all states), rounded to nearest $10
98
- p_fpg = parameters(period).gov.hhs.fpg
99
- fpg_amount = p_fpg.additional_person.CONTIGUOUS_US
100
- amount = round(fpg_amount / 10) * 10
101
-
102
- return is_eligible * amount
103
-
104
- class ecpa_adult_dependent_credit(Variable):
105
- value_type = float
106
- entity = Person
107
- definition_period = YEAR
108
- label = "End Child Poverty Act adult dependent credit"
109
- unit = USD
110
- documentation = (
111
- "Credit for adult dependents under the End Child Poverty Act"
112
- )
113
- reference = "placeholder - bill not yet introduced"
114
-
115
- def formula(person, period, parameters):
116
- p = parameters(
117
- period
118
- ).gov.contrib.congress.tlaib.income_security_package.end_child_poverty_act
119
-
120
- age = person("age", period)
121
- is_dependent = person("is_tax_unit_dependent", period)
122
-
123
- is_eligible = (
124
- age >= p.adult_dependent_credit.min_age
125
- ) & is_dependent
126
-
127
- return is_eligible * p.adult_dependent_credit.amount
128
-
129
- class ecpa_filer_credit(Variable):
130
- value_type = float
131
- entity = TaxUnit
132
- definition_period = YEAR
133
- label = "End Child Poverty Act filer credit"
134
- unit = USD
135
- documentation = "Filer credit under the End Child Poverty Act for eligible tax filers"
136
- reference = "placeholder - bill not yet introduced"
137
-
138
- def formula(tax_unit, period, parameters):
139
- p = parameters(
140
- period
141
- ).gov.contrib.congress.tlaib.income_security_package.end_child_poverty_act
142
-
143
- person = tax_unit.members
144
- age = person("age", period)
145
-
146
- is_head_or_spouse = person("is_tax_unit_head_or_spouse", period)
147
-
148
- is_eligible_age = (age >= p.filer_credit.eligibility.min_age) & (
149
- age < p.filer_credit.eligibility.max_age
150
- )
151
- is_eligible_filer = is_head_or_spouse & is_eligible_age
152
-
153
- has_eligible_filer = tax_unit.any(is_eligible_filer)
154
-
155
- filing_status = tax_unit("filing_status", period)
156
- amount = p.filer_credit.amount[filing_status]
157
-
158
- agi = tax_unit("adjusted_gross_income", period)
159
- excess_agi = max_(
160
- agi - p.filer_credit.phase_out.start[filing_status], 0
161
- )
162
- phase_out = excess_agi * p.filer_credit.phase_out.rate
163
-
164
- phased_out_amount = max_(amount - phase_out, 0)
165
-
166
- return has_eligible_filer * phased_out_amount
167
-
168
- class household_benefits(Variable):
169
- value_type = float
170
- entity = Household
171
- label = "benefits"
172
- unit = USD
173
- definition_period = YEAR
174
-
175
- def formula(household, period, parameters):
176
- p = parameters(
177
- period
178
- ).gov.contrib.congress.tlaib.income_security_package
179
-
180
- BENEFITS = [
181
- "social_security",
182
- "ssi",
183
- "snap",
184
- "wic",
185
- "free_school_meals",
186
- "reduced_price_school_meals",
187
- "spm_unit_broadband_subsidy",
188
- "tanf",
189
- "high_efficiency_electric_home_rebate",
190
- "residential_efficiency_electrification_rebate",
191
- "unemployment_compensation",
192
- # Contributed.
193
- "basic_income",
194
- "spm_unit_capped_housing_subsidy",
195
- "household_state_benefits",
196
- ]
197
-
198
- # Add Income Security Package benefits if active
199
- if p.baby_bonus_act.in_effect:
200
- BENEFITS.append("baby_bonus_act_payment")
201
- if p.boost_act.in_effect:
202
- BENEFITS.append("boost_act_payment")
203
- if p.end_child_poverty_act.in_effect:
204
- BENEFITS.append("ecpa_child_benefit")
205
-
206
- return add(household, period, BENEFITS)
207
-
208
- class spm_unit_benefits(Variable):
209
- value_type = float
210
- entity = SPMUnit
211
- label = "Benefits"
212
- definition_period = YEAR
213
- unit = USD
214
-
215
- def formula(spm_unit, period, parameters):
216
- p = parameters(
217
- period
218
- ).gov.contrib.congress.tlaib.income_security_package
219
-
220
- BENEFITS = [
221
- "social_security",
222
- "ssi",
223
- "ma_state_supplement", # Massachusetts benefits
224
- # California programs.
225
- "ca_cvrp", # California Clean Vehicle Rebate Project.
226
- # Colorado programs.
227
- "co_ccap_subsidy",
228
- "co_state_supplement",
229
- "co_oap",
230
- "snap",
231
- "wic",
232
- "free_school_meals",
233
- "reduced_price_school_meals",
234
- "spm_unit_broadband_subsidy",
235
- "spm_unit_energy_subsidy",
236
- "tanf",
237
- "high_efficiency_electric_home_rebate",
238
- "residential_efficiency_electrification_rebate",
239
- "unemployment_compensation",
240
- # Contributed.
241
- "basic_income",
242
- "ny_drive_clean_rebate",
243
- ]
244
-
245
- # Add Income Security Package benefits if active
246
- if p.baby_bonus_act.in_effect:
247
- BENEFITS.append("baby_bonus_act_payment")
248
- if p.boost_act.in_effect:
249
- BENEFITS.append("boost_act_payment")
250
- if p.end_child_poverty_act.in_effect:
251
- BENEFITS.append("ecpa_child_benefit")
252
-
253
- if parameters(period).gov.contrib.ubi_center.flat_tax.deduct_ptc:
254
- BENEFITS.append("aca_ptc")
255
- if not parameters(period).gov.hud.abolition:
256
- BENEFITS.append("spm_unit_capped_housing_subsidy")
257
-
258
- return add(spm_unit, period, BENEFITS)
259
-
260
- class income_tax(Variable):
261
- value_type = float
262
- entity = TaxUnit
263
- label = "federal income tax"
264
- unit = USD
265
- definition_period = YEAR
266
-
267
- def formula(tax_unit, period, parameters):
268
- p = parameters(
269
- period
270
- ).gov.contrib.congress.tlaib.income_security_package
271
-
272
- # Start with income tax after non-refundable credits
273
- base_tax = tax_unit("income_tax_before_refundable_credits", period)
274
-
275
- # Subtract refundable credits
276
- refundable_credits = tax_unit(
277
- "income_tax_refundable_credits", period
278
- )
279
-
280
- reduced_tax = base_tax - refundable_credits
281
-
282
- # Add BOOST tax only if active
283
- if p.boost_act.in_effect:
284
- boost_tax = tax_unit("boost_act_tax", period)
285
- return reduced_tax + boost_tax
286
- else:
287
- return reduced_tax
288
-
289
- class income_tax_refundable_credits(Variable):
290
- value_type = float
291
- entity = TaxUnit
292
- definition_period = YEAR
293
- label = "federal refundable income tax credits"
294
- unit = USD
295
-
296
- def formula(tax_unit, period, parameters):
297
- p = parameters(
298
- period
299
- ).gov.contrib.congress.tlaib.income_security_package.end_child_poverty_act
300
-
301
- # Get standard refundable credits, excluding EITC and refundable CTC if ECPA is active
302
- standard_credits = parameters(period).gov.irs.credits.refundable
303
-
304
- if p.in_effect:
305
- # ECPA replaces EITC and refundable CTC
306
- CREDITS = [
307
- c
308
- for c in standard_credits
309
- if c not in ["eitc", "refundable_ctc"]
310
- ]
311
- else:
312
- # Use all standard credits
313
- CREDITS = list(standard_credits)
314
-
315
- base_credits = add(tax_unit, period, CREDITS) if CREDITS else 0
316
-
317
- # Add ECPA credits only if active
318
- if p.in_effect:
319
- ecpa_filer = tax_unit("ecpa_filer_credit", period)
320
- ecpa_adult_dep = add(
321
- tax_unit, period, ["ecpa_adult_dependent_credit"]
322
- )
323
- return base_credits + ecpa_filer + ecpa_adult_dep
324
- else:
325
- return base_credits
326
-
327
- class income_tax_non_refundable_credits(Variable):
328
- value_type = float
329
- entity = TaxUnit
330
- definition_period = YEAR
331
- label = "federal non-refundable income tax credits"
332
- unit = USD
333
-
334
- def formula(tax_unit, period, parameters):
335
- # Get the base list of non-refundable credits from parameters
336
- p = parameters(period).gov.irs.credits
337
- base_credits = list(p.non_refundable)
338
-
339
- # Check if ECPA is active
340
- ecpa_params = parameters(
341
- period
342
- ).gov.contrib.congress.tlaib.income_security_package.end_child_poverty_act
343
- ecpa_active = ecpa_params.in_effect
344
-
345
- # If ECPA is active, remove non_refundable_ctc from the list
346
- if ecpa_active:
347
- CREDITS = [
348
- c for c in base_credits if c != "non_refundable_ctc"
349
- ]
350
- else:
351
- CREDITS = base_credits
352
-
353
- return add(tax_unit, period, CREDITS)
354
-
355
- class reform(Reform):
356
- def apply(self):
357
- # Update all variables for the Income Security Package
358
- self.update_variable(baby_bonus_act_payment)
359
- self.update_variable(boost_act_payment)
360
- self.update_variable(boost_act_tax)
361
- self.update_variable(ecpa_child_benefit)
362
- self.update_variable(ecpa_adult_dependent_credit)
363
- self.update_variable(ecpa_filer_credit)
364
- self.update_variable(household_benefits)
365
- self.update_variable(spm_unit_benefits)
366
- self.update_variable(income_tax)
367
- self.update_variable(income_tax_refundable_credits)
368
- self.update_variable(income_tax_non_refundable_credits)
369
-
370
- return reform
371
-
372
-
373
- def create_income_security_package_reform(
374
- parameters, period, bypass: bool = False
375
- ):
376
- if bypass:
377
- return create_income_security_package()
378
-
379
- p = parameters.gov.contrib.congress.tlaib.income_security_package
380
-
381
- reform_active = False
382
- current_period = period_(period)
383
-
384
- for i in range(5):
385
- if (
386
- p(current_period).baby_bonus_act.in_effect
387
- or p(current_period).boost_act.in_effect
388
- or p(current_period).end_child_poverty_act.in_effect
389
- ):
390
- reform_active = True
391
- break
392
- current_period = current_period.offset(1, "year")
393
-
394
- if reform_active:
395
- return create_income_security_package()
396
- else:
397
- return None
398
-
399
-
400
- income_security_package = create_income_security_package_reform(
401
- None, None, bypass=True
402
- )