Skip to content

Compute the NY child and dependent care credit from Form IT-216 lines 5, 10 and 13 - #9835

Merged
PavelMakarchuk merged 6 commits into
mainfrom
ny-cdcc-it216-lines
Oct 13, 2026
Merged

PavelMakarchuk merged 6 commits into
mainfrom
ny-cdcc-it216-lines

Conversation

@PavelMakarchuk

Copy link
Copy Markdown
Collaborator

Fixes #9834.

Change

Form IT-216 line by line:

  • ny_cdcc_max (line 8): the qualified expenses (tax_unit_childcare_expenses + care_expenses) capped at the New York line 5 amount for the number of qualifying persons ($3,000 / $6,000 / $7,500 / $8,500 / $9,000) and at the lower earnings. Before, it started from cdcc_relevant_expenses, which already has the federal Form 2441 cap.
  • New ny_cdcc_federal_rate (line 10): the IT-216 "Table for line 10", from new parameters under gov.states.ny.tax.income.credits.cdcc.federal_rate (.35, down .01 per $2,000 of recomputed FAGI above $15,000, minimum .20). This replaces the federal cdcc_rate, which in 2021 is the ARPA rate. New York decoupled from the ARPA changes (IT-216-I 2021, page 1).
  • ny_cdcc (line 14): ny_cdcc_max × ny_cdcc_federal_rate × ny_cdcc_rate.
  • The standard path in the ny_a06774_enhanced_cdcc contrib reform uses the same formula.

Tests

Expected values are the Form IT-216 line arithmetic.

Test Form IT-216 Before
2022 single, 3 children, wages 10,000, expenses 10,000 (existing) 7,500 × .35 × 1.100 = 2,887.50 3,850 (test set cdcc_relevant_expenses = 10,000)
Separated filer, same inputs (existing) 2,887.50 3,850
2021 joint, 1 child, AGI 223,333, expenses 11,368 3,000 × .20 × .200 = 120 320
2021 joint, 2 children, AGI 160,000, expenses 6,000 6,000 × .20 × .200 = 240 384
2023 joint, 3 children, AGI 160,000, expenses 9,000 7,500 × .20 × .200 = 300 240
2022 joint, 1 child, AGI 100,000, expenses 3,000 3,000 × .20 × .600 = 360 360

The two existing tests now set tax_unit_childcare_expenses instead of cdcc_relevant_expenses. New ny_cdcc_federal_rate.yaml checks the line 10 table edges: 15,000 → .35, 15,001 → .34, 43,000 → .21, 43,001 → .20.

The New York state, New York City and New York contrib test folders pass locally (721 tests).

Census effect

In the TAXSIM-35 census comparison for New York 2021–2025, only six 2021 households change, and each PE credit now equals the Form IT-216 value to within $0.07. TAXSIM's 2021 New York credit uses a different line 13 decimal; that is a separate TAXSIM question. No 2022–2025 household changes.

🤖 Generated with Claude Code

Cap uncapped qualified expenses at the New York amount (line 5), use the
IT-216 Table for line 10 instead of the federal cdcc_rate (2021 ARPA rates
do not apply; NY decoupled), and multiply line 8 by both decimals.
Fixes #9834.

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.

Lines 8, 10 and 13 now match Form IT-216 and the 2021 decoupling (Tax Law 607(a): "for taxable years beginning before January first, two thousand twenty-two, any amendments made to the internal revenue code ... after March first, two thousand twenty shall not apply"). I rechecked every test by hand against the 2021, 2022 and 2025 instructions; all expectations and the cited page numbers are right. One formula gap, so requesting changes:

Line 3b is dropped. Line 5 is "the smallest of: line 3a above; or line 3b above; or 3,000 if one qualifying person ...", and 3b is Worksheet 1 line 16: "14 Subtract line 13 from line 12. If zero or less, stop; you cannot take the credit", "15 Enter the qualified expenses you incurred and paid in 2021, less any amount in line 13 above", "16 Enter the smaller of line 14 or 15. Also, enter this amount on Form IT-216, line 3b". Main applied this through cdcc_relevant_expenses, which runs the expenses through cdcc_limit and the dependent_care_assistance_exclusion; ny_cdcc_max now reads the raw tax_unit_childcare_expenses + care_expenses, so employer dependent care benefits no longer reduce the creditable expenses. Example: 2022 joint, wages 50,000 + 50,000, two children, expenses 8,000, dependent_care_employer_benefits 5,000. Form: line 12 = 6,000, line 13 = 5,000, line 14 = 1,000, line 15 = 3,000, line 16 = 1,000, credit 1,000 x .20 x .600 = 120 (main gives 120). This branch: min(8,000, 6,000) = 6,000 x .20 x .600 = 720. nyc_cdcc and the a06774 standard path inherit it. Suggested shape: min_(max_(min_(expenses, ny_cap) - exclusion, 0), lower_earnings), plus a test using dependent_care_employer_benefits.

