PolicyEngine / PolicyEngine/policyengine-us
WA WFTC income ceiling ignores permanently and totally disabled adult qualifying children
- Dominant language
- Python
- Stars
- 162
- Forks
- 212
- Avg merge
- 3d 3h
- Merged PRs (30d)
- 97
Description
## Summary
`wa_working_families_tax_credit_maximum_qualifying_income` counts qualifying children **without** the IRC 152(c)(3)(B) permanently-and-totally-disabled age waiver, while the main `wa_working_families_tax_credit` variable counts them **with** it. On the state-only (ITIN) path, a family with a disabled adult qualifying child gets one-child credit *parameters* but a *childless* income ceiling — so the model denies or under-pays the credit.
## The inconsistency
`wa_working_families_tax_credit.py` (credit amount) applies the waiver:
```python
is_disabled_dependent = person("is_tax_unit_dependent", period) & person(
"is_permanently_and_totally_disabled", period
)
child_count = tax_unit.sum(
(person("is_qualifying_child_dependent", period) | is_disabled_dependent)
& has_tin
)
```
`wa_working_families_tax_credit_maximum_qualifying_income.py` (income ceiling) does not:
```python
washington_child_count = tax_unit.sum(
person("is_qualifying_child_dependent", period) & person("has_tin", period)
)
```
A permanently and totally disabled dependent old enough to fail the normal age test (19/24) counts as a child for the credit amount but not for the income limit.
## Legal basis (the ceiling should count them)
- RCW 82.08.0206(2) defines a WFTC qualifying child as "a qualifying child as defined by Title 26 U.S.C. Sec. 32 of the internal revenue code, except the child may have a valid individual taxpayer identification number in lieu of a social security number." Section 32(c)(3) takes its definition from §152(c), and **§152(c)(3)(B) waives the age test** for someone permanently and totally disabled. The statute's "maximum qualifying income" is the §32 maximum AGI, which is tiered by the number of qualifying children — so a disabled adult qualifying child raises the income limit, not just the credit tier. https://app.leg.wa.gov/RCW/default.aspx?cite=82.08.0206
- WA DOR's application instructions state it directly: "If your qualifying child is permanently and totally disabled at any time in 2023, there is no age requirement," with a worked example of a 24-year-old completely and totally disabled nephew who **can** be claimed ("age is not a factor in his qualification"). The same instructions tie the AGI limits ($17,640 / $46,560 / $52,918 / $56,838 single in 2023) to the number of qualifying children. https://workingfamiliescredit.wa.gov/sites/default/files/2024-01/WFTC_AppInstr_English_2023.pdf#page=5
## Example failure (2023)
Single Washington parent, age 40, files with an ITIN, $20,000 earnings; supports their 30-year-old permanently and totally disabled son (dependent, has ITIN, meets relationship/residency/joint-return tests).
- **Per DOR**: one qualifying child → $46,560 income limit → full one-child credit of **$625**.
- **Model**: `washington_child_count` = 0 (fails the age test), `federal_child_count` = 0 (no SSN), so the ceiling variable returns the childless limit **$17,640**; $20,000 > $17,640 → **$0**.
Second facet — even under the childless ceiling the phase-out window is mis-positioned: same family at $16,000 earnings gets a phase-out start of $17,640 − $5,000 = $12,640 instead of $46,560 − $5,000 = $41,560, paying ~$239 instead of the full $625.
## Trigger scope
Only bites when the disabled dependent lacks an SSN (ITIN): with an SSN, the federal `eitc_child_count` already includes the §152(c)(3)(B) waiver and the ceiling's `max_(federal_child_count, washington_child_count)` papers over the gap. With an ITIN — exactly the population the WFTC's state-only path exists for — both counts are 0.
## Fix
Mirror the `| is_disabled_dependent` term into the ceiling's `washington_child_count` so both variables count qualifying children identically. Add a YAML test for the example above (ITIN filer, disabled adult ITIN dependent, income between the childless and one-child ceilings → full one-child credit).
Found during review of PR #9351 (pre-existing bug — it predates that PR, which rewrites the same call site for the indexing fix).
Contributor guide
Research direction
Read `wa_working_families_tax_credit.py` and `wa_working_families_tax_credit_maximum_qualifying_income.py` to compare how each counts qualifying children. Add the stated YAML test for an ITIN filer with a permanently and totally disabled adult dependent and income between the childless and one-child ceilings. Done when the test confirms the full one-child credit and the income ceiling counts the disabled dependent consistently.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python, yaml
- Domain
- backend, testing
- Issue type
- Bug
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Active
- Clarity
- Clearly specified
- Newbie friendliness
- 76/100