Skip to content

Follow the statute where IRS forms differ: refundable CTC housing deduction, joint filing test, EITC trust royalties, former 32(c)(1)(F) - #10297

Open
MaxGhenis wants to merge 6 commits into
mainfrom
statute-first-federal-income-tax
Open

MaxGhenis wants to merge 6 commits into
mainfrom
statute-first-federal-income-tax

Conversation

@MaxGhenis

@MaxGhenis MaxGhenis commented Oct 20, 2026 •

Copy link
Copy Markdown
Contributor

Federal income tax items where the model followed an IRS form or instructions against the statute. Under the statute-first rule (where a statute conflicts with a form, instructions or agency practice, the model follows the statute; forms fill gaps only where the statute is silent), each moves to the statute.

Changes

  • Refundable CTC, §24(d)(3). The bar applies to a taxpayer who "elects to exclude any amount from gross income under section 911". §911(c)(4)(A) makes the non-employer housing amount "a deduction allowable in computing adjusted gross income", and Treas. Reg. 1.911-7(a)(3) says no election is needed for that deduction. So a filer who claims only the housing deduction (Form 2555 line 50) is no longer barred. The 2025 Schedule 8812 instructions, Part II-A bar every Form 2555 filer. This needs Form 2555 leaf inputs; a positive legacy aggregate still counts as an exclusion. The EITC keeps the broader §32(c)(1)(C) test ("claims the benefits of section 911").
  • Filing requirement, §6012(f)(2)(D), 2018-2025. A joint return must be filed if a claimable spouse has income other than earned income "in excess of the amount in effect under section 63(c)(5)(A)" ($1,350 for 2025), with no addition for age or blindness; Chart B adds it ($2,950). From 2026 §6012(a)(1)(C)(i)(I) adds it, as before.
  • EITC investment income, §32(i)(2)(C) with §§652(b) and 662(b). Nonbusiness royalties received through an estate or trust (Schedule K-1 (Form 1041) box 5) are disqualified income; Publication 596 Worksheet 1 line 8 takes royalties only from Schedule E line 23b. New input estate_royalty_income (a classification of estate_income, default zero) forms the (C) basket, floored at zero. The model has no input for direct royalties, so the basket holds only these.
  • Former §32(c)(1)(F), through 2020. "No credit shall be allowed ... to any eligible individual who has one or more qualifying children if no qualifying child ... is taken into account under subsection (b) by reason of paragraph (3)(D)." The 2018-2020 Form 1040 instructions sent such a filer to the childless credit. ARPA §9622 struck the subparagraph from 2021. Example: 2020, $6,000 of wages, one child without an SSN gives $0 rather than $459.

Pulled out

  • §129(b)(1)(B), the dependent care exclusion of a married filer who doesn't file jointly: the review found "married" undefined in §129(b), so the statute itself supports two readings. It's reverted here and queued for a decision.

Invariants (property tests)

  • Filing requirement (test_filing_requirement_dependent_invariants.py): on a 2025 joint return the unearned income test is over $1,350 whatever either spouse's age or blindness (the grid now includes aged and blind claimed spouses); lower bound, monotonicity and split invariance as before.
  • EITC investment income (test_dependent_eitc_investment_income_invariants.py): a differential against an independent numpy worksheet that now includes the royalty basket; dependents' income never moves the filer's test; a loss in one basket never reaches another. The seeded population exercises every basket.
  • Mutation checks: reverting each change fails its YAML cases and the relevant property.

Review

GPT-6.1 Sol r1 (7b1af2d): items 1-3 confirmed, §129 sent to a decision, documentation findings fixed. r2 (de6830a): APPROVE.

Impact

Hub microsimulation on the default dataset, main 79249f0fea against head de6830ab07, under the heavy lock.

2025 and 2026: no record changes. Nothing moved in refundable_ctc, eitc, tax_unit_is_filer, eitc_relevant_investment_income, income_tax, state_income_tax, household_net_income or household_benefits. No default-dataset record has the facts these items change.

