Repository navigation
Conversation
… reduction amount Tax Law § 606(ggg)(4-b)(A)-(C), as enacted by L.2017, ch. 59, Part C, § 2 for tax years from 2017, gives the amount over each threshold as a fixed base ($37 joint and surviving spouse, $25 head of household, $21 single and separate) plus 0.228% of the excess, not the first band carried forward at 0.171%. Fixes #8947. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…estead IC 6-1.1-20.6-7.7(b)-(d) (SEA 1 2025, SECTION 74) gives the credit only to a person who qualifies for the IC 6-1.1-12-37 homestead standard deduction (or that person's surviving spouse), computes it on the liability of that homestead, and leaves out referendum-approved taxes. Generic real_estate_taxes establish none of these, so qualification, the homestead liability and its referendum component become tax-unit inputs. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…forward excess Va. Code § 58.1-322.03(7)(a) limits the deduction to $4,000 per contract or account and carries forward the excess until fully deducted; (7)(b) lets an owner aged 70 or older deduct the full amount less amounts previously deducted. Add va_529_plan_deduction_capped_amount (account-level result, defaulting to an even split across accounts) and va_529_plan_carryforward. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…led property tax exemption RCW 84.36.381(3)(a) admits a claimant under the age threshold only if retired from regular gainful employment by reason of disability, or as a veteran entitled to and receiving VA compensation at a total disability rating or, from collection year 2020, a combined rating of 80% (40% from 2027). Before 2016 the veteran text can be read more than one way, so generic disability is kept for veterans in those years. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
nyc_school_tax_credit.yaml and the NYC school tax credit reform tests asserted the first band carried forward at 0.171% (20.52 single, 36.936 joint) to 0.01; they now use the § 606(ggg)(4-b) bases of $21 and $37. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… base A single filer with $100,000 of wages has city taxable income of $92,000, so the rate reduction amount is $21 + 0.228% x 80,000 = $203.40, $0.48 more than before; NYC tax, SPM taxes and SPM net income move by $0.48. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
PR Review: Follow the statute for the NYC school tax rate reduction, IN supplemental homestead, VA 529 and WA senior/disabled property tax exemptionPR #10330 (author: MaxGhenis), head
The PR has no comments or reviews yet. It touches no partner test file. Path prefixes:
Sources read for this review (all fetched 2026-10-21):
SummaryWhat is right. All four changes follow the governing statute in the years the PR claims. None of them is a statute-versus-form conflict: in each case the agency's form or guidance agrees with the statute, and the old model matched neither.
There are no critical findings and three should-address items:
There are also six suggestions: Virginia default and guard, Virginia age-70 wording, Indiana citation and pre-2026 gating, NYC follow-ups including an unrecorded $62.50/$63 conflict, the Washington age threshold, and the PR body. Status.
Critical (must fix)None. Should addressS1. The Axiom line
|
DTrim99
left a comment
There was a problem hiding this comment.
All four changes follow the governing statute in the claimed years (NYC 606(ggg)(4-b), IN 6-1.1-20.6-7.7, VA 58.1-322.03(7), WA 84.36.381(3)(a)), and 22 expectations hand-check. Three should-address items: (1) the 'pending: hub files parity' axiom line is invalid; (2) the new IN and WA inputs default to off, so the IN credit is $0 and the WA disability and veteran pathways close for every household (microsim included) unless they're set, so derive the defaults; (3) pre-2016 WA veterans still qualify on generic is_disabled. Six suggestions. Full report in the comment above.
Fixes #8947
What and why
Four verified model bugs from the statute-first backlog (statute governs, forms fill gaps; ruled 2026-10-19). Each section gives the source, the change, a witness, and the years.
1. NYC school tax credit rate reduction amount: statutory second-band bases (
us-nyc-school-tax-credit-rate-reduction-base, 2017+)rate_reduction/amount/{threshold,base}(by filing status) and{first_band_rate,excess_rate}, from 2017-01-01. The formula is 0.171% x T for T not over the threshold, else base + 0.228% x (T - threshold). Income equal to the threshold stays in the first band. Eligibility and the $500,000 limits are unchanged.income_tax_elimination/integration.yamlre-enables thenyc_school_tax_creditandnyc_income_taxassertions that were commented out because of this bug. The differential invariant test's tolerance drops from 0.5 to 0.001. Tests that had pinned the old carry-in to 0.01 now use the statutory bases:nyc_school_tax_credit.yaml(single $441,000: 998.64 to 999.12; single $272,000: 613.32 to 613.80; joint $482,950: 1,088.81 to 1,088.878), the two NYC school tax credit reform files undercontrib/local/nyc/stc/, andspm_unit_local_tax.yaml(single, $100,000 wages: NYC tax down $0.48).2. Indiana supplemental homestead credit: qualification, homestead base, referendum exclusion (
us-in-supplemental-homestead-proxies, 2026+)real_estate_taxes, $300), with no qualification gate, no homestead-only base and no referendum exclusion.in_supplemental_homestead_credit_eligible(7.7(b) qualification),in_homestead_property_tax_liability(the homestead's liability after earlier credits and before this one) andin_homestead_referendum_property_tax. Credit = eligible x min(0.1 x max(liability - referendum, 0), $300).real_estate_taxes$3,000, no homestead qualification: $0 (main: $300). Eligible, homestead liability $2,000, referendum $1,000: $100 (main: $200 on $2,000 of taxes).3. Virginia Commonwealth Savers deduction: per-account cap and carryforward (
us-va-529-deduction-owner-and-line, 2024+)va_529_plan_deduction_capped_amount(sum over owned accounts of min($4,000, contributions + undeducted carryforward)) andva_529_plan_carryforward. When account-level amounts are not supplied, the capped amount defaults to min(contributions + carryforward, $4,000 x accounts): an even split across accounts, the largest deduction any split of the same totals allows. Under 70 the deduction is the capped amount; from 70 it is contributions plus carryforward. Owner and dependent masks are unchanged.4. Washington senior and disabled persons property tax exemption: statutory disability and veteran pathways (
us-wa-pte-disability-proxy, 2008+)age >= threshold | is_disabled: a working 45-year-old withis_disabledqualified, and a compensated 80% veteran withoutis_disableddid not.wa_pte_retired_due_to_disability,wa_pte_receives_va_disability_compensation,wa_pte_va_service_connected_ratingandwa_pte_va_total_disability_rating; parametersveteran/combined_rating_threshold(none before 2020, 0.8 from 2020, 0.4 from 2027) andveteran/rating_requirement_in_effect(from 2016). Every VA pathway requiresis_veteran. Thewa_pte_categorical_eligible.pyentry leaves the source-conflict ratchet'sKNOWN_UNMARKED, since the "in practice" comment is gone.is_disabled, not retired, $5,000 tax on a $500,000 home: not eligible, $0 (main: $3,600). Retired by reason of disability: $3,600. Compensated veteran rated 40%: not eligible in 2026, eligible in 2027.is_disabledfor veterans in those years. The non-veteran disability-retirement rule is unambiguous from 2008 and applies to every year.Invariants
test_va_529_invariants.py).is_disabledalone never qualifies a non-veteran.Test plan
ce9377ee80before the fix.29778a23d8or with identical model code:wa_pte_categorical_eligible.yaml: 21 passednyc_school_tax_credit_rate_reduction_amount.yaml: 16 passedva_529_plan_deduction.yaml: 16 passedin_supplemental_homestead_credit.yaml: 11 passedspm_unit_local_tax.yaml: 4 passed (case 1 updated from the run's float32 outputs)income_tax_elimination/integration.yaml: 6 passedin_blind_disabled_property_tax_credit_in_aggregate.yaml: 2 passedtests/code_health/test_source_conflicts.py: 102 passed, 1 failed. The failure istest_conflict_sounding_comments_do_not_grow, which flags FL and SD LIHEAP files this branch does not touch, so it also fails on main. None of this PR's files is flagged, so removing the WAKNOWN_UNMARKEDentry is consistent.nyc_school_tax_credit.yaml,contrib/local/nyc/stc/adjust_income_limit_by_filing_status_and_eligibility_by_children.yamland..._joint_override.yaml,household/state_property_tax_credits/in_supplemental_homestead_credit_in_aggregate.yaml, the WAintegration.yaml,wa_pte_eligible.yamlandwa_senior_disabled_property_tax_exemption.yaml, andtest_nyc_school_tax_credit_income_test_invariants.py. Unedited but affected:nyc_school_tax_credit_rate_reduction_amount_eligible.yaml, VAplan_529/integration.yamlandtests/core/test_va_529_invariants.py. CI covers these.ruff format/ruff checkon changed files.changelog.d/.Proposed follow-up (not in this PR)
age_threshold.yamluses 62 before 2020, but the 2008 and 2015 texts of RCW 84.36.381(3)(a) already say sixty-one.axiom: pending: hub files parity
🤖 Generated with Claude Code