Skip to content

Count CTC-qualifying children only when the filer meets the identification requirements - #10280

Open
PavelMakarchuk wants to merge 3 commits into
mainfrom
ctc-qualifying-children-filer-id
Open

PavelMakarchuk wants to merge 3 commits into
mainfrom
ctc-qualifying-children-filer-id

Conversation

@PavelMakarchuk

@PavelMakarchuk PavelMakarchuk commented Oct 19, 2026 •

Copy link
Copy Markdown
Collaborator

Fixes #9403.

Summary

ctc_qualifying_children counted a child even when the filer failed filer_meets_child_ctc_identification_requirements; only ctc_child_individual_maximum applied that test. This PR follows the statute: IRC 24(h)(7)(A) allows no credit "with respect to any qualifying child" unless the return includes the taxpayer's SSN (on a joint return, at least one spouse's), and IRC 24(e)(2) requires the taxpayer's identification number. The filer test now lives in ctc_qualifying_child, so the count and the amount agree. ctc_maximum does not change for any household.

State credits that read the count were checked against their own statutes. Where a state uses only the IRC 24(c) definition, or counts children for whom any section 24 credit (including the credit for other dependents) is allowed, it keeps those children.

Changes

  • ctc_qualifying_child = ctc_qualifying_child_ignoring_filer_identification AND filer_meets_child_ctc_identification_requirements.
  • New ctc_qualifying_child_ignoring_filer_identification: the previous ctc_qualifying_child tests, which are the IRC 24(c) age limit, the child SSN rule of 24(h)(7)(A)(ii), and the 152(b)(1) dependent-filer rule. It is not the bare 24(c) definition.
  • ctc_child_individual_maximum no longer multiplies by the filer test, because the child flag includes it.
  • New id_ctc_qualifying_children and me_fairness_credit_qualifying_children.

Consumer audit

Federal

Consumer Rule Decision
ctc_phase_in IRC 24(d)(1)(B)(ii), "3 or more qualifying children" New count. No dollar effect: the child credit is already zero for these filers.
ctc_credit_limit_worksheet_b_applies 2025 Schedule 8812 instructions, Worksheet B condition 3: "Line 4 of Schedule 8812 is more than zero"; line 4 counts the "Child tax credit" boxes New count.
ctc_child_individual_maximum_arpa (defined_for) IRC 24(i) New count. ctc is already defined_for the filer TIN test.
rrc_cares_qualifying_children_with_valid_ssn IRC 6428(a)(2): "qualifying children (within the meaning of section 24(c))"; 6428(g) sets the rebate's own ID rules Keeps counting, through ctc_qualifying_child_ignoring_filer_identification.
pr_ctc (through ctc_child_individual_maximum_arpa) IRC 24(e)(2), 24(i) Changes only for 2021 filers with no TIN: they lose the ARPA addition. Their base child amount was already zero, so the Puerto Rico credit now matches the federal one.

States

