Repository navigation
Count gambling winnings in Arkansas gross income and add the Arkansas gambling loss deduction - #9636
Conversation
… gambling loss deduction Arkansas taxes gambling winnings as other income (Ark. Code § 26-51-404(a)(1)(E); DFA Form AR-OI line 4, carried to AR1000F Line 20 through 2017 and Line 22 from 2018). Ark. Code § 26-51-424(a)(2)(B), as amended by Act 155 of 2017, § 21, makes gambling losses deductible to the extent of gambling winnings and not subject to the 2% floor on miscellaneous itemized deductions, for tax years from 2015 (§ 25); DFA Subject 208 has stated the same rule since at least 2009. policyengine-us had neither: gambling_winnings was missing from the Arkansas gross income sources, and the Arkansas itemized sources had no gambling loss deduction. - Add gambling_winnings to ar gross income sources (joint and individual). - Add ar_gambling_loss_deduction = min(losses, winnings) over the tax unit and add it to both itemized source lists, outside ar_misc_deduction_*. - YAML tests for 2014, 2015, 2019, 2020 and 2025, and grid property tests for the cap, bounds, monotonicity, year and AGI independence, agreement with the federal pre-2026 wagering rule, and the effect on Arkansas taxable income. 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 #9636 +/- ##
=========================================
Coverage 100.00% 100.00%
=========================================
Files 4 1 -3
Lines 76 14 -62
Branches 2 0 -2
=========================================
- Hits 76 14 -62
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:
|
Conflicts:
- AR gross_income/sources/{individual,joint}.yaml: kept main's new 2015
period, estate/farm income entries, Line 19/20 comments and references;
re-added gambling_winnings to every period, including main's new 2015
period (the PR's 2015 YAML test and 2015/2017 property tests require it).
- ar_itemized_deductions_joint.yaml: kept main's #9614 cases, then the PR's
two gambling cases.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The 2015 block (TY2015-2017) said gambling winnings were on Line 22, but the 2015-2017 AR1000F reports other income on Line 20 (2015 booklet, #page=15 and the form on #page=17). The block's other comments copied the 2018 numbering too: on the 2015-2017 form, pensions are Lines 17A/17B, Schedule E is Line 18 and Schedule F is Line 19. Every block also had Schedule C income on Line 8 (it is Line 13), capital gains on Line 13 (Line 14) and disability benefits on "Line 18b" (pensions and disability retirement go on Lines 17A/17B or 18A/18B). Comments and references only; no parameter value changes. A code-health test pins each source's line comment to the form for its period block. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… line test AR1000FandAR1000NRInstructions_2018.pdf#page=19 is the AR1000NR; the full-year resident AR1000F income lines are on #page=15. Also note that qualified IRA distributions (after age 59 1/2) go on the pension lines and that TY2018 splits military retirement into Lines 17A/17B. The line-comment test now checks the full label (17A/17B, not just 17A) and asserts that its text parse sees exactly the lists yaml.safe_load sees, so a re-indented or quoted file cannot pass with nothing checked. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
US + core hub sweep audit (2026-10-07): squash-merged #9636 as Reviewed head: |
Summary
Arkansas taxes gambling winnings and lets itemizers deduct gambling losses up to those winnings, outside the 2% floor on miscellaneous deductions. policyengine-us did neither.
gambling_winningswas not in the Arkansas gross income sources, so winnings were untaxed in Arkansas.This PR adds both. It was found while fixing Arkansas itemized deductions (#9614, #9625).
The law
Winnings are gross income. Ark. Code § 26-51-404(a)(1)(E) includes "Gains or profits and income derived from any source whatever", and none of the § 26-51-404(b) exclusions covers gambling. DFA reports winnings as an addition to income on Form AR-OI, carried to AR1000F "Other income": Line 20 for TY2015-2017 and Line 22 from TY2018.
2007R/732.pdf#page=5), they are not income and their losses are not deductible. DFA Subject 208 applies this to winnings before July 1, 2019, when the two racetracks became casinos. The booklets print the exception through TY2018. PE has onegambling_winningsinput and cannot separate these winnings; see Limitations.Losses: Ark. Code § 26-51-424(a)(2)(B). Act 155 of 2017, § 21 (
2017R/155.pdf#page=9) added "including without limitation gambling losses, which are: (i) Deductible to the extent of gambling winnings; and (ii) Not subject to the two percent (2%) limitation on miscellaneous itemized deductions."#page=10) makes it effective for tax years beginning on and after 2015-01-01.DFA forms by year. All anchors are PDF page indices; the original PR work reported checking them with
pdftotext -f N -l N. The base URL ishttps://www.dfa.arkansas.gov/wp-content/uploads/.#page=15/#page=13); electronic games of skill excluded#page=43/#page=39); gambling not namedLongBookwTaxTables_2015.pdf,LongBookwTaxTables_2016.pdf#page=13);#page=5says Act 155 "clarified" gambling losses#page=39)AR1000FandAR1000NRInstructions.pdf#page=13); electronic games of skill excluded#page=39)AR1000FandAR1000NRInstructions_2018.pdf#page=13)#page=21)2019_AR1000F_and_AR1000NR_Instructions.pdf#page=13)#page=21); the form puts it under "not subject to the 2% AGI limitation"<YYYY>_AR1000F_and_AR1000NR_Instructions.pdf#page=14)#page=22)Standalone forms:
2025_AR3_ItemizedDeduction.pdf(line 27 "Gambling Losses") and2025_AR-OI_OtherIncomeLoss_and_DepreciationDifferences.pdf(line 4 "Gambling winnings").Changes
gov.states.ar.tax.income.gross_income.sources.{joint,individual}:gambling_winningsto every period.ar_gambling_loss_deduction(TaxUnit) = min(Σgambling_losses, Σgambling_winnings) over the tax unit. On a married-filing-separately-on-the-same-return (status 4) return, AR3 is completed for the couple and the total is prorated by AGI (AR3 lines 31-35), which is whatar_itemized_deductions_indivalready does.gov.states.ar.tax.income.deductions.itemized.sources.{joint,individual}: addar_gambling_loss_deductionnext to, and outside,ar_misc_deduction_*, and add references.Invariants
These hold for every input and are executed in
policyengine_us/tests/unit/test_ar_gambling_properties.py. That file evaluates an 8 × 8 winnings × losses grid, including 0, 1, 999, 1,000, 2,200 and 250,000, in one vectorized simulation per year, for TY2015, 2017, 2018, 2019, 2020, 2022 and 2025.ar_gambling_loss_deduction= min(losses, winnings).wagering_losses_deduction, which applies the same § 165(d) cap through 2025.Original PR mutation checks, reported before this fix round:
Review fix round (2026-10-07)
e3a38da446) cleanly. Preserved main's itemized-deduction sources and corrected reference anchors; no conflicted files.test_ar_gross_income_source_line_comments.py:128: every period must have a nonempty source list, while the existing equality check continues to require the text parser and YAML parser to agree.Tests in this round
304757c2fa, scratch copy with all four source lists emptied in both YAML filestest_ar_gambling_properties.pyar_gambling_loss_deduction.yaml, including 2014ar_gambling_winnings_and_losses.yamlar_itemized_deductions_indiv.yamlar_itemized_deductions_joint.yamlmake formatpassed before both commits;git diff --checkpassed. The scratch copies and evidence logs were not committed.Total on the real files: 64 passed (34 Python and 30 YAML cases). The two deliberately broken scratch cases fail as expected and are excluded from this total.
Tests ran in the foreground, one process and one targeted test file at a time. Each single-file invocation is exempt from the host's heavy-lock requirement. No folder or full-suite run, partner contract test edit, or microsimulation run was performed in this round.
Impact
The hub already completed real microsimulations on the default dataset, comparing main against this PR for both 2025 and 2026. These are hub-provided results; they were not rerun in this fix round.
gambling_winningsandgambling_lossesare $0 in every record in both years.The gambling fix changes results only for filers who report gambling amounts. The P3 fix beyond the main merge strengthens a test and updates documentation; it changes no formulas or parameter values, so it introduces no additional model output change.
Limitations
gambling_winningsare taxed.Interactions
partnership_s_corp_incometo the same gross-income lists. Its integration must extend this PR's form-line guard with Schedule E line 18 before 2018 and line 19 thereafter.Federal
Federal gross income leaves out
gambling_winningswhilewagering_losses_deductionis still deducted for itemizers, and the OBBBA 90% limit for 2026+ is not modeled. That change reaches every state that starts from federal AGI, MAGI, and PA's net-winnings rule, and is tracked separately in #9637.axiom: TheAxiomFoundation/rulespec-us#1417 queued
Axiom encoding remains queued in that existing
pe-parityissue, which documents corpus/pin and signing blockers.🤖 Generated with Claude Code