diff --git a/changelog_entry.yaml b/changelog_entry.yaml index e69de29bb2d..76ffeef0260 100644 --- a/changelog_entry.yaml +++ b/changelog_entry.yaml @@ -0,0 +1,4 @@ +- bump: patch + changes: + changed: + - Add historical values to Washington TANF parameters. diff --git a/policyengine_us/parameters/gov/states/wa/dshs/tanf/income/deductions/earned_income_disregard/amount.yaml b/policyengine_us/parameters/gov/states/wa/dshs/tanf/income/deductions/earned_income_disregard/amount.yaml index 23f0bf93201..df38faf03c1 100644 --- a/policyengine_us/parameters/gov/states/wa/dshs/tanf/income/deductions/earned_income_disregard/amount.yaml +++ b/policyengine_us/parameters/gov/states/wa/dshs/tanf/income/deductions/earned_income_disregard/amount.yaml @@ -1,7 +1,7 @@ description: Washington deducts this amount from the household's total gross earned income under the Temporary Assistance for Needy Families program. values: - 2024-01-01: 500 + 2024-08-01: 500 metadata: unit: currency-USD @@ -10,5 +10,5 @@ metadata: reference: - title: WAC 388-450-0170(2) - Deducting the first $500 of earned income href: https://app.leg.wa.gov/wac/default.aspx?cite=388-450-0170 - - title: DSHS Eligibility A-Z Manual, Income - Earned Income Deductions - href: https://www.dshs.wa.gov/esa/income-table-contents/budgeting + - title: HB 1447 (2023 c 418) Sec 5 + href: https://lawfilesext.leg.wa.gov/biennium/2023-24/Pdf/Bills/Session%20Laws/House/1447-S2.SL.pdf#page=10 diff --git a/policyengine_us/parameters/gov/states/wa/dshs/tanf/income/deductions/earned_income_disregard/in_effect.yaml b/policyengine_us/parameters/gov/states/wa/dshs/tanf/income/deductions/earned_income_disregard/in_effect.yaml new file mode 100644 index 00000000000..3a7334a3009 --- /dev/null +++ b/policyengine_us/parameters/gov/states/wa/dshs/tanf/income/deductions/earned_income_disregard/in_effect.yaml @@ -0,0 +1,15 @@ +description: Washington applies a flat earnings disregard to earned income under the Temporary Assistance for Needy Families program if this is true. + +values: + 1998-09-01: false + 2024-08-01: true + +metadata: + unit: bool + period: month + label: Washington TANF flat earnings disregard in effect + reference: + - title: WAC 388-450-0170 - Earned income deductions + href: https://app.leg.wa.gov/wac/default.aspx?cite=388-450-0170 + - title: HB 1447 (2023 c 418) Sec 5 + href: https://lawfilesext.leg.wa.gov/biennium/2023-24/Pdf/Bills/Session%20Laws/House/1447-S2.SL.pdf#page=10 diff --git a/policyengine_us/parameters/gov/states/wa/dshs/tanf/income/deductions/earned_income_disregard/percentage_disregarded.yaml b/policyengine_us/parameters/gov/states/wa/dshs/tanf/income/deductions/earned_income_disregard/rate.yaml similarity index 70% rename from policyengine_us/parameters/gov/states/wa/dshs/tanf/income/deductions/earned_income_disregard/percentage_disregarded.yaml rename to policyengine_us/parameters/gov/states/wa/dshs/tanf/income/deductions/earned_income_disregard/rate.yaml index f64669a0d19..6a7d649968f 100644 --- a/policyengine_us/parameters/gov/states/wa/dshs/tanf/income/deductions/earned_income_disregard/percentage_disregarded.yaml +++ b/policyengine_us/parameters/gov/states/wa/dshs/tanf/income/deductions/earned_income_disregard/rate.yaml @@ -1,7 +1,7 @@ description: Washington disregards this share of remaining earned income under the Temporary Assistance for Needy Families program. values: - 2024-01-01: 0.5 + 1998-09-01: 0.5 metadata: unit: /1 @@ -10,5 +10,3 @@ metadata: reference: - title: WAC 388-450-0170(3) - Subtract 50% of remaining earned income href: https://app.leg.wa.gov/wac/default.aspx?cite=388-450-0170 - - title: DSHS Eligibility A-Z Manual, Income - Earned Income Deductions - href: https://www.dshs.wa.gov/esa/income-table-contents/budgeting diff --git a/policyengine_us/parameters/gov/states/wa/dshs/tanf/income/limit.yaml b/policyengine_us/parameters/gov/states/wa/dshs/tanf/income/limit.yaml index bebbe4f2469..08e4ccc7d6f 100644 --- a/policyengine_us/parameters/gov/states/wa/dshs/tanf/income/limit.yaml +++ b/policyengine_us/parameters/gov/states/wa/dshs/tanf/income/limit.yaml @@ -1,8 +1,8 @@ description: Washington sets these gross earned income limits for the Temporary Assistance for Needy Families program. -# Note: These values follow the formula: Income Limit = (Payment Standard × 2) + $500 -# This represents the break-even point where countable income equals the payment standard, -# resulting in $0 benefit. While mathematically derived, WAC 388-478-0035 publishes these -# as a table rather than a formula, so we preserve the table structure here. +# Note: These values appear to follow a mathematical relationship with payment standards +# (Income Limit ≈ Payment Standard × 2, plus $500 after Aug 1, 2024), but no legal code +# explicitly states this formula. WAC 388-478-0035 publishes these as a table. +# Values here are taken directly from the published WSR tables. metadata: unit: currency-USD @@ -10,29 +10,77 @@ metadata: label: Washington TANF maximum gross earned income limit breakdown: - range(1, 11) - breakdown_labels: + breakdown_label: - Assistance unit size reference: - title: WAC 388-478-0035 - Maximum earned income limits for TANF, SFA, PWA, and RCA href: https://app.leg.wa.gov/wac/default.aspx?cite=388-478-0035 + - title: WAC 388-478-0035 Maximum earned income limits for TANF, SFA, PWA, and RCA. 2016 + href: https://lawfilesext.leg.wa.gov/law/wsr/2016/01/16-01-093.htm + - title: WAC 388-478-0035 Maximum earned income limits for TANF, SFA, PWA, and RCA. 2018 + href: https://lawfilesext.leg.wa.gov/law/wsr/2018/09/18-09-088.htm + - title: WAC 388-478-0035 Maximum earned income limits for TANF, SFA, PWA, and RCA. 2021 + href: https://lawfilesext.leg.wa.gov/law/wsr/2021/21/21-21-054.htm + - title: WAC 388-478-0035 Maximum earned income limits for TANF, SFA, PWA, and RCA. 2024 + href: https://lawfilesext.leg.wa.gov/law/wsr/2023/23/23-23-054.htm 1: - 2024-01-01: 1_400 + 2016-02-01: 665 + 2018-07-01: 726 + 2021-07-01: 834 + 2024-01-01: 900 + 2024-08-01: 1_400 2: - 2024-01-01: 1_640 + 2016-02-01: 839 + 2018-07-01: 918 + 2021-07-01: 1_056 + 2024-01-01: 1_140 + 2024-08-01: 1_640 3: - 2024-01-01: 1_912 + 2016-02-01: 1_042 + 2018-07-01: 1_138 + 2021-07-01: 1_308 + 2024-01-01: 1_412 + 2024-08-01: 1_912 4: - 2024-01-01: 2_166 + 2016-02-01: 1_225 + 2018-07-01: 1_340 + 2021-07-01: 1_542 + 2024-01-01: 1_666 + 2024-08-01: 2_166 5: - 2024-01-01: 2_418 + 2016-02-01: 1_413 + 2018-07-01: 1_544 + 2021-07-01: 1_776 + 2024-01-01: 1_918 + 2024-08-01: 2_418 6: - 2024-01-01: 2_680 + 2016-02-01: 1_604 + 2018-07-01: 1_754 + 2021-07-01: 2_018 + 2024-01-01: 2_180 + 2024-08-01: 2_680 7: - 2024-01-01: 3_016 + 2016-02-01: 1_853 + 2018-07-01: 2_026 + 2021-07-01: 2_330 + 2024-01-01: 2_516 + 2024-08-01: 3_016 8: - 2024-01-01: 3_284 + 2016-02-01: 2_051 + 2018-07-01: 2_242 + 2021-07-01: 2_578 + 2024-01-01: 2_784 + 2024-08-01: 3_284 9: - 2024-01-01: 3_558 + 2016-02-01: 2_252 + 2018-07-01: 2_462 + 2021-07-01: 2_832 + 2024-01-01: 3_058 + 2024-08-01: 3_558 10: - 2024-01-01: 3_824 + 2016-02-01: 2_448 + 2018-07-01: 2_676 + 2021-07-01: 3_078 + 2024-01-01: 3_324 + 2024-08-01: 3_824 diff --git a/policyengine_us/parameters/gov/states/wa/dshs/tanf/maximum_family_size.yaml b/policyengine_us/parameters/gov/states/wa/dshs/tanf/maximum_family_size.yaml index 1524c9eee89..8a468bfb1f1 100644 --- a/policyengine_us/parameters/gov/states/wa/dshs/tanf/maximum_family_size.yaml +++ b/policyengine_us/parameters/gov/states/wa/dshs/tanf/maximum_family_size.yaml @@ -1,7 +1,7 @@ description: Washington defines payment standards and income limits for family sizes up to this maximum under the Temporary Assistance for Needy Families program. values: - 2024-01-01: 10 + 2016-01-01: 10 metadata: unit: person diff --git a/policyengine_us/parameters/gov/states/wa/dshs/tanf/payment_standard/amount.yaml b/policyengine_us/parameters/gov/states/wa/dshs/tanf/payment_standard/amount.yaml index b2ab05695d9..9c524636efd 100644 --- a/policyengine_us/parameters/gov/states/wa/dshs/tanf/payment_standard/amount.yaml +++ b/policyengine_us/parameters/gov/states/wa/dshs/tanf/payment_standard/amount.yaml @@ -6,29 +6,68 @@ metadata: label: Washington TANF payment standard breakdown: - range(1, 11) - breakdown_labels: + breakdown_label: - Assistance unit size reference: - title: WAC 388-478-0020 - Payment standards for TANF, SFA, and RCA href: https://app.leg.wa.gov/wac/default.aspx?cite=388-478-0020 + - title: WAC 388-478-0020 Payment standards for TANF, SFA, and RCA. 2016 + href: https://lawfilesext.leg.wa.gov/law/wsr/2016/01/16-01-093.htm + - title: WAC 388-478-0020 Payment standards for TANF, SFA, and RCA. 2018 + href: https://lawfilesext.leg.wa.gov/law/wsr/2018/09/18-09-088.htm + - title: WAC 388-478-0020 Payment standards for TANF, SFA, and RCA. 2021 + href: https://lawfilesext.leg.wa.gov/law/wsr/2021/21/21-21-054.htm + +# Note: Values before Oct 25, 2020 are for households "with shelter costs". +# WSR 20-20-007 eliminated the shelter cost distinction; all households now use these amounts. 1: + 2016-02-01: 332 + 2018-07-01: 363 + 2021-07-01: 417 2024-01-01: 450 2: + 2016-02-01: 420 + 2018-07-01: 459 + 2021-07-01: 528 2024-01-01: 570 3: + 2016-02-01: 521 + 2018-07-01: 569 + 2021-07-01: 654 2024-01-01: 706 4: + 2016-02-01: 613 + 2018-07-01: 670 + 2021-07-01: 771 2024-01-01: 833 5: + 2016-02-01: 706 + 2018-07-01: 772 + 2021-07-01: 888 2024-01-01: 959 6: + 2016-02-01: 802 + 2018-07-01: 877 + 2021-07-01: 1_009 2024-01-01: 1_090 7: + 2016-02-01: 927 + 2018-07-01: 1_013 + 2021-07-01: 1_165 2024-01-01: 1_258 8: + 2016-02-01: 1_026 + 2018-07-01: 1_121 + 2021-07-01: 1_289 2024-01-01: 1_392 9: + 2016-02-01: 1_126 + 2018-07-01: 1_231 + 2021-07-01: 1_416 2024-01-01: 1_529 10: + 2016-02-01: 1_224 + 2018-07-01: 1_338 + 2021-07-01: 1_539 2024-01-01: 1_662 diff --git a/policyengine_us/parameters/gov/states/wa/dshs/tanf/payment_standard/maximum_amount.yaml b/policyengine_us/parameters/gov/states/wa/dshs/tanf/payment_standard/maximum_amount.yaml deleted file mode 100644 index 767f743858e..00000000000 --- a/policyengine_us/parameters/gov/states/wa/dshs/tanf/payment_standard/maximum_amount.yaml +++ /dev/null @@ -1,12 +0,0 @@ -description: Washington limits the grant payment to this amount under the Temporary Assistance for Needy Families program. - -values: - 2024-01-01: 1_338 - -metadata: - unit: currency-USD - period: month - label: Washington TANF maximum grant cap - reference: - - title: DSHS Eligibility A-Z Manual, Income - Effect of Income and Deductions on Eligibility - href: https://www.dshs.wa.gov/esa/income-table-contents/income-effect-income-and-deductions-eligibility-and-benefit-level diff --git a/policyengine_us/parameters/gov/states/wa/dshs/tanf/resource_limit.yaml b/policyengine_us/parameters/gov/states/wa/dshs/tanf/resource_limit.yaml index 797e2427d67..2ca947b374a 100644 --- a/policyengine_us/parameters/gov/states/wa/dshs/tanf/resource_limit.yaml +++ b/policyengine_us/parameters/gov/states/wa/dshs/tanf/resource_limit.yaml @@ -1,15 +1,24 @@ description: Washington limits the Temporary Assistance for Needy Families program to households with countable resources up to this amount. values: - 2022-01-01: 6_000 - 2024-01-01: 12_000 + 1998-09-01: 1_000 + 2019-02-01: 6_000 + 2024-02-01: 12_000 + +# Note: Before Feb 1, 2019, Washington had a two-tier resource limit structure: + # - Applicants: up to $1,000 + # - Recipients: up to $1,000 plus an additional $3,000 in savings accounts + # This file uses the applicant limit ($1,000) for the pre-2019 period. + # E2SHB 1831 (2018) simplified this to a single $6,000 limit for all. metadata: unit: currency-USD period: year label: Washington TANF resource limit reference: - - title: Washington TANF State Plan 2022, page 13 - $6,000 cash resource limit - href: https://workfirst.wa.gov/sites/default/files/public/TANF_stateplan_2022_final.pdf#page=13 + - title: WAC 388-470-0005 - Resource limits for cash assistance + href: https://app.leg.wa.gov/wac/default.aspx?cite=388-470-0005 + - title: E2SHB 1831 (2018) - Resource limit increased to $6,000 effective Feb 1, 2019 + href: https://app.leg.wa.gov/billsummary?BillNumber=1831&Year=2017 - title: HB 1447 (2023 c 418) - Increased asset limit to $12,000 effective Feb 1, 2024 href: https://app.leg.wa.gov/billsummary?BillNumber=1447&Year=2023 diff --git a/policyengine_us/tests/policy/baseline/gov/states/wa/dshs/tanf/benefit/wa_tanf_payment_standard.yaml b/policyengine_us/tests/policy/baseline/gov/states/wa/dshs/tanf/benefit/wa_tanf_payment_standard.yaml index ba44a6e19d9..f75443e974b 100644 --- a/policyengine_us/tests/policy/baseline/gov/states/wa/dshs/tanf/benefit/wa_tanf_payment_standard.yaml +++ b/policyengine_us/tests/policy/baseline/gov/states/wa/dshs/tanf/benefit/wa_tanf_payment_standard.yaml @@ -46,3 +46,59 @@ spm_unit_size: 3 output: wa_tanf_payment_standard: 0 + +# Historical tests - verify 2016 values apply in early 2018 +- name: Case 7, family size 1 in 2018-01. + period: 2018-01 + input: + state_code: WA + spm_unit_size: 1 + output: + # Uses 2016-02-01 value (before 2018-07-01 update) + wa_tanf_payment_standard: 332 + +- name: Case 8, family size 3 in 2018-01. + period: 2018-01 + input: + state_code: WA + spm_unit_size: 3 + output: + # Uses 2016-02-01 value (before 2018-07-01 update) + wa_tanf_payment_standard: 521 + +- name: Case 9, family size 10 in 2018-01. + period: 2018-01 + input: + state_code: WA + spm_unit_size: 10 + output: + # Uses 2016-02-01 value (before 2018-07-01 update) + wa_tanf_payment_standard: 1_224 + +# Historical tests - verify 2021 values apply in 2022 +- name: Case 10, family size 1 in 2022-01. + period: 2022-01 + input: + state_code: WA + spm_unit_size: 1 + output: + # Uses 2021-07-01 value (15% increase) + wa_tanf_payment_standard: 417 + +- name: Case 11, family size 3 in 2022-01. + period: 2022-01 + input: + state_code: WA + spm_unit_size: 3 + output: + # Uses 2021-07-01 value (15% increase) + wa_tanf_payment_standard: 654 + +- name: Case 12, family size 10 in 2022-01. + period: 2022-01 + input: + state_code: WA + spm_unit_size: 10 + output: + # Uses 2021-07-01 value (15% increase) + wa_tanf_payment_standard: 1_539 diff --git a/policyengine_us/tests/policy/baseline/gov/states/wa/dshs/tanf/eligibility/wa_tanf_income_eligible.yaml b/policyengine_us/tests/policy/baseline/gov/states/wa/dshs/tanf/eligibility/wa_tanf_income_eligible.yaml index c70145979a3..0c0bba89104 100644 --- a/policyengine_us/tests/policy/baseline/gov/states/wa/dshs/tanf/eligibility/wa_tanf_income_eligible.yaml +++ b/policyengine_us/tests/policy/baseline/gov/states/wa/dshs/tanf/eligibility/wa_tanf_income_eligible.yaml @@ -1,16 +1,17 @@ -- name: Zero gross earned income - eligible - period: 2024-01 +# Tests for Aug 2024+ income limits +- name: Case 1, zero gross earned income. + period: 2025-01 input: state_code: WA spm_unit_size: 3 tanf_gross_earned_income: 0 output: - # Income limit for family of 3: $1,912 + # Income limit for family of 3: $1,912 (Aug 2024+) # Gross earned: $0 <= $1,912 wa_tanf_income_eligible: true -- name: Gross earned income below threshold - eligible - period: 2024-01 +- name: Case 2, gross earned income below threshold. + period: 2025-01 input: state_code: WA spm_unit_size: 3 @@ -20,8 +21,8 @@ # Gross earned: $1,500 <= $1,912 wa_tanf_income_eligible: true -- name: Gross earned income exactly at threshold - eligible - period: 2024-01 +- name: Case 3, gross earned income exactly at threshold. + period: 2025-01 input: state_code: WA spm_unit_size: 3 @@ -31,8 +32,8 @@ # Gross earned: $1,912 <= $1,912 wa_tanf_income_eligible: true -- name: Gross earned income one dollar over threshold - ineligible - period: 2024-01 +- name: Case 4, gross earned income one dollar over threshold. + period: 2025-01 input: state_code: WA spm_unit_size: 3 @@ -42,8 +43,8 @@ # Gross earned: $1,913 > $1,912 wa_tanf_income_eligible: false -- name: Gross earned income far over threshold - ineligible - period: 2024-01 +- name: Case 5, gross earned income far over threshold. + period: 2025-01 input: state_code: WA spm_unit_size: 3 @@ -53,30 +54,30 @@ # Gross earned: $3,000 > $1,912 wa_tanf_income_eligible: false -- name: Family size 1 - at threshold - period: 2024-01 +- name: Case 6, family size 1 at threshold. + period: 2025-01 input: state_code: WA spm_unit_size: 1 tanf_gross_earned_income: 1_400 output: - # Income limit for family of 1: $1,400 + # Income limit for family of 1: $1,400 (Aug 2024+) # Gross earned: $1,400 <= $1,400 wa_tanf_income_eligible: true -- name: Family size 10 - at maximum threshold - period: 2024-01 +- name: Case 7, family size 10 at maximum threshold. + period: 2025-01 input: state_code: WA spm_unit_size: 10 tanf_gross_earned_income: 3_824 output: - # Income limit for family of 10: $3,824 + # Income limit for family of 10: $3,824 (Aug 2024+) # Gross earned: $3,824 <= $3,824 wa_tanf_income_eligible: true -- name: Family size 15 - capped at size 10 limit - period: 2024-01 +- name: Case 8, family size 15 capped at size 10 limit. + period: 2025-01 input: state_code: WA spm_unit_size: 15 @@ -86,11 +87,80 @@ # Gross earned: $3,824 <= $3,824 wa_tanf_income_eligible: true -- name: Only calculate for WA - period: 2024-01 +- name: Case 9, only calculate for WA. + period: 2025-01 input: state_code: MT spm_unit_size: 3 tanf_gross_earned_income: 1_000 output: wa_tanf_income_eligible: false + +# Historical tests - verify 2024-01 income limits (before Aug 2024 increase) +- name: Case 10, 2024-01 uses Jan 2024 income limits. + period: 2024-01 + input: + state_code: WA + spm_unit_size: 3 + tanf_gross_earned_income: 1_412 + output: + # Income limit for family of 3 in Jan 2024: $1,412 + # Gross earned: $1,412 <= $1,412 + wa_tanf_income_eligible: true + +- name: Case 11, 2024-01 over Jan 2024 limit. + period: 2024-01 + input: + state_code: WA + spm_unit_size: 3 + tanf_gross_earned_income: 1_413 + output: + # Income limit for family of 3 in Jan 2024: $1,412 + # Gross earned: $1,413 > $1,412 + wa_tanf_income_eligible: false + +# Historical tests - verify 2018-01 income limits (2016 values) +- name: Case 12, 2018-01 uses 2016 income limits. + period: 2018-01 + input: + state_code: WA + spm_unit_size: 3 + tanf_gross_earned_income: 1_042 + output: + # Income limit for family of 3 in 2018-01: $1,042 (2016 value) + # Gross earned: $1,042 <= $1,042 + wa_tanf_income_eligible: true + +- name: Case 13, 2018-01 over 2016 income limit. + period: 2018-01 + input: + state_code: WA + spm_unit_size: 3 + tanf_gross_earned_income: 1_043 + output: + # Income limit for family of 3 in 2018-01: $1,042 + # Gross earned: $1,043 > $1,042 + wa_tanf_income_eligible: false + +# Historical tests - verify 2021-07 income limits (15% increase) +- name: Case 14, 2022-01 uses July 2021 income limits. + period: 2022-01 + input: + state_code: WA + spm_unit_size: 3 + tanf_gross_earned_income: 1_308 + output: + # Income limit for family of 3 in 2022-01: $1,308 (15% increase) + # Gross earned: $1,308 <= $1,308 + wa_tanf_income_eligible: true + +- name: Case 15, 2022-01 over July 2021 limit. + period: 2022-01 + input: + state_code: WA + spm_unit_size: 3 + tanf_gross_earned_income: 1_309 + output: + # Income limit for family of 3 in 2022-01: $1,308 + # Gross earned: $1,309 > $1,308 + wa_tanf_income_eligible: false diff --git a/policyengine_us/tests/policy/baseline/gov/states/wa/dshs/tanf/income/wa_tanf_countable_earned_income.yaml b/policyengine_us/tests/policy/baseline/gov/states/wa/dshs/tanf/income/wa_tanf_countable_earned_income.yaml index 7986cc66b3a..90d3b6525f4 100644 --- a/policyengine_us/tests/policy/baseline/gov/states/wa/dshs/tanf/income/wa_tanf_countable_earned_income.yaml +++ b/policyengine_us/tests/policy/baseline/gov/states/wa/dshs/tanf/income/wa_tanf_countable_earned_income.yaml @@ -1,5 +1,6 @@ -- name: Zero gross earned income - zero countable - period: 2024-01 +# Tests for Aug 2024+ rules (with $500 flat disregard) +- name: Case 1, zero gross earned income. + period: 2025-01 input: state_code: WA tanf_gross_earned_income: 0 @@ -7,8 +8,8 @@ # Countable = max($0 - $500, 0) × 0.5 = $0 wa_tanf_countable_earned_income: 0 -- name: Gross earned below disregard - zero countable - period: 2024-01 +- name: Case 2, gross earned below $500 disregard. + period: 2025-01 input: state_code: WA tanf_gross_earned_income: 300 @@ -16,8 +17,8 @@ # Countable = max($300 - $500, 0) × 0.5 = $0 wa_tanf_countable_earned_income: 0 -- name: Gross earned exactly at disregard - zero countable - period: 2024-01 +- name: Case 3, gross earned exactly at $500 disregard. + period: 2025-01 input: state_code: WA tanf_gross_earned_income: 500 @@ -25,46 +26,85 @@ # Countable = max($500 - $500, 0) × 0.5 = $0 wa_tanf_countable_earned_income: 0 -- name: Gross earned one dollar over disregard - period: 2024-01 +- name: Case 4, gross earned one dollar over disregard. + period: 2025-01 input: state_code: WA tanf_gross_earned_income: 501 output: - # Countable = ($501 - $500) × 0.5 = $0.50 + # Countable = max($501 - $500, 0) × 0.5 = $0.50 wa_tanf_countable_earned_income: 0.5 -- name: Gross earned moderately above disregard - period: 2024-01 +- name: Case 5, gross earned moderately above disregard. + period: 2025-01 input: state_code: WA tanf_gross_earned_income: 1_000 output: - # Countable = ($1,000 - $500) × 0.5 = $250 + # Countable = max($1,000 - $500, 0) × 0.5 = $250 wa_tanf_countable_earned_income: 250 -- name: Gross earned significantly above disregard - period: 2024-01 +- name: Case 6, gross earned significantly above disregard. + period: 2025-01 input: state_code: WA tanf_gross_earned_income: 2_000 output: - # Countable = ($2,000 - $500) × 0.5 = $750 + # Countable = max($2,000 - $500, 0) × 0.5 = $750 wa_tanf_countable_earned_income: 750 -- name: High gross earned income - period: 2024-01 +- name: Case 7, high gross earned income. + period: 2025-01 input: state_code: WA tanf_gross_earned_income: 4_000 output: - # Countable = ($4,000 - $500) × 0.5 = $1,750 + # Countable = max($4,000 - $500, 0) × 0.5 = $1,750 wa_tanf_countable_earned_income: 1_750 -- name: Only calculate for WA - period: 2024-01 +- name: Case 8, only calculate for WA. + period: 2025-01 input: state_code: OR tanf_gross_earned_income: 1_000 output: wa_tanf_countable_earned_income: 0 + +# Historical tests - verify pre-Aug-2024 calculation (no $500 flat disregard) +- name: Case 9, gross earned in 2018-01 with only 50% disregard. + period: 2018-01 + input: + state_code: WA + tanf_gross_earned_income: 1_000 + output: + # Pre-Aug 2024: No $500 flat disregard, only 50% + # Countable = $1,000 × 0.5 = $500 + wa_tanf_countable_earned_income: 500 + +- name: Case 10, low income in 2018-01. + period: 2018-01 + input: + state_code: WA + tanf_gross_earned_income: 300 + output: + # Countable = $300 × 0.5 = $150 + wa_tanf_countable_earned_income: 150 + +- name: Case 11, high income in 2018-01. + period: 2018-01 + input: + state_code: WA + tanf_gross_earned_income: 2_000 + output: + # Countable = $2,000 × 0.5 = $1,000 + wa_tanf_countable_earned_income: 1_000 + +- name: Case 12, 2024-01 uses only 50% disregard (before Aug 2024). + period: 2024-01 + input: + state_code: WA + tanf_gross_earned_income: 1_000 + output: + # 2024-01 is before Aug 2024, so no $500 flat disregard + # Countable = $1,000 × 0.5 = $500 + wa_tanf_countable_earned_income: 500 diff --git a/policyengine_us/tests/policy/baseline/gov/states/wa/dshs/tanf/integration.yaml b/policyengine_us/tests/policy/baseline/gov/states/wa/dshs/tanf/integration.yaml index 47315119d83..a1ae214e363 100644 --- a/policyengine_us/tests/policy/baseline/gov/states/wa/dshs/tanf/integration.yaml +++ b/policyengine_us/tests/policy/baseline/gov/states/wa/dshs/tanf/integration.yaml @@ -1,676 +1,749 @@ -- name: Single parent with 2 children - no income - period: 2024-01 +# Integration tests for WA TANF using Aug 2024+ rules +# ($500 flat disregard + 50%, $12,000 resource limit, Aug 2024 income limits) + +- name: Case 1, single parent with 2 children, no income. + period: 2025-01 input: people: - parent: + person1: age: 30 - child1: + person2: age: 5 is_tax_unit_dependent: true - child2: + person3: age: 3 is_tax_unit_dependent: true families: family: - members: [parent, child1, child2] + members: [person1, person2, person3] spm_units: spm_unit: - members: [parent, child1, child2] + members: [person1, person2, person3] tax_units: tax_unit: - members: [parent, child1, child2] + members: [person1, person2, person3] households: household: - members: [parent, child1, child2] + members: [person1, person2, person3] state_code: WA output: wa_tanf_payment_standard: 706 wa_tanf_countable_income: 0 wa_tanf_eligible: true wa_tanf: 706 -- name: Single parent with 2 children - low earned income - period: 2024-01 + +- name: Case 2, single parent with 2 children, low earned income. + period: 2025-01 input: people: - parent: + person1: age: 30 - employment_income_before_lsr: 12000 - child1: + employment_income_before_lsr: 12_000 + person2: age: 5 is_tax_unit_dependent: true - child2: + person3: age: 3 is_tax_unit_dependent: true families: family: - members: [parent, child1, child2] + members: [person1, person2, person3] spm_units: spm_unit: - members: [parent, child1, child2] + members: [person1, person2, person3] tax_units: tax_unit: - members: [parent, child1, child2] + members: [person1, person2, person3] households: household: - members: [parent, child1, child2] + members: [person1, person2, person3] state_code: WA output: wa_tanf_payment_standard: 706 + # Monthly income: $12,000 / 12 = $1,000 + # Countable earned = max($1,000 - $500, 0) × 0.5 = $250 wa_tanf_countable_income: 250 wa_tanf_eligible: true wa_tanf: 456 -- name: Single parent with 2 children - moderate earned income - period: 2024-01 + +- name: Case 3, single parent with 2 children, moderate earned income. + period: 2025-01 input: people: - parent: + person1: age: 30 - employment_income_before_lsr: 21600 - child1: + employment_income_before_lsr: 22_944 + person2: age: 5 is_tax_unit_dependent: true - child2: + person3: age: 3 is_tax_unit_dependent: true families: family: - members: [parent, child1, child2] + members: [person1, person2, person3] spm_units: spm_unit: - members: [parent, child1, child2] + members: [person1, person2, person3] tax_units: tax_unit: - members: [parent, child1, child2] + members: [person1, person2, person3] households: household: - members: [parent, child1, child2] + members: [person1, person2, person3] state_code: WA output: wa_tanf_payment_standard: 706 - wa_tanf_countable_income: 650 + # Monthly income: $22,944 / 12 = $1,912 (at income limit) + # Countable earned = max($1,912 - $500, 0) × 0.5 = $706 + wa_tanf_countable_income: 706 wa_tanf_eligible: true - wa_tanf: 56 -- name: Single parent with 2 children - at income threshold - period: 2024-01 + wa_tanf: 0 + +- name: Case 4, two parents with 3 children, one parent working. + period: 2025-01 input: people: - parent: + person1: + age: 32 + employment_income_before_lsr: 18_000 + person2: age: 30 - employment_income_before_lsr: 22944 - child1: + person3: + age: 8 + is_tax_unit_dependent: true + person4: age: 5 is_tax_unit_dependent: true - child2: - age: 3 + person5: + age: 2 is_tax_unit_dependent: true families: family: - members: [parent, child1, child2] + members: [person1, person2, person3, person4, person5] spm_units: spm_unit: - members: [parent, child1, child2] + members: [person1, person2, person3, person4, person5] tax_units: tax_unit: - members: [parent, child1, child2] + members: [person1, person2, person3, person4, person5] households: household: - members: [parent, child1, child2] + members: [person1, person2, person3, person4, person5] state_code: WA output: - wa_tanf_payment_standard: 706 - wa_tanf_countable_income: 706 + wa_tanf_payment_standard: 959 + # Monthly income: $18,000 / 12 = $1,500 + # Countable earned = max($1,500 - $500, 0) × 0.5 = $500 + wa_tanf_countable_income: 500 wa_tanf_eligible: true - wa_tanf: 0 -- name: Single parent with 2 children - over income threshold - period: 2024-01 + wa_tanf: 459 + +- name: Case 5, single parent with 1 child, unearned income only. + period: 2025-01 input: people: - parent: - age: 30 - employment_income_before_lsr: 23000 - child1: - age: 5 - is_tax_unit_dependent: true - child2: - age: 3 + person1: + age: 45 + social_security: 6_000 + person2: + age: 10 is_tax_unit_dependent: true families: family: - members: [parent, child1, child2] + members: [person1, person2] spm_units: spm_unit: - members: [parent, child1, child2] + members: [person1, person2] tax_units: tax_unit: - members: [parent, child1, child2] + members: [person1, person2] households: household: - members: [parent, child1, child2] + members: [person1, person2] state_code: WA output: - wa_tanf_eligible: false - wa_tanf: 0 -- name: Two parents with 3 children - one parent working - period: 2024-01 + wa_tanf_payment_standard: 570 + # Monthly unearned income: $6,000 / 12 = $500 + # No earned income disregard for unearned income + wa_tanf_countable_income: 500 + wa_tanf_eligible: true + wa_tanf: 70 + +- name: Case 6, family size 1, pregnant woman. + period: 2025-01 input: people: - parent1: - age: 32 - employment_income_before_lsr: 24000 - parent2: - age: 30 - child1: - age: 8 - is_tax_unit_dependent: true - child2: - age: 5 - is_tax_unit_dependent: true - child3: - age: 2 - is_tax_unit_dependent: true + person1: + age: 25 + is_pregnant: true families: family: - members: [parent1, parent2, child1, child2, child3] + members: [person1] spm_units: spm_unit: - members: [parent1, parent2, child1, child2, child3] + members: [person1] tax_units: tax_unit: - members: [parent1, parent2, child1, child2, child3] + members: [person1] households: household: - members: [parent1, parent2, child1, child2, child3] + members: [person1] state_code: WA output: - wa_tanf_payment_standard: 959 - wa_tanf_countable_income: 750 + wa_tanf_payment_standard: 450 + wa_tanf_countable_income: 0 wa_tanf_eligible: true - wa_tanf: 209 -- name: Two parents with 2 children - both parents working - period: 2024-01 + wa_tanf: 450 + +- name: Case 7, family of 7, no income. + period: 2025-01 input: people: - parent1: - age: 35 - employment_income_before_lsr: 18000 - parent2: - age: 33 - employment_income_before_lsr: 9600 - child1: - age: 7 + person1: + age: 40 + person2: + age: 38 + person3: + age: 15 is_tax_unit_dependent: true - child2: - age: 4 + person4: + age: 13 + is_tax_unit_dependent: true + person5: + age: 11 + is_tax_unit_dependent: true + person6: + age: 9 + is_tax_unit_dependent: true + person7: + age: 7 is_tax_unit_dependent: true families: family: - members: [parent1, parent2, child1, child2] + members: [person1, person2, person3, person4, person5, person6, person7] spm_units: spm_unit: - members: [parent1, parent2, child1, child2] + members: [person1, person2, person3, person4, person5, person6, person7] tax_units: tax_unit: - members: [parent1, parent2, child1, child2] + members: [person1, person2, person3, person4, person5, person6, person7] households: household: - members: [parent1, parent2, child1, child2] + members: [person1, person2, person3, person4, person5, person6, person7] state_code: WA output: - wa_tanf_payment_standard: 833 - wa_tanf_countable_income: 900 - wa_tanf_eligible: false - wa_tanf: 0 -- name: Single parent with 1 child - unearned income only - period: 2024-01 + wa_tanf_payment_standard: 1_258 + wa_tanf_countable_income: 0 + wa_tanf_eligible: true + wa_tanf: 1_258 + +- name: Case 8, family size 10, no income. + period: 2025-01 input: people: - parent: + person1: age: 45 - social_security: 6000 - child: + person2: + age: 43 + person3: + age: 18 + person4: + age: 16 + is_tax_unit_dependent: true + person5: + age: 14 + is_tax_unit_dependent: true + person6: + age: 12 + is_tax_unit_dependent: true + person7: age: 10 is_tax_unit_dependent: true + person8: + age: 8 + is_tax_unit_dependent: true + person9: + age: 6 + is_tax_unit_dependent: true + person10: + age: 4 + is_tax_unit_dependent: true families: family: - members: [parent, child] + members: [person1, person2, person3, person4, person5, person6, person7, + person8, person9, person10] spm_units: spm_unit: - members: [parent, child] + members: [person1, person2, person3, person4, person5, person6, person7, + person8, person9, person10] tax_units: tax_unit: - members: [parent, child] + members: [person1, person2, person3, person4, person5, person6, person7, + person8, person9, person10] households: household: - members: [parent, child] + members: [person1, person2, person3, person4, person5, person6, person7, + person8, person9, person10] state_code: WA output: - wa_tanf_payment_standard: 570 - wa_tanf_countable_income: 500 + wa_tanf_payment_standard: 1_662 + wa_tanf_countable_income: 0 wa_tanf_eligible: true - wa_tanf: 70 -- name: Family of 4 - mixed earned and unearned income - period: 2024-01 + wa_tanf: 1_662 + +- name: Case 9, single parent with 1 child, earned income below $500. + period: 2025-01 input: people: - parent: - age: 40 - employment_income_before_lsr: 12000 - social_security: 3600 - child1: - age: 12 - is_tax_unit_dependent: true - child2: - age: 9 - is_tax_unit_dependent: true - child3: - age: 6 + person1: + age: 28 + employment_income_before_lsr: 4_800 + person2: + age: 3 is_tax_unit_dependent: true families: family: - members: [parent, child1, child2, child3] + members: [person1, person2] spm_units: spm_unit: - members: [parent, child1, child2, child3] + members: [person1, person2] tax_units: tax_unit: - members: [parent, child1, child2, child3] + members: [person1, person2] households: household: - members: [parent, child1, child2, child3] + members: [person1, person2] state_code: WA output: - wa_tanf_payment_standard: 833 - wa_tanf_countable_income: 550 + wa_tanf_payment_standard: 570 + # Monthly income: $4,800 / 12 = $400 + # Countable earned = max($400 - $500, 0) × 0.5 = $0 + wa_tanf_countable_income: 0 wa_tanf_eligible: true - wa_tanf: 283 -- name: Family size 1 - pregnant woman with no other children - period: 2024-01 + wa_tanf: 570 + +- name: Case 10, single parent with 3 children, earned income exactly at $500. + period: 2025-01 input: people: - parent: - age: 25 - is_pregnant: true + person1: + age: 32 + employment_income_before_lsr: 6_000 + person2: + age: 10 + is_tax_unit_dependent: true + person3: + age: 7 + is_tax_unit_dependent: true + person4: + age: 4 + is_tax_unit_dependent: true families: family: - members: [parent] + members: [person1, person2, person3, person4] spm_units: spm_unit: - members: [parent] + members: [person1, person2, person3, person4] tax_units: tax_unit: - members: [parent] + members: [person1, person2, person3, person4] households: household: - members: [parent] + members: [person1, person2, person3, person4] state_code: WA output: - wa_tanf_payment_standard: 450 + wa_tanf_payment_standard: 833 + # Monthly income: $6,000 / 12 = $500 + # Countable earned = max($500 - $500, 0) × 0.5 = $0 wa_tanf_countable_income: 0 wa_tanf_eligible: true - wa_tanf: 450 -- name: Family size 6 - moderate income - period: 2024-01 + wa_tanf: 833 + +- name: Case 11, family of 5, high unearned income. + period: 2025-01 input: people: - parent1: - age: 38 - employment_income_before_lsr: 18000 - parent2: - age: 36 - child1: - age: 14 + person1: + age: 50 + social_security: 12_000 + person2: + age: 15 is_tax_unit_dependent: true - child2: - age: 11 + person3: + age: 13 is_tax_unit_dependent: true - child3: - age: 8 + person4: + age: 11 is_tax_unit_dependent: true - child4: - age: 5 + person5: + age: 9 is_tax_unit_dependent: true families: family: - members: [parent1, parent2, child1, child2, child3, child4] + members: [person1, person2, person3, person4, person5] spm_units: spm_unit: - members: [parent1, parent2, child1, child2, child3, child4] + members: [person1, person2, person3, person4, person5] tax_units: tax_unit: - members: [parent1, parent2, child1, child2, child3, child4] + members: [person1, person2, person3, person4, person5] households: household: - members: [parent1, parent2, child1, child2, child3, child4] + members: [person1, person2, person3, person4, person5] state_code: WA output: - wa_tanf_payment_standard: 1090 - wa_tanf_countable_income: 500 + wa_tanf_payment_standard: 959 + # Monthly unearned income: $12,000 / 12 = $1,000 + wa_tanf_countable_income: 1_000 wa_tanf_eligible: true - wa_tanf: 590 -- name: Family size 8 - testing maximum grant cap with no income - period: 2024-01 + wa_tanf: 0 + +- name: Case 12, single parent with 4 children, self-employment income. + period: 2025-01 input: people: - parent1: - age: 42 - parent2: - age: 40 - child1: - age: 16 - is_tax_unit_dependent: true - child2: - age: 14 - is_tax_unit_dependent: true - child3: + person1: + age: 34 + self_employment_income_before_lsr: 15_600 + person2: age: 12 is_tax_unit_dependent: true - child4: + person3: age: 10 is_tax_unit_dependent: true - child5: + person4: age: 8 is_tax_unit_dependent: true - child6: + person5: age: 6 is_tax_unit_dependent: true families: family: - members: [parent1, parent2, child1, child2, child3, child4, child5, child6] + members: [person1, person2, person3, person4, person5] spm_units: spm_unit: - members: [parent1, parent2, child1, child2, child3, child4, child5, child6] + members: [person1, person2, person3, person4, person5] tax_units: tax_unit: - members: [parent1, parent2, child1, child2, child3, child4, child5, child6] + members: [person1, person2, person3, person4, person5] households: household: - members: [parent1, parent2, child1, child2, child3, child4, child5, child6] + members: [person1, person2, person3, person4, person5] state_code: WA output: - wa_tanf_payment_standard: 1392 - wa_tanf_countable_income: 0 + wa_tanf_payment_standard: 959 + # Monthly income: $15,600 / 12 = $1,300 + # Countable earned = max($1,300 - $500, 0) × 0.5 = $400 + wa_tanf_countable_income: 400 wa_tanf_eligible: true - wa_tanf: 1338 -- name: Family size 10 - testing maximum grant cap with low income - period: 2024-01 + wa_tanf: 559 + +# Historical integration tests for 2022-01 period +# (50% disregard only, no $500 flat deduction, $6,000 resource limit) + +- name: Case 13, 2022-01 single parent with 2 children, no income. + period: 2022-01 input: people: - parent1: - age: 45 - employment_income_before_lsr: 9600 - parent2: - age: 43 - child1: - age: 18 - child2: - age: 16 - is_tax_unit_dependent: true - child3: - age: 14 - is_tax_unit_dependent: true - child4: - age: 12 - is_tax_unit_dependent: true - child5: - age: 10 + person1: + age: 30 + person2: + age: 5 is_tax_unit_dependent: true - child6: - age: 8 + person3: + age: 3 is_tax_unit_dependent: true - child7: - age: 6 + families: + family: + members: [person1, person2, person3] + spm_units: + spm_unit: + members: [person1, person2, person3] + tax_units: + tax_unit: + members: [person1, person2, person3] + households: + household: + members: [person1, person2, person3] + state_code: WA + output: + # 2021-07-01 payment standard for family of 3: $654 (15% increase, used in 2022-01) + wa_tanf_payment_standard: 654 + wa_tanf_countable_income: 0 + wa_tanf_eligible: true + wa_tanf: 654 + +- name: Case 14, 2022-01 single parent with 2 children, low earned income. + period: 2022-01 + input: + people: + person1: + age: 30 + employment_income_before_lsr: 6_000 + person2: + age: 5 is_tax_unit_dependent: true - child8: - age: 4 + person3: + age: 3 is_tax_unit_dependent: true families: family: - members: [parent1, parent2, child1, child2, child3, child4, child5, child6, - child7, child8] + members: [person1, person2, person3] spm_units: spm_unit: - members: [parent1, parent2, child1, child2, child3, child4, child5, child6, - child7, child8] + members: [person1, person2, person3] tax_units: tax_unit: - members: [parent1, parent2, child1, child2, child3, child4, child5, child6, - child7, child8] + members: [person1, person2, person3] households: household: - members: [parent1, parent2, child1, child2, child3, child4, child5, child6, - child7, child8] + members: [person1, person2, person3] state_code: WA output: - wa_tanf_payment_standard: 1662 - wa_tanf_countable_income: 150 + wa_tanf_payment_standard: 654 + # Monthly income: $6,000 / 12 = $500 + # Countable earned = $500 × 0.5 = $250 (no $500 flat disregard in 2022) + wa_tanf_countable_income: 250 wa_tanf_eligible: true - wa_tanf: 1338 -- name: Single parent with 1 child - earned income below $500 disregard - period: 2024-01 + wa_tanf: 404 + +- name: Case 15, 2022-01 single parent with 2 children, income at threshold. + period: 2022-01 input: people: - parent: - age: 28 - employment_income_before_lsr: 4800 - child: + person1: + age: 30 + employment_income_before_lsr: 15_696 + person2: + age: 5 + is_tax_unit_dependent: true + person3: age: 3 is_tax_unit_dependent: true families: family: - members: [parent, child] + members: [person1, person2, person3] spm_units: spm_unit: - members: [parent, child] + members: [person1, person2, person3] tax_units: tax_unit: - members: [parent, child] + members: [person1, person2, person3] households: household: - members: [parent, child] + members: [person1, person2, person3] state_code: WA output: - wa_tanf_payment_standard: 570 - wa_tanf_countable_income: 0 + wa_tanf_payment_standard: 654 + # Monthly income: $15,696 / 12 = $1,308 (at income limit) + # Countable earned = $1,308 × 0.5 = $654 + wa_tanf_countable_income: 654 wa_tanf_eligible: true - wa_tanf: 570 -- name: Single parent with 3 children - earned income exactly at $500 - period: 2024-01 + wa_tanf: 0 + +# Historical integration tests for 2018-01 period +# (50% disregard only, no $500 flat deduction, $1,000 resource limit) + +- name: Case 16, 2018-01 single parent with 2 children, no income. + period: 2018-01 input: people: - parent: - age: 32 - employment_income_before_lsr: 6000 - child1: - age: 10 - is_tax_unit_dependent: true - child2: - age: 7 + person1: + age: 30 + person2: + age: 5 is_tax_unit_dependent: true - child3: - age: 4 + person3: + age: 3 is_tax_unit_dependent: true families: family: - members: [parent, child1, child2, child3] + members: [person1, person2, person3] spm_units: spm_unit: - members: [parent, child1, child2, child3] + members: [person1, person2, person3] tax_units: tax_unit: - members: [parent, child1, child2, child3] + members: [person1, person2, person3] households: household: - members: [parent, child1, child2, child3] + members: [person1, person2, person3] state_code: WA output: - wa_tanf_payment_standard: 833 + # 2016-02-01 payment standard for family of 3: $521 + wa_tanf_payment_standard: 521 wa_tanf_countable_income: 0 wa_tanf_eligible: true - wa_tanf: 833 -- name: Family of 5 - high unearned income exceeding payment standard - period: 2024-01 + wa_tanf: 521 + +- name: Case 17, 2018-01 single parent with 2 children, low earned income. + period: 2018-01 input: people: - parent: - age: 50 - social_security: 12000 - child1: - age: 15 + person1: + age: 30 + employment_income_before_lsr: 6_000 + person2: + age: 5 is_tax_unit_dependent: true - child2: - age: 13 + person3: + age: 3 is_tax_unit_dependent: true - child3: - age: 11 + families: + family: + members: [person1, person2, person3] + spm_units: + spm_unit: + members: [person1, person2, person3] + tax_units: + tax_unit: + members: [person1, person2, person3] + households: + household: + members: [person1, person2, person3] + state_code: WA + output: + wa_tanf_payment_standard: 521 + # Monthly income: $6,000 / 12 = $500 + # Countable earned = $500 × 0.5 = $250 (no $500 flat disregard in 2018) + wa_tanf_countable_income: 250 + wa_tanf_eligible: true + wa_tanf: 271 + +- name: Case 18, 2018-01 single parent with 2 children, income at threshold. + period: 2018-01 + input: + people: + person1: + age: 30 + employment_income_before_lsr: 12_504 + person2: + age: 5 is_tax_unit_dependent: true - child4: - age: 9 + person3: + age: 3 is_tax_unit_dependent: true families: family: - members: [parent, child1, child2, child3, child4] + members: [person1, person2, person3] spm_units: spm_unit: - members: [parent, child1, child2, child3, child4] + members: [person1, person2, person3] tax_units: tax_unit: - members: [parent, child1, child2, child3, child4] + members: [person1, person2, person3] households: household: - members: [parent, child1, child2, child3, child4] + members: [person1, person2, person3] state_code: WA output: - wa_tanf_payment_standard: 959 - wa_tanf_countable_income: 1000 + wa_tanf_payment_standard: 521 + # Monthly income: $12,504 / 12 = $1,042 (at income limit) + # Countable earned = $1,042 × 0.5 = $521 + wa_tanf_countable_income: 521 wa_tanf_eligible: true wa_tanf: 0 -- name: Family of 7 - testing payment standard and cap boundary + +# Historical integration tests for 2024-01 period +# (50% disregard only, no $500 flat deduction, $6,000 resource limit) + +- name: Case 19, 2024-01 single parent with 2 children, no income. period: 2024-01 input: people: - parent1: - age: 40 - parent2: - age: 38 - child1: - age: 15 - is_tax_unit_dependent: true - child2: - age: 13 - is_tax_unit_dependent: true - child3: - age: 11 - is_tax_unit_dependent: true - child4: - age: 9 + person1: + age: 30 + person2: + age: 5 is_tax_unit_dependent: true - child5: - age: 7 + person3: + age: 3 is_tax_unit_dependent: true families: family: - members: [parent1, parent2, child1, child2, child3, child4, child5] + members: [person1, person2, person3] spm_units: spm_unit: - members: [parent1, parent2, child1, child2, child3, child4, child5] + members: [person1, person2, person3] tax_units: tax_unit: - members: [parent1, parent2, child1, child2, child3, child4, child5] + members: [person1, person2, person3] households: household: - members: [parent1, parent2, child1, child2, child3, child4, child5] + members: [person1, person2, person3] state_code: WA output: - wa_tanf_payment_standard: 1258 + # 2024-01-01 payment standard for family of 3: $706 + wa_tanf_payment_standard: 706 wa_tanf_countable_income: 0 wa_tanf_eligible: true - wa_tanf: 1258 -- name: Family of 9 - testing grant cap with moderate income + wa_tanf: 706 + +- name: Case 20, 2024-01 single parent with 2 children, low earned income. period: 2024-01 input: people: - parent1: - age: 44 - employment_income_before_lsr: 12000 - parent2: - age: 42 - child1: - age: 17 - is_tax_unit_dependent: true - child2: - age: 15 - is_tax_unit_dependent: true - child3: - age: 13 - is_tax_unit_dependent: true - child4: - age: 11 - is_tax_unit_dependent: true - child5: - age: 9 - is_tax_unit_dependent: true - child6: - age: 7 - is_tax_unit_dependent: true - child7: + person1: + age: 30 + employment_income_before_lsr: 6_000 + person2: age: 5 is_tax_unit_dependent: true + person3: + age: 3 + is_tax_unit_dependent: true families: family: - members: [parent1, parent2, child1, child2, child3, child4, child5, child6, - child7] + members: [person1, person2, person3] spm_units: spm_unit: - members: [parent1, parent2, child1, child2, child3, child4, child5, child6, - child7] + members: [person1, person2, person3] tax_units: tax_unit: - members: [parent1, parent2, child1, child2, child3, child4, child5, child6, - child7] + members: [person1, person2, person3] households: household: - members: [parent1, parent2, child1, child2, child3, child4, child5, child6, - child7] + members: [person1, person2, person3] state_code: WA output: - wa_tanf_payment_standard: 1529 + wa_tanf_payment_standard: 706 + # Monthly income: $6,000 / 12 = $500 + # Countable earned = $500 × 0.5 = $250 (no $500 flat disregard until Aug 2024) wa_tanf_countable_income: 250 wa_tanf_eligible: true - wa_tanf: 1279 -- name: Single parent with 4 children - self-employment income + wa_tanf: 456 + +- name: Case 21, 2024-01 single parent with 2 children, income at threshold. period: 2024-01 input: people: - parent: - age: 34 - self_employment_income_before_lsr: 15600 - child1: - age: 12 - is_tax_unit_dependent: true - child2: - age: 10 - is_tax_unit_dependent: true - child3: - age: 8 + person1: + age: 30 + employment_income_before_lsr: 16_944 + person2: + age: 5 is_tax_unit_dependent: true - child4: - age: 6 + person3: + age: 3 is_tax_unit_dependent: true families: family: - members: [parent, child1, child2, child3, child4] + members: [person1, person2, person3] spm_units: spm_unit: - members: [parent, child1, child2, child3, child4] + members: [person1, person2, person3] tax_units: tax_unit: - members: [parent, child1, child2, child3, child4] + members: [person1, person2, person3] households: household: - members: [parent, child1, child2, child3, child4] + members: [person1, person2, person3] state_code: WA output: - wa_tanf_payment_standard: 959 - wa_tanf_countable_income: 400 + wa_tanf_payment_standard: 706 + # Monthly income: $16,944 / 12 = $1,412 (at income limit) + # Countable earned = $1,412 × 0.5 = $706 + wa_tanf_countable_income: 706 wa_tanf_eligible: true - wa_tanf: 559 + wa_tanf: 0 diff --git a/policyengine_us/tests/policy/baseline/gov/states/wa/dshs/tanf/wa_tanf.yaml b/policyengine_us/tests/policy/baseline/gov/states/wa/dshs/tanf/wa_tanf.yaml index 182ce90f500..af802e387e0 100644 --- a/policyengine_us/tests/policy/baseline/gov/states/wa/dshs/tanf/wa_tanf.yaml +++ b/policyengine_us/tests/policy/baseline/gov/states/wa/dshs/tanf/wa_tanf.yaml @@ -52,7 +52,7 @@ output: wa_tanf: 0 -- name: Large family - benefit capped by maximum grant cap +- name: Large family - full payment standard period: 2024-01 input: state_code: WA @@ -60,12 +60,10 @@ wa_tanf_payment_standard: 1_662 wa_tanf_countable_income: 0 output: - # Benefit before cap = $1,662 - $0 = $1,662 - # Maximum grant cap = $1,338 - # Benefit = min($1,662, $1,338) = $1,338 - wa_tanf: 1_338 + # Benefit = $1,662 - $0 = $1,662 + wa_tanf: 1_662 -- name: Large family with income - benefit under cap +- name: Large family with income - reduced benefit period: 2024-01 input: state_code: WA @@ -73,12 +71,10 @@ wa_tanf_payment_standard: 1_529 wa_tanf_countable_income: 250 output: - # Benefit before cap = $1,529 - $250 = $1,279 - # Maximum grant cap = $1,338 - # Benefit = min($1,279, $1,338) = $1,279 (under cap) + # Benefit = $1,529 - $250 = $1,279 wa_tanf: 1_279 -- name: Medium family - benefit exactly at cap +- name: Medium family with partial income period: 2024-01 input: state_code: WA @@ -86,9 +82,7 @@ wa_tanf_payment_standard: 1_392 wa_tanf_countable_income: 54 output: - # Benefit before cap = $1,392 - $54 = $1,338 - # Maximum grant cap = $1,338 - # Benefit = min($1,338, $1,338) = $1,338 (exactly at cap) + # Benefit = $1,392 - $54 = $1,338 wa_tanf: 1_338 - name: Only calculate for WA @@ -100,3 +94,26 @@ wa_tanf_countable_income: 0 output: wa_tanf: 0 + +# Historical tests - verify 2016 payment standards in early 2018 +- name: Case 10, eligible with no income in 2018-01. + period: 2018-01 + input: + state_code: WA + wa_tanf_eligible: true + wa_tanf_payment_standard: 521 + wa_tanf_countable_income: 0 + output: + # Benefit = $521 - $0 = $521 (2016 value for size 3) + wa_tanf: 521 + +- name: Case 11, eligible with partial income in 2018-01. + period: 2018-01 + input: + state_code: WA + wa_tanf_eligible: true + wa_tanf_payment_standard: 521 + wa_tanf_countable_income: 200 + output: + # Benefit = $521 - $200 = $321 + wa_tanf: 321 diff --git a/policyengine_us/tests/policy/baseline/gov/states/wa/dshs/tanf/wa_tanf_resources_eligible.yaml b/policyengine_us/tests/policy/baseline/gov/states/wa/dshs/tanf/wa_tanf_resources_eligible.yaml index f5c722286d5..ea197c20540 100644 --- a/policyengine_us/tests/policy/baseline/gov/states/wa/dshs/tanf/wa_tanf_resources_eligible.yaml +++ b/policyengine_us/tests/policy/baseline/gov/states/wa/dshs/tanf/wa_tanf_resources_eligible.yaml @@ -1,15 +1,52 @@ -- name: Households with assets at or below resource limit are eligible - period: 2024 +# Tests for Feb 2024+ resource limits ($12,000) +- name: Case 1, assets at $12,000 resource limit. + period: 2025 input: state_code: WA wa_tanf_countable_resources: 12_000 output: + # Resource limit: $12,000 (Feb 2024+) wa_tanf_resources_eligible: true -- name: Households with assets above resource limit are ineligible - period: 2024 +- name: Case 2, assets above $12,000 resource limit. + period: 2025 input: state_code: WA wa_tanf_countable_resources: 13_000 output: wa_tanf_resources_eligible: false + +# Historical tests - verify pre-Feb-2024 resource limits +- name: Case 3, 2024-01 uses $6,000 limit (before Feb 2024). + period: 2024-01 + input: + state_code: WA + wa_tanf_countable_resources: 6_000 + output: + # Resource limit in Jan 2024: $6,000 + wa_tanf_resources_eligible: true + +- name: Case 4, 2024-01 over $6,000 limit. + period: 2024-01 + input: + state_code: WA + wa_tanf_countable_resources: 6_001 + output: + wa_tanf_resources_eligible: false + +- name: Case 5, 2018-01 uses $1,000 limit (before 2019). + period: 2018-01 + input: + state_code: WA + wa_tanf_countable_resources: 1_000 + output: + # Resource limit in 2018: $1,000 + wa_tanf_resources_eligible: true + +- name: Case 6, 2018-01 over $1,000 limit. + period: 2018-01 + input: + state_code: WA + wa_tanf_countable_resources: 1_001 + output: + wa_tanf_resources_eligible: false diff --git a/policyengine_us/variables/gov/states/wa/dshs/tanf/eligibility/wa_tanf_eligible.py b/policyengine_us/variables/gov/states/wa/dshs/tanf/eligibility/wa_tanf_eligible.py index 73bd5e436e0..ae1678dbce8 100644 --- a/policyengine_us/variables/gov/states/wa/dshs/tanf/eligibility/wa_tanf_eligible.py +++ b/policyengine_us/variables/gov/states/wa/dshs/tanf/eligibility/wa_tanf_eligible.py @@ -10,8 +10,6 @@ class wa_tanf_eligible(Variable): defined_for = StateCode.WA def formula(spm_unit, period, parameters): - person = spm_unit.members - # Must meet demographic requirements (minor child with deprived parent # OR pregnant woman) # Per WAC 388-400-0005, eligibility follows federal TANF demographic rules @@ -19,8 +17,8 @@ def formula(spm_unit, period, parameters): # Must have at least one U.S. citizen or qualified immigrant # Per WAC 388-424-0001, follows federal immigration eligibility - has_citizen = spm_unit.any( - person("is_citizen_or_legal_immigrant", period) + immigration_eligible = ( + add(spm_unit, period, ["is_citizen_or_legal_immigrant"]) > 0 ) # Must meet income eligibility (gross earned income < limit) @@ -36,7 +34,7 @@ def formula(spm_unit, period, parameters): # All requirements must be met return ( demographic_eligible - & has_citizen + & immigration_eligible & income_eligible & resources_eligible ) diff --git a/policyengine_us/variables/gov/states/wa/dshs/tanf/income/wa_tanf_countable_earned_income.py b/policyengine_us/variables/gov/states/wa/dshs/tanf/income/wa_tanf_countable_earned_income.py index eec600f3f46..8d8ac24bb36 100644 --- a/policyengine_us/variables/gov/states/wa/dshs/tanf/income/wa_tanf_countable_earned_income.py +++ b/policyengine_us/variables/gov/states/wa/dshs/tanf/income/wa_tanf_countable_earned_income.py @@ -14,20 +14,20 @@ def formula(spm_unit, period, parameters): # Get gross earned income from federal TANF variable gross_earned = add(spm_unit, period, ["tanf_gross_earned_income"]) - # Apply earned income disregard per WAC 388-450-0170: - # "We start by deducting the first $500 of the total household's - # earned income. We then subtract 50% of the remaining monthly - # gross earned income." + # Apply earned income disregard per WAC 388-450-0170 p = parameters( period ).gov.states.wa.dshs.tanf.income.deductions.earned_income_disregard - # Step 1: Deduct flat $500 family earnings disregard - remainder = max_(gross_earned - p.amount, 0) + # Step 1: Deduct flat family earnings disregard (if in effect) + # The $500 flat disregard was added by HB 1447, effective Aug 1, 2024. + # Before that date, only the 50% disregard applied. + flat_disregard = where(p.in_effect, p.amount, 0) + remainder = max_(gross_earned - flat_disregard, 0) # Step 2: Subtract (disregard) 50% of remaining income # Per WAC 388-450-0170(3): "subtract 50% of the remaining...income" - amount_disregarded = remainder * p.percentage_disregarded + amount_disregarded = remainder * p.rate # Countable earned income = remainder - amount disregarded return remainder - amount_disregarded diff --git a/policyengine_us/variables/gov/states/wa/dshs/tanf/wa_tanf.py b/policyengine_us/variables/gov/states/wa/dshs/tanf/wa_tanf.py index 1772bdcdeb0..6c90513c0f4 100644 --- a/policyengine_us/variables/gov/states/wa/dshs/tanf/wa_tanf.py +++ b/policyengine_us/variables/gov/states/wa/dshs/tanf/wa_tanf.py @@ -15,6 +15,7 @@ class wa_tanf(Variable): def formula(spm_unit, period, parameters): # Get payment standard based on assistance unit size + # (capped at maximum_family_size, typically 10) payment_standard = spm_unit("wa_tanf_payment_standard", period) # Get countable income (after all disregards and deductions) @@ -24,11 +25,4 @@ def formula(spm_unit, period, parameters): # "The department calculates the amount of your cash assistance # by subtracting your AU's countable income from the applicable # payment standard." - grant_before_cap = max_(payment_standard - countable_income, 0) - - # Apply maximum grant cap (unique to Washington) - # Per DSHS manual, grants cannot exceed $1,338 - # regardless of family size (affects families of 8+) - p = parameters(period).gov.states.wa.dshs.tanf.payment_standard - - return min_(grant_before_cap, p.maximum_amount) + return max_(payment_standard - countable_income, 0)