Nits: line 9 is "recomputed FAGI" for 2020 to 2022 and plain FAGI from 2023 (the code uses federal AGI throughout; say so in the comment); the five federal_rate parameters start at 2019-01-01 although the table dates from tax year 2003 and the New York caps from 2018; add a negative-AGI rate case (the form says line 9 "may be any amount up to $15,000, including zero or a negative amount"); the a06774 standard path still lacks the cdcc_filing_status_eligible gate that baseline ny_cdcc applies.

2026 note, out of scope: the FY2027 budget signed May 28, 2026 expanded and made refundable this credit for tax years beginning in 2026, so neither the frozen table nor the federal OBBBA rate is verified for 2026; worth its own issue.

CI: the Quick Feedback failure is a runner shutdown during the coverage run of the s9110 contrib test on both attempts ("The runner has received a shutdown signal"); every test that ran passed, including the seven ny_cdcc.yaml and four ny_cdcc_federal_rate.yaml cases, and the full suites are green.

Not verified: the TAXSIM comparison and the 2026 statute text; tests not run locally.

Line 5 is the smallest of line 3a, line 3b and the New York cap. Line 3b
(Worksheet 1, line 16) is the smaller of the cap and the expenses, each
less the excluded employer dependent care benefits, so ny_cdcc_max now
subtracts dependent_care_assistance_exclusion. nyc_cdcc and the a06774
standard path inherit this.

Also: gate the a06774 standard path on cdcc_filing_status_eligible like
baseline ny_cdcc; date the line 10 table parameters from the 2003 form;
note that line 9 is recomputed FAGI for 2020 to 2022 and FAGI from 2023;
add a negative-AGI rate test.

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

Copy link
Copy Markdown
Collaborator Author

Thanks. Pushed 5cbddd8.

Line 3b (blocking). Confirmed and fixed. Worksheet 1, IT-216-I (2022) page 4:

12 Enter $3,000 if one qualifying person, $6,000 if two qualifying persons, $7,500 if three qualifying persons, $8,500 if four qualifying persons, and $9,000 if five or more qualifying persons

13 Enter the smaller of line 10 or 11

14 Subtract line 13 from line 12. If zero or less, stop; you cannot take the credit

15 Enter the qualified expenses you incurred and paid in 2022, less any amount in line 13 above

16 Enter the smaller of line 14 or 15. Also, enter this amount on Form IT-216, line 3b

The 2020, 2021, 2023, 2024 and 2025 worksheets have the same lines 11 to 16, with only the year changed in line 15. ny_cdcc_max now uses your shape: min_(max_(min_(expenses, ny_cap) - dependent_care_assistance_exclusion, 0), min_head_spouse_earned). nyc_cdcc and the a06774 standard path read ny_cdcc_max, so they get the fix.

  • dependent_care_assistance_exclusion is min(benefits, $5,000 / $2,500, lower earnings). Worksheet line 7 also limits line 13 to the expenses. That does not change line 16: when benefits exceed expenses, line 16 is zero either way.
  • Worksheet line 11 is $5,000 in every year from 2020 to 2025. This matches reduction_amount through 2025.

New ny_cdcc.yaml cases (2022, joint, wages 50,000 + 50,000). The worksheet and form arithmetic is in the YAML comments.

  • Your example: expenses 8,000, benefits 5,000. Line 16 = 1,000 (line 14 binds), credit 120.
  • Expenses 5,000, benefits 2,000. Line 14 = 4,000, line 15 = 3,000, line 16 = 3,000, credit 360. Here line 15 binds. Main's cdcc_limit path reduced only the cap, so it used 4,000.
  • One child, expenses 4,000, benefits 5,000. Line 14 is below zero, so the credit is 0.

All three fail on the previous commit and pass now.

Nit: line 9. Confirmed. 2020 to 2022: "Enter your recomputed FAGI from Form IT-201, line 19a" (2022 page 5; 2020 and 2021 spell out "recomputed federal adjusted gross income"). 2023 to 2025: "Enter your FAGI from Form IT-201, line 19". The ny_cdcc_federal_rate comment now says this and says that we use federal AGI for all years. I also removed "recomputed" from the five parameter descriptions and from the 2024 test names.

Nit: start dates. Confirmed. The 2003 Form IT-216 line 10 has the same table (".35" through 15,000, "43,000 - No limit .20"). The 2002 form has a different table ("$0 - 10,000 .30" down to "28,000 - No limit .20"). The five federal_rate parameters now start 2003-01-01, with the 2003 form as a reference.

I also checked the caps. The 2018 form is the first with 7,500 / 8,500 / 9,000 and line 3b. The 2017 form says "3,000 if one qualifying person, or 6,000 if two or more qualifying persons" and uses federal Form 2441 line 3. max.yaml starts 2019-01-01 and is backdated. So for 2015 to 2017, this branch uses 7,500 or more for three or more persons, where main used the federal 6,000. I did not change max.yaml. I can add the pre-2018 amounts in this PR if you want them.

Nit: negative AGI. Added "Negative FAGI uses .35" (AGI -5,000) to ny_cdcc_federal_rate.yaml. It cites the table footnote: "This may be any amount up to $15,000, including zero or a negative amount."

