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.
- policyengine_us/parameters/gov/aca/state_rating_area_cost.yaml +511 -12
- 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
- policyengine_us/parameters/gov/contrib/states/ri/ctc/young_child_boost/age_limit.yaml +9 -0
- policyengine_us/parameters/gov/contrib/states/ri/ctc/young_child_boost/amount.yaml +9 -0
- policyengine_us/parameters/gov/contrib/states/ri/dependent_exemption/amount.yaml +2 -2
- policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/senior_or_disabled/income/limit/couple.yaml +60 -51
- policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/senior_or_disabled/income/limit/individual.yaml +60 -51
- policyengine_us/parameters/gov/hhs/tanf/cash/income/sources/earned.yaml +13 -0
- policyengine_us/parameters/gov/hhs/tanf/cash/income/sources/unearned.yaml +23 -0
- policyengine_us/parameters/gov/simulation/labor_supply_responses/elasticities/README.md +1 -206
- policyengine_us/parameters/gov/simulation/labor_supply_responses/elasticities/{income/all.yaml → income.yaml} +1 -1
- policyengine_us/parameters/gov/simulation/labor_supply_responses/elasticities/substitution.yaml +70 -0
- policyengine_us/parameters/gov/states/co/tax/income/credits/care_worker/amount/joint.yaml +10 -0
- policyengine_us/parameters/gov/states/co/tax/income/credits/care_worker/amount/single.yaml +10 -0
- policyengine_us/parameters/gov/states/co/tax/income/credits/care_worker/income_limit/joint.yaml +10 -0
- policyengine_us/parameters/gov/states/co/tax/income/credits/care_worker/income_limit/single.yaml +10 -0
- policyengine_us/parameters/gov/states/co/tax/income/credits/refundable.yaml +10 -0
- policyengine_us/parameters/gov/states/ga/tax/income/credits/itemizer/amount.yaml +14 -0
- policyengine_us/parameters/gov/states/ga/tax/income/credits/non_refundable.yaml +9 -0
- policyengine_us/parameters/gov/states/hi/tax/income/alternative_tax/availability.yaml +2 -3
- policyengine_us/parameters/gov/states/pa/tax/income/credits/eitc/match.yaml +10 -0
- policyengine_us/parameters/gov/states/pa/tax/income/credits/refundable.yaml +6 -0
- policyengine_us/parameters/gov/states/va/tax/income/credits/non_refundable.yaml +1 -1
- policyengine_us/parameters/gov/territories/pr/tax/income/credits/refundable.yaml +2 -0
- policyengine_us/parameters/gov/territories/pr/tax/income/tax_rate/amount.yaml +35 -0
- policyengine_us/parameters/gov/usda/snap/work_requirements/general/age_threshold/caring_dependent_child.yaml +1 -1
- policyengine_us/parameters/gov/usda/snap/work_requirements/general/age_threshold/exempted.yaml +1 -1
- policyengine_us/parameters/gov/usda/snap/work_requirements/general/weekly_hours_threshold.yaml +1 -1
- policyengine_us/reforms/congress/tlaib/__init__.py +4 -3
- policyengine_us/reforms/congress/tlaib/economic_dignity_for_all_agenda/__init__.py +9 -0
- policyengine_us/reforms/congress/tlaib/economic_dignity_for_all_agenda/edaa_end_child_poverty_act.py +237 -0
- policyengine_us/reforms/reforms.py +5 -4
- policyengine_us/reforms/states/ri/ctc/ri_ctc_reform.py +32 -1
- policyengine_us/reforms/states/ri/exemption/ri_exemption_reform.py +26 -5
- policyengine_us/tests/policy/baseline/gov/ed/pell_grant/pell_grant_simplified_formula_applies.yaml +1 -1
- policyengine_us/tests/policy/baseline/gov/hhs/tanf/tanf_fpg.yaml +53 -0
- policyengine_us/tests/policy/baseline/gov/simulation/labor_supply_response/income_elasticity.yaml +6 -12
- policyengine_us/tests/policy/baseline/gov/simulation/labor_supply_response/labor_supply_behavioral_response.yaml +24 -2
- policyengine_us/tests/policy/baseline/gov/simulation/labor_supply_response/substitution_elasticity.yaml +35 -10
- policyengine_us/tests/policy/baseline/gov/ssa/ssi/integration_tests.yaml +150 -4
- policyengine_us/tests/policy/baseline/gov/states/co/tax/income/credits/care_worker/co_care_worker_credit.yaml +64 -0
- policyengine_us/tests/policy/baseline/gov/states/co/tax/income/credits/care_worker/co_care_worker_credit_eligible.yaml +122 -0
- policyengine_us/tests/policy/baseline/gov/states/co/tax/income/credits/care_worker/co_care_worker_credit_eligible_care_worker_count.yaml +65 -0
- policyengine_us/tests/policy/baseline/gov/states/ga/tax/income/credits/ga_itemizer_credit.yaml +44 -0
- policyengine_us/tests/policy/baseline/gov/states/hi/tax/income/alternative_tax/hi_alternative_tax_on_capital_gains_eligible.yaml +0 -8
- policyengine_us/tests/policy/baseline/gov/states/hi/tax/income/credits/cdcc/hi_cdcc.yaml +4 -0
- policyengine_us/tests/policy/baseline/gov/states/hi/tax/income/credits/cdcc/hi_cdcc_eligible.yaml +15 -0
- policyengine_us/tests/policy/baseline/gov/states/hi/tax/income/integration.yaml +96 -0
- policyengine_us/tests/policy/baseline/gov/states/nj/tax/income/credits/cdcc/nj_cdcc.yaml +8 -8
- policyengine_us/tests/policy/baseline/gov/states/nj/tax/income/integation.yaml +57 -0
- policyengine_us/tests/policy/baseline/gov/states/oh/tax/income/credits/oh_cdcc.yaml +4 -4
- policyengine_us/tests/policy/baseline/gov/states/oh/tax/income/integration.yaml +59 -0
- policyengine_us/tests/policy/baseline/gov/states/pa/tax/income/credits/pa_eitc.yaml +26 -0
- policyengine_us/tests/policy/baseline/gov/territories/pr/tax/income/pr_normal_tax.yaml +31 -0
- policyengine_us/tests/policy/baseline/gov/test_categorical_eligibility_vectorization.yaml +41 -0
- policyengine_us/tests/policy/contrib/congress/tlaib/economic_dignity_for_all_agenda/edaa_end_child_poverty_act.yaml +198 -0
- policyengine_us/tests/policy/contrib/states/ri/ctc_reform_test.yaml +144 -0
- policyengine_us/tests/policy/contrib/states/ri/exemption_reform_test.yaml +2 -2
- policyengine_us/variables/gov/ed/pell_grant/efc/pell_grant_simplified_formula_applies.py +1 -2
- policyengine_us/variables/gov/fcc/lifeline/is_lifeline_eligible.py +2 -2
- policyengine_us/variables/gov/hhs/head_start/early_head_start.py +2 -1
- policyengine_us/variables/gov/hhs/head_start/head_start.py +2 -1
- policyengine_us/variables/gov/hhs/head_start/is_head_start_categorically_eligible.py +1 -3
- policyengine_us/variables/gov/hhs/tanf/cash/income/tanf_gross_earned_income.py +13 -0
- policyengine_us/variables/gov/hhs/tanf/cash/income/tanf_gross_unearned_income.py +13 -0
- policyengine_us/variables/gov/hhs/tanf/tanf_fpg.py +28 -0
- policyengine_us/variables/gov/simulation/labor_supply_response/income_elasticity.py +1 -27
- policyengine_us/variables/gov/simulation/labor_supply_response/substitution_elasticity.py +18 -43
- policyengine_us/variables/gov/ssa/ssi/eligibility/income/deemed/from_ineligible_spouse/is_ssi_spousal_deeming_applies.py +41 -0
- policyengine_us/variables/gov/ssa/ssi/eligibility/income/deemed/from_ineligible_spouse/ssi_income_deemed_from_ineligible_spouse.py +20 -20
- policyengine_us/variables/gov/ssa/ssi/ssi.py +22 -1
- policyengine_us/variables/gov/ssa/ssi/ssi_amount_if_eligible.py +26 -4
- policyengine_us/variables/gov/states/ca/cpuc/care/eligibility/ca_care_categorically_eligible.py +2 -2
- policyengine_us/variables/gov/states/co/tax/income/credits/care_worker/co_care_worker_credit.py +26 -0
- policyengine_us/variables/gov/states/co/tax/income/credits/care_worker/co_care_worker_credit_eligible.py +27 -0
- policyengine_us/variables/gov/states/co/tax/income/credits/care_worker/co_care_worker_credit_eligible_care_worker.py +10 -0
- policyengine_us/variables/gov/states/co/tax/income/credits/care_worker/co_care_worker_credit_eligible_care_worker_count.py +18 -0
- policyengine_us/variables/gov/states/ga/tax/income/credits/ga_itemizer_credit.py +19 -0
- policyengine_us/variables/gov/states/hi/tax/income/credits/cdcc/hi_cdcc.py +1 -1
- policyengine_us/variables/gov/states/hi/tax/income/credits/cdcc/hi_cdcc_eligible.py +14 -0
- policyengine_us/variables/gov/states/nj/tax/income/credits/cdcc/nj_cdcc.py +2 -2
- policyengine_us/variables/gov/states/oh/tax/income/credits/oh_cdcc.py +2 -2
- policyengine_us/variables/gov/states/pa/tax/income/credits/pa_eitc.py +16 -0
- policyengine_us/variables/gov/territories/pr/tax/income/pr_income_tax.py +14 -0
- policyengine_us/variables/gov/territories/pr/tax/income/pr_normal_tax.py +16 -0
- policyengine_us/variables/gov/territories/pr/tax/income/pr_regular_tax_before_credits.py +11 -0
- policyengine_us/variables/gov/territories/pr/tax/income/taxable_income/pr_net_taxable_income.py +11 -0
- {policyengine_us-1.426.0.dist-info → policyengine_us-1.439.0.dist-info}/METADATA +1 -1
- {policyengine_us-1.426.0.dist-info → policyengine_us-1.439.0.dist-info}/RECORD +100 -84
- policyengine_us/parameters/gov/contrib/congress/tlaib/income_security_package/baby_bonus_act/age_limit.yaml +0 -8
- policyengine_us/parameters/gov/contrib/congress/tlaib/income_security_package/baby_bonus_act/amount.yaml +0 -13
- policyengine_us/parameters/gov/contrib/congress/tlaib/income_security_package/baby_bonus_act/in_effect.yaml +0 -8
- policyengine_us/parameters/gov/contrib/congress/tlaib/income_security_package/baby_bonus_act/min_birth_year.yaml +0 -8
- policyengine_us/parameters/gov/contrib/congress/tlaib/income_security_package/boost_act/amount.yaml +0 -13
- policyengine_us/parameters/gov/contrib/congress/tlaib/income_security_package/boost_act/in_effect.yaml +0 -8
- policyengine_us/parameters/gov/contrib/congress/tlaib/income_security_package/boost_act/max_age.yaml +0 -8
- policyengine_us/parameters/gov/contrib/congress/tlaib/income_security_package/boost_act/min_age.yaml +0 -8
- policyengine_us/parameters/gov/contrib/congress/tlaib/income_security_package/boost_act/tax/rate.yaml +0 -8
- policyengine_us/parameters/gov/contrib/congress/tlaib/income_security_package/boost_act/tax/threshold.yaml +0 -24
- policyengine_us/parameters/gov/simulation/labor_supply_responses/elasticities/income/age_multiplier_over_threshold.yaml +0 -11
- policyengine_us/parameters/gov/simulation/labor_supply_responses/elasticities/income/age_threshold.yaml +0 -9
- policyengine_us/parameters/gov/simulation/labor_supply_responses/elasticities/income/base.yaml +0 -11
- policyengine_us/parameters/gov/simulation/labor_supply_responses/elasticities/substitution/age_multiplier_over_threshold.yaml +0 -11
- policyengine_us/parameters/gov/simulation/labor_supply_responses/elasticities/substitution/age_threshold.yaml +0 -9
- policyengine_us/parameters/gov/simulation/labor_supply_responses/elasticities/substitution/all.yaml +0 -6
- policyengine_us/parameters/gov/simulation/labor_supply_responses/elasticities/substitution/by_position_and_decile.yaml +0 -71
- policyengine_us/reforms/congress/tlaib/income_security_package/__init__.py +0 -17
- policyengine_us/reforms/congress/tlaib/income_security_package/income_security_package.py +0 -402
- policyengine_us/tests/policy/baseline/gov/simulation/labor_supply_response/integration.yaml +0 -45
- policyengine_us/tests/policy/contrib/congress/tlaib/income_security/integration.yaml +0 -154
- policyengine_us/tests/policy/contrib/congress/tlaib/income_security/state_integration.yaml +0 -110
- policyengine_us/tests/policy/contrib/congress/tlaib/income_security/test_individual_acts.yaml +0 -149
- policyengine_us/tests/policy/contrib/congress/tlaib/income_security/unit_tests.yaml +0 -272
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /policyengine_us/parameters/gov/contrib/congress/tlaib/{income_security_package → economic_dignity_for_all_agenda}/end_child_poverty_act/in_effect.yaml +0 -0
- {policyengine_us-1.426.0.dist-info → policyengine_us-1.439.0.dist-info}/WHEEL +0 -0
- {policyengine_us-1.426.0.dist-info → policyengine_us-1.439.0.dist-info}/entry_points.txt +0 -0
- {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
|
policyengine_us/parameters/gov/contrib/congress/tlaib/income_security_package/boost_act/amount.yaml
DELETED
|
@@ -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 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
|
policyengine_us/parameters/gov/simulation/labor_supply_responses/elasticities/income/base.yaml
DELETED
|
@@ -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
|
policyengine_us/parameters/gov/simulation/labor_supply_responses/elasticities/substitution/all.yaml
DELETED
|
@@ -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
|
-
)
|