State and consumer Statute Decision
NC child deduction (nc_child_deduction) G.S. 105-153.5(a1): deduction "for each qualifying child for whom the taxpayer is allowed the federal tax credit" under section 24 of the Code. S.L. 2026-31, Section 12.(a), moved the Code date in G.S. 105-228.90(b)(7) from January 1, 2023 to July 5, 2025, with no decoupling from section 24. The NCDOR notice of July 23, 2026 covers returns for years before 2026. New count. An ITIN filer's SSN-holding child no longer gets the deduction from 2025. This replaces the #9154 regression test, which relied on the January 1, 2023 Code date; #6374 listed a later conformity date as the trigger to revisit NC.
NC credit for children (nc_ctc_potential, amounts only for 2015–2017) Former G.S. 105-153.10 (repealed); the NCDOR Credit for Children page allows the credit "for each dependent child for whom a federal child tax credit was allowed under section 24 of the Code" New count (in those years the filer test is a TIN only).
UT (ut_ctc_potential, ut_ctc_reform) Utah Code 59-10-1047(1)(e): a child "with respect to whom the claimant is allowed to claim a tax credit under Section 24". That includes the credit for other dependents, which IRC 24(h)(4)(C) gives for a child denied the CTC by 24(h)(7). The 2025 TC-40 instructions ask for a child who "qualifies for the federal child tax credit under IRC 24", the same wording as Maine. Keeps counting the children of ITIN filers: ctc_qualifying_child_ignoring_filer_identification with filer_meets_ctc_identification_requirements. A filer with no TIN gets $0 (24(e)(2)), in every year.
ID (id_ctc, id_ctc_reform) Idaho Code 63-3029L(1): "qualifying child" has the meaning in IRC 24(c). The 2025 Form 40 instructions (PDF page 11) list only "Your qualifying child" and "Age 16 or under". Keeps counting, through id_ctc_qualifying_children.
ME sales and property tax fairness credits 36 MRSA 5213-A(1)(A-1)(2) and 5219-KK(1)(A-1)(2)-(3): filers who "can claim the federal child tax credit pursuant to the Code, Section 24" for a "qualifying child or dependent". Section 24 includes the credit for other dependents, and IRC 24(h)(4)(C) gives that credit to a child whose CTC is denied by 24(h)(7). The 2025 Form 1040ME line 13a instructions (PDF page 5) ask for "the number of qualifying children and dependents for whom you are eligible to claim the federal child tax credit or the credit for other dependents". Keeps counting when the filer meets the ODC TIN test, through me_fairness_credit_qualifying_children. A filer with no TIN at all no longer counts children, because no section 24 credit is allowed.
NY Empire State child credit, pre-2025 and post-2027 rules (ny_ctc_pre_2024*) Tax Law 606(c-1) uses section 24 as it was before Public Law 115-97 (the pinned branch), where the filer test is an SSN or ITIN (IRC 24(e)). The IT-213 instructions require "a valid Social Security number (SSN) or IRS individual taxpayer identification number (ITIN)" for the filer. New count. ITIN filers keep the credit. A filer with no TIN at all loses the $100 minimum. Comment added.
NY 2025–2027 rules, GA, CO, NM Own child tests (ny_escc_qualifying_child, ga_ctc_eligible_child, co_ctc_qualifying_child, nm_ctc_qualifying_children) Not affected.
MD, OK Use federal dollar amounts Not affected; the amounts do not change.

Contributed reforms

  • ctc_additional_bracket, ctc_older_child_supplement, family_security_act_2024_ctc: removed the duplicate filer multiply in their ctc_child_individual_maximum overrides. Results do not change.
  • afa_other_dependent_credit (Bennet AFA): the $2,000-per-child phase-out floor now counts ctc_qualifying_child_ignoring_filer_identification. Proposed section 24A asks only for a timely taxpayer TIN (24A(e)(2)), and the reform's own child amount has no filer test. Results match main.
  • ut_ctc_reform: same child test as the baseline Utah credit.
  • mt_hb268: HB 268 requires a taxpayer "permitted a child tax credit under section 24", so it is treated like Utah. New reform variables mt_hb268_qualifying_child and mt_hb268_qualifying_children (child test with a filer SSN or ITIN).
  • mt_ctc: new reform variables mt_ctc_qualifying_child and mt_ctc_qualifying_children. Both branches (CTC-age children and 17-year-old dependents) now use the same rule: no filer SSN rule, but a filer SSN or ITIN is needed. The 17-year-old branch had no filer test before.
  • id_ctc_reform: the refundable cap uses id_ctc_qualifying_children, the same count as the baseline credit.
  • ny_a04038_enhanced_escc_infants: its ny_ctc_post_2024_base override used ctc_qualifying_child, but the baseline uses the ITIN-inclusive ny_escc_qualifying_child. The override now uses the baseline child test. Children with ITINs now count under the reform, as they do in the baseline.
  • american_worker_rebate_act: the bill counts "qualifying children (within the meaning of section 24(c))", like IRC 6428(a)(2), so the child amount uses ctc_qualifying_child_ignoring_filer_identification. The bill's own identification rules stay in american_worker_tax_rebate_eligible. Results do not change.
  • il_sb3567: uses ctc_qualifying_child_ignoring_filer_identification (the Illinois EITC accepts ITIN filers), so its results do not change.
  • american_family_act (DeLauro): keeps the baseline defined_for = "ctc_qualifying_child" on its ARPA child amount, so it follows the baseline.
  • Reforms whose results change for the children of ITIN filers from 2025 (and of filers with no TIN in any year), because the child now counts as an other dependent:
    • ctc_per_child_phase_out: the phase-out scales with the CTC child count, so these filers' credit for other dependents no longer phases out, as for other households with only other dependents.
    • refundable_credit_conversion: the child moves from the per-CTC-child amount to the per-other-dependent amount.
    • ctc_per_child_phase_in, ctc_minimum_refundable_amount, wyden_smith/ctc_expansion: no dollar change, because these filers have no child CTC to phase in or refund.