Nit: a06774 gate. Confirmed and fixed. The standard path now multiplies by cdcc_filing_status_eligible. The enhanced path already had the gate through cdcc_potential. New contrib case: separate filer, NY AGI 60,000, one child, credit 0. Source: IT-216-I (2025) page 1, "If you do not meet all the requirements to be treated as unmarried, you generally cannot claim the credit."

2026. Out of scope for this PR. The FY2027 budget change for tax years from 2026 should get its own issue. This PR makes no 2026-specific change.

Tests (local). policyengine-core test on baseline/gov/states/ny, baseline/gov/local/ny, contrib/states/ny and baseline/gov/irs/credits/cdcc: 814 passed, 0 failed. ruff format and ruff check pass on the changed Python files. I updated the changelog fragment text to mention Worksheet 1.

Forms IT-216 for 2003 to 2017 cap line 5 at 3,000 for one qualifying
person and 6,000 for two or more; the 7,500 / 8,500 / 9,000 caps first
appear on the 2018 form. max.yaml started at 2019-01-01 and was
backdated, so 2015 to 2017 used the higher caps. Add a 2017 test with
three qualifying persons.

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

Copy link
Copy Markdown
Collaborator Author

Follow-up in ad3901a: I added the pre-2018 New York expense caps to max.yaml.

  • 2017 Form IT-216 line 5 (page 1): "Enter the smallest of: – line 3a above; or – federal Form 2441, line 3; or – 3,000 if one qualifying person, or 6,000 if two or more qualifying persons". The 2018 form is the first with "7,500 if three qualifying persons, 8,500 if four qualifying persons, or 9,000 if five or more qualifying persons". Every form from 2003 to 2017 has 3,000 / 6,000. The 2002 form has $2,400 / $4,800.
  • max.yaml now starts 2003-01-01 with 3,000 for one person and 6,000 for two or more. The 7,500 / 8,500 / 9,000 amounts start 2018-01-01. I added the 2003, 2017 and 2018 forms as references.
  • New ny_cdcc.yaml case: 2017, joint, wages 100,000 + 60,000, three children, expenses 9,000. Line 5 = 6,000, line 10 = .20, line 13 = .200, credit 240. The hand arithmetic is in the YAML comment. This case fails on the previous commit, where line 8 was 7,500.
  • Tests (local): baseline/gov/states/ny, baseline/gov/local/ny, contrib/states/ny and baseline/gov/irs/credits/cdcc: 815 passed, 0 failed. No Python changed.

@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.

Approving. Read all 14 files at ad3901a plus dependent_care_assistance_exclusion, min_head_spouse_earned, count_cdcc_eligible, ny_cdcc_rate and the federal CDCC chain, against Form IT-216 and its instructions for 2003, 2017, 2018 and 2020 to 2025 and Tax Law 606(c).

The line 3b gap is fixed in the code: ny_cdcc_max is now min_(max_(min_(expenses, ny_cap) - exclusion, 0), lower_earnings), which is Worksheet 1 lines 12 to 16 (line 16 = smaller of cap minus excluded benefits and expenses minus excluded benefits) feeding line 5 and the line 8 earned-income cap. dependent_care_assistance_exclusion equals Worksheet 1 line 13 whenever the credit is positive; the only divergence, benefits above expenses, zeroes line 16 either way. The original example (expenses 8,000, benefits 5,000, joint, 2022) now gives 1,000 x .20 x .600 = 120, and the pre-2018 caps match the forms: 3,000 / 6,000 on every form from 2003 to 2017 and 7,500 / 8,500 / 9,000 first on the 2018 form, so max.yaml dated 2003-01-01 and 2018-01-01 is right, and the line 10 table already appears on the 2003 form, so the 2003 start for federal_rate holds too. All 11 ny_cdcc.yaml, 5 ny_cdcc_federal_rate.yaml and 11 contrib cases recompute by hand, including the 2017 case at 240. The earlier nits are addressed, and nyc_cdcc and the a06774 standard path pick the fix up through ny_cdcc_max.

No shared files with PR 9956 and the two are logically complementary (your 2017 case sits in the 150,000-and-over bracket where that PR leaves the factor at 1.000).

Nits, not blocking:

  1. cdcc_expenses could be one add(tax_unit, period, ["tax_unit_childcare_expenses", "care_expenses"]), and it duplicates the sum inside cdcc_relevant_expenses.
  2. max.yaml has a stray whitespace-only line before metadata, and its description says "maximum CDCC" while the file holds the maximum creditable expenses.

Pre-existing, for a follow-up: the $2,500 married-filing-separately cap in dependent_care_assistance_exclusion also hits separated filers the form treats as unmarried (the form uses $5,000 for them), which affects the federal cdcc_limit as well.

PavelMakarchuk and others added 3 commits October 8, 2026 09:46
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@PavelMakarchuk
PavelMakarchuk merged commit 751fcd8 into main Oct 13, 2026
26 checks passed
@PavelMakarchuk
PavelMakarchuk deleted the ny-cdcc-it216-lines branch October 13, 2026 11:33
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.

NY child and dependent care credit does not follow Form IT-216 (NY expense caps, line 10 table, 2021 ARPA decoupling)

2 participants