Repository navigation
Leave tax unit dependents' income out of Alabama AGI - #9943
Conversation
Alabama taxes every resident individual on their own income (Ala. Code 40-18-2(a)(1)), and every taxpayer over the filing threshold files a return stating their own items of gross income (40-18-27(a)). Only a husband and wife may combine income on one return (Ala. Admin. Code r. 810-3-27-.01(1)(b)1), and the Form 40 and 40A booklets (2007-2025, p. 5) tell resident dependents to file their own returns. No Alabama statute, rule or form lets a parent report a child's income. al_agi summed every tax unit member's income, so a dependent's wages raised the parent's Alabama AGI, standard deduction phase-out, dependent exemption tier and tax. It now uses tax_unit_non_dep_add for both the gross income sources and the deductions. The deductions list drops the dependents' self-employed health insurance and plan deductions and subtracts the filers' own U.S. obligation interest (us_govt_interest_person). The HB527 contrib reform mirrors the change and leaves a dependent's overtime on the dependent's return. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Ala. Code 40-18-19(a)(9) gives $1,000 per dependent for AGI "equal to or less than" $20,000 (through 2021) or $50,000 (from 2022), and $500 up to and including $100,000. The Form 40 booklet charts read 0 - 50,000, 50,001 - 100,000 and Over 100,000. The bracket lookup counted a threshold as reached at equality, so AGI of exactly $20,000, $50,000 or $100,000 got the lower amount. Use calc(..., right=True) in the variable and in the contrib dependent exemption reform. Adds end-to-end Alabama tax cases for 2021 and 2025 households with a working dependent, computed from the Form 40 booklets. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Hypothesis draws batches of Alabama tax units and runs each twice, with dependents' income and deduction inputs as drawn and zeroed. It checks that dependents never move Alabama AGI, the standard deduction or the exemptions; that Alabama AGI equals a numpy sum of the parameterized items over the head and spouse (the old all-member sum for units without dependents); and that the dependent exemption follows the statutory tiers through each threshold. The test found that Alabama itemized deductions still count a dependent's FICA and self-employment tax; that is #9941, outside this change, so income tax is checked only where itemized and federal tax deductions are unchanged. Reverting al_agi to the all-member sum fails all three tests. Locally: 12.6 s of test time, 1.6 GB peak RSS. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… booklets Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #9943 +/- ##
=========================================
Coverage 100.00% 100.00%
=========================================
Files 4 2 -2
Lines 76 30 -46
Branches 2 0 -2
=========================================
- Hits 76 30 -46
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
|
Hand-off context from the original session (local_a055ae83), for the US + core hub, which owns this PR:
|
|
Overlap with #9894, which makes This PR replaces the same two list lines and makes Alabama AGI filer-only, which supersedes that. Whichever lands second should take this PR's version of |
|
US + core hub merge audit, us#9943 at
|
Summary
Fixes the Alabama row of #9814; AR, IA, MS and NJ stay open there.
al_agisummed every tax unit member's income, so a dependent child's wages raised the parent's Alabama AGI. Alabama AGI then feeds the standard deduction phase-out, the dependent exemption tier, the itemized-deduction floors and the tax. Under Alabama law a dependent's income goes on the dependent's own return, soal_aginow counts only the head and spouse.Example from the issue (TY2021, head of family): head wages 10,000; dependent child, age 16, wages 5,000.
al_agial_taxable_incomeal_income_tax(existing model statutory rates)The existing model's statutory-rate calculation gives $42 = 2% × 500 + 4% × 800 on taxable income of 10,000 − 4,700 standard deduction − 3,000 personal exemption − 1,000 dependent exemption. The 2021 Form 40 head-of-family tax table (p. 25) instead gives $44 at that taxable income. The booklet requires the table unless claiming a carryover or carryback net operating loss (p. 10); this PR retains the existing rate-based tax implementation.
Authority
Statutes are from the ALISON Code of Alabama API, rules from the Alabama Administrative Code API (the public site's persisted
publicCodequery), and forms from ADOR. All were read on 2026-10-06.Who is taxed, and on whose return
ADOR rules
Forms
Nothing points the other way. I searched all three sources for anything that puts a dependent's income on a parent's return:
#9801 kept the pooling only "so both match
main". It cited no Alabama authority.Changes
al_aginow sumsgov.states.al.tax.income.agi.gross_income_sourcesand.deductionswithtax_unit_non_dep_add, over the head and spouse only.agi/deductions.yaml:dependents_self_employed_health_insurance_aldanddependents_self_employed_pension_contribution_ald. New Jersey still uses them.us_govt_interest_personinstead of the tax-unitus_govt_interest, which summed every member, as VA, MS, MT, MO, KY and NJ already do. A tax-unitus_govt_interestinput no longer reaches Alabama. The original author reported neither variable is in the default dataset; the external default H5 was not inspected in the independent review.al_agiuses the same helper.calc(..., right=True), in the variable and in the contrib dependent exemption reform. My 2021 form-based test hit this at AGI of $20,000.Tests
Current head:
d79854e1037f6d1f52387a4976166ab9849fbeeb, which merges main twice (the second merge brings in #10060's estate and trust income cases, kept alongside this PR's). Earlier-head validation at6e958210ec: 115 passed (80 reference checks and 35 YAML cases), each file run separately. The US + core hub is rerunning the PR's test files at the current head under the heavy lock; their results go here when done.The coverage and historical results below were verified or reported at prior head
0b36abc5b8e76a8cad604e0b74cabe6459203273, before the merge of current main. Current-head validation is recorded separately.al_agi.yaml:integration.yaml: end-to-end 2021 and 2025 head-of-family cases with a working dependent:al_dependent_exemption.yaml: both sides of each threshold.al_us_govt_bond_interest.yaml: now uses the person-level input.tests/core/test_al_agi_dependent_invariants.py: Hypothesis property tests, plus a seeded 150-unit population for 2025 and 2026.al_agito the all-member sum failed all three tests.coregroup.Prior-head independent local validation passed 38 checks:
al_agi.yaml(8),integration.yaml(3),al_us_govt_bond_interest.yaml(1),al_dependent_exemption.yaml(13), HB527 overtime YAML (10), and the property file (3). The original author also reported local runs of the dependent-exemption and state-dependent-exemption repeal contrib files; the independent review confirmed those files passed 5 and 7 cases respectively in the prior-head CI run. A prior static scan reported no other Alabama YAML case with a dependent who has income.Reviews
The independent review APPROVED exact prior head
0b36abc5b8e76a8cad604e0b74cabe6459203273. Its documentation nit was to distinguish the existing model's rate-based tax results from the Form 40 table amounts; that qualification is included above and in the integration test comments. Prior-head CI run 37537836248 passed. The hub's review of the merge delta is pending.Invariants
al_agi,al_standard_deduction,al_personal_exemptionoral_dependent_exemption.al_income_taxis also unchanged wherever the itemized and federal tax deductions are.al_agiequals an independent numpy sum, over the head and spouse, of the parameterized person-level items, plus the tax-unit items. For units without dependents this is the old all-member sum, so they don't change when every item is supplied as a person-level input. A legacy tax-unit override ofus_govt_interestis no longer read (the list now usesus_govt_interest_person; disclosed above), so such a unit can change.Hub microsimulation impact (current head)
A real microsimulation on the default dataset, main at the merge base
23285ce622against this PR's headd79854e103, for 2026. The runs went one at a time under the shared heavy-job lock. Sums are weighted.al_agial_income_taxal_dependent_exemptionstate_income_taxincome_taxhousehold_net_incomehousehold_benefitsComparison files are in
fixes/9943-impact/on the hub host.Not in this PR
axiom: TheAxiomFoundation/rulespec-us#1527 queued
The queued rulespec issue covers Alabama AGI of the return under §§ 40-18-14, 40-18-27 and r. 810-3-27-.01, and the § 40-18-19(a)(9) tier selection. The original encoder reported a blocker: the pinned corpus release
us-rulespec-2026-08-08-obbb-alien-snaplacked those statutes, rules and the TY2025 Form 40 instructions, and signed runs needed Max's approval. Updated corpus availability and encoding remain for the hub.🤖 Generated with Claude Code