Skip to content

Fix NY ESCC post-2024 to allow ITIN holders in baseline#7323

Merged
DTrim99 merged 1 commit intoPolicyEngine:mainfrom
DTrim99:fix-ny-escc-itin-baseline
Feb 4, 2026
Merged

Fix NY ESCC post-2024 to allow ITIN holders in baseline#7323
DTrim99 merged 1 commit intoPolicyEngine:mainfrom
DTrim99:fix-ny-escc-itin-baseline

Conversation

@DTrim99
Copy link
Collaborator

@DTrim99 DTrim99 commented Feb 4, 2026

Summary

This PR fixes a mistake in PR #7287 which incorrectly created a structural reform (S.9077) to add ITIN eligibility to the NY Empire State Child Credit starting in 2027.

The actual NY statute for the enhanced ESCC (2025-2028) already allows children with ITINs to qualify - this should have been in the baseline implementation, not a future reform.

Problem with PR #7287

PR #7287 made two errors:

  1. Misidentified the issue as a future proposal - S.9077 was treated as proposed legislation when ITIN eligibility is already part of current law (2025-2028)
  2. Left the baseline broken - The baseline ny_ctc_post_2024_eligible.py and ny_ctc_post_2024_base.py used ctc_qualifying_child which ties to federal SSN requirements (IRC 24(h)(7)), incorrectly excluding ITIN children

What This PR Does

  1. Reverts S.9077 reform files - Removes the incorrectly created structural reform:

    • policyengine_us/parameters/gov/contrib/states/ny/s9077/
    • policyengine_us/reforms/states/ny/s9077/
    • policyengine_us/tests/policy/contrib/states/ny/s9077/
  2. Fixes baseline NY ESCC logic - Updates eligibility to use has_itin (which covers both SSN and ITIN holders) instead of ctc_qualifying_child (SSN only):

    • ny_ctc_post_2024_eligible.py
    • ny_ctc_post_2024_base.py
  3. Updates tests - Adds tests verifying ITIN children qualify in the baseline (not just with a reform)

Code Change

Before (broken):

qualifies_for_federal_ctc = person("ctc_qualifying_child", period)
qualifies = qualifies_for_federal_ctc & (age >= p.minimum_age)

After (fixed):

is_dependent = person("is_tax_unit_dependent", period)
has_valid_id = person("has_itin", period)  # has_itin includes SSN
age_eligible = age < p.post_2024.amount.thresholds[-1]
qualifies = is_dependent & has_valid_id & age_eligible & (age >= p.minimum_age)

Test Plan

  • All NY CTC post-2024 eligible tests pass (17 tests)
  • All NY CTC post-2024 base tests pass (20 tests)
  • Tests verify ITIN children qualify in baseline

Closes #7322


🤖 Generated with Claude Code

@codecov
Copy link

codecov bot commented Feb 4, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 100.00%. Comparing base (67abb79) to head (901599b).
⚠️ Report is 33 commits behind head on main.

Additional details and impacted files
@@             Coverage Diff              @@
##             main     #7323       +/-   ##
============================================
+ Coverage   72.11%   100.00%   +27.88%     
============================================
  Files        3794         3     -3791     
  Lines       54662        54    -54608     
  Branches      275         1      -274     
============================================
- Hits        39418        54    -39364     
+ Misses      15228         0    -15228     
+ Partials       16         0       -16     
Flag Coverage Δ
unittests 100.00% <100.00%> (+27.88%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@DTrim99
Copy link
Collaborator Author

DTrim99 commented Feb 4, 2026

Legal code from New York:

(D) For the purposes of this paragraph, a qualifying child shall be an
individual who: (i) is a child, sibling, or stepsibling of the taxpayer,
or a descendent of any such relative; (ii) has the same principal place
of abode as the taxpayer for more than one-half of the taxable year;
(iii) has not attained age seventeen; (iv) has not provided over
one-half of such individual's own support for the calendar year in which
the taxable year of the taxpayer begins; (v) has not filed a joint
return (other than only for a claim of refund) with the individual's
spouse under section six hundred fifty-one of this article for the
taxable year; and (vi) is a citizen or national of the United States, or
an individual with an individual taxpayer identification number issued
by the internal revenue service.

The NY enhanced Empire State Child Credit (2025-2028) already allows
children with ITINs to qualify under the statute. PR PolicyEngine#7287 incorrectly
created a structural reform (S.9077) to add this functionality starting
in 2027, when it should have been in the baseline all along.

This PR:
- Reverts the S.9077 reform files added in PR PolicyEngine#7287
- Creates ny_escc_qualifying_child variable for NY-specific eligibility
- Updates ny_ctc_post_2024_eligible.py to use the new variable
- Updates ny_ctc_post_2024_base.py to use the new variable
- Updates tests to verify ITIN eligibility in baseline

The key issue was that the baseline code tied NY ESCC eligibility to
ctc_qualifying_child, which requires SSN per federal CTC rules (IRC
24(h)(7)). But NY law decouples from this requirement for 2025-2028.

Closes PolicyEngine#7322

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@DTrim99 DTrim99 force-pushed the fix-ny-escc-itin-baseline branch from b993703 to 901599b Compare February 4, 2026 17:45
@DTrim99 DTrim99 merged commit 4b70f95 into PolicyEngine:main Feb 4, 2026
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Revert PR #7287 - NY ESCC post-2024 baseline already allows ITINs

2 participants