Repository navigation
Conversation
* Add Oregon LIHEAP regular heating assistance * Make Oregon heating test inputs explicit and count railroad income * Clarify Oregon LIHEAP disability income and verify manual examples * Align Oregon LIHEAP income receipt and payment coverage * Fix issues from review: floor the income band, registry order, realistic tests Floor the income band before the payment-table lookup so units outside Oregon index a valid key in mixed-state simulations, and add a two-state case. Place Oregon between IL and TX in programs.yaml. Give the integration cases plausible wages and heating bills with derivations from the PY2026 manual. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> * Count farm rent and survivor income in Oregon LIHEAP * Tidy Oregon LIHEAP parameters and tests Write parameter date keys unquoted, wrap each variable's documentation string across lines, add digit separators to test values, name and comment every test case against the manual, and split the household-size sweeps so each size is asserted once: odd sizes in the income-limit test, even sizes in the benefit-matrix tests. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> * Address review round 1 on Oregon LIHEAP - Encode the PY2025 (2024-10-01) and PY2027 (2026-10-01) payment matrices, bands and limits beside FY2026; fuel oil, propane and wood carry the region level; verified_years "2025-2027". - Pay kerosene from the heating oil column and solar from electricity. - Apply the 60% SMI ceiling to the product rounded to cents. - Add partnership/S-corp income to the earned sources and military retirement pay to the unearned list; floor every unearned source. - Add cases for PY2025 and PY2027, odd household sizes, public-housing heat in rent, age 18, per-member interest and the Region 2 fallback. - Retarget references, re-template descriptions and align the registry. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> * Address review round 2 on Oregon LIHEAP - Floor each member's unearned sources before the household sum and add the unit-level TANF amount in the formula. - Add the even-size FY2026 limit case, the PY2027 size 12 Region 2 row and a two-member rental case. - Cite the PY2025 and PY2027 manuals on the limit, payment, band and region variables. - Write consecutive pages as #page ranges in reference titles and drop single pages from titles. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> * Address review round 3 on Oregon LIHEAP Add the Region 2 benefit matrix and the larger-household-size pages to the amount, income band and region references so every modeled value is reachable from a href; drop page text from single-page titles; describe the unearned source list as person-level. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> --------- Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
* Count capital gains once in Arizona property tax credit income az_property_tax_credit_income added capital_gains_excluded_from_taxable_income on top of federal AGI. That variable is the part of federal taxable income taxed at the capital gains rates; when taxable income is zero it is the whole net capital gain plus qualified dividends. Federal AGI already holds those amounts, so they counted twice, mostly for the low-income seniors the credit is for. ARS 43-1072(H)(6)(b) adds "the amount of capital gains excluded from adjusted gross income". A.A.C. R15-2C-502(C)(3), ITR 12-1 item (7) and the 2021-2025 Form 140PTC instructions (Part 1 line D) count each member's net gains and losses from sales or exchanges of property, which federal AGI holds. The model has no gain excluded from federal AGI, so the entry is removed. Adds Form 140PTC line-by-line YAML tests and seeded property tests (differential against a line A-J reference, counted once, independence from the preferential-rate amount, credit monotone in gains). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Count dependents' income in Arizona property tax credit income Review r1b: federal AGI (irs_gross_income) leaves out every tax-unit dependent's income. The removed preferential-rate amount summed all members' gains and qualified dividends, so it had been counting a dependent's gains; without it a claimant whose child had $3,000 of gains got $502 instead of $412. A.A.C. R15-2C-502(A)(2) and (B) count every household member's income whether or not the member is a dependent, so az_property_tax_credit_dependent_income adds dependents' income from the same federal gross income sources, without Social Security (ARS 43-1072(I)). Also corrects the zero-taxable-income description: the preferential-rate amount is then the adjusted net capital gain. Adds dependent YAML cases and dependents to the sampled property tests. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Apply Arizona's $1,500 member capital loss limit and allow a negative line J A.A.C. R15-2C-502(C)(3), ITR 12-1 item (7) and the Form 140PTC line D instructions (2021-2025) limit each household member's net capital loss to $1,500. az_property_tax_credit_agi used federal AGI's capital gains and losses instead: non-dependents' net gains less a capital loss limited to $3,000 per return. It now swaps those for each non-dependent member's line D amount (new az_property_tax_credit_capital_gains, parameter capital_loss_limit). Dependents' line D amounts move into az_property_tax_credit_dependent_income with the same limit, in place of their gains floored at zero. The line J note in the instructions lets household income go negative and uses zero for the Schedule 1 and 2 amounts. az_property_tax_credit_agi no longer floors at zero; az_property_tax_credit floors income at the schedule lookup, where a single-amount scale would otherwise return 0 below its first threshold. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Cite the line J note where it appears: 2023-2025 instructions, page 5 The 2021 and 2022 instructions have no negative household income note; the floor at the schedule lookup applies in every year because the schedules start at zero. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Combine members' income before any floor in Arizona property tax credit income Review r2: federal AGI deducts every member's losses, dependents' included, but az_property_tax_credit_agi floored at zero before dependents' income was added, so a loss counted only against the claimant's or spouse's own income. A claimant with no income whose dependent had $3,000 of wages and a $1,000 capital loss got household income of $3,000 instead of $2,000. az_property_tax_credit_agi is no longer floored. Form 140PTC line J can be negative, and az_property_tax_credit uses zero for the Schedule 1 and 2 lookup (the same change as in #9770, so that PR rebases cleanly). Adds regressions for a loss on the dependent, on the claimant, a rental loss and a negative line J; the property sample now includes dependents' losses, raises a dependent's gains, and states its actual domain. Notes that the federal source list is not Arizona's (unemployment by paying state, estate income, strike benefits, nontaxable alimony). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Swap only the capital amounts federal AGI holds for Arizona line D Review r1 of #9770 found that az_property_tax_credit_agi added back limited_capital_loss even when federal AGI never deducted it (a reform that drops loss_ald from the above-the-line list, or loss_ald set to zero), manufacturing income. The swap now takes out only the positive capital gains irs_gross_income puts in AGI (per gross income source list) and the capital loss deduction loss_ald actually contains, then adds each non-dependent's line D. Gains a reform leaves out of AGI still count, as ARS 43-1072(H)(6)(b) adds them back. Line D now combines capital gain distributions reported without Schedule D with the member's other gains and losses before the $1,500 limit: they are long-term capital gains (26 U.S.C. 852(b)(3)(B)), and R15-2C-502(C)(3) nets each member's capital gains and losses. The dependent loop skips them so they count once. Tests: YAML cases for the two reforms, a zero loss_ald input, distributions for a claimant and a dependent, the three r3 finding-1 households (losses beyond $1,500 with tax-exempt income), and r3's estate/rental case, now right on main since #9633. Property sample adds distributions and signed rental income (dependents too) to the Form 140PTC oracle, uses only non-dependents' losses in the federal coverage check (#9647), and compares the preferential-rate mutation with an unmodified run (r1 nit). Corrects the spouse-netting comment (r1 nit). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Add back only loss_ald's capital part in Arizona household income Review r1 of the fold (GPT-6.1 Sol, 21cb189) found that min(limited_capital_loss, loss_ald) cannot tell loss_ald's capital part from its business part: a reform or supplied loss_ald that holds only a rental loss was reversed as a capital deduction ($2,500 / $323 instead of the form's $1,500 / $502). loss_ald's section 461(l) business part moves, unchanged, into a new limited_business_loss variable, and loss_ald adds limited_business_loss and limited_capital_loss (identical federal results). Arizona now adds back loss_ald less limited_business_loss, clipped to [0, limited_capital_loss]. Tests: a loss_ald case pins both parts; Arizona cases for a rental and capital loss together and for a supplied rental-only loss_ald; a pytest with a Reform whose loss_ald holds only rental losses. Both Arizona tests fail on 21cb189's formula. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Add the dependent IRA household now that #9801 is on main Delta review r2 asked for the r1 household as a regression once #9801 (keep dependents' above-the-line deductions off the filer's AGI) was in this branch. Claimant aged 70 with a 4,000 long-term gain; dependent with 1,600 wages and a 200 traditional IRA contribution: federal AGI 4,000, line J 5,600, no credit (Schedule 2 limit 5,501). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Leave the prior-year long-term carryover out of Arizona line D Delta review r3 (Sol, 2ea9d6b): #9841 added long_term_capital_loss_carryover, a memo amount that long_term_capital_gains already includes as a loss (Schedule D line 15). ITR 12-1 item (7) bars a prior-year carryover from reducing the year's gains for household income, so line D adds the carryover back before the $1,500 member limit. Federal AGI keeps it. Tests: three YAML cases (a carryover netting a gain, a carryover making the whole net loss, a dependent's carryover); the property sample draws carryovers with long_term_capital_gains net of them and the Form 140PTC oracle adds them back. All fail on the previous formula (3 YAML, 4 property). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Cover dependent Arizona capital-gain changes (#9762) Preserve all 80 original sampled households and their independent line-D oracle. Add dependent gain and loss perturbations for the 26 households with dependents in the same simulations, preserving member loss floors and filer/dependent accounting. Use the educator deduction variable introduced on main in the test that removes loss_ald from the federal deduction list. Expected outputs and public carryover inputs remain unchanged. * Clarify Arizona capital input convention and consolidate release notes * Test bounded whole-dollar parity of federal loss extraction * Test bounded whole-dollar parity of federal loss extraction * Pin d1107 terminating-trust carryover treatment for Arizona credit --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
* Fix default QBI qualification of estate and trust income * Update the estate-income net-income invariant for the new QBI default The invariant from #9633 assumed unspecified estate income earns the 20% QBI deduction. This PR makes unreported QBI zero by default (Treas. Reg. 1.199A-6(b)(3)(iii), applied to beneficiaries by 1.199A-6(d)(1)), so the test now covers both paths: by default income tax rises $1,200 and net income $8,800; with estate income reported as qualified business items, tax rises $960 and net income $9,040. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
* Name Ziming Hua as the approver for partner test edits Max Ghenis delegated the partner API contract test gate to Ziming Hua (@hua7450) on 2026-10-09 for all partner test cases. Update CLAUDE.md, AGENTS.md and the partners folder's AGENTS.md so agents put the three questions to Ziming on the PR that causes the change, instead of asking the session user, and do not merge partner test changes until he approves. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Cover Ziming as session user and tighten the partner-test gate wording Address review: when Ziming is the person an agent works with, his yes to all three questions is the go and the approval, recorded in a PR comment. "Approved" means an approving review on a head that contains the edits. Say "agent teammates" so the rule no longer reads as barring human team members, and use sentence-case headings. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Make the Ziming-as-session-user path match the merge rule Address review P3s: Ziming sees the changed cases before answering, and his recorded answer counts as approval of those edits, so the merge rule holds. Use "agent teammates" in both AGENTS.md files, matching CLAUDE.md. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
* Add California itemized conformity regression households * Use California charitable and miscellaneous itemized deduction rules * Exclude federal nonitemizer charity amounts from California itemized deductions * Preserve signed income before California AMT add-backs
* Fix IRA compensation limits and employer-plan deduction phase-outs * Add statutory IRA formula differential checks * Infer IRA employer-plan coverage from qualifying contributions * Count supplied IRA contributions, deduct dependents' IRAs, fix MN and MI add-backs Address review r1 on the IRA 219(g) PR: - ira_contribution_limit and ira_contribution_scale now count actual contributions supplied as inputs (read from simulation.input_variables, never through their formulas) before generated ones, so a supplied Roth contribution consumes the spouse's shared compensation under 219(c)(1)(B) and a person's own 408A(c)(2) dollar limit. - Dependents get their own-return 219 deduction (dependent_traditional_ira_deduction), used in dependent_taxable_ss_magi after the ALD rename dropped it. It is figured on the dependent's own limit, so it never reads the filer's filing status (which depends on dependency and would cycle). - Minnesota M1PR line 3 adds back the federal IRA deduction (Schedule 1 line 20), not total contributions. - Michigan's Schedule 1 adjustment list names traditional_ira_deduction; the rename had silently dropped the IRA adjustment from household resources. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Recognize set_input contributions; phase out dependents by spouse coverage and Social Security Address delta review r2: - Supplied IRA contributions are detected from core's record of user set_input calls as well as construction-time inputs, so a contribution set after the simulation is built consumes the limit. - A dependent living with a covered spouse is phased out on the separate schedule even if not covered (IRC 219(g)(1), Pub. 590-A Table 1-3). - The dependent's IRA modified AGI includes taxable Social Security figured before the deduction (IRC 219(g)(3)(A)(i), Pub. 590-A Appendix B). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Record dependents' own IRA deduction, keep user-set inputs in branches, fix tests Address delta review r3 and the first full CI run: - traditional_ira_deduction now carries a tax unit dependent's own-return deduction (dependent_traditional_ira_deduction). Person-level consumers such as medicaid_adjusted_gross_income_person see it again, and the filers' above-the-line total still sums the head and spouse only. - Counterfactual branches (marginal tax rates, component MTRs, capital gains responses) keep inputs set through set_input after construction, using core's record of user inputs, so a branch no longer regenerates a different IRA allocation alongside the earnings bump. - Tests that supplied IRA contributions without compensation (Puerto Rico retirement deduction, saver's credit) now give the contributor compensation, as 26 U.S.C. 219(b)(1)(B) requires. - Tests on main that named the old deduction entry (Michigan Schedule 1 adjustments, the non-dependent projector, dependent above-the-line invariants) name traditional_ira_deduction. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Merge main and update expected values for merged #10027 and #10034 CI on e29860a failed four cases in Full Suite - Baseline (irs), and merging main (which now has #10027 and #10034) moves two more: - Scenario 110 (estate_income_would_be_qualified.yaml and policybench_ira.yaml) is a two-cause QBI + IRA cell; with both fixes its federal tax is the PolicyBench target, 25,747.77. - dependent_traditional_ira_deduction.yaml and ira_phase_out.yaml now expect the dependent's own-return deduction on traditional_ira_deduction. - Scenarios 005 and 099 state tax include #10034's California conformity. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Update #10034's California pins for the two-cause CA + IRA cells ca_itemized_deductions_pre_limitation.yaml (merged with #10034) pins PolicyBench scenarios 005 and 099 state tax at California-only values. With the IRA phase-out as well, they move to the same two-cause values as policybench_ira.yaml (40,683.11 and 4,441.45). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Keep only IRA contribution inputs set later in MTR branches Address review r4: user_set_variables kept every variable core recorded in _user_input_keys, but model formulas also call set_input internally (the SSA revenue formulas set tax_unit_taxable_social_security). On Core 3.32.8, which records those calls, an MTR branch calculated after an SSA revenue variable kept a stale taxable Social Security amount. The helper now adds only the IRA contribution variables, the ones ira_contribution_limit reads as supplied, to the construction-time inputs. test_marginal_tax_rate_ignores_internal_set_input_calls states the invariant; Core 3.32.15 does not record internal set_input calls, so the leak reproduces only on older Core. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…tions (#10026) * Fix Wisconsin retirement election reporting and capital gain distributions * Handle retirement elections with no permitted refundable credits * Exercise Wisconsin invariants with leaf income inputs
…I-1040CR lines 14-27, 30 and 31) (#9796) * Net capital gain distributions inside the capital loss limit A filer with capital losses or other capital gains enters capital gain distributions on Schedule D line 13 (2025 Instructions for Schedule D), so they net against the losses before the 26 U.S.C. 1211(b) limit on line 21. The model added distributions (non_sch_d_capital_gains) to gross income and deducted min(3,000, losses) separately: a 5,000 long-term loss with 3,000 of distributions gave 0 in AGI instead of -2,000. - capital_losses_allowed_against_gains (new): losses allowed up to the gains in gross income, distributions included (1211(b), first part). - limited_capital_loss: the net loss up to the limit (1211(b)(1)-(2), Schedule D line 21). loss_ald deducts both. This also nets spouses' gains and losses on a joint return. - loss_limited_net_capital_gains (+ person version): Form 1040 line 7a, max(-limit, LT + ST + distributions). Net investment income no longer adds the distributions separately (Form 8960 line 5a). - has_qdiv_or_ltcg: qualified dividends, or Schedule D lines 15 and 16 both above zero (Form 1040 instructions, line 16). - dependent_taxable_ss_magi: the same netting on the dependent's return. - dc_self_employment_loss_addition: subtracts both capital parts of loss_ald. Tests: YAML cases with form line comments; grid, Hypothesis property and monotonicity tests. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Count distributions inside Schedule D in the NII invariant reference filer_loss_limited_net_capital_gains (from #9784) now nets the head and spouse's capital gain distributions with their Schedule D gains and losses before the 1211(b) limit, and net investment income no longer adds the distributions separately. The invariant test's reference computation follows: distributions move from the person-level Form 8960 amounts to the Schedule D inputs. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Test the netting when a reform drops a gross income source capital_losses_allowed_against_gains counts only the capital gains that gov.irs.gross_income.sources includes, and dependent_taxable_ss_magi nets distributions only when both sources are listed. Cover both branches with reforms that drop non_sch_d_capital_gains or capital_gains. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Address review: Michigan adjustments, filer-only worksheet test, floors From the independent review of #9788: - mi_household_resources subtracted all above-the-line deductions, including the capital loss already netted in the capital gains line (MI-1040CR line 30 is U.S. Schedule 1 adjustments only). It now leaves out capital_losses_allowed_against_gains and limited_capital_loss. The two existing loss-limit cases double counted the loss: 44,000 -> 47,000 and 47,000 -> 48,500. - has_qdiv_or_ltcg figures Schedule D lines 15 and 16 over the head and spouse, so a dependent's loss cannot switch off the filer's worksheet. - Distributions are floored at zero per person in every line 7a variable (box 2a is not negative), as irs_gross_income does. - Capital losses are deductible only while capital_gains is a gross income source, matching dependent_taxable_ss_magi under such a reform. - Test that the two loss-limit parameters agree; rename the #9784 invariant test that no longer compares with the pre-change formula. - loss_ald label: "Business and capital loss ALD". Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Follow 1211(b) in the #9647 invariant and a Maryland surtax test CI caught two tests written against the old capital loss formula: - test_dependent_losses_agi_invariants (#9647) compared limited_capital_loss with min(cap, sum of losses), which does not net one spouse's gains against the other's losses. Its reference now splits 1211(b) the same way: losses allowed up to the gains, plus the excess up to the cap. Renamed ..._match_all_member_formula. - md_capital_gains_surtax "partial offset" set capital_losses (a formula variable, max(0, -capital_gains)) to 50,000 next to 150,000 of net gains, a state no inputs can produce, and its comment applied the $3,000 cap to losses within gains. It now inputs the short-term loss directly (30,000 gains less 50,000 losses = -20,000): Schedule D line 16 and Form 502CG line 1 are 100,000, surtax 2,000 (same on main). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Net Michigan business and rental losses on MI-1040CR lines 16 and 17 MCL 206.508(4) adds back "any net business loss after netting all business income and loss" and "any net rental or royalty loss". The MI-1040CR nets line 16 (Schedule C, Form 4797 Part II, Schedule E Parts II and III, Schedule F) and line 17 (Schedule E Parts I and V) and floors each total at zero. Line 30 is the U.S. Schedule 1 adjustments, so loss_ald, which holds business, rental and capital losses, is no longer subtracted there. Estate and trust income and Form 4797 ordinary gains now count on line 16. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Keep dependents' business and rental items off Michigan lines 16 and 17 MCL 206.508(3): "'Household' means a claimant and spouse." Netting every tax unit member's sources let a dependent's business or rental loss offset the claimant's income (a 15-year-old's Schedule C loss of 20,000 took the claimant's household resources from 70,000 to 50,000). Lines 16 and 17 now sum only non-dependents, as loss_ald and irs_gross_income do. Tests: three dependent YAML cases and a deterministic dependent property test. The loss_ald reform check now runs once, on the grid, instead of on every Hypothesis example; test_properties drops from 931 s in CI to about 8 s. The deterministic tests no longer need hypothesis. Small inputs are drawn at $100 or more, the tolerance docstring is corrected, and comments list Schedule E Part IV (REMIC) on line 17. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Count only the claimant and spouse in Michigan household resources MCL 206.508(3) defines the household as "a claimant and spouse", and the MI-1040CR asks for the income "you and your spouse received". Every household resources source except lines 16 and 17 was summed over all tax unit members, so a dependent's wages, interest, pensions and capital gains raised the claimant's household resources, and a dependent's Schedule 1 adjustments (such as the deduction for half of self-employment tax) lowered them. - Sources are summed over the head and spouse with tax_unit_non_dep_add. - Line 21 (Social Security, SSI and railroad retirement, including amounts received for minor children or dependent adults), line 22 (child support) and line 27 (public assistance paid to the household) still count for every member, as the form says. - Line 19 reads filer_loss_limited_net_capital_gains, the head and spouse's Schedule D. - Line 30 sums the head and spouse's Schedule 1 adjustments, with the self-employment adjustments read per person. - Line 31 premiums paid for the family are unchanged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Give the membership property tests an explicit FIP grant With no income, the model computes a Michigan FIP grant (tanf) for the test household, which counts on line 27 but was missing from the test's reference. Each SPM unit now gets a tanf input, drawn at random in the Hypothesis test and counted in full on line 27 of the reference. The Hypothesis tests also run more examples (50 and 30). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Keep dependents' above-the-line deductions off the filer's AGI irs_gross_income leaves tax unit dependents' income off the filer's return, but self_employment_tax_ald, self_employed_health_insurance_ald and self_employed_pension_contribution_ald summed every member's person-level amount, and above_the_line_deductions summed every member's IRA contributions, early withdrawal penalty, educator expenses, adoption assistance and education bond interest. A dependent's Schedule SE and Schedule 1 deductions belong on the dependent's own return. - The three self-employment aggregates sum their _person variables over non-dependents; alimony_expense_ald masks dependents. - above_the_line_deductions sums gov.irs.ald.deductions with tax_unit_non_dep_add. - Readers that sum the ALD list themselves do the same: taxable_ss_magi, taxable_uc_agi, student_loan_interest_ald_magi, adjusted_gross_income_person and ma_part_b_agi. - mo_adjusted_gross_income takes personal ALDs over non-dependents, so its remaining-ALD allocation never goes negative. - medicaid_adjusted_gross_income_person attributes a dependent's own person-level deductions to the dependent instead of the head. - ma_gross_income_loss_adjustment leaves out dependents' losses, as the federal gross income it adjusts does. The _person variables keep each person's own amount, which a dependent's own return (dependent_taxable_ss_magi) uses. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Test that the ALD total stays between 0 and the all-member sum Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Read the federal Schedule 1 aggregates on Michigan line 30; reformable member lists Review r1: - Line 30 reads the tax-unit adjustments as they are, so supplied inputs and reforms of self_employment_tax_ald and the other aggregates are respected. #9801 (merged in) makes those aggregates and alimony_expense_ald leave dependents out. - The every-member sources (lines 21, 22 and 27) move to a parameter, gov.states.mi.tax.income.household_resources_all_members, and a source defined for a group larger than the tax unit (an SPM unit amount) is aggregated as a household amount, so a reform cannot hit an entity error. - gi_cash_assistance counts only for the claimant and spouse: nothing shows a pilot payment is public assistance paid to the claimant's household. - Tests: dependent alimony and guaranteed income YAML cases; property tests always have a dependent and a positive-resources household; a reform test. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Add the combined #9781 regression case, a joint Maryland surtax case, and move the distributions comment Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Use tax_unit_non_dep_add for lines 16 and 17; describe the dependent change in the changelog Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Keep a supplied net_capital_gains amount on the filer's line 7a; add aggregate-input cases Review r1 finding 1: filer_loss_limited_net_capital_gains summed the head's and spouse's components, so a tax unit net_capital_gains input was ignored (wages 10,000 plus a 5,000 aggregate gain gave 10,000, not 15,000). It now takes net_capital_gains less the dependents' own gains and losses. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Document supplied net_capital_gains on the filer's line 7a; add NII and SE health insurance cases Review r2 follow-ups: a supplied net_capital_gains reaches net investment income (YAML case), a supplied self-employed health insurance deduction comes off Michigan line 30 (YAML case), and the variable documents how a supplied total combines with dependents' person-level gains. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Pass include_dependents on Michigan line 30; test a dependent's positive Schedule C and F income With #9801 on main: line 30 sums gov.irs.ald.filer_amounts_recorded_on_dependents over every member, as above_the_line_deductions does, and the losses test now draws positive dependent Schedule C and F income, whose self-employment tax deduction is on the dependent's own return. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Use shared filer Schedule D lines without dependent rounding drift * Preserve supplied capital gains without rounded residuals * Recognize Michigan dependent pension SSI interaction (d1143) * Compute dependent SSI in Michigan retirement regression * Cite the 2025 MI-1040CR-7 book for Michigan household resources michigan.gov has removed the 2025 home heating credit book (TY2025/MI-1040CR-7-Book.pdf now returns 404), so cite the Wayback Machine capture of 2026-02-18. It is byte-identical to the NBER TAXSIM mirror (sha256 f540a3dd...). Its total household resources lines 17-33 say the same as MI-1040CR lines 14-31 about whose income counts: "you and your spouse", Social Security "for minor children or other dependent adults who live with you" (line 24), child support and foster care payments (line 25), MDHHS payments "made to your household" (line 30), and premiums "for yourself and your family" (line 33). References only; no formula or value changes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
- Property tax relief (R.I. Gen. Laws 44-33-3): the claimant is a filer aged 65 or older or disabled who is not claimed as a dependent; household members choose the claimant, so either spouse qualifies, but the age or disability and the dependency test belong to the same person. - 2021-return child rebate (44-30-103(b)(1)): only children the taxpayer "validly claims as a dependent", and a return with a claimable filer has none (IRC 152(b)(1)). The exemptions, EITC and care credit already follow the federal fixes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ndent The dependent exemption (S.C. Code 12-6-1140(13): dependents must meet IRC 151 and 152) and the under-six deduction (12-6-1160) are zero on a return where the filer, or either joint spouse, can be claimed (IRC 152(b)(1)). The EITC and care credit already follow the federal fixes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The taxpayer credit's qualifying dependents (Utah Code 59-10-1018(1)(c): those for whom the claimant is allowed an IRC 24 credit), its birth-year additional dependent and the at-home parent credit's qualifying child (59-10-1005) are zero on a return where the filer, or either joint spouse, can be claimed (IRC 152(b)(1)). The child tax credit and EITC already follow the federal fixes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Personal exemptions (32 V.S.A. 5811(21)(C)): no dependents on a return where the filer, or either joint spouse, can be claimed (IRC 152(b)(1)); the own and spouse exemptions already excluded a claimable filer. - Child tax credit (5830f): requires federal child tax credit entitlement for an IRC 152(c) qualifying child; the identification-number waiver does not reach 152(b)(1), so a return with a claimable filer gets none, and a young member who is not a dependent no longer counts. - Renter credit (6066): the claimant may not be claimed as a dependent, but an unclaimed spouse can be the claimant; fair market rent is for a number of bedrooms equal to the personal exemptions (6066(b)(2)). - Student loan interest (5811(21)(B)(vi), (29); IN-112 line 16): from 2022 Vermont subtracts the qualified interest paid less the federal deduction, for AGI up to $200,000 joint or $120,000 otherwise. The model subtracted the raw interest from 2021, deducting it twice for filers who took the federal deduction; a claimed filer, who gets no federal deduction (IRC 221(c)), now subtracts the whole amount. The EITC and care credit already follow the federal fixes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…dent - Personal exemptions (W. Va. Code 11-21-16): $2,000 per exemption a filer may claim (none for a claimable filer, no dependents on a return where either joint spouse can be claimed), and a single $500 when the return has none (IT-140: "If box e is zero, enter $500"). The model counted every member. - Low-income family credit (11-21-22a): family size is the number of exemptions that may be legally claimed, and a return with zero exemptions cannot claim the credit. The care credit already follows the federal fix. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Standard deduction (Wis. Stat. 71.05(22)(f)): when the filer, or either joint spouse, can be claimed, the lesser of the ordinary deduction and the greater of $1,350 or earned income plus $450 (2025; indexed as the federal amounts), on both the regular and the retirement-exclusion paths. - $250 exemption (Form 1 line 10b): only for a filer aged 65 or older who is allowed the $700 exemption, so each spouse is tested separately. - Homestead credit (71.53; Schedule H): the claimant is the spouse who is 18 or older, has earned income or is 62 or older or disabled, and is not claimed as a dependent unless 62 or older; the $500 household-income deduction counts no dependents on a return with a claimable filer. The $700 exemption and care credits already follow the federal fixes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Swap invariance, monotonicity and identities (dependent-based amounts are zero on a return with a claimable filer; a return whose every filer is claimed gets no RI relief or VT renter credit and West Virginia's single $500 exemption), plus the changelog fragment. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Utah Code 59-10-1005(2) allows $100 "for each qualifying child if ... the claimant or another claimant filing a joint individual income tax return with the claimant is an at-home parent". The model multiplied the credit by the number of spouses earning $3,000 or less, doubling it for such couples; the existing two-parent test asserted $400 for two children and now expects $200. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
32 V.S.A. 5830f(b) reduces "the amount of the credit per child" by $20 for each $1,000 of AGI over $125,000; the model reduced the total once, so a family with two young children at $150,000 got $1,500 instead of $1,000. The existing phase-out and age cases used the filer as the child; they now have a parent and a child, since 5830f counts IRC 152(c) qualifying children. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…nt exemption reform When in effect, the contributed reform recounts is_tax_unit_dependent itself; it now applies the same IRC 152(b)(1) gate as the baseline ut_total_dependents, as the federal branch did for the HI, WI and Treasury reforms. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Add elective deferral credit regressions and differential coverage * Exclude pretax payroll deductions from EITC and ACTC earnings * Fix YCTC zero-income wage ceiling for elective deferrals * Assert California YCTC parity wage intermediates
…02) (#10040) * Deem SSI resources from ineligible spouses and parents (20 CFR 416.1202) meets_ssi_resource_test compared only the person's own countable resources with the individual limit (or the marital unit's sum for a joint claim). Federal rules also count an ineligible coresident spouse's resources against the couple limit (416.1202(a), 416.1205) and, for a child under 18, the parents' resources above the individual or couple limit (416.1202(b)), divided among eligible children (POMS SI 01330.200). Adds the deemed-resource variables, 38 YAML cases built from the regulation and the POMS examples (Ryder, White, Blake, Goode), and Simulation-API invariants over 578 households: no-deemor cases match the previous formula, more resources never turn a failure into a pass, higher limits never turn a pass into a failure, and deemed amounts are never negative. Fixes #3557. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Identify parents by relationship, exclude immigration-ineligible children, drop the absence input Review round 1 (HOLD) found four defects: - Parents were taken from the child's tax unit. With parent links, deemors are now the co-resident parents the links name, wherever their tax unit, plus each parent's established co-resident spouse; children divide the excess with the children who share exactly those deemors. Without links the tax-unit proxy uses only unlinked parents, as the parent-link contract requires. - A child who fails SSI's citizenship or qualified-noncitizen condition shared the parental excess; that condition now gates the division. - Spouses stay identified as income deeming identifies them (marital-unit partners who are tax-unit heads or spouses); a case pins that a situation omitting marital units does not deem a parent's resources as a spouse's. - The temporary-absence input pulled nonresident tax-unit members into the household; it is removed, and household membership decides. The invariant tests now compare the model with closed-form oracles over the grids, and fail when either deemed-resource formula is zeroed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Establish a parent's spouse without the tax-filing chain head_spouse_count reads filing_status, whose formula reaches dependents' gross income and retirement-contribution limits. Reading it from parental deeming made every SSI eligibility calculation compute that chain; Maine's SSP integration test then failed on a 401(k) limit parameter missing for 2011. tax_unit_married is exactly when filing_status is JOINT and needs only tax-unit roles. A new test asserts that computing the SSI resource test never computes filing_status; it fails on the previous commit. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Use one spouse rule for spousal and parental deeming; count a parent's spouse in another tax unit Review round 2 (HOLD) found: - The claimant's spouse was any co-resident tax head or spouse in the claimant's marital unit, while a parent's spouse needed marriage evidence, so one couple could be married for one rule and not the other. Omitting marital units made a co-resident head of another tax unit a spouse, and a married claimant who is a tax dependent escaped spousal deeming. - Without parent links, a parent's established spouse in another tax unit was dropped. Both deeming paths now use one helper (_ssi_spouses.py): the other head/spouse of a married tax unit sharing the marital unit, a two-person marital unit with cohabitating_spouses on either tax unit, or two dependents of one tax unit sharing a two-person marital unit. The no-link parental pool adds a parent's established spouse wherever they file. Five new YAML cases and two new invariant tests (a co-resident head with marital units omitted equals the prechange test; a parent's spouse in another tax unit matches a closed-form oracle with and without cohabitation) all fail on the previous commit. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Identify spouses by the marital-unit contract; count every deemor's spouse; key pools on full deemor sets Review round 3 (HOLD) found: - A parent filing apart from the stepparent who claims the child was dropped: only a named parent's outside spouse was added. - Two aged, blind or disabled spouses who are both tax dependents never had their resources combined. - Couples in an explicit two-person marital unit who file separately were not spouses without a cohabitation flag, although a marital unit is by definition a married, cohabiting couple. - A situation that omits marital units married a child to the parent who claims them, so the child escaped parental deeming. - Pools with more than four deemors were keyed by tax unit, so children sharing the same six deemors divided separately. Spouses are now the members of a two-person marital unit, or the head and spouse of one tax unit sharing a marital unit, never two people of whom exactly one is a dependent of the tax unit they share, nor a linked parent and child. The same test decides whether a child is married. A spouse's resources count against the couple limit whenever the claim is not already joint. Every deemor's spouse who files elsewhere is added, and pool keys hold the full sorted deemor set. New and rewritten YAML cases (six fail on the previous commit) and two rewritten invariant tests cover these. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Trust explicit marital units, drop income-ineligible children from the split, keep exclusions to ineligible spouses Review round 4 (HOLD) found: - With tax roles omitted, the model inferred one spouse as the parent's tax spouse and the other as a dependent, and the dependent exclusion then vetoed an explicit marriage (adults and a married 17-year-old). - A sibling ineligible on their own income still shared the parental excess. - An aged, blind or disabled spouse outside a joint claim got the exclusions 416.1202(a)(2) gives only an ineligible spouse. The dependent exclusion now applies only when the simulation has a single marital unit, the only case where the unit may be the default group. A child whose countable income (with parental deeming) reaches the payment does not share the excess; neither variable reads the resource test. An aged, blind or disabled spouse's resources count in full. Four new YAML cases fail on the previous commit. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Deem the excess to income-ineligible children while leaving them out of the split Review round 5 (HOLD) found: - The round-4 income guard sat in the child gateway, so an income-ineligible child stopped having parental resources deemed and could pass the resource test, reaching state supplements that read it. - A disabled spouse who fails the citizenship condition lost the ineligible-spouse exclusions. - The two-person married-minor case was undocumented. The income guard now only removes a child from the count that divides the excess; every deeming child is deemed the eligible children's share, or the whole excess when none is left. A spouse keeps ineligible-spouse exclusions unless aged, blind or disabled and meeting the immigration condition. The spouse helper and changelog state the married-minor limitation. Three new or changed YAML cases fail on the previous commit. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…ification base (#10082) The 2025 Schedule M line 47 box (c) is income not included in lines 35 to 46, capped at $8,000, less the person's lines 29 to 34. The model capped the person's whole federal AGI, so income subtracted on those lines could be subtracted twice. Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…er credit income (#9915) * Align Montana separate-filing allocations and the elderly credit with the forms - Federal income tax deduction (through 2023): attribute federal tax to the spouse who earned the income and cap each spouse at $5,000, instead of prorating the jointly capped amount by Montana AGI (2022 Form 2 instructions, Itemized Deductions Schedule, line 4). - Child and dependent care expense deduction (through 2023): phase out on the couple's combined Montana AGI and split the result equally only for spouses filing separately on the same form; a single filer and a joint return take the whole deduction (Form 2441-M lines 3-7). - Elderly homeowner/renter credit: count federal AGI without regard to losses (MCA 15-30-2337(9)(a); Form 2EC line 9). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Update the 2021 Montana rebate case for per-spouse federal tax deductions Each spouse filing separately on the same form deducts their own federal income tax up to $5,000, so both spouses itemize and Montana tax is 6,295.56. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Address review: no care deduction on a separate form; name the 2023 schedule - A married person filing on a separate form (federal filing status SEPARATE) cannot take the child and dependent care expense deduction: "married couples shall file a joint return or file separately on the same form" (MCA 15-30-2131(1)(c)(vi)(A)); 2022 instructions, line 14. - The 2023 credit schedule was the Elderly Homeowner/Renter Credit Schedule; it became Schedule 2EC in 2024. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Count household members' income in the Montana elderly credit MCA 15-30-2337(4) defines gross household income as "all income received by all individuals of a household while they are members of the household". The 2023 Elderly Homeowner/Renter Credit Schedule combines the returns of "ALL members of the household" (lines 1-7 and 9) and has non-filing members report their wages on line 8; the 2024 and 2025 Schedule 2EC put "Income received by other members of your household" on line 17. The model summed each person's federal AGI over the tax unit. A tax unit dependent's federal AGI is zero (their income is on their own return), so a dependent's wages and other income were left out, and household members who file their own returns were never counted. - Add dependent_gross_income to the gross income sources. It counts a dependent's gross income items, gains but not losses, and the taxable part of their Social Security; the formula now subtracts that part before adding the untaxed remainder, so the benefits count once. - Sum gross household income over the household instead of the tax unit in the net household income and the credit. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Count a dependent's income only for tax unit dependents; add property tests dependent_gross_income counts anyone who is not the head or spouse, while irs_gross_income counts anyone who is not a dependent. A person with neither role (a minor alone in a tax unit whose dependent flag is input as false) was counted by both. Count dependent_gross_income in the formula for tax unit dependents only, so the two paths split people exactly. The property tests check, for random claimants and household members, that gross household income is the Schedule 2EC total whether the other member is a dependent or files their own return, that the credit is the same either way, stays within its bounds, and never rises with income. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Count refundable credits received in Montana elderly credit income ARM 42.4.301(2) counts "federal refundable tax credits received" and "any state refundable tax credits received, including elderly homeowner/renter credit refunds" in gross household income, and Schedule 2EC line 8 (2023 line 7) combines the refundable credits received by all household members. The model counted only the Montana EITC. - Count the return's federal refundable credits (income_tax_refundable_credits) from 2017, once per tax unit, on the head. - Add an input for this credit received during the year (last year's claim); reading last year's credit would rerun the prior-year model for every record. - Count the rebate for the prior property tax year from 2024 (2024 and 2025 Schedule 2EC line 8), read at period.last_year. - Date the Montana property tax rebate: 675 for 2022-2023, 400 for 2024 (Ch. 767, L. 2025), none after. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Preserve dependent adjustments in Montana elderly credit income * Use actual Montana property tax rebate receipts in household income * Cover Montana allocation invariants and childcare itemization boundary * Keep generated dependent adjustments below federal contribution limits * Test Montana tax conservation whenever individual caps do not bind --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…ble parameter dates (#9935) * Date the NY Drive Clean schedule change July 1, 2021; guard calendar dates The NYSERDA Drive Clean Implementation Manual (last updated June 30, 2021, section 4) gives one rebate table for vehicles purchased on or before June 30, 2021 and another for vehicles purchased after it. The parameters dated two of the new amounts 2021-06-31, which is not a day, and the other new amount and the $42,000 MSRP cap 2021-06-30, one day early. All four now start on 2021-07-01. Core compares instants as strings and its INSTANT_PATTERN accepts day 31 in any month, so the impossible date loaded without error, and the duplicate-threshold test skipped it by name. That exception is gone: a new test requires every parameter instant to be a calendar date, with the documented 0000-01-01 sentinel as the only exception. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Assert the calendar-date check rejects partial and compact instants Review note: the old check in this file skipped every instant that date.fromisoformat could not parse (a comment named the Drive Clean dates), rather than skipping those dates by name as the previous commit message said. The new check's YYYY-MM-DD pattern now has direct cases: "2021" and "2021-06" (which core's INSTANT_PATTERN accepts) and "20210630" and "2021-W26-3" (which date.fromisoformat accepts). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * test: property-test parameter calendar date validation * test: cover NY Drive Clean rolling-year schedule starts --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…emption (#9902) * Count only a person's own withholding in the IL AABD expense exemption il_aabd_expense_exemption_person is a Person variable whose adds list named the TaxUnit variable state_withheld_income_tax. policyengine-core evaluates adds with map_to="person", which projects a group value onto every member, so each member deducted the whole tax unit's Illinois withholding. 89 Ill. Adm. Code 113.125(a) exempts withholding taxes as a recognized expense of the person's own employment, and IDHS PM 08-02-00 allows these deductions from the employed person's earned income. List the Person-level il_withheld_income_tax instead. The overstated exemption lowered AABD countable earned income (eligibility and grant), HBWD countable earned income (eligibility and premiums) and HBIS countable income for every earner in a multi-earner tax unit, and could make a disabled working adult dependent AABD-eligible on a parent's withholding. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Cite HBWD and IDHS sources; describe the withholding estimate accurately The exemption list also drives HBWD (89 Ill. Adm. Code 120.510(i) and 120.370(a)) and HBIS. Cite 120.370(a) and IDHS PM 08-02-03-b, note that federal and city withholding are not modeled, and say that il_withheld_income_tax is an estimate on the person's own AGI. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
* Uprate ESI premium inputs by CMS ESI premium per enrollee employer_sponsored_insurance_premiums uprated by CBO employment income (per capita after the per-capita conversion), and pre_tax_health_insurance_premiums by CMS out-of-pocket spending per capita, which by CMS's own definition excludes premiums. Both are shares of employer plan premiums, so both now follow CMS NHE Table 17's employer-sponsored insurance spending per enrollee (2013-2034, 2025-2034 projections release), extended past 2034 at the 2033-2034 growth rate. The per-capita classifier now treats per_enrollee paths as per-person rates, like per_capita ones, so they are neither divided by population nor rejected as unclassified. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Address review: route engine tests to microsimulation, tighten classifier - Split the ESI tests: parameter and property checks stay in tests/core; the Simulation and dataset-extension checks move to tests/microsimulation (fewer Hypothesis examples, one vectorized simulation each). - Assert the 22 published Table 17 values exactly, keeping the spending-over-enrollment consistency check. - Per-person markers count only in a path's last segment, so a marker in an ancestor folder no longer hides a national total. - Cite the methodology paper's file page 29 in the href, the ZIP as the Table 17 source, and the 2035-2100 extension endpoint. - Describe the index as a premium-growth proxy at fixed coverage per policy and roughly constant employer share. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…9931) * Apply New York's pre-TCJA 10% medical expense floor (IT-196 line 3) NY Tax Law § 615(a) defines NY itemized deductions as federal deductions "as such deductions existed immediately prior to the enactment of Public Law 115-97". Pre-TCJA 26 U.S.C. 213(a) allowed medical expenses above 10% of AGI; TCJA § 11027 set the federal 7.5% floor, which NY does not follow. Form IT-196 line 3 multiplies federal AGI by 10% on every form from 2018 through 2025. ny_itemized_deductions_max and the Line 40 limitation used the federal medical_expense_deduction (7.5% floor since 2017). Add ny_medical_expense_deduction (10% of positive AGI, from a new NY floor parameter) and use it in both, so the medical deduction still cancels between worksheet lines 1 and 2. Fix the pre-TCJA components test (medical 2,500 -> 0, max 26,500 -> 24,000), move the phase-out tests' medical input to the NY variable, and add boundary, year, non-NY and integration cases plus Hypothesis invariants (bound, differential against the published 10%, order against the federal deduction, monotonicity, composition, Line 40 invariance). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Keep 2017 on the federal 7.5% floor; scale invariant tolerances by operands Review of #9931: the parameter backdated 10% to 2017, when Form IT-201-D line 1 still took federal Schedule A line 4 (7.5% under Pub. L. 115-97 § 11027). The floor is now 0.1 from 2013, 0.075 for 2017, and 0.1 from 2018. Added 2016 and 2017 cases. The invariants test scaled float32 slack by the result, so expenses within rounding of a large floor failed. Slack now scales with each comparison's largest operand, with the reviewer's counterexamples pinned as @example and 2017 added to the published-floor years. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…ota itemized deductions (#10068) * Allow non-disaster casualty losses in California and Minnesota itemized deductions California and Minnesota read the federal casualty_loss_deduction, which is zero from 2018 under 26 U.S.C. 165(h)(5). Neither state follows that limit: Cal. Rev. & Tax. Code 17204(b) and Schedule CA (540) line 15; Minn. Stat. 290.0122, subd. 8, and Schedule M1CAT. Add ca_casualty_loss_deduction and mn_casualty_loss_deduction: the head's and spouse's loss, less $100, less 10% of federal adjusted gross income. Use them in place of the federal deduction in ca_itemized_deductions_pre_limitation, California's limitation exclusion list, mn_itemized_deductions, mn_amt_taxable_income (Schedule M1MT line 12) and the Walz HF1938 reform. The $100 comes from gov.irs.deductions.itemized.casualty.per_casualty_reduction, the same file #9888 adds, copied unchanged so the two merge cleanly in either order. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Qualify the Minnesota casualty loss documentation for 2018 and 2020 Review r1: the 2018 Schedule M1CAT line 18 takes Schedule M1NC line 38 from filers of that schedule, and the 2020 Schedule M1SA takes a net qualified disaster loss from federal Form 4684 line 15 ($500, no 10% floor), deductible without itemizing. The model has neither input, so say so in the variable, the YAML header and the property test. No formula or expected value changes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Say that the 2018 M1CAT sends its result to M1SA line 18 Review r2 (P3): the 2018 form has the same $100 reduction and 10% floor but a different destination line. Comment only. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…claimable-filer-ri-sc-ut-vt-wv-wi
* Add estate and trust income to state-built gross income lists Alabama, Iowa, Mississippi, New Jersey, New Mexico and Oklahoma build their own income source lists, so they missed estate_income when federal gross income gained it (#9633). Each state's law counts a beneficiary's estate or trust income in the concept. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Test estate and trust income in the six state income concepts YAML cases per state with hand-computed values, and a property test of the pass-through identities. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Cite one entry per source and add the changelog fragment Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Pass Alabama estate and trust losses through, as Schedule E reports them Review finding: a beneficiary's Schedule E Part III loss comes from depreciation, depletion and amortization apportioned by the estate or trust (Schedule K-1 box 9), not from the section 642(h) items that Code of Ala. 40-18-25(b)(4) switches off. Alabama's Schedule K-1 (Form 41) carries the same apportioned deductions, and r. 810-3-25-.11 follows Subchapter J, so the amount enters Alabama AGI signed. Drops the floored variable and moves the cases to al_agi.yaml. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
#10024 now separates claimability (claimable_as_dependent_on_another_return, read by head_or_spouse_is_dependent_elsewhere) from an actual claim (claimed_as_dependent_on_another_return), and the federal branch applies the Dependent Taxpayer Test (IRC 152(b)(1)) through head_or_spouse_is_dependent_elsewhere_without_filing_exception. So: - Dependent counts (RI rebate, SC exemption and under-six deduction, UT dependents, birth-year dependent, at-home parent child and contributed reform, VT dependent exemptions and CTC, WI homestead $500 deduction) use the Dependent Taxpayer Test helper, keeping dependents when the would-be claimant meets the filing exception. - Wisconsin's $250 exemption reads claimability: a filer who can be claimed is not "allowed the $700 exemption" even when no one claims them. - Vermont's renter credit bars a claimant actually claimed (6066(c)(2)). - Wisconsin's care subtraction and credit read cdcc_qualifying_childcare_expenses, so a claimable filer's childcare for a nonqualifying child drops out. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…split The Vermont student loan subtraction, the Vermont child tax credit per-child phase-out, Utah's at-home parent credit once per return and Wisconsin's homestead claimant tests change results for households where nobody is claimed, so they now go to main in #10104; this branch keeps the base formulas there. New cases: a filer who can be claimed but is not claimed (no Wisconsin $250 exemption; still a Rhode Island relief and Vermont renter credit claimant), and a would-be claimant who meets the filing exception (South Carolina, Utah, Vermont and West Virginia dependents survive). The property test now draws claimability, actual claims and the filing exception per spouse. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…sc-ut-vt-wv-wi # Conflicts: # policyengine_us/variables/gov/states/wi/tax/income/wi_retirement_income_exclusion_tax.py
Contributor
Author
|
Reply to the hub's note of 2026-10-10 (owner session), at head
Pending: local YAML and property tests, microsims (2025 and 2026) and the independent review are queued; results will go in the body. |
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Rhode Island, South Carolina, Utah, Vermont, West Virginia and Wisconsin have rules for a filer who can be claimed as a dependent that the model never applied. This PR applies the ones the federal fixes do not already cover, symmetric between head and spouse, on the settled inputs from #10024: claimability (
claimable_as_dependent_on_another_return, read throughhead_or_spouse_is_dependent_elsewhere), an actual claim (claimed_as_dependent_on_another_return), and the Dependent Taxpayer Test with its filing exception (head_or_spouse_is_dependent_elsewhere_without_filing_exception).Stacked on #10087 (
claimable-filer-federal) and #10024; main is merged in (onlywi_retirement_income_exclusion_tax.pyconflicted, with #10026). Until #10087 also merges main, GitHub's diff includes main's newer commits; this PR's own changes aregit diff abdf884d0f HEAD(abdf884d0f = the tree of #10087 merged with main 7dc0756).Four related fixes that also change results when nobody is claimed (Vermont student loan interest, Vermont CTC phase-out, Utah's at-home parent credit, Wisconsin's homestead claimant) are in #10104 against main.
ri_property_tax_credit_eligibleri_child_tax_rebate(2021 return)sc_dependent_exemption,sc_young_child_deductionut_total_dependents,ut_personal_exemption_additional_dependent_eligible, contributedut_dependent_exemption_reformut_at_home_parent_credit_potentialvt_personal_exemptionsvt_ctcvt_renter_creditexemptions_countwv_personal_exemptionexemptions_countwv_low_income_family_tax_credit_eligible,_fpgexemptions_countwi_standard_deduction,wi_retirement_income_exclusion_taxwi_additional_exemptionwi_homestead_incomewi_childcare_expense_subtraction(2021),wi_childcare_expense_credit_potentialcdcc_qualifying_childcare_expenses, so a claimable filer's childcare for a nonqualifying child drops outAudit rows already fixed by #10024 or #10087 (not changed here)
exemptions_count), EITC (federaleitc), care credit (federalcdcc).count_cdcc_eligible,cdcc_relevant_expenses).ctc_qualifying_child), EITC; homeowner/renter relief was already symmetric.capped_cdcc,pre_obbba_capped_cdcc).cdcc).exemptions_count); care credit counts (count_cdcc_eligible,capped_count_cdcc_eligible).Hub comment (2026-10-10)
wi_additional_exemptionnow readsclaimable_as_dependent_on_another_return, with a case for a filer aged 65 who can be claimed but is not claimed ($0) and a joint case under both labellings ($250). New cases also cover a filer who can be claimed but is not claimed under the actual-claim rules (still a Rhode Island relief and Vermont renter credit claimant), and the filing exception (South Carolina, Utah, Vermont and West Virginia dependents survive). Wisconsin's care subtraction and credit read the newcdcc_qualifying_childcare_expenses.Readings for Max (queue via the US + core hub)
us-wv/statutes/11-21-16.yamladds $500 on a supplied return-level flag on top of $2,000 per supplied federal exemption, so it settles neither reading.Not modeled (listed, not implemented)
Other findings (not fixed here)
vt_renter_creditnever checks that the unit paid rent or prorates by months rented (6066(b)(1)(E)); any low-income Vermont unit gets the full-year credit.ut_total_dependentscounts every dependent of the return; 59-10-1018(1)(c) counts only those for whom an IRC 24 credit is allowed (for example, not a dependent without a taxpayer identification number).Invariants
Tests
policyengine_us/tests/core/test_claimable_filer_ri_sc_ut_vt_wv_wi_invariants.py(Hypothesis plus a seeded population, 2021, 2023, 2025, 2026). Results: pending.Microsimulation impact
Pending: default dataset, 2025 and 2026, #10087 merged with main vs this branch. The dataset sets no claimability inputs, so totals should not move.
axiom: R.I. Gen. Laws 44-33-3, 44-30-103 queued (draft RI) | S.C. Code 12-6-1140(13), 12-6-1160 queued (draft SC) | Utah Code 59-10-1018(1)(c),(g), 59-10-1005 queued (draft UT) | 32 V.S.A. 5811(21)(C), 5830f, 6066 queued (draft VT) | W. Va. Code 11-21-16, 11-21-22a queued (draft WV) | Wis. Stat. 71.05(22)(f), 71.05(23), 71.52(5), 71.07(9g) queued (draft WI); dispatch-ready rulespec-us drafts held for Max's go, not filed. No module on rulespec-us origin/main (16a6677190) derives claimability or tests a claimable filer:
us-wv/statutes/11-21-16,us-ut/statutes/59-10-1018andus-ri/statutes/44-30-103take dependency counts as inputs, and the SC and WI 2026 cores hold dependent filers out.🤖 Generated with Claude Code