Skip to content

Follow state statutes where forms differ: NM medical exemption, VT CDCC, NY/NYC household credit, PR EITC - #10300

Open
MaxGhenis wants to merge 5 commits into
mainfrom
statute-first-state-income-tax
Open

MaxGhenis wants to merge 5 commits into
mainfrom
statute-first-state-income-tax

Conversation

@MaxGhenis

@MaxGhenis MaxGhenis commented Oct 20, 2026 •

Copy link
Copy Markdown
Contributor

State income tax items where the model followed a form or instructions against the statute, plus one stale schedule. 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

  • New Mexico, NMSA 7-2-5.9(A). The senior medical exemption applies "if those medical care expenses exceed twenty-eight thousand dollars ($28,000)". The PIT-ADJ line 18 instructions say "$28,000 or more". Expenses of exactly $28,000 no longer qualify. The companion credit (7-2-18.13: "equal twenty-eight thousand dollars ($28,000) or more") is unchanged.
  • Vermont, 32 V.S.A. 5828c as in effect for 2021 (reproduced in 2022 Act 138 §3): federal AGI "less than $30,000.00 (or $40,000.00 for married, filing jointly)". The 2021 Schedule IN-112 says "or less". The income test ended in 2022, so only 2021 changes.
  • New York household credit, Tax Law 606(b), and New York City, 1310(d). A household is a husband and wife, a head of household, a surviving spouse, or an unmarried individual who can't be claimed. The credit counts the federal exemptions the household is entitled to. Only a single filer is now excluded for being claimable; every other return counts its exemptions (exemptions_count). IT-201 lines 40 and 48 deny every return with item C marked.
    • A married couple filing separately is one household with combined AGI. New York State already combined the couple's AGI and now counts their exemptions (the other spouse's return is assumed alike). For New York City, each spouse gets "one-half the credit otherwise allowed his or her household": the married amount per exemption at the couple's AGI, times the couple's exemptions, halved. IT-201 Table 6's rounded half amounts can differ by a dollar; its parameter is kept for reference but unused.
    • With no exemptions (both spouses of a refund-only joint return can be claimed), the state's "one less than the number of exemptions" lowers the base and the credit is floored at zero.
  • Puerto Rico, §1052.01(i). The earned income credit is indexed. The model carried the 2023 schedule into 2024 and 2025; it now uses BI RI 24-04 and BI RI 26-01. Cases built on the 2023 values are pinned to 2023.

Not in this PR

New Mexico's exemption per qualifying spouse and West Virginia's senior modification base (§11-21-12(c)(9)) turn on readings of the statute itself and are queued for a decision.

Invariants

  • NY claimable-filer invariants (head/spouse swap invariance; claimability never raises a credit) pass with the change.
  • New Mexico: the exemption is $3,000 exactly when a filer aged 65+ has more than $28,000 of expenses, else $0 (oracles in test_nm_ctc_children_medical_exemption_invariants.py and test_medical_expense_premium_conservation.py now distinguish the credit's ">=" from the exemption's ">").

Review

GPT-6.1 Sol, five rounds: r1 (NY separate/HOH scope), r2 (NYC separate household), r3 (NYC halving), r4 APPROVE, r5 APPROVE at the current head.

Impact

Hub microsimulation on the default dataset, main c1946f1af8 against head 396044ce48, under the heavy lock. Weighted sums:

Year nyc_household_credit Weighted tax units changed Largest change
2024 +$0.01M 423 (6 records) $15
2025 +$6,400 427 (7 records) $15
2026 +$4,297 430 (7 records) $15

household_net_income moves by at most $15 on 1–4 records, netting to under $1. Federal and state income tax and ny_household_credit don't change. The NM medical exemption and VT CDCC move nothing, and nor does PR's EITC in 2024: no default-dataset record sits at those boundaries or in Puerto Rico.

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

🤖 Generated with Claude Code

MaxGhenis and others added 5 commits October 19, 2026 23:05
- New Mexico, NMSA 7-2-5.9(A): the senior medical exemption needs expenses
  that "exceed" $28,000; the PIT-ADJ instructions say "$28,000 or more".