2020, the years item 4 covers: 2020 can't be measured on the default dataset: it carries essentially no 2020 data (household net income sums to $0.22bn there, against $15.2T in 2024). The YAML witnesses carry those years.

axiom: TheAxiomFoundation/rulespec-us#1829 queued (pe-parity; every provision needs encoding)

🤖 Generated with Claude Code

MaxGhenis and others added 6 commits October 19, 2026 22:21
…ling test

Section 24(d)(3) bars the refundable child tax credit only for a taxpayer
who "elects to exclude any amount from gross income under section 911";
the section 911(c)(4)(A) housing deduction is a deduction, not an
exclusion. The Schedule 8812 instructions bar every Form 2555 filer.

For 2018-2025, section 6012(f)(2)(D) tests a claimable spouse on a joint
return against the section 63(c)(5)(A) amount alone; Chart B adds the
additional standard deduction for age or blindness.

Under the statute-first rule (statute governs where it conflicts with a
form or instructions), the model now follows the statute in both.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Section 32(i)(2)(C) counts rents and royalties not derived in the ordinary
course of a trade or business, and section 662(b) keeps a trust's character
for its beneficiaries. Publication 596 Worksheet 1 line 8 takes royalties
only from Schedule E line 23b, leaving out royalties received through a
Schedule K-1 (Form 1041) box 5. Add estate_royalty_income (a classification
of estate_income, default zero) as its own basket, floored at zero, and
extend the EITC investment income invariants with it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Section 129(b)(1)(B) limits the dependent care assistance exclusion of an
employee married at the end of the year to the lesser of the employee's
and the spouse's earned income. Section 129(a)(2)(C) imports the section
21(e)(4) living-apart rule only for the dollar cap; the Form 2441 line 19
instructions extend it to the earned income limit. Add
absent_spouse_earned_income (defaulting to the existing limit, so results
change only when it is supplied) and apply it to separate filers and
separated heads of household. Extend the exclusion invariants with it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Former 26 U.S.C. 32(c)(1)(F) denied the EITC to an eligible individual
with qualifying children none of whom is taken into account because of the
identification requirement of 32(c)(3)(D). The 2018-2020 Form 1040
instructions instead route such a filer to the credit without a qualifying
child. ARPA section 9622 struck the subparagraph from 2021. Add a parameter
(true through 2020) and the bar in eitc_eligible; 2020 example: $0 under
the statute, $459 on the instruction route.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Review r1 follow-ups: the 32(i)(2)(C) basket holds only estate and trust
royalties because the model has no direct-royalty input; cite section
652(b) alongside 662(b); note the royalty input is not checked against
estate_income; update the tax_unit_is_filer comment for the narrower
24(d)(3) bar; name ARPA section 9611 for former 24(i); and note the legacy
section 911 aggregates in the changelog. The section 129(b) change moves
to a decision (statute ambiguous on "married").

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@MaxGhenis MaxGhenis changed the title Follow the statute where IRS forms differ: refundable CTC housing deduction, joint filing test Follow the statute where IRS forms differ: refundable CTC housing deduction, joint filing test, EITC trust royalties, former 32(c)(1)(F) Oct 20, 2026
@MaxGhenis
MaxGhenis marked this pull request as ready for review October 20, 2026 03:37
@MaxGhenis

MaxGhenis commented Oct 20, 2026 •

Copy link
Copy Markdown
Contributor Author

