Skip to content

Compute New York's 2026 child and dependent care credit under Tax Law 606(c-2) - #9948

Merged
MaxGhenis merged 2 commits into
mainfrom
ny-cdcc-2026-new-credit
Oct 9, 2026
Merged

MaxGhenis merged 2 commits into
mainfrom
ny-cdcc-2026-new-credit

Conversation

@MaxGhenis

Copy link
Copy Markdown
Contributor

Summary

policyengine-us computed New York's 2026 child and dependent care credit with the pre-2026 formula (a percentage of the federal credit). L.2026, ch. 59 replaced it for 2026 on with the refundable Tax Law 606(c-2) credit, computed directly on qualifying expenses. This PR encodes 606(c-2).

The law

L.2026, ch. 59 (S.9009-C / A.10009-C), Part A, signed 2026-05-28 (Part A sec. 5: "This act shall take effect immediately"). Text below is from the NY Senate Open Legislation API, /api/3/laws/TAX/606, active date 2026-09-04.

  • 606(c)(1), amended by Part A sec. 1: "For taxable years beginning before January first, two thousand twenty-six, a taxpayer shall be allowed a credit ..." equal to a percentage of the section 21 credit.
  • 606(c-2)(1), added by Part A sec. 2: "For taxable years beginning on or after January first, two thousand twenty-six, an eligible taxpayer shall be allowed a credit ... If the amount of the credit ... shall exceed the eligible taxpayer's tax for such year, the excess shall be treated as an overpayment of tax to be credited or refunded".
  • (c-2)(2)(D)(iii): qualifying expenses may not exceed "three thousand dollars ... one qualifying individual; ... six thousand dollars ... two ...; ... seven thousand five hundred dollars ... three ...; ... eight thousand five hundred dollars ... four ...; and ... nine thousand dollars ... five or more ..." and may not exceed "such eligible taxpayer's earned income ... or in the case of a married eligible taxpayer filing a joint return, the lesser of the earned income of each spouse determined separately."
  • (c-2)(2)(D)(ii): qualifying expenses exclude "any amounts paid whereby the taxpayer receives reimbursement or are paid from funds provided by a government entity, dependent care account, or other third party".
  • (c-2)(2)(E): "fifty-five percent in the case of an eligible taxpayer with a New York adjusted gross income ... of fifteen thousand dollars or less; or ... fifty-five percent reduced by twenty-five hundred thousandths of a percentage point for each dollar of ... New York adjusted gross income ... in excess of fifteen thousand dollars. Provided, however, that the applicable percentage ... shall not be reduced below four percent."
  • (c-2)(3): the credit is qualifying expenses times the applicable percentage, "reduced by twenty dollars for each one thousand dollars by which the eligible taxpayer's New York adjusted gross income ... exceeds seven hundred fifty thousand dollars."
  • (c-2)(2)(A): the eligible taxpayer is a resident who is not another taxpayer's dependent and does not file married-separately unless IRC 21(e)(4) applies.

"Twenty-five hundred thousandths of a percentage point" is 0.00025 percentage points (0.0000025 as a decimal) per dollar. The Comptroller's SFY 2027 Executive Budget report (Figure 11) shows the same schedule: 33.8% at $100,000 and 4% at $219,000.

The defect

ny_cdcc had no year branch, so 2026 used min(ny_cdcc_max, cdcc_relevant_expenses × ny_cdcc_rate × cdcc_rate). For scenario_082 that is 3,000 × 0.6 × 0.2 = $360.