Tests

YAML only, plus one renamed input in a Python test (test_id_ga_ctc_reform_activation.py). No new Python tests, so no change in CI cost.

  • ctc_qualifying_child.yaml: 2026 filer without an SSN (count 0, ODC $500); 2026 joint return where one spouse has an SSN (count 1); 2024 ITIN filer (count 1); 2024 filer without any TIN (count 0).
  • New ctc_qualifying_child_ignoring_filer_identification.yaml.
  • nc_child_deduction.yaml: ITIN filer 2025 ($0), ITIN filer 2024 ($3,000), joint return with one SSN 2025 ($3,000).
  • ut_ctc.yaml: ITIN filer 2026 ($1,000), filer without any TIN 2026 ($0), filer with an SSN ($1,000). The existing cases now set ctc_qualifying_child_ignoring_filer_identification instead of ctc_qualifying_child, which Utah no longer reads (same in ut_ctc_reform.yaml).
  • New id_ctc_qualifying_children.yaml, me_fairness_credit_qualifying_children.yaml, rrc_cares_qualifying_children_with_valid_ssn.yaml.
  • ny_ctc_pre_2024.yaml: Case 5, ITIN filer 2023 ($330); Case 6, filer without any TIN 2023 ($0).
  • ctc_qualifying_child.yaml: 2025 ITIN filer (count 0, ODC $500, ctc_credit_limit_worksheet_b_applies false).
  • afa_other_dependent_credit.yaml: ITIN head at $300,000 and $150,000 (ctc and refundable_ctc $2,000).
  • mt_hb268.yaml: ITIN filer 2025 (child counts) and filer without any TIN (ineligible). Count inputs renamed to mt_hb268_qualifying_children; mt_ctc.yaml inputs renamed to mt_ctc_qualifying_children.
  • il_sb3567.yaml: removed 23 stale ctc_qualifying_child: true inputs and added an ITIN-filer case ($346.24).
  • ny_a04038_enhanced_escc_infants.yaml: infant with an ITIN of an ITIN filer ($2,000).
  • Idaho and Maine tests that set ctc_qualifying_children as an input now set the state count instead.
  • refundable_credit_conversion/dependent_definition.yaml (clamp case): the test set meets_ctc_identification_requirements only on the child, which leaves the filer at the default false. The filer now gets the same input, because the case means a CTC-qualifying child.

Local runs at e5d9bc1 (macOS, test_batched.py --mode per-subdir --workers 1):