- Vermont, 32 V.S.A. 5828c (through 2021): AGI "less than" $30,000/$40,000;
  the 2021 Schedule IN-112 says "or less".
- New York, Tax Law 606(b), and New York City, 1310(d): a married couple's
  household credit counts the exemptions it is entitled to; IT-201 lines 40
  and 48 deny the credit when either spouse can be claimed.
- Puerto Rico, section 1052.01(i): the earned income credit is indexed;
  add Hacienda's 2024 (BI RI 24-04) and 2025 (BI RI 26-01) schedules, and
  pin the 2023-value cases to 2023.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…review r1)

Review r1: Tax Law 606(b)(3)(B) and 1310(d) make a husband and wife, a head
of household and a surviving spouse households in their own right; only an
unmarried individual is excluded for being claimable. Every non-single
return now counts its federal exemptions (a separate return adds the other
spouse's unit at its size) and keeps the credit; the statute's "one less
than the number of exemptions" is applied literally when there are none,
with the credit floored at zero. Also fixes stale NM, VT and PR comments.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Review r2: Tax Law 1310(d) aggregates a husband and wife's federal AGIs
"irrespective of whether joint or separate city income tax returns are
filed" and gives each spouse half the household credit; IT-201 Table 6
keys on AGI and dependents "from both returns". The NYC credit for a
separate return now uses own plus spouse AGI and exemptions (the spouse's
return assumed alike, as for New York State); the older separate cases are
restated on household AGI. Adds head-of-household cases for NY and NYC and
widens the changelog.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…d amount (review r3)

Review r3: Tax Law 1310(d) gives a separate filer half the household's
credit. The model multiplied IT-201 Table 6's rounded per-exemption half
amount by the couple's exemptions ($8 x 8 = $64 at $18,000); it now takes
the married amount per exemption times the couple's exemptions, halved
($15 x 8 / 2 = $60). Table 6's separate amounts are kept as a parameter
for reference but no longer used.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…view r4)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@MaxGhenis
MaxGhenis marked this pull request as ready for review October 20, 2026 03:46
@MaxGhenis

MaxGhenis commented Oct 20, 2026 •