The fix

  • Parameters under gov.states.ny.tax.income.credits.cdcc.decoupled: in_effect (true from 2026), expense_cap, rate.max / rate.min / rate.phase_down_threshold / rate.phase_down_rate, and reduction.threshold / amount / increment.
  • ny_cdcc_qualifying_expenses (606(c-2)(2)(D)): child care plus adult care_expenses, less employer dependent care benefits (a dependent care account), capped by the number of qualifying individuals and by earned income (the lesser spouse's on a joint return). childcare_expenses already nets out government subsidies.
  • ny_cdcc_applicable_percentage (606(c-2)(2)(E)).
  • ny_cdcc branches on decoupled.in_effect: eligible × max(expenses × percentage − $20 × whole $1,000 steps above $750,000, 0), where eligibility is cdcc_filing_status_eligible and not head_is_dependent_elsewhere. The pre-2026 branch is unchanged.
  • No wiring changes. ny_cdcc is already in the 2026 refundable list. nyc_cdcc keeps deriving from ny_cdcc, which matches Part A sec. 4: it amends NYC Admin. Code 11-1706(e)(1) to base the NYC credit on "the credit allowed under subsections (c) and (c-2) of section six hundred six".

Modeling choices to flag:

  • No deemed earned income. Unlike IRC 21(d)(2), 606(c-2) deems no earned income for a student or incapacitated spouse, so the earned-income cap uses actual earnings. ny_cdcc_qualifying_expenses Case 8 pins this reading. Revisit when DTF publishes the 2026 IT-216 instructions.
  • Whole $1,000 steps. The reduction counts whole $1,000 steps, because the statute has no "or fraction thereof" (Case 5: $750,999 gives no reduction).

Overlap with #9835

#9835 (open) reworks the pre-2026 IT-216 computation in the same ny_cdcc.py formula. This PR only adds a 2026 branch above that code, so whichever merges second resolves a small adjacent-lines conflict.

The ny_a06774 contributed reform overrides ny_cdcc with a 606(c)-based proposal. It is untouched here.

Invariants

policyengine_us/tests/core/test_ny_cdcc_2026_invariants.py uses Hypothesis plus a seeded population of 100 units. Each draw runs as one vectorized simulation holding 2025, 2026 and a copy of every unit with New York AGI raised by a drawn amount.

  1. Differential: ny_cdcc, qualifying expenses, the percentage and the qualifying-individual count equal an independent numpy computation, with constants from the statute text rather than the parameters.
  2. Bounds: 4% ≤ percentage ≤ 55%, and 0 ≤ credit ≤ 55% × qualifying expenses.
  3. No qualifying individual, no credit.
  4. Monotone: raising New York AGI never raises the percentage or the credit.
  5. 2025 unchanged: the 2025 credit equals the 606(c) computation from the model's pre-2026 variables.

A continuity test checks the percentage at $14,999, $15,000, $15,000.01 and $15,001.

CI cost of the invariant test: local and CI measurements are added here before merge.

Tests

  • ny_cdcc_2026.yaml (9 cases):
    • scenario_082 household: ny_cdcc_qualifying_expenses 3,000, ny_cdcc 880.61, ny_ctc 307, ny_refundable_credits 1,187.61.
    • The same household in 2025: $360, unchanged.
    • Rate endpoints, the reduction at $750,999 / $760,000 / $800,000, married filing separately, and a dependent filer.
  • ny_cdcc_applicable_percentage.yaml (7 cases) and ny_cdcc_qualifying_expenses.yaml (9 cases).
  • On main, 8 of the 9 ny_cdcc_2026.yaml cases fail; the 2025 case passes.
  • With the fix, these files plus ny_cdcc.yaml and the NYC credit tests pass: 84 passed.

Evidence

PolicyBench reference audit, scenario_082 × state_refundable_credits: the reference was $667 (ESCC $307 + NY CDCC $360); the law gives $1,187.61 (ESCC $307 + 606(c-2) $880.61).

  • Verification: PolicyEngine/policybench-wt/reference-adversary/reference_audit/2026-10-05-reference-adversary/verification/independent/ny_082.md
  • Case: .../runs/claude/cases/us__scenario_082__state_refundable_credits/

Impact

From 2026 the New York credit no longer depends on the federal credit, so it changes for every New York filer with qualifying care expenses. Scenario_082's credit rises from $360 to $880.61. The NYC credit, a share of the state credit, moves with it. I have not run a microsimulation, so the direction and size of the aggregate change are unmeasured.

axiom: N.Y. Tax Law 606(c-2) queued: rulespec-us has no 606(c-2) module; the pe-parity issue link is added here before merge.

🤖 Generated with Claude Code

… 606(c-2)

L.2026, ch. 59 (S.9009-C), Part A, signed 2026-05-28, limited the
606(c)(1) credit (a percentage of the federal section 21 credit) to
taxable years beginning before 2026 and added 606(c-2) for later years:
qualifying expenses, capped at $3,000 / $6,000 / $7,500 / $8,500 /
$9,000 for one to five or more qualifying individuals and at earned
income (the lesser spouse's on a joint return), times an applicable
percentage of 55% less 0.00025 percentage points per dollar of New York
AGI above $15,000, never below 4%, less $20 for each $1,000 of New York
AGI above $750,000. policyengine-us kept applying the 606(c) formula in
2026.

Add the (c-2) parameters under gov.states.ny.tax.income.credits.cdcc
.decoupled, ny_cdcc_qualifying_expenses and
ny_cdcc_applicable_percentage, and branch ny_cdcc on decoupled.in_effect.
The credit stays in the 2026 refundable list, and nyc_cdcc keeps
deriving from ny_cdcc, as Part A sec. 4 amends NYC Admin. Code
11-1706(e)(1) to reference (c) and (c-2).

Tests: the PolicyBench scenario_082 household (reference audit
2026-10-05: ny_cdcc $880.61, ny_refundable_credits $1,187.61 instead of
$667), the 2025 credit unchanged, rate endpoints and the 4% floor,
expense caps, the earned-income limit, dependent care accounts, the
high-income reduction, married filing separately and dependent filers.

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

codecov Bot commented Oct 7, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 100.00%. Comparing base (909176a) to head (f37e322).
⚠️ Report is 320 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff            @@
##              main     #9948   +/-   ##
=========================================
  Coverage   100.00%   100.00%           
=========================================
  Files            4         3    -1     
  Lines           76        55   -21     
  Branches         2         1    -1     
=========================================
- Hits            76        55   -21     
Flag Coverage Δ
unittests 100.00% <100.00%> (ø)

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

☔ View full report in Codecov by Harness.
📢 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.

@MaxGhenis

Copy link
Copy Markdown
Contributor Author

Handing off to the US + core hub.

  • Head: 7adf6894226e54745edb5ebb961eadddacc1224b
  • Independent review: approve (Opus 5.5 lane, Subfleet job 20261008-101900-pe-us-adversary-review; verdicts in /Users/maxghenis/reviews/policybench-reference-adversary-2026-10/engine_review.md).
  • CI: gh pr checks exits 0. GitHub reports MERGEABLE, blocked only on the required approving review.
  • Context: found by PolicyBench's reference adversary (Add the reference adversary and record its first run (evidence only; no score changes) policybench#200, decision d1022).
  • Notes: New York 606(c-2) child and dependent care credit; low finding (count_cdcc_eligible counts a spouse incapable of self-care, (c-2)(2)(B)(iii) requires a dependent) is a follow-up, not a blocker.

Nothing is pending from the opening session.

@MaxGhenis
MaxGhenis merged commit 7fca3c8 into main Oct 9, 2026
28 checks passed
@MaxGhenis

Copy link
Copy Markdown
Contributor Author

US + core hub merge audit, us#9948 at f37e322fcd (squash; branch updated from main; PR diff byte-identical to the reviewed 7adf689422): Compute New York's 2026 child and dependent care credit under Tax Law 606(c-2).

  • Origin: PolicyBench's reference adversary (Add the reference adversary and record its first run (evidence only; no score changes) policybench#200) found the engine defect. Max ruled d1022 on 2026-10-06 to exclude the affected cells until a fixed policyengine-us release lands.
  • Review: independent Opus 5.5 review APPROVE (Subfleet), verdict in ~/reviews/policybench-reference-adversary-2026-10/. The PR's last commit predates the review, so the reviewed head is this head.
  • Hand-off: from local_3dd3d124. Nothing was pending from the opening session.
  • Gates checked live at merge:
    • gh pr checks exits 0;
    • the latest Pull request run at the head concluded success;
    • MERGEABLE;
    • not a draft;
    • no CHANGES_REQUESTED review;
    • the semantic-overlap guard;
    • head pinned.
  • Impact: as stated in the PR body's impact section. This is a bug fix that corrects the model to the cited law.
  • --admin: used only because a required approving review is the sole block.

@MaxGhenis
MaxGhenis deleted the ny-cdcc-2026-new-credit branch October 9, 2026 02:31
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.

1 participant