Suite Result
baseline/gov/irs/credits 705 passed (one batch, residential_clean_energy, timed out under load; rerun alone: 10 passed)
baseline/gov/states/{id,ut,me,ny} 373, 405, 646, 765 passed
baseline/gov/states/nc 367 passed, 1 failed: ncdhhs/sa/nc_sa.yaml case 37 (nc_sa_rate@2027-01 1,448 vs 1,436). It fails the same way on main and does not use the CTC; #10288 fixes it.
contrib/{ctc,congress,refundable_credit_conversion} 57, 178, 34 passed
contrib/states/{id,ny,il,mt,ut} 19, 55, 23, 77, 40 passed
contrib/congress/afa Python tests 11 passed
baseline/partners 623 passed (no partner file changed)
Python tests that read these variables 20 passed

Earlier run at 7c01e32: baseline/gov/irs 2,223 passed; baseline/gov/states/{ga,co,nm,md,ok} 415, 647, 703, 610, 362 passed; 16 other YAML files with filers who lack an SSN, 203 passed.

Axiom parity

axiom: us/statutes/26/24/h encoded-correct

us/statutes/26/24/h.yaml already disallows the child credit unless taxpayer_or_spouse_ssn_included_on_return (rules ctc_child_ssn_requirement_satisfied_under_subsection_h and ctc_child_credit_disallowed_by_ssn_requirement_under_subsection_h). Its h.test.yaml has no case where the taxpayer lacks an SSN, so a companion case for that situation is still missing. The NC module us-nc/statutes/105/105-153.5/a1.yaml is blocked upstream on the federal section 24 allowance, and rulespec-us has no module for Idaho 63-3029L, Utah 59-10-1047 or Maine 5219-KK.

Follow-ups (not in this PR)

🤖 Generated with Claude Code

PavelMakarchuk and others added 2 commits October 19, 2026 12:10
IRC 24(h)(7)(A) allows no credit with respect to any qualifying child
unless the return includes the taxpayer's SSN (or one spouse's on a
joint return), and IRC 24(e)(2) requires the taxpayer's identification
number. Move filer_meets_child_ctc_identification_requirements into
ctc_qualifying_child so ctc_qualifying_children agrees with the amount,
and drop the duplicate multiply in ctc_child_individual_maximum.

Keep the previous child tests in
ctc_qualifying_child_ignoring_filer_identification for consumers whose
statutes do not require the federal credit to be allowed:
- Idaho 63-3029L (IRC 24(c) definition): id_ctc_qualifying_children
- Maine 5213-A and 5219-KK (section 24 credit, including the credit for
  other dependents): me_fairness_credit_qualifying_children
- CARES rebate, IRC 6428(a)(2) (IRC 24(c) definition)
- Illinois SB 3567 reform (builds on the ITIN-inclusive IL EITC)

NC (G.S. 105-153.5(a1), Code date moved to July 5, 2025 by S.L.
2026-31), Utah 59-10-1047 and NY 606(c-1) use the new count. The NY
A04038 reform now uses the baseline ny_escc_qualifying_child.

Fixes #9403.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The American Worker Rebate Act counts "qualifying children (within the
meaning of section 24(c))", like IRC 6428(a)(2), so its child amount
uses ctc_qualifying_child_ignoring_filer_identification; the bill's
own identification rules stay in american_worker_tax_rebate_eligible.

The refundable credit conversion clamp test set
meets_ctc_identification_requirements only on the child, which left
the filer at the default false and now fails the filer SSN test. Set
it on the filer too, as the test intends a CTC-qualifying child.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

@hua7450 hua7450 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, Pavel. I checked this against the statutes, the 2025 Schedule 8812 instructions and the state forms, recomputed every new and edited test case by hand, and traced every reader of ctc_qualifying_child, ctc_qualifying_children and ctc_child_individual_maximum at 7c01e32.

The federal change is right. Moving the filer test into ctc_qualifying_child leaves ctc_maximum unchanged for every household, because the credit for other dependents already keys off a zero child amount. The Worksheet B gate now follows line 4 of Schedule 8812. The North Carolina, New York, Idaho and CARES rebate treatments match their statutes. S.L. 2026-31 does reach tax year 2025: Section 12.(f) makes the new Code date effective when the act became law, and the NCDOR notice of July 23, 2026 applies it to earlier years.