Copy link
Copy Markdown
Contributor Author

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

  • Head: 396044ce482e4b4ab868ac08fbcdc49e1c1cdeea
  • Independent review: GPT-6.1 Sol, r5 APPROVE (five rounds: NY/NYC household scope, NYC separate halving) at this head. Reviews: ~/reviews/us-hub/source-conflicts/backlog/reviews/10300-r*.md.
    • Correction (2026-10-20): dispatched without -s workspace-write, so the lane was read-only: r1, r2 and r4 were served by Opus 5.5 in plan mode with no shell; r3 and r5 by GPT-6.1 Sol in a read-only sandbox (r3's YAML run was interrupted 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-ST-10300.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 state statutes where forms differ: NM medical exemption, VT CDCC, NY/NYC household credit, PR EITC

PR #10300 (author: MaxGhenis). Head 396044ce48. The branch is 5 commits ahead of main and 31 behind. First review.

Summary

The PR moves four state or territory income-tax items from what the forms say to what the statutes say. On the law, all four changes are right, and the encoding matches the statute in every year the PR claims.

  1. New Mexico, senior medical exemption. NMSA 7-2-5.9(A) requires expenses that "exceed twenty-eight thousand dollars". The PR changes >= to >. The companion credit (7-2-18.13, "equal ... $28,000 or more") keeps >=.
  2. Vermont, 2021 low-income CDCC. The pre-2022 text of 32 V.S.A. 5828c reads "less than $30,000.00 (or $40,000.00 for married, filing jointly)". 2022 Act 138 reproduces that text where it strikes it. The PR changes <= to <.
  3. New York and NYC household credits. Tax Law 606(b)(3)(B) and 1310(d)(3)(B) exclude a claimable filer only when that filer is an unmarried individual. The PR now:
    • counts the federal exemptions that married, head-of-household and surviving-spouse households are entitled to;
    • gives NYC separate filers half of the married credit, computed on the couple's AGI and exemptions.
  4. Puerto Rico EITC. Section 1052.01(i) indexes the credit. The PR adds Hacienda's 2024 and 2025 schedules (BI RI 24-04 and BI RI 26-01). The 2024 Planilla instructions say the same adjustment "se refleja en el Anejo CT Individuo", so the statute, bulletin and form all agree. This item is not a conflict.

Three of the four are genuine conflicts. In each, the agency processes returns under the form's version: NM TRD, Vermont for 2021, and NY DTF (item C). The statute controls in each case, and the PR follows it.

Open items:

Critical (must fix)

None.

Should address

1 (merge blocker). Merged with current main, the PR fails test_conflict_sounding_comments_do_not_grow.

  • What happens. The PR deletes five comments that the ratchet counts as unmarked conflict comments:

    • the "discrepancy" comment in each of PR's max_amount.yaml, phase_out/threshold/joint.yaml, phase_out/threshold/single.yaml and unearned_income/limit.yaml;
    • VT's "Law says 'less than' but tax form says ..." in vt_low_income_cdcc_eligible.py.
  • Why the test fails. All five files are in KNOWN_UNMARKED on main with a count of 1. The guard fails when a count falls, not only when it rises ("lower or delete their KNOWN_UNMARKED counts").

  • What I ran. I ran only that test file, with conftest disabled, on the git merge-tree result (tree bc41262882). test_conflict_sounding_comments_do_not_grow fails:

    These files now have fewer unmarked conflict-sounding comments; lower or delete their KNOWN_UNMARKED counts to: {'.../earned_income/max_amount.yaml': 0, '.../phase_out/threshold/joint.yaml': 0, '.../phase_out/threshold/single.yaml': 0, '.../unearned_income/limit.yaml': 0, '.../vt/tax/income/credits/cdcc/vt_low_income_cdcc_eligible.py': 0}

    The grown half is empty: none of the PR's new comments trips the pattern. The marker tests (test_markers_are_well_formed, test_every_marker_names_a_registered_entry_that_lists_its_file) pass.

  • Why CI is green. The only CI run (39366069002) started 2026-10-20 03:46 UTC. Tie source-conflict markers to the register shared with Axiom #10287 merged at 22:02 UTC that day, so this guard has never run on this PR. Merging as-is would turn main red.

  • Fix.

    • Merge main into the branch.
    • In policyengine_us/tests/code_health/test_source_conflicts.py, delete the five KNOWN_UNMARKED entries listed above.
    • Removing those comments is itself correct. The PR comments were never conflicts (see Should 2(d)), and the VT conflict is resolved.

2. The three genuine statute-vs-form conflicts aren't recorded, and the backlog says the model follows the forms.

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

(a) New Mexico. The statute wins.

  • Statute. NMSA 7-2-5.9(A): "...if those medical care expenses exceed twenty-eight thousand dollars ($28,000) and if the medical care expenses are not reimbursed or compensated for by insurance or otherwise" (TRD Income Tax Act compilation, Rev. July 2023, p. 41).
    • Enacted by Laws 2005, ch. 104, §6. The history note lists no later amendment.
    • The companion credit, 7-2-18.13(A), says "equal twenty-eight thousand dollars ($28,000) or more" (p. 116).
  • Instructions. 2025 PIT-ADJ line 18: "paid unreimbursed and uncompensated medical care expenses of $28,000 or more during tax year 2025, you may be eligible to claim an exemption of $3,000" (p. 5).
  • Why the statute wins.
    • The instructions are not a rule.
    • The compilation's 3.3 NMAC regulations never mention the threshold. Its only two "$28,000" passages are the two statutes.
    • The instructions appear to borrow the credit's wording.
  • Encoding. medical_expense > p.min_expenses matches the statute in every year from 2005.

(b) Vermont, 2021. The statute wins.

  • Statute. The pre-2022 32 V.S.A. 5828c, as struck by 2022 Act 138 §3: "A resident of this State with federal adjusted gross income less than $30,000.00 (or $40,000.00 for married, filing jointly) shall be eligible for a refundable credit" (p. 3).
    • §13(b) makes Secs. 1–8 "take effect retroactively on January 1, 2022" (p. 15).
    • So the strict test governs 2021, and no amendment ever adopted the form's "or less".
  • Form. 2021 IN-112: "If your federal Adjusted Gross Income is $30,000 (or $40,000 for Married Filing Jointly) or less ... enter 50% of federal Form 2441, Line 10" (p. 2).
  • Encoding.
    • federal_agi < federal_agi_threshold matches the statute.
    • At exactly the threshold, a 2021 filer now falls to the 24% non-refundable credit through vt_nonrefundable_cdcc (~low_income_eligible). That is consistent with the "in lieu" structure.
    • The VT tax model starts in 2021, so 2021 is the only affected year.

(c) New York and NYC. The statute wins.

  • Household definition. Tax Law 606(b)(3)(B): "'Household' means a husband and wife, a head of household, a surviving spouse, or an individual who is not married nor the head of a household nor a surviving spouse nor a taxpayer with respect to whom a deduction under subsection (c) of section one hundred fifty-one of the internal revenue code is allowable to another taxpayer for the taxable year" (§606). Section 1310(d)(3)(B) is word-for-word the same (§1310).
  • Credit amounts.
    • The state credit is "$15.00 multiplied by a number which is one less than the number of exemptions for which the taxpayer (or in the case of a husband and wife, taxpayers) is entitled to a deduction ... under subsections (b) and (c) of section one hundred fifty-one".
    • The NYC credit is "the number of exemptions ... by the credit factor" (1310(d)(2)(B)).
  • Separate returns. Both sections say "a husband or wife who is required to file a separate ... return shall be permitted one-half the credit otherwise allowed his or her household". Household gross income is the couple's aggregate AGI "irrespective of whether joint or separate ... returns are filed" (606(b)(3)(C), 1310(d)(3)(C)).
  • Instructions. IT-201-I 2025, line 40: "If you marked the Yes box at item C on the front of Form IT-201, you do not qualify for this credit" (p. 12). Line 48 says the same for NYC (p. 13).
  • Why the statute wins.
    • The definition attaches claimability only to the unmarried, non-head-of-household individual.
    • The instructions are not a rule, and I found no regulation that adopts item C.
    • DTF still processes returns under item C.
  • Encoding.
    • exemptions_count drops a claimable filer's own exemption under IRC 151(d)(2), and drops their dependents under 152(b)(1) unless the filing exception applies.
    • For separate filers it adds spouse_separate_*.
    • Only claimable SINGLE filers are zeroed.
  • NYC Admin Code 11-1706. codelibrary.amlegal.com returned 403, so I couldn't quote it. Its search snippet shows the same exemptions × credit-factor structure.

(d) Puerto Rico. Not a conflict.

  • Statute. §1052.01(i): "Las cantidades de límite de ingreso bruto ganado y crédito máximo dispuestas en el párrafo (5) del apartado (a) de esta sección estarán sujetos al aumento dispuesto por inflación según ajustado por el Servicio de Rentas Internas Federal. El Secretario de Hacienda deberá emitir un boletín informativo..." (PR Code, p. 300).
  • Form. The 2024 Planilla instructions: "Se provee el aumento por inflación correspondiente al crédito por trabajo para el año contributivo 2024, según se dispone en la Sección 1052.01(i) del Código. Este ajuste se refleja en el Anejo CT Individuo" (p. 6).
  • The old "discrepancy" comments compared (a)(5)'s base amounts ($1,500 / $3,500 / $5,500 ...) with the indexed amounts on the form. That is not a conflict.
  • The unearned-income limit. The §1052.01(e) proviso is: "para años contributivos comenzados luego del 31 de diciembre de 2020 la cantidad de otros ingresos ... será igual o menor a diez mil dólares ($10,000)" (p. 299). The PR's new comment is right.

What's missing.

  • No markers. The deciding lines carry no # Source conflict marker. The vendored register has only eight entries, all federal, so none can be added yet. The author's hand-off comment defers markers to a follow-up after rulespec-us#1825.
  • The new comments evade the guard. They are worded so the ratchet doesn't see them (for example "IT-201 line 40 says ...", "instructions allow"). 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-nm:medical-expense-exemption-28000-boundary still says follows: conflicting-source, with the note "An October 2026 ruling accepted the instructions ... Code not yet on main".
    • us-ny:household-credit-claimable-spouse likewise still says follows: conflicting-source.
    • us-vt:low-income-cdcc-threshold-equality likewise still says follows: conflicting-source.
  • A wrong entry. us-pr:eitc-unearned-income-limit says the statute's limit is $2,200 and that "the statute-first rule requires changing the $10,000 form-based limit to the statutory limit". The proviso quoted in (d) refutes that, as does the PR's own new comment. Left in place, it points the next contributor at a wrong change.

Fix.

  1. Keep the code as it is.
  2. In this PR:
  3. Add one line to the PR body saying that NM TRD, Vermont (2021) and NY DTF process returns under the form's version, so results will differ from the agency's for households at those edges.
  4. Add the markers and register entries in the planned follow-up.

Suggestions

1. NYC household credit: negative AGI gets $0 (pre-existing).

  • The problem. All three NYC scales start at threshold: -1: other_per_dependent.yaml, flat_amount.yaml and separate_per_dependent.yaml. With right=True, any AGI ≤ −1 maps to $0.
  • What the law says. The 1310(d) tables begin "Not over $12,500" and "Not over $15,000". IT-201 Table 5, Note 2 says the lower bound "could be 0 or a negative amount" (p. 14).
  • Scope. The PR now sends separate filers through other_per_dependent too. That isn't a regression, because separate_per_dependent also starts at −1.
  • Fix. Change the first threshold to -.inf, as NY State's non_single/base.yaml does.

2. Make the separate-return halving consistent.

  • NYC. The PR halves NYC separate amounts exactly, rejecting Table 6's rounding ("Note 5: The credit amounts have been rounded").
  • NY State. It keeps np.ceil(total / 2) in ny_household_credit_potential, which is Table 3's rounding. 606(b) says only "one-half the credit otherwise allowed". So two exemptions at AGI ≤ $5,000 gives $52.50 by statute but $53 in the model.
  • Fix. Drop the ceil, or give a whole-dollar rounding authority for it. Then treat NYC the same way.

3. vt_cdcc.py comment: cite the statute, not the form, for 2022.

  • The new comment rests the 2022 "no income test" on the 2022 Schedule IN-112.
  • Act 138 §3 struck the AGI cap, retroactive to January 1, 2022 under §13(b). income_limit_in_effect.yaml already says so.
  • Fix. Cite §3 and §13(b) here. This also corrects the old comment, which wrongly said the cap was retained for 2022.

4. NYC parameters.

  • separate_per_dependent.yaml now has no callers. Delete it, or keep it with its new note.
  • other_per_dependent.yaml is now used for separate filers too, before halving. Its description and label still say "joint, suriving spouse, and head of household filers". That wording is now wrong and has a typo.

5. Optional tests.

  • NY and NYC, claimable surviving spouse with one exemption: NY $60, NYC $30. rulespec-us#1831 lists this case.
  • NYC separate return that pins exact halving. For example, combined AGI $16,000 with three exemptions gives $25 × 3 / 2 = $37.50, where Table 6 prints $38.
  • 2021 VT at AGI exactly $30,000: vt_nonrefundable_cdcc = 24% of the federal credit, and vt_low_income_cdcc = 0.
  • Vermont $30,001 and $40,001 cases, which rulespec-us#1831 also lists.

6. More PR EITC comments are false in the same way (follow-up).

  • Rates. phase_in_rate.yaml and phase_out/rate.yaml still say "legal statute doesn't include phase in [out] rate broken down by number of children". But §1052.01(a)(5) states each rate by child count (15%, 33.98%, 40%, 44.83%; 26.92%, 34.38%, 34.21%) (p. 296).
  • Gap-fill candidates. us-pr:eitc-minimum-age-gap-fill and us-pr:eitc-separate-filer-gap-fill call the statute silent. Yet (h)(2) requires "diecinueve (19) años o más" and (h)(4) bars married separate filers (pp. 299–300).
  • Fix. Fix these comments, lower their KNOWN_UNMARKED counts, and correct the candidates.

7. rulespec-us#1831: name the blocker for ST1 and ST3.

  • CLAUDE.md allows queued "only when the signed encoder is blocked; record the blocker in the issue".
  • ST2, ST4 and ST5 record pre-dispatch work that serves as a blocker: a historical VT corpus expression, ingest of §1310, and a us-pr bootstrap.
  • ST1 (NM) and ST3 (§606) say the corpus already exists, and the issue says only "This read-only audit did not dispatch signed generation".
  • Fix. Add one line naming the blocker, for example a billed encoder run awaiting approval.

8. PR body.

  • (a) Review section. It still credits GPT-6.1 Sol with five rounds and two approvals. The author's 2026-10-20 hand-off comment corrects this: r1, r2 and r4 were served by another model in plan mode, and no review ran tests.
  • (b) "Assumed alike." For New York State, "the other spouse's return is assumed alike" holds for AGI and unit size, but not for claimability. The code counts the spouse as entitled to an exemption even when the filer is claimable. Saying so would match the code comment.

Verified correct

  • Statutes and forms. I read the operative text directly for each provision and quoted it in Should 2: NMSA 7-2-5.9 and 7-2-18.13, 2022 Act 138 §§3 and 13, Tax Law 606(b) and 1310(d), and PR Code §1052.01(a)(5), (e), (h) and (i). I also checked IT-201-I 2025 pp. 12–14, PIT-ADJ 2025 p. 5, 2021 IN-112 p. 2 and the 2024 Planilla instructions p. 6.
    • IT-201 Table 6 gives 8 / 15 / 23 / 30 / 38 / 45 / 53, plus 8 per exemption over seven, for $17,500–$20,000. So eight exemptions gives $61 against the statute's $60, as the PR says.
  • Hacienda bulletins.
    • BI RI 24-04 (2024): maxima 1,745 / 4,071 / 6,400 / 7,563; single starts 18,610 / 20,940 / 24,430 / 24,430; joint starts 20,940 / 25,590 / 29,080 / 29,080.
    • BI RI 26-01 (2025): maxima 1,794 / 4,186 / 6,576 / 7,774; single 19,130 / 21,530 / 25,110 / 25,110; joint 21,530 / 26,310 / 29,900 / 29,900.
    • Rates in both bulletins match phase_in_rate.yaml and phase_out/rate.yaml.
    • Every parameter value in the diff matches.
    • A typo in BI RI 26-01. Section D spells out "siete mil setecientos sesenta y cuatro" (7,764) beside the figure $7,774. The figure is right: it reproduces the published end points, since 25,110 + 7,774 / 0.3421 ≈ $47,833 (printed $47,833) and 29,900 + 7,774 / 0.3421 ≈ $52,624 (printed $52,623). The PR uses 7,774.
    • BI RI 24-04 has a similar typo for the 1-child amount: "cuatro mil sesenta y un" next to $4,071.
  • Code.
  • Hand-checked expectations (20):
    1. NM, 2025, age 70, expenses $28,000: 28,000 > 28,000 is false, so 0.
    2. NM, $28,001: true, so $3,000.
    3. NM premium case: gross paid 6,000 + 22,001 = 28,001 > 28,000, so $3,000. The federal subtotal is 28,001 − 1,000 SE ALD = 27,001.
    4. NM caller-supplied $28,001: $3,000. NM $27,999: 0.
    5. VT 2021, single, $30,000: 30,000 < 30,000 is false, so not eligible. $29,999: eligible.
    6. VT 2021, joint, $40,000: not eligible. $39,999: eligible.
    7. NY, joint, one spouse claimable, AGI $10,000: the $7,000–$20,000 row gives $60, plus $15 × (1 − 1) = $60 (Table 2, column 1 = $60).
    8. NY, joint, both spouses claimable: $60 + $15 × (0 − 1) = $45. This is the literal "one less than the number of exemptions", and rulespec-us#1831 asks for $45.
    9. NY, separate filer who is claimable: combined AGI 5,000 + 5,000 = $10,000. Exemptions are 0 + 1. ($60 + 0) / 2 = $30.
    10. NY, claimable head of household with one child exemption: $60 + $15 × 0 = $60.
    11. NYC, joint, one spouse claimable, AGI $10,000: $30 × 1 = $30. With both spouses claimable: $30 × 0 = $0.
    12. NYC separate, 7,500 + 7,500 = $15,000. Under right=True, $15,000 is "not over $15,000", so $30. $30 × (2 + 2) / 2 = $60.
    13. NYC separate, 9,000 + 9,000 = $18,000, so $15. $15 × (4 + 4) / 2 = $60.
    14. NYC separate, 10,500 + 10,500 = $21,000, so $10. $10 × 12 / 2 = $60.
    15. NYC separate, 11,251 × 2 = $22,502 > $22,500, so $0. Likewise 15,000 × 2 = $30,000 gives $0.
    16. NYC separate filer who is claimable: combined AGI $10,000, exemptions 0 + 1, $30 × 1 / 2 = $15. NYC claimable head of household with a child: $30 × 1 = $30.
    17. PR 2024, single, 3 children, $25,000: phase-in min(25,000 × 0.4483, 7,563) = 7,563; minus 0.3421 × (25,000 − 24,430) = 194.997; so 7,368.003.
    18. PR 2025, single, 3 children, $25,000: below the $25,110 start, so 7,774.
    19. PR 2025, joint, 1 child, $30,000: 4,186 − 0.2692 × 3,690 = 4,186 − 993.348 = 3,192.652.
    20. The 2023-pinned PR cases, for example 0 children at the maximum, 1,656, still use the 2023 schedule, which the PR doesn't change.
  • References.
    • Each new reference is a single source.
    • The two bulletins use quoted titles ending "#page 1-3" with #page=1 hrefs, following CLAUDE.md. Both are three pages long, with values on pages 1–3.
    • §1052.01(i) is on PDF p. 300.
    • The NYC variable's IT-201 link (p. 13) shows line 48.
    • The Act 138 link (p. 3) shows the struck text.
  • Tests and CI cost. Test periods are plain. The Python edits are to three existing tests: two NM oracles and a $22,001 input. They now separate the credit's >= from the exemption's >. No Python test is added, so CI cost is unchanged.
  • Changelog and partner tests. changelog.d/statute-first-state-income-tax.fixed.md is top-level, and fixed fits. No partner test files are touched.

Axiom line assessment

The line axiom: TheAxiomFoundation/rulespec-us#1831 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:53 UTC, after the head commit (head CI started at 03:46 UTC). It gives module paths, corpus citations, verbatim law and required outputs for all four provisions.
  • ST1 (NM). Strict >, with cases at 27,999 → 0, 28,000 → 0 and 28,001 → 3,000.
  • ST2 (VT 2021). <, with cases at 29,999, 30,000 and 30,001, and at 39,999, 40,000 and 40,001. It notes the §13(b) effective date.
  • ST3 and ST4 (NY and NYC). Its cases match the head YAML:
    • NY $60 / NYC $30;
    • NY $45 / NYC $0 for the zero-exemption joint return;
    • $30 / $15 for separate returns;
    • the 2022 NYC separate cases at $60;
    • the $60-not-$61 Table 6 note;
    • "allocate one-half AFTER computing the household credit".
  • ST5 (PR). Both years' schedules and all three cases match the head. It flags the 7,764 / 7,774 typo.
  • Companion cases. They are computed from the statutes and bulletins.
  • What's not complete. No blocker is named for ST1 or ST3 (Suggestion 7).

CI status

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

  • The run. All the passing checks come from run 39366069002 on head 396044ce48, created 2026-10-20 03:46 UTC. The three skipped checks come from an earlier duplicate run, 39365858886.
  • What it missed. That run predates Tie source-conflict markers to the register shared with Axiom #10287 (merged 2026-10-20 22:02 UTC). So the source-conflict guard never ran, and it fails on the merged tree (Should 1, merge blocker).

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 encodings (NM, VT, NY/NYC, PR) match the governing statutes in every claimed year, and 20 expectations hand-check. Two should-address items. (1) Merge blocker: merged with current main, the PR fails the #10287 source-conflict ratchet, because five KNOWN_UNMARKED counts drop to 0 and need deleting. (2) Record the three real NM/VT/NY conflicts and fix the stale candidates.yaml entries, including the PR $2,200 limit claim. Eight 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