Hand-off to the US + core hub (statute-first backlog session).

  • Head: de6830ab07f41834755f394b713f2804ab1db25c
  • Independent review: GPT-6.1 Sol, r2 APPROVE (r1 found the section 129 reading ambiguous; reverted and queued as a decision) at this head. Reviews: ~/reviews/us-hub/source-conflicts/backlog/reviews/10297-r*.md.
    • Correction (2026-10-20): dispatched without -s workspace-write, so the lane was read-only: r1 was served by Opus 5.5 in plan mode with no shell; r2 by GPT-6.1 Sol in a read-only sandbox, which ran git diff --check but stopped the YAML run before any test completed. No review executed the tests. Treat these as reading reviews, not the landing gate; the hub has dispatched a shell-backed GPT-6.1 Sol review of this PR.
  • Passed locally: the targeted YAML files and Hypothesis invariants named in the PR body (single-file runs, mutation-checked).
  • Pending: CI (queued in the Actions backlog); the impact run, after the route-a hold (2026-10-21 04:00Z); the Axiom parity issue. The parity audit found every provision needs encoding. The dispatch-ready issue body is drafted at ~/reviews/us-hub/source-conflicts/backlog/parity/draft-F-10297.md for filing under the standing parity go, which also sets the axiom: line here.
  • Depends on: nothing.
  • Follow-ups owed after merge: register the squash commit in rulespec-us known-source-conflicts.yaml (once rulespec-us#1825 lands), then a follow-up PE-US PR with the # Source conflict marker, the pin bump and the candidates.yaml deletion, per HUB-PROTOCOL.

@DTrim99

DTrim99 commented Oct 21, 2026

Copy link
Copy Markdown
Collaborator

PR Review: Follow the statute where IRS forms differ: refundable CTC housing deduction, joint filing test, EITC trust royalties, former 32(c)(1)(F)

PR #10297 (author: MaxGhenis). Head de6830ab07. The branch is 6 commits ahead of main and 33 behind. First review.

Summary

The PR moves four federal income-tax items from what the IRS forms say to what the Internal Revenue Code says. On the law, all four changes are right, and the encoding matches the statute in every year the PR claims, including the TCJA, ARPA and OBBBA changes.

  1. Refundable CTC, §24(d)(3). The bar now applies only to a filer who elects a §911(a) exclusion. A filer who claims only the §911(c)(4)(A) housing deduction (Form 2555 line 50) keeps the refundable credit. The legacy aggregates still count as an exclusion, which the PR documents. The EITC keeps the broader §32(c)(1)(C) test.
  2. Joint filing test, §6012(f)(2)(D), 2018–2025. On a joint return, a claimable spouse must file when their income other than earned income is over the §63(c)(5)(A) amount ($1,350 for 2025), with nothing added for age or blindness. From 2026, §6012(a)(1)(C)(i)(I) adds the additional standard deduction again.
  3. EITC trust royalties, §32(i)(2)(C) with §§652(b) and 662(b). A new input, estate_royalty_income, holds Schedule K-1 (Form 1041) box 5 royalties. They form their own disqualified-income basket, floored at zero.
  4. Former §32(c)(1)(F), through 2020. A filer whose qualifying children all fail the identification requirement gets no EITC. ARPA §9622 struck the bar from 2021.

All four are genuine conflicts, and in each the IRS processes returns under the form's version: the Schedule 8812 instructions, Chart B, Publication 596 Worksheet 1, and the 2018–2020 Form 1040 EIC steps. The statute controls each time, and the PR follows it.

Open items:

Critical (must fix)

None.

Should address

1. The four statute-vs-IRS conflicts aren't recorded, and the backlog still says the model follows the forms.

In each case below, the statute wins and the PR's code is right. The finding is about recording, not code.

(a) Refundable CTC and the housing deduction. The statute wins.

  • Statute.
    • §24(d)(3): "Paragraph (1) shall not apply to any taxpayer for any taxable year if such taxpayer elects to exclude any amount from gross income under section 911 for such taxable year" (26 U.S.C. 24).
    • §911(c)(4)(A): "To the extent the housing cost amount of any individual for any taxable year is not attributable to employer provided amounts, such amount shall be treated as a deduction allowable in computing adjusted gross income to the extent of the limitation of subparagraph (B)" (26 U.S.C. 911).
    • Treas. Reg. 1.911-7(a)(3): "An individual does not have to make an election in order to claim the housing cost amount deduction" (26 CFR 1.911-7).
  • Instructions. The 2025 Schedule 8812 instructions say "If you file Form 2555, you cannot claim the additional child tax credit". Credit Limit Worksheet B also requires "2. You are not filing Form 2555" (p. 3).
  • Why the statute wins.
    • The bar turns on an election to exclude. The housing deduction is a deduction, and the regulation says it needs no election.
    • The instructions are not a rule.
  • Encoding.
    • With Form 2555 leaves, excludes_amount_under_section_911 tests only line 42 (the foreign earned income exclusion) and line 36 (the housing exclusion).
    • The bar is in force from 2015. P.L. 114-27 §807 added it as (d)(5) in the same words, and P.L. 115-141 redesignated it (d)(3).
    • It is off in 2021, when ARPA §24(i)(1) said "(A) subsection (d) shall not apply" (P.L. 117-2, 135 Stat. 144). OBBBA §70104(c) rewrote §24(i) as inflation adjustments and left (d)(3) as it was.
    • Worksheet B now reads the statutory bar, so a filer who claims only the deduction completes it.

(b) Joint filing test. The statute wins.

  • Statute. §6012(f) applies "[i]n the case of a taxable year beginning after December 31, 2017, and before January 1, 2026". Under (f)(2), no return is required of an individual entitled to make a joint return if, among other conditions, "(D) neither such individual nor such individual's spouse is an individual described in section 63(c)(5) who has income (other than earned income) in excess of the amount in effect under section 63(c)(5)(A)" (26 U.S.C. 6012).
  • Form. 2025 Chart B, "Married dependents", if 65 or older or blind: "Your unearned income was over $2,950 ($4,550 if 65 or older and blind)" (p. 10).
  • Why the statute wins.
    • (D) names the §63(c)(5)(A) amount alone.
    • No regulation implements §6012(f). Treas. Reg. 1.6012-1 predates TCJA.
  • 2026. P.L. 119-21 never amends §6012; its enacted text doesn't mention the section. So (f) lapses after 2025, and §6012(a)(1)(C)(i)(I)'s "plus the additional standard deduction (if any)" governs again. The PR's 2026 case follows that.
  • Encoding.
    • statutory_joint_test is JOINT & standard_deduction_rule.applies (tax_unit_is_required_to_file.py:170). That parameter is true from 2018-01-01 and false from 2026-01-01.
    • The test is per person, on each claimable spouse's own income other than earned income.
    • All other filing statuses and years keep Table 2's addition.

(c) EITC trust royalties. The statute wins.

  • Statute.
    • §32(i)(2)(C): "the excess (if any) of— (i) gross income from rents or royalties not derived in the ordinary course of a trade or business, over (ii) the sum of— (I) the deductions (other than interest) which are clearly and directly allocable to such gross income, plus (II) interest deductions properly allocable to such gross income" (26 U.S.C. 32).
    • §662(b): "The amounts determined under subsection (a) shall have the same character in the hands of the beneficiary as in the hands of the estate or trust." §652(b) says the same for simple trusts.
  • Form.
    • Publication 596 (2025) Worksheet 1, line 8: "Enter any royalty income from Schedule E (Form 1040), line 23b, plus any income from the rental of personal property shown on Schedule 1 (Form 1040), line 8l" (p. 7).
    • Lines 11 and 12 take only the passive columns, 34a (d) and 34b (c).
    • Schedule K-1 (Form 1041) sends box 5, "Other portfolio and nonbusiness income", to "Schedule E, line 33, column (f)" (p. 2). So box 5 royalties reach no worksheet line.
  • Why the statute wins.
    • The conduit rule keeps the royalty character.
    • The IRS already applies that rule to K-1 interest and dividends on lines 1 to 3.
    • Box 5 income is nonbusiness by definition.
  • Encoding.
    • max_(0, nonbusiness_royalties) is its own basket (eitc_relevant_investment_income.py:136-142).
    • Passive losses can't reduce it, and it can't go below zero.
    • Dependents are excluded through tax_unit_non_dep_add.

(d) Former §32(c)(1)(F). The statute wins.

  • Statute. "(F) Individuals who do not include TIN, etc., of any qualifying child. No credit shall be allowed under this section to any eligible individual who has one or more qualifying children if no qualifying child of such individual is taken into account under subsection (b) by reason of paragraph (3)(D)" (26 U.S.C. 32, 2015 edition).
  • Repeal.
    • ARPA §9622(a): "Section 32(c)(1) ... is amended by striking subparagraph (F)." Section 9622(b) applies this to "taxable years beginning after December 31, 2020" (P.L. 117-2, p. 151).
    • The section's title, "Taxpayer eligible for childless earned income credit in case of qualifying children who fail to meet certain identification requirements", confirms that earlier law denied the childless credit.
  • Form.
    • The 2020 Form 1040 instructions, EIC Step 3, question 1, ask: "Are you claiming at least one child who meets the conditions to be your qualifying child and, unless the child was born and died in 2020, has a valid SSN as defined later? ... No. Skip questions 2 and 3; go to Step 4." Step 4 is "Filers Without a Qualifying Child" (p. 42).
    • The 2018 and 2019 instructions ask the same question. So the PR's "2018-2020" claim holds.
  • Encoding.
    • eitc_child_count counts qualifying children that meet meets_eitc_identification_requirements.
    • So any(is_eitc_qualifying_child) & (eitc_child_count == 0) (eitc_eligible.py:43-49) is exactly "no qualifying child ... taken into account ... by reason of paragraph (3)(D)".
    • The parameter is true through 2020 and false from 2021-01-01.

What's missing.

  • No markers. None of the deciding lines carries a # Source conflict marker. The vendored register has eight entries, all OASDI, so none can be added yet. rulespec-us#1825 is still open. The author's hand-off comment defers the register entry, marker, pin bump and candidate deletion to a follow-up after it lands.
  • The new comments evade the guard. They are worded so the ratchet doesn't see them, for example "Chart B adds the additional standard deduction ...; the model follows the statute", "Worksheet 1 line 8 takes royalties only from Schedule E line 23b" and "The 2018-2020 Form 1040 instructions instead send such a filer ...". Until the markers land, nothing ties these conflicts to the guard.
  • Stale backlog entries. On merge, these three entries in source_conflicts/candidates.yaml become wrong:
    • us:additional-child-credit-housing-deduction-bar still says follows: conflicting-source and code: [], with the note "Code not yet on main: elects_section_911_exclusion".
    • us:eitc-trust-royalties-investment-income likewise still says follows: conflicting-source.
    • us:filing-claimable-spouse-unearned-income-additions still says follows: conflicting-source, with the note "The statute-first rule requires removing the extra amounts".
  • No entry for (d). The backlog has no candidate for former §32(c)(1)(F). The only nearby entry is DC's, which says to "establish any pre-2021 conflict separately".

Fix.

  1. Keep the code as it is.
  2. In this PR, update the three entries:
  3. Add a federal candidate for former §32(c)(1)(F):
    • years through 2020;
    • statute vs the 2018–2020 Form 1040 EIC Step 3;
    • example: 2020, $6,000 of wages, one child without an SSN gives $0 vs $459.
  4. Add one line to the PR body saying that the IRS processes returns under the form's version for all four items, so results will differ from the IRS's for households at those edges.
  5. Add the markers and register entries in the planned follow-up.

Suggestions

1. Former §32(c)(1)(F): replace "earlier years are not separately verified".

  • The 2015 edition's history notes date the bar:
    • P.L. 105-206 §6021(b)(2) added it as (c)(1)(G).
    • Section 6021(c)(2) made it effective "as if included in the amendments made by section 11111 of Revenue Reconciliation Act of 1990".
    • P.L. 108-311 §205(b)(1) redesignated it (F) in 2004.
  • So 0000-01-01: true is right for every year the model computes. The parameter comment can cite that history instead of the caveat.
  • Optional test. Add a genuinely childless 2020 control. rulespec-us#1829 F4 asks for one.

2. A direct rental loss can no longer offset trust royalties (documented, but the consequence isn't stated).

  • What the model does. The new (C) basket holds only trust royalties. rental_income stays in the passive basket, as Worksheet 1 lines 11–13 place real-estate rents.
  • What the statute does. §32(i)(2)(C) pools "rents or royalties not derived in the ordinary course of a trade or business" with their allocable deductions. (E) is figured "without regard to any amount ... described in subparagraph ... (C)".
  • Example, 2025. $9,000 interest, $3,000 trust royalties and a −$2,000 nonbusiness rental:
    • model: 9,000 + 3,000 + max(0, −2,000) = 12,000 > 11,950, so ineligible;
    • statute, if the rents are nonbusiness: 9,000 + max(0, 3,000 − 2,000) = 10,000, so eligible;
    • Worksheet 1: 9,000.
  • Why this is only a suggestion. Whether the rents are a trade or business is a fact the model doesn't hold, and the documentation already says rental_income stays passive.
  • Fix. Add one sentence on this consequence and a backlog candidate for where the model places rents.

3. 2021 and section 911 claimants (pre-existing).

  • What the model does. refundable_ctc_barred_by_section_911_exclusion turns the bar off in 2021 for everyone, because the model assumes every filer meets ARPA §24(i)(1). That test is a principal place of abode in the United States for more than half the year, for either spouse, or bona fide residence in Puerto Rico.
  • Why it is implausible here. A §911 qualified individual needs a foreign tax home, and either a full year of foreign bona fide residence or 330 days abroad in 12 months. Most can't meet the abode test.
  • What follows. When the test fails, subsection (d), including (d)(3), applied in 2021.
  • Scope. The PR only edits this comment. Consider a follow-up that doesn't apply the 2021 exemption to exclusion filers unless an abode input says otherwise.

4. Documentation polish.

  • elects_section_911_exclusion docstring. Its first paragraph still says the instructions "bar Form 2555 filers from Worksheet B, refundable CTC, and EITC", and its references still list §24(d)(3) and the Schedule 8812 instructions. The function now serves the EITC, the filing propensity, and the NJ and state EITC helpers.
  • ctc_credit_limit_worksheet_b_applies.py:34. The comment says "Form 2555 filers skip Worksheet B". Say instead that filers barred by §24(d)(3) skip it, and that a filer who claims only the deduction completes it despite the instructions' "You are not filing Form 2555".
  • eitc_relevant_investment_income.py:133. The comment line runs to about 91 characters. Rewrap it.

5. rulespec-us#1829: name the blocker.

  • CLAUDE.md allows queued "only when the signed encoder is blocked; record the blocker in the issue".
  • F3 records pre-dispatch work ("Verify/ingest the character-preservation sources and historical expressions before dispatch").
  • F1, F2 and F4 say only "The audit was read-only: signed generation was outside its authorized scope, and no dispatch was attempted".
  • Fix. Add one line naming the blocker, for example a billed encoder run awaiting approval, or ingest of the historical §32 and §24 expressions.

6. PR body.

  • (a) Review section. It still credits GPT-6.1 Sol with r1 and an r2 approval. The author's 2026-10-20 hand-off comment corrects this: r1 was served by Opus 5.5 in plan mode, r2 ran in a read-only sandbox, and no review executed the tests.

  • (b) CI cost. CLAUDE.md asks expanded simulation-building Python tests to report before/after time or to say that no measurement exists. Two property tests are expanded:

    • In test_table_2_boundary_grid, the joint units in the existing batch grow from 120 to 480.
    • The 200-unit seeded EITC population gains one input.

    Both stay within existing simulations, so the cost is likely small. One line with a CI timing comparison, or a note that none was taken, would satisfy the rule.

7. Optional edge tests.

  • A 2025 joint return whose claimable spouse is 65 and blind, with $2,000 of interest, should be required to file; Chart B would say $4,550. The property grid covers this case, but no YAML case pins it.
  • A 2025 deduction-only filer whose refundable credit runs through Worksheet B with a residential clean energy credit.

Verified correct

  • Statutes and forms. I read the operative text directly and quoted it above:

    • §§24(d)(3), 911(a) and (c)(4), 6012(f) and (a)(1)(C), 32(i)(2) and (c)(1)(C), 652(b) and 662(b);
    • Treas. Reg. 1.911-7(a)(3);
    • former §32(c)(1)(F) and its history notes;
    • P.L. 117-2 §§9611 and 9622;
    • P.L. 119-21 §§70103 and 70104. Neither amends §6012, and §70104(c) replaces §24(i).

    I also checked the 2025 Schedule 8812 instructions (pp. 3–4), 2025 Chart B (p. 10), Publication 596 (2025) Worksheet 1 (p. 7), the 2025 Schedule K-1 (Form 1041) and its instructions (p. 2), Form 2555 (2025, p. 3: lines 36, 42, 43, 44 and 50), and the 2018–2020 Form 1040 instructions (2020, p. 42).

  • Code.

  • Callers.

    • refundable_ctc_barred_by_section_911_exclusion feeds refundable_ctc, Worksheet B, CO and PR refundable CTCs, and the AFA and Wyden-Smith reforms. The AFA override returns False from 2025, so it is unaffected.
    • eitc_eligible feeds eitc, NJ EITC and SF WFTC. NJ's 2020 result now follows the federal bar, consistent with conformity.
    • eligible_for_refundable_credits reads refundable_ctc and eitc, so the filer-propensity comment in tax_unit_is_filer.py is accurate.
  • Claimability is an input. The model takes dependency status as claimed_as_dependent_on_another_return. So the §152(b)(2) joint-return test, the refund-only exception of Rev. Rul. 65-34, and the circularity they create with (f)(2)(D) are unchanged by this PR, and Chart B shares them.

  • Hand-checked expectations (18):

    1. CTC, 2025 deduction-only: maximum min(1,700, 2,200) = 1,700. The credit would rise by min(2,200, 0 + 1,500) − 0 = 1,500. Not barred, so refundable_ctc = 1,500 = 15% × (12,500 − 2,500).
    2. Bar, 2025: housing deduction 1,000 with no line 36 or 42 amount gives false. In 2015 it is also false: the bar is in force (P.L. 114-27 §807) with the same words.
    3. Housing exclusion 2,000 plus deduction 1,000 gives true, a §911(a)(2) election.
    4. Legacy foreign_earned_income_exclusion of 1,000 gives true, the documented fallback.
    5. Worksheet B: deduction 500 with disallowed deductions 500 gives an aggregate of 0. Not barred, with two children, so Worksheet B applies.
    6. Filing, 2025: claimable spouse aged 65 with $2,000 of interest. 2,000 > 1,350, so a return is required. The gross test against the limited 1,350 + 1,600 = 2,950 isn't met, so only (D) requires it.
    7. A blind claimable spouse with $1,351: over 1,350, so required (Chart B: 2,950).
    8. Aged claimable spouse with $1,350: "in excess of" fails, so not required.
    9. 2026, aged spouse with $2,000: 1,350 + 1,650 = 3,000 > 2,000, so not required.
    10. Existing cases are unchanged: aged spouse over $2,950 is required; head 70 with $1,500 and claimable spouse with $1,000 is not required; claimable spouse with $1,351 under an aged head is required. Main's Count taxable employment disability benefits in federal gross income (IRC 105(a)) #10185 joint cases H1 and H1b involve a spouse who is neither aged nor blind, so they are unaffected.
    11. EITC investment income, trust royalties 12,000: 12,000 > 11,950, so ineligible (Worksheet 1 line 15 limit $11,950).
    12. Interest 950 + royalties 11,000 = 11,950, which is not over the limit, so eligible.
    13. Interest 11,950 + max(0, −2,000) = 11,950, so eligible.
    14. Royalties 3,000 with passive −2,000: 3,000 + max(0, −2,000) = 3,000.
    15. Joint, one child, wages 15,000 and royalties 12,000: AGI 27,000 is below the 30,470 phase-out start, and earnings exceed 12,730, so the credit without royalties would be 4,328. With them, investment income is 12,000, so eitc = 0.
    16. §32(c)(1)(F), 2020: a child without an SSN gives count 0 and is_eitc_qualifying_child true, so barred and eitc = 0. The instructions' route would give min(7.65% × 6,000, 538) = 459.
    17. 2021, same facts: the parameter is false, so eligible for the childless credit.
    18. 2020, one child with an SSN and one without: count 1, so not barred and eligible.
  • References.

    • Each new reference is a single source.
    • The P.L. 117-2 #page=151 anchor shows §9622 (checked in the PDF).
    • Publication 596 p. 7 shows Worksheet 1.
    • K-1 p. 2 shows box 5, and the K-1 instructions p. 2 discuss box 5.
    • Form 2555 p. 3 shows lines 36, 42 and 50.
    • The parameter description follows the house boolean template; "when this is true" matches the sibling separate_filer parameter.
  • Source-conflict ratchet (Tie source-conflict markers to the register shared with Axiom #10287) on the merged tree.

    • The PR's files. I took the guard's own comment readers and pattern from the merged tree's test_source_conflicts.py and applied them to the seven scanned files the PR adds or edits. Each has zero conflict-sounding comment lines, both on main and on git merge-tree tree 0b357f73f6.
    • The baseline list. None of the seven is in KNOWN_UNMARKED. So neither the "grown" nor the "shrunk" half of test_conflict_sounding_comments_do_not_grow changes.
    • Control. The same script finds the one known line each in VT's vt_low_income_cdcc_eligible.py and PR's max_amount.yaml.
    • Other tests in the file. The PR adds no marker and doesn't touch source_conflicts/, so the marker and backlog tests are unaffected. No local test run was needed.
  • Changelog and partner tests.

    • changelog.d/statute-first-federal-income-tax.fixed.md is top-level, and fixed fits.
    • No partner test files are touched. No new formula variable is untested, and test periods are plain.

Axiom line assessment

The line axiom: TheAxiomFoundation/rulespec-us#1829 queued (pe-parity; every provision needs encoding) has the right form, and the issue matches this head.

  • Status. The issue is OPEN and labelled pe-parity. It was created and last updated on 2026-10-20 at 03:52 UTC, after the head commit (03:19 UTC).
  • F1–F4 contents. Each gives the module (us/statutes/26/24/d.yaml, 6012.yaml, 32.yaml), corpus citations, verbatim law and required outputs.
  • Companion cases match the head YAML:
    • F1: 2015 and 2025 deduction-only gives false; housing exclusion gives true; the leaf cases with zero net aggregates give true; and an amount case of 1,500.
    • F2: 2,000 and 1,351 give required, and 1,350 gives not required. It also includes the two head-age-70 cases and the explicit "Do not add an age/blind deduction".
    • F3: the five royalty cases.
    • F4: the 2020, 2021 and mixed-child cases. It says "Do not use the conflicting historical Form 1040 instruction result as the expected-value oracle".
  • What's not complete. No blocker is named for F1, F2 or F4 (Suggestion 5).

CI status

Per gh pr checks 10297, re-checked at the end of this review: 27 pass, 3 skipping, none failing or pending.

Branch status

Verdict: REQUEST_CHANGES

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

All four statute-over-form changes are correct in every claimed year (24(d)(3); 6012(f)(2)(D) for 2018-2025; 32(i)(2)(C) with 652(b)/662(b); former 32(c)(1)(F) through 2020). 18 expectations hand-check, and the merged tree passes the #10287 ratchet. One should-address item: none of the four genuine conflicts (the IRS administers the form's version) is recorded. Update the three stale candidates.yaml entries, add a candidate for (F), and note the IRS processing difference in the body. Seven suggestions. Full report in the comment above.

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.

2 participants