Two places now give the wrong amount, so I'm requesting changes.

1. Utah drops the children of ITIN filers from 2025

Utah Code 59-10-1047(1)(e):

"Qualifying child" means an individual: (i) with respect to whom the claimant is allowed to claim a tax credit under Section 24, Internal Revenue Code, on the claimant's federal individual income tax return for the taxable year; and (ii) who is under six years old on the last day of the claimant's taxable year.

The test is any section 24 credit, and IRC 24(h)(4)(C) gives one for exactly these children:

In the case of any qualifying child with respect to whom a credit is not allowed under this section by reason of paragraph (7), such child shall be treated as a dependent to whom subparagraph (A) applies.

That is the reasoning this PR uses for Maine. The 2025 TC-40 instructions ask for a child who "qualifies for the federal child tax credit under IRC 24". That is the same wording as Maine's "can claim the federal child tax credit pursuant to the Code, Section 24", which the PR reads as including the credit for other dependents. So Utah should keep counting the child under either text.

At head, ut_ctc_potential.py:16 and ut_ctc_reform.py:20 read ctc_qualifying_child, which now includes the 2025 filer SSN rule. The new case "Head of household without an SSN and 1 child gets no Utah CTC in 2026" (an OTHER_NON_CITIZEN head with a TIN and a citizen child aged 3) expects $0. The statute gives $1,000, and so did main.

Fix: count Utah children the way me_fairness_credit_qualifying_children does (ctc_qualifying_child_ignoring_filer_identification together with filer_meets_ctc_identification_requirements), in both ut_ctc_potential and ut_ctc_reform, and change that case to ut_ctc: 1_000. A filer with no TIN still gets $0 under 24(e)(2), as the code already does. If you have Tax Commission guidance that excludes these children, please cite it in the variable; I could not find any.

2. The AFA reform loses its $2,000-per-child floor for ITIN filers from 2025

afa_other_dependent_credit.py sets the phase-out floor with ctc_qualifying_children (lines 151 and 189), which now applies the 24(h)(7)(A)(i) filer SSN rule. The reform's own child amount has no filer test, and its existing case "Child is not reclassified as an adult dependent when the filer lacks the federal child-CTC SSN gate" gives an ITIN head $3,720. The bill asks only for a timely taxpayer TIN. Proposed section 24A(e)(2) of the American Family Act of 2025 reads "No credit shall be allowed under this section if the taxpayer identification number of the taxpayer was issued after the due date for filing the return for the taxable year". 24A(b)(2)(B) keeps the initial reduction from taking the allowance below $166.67 a month per child.

Example: the existing "Integration test - CTC partially phased out" household (2025, single, $300,000 wages, one child aged 16) with the head given ssn_card_type: NONE and has_itin: true. Main and the bill give ctc and refundable_ctc of $2,000; head gives $0. At $150,000, head gives $1,700 instead of $2,000.

Fix: at both lines use add(tax_unit, period, ["ctc_qualifying_child_ignoring_filer_identification"]), which is main's count, and add that ITIN-head case.

Smaller fixes

  • The ctc_qualifying_child_ignoring_filer_identification documentation presents the variable as the IRC 24(c) definition. It also applies the child SSN rule of 24(h)(7)(A)(ii) and the 152(b)(1) dependent-filer rule. Please say so and add the #h_7 reference. The same "24(c)" wording appears in the id_ctc_qualifying_children, AWRA and rrc_cares_qualifying_children_with_valid_ssn comments.
  • ctc_qualifying_child.py comment: 24(h)(4)(C) moves the child to the credit for other dependents only after a paragraph (7) denial. A 24(e)(2) failure denies that credit too; the code already handles this.
  • References to https://www.irs.gov/pub/irs-pdf/i1040s8.pdf will roll to the 2026 edition. Use https://www.irs.gov/pub/irs-prior/i1040s8--2025.pdf#page=1.
  • For Maine, Form 1040ME line 13a is the direct agency support for the PR's reading. The 2025 instructions ask for "the number of qualifying children and dependents for whom you are eligible to claim the federal child tax credit or the credit for other dependents".
  • refundable_credit_conversion.py:57-59 still says the count is "per IRC §24(c)". It now follows the federal allowance.
  • The changelog fragment needs four corrections:
    • Maine now drops the children of filers with no TIN.
    • New York's pre-2025 and post-2027 rules drop the $100 minimum for those filers.
    • The NC credit for children changes for 2015-2017.
    • "From 2025" applies only to the SSN rule; the TIN rule changes NC and Utah in every year.
  • PR body: "Other reforms ... the new count fits" is not accurate for every reform:
    • ctc_per_child_phase_out: a 2025+ ITIN filer's credit for other dependents no longer phases out.
    • refundable_credit_conversion: the child moves to the per-other-dependent amount.
    • mt_ctc: younger children now get the filer test, but its 17-year-old branch still has none.
    • mt_hb268: its "permitted a child tax credit under section 24" gate raises the same question as Utah, so please treat it the same way.
    • pr_ctc changes for 2021 filers with no TIN and is missing from the federal table.
  • Tests:
    • il_sb3567.yaml still sets ctc_qualifying_child: true 23 times, though the reform no longer reads it. The stale inputs would hide a revert, so please drop them and add an ITIN-filer case.
    • Number the two new NY cases "Case 5, ..." and "Case 6, ...".
    • Optional: a 2025 federal ITIN-filer case (count 0, ODC $500, ctc_credit_limit_worksheet_b_applies false), and an ITIN-infant case for the A04038 reform.

Follow-ups (separate PRs, not blocking)

  • Maine counts only children under 17 with an SSN. The statute and line 13a count every dependent for whom either section 24 credit is allowed, such as a 17-year-old or a child with only an ITIN. For a 2025 head of household with $30,000 and children aged 10 and 17, the law gives $250 and the model $215. tax_unit.sum(person("ctc_individual_maximum", period) > 0) would cover both groups and replace the hand-built condition. Since the variable is new, it could also go in this PR.
  • Idaho, Georgia and the IL SB3567 reform keep the federal child SSN rule, although their definitions use 24(c) or 152.
  • child_ssn_requirement_applies backfills to years before 2018, as you noted.
  • Colorado's 2022-2023 replica of the federal credit has no filer TIN test.

Address review on #10280:

- Utah 59-10-1047(1)(e) counts a child for whom the claimant may claim
  "a tax credit under Section 24", which includes the credit for other
  dependents that IRC 24(h)(4)(C) gives after a 24(h)(7) denial. Count
  ctc_qualifying_child_ignoring_filer_identification with
  filer_meets_ctc_identification_requirements in ut_ctc_potential and
  the Utah reform; an ITIN filer's child gets $1,000 again.
- MT HB268 ("permitted a child tax credit under section 24") and the
  flexible MT CTC reform get the same test through new reform
  variables, for both of mt_ctc's branches.
- The Bennet AFA reform's $2,000-per-child floor counts children
  without the federal filer test; proposed 24A asks only for a timely
  taxpayer TIN.
- Fix comments and references: the ignoring variable also applies the
  child SSN and 152(b)(1) rules; 24(h)(4)(C) follows only a paragraph
  (7) denial; cite the 2025 Schedule 8812 instructions by their
  irs-prior URL.
- Tests: rename stale UT/MT inputs, drop 23 stale IL inputs, add ITIN
  cases (federal 2025, UT, MT HB268, IL SB3567, AFA, NY A04038), and
  number the new NY cases.
- Rewrite the changelog fragment to list every change.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

This branch has not been deployed

No deployments
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.

ctc_qualifying_children counts children whose filer fails the identification requirement

2 participants