From f33d459504077ad808a403dd3feb7b654522d447 Mon Sep 17 00:00:00 2001 From: Max Ghenis Date: Thu, 5 Nov 2026 11:14:42 -0500 Subject: [PATCH 1/8] Count Alaska's energy relief payment in gross income after 2022 IR-2023-23 says the IRS will not challenge leaving the 2022 supplemental payment out of income, and Notice 2023-56 limits that news release to payments made in 2022. Publication 525 for 2024 taxes the entire $1,702 dividend, energy relief included, and the Permanent Fund Dividend Division reports the $1,200 dividend for 2026 the same way. The model left every year's payment out. A new taxable_ak_energy_relief source reads a dated parameter, so 2022 stays out and later payments count. Part of #9919. Co-Authored-By: Claude Opus 5.5 --- .../ak-energy-relief-gross-income.fixed.md | 1 + docs/validation/alaska-pfd.md | 24 ++- .../ak_energy_relief_excluded.yaml | 23 +++ .../gov/irs/gross_income/sources.yaml | 2 + .../taxable_ak_energy_relief.yaml | 168 ++++++++++++++++++ .../test_ak_energy_relief_gross_income.py | 106 +++++++++++ .../taxable_ak_energy_relief.py | 31 ++++ .../gov/states/ak/dor/ak_energy_relief.py | 6 +- 8 files changed, 355 insertions(+), 6 deletions(-) create mode 100644 changelog.d/ak-energy-relief-gross-income.fixed.md create mode 100644 policyengine_us/parameters/gov/irs/gross_income/ak_energy_relief_excluded.yaml create mode 100644 policyengine_us/tests/policy/baseline/gov/irs/income/taxable_income/adjusted_gross_income/irs_gross_income/taxable_ak_energy_relief.yaml create mode 100644 policyengine_us/tests/test_ak_energy_relief_gross_income.py create mode 100644 policyengine_us/variables/gov/irs/income/taxable_income/adjusted_gross_income/irs_gross_income/taxable_ak_energy_relief.py diff --git a/changelog.d/ak-energy-relief-gross-income.fixed.md b/changelog.d/ak-energy-relief-gross-income.fixed.md new file mode 100644 index 00000000000..2f101f24312 --- /dev/null +++ b/changelog.d/ak-energy-relief-gross-income.fixed.md @@ -0,0 +1 @@ +Count Alaska's energy relief payment in federal gross income from 2023 on, through a new `taxable_ak_energy_relief` source (#9919). IRS Publication 525 for 2024 taxes the entire $1,702 dividend, energy relief included, and the Permanent Fund Dividend Division reports the $1,200 dividend for 2026 the same way. The 2022 payment stays out, because IR-2023-23 says the IRS will not challenge its exclusion. diff --git a/docs/validation/alaska-pfd.md b/docs/validation/alaska-pfd.md index 6182b4f133e..05177543d16 100644 --- a/docs/validation/alaska-pfd.md +++ b/docs/validation/alaska-pfd.md @@ -53,8 +53,14 @@ the components and increase the modeled taxable amount. The split is described in [Alaska DOR's February 17, 2023 release](https://dor.alaska.gov/docs/default-source/press-releases/2023_02_17-dor-response-to-irs-guidance-on-2022-pfd.pdf#page=1). -The model excludes the separate energy payment from federal gross income. For -2022, this follows [IRS IR-2023-23, including its Alaska +## Energy relief in federal gross income + +`taxable_ak_energy_relief` holds the part of `ak_energy_relief` in federal gross +income, and `gov.irs.gross_income.ak_energy_relief_excluded` sets that part by +year. + +The model leaves the 2022 payment out. This follows [IRS IR-2023-23, including its +Alaska footnote](https://www.irs.gov/newsroom/irs-issues-guidance-on-state-tax-payments-to-help-taxpayers): the IRS said it would not challenge exclusion of the supplemental energy payment, while the regular PFD remained taxable. This was a 2022 administrative @@ -62,4 +68,16 @@ nonchallenge policy, rather than a statutory determination for every recipient. An exclusion under IRC 139 depends on a qualifying disaster and the connection between the payment and that disaster; see [Notice 2023-56, section 3.04](https://www.irs.gov/pub/irs-drop/n-23-56.pdf#page=6). This model convention -does not establish those facts or extend the 2022 IRS policy to other years. +does not establish those facts. + +The model counts every later payment. +[Notice 2023-56, section 2](https://www.irs.gov/pub/irs-drop/n-23-56.pdf#page=2) +limits the news release to payments made in 2022. +[IRS Publication 525 for 2024](https://www.irs.gov/pub/irs-prior/p525--2024.pdf#page=32) +tells filers not to reduce Schedule 1 line 8g by the energy relief portion, since +the entire \$1,702 is taxable. The model's \$1,403.83 of PFD and \$298.17 of energy +relief add up to that. The +[PFD Division](https://pfd.alaska.gov/payments/tax-information) says the \$1,200 +dividend for 2026 includes the energy relief payment, and that dividends for adults +are taxable. The model's \$1,000 and \$200 add up to that, so an Alaskan adult with +\$50,000 of wages has federal AGI of \$51,200 in 2026. diff --git a/policyengine_us/parameters/gov/irs/gross_income/ak_energy_relief_excluded.yaml b/policyengine_us/parameters/gov/irs/gross_income/ak_energy_relief_excluded.yaml new file mode 100644 index 00000000000..8ec8bc2a34f --- /dev/null +++ b/policyengine_us/parameters/gov/irs/gross_income/ak_energy_relief_excluded.yaml @@ -0,0 +1,23 @@ +description: Taxpayers leave Alaska's energy relief payment out of federal gross income, if this is true. + +values: + 2022-01-01: true + 2023-01-01: false + +metadata: + unit: bool + period: year + label: Alaska energy relief payment excluded from gross income + reference: + # The 2022 payment, footnote 1. + - title: IRS News Release IR-2023-23, IRS issues guidance on state tax payments to help taxpayers + href: https://www.irs.gov/newsroom/irs-issues-guidance-on-state-tax-payments-to-help-taxpayers + # The news release covers only payments made in 2022. + - title: IRS Notice 2023-56, Federal Income Tax Consequences of Certain State Payments + href: https://www.irs.gov/pub/irs-drop/n-23-56.pdf#page=2 + # The 2024 payment. + - title: IRS Publication 525 (2024), Taxable and Nontaxable Income + href: https://www.irs.gov/pub/irs-prior/p525--2024.pdf#page=32 + # The 2026 payment. + - title: Alaska Permanent Fund Dividend Division, Tax Information + href: https://pfd.alaska.gov/payments/tax-information diff --git a/policyengine_us/parameters/gov/irs/gross_income/sources.yaml b/policyengine_us/parameters/gov/irs/gross_income/sources.yaml index a2474e69e74..eaf56ca1d5c 100644 --- a/policyengine_us/parameters/gov/irs/gross_income/sources.yaml +++ b/policyengine_us/parameters/gov/irs/gross_income/sources.yaml @@ -41,6 +41,8 @@ values: - miscellaneous_income # Listed separately on 1040 line 8g. - ak_permanent_fund_dividend + # Reported with the dividend on line 8g, except the 2022 payment. + - taxable_ak_energy_relief # Alimony from divorces executed before the TCJA cutoff (Schedule 1 line 2a). - taxable_alimony_income # Taxable state and local income tax refunds (Schedule 1 line 1 / IRC ยง 111). diff --git a/policyengine_us/tests/policy/baseline/gov/irs/income/taxable_income/adjusted_gross_income/irs_gross_income/taxable_ak_energy_relief.yaml b/policyengine_us/tests/policy/baseline/gov/irs/income/taxable_income/adjusted_gross_income/irs_gross_income/taxable_ak_energy_relief.yaml new file mode 100644 index 00000000000..3040438546b --- /dev/null +++ b/policyengine_us/tests/policy/baseline/gov/irs/income/taxable_income/adjusted_gross_income/irs_gross_income/taxable_ak_energy_relief.yaml @@ -0,0 +1,168 @@ +- name: Case 1, the 2022 payment stays out of gross income (IR-2023-23, footnote 1). + period: 2022 + input: + state_code: AK + output: + ak_energy_relief: 662 + taxable_ak_energy_relief: 0 + +- name: Case 2, the 2024 payment counts in full (Publication 525 for 2024). + period: 2024 + absolute_error_margin: 0.01 + input: + state_code: AK + output: + ak_energy_relief: 298.17 + taxable_ak_energy_relief: 298.17 + +- name: Case 3, Alaska paid no energy relief in 2025. + period: 2025 + input: + state_code: AK + output: + ak_energy_relief: 0 + taxable_ak_energy_relief: 0 + +- name: Case 4, the 2026 payment counts in full (PFD Division tax information). + period: 2026 + input: + state_code: AK + output: + ak_energy_relief: 200 + taxable_ak_energy_relief: 200 + +- name: Case 5, no amount outside Alaska. + period: 2026 + input: + state_code: WA + output: + taxable_ak_energy_relief: 0 + +- name: Case 6, a supplied 2022 payment stays out. + period: 2022 + input: + state_code: AK + ak_energy_relief: 1_000 + output: + taxable_ak_energy_relief: 0 + +- name: Case 7, a supplied 2026 payment counts in full. + period: 2026 + input: + state_code: AK + ak_energy_relief: 1_000 + output: + taxable_ak_energy_relief: 1_000 + +- name: Case 8, nothing counts before 2022. + period: 2021 + input: + state_code: AK + output: + taxable_ak_energy_relief: 0 + +- name: Case 9, a 2022 filer reports the $2,622 regular dividend and not the $662 payment. + period: 2022 + input: + people: + person: + age: 40 + employment_income: 50_000 + tax_units: + tax_unit: + members: [person] + households: + household: + members: [person] + state_code: AK + output: + ak_permanent_fund_dividend: 2_622 + taxable_ak_energy_relief: 0 + irs_gross_income: 52_622 + adjusted_gross_income: 52_622 + +- name: Case 10, a 2024 filer reports the entire $1,702 from Publication 525. + period: 2024 + absolute_error_margin: 0.01 + input: + people: + person: + age: 40 + employment_income: 50_000 + tax_units: + tax_unit: + members: [person] + households: + household: + members: [person] + state_code: AK + output: + ak_permanent_fund_dividend: 1_403.83 + taxable_ak_energy_relief: 298.17 + irs_gross_income: 51_702 + adjusted_gross_income: 51_702 + +- name: Case 11, a 2025 filer reports the $1,000 dividend, which held no energy relief. + period: 2025 + input: + people: + person: + age: 40 + employment_income: 50_000 + tax_units: + tax_unit: + members: [person] + households: + household: + members: [person] + state_code: AK + output: + ak_permanent_fund_dividend: 1_000 + taxable_ak_energy_relief: 0 + irs_gross_income: 51_000 + adjusted_gross_income: 51_000 + +- name: Case 12, a 2026 filer reports the $1,200 dividend and pays tax on all of it. + period: 2026 + input: + people: + person: + age: 40 + employment_income: 50_000 + tax_units: + tax_unit: + members: [person] + households: + household: + members: [person] + state_code: AK + output: + ak_permanent_fund_dividend: 1_000 + taxable_ak_energy_relief: 200 + irs_gross_income: 51_200 + adjusted_gross_income: 51_200 + # Rev. Proc. 2025-32: taxable income of 51,200 - 16,100 = 35,100. + # 10% of 12,400 + 12% of (35,100 - 12,400) = 1,240 + 2,724. + income_tax: 3_964 + +- name: Case 13, a dependent child's 2026 dividend counts as the child's own gross income. + period: 2026 + input: + people: + parent: + age: 40 + employment_income: 50_000 + child: + age: 5 + tax_units: + tax_unit: + members: [parent, child] + households: + household: + members: [parent, child] + state_code: AK + output: + is_tax_unit_dependent: [false, true] + taxable_ak_energy_relief: [200, 200] + irs_gross_income: [51_200, 0] + dependent_gross_income: [0, 1_200] diff --git a/policyengine_us/tests/test_ak_energy_relief_gross_income.py b/policyengine_us/tests/test_ak_energy_relief_gross_income.py new file mode 100644 index 00000000000..5306b40e094 --- /dev/null +++ b/policyengine_us/tests/test_ak_energy_relief_gross_income.py @@ -0,0 +1,106 @@ +"""Invariants for Alaska's energy relief payment in federal gross income. + +Three hold for any payment amount and any year from 2022 on. + +1. Gross income rises by the whole payment, except in 2022, when it does not + move (IR-2023-23, footnote 1). +2. taxable_ak_energy_relief stays between zero and the payment, and it stays at + zero outside Alaska. +3. With no means-tested response in play, the tax on the payment takes less than + the payment, and household and SPM net income each rise by what remains. + +YAML pins the amounts the IRS and Alaska publish for each year. These tests need +Hypothesis over amounts no published figure names, and they compare two +simulations of one household. +""" + +import pytest +from hypothesis import example, given, settings +from hypothesis import strategies as st + +from policyengine_us import Simulation + +YEARS = (2022, 2023, 2024, 2025, 2026) +EXCLUDED_YEAR = 2022 +TOLERANCE = 0.02 +# Earnings this high rule out every means-tested response. +HIGH_EARNINGS = 500_000 +NET_INCOMES = ("household_net_income", "spm_unit_net_income") + + +def one_person(state, year, earnings, payment): + members = ["you"] + return { + "people": { + "you": { + "age": {year: 40}, + "employment_income": {year: earnings}, + "ak_energy_relief": {year: payment}, + } + }, + "tax_units": {"tax_unit": {"members": members}}, + "spm_units": {"spm_unit": {"members": members}}, + "families": {"family": {"members": members}}, + "marital_units": {"marital_unit": {"members": members}}, + "households": {"household": {"members": members, "state_name": {year: state}}}, + } + + +def calculate(simulation, name, year): + return float(simulation.calculate(name, year).sum()) + + +@settings(max_examples=20, deadline=None) +@example(year=2022, earnings=50_000, payment=662) +@example(year=2024, earnings=50_000, payment=298) +@example(year=2026, earnings=0, payment=200) +@given( + year=st.sampled_from(YEARS), + earnings=st.integers(min_value=0, max_value=300_000), + payment=st.integers(min_value=1, max_value=30_000), +) +def test_gross_income_rises_by_the_payment_except_in_2022(year, earnings, payment): + without = Simulation(situation=one_person("AK", year, earnings, 0)) + paid = Simulation(situation=one_person("AK", year, earnings, payment)) + change = calculate(paid, "irs_gross_income", year) - calculate( + without, "irs_gross_income", year + ) + expected = 0 if year == EXCLUDED_YEAR else payment + assert change == pytest.approx(expected, abs=TOLERANCE) + + +@settings(max_examples=20, deadline=None) +@example(state="WA", year=2026, payment=200) +@example(state="AK", year=2022, payment=662) +@given( + state=st.sampled_from(("AK", "HI", "TX", "WA")), + year=st.sampled_from(YEARS), + payment=st.integers(min_value=0, max_value=30_000), +) +def test_taxable_amount_stays_within_the_payment_and_in_alaska(state, year, payment): + simulation = Simulation(situation=one_person(state, year, 50_000, payment)) + taxable = calculate(simulation, "taxable_ak_energy_relief", year) + assert 0 <= taxable <= payment + if state != "AK": + assert taxable == 0 + + +@settings(max_examples=20, deadline=None) +@example(year=2022, payment=662) +@example(year=2024, payment=298) +@example(year=2026, payment=200) +@given( + year=st.sampled_from(YEARS), + payment=st.integers(min_value=1, max_value=30_000), +) +def test_net_incomes_rise_by_the_payment_less_its_tax(year, payment): + without = Simulation(situation=one_person("AK", year, HIGH_EARNINGS, 0)) + paid = Simulation(situation=one_person("AK", year, HIGH_EARNINGS, payment)) + tax = calculate(paid, "income_tax", year) - calculate(without, "income_tax", year) + if year == EXCLUDED_YEAR: + assert tax == pytest.approx(0, abs=TOLERANCE) + else: + assert 0 < tax < payment + for name in NET_INCOMES: + change = calculate(paid, name, year) - calculate(without, name, year) + assert change == pytest.approx(payment - tax, abs=TOLERANCE), name diff --git a/policyengine_us/variables/gov/irs/income/taxable_income/adjusted_gross_income/irs_gross_income/taxable_ak_energy_relief.py b/policyengine_us/variables/gov/irs/income/taxable_income/adjusted_gross_income/irs_gross_income/taxable_ak_energy_relief.py new file mode 100644 index 00000000000..d0e4f90f3a0 --- /dev/null +++ b/policyengine_us/variables/gov/irs/income/taxable_income/adjusted_gross_income/irs_gross_income/taxable_ak_energy_relief.py @@ -0,0 +1,31 @@ +from policyengine_us.model_api import * + + +class taxable_ak_energy_relief(Variable): + value_type = float + entity = Person + label = "Alaska energy relief payment in gross income" + unit = USD + documentation = ( + "The part of ak_energy_relief in federal gross income: none of the " + "2022 payment, whose exclusion the IRS said it would not challenge, " + "and all of each later payment, which Alaska pays as part of the " + "taxable dividend. See docs/validation/alaska-pfd.md." + ) + definition_period = YEAR + reference = ( + "https://www.law.cornell.edu/uscode/text/26/61", + "https://www.irs.gov/newsroom/irs-issues-guidance-on-state-tax-payments-to-help-taxpayers", + "https://www.irs.gov/pub/irs-drop/n-23-56.pdf#page=2", + "https://www.irs.gov/pub/irs-prior/p525--2024.pdf#page=32", + "https://pfd.alaska.gov/payments/tax-information", + ) + defined_for = StateCode.AK + + def formula(person, period, parameters): + p = parameters(period).gov.irs.gross_income + return where( + p.ak_energy_relief_excluded, + 0, + person("ak_energy_relief", period), + ) diff --git a/policyengine_us/variables/gov/states/ak/dor/ak_energy_relief.py b/policyengine_us/variables/gov/states/ak/dor/ak_energy_relief.py index 845c9a3efc3..15cb696a604 100644 --- a/policyengine_us/variables/gov/states/ak/dor/ak_energy_relief.py +++ b/policyengine_us/variables/gov/states/ak/dor/ak_energy_relief.py @@ -13,9 +13,9 @@ class ak_energy_relief(Variable): "person-level variable directly; excluding both Alaska transfers " "requires also overriding ak_permanent_fund_dividend for each person. " "The rounded 2022 energy payment is $662, separate from the $2,622 " - "regular PFD. Its exclusion from federal gross income follows the " - "IRS's 2022 nonchallenge convention, which does not establish a " - "statutory disaster-relief exclusion for every recipient or year. " + "regular PFD. taxable_ak_energy_relief holds the part in federal gross " + "income: none of the 2022 payment, whose exclusion the IRS said it " + "would not challenge, and all of each later payment. " "See docs/validation/alaska-pfd.md." ) unit = USD From 401163c663cd1464c470d7127c5fa2390ddedfa4 Mon Sep 17 00:00:00 2001 From: Max Ghenis Date: Thu, 5 Nov 2026 11:17:51 -0500 Subject: [PATCH 2/8] Record the 2022 Alaska energy relief reading as a source conflict candidate Co-Authored-By: Claude Opus 5.5 --- source_conflicts/candidates.yaml | 38 ++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/source_conflicts/candidates.yaml b/source_conflicts/candidates.yaml index f254eb0fbd8..67db2788328 100644 --- a/source_conflicts/candidates.yaml +++ b/source_conflicts/candidates.yaml @@ -11019,6 +11019,44 @@ candidates: Credit Limit Worksheet B (ctc_credit_limit_worksheet_b_applies.py). The legacy aggregates still count as an exclusion. The EITC keeps the broader section 32(c)(1)(C) test in elects_section_911_exclusion. Register the entry and add the marker once #10297 is on main. +- id: us:ak-energy-relief-2022-gross-income + program: income-tax + years: + from: 2022 + to: 2022 + type: tax + question: Does Alaska's 2022 supplemental energy relief payment count as federal gross income, when the IRS said + it would not challenge a taxpayer who leaves it out? + sources: + - kind: statute + citation: 26 U.S.C. 61(a) and 139(a), (b)(4) + url: https://www.law.cornell.edu/uscode/text/26/139 + - kind: guidance + citation: IRS News Release IR-2023-23, footnote 1 + url: https://www.irs.gov/newsroom/irs-issues-guidance-on-state-tax-payments-to-help-taxpayers + - kind: guidance + citation: IRS Notice 2023-56, sections 2, 3.03 and 3.04 + url: https://www.irs.gov/pub/irs-drop/n-23-56.pdf#page=2 + readings: + statute: Section 61(a) counts all income unless another section excludes it. Section 139 excludes a government + payment only in connection with a qualified disaster, and the general welfare exclusion requires a payment + based on individual or family need. + other: IR-2023-23 says that if a taxpayer leaves the payment out of 2022 income, the IRS will not challenge that + treatment, and its footnote limits the Alaska item to the supplemental energy relief payment. + example: An Alaskan adult with $50,000 of wages has 2022 gross income of $52,622 with the $662 payment left out, + and $53,284 with it counted. + pe_us: + follows: gap-fill + code: + - policyengine_us/parameters/gov/irs/gross_income/ak_energy_relief_excluded.yaml + - policyengine_us/variables/gov/irs/income/taxable_income/adjusted_gross_income/irs_gross_income/taxable_ak_energy_relief.py + prs: + - https://github.com/PolicyEngine/policyengine-us/pull/10669 + state: ruled + note: Whether the 2022 payment qualifies under either exclusion is a fact-intensive question, by the IRS's own + account, so the model takes the agency's position and the taxpayer's cheaper choice. Later payments count, since + Notice 2023-56 limits the news release to payments made in 2022 and Publication 525 for 2024 taxes the entire + dividend. - id: us:charitable-non-itemizer-2020-separate-cap program: income-tax years: From 6b9bccf54d57d69d5f8cfb12273d081be0d89e5b Mon Sep 17 00:00:00 2001 From: Max Ghenis Date: Thu, 5 Nov 2026 11:26:59 -0500 Subject: [PATCH 3/8] Widen the Alaska net income test's tolerance past float32 resolution At $500,000 of earnings, 32-bit floats resolve to $0.03125, and Hypothesis found a $1 payment in 2024 whose change in net income differed from the payment less its tax by $0.03. This run also halves the examples, since the behavior is linear in the payment. Co-Authored-By: Claude Opus 5.5 --- .../tests/test_ak_energy_relief_gross_income.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/policyengine_us/tests/test_ak_energy_relief_gross_income.py b/policyengine_us/tests/test_ak_energy_relief_gross_income.py index 5306b40e094..980b4322397 100644 --- a/policyengine_us/tests/test_ak_energy_relief_gross_income.py +++ b/policyengine_us/tests/test_ak_energy_relief_gross_income.py @@ -22,7 +22,9 @@ YEARS = (2022, 2023, 2024, 2025, 2026) EXCLUDED_YEAR = 2022 -TOLERANCE = 0.02 +# 32-bit floats resolve to $0.03125 at this income, and the net income formulas +# round several times, so a change can differ from its components by a few cents. +TOLERANCE = 0.25 # Earnings this high rule out every means-tested response. HIGH_EARNINGS = 500_000 NET_INCOMES = ("household_net_income", "spm_unit_net_income") @@ -50,7 +52,7 @@ def calculate(simulation, name, year): return float(simulation.calculate(name, year).sum()) -@settings(max_examples=20, deadline=None) +@settings(max_examples=10, deadline=None) @example(year=2022, earnings=50_000, payment=662) @example(year=2024, earnings=50_000, payment=298) @example(year=2026, earnings=0, payment=200) @@ -69,7 +71,7 @@ def test_gross_income_rises_by_the_payment_except_in_2022(year, earnings, paymen assert change == pytest.approx(expected, abs=TOLERANCE) -@settings(max_examples=20, deadline=None) +@settings(max_examples=10, deadline=None) @example(state="WA", year=2026, payment=200) @example(state="AK", year=2022, payment=662) @given( @@ -85,7 +87,7 @@ def test_taxable_amount_stays_within_the_payment_and_in_alaska(state, year, paym assert taxable == 0 -@settings(max_examples=20, deadline=None) +@settings(max_examples=10, deadline=None) @example(year=2022, payment=662) @example(year=2024, payment=298) @example(year=2026, payment=200) From b4e1a216006603c4519915bdb342f2738d08dec0 Mon Sep 17 00:00:00 2001 From: Max Ghenis Date: Sat, 7 Nov 2026 11:12:03 -0500 Subject: [PATCH 4/8] Count a supplied energy relief payment wherever the recipient lives, and keep 2022-program payments received in 2023 out The review of 6b9bccf5 found two errors. - taxable_ak_energy_relief carried defined_for = StateCode.AK, so a supplied payment left gross income once the recipient moved. ak_energy_relief already computes nothing outside Alaska, so the wrapper drops the gate, and a supplied payment counts as a supplied regular dividend does. - The exclusion ended in 2023, but section 4.03 of Notice 2023-56 keeps out a payment under a covered 2022 program received in 2023, and Alaska paid no energy relief under a 2023 program. The exclusion now runs through 2023. The YAML cases, property tests, validation page, conflict-log entry and changelog follow. Co-Authored-By: Claude Opus 5.5 --- .../ak-energy-relief-gross-income.fixed.md | 2 +- docs/validation/alaska-pfd.md | 23 +++++-- .../ak_energy_relief_excluded.yaml | 15 +++- .../taxable_ak_energy_relief.yaml | 51 +++++++++++++- .../test_ak_energy_relief_gross_income.py | 69 +++++++++---------- .../taxable_ak_energy_relief.py | 16 +++-- .../gov/states/ak/dor/ak_energy_relief.py | 5 +- source_conflicts/candidates.yaml | 15 ++-- 8 files changed, 140 insertions(+), 56 deletions(-) diff --git a/changelog.d/ak-energy-relief-gross-income.fixed.md b/changelog.d/ak-energy-relief-gross-income.fixed.md index 2f101f24312..3cd0f49b90e 100644 --- a/changelog.d/ak-energy-relief-gross-income.fixed.md +++ b/changelog.d/ak-energy-relief-gross-income.fixed.md @@ -1 +1 @@ -Count Alaska's energy relief payment in federal gross income from 2023 on, through a new `taxable_ak_energy_relief` source (#9919). IRS Publication 525 for 2024 taxes the entire $1,702 dividend, energy relief included, and the Permanent Fund Dividend Division reports the $1,200 dividend for 2026 the same way. The 2022 payment stays out, because IR-2023-23 says the IRS will not challenge its exclusion. +Count Alaska's energy relief payment in federal gross income from 2024 on, through a new `taxable_ak_energy_relief` source (#9919). IRS Publication 525 for 2024 taxes the entire $1,702 dividend, energy relief included, and the Permanent Fund Dividend Division reports the $1,200 dividend for 2026 the same way. Payments from the 2022 program stay out, whether received in 2022 or in 2023: IR-2023-23 says the IRS will not challenge their exclusion, and section 4.03 of Notice 2023-56 extends that to payments under the program received in 2023. A supplied payment counts wherever the recipient lives now. diff --git a/docs/validation/alaska-pfd.md b/docs/validation/alaska-pfd.md index 05177543d16..1e45cbb9ffd 100644 --- a/docs/validation/alaska-pfd.md +++ b/docs/validation/alaska-pfd.md @@ -59,8 +59,8 @@ release](https://dor.alaska.gov/docs/default-source/press-releases/2023_02_17-do income, and `gov.irs.gross_income.ak_energy_relief_excluded` sets that part by year. -The model leaves the 2022 payment out. This follows [IRS IR-2023-23, including its -Alaska +The model leaves the 2022 program's payment out. This follows [IRS IR-2023-23, +including its Alaska footnote](https://www.irs.gov/newsroom/irs-issues-guidance-on-state-tax-payments-to-help-taxpayers): the IRS said it would not challenge exclusion of the supplemental energy payment, while the regular PFD remained taxable. This was a 2022 administrative @@ -70,9 +70,19 @@ between the payment and that disaster; see [Notice 2023-56, section 3.04](https://www.irs.gov/pub/irs-drop/n-23-56.pdf#page=6). This model convention does not establish those facts. -The model counts every later payment. +The same treatment covers a payment from the 2022 program that a recipient +received in 2023. +[Notice 2023-56, section 4.03](https://www.irs.gov/pub/irs-drop/n-23-56.pdf#page=13) +lets a taxpayer who got no payment under a covered 2022 program during 2022 +exclude a payment under that program received in 2023, and +[IRS Publication 525 for 2023](https://www.irs.gov/pub/irs-prior/p525--2023.pdf#page=37) +repeats the rule. Alaska paid no energy relief under a 2023 program, so the +model leaves out any energy relief received in 2023. + +The model counts every payment from 2024 on. [Notice 2023-56, section 2](https://www.irs.gov/pub/irs-drop/n-23-56.pdf#page=2) -limits the news release to payments made in 2022. +says the news release applied only to payments made in 2022, and section 4.03 +adds only the 2023 payments under 2022 programs. [IRS Publication 525 for 2024](https://www.irs.gov/pub/irs-prior/p525--2024.pdf#page=32) tells filers not to reduce Schedule 1 line 8g by the energy relief portion, since the entire \$1,702 is taxable. The model's \$1,403.83 of PFD and \$298.17 of energy @@ -81,3 +91,8 @@ relief add up to that. The dividend for 2026 includes the energy relief payment, and that dividends for adults are taxable. The model's \$1,000 and \$200 add up to that, so an Alaskan adult with \$50,000 of wages has federal AGI of \$51,200 in 2026. + +A payment counts wherever the recipient lives. The model calculates +`ak_energy_relief` only for Alaska residents, but a payment supplied for someone +who has since moved stays in federal gross income, as a supplied regular +dividend does. diff --git a/policyengine_us/parameters/gov/irs/gross_income/ak_energy_relief_excluded.yaml b/policyengine_us/parameters/gov/irs/gross_income/ak_energy_relief_excluded.yaml index 8ec8bc2a34f..bede5be09ee 100644 --- a/policyengine_us/parameters/gov/irs/gross_income/ak_energy_relief_excluded.yaml +++ b/policyengine_us/parameters/gov/irs/gross_income/ak_energy_relief_excluded.yaml @@ -2,7 +2,10 @@ description: Taxpayers leave Alaska's energy relief payment out of federal gross values: 2022-01-01: true - 2023-01-01: false + # Alaska paid no energy relief under a 2023 program, so a payment received + # in 2023 came from the 2022 program, and section 4.03 of Notice 2023-56 + # keeps it out. + 2024-01-01: false metadata: unit: bool @@ -12,9 +15,15 @@ metadata: # The 2022 payment, footnote 1. - title: IRS News Release IR-2023-23, IRS issues guidance on state tax payments to help taxpayers href: https://www.irs.gov/newsroom/irs-issues-guidance-on-state-tax-payments-to-help-taxpayers - # The news release covers only payments made in 2022. - - title: IRS Notice 2023-56, Federal Income Tax Consequences of Certain State Payments + # Section 2: the news release covers payments made in 2022. + - title: IRS Notice 2023-56, Federal Income Tax Consequences of Certain State Payments, section 2 href: https://www.irs.gov/pub/irs-drop/n-23-56.pdf#page=2 + # Section 4.03: a payment received in 2023 under a 2022 program that the + # news release covered stays out. + - title: IRS Notice 2023-56, Federal Income Tax Consequences of Certain State Payments, section 4.03 + href: https://www.irs.gov/pub/irs-drop/n-23-56.pdf#page=13 + - title: IRS Publication 525 (2023), Spillover payments under certain 2022 state tax payment programs + href: https://www.irs.gov/pub/irs-prior/p525--2023.pdf#page=37 # The 2024 payment. - title: IRS Publication 525 (2024), Taxable and Nontaxable Income href: https://www.irs.gov/pub/irs-prior/p525--2024.pdf#page=32 diff --git a/policyengine_us/tests/policy/baseline/gov/irs/income/taxable_income/adjusted_gross_income/irs_gross_income/taxable_ak_energy_relief.yaml b/policyengine_us/tests/policy/baseline/gov/irs/income/taxable_income/adjusted_gross_income/irs_gross_income/taxable_ak_energy_relief.yaml index 3040438546b..c5c41320b73 100644 --- a/policyengine_us/tests/policy/baseline/gov/irs/income/taxable_income/adjusted_gross_income/irs_gross_income/taxable_ak_energy_relief.yaml +++ b/policyengine_us/tests/policy/baseline/gov/irs/income/taxable_income/adjusted_gross_income/irs_gross_income/taxable_ak_energy_relief.yaml @@ -31,11 +31,12 @@ ak_energy_relief: 200 taxable_ak_energy_relief: 200 -- name: Case 5, no amount outside Alaska. +- name: Case 5, the calculated payment reaches no one living outside Alaska. period: 2026 input: state_code: WA output: + ak_energy_relief: 0 taxable_ak_energy_relief: 0 - name: Case 6, a supplied 2022 payment stays out. @@ -166,3 +167,51 @@ taxable_ak_energy_relief: [200, 200] irs_gross_income: [51_200, 0] dependent_gross_income: [0, 1_200] + +- name: Case 14, Alaska paid no energy relief under a 2023 program. + period: 2023 + input: + state_code: AK + output: + ak_energy_relief: 0 + taxable_ak_energy_relief: 0 + +- name: Case 15, a payment from the 2022 program received in 2023 stays out (Notice 2023-56, section 4.03). + period: 2023 + input: + people: + person: + age: 40 + employment_income: 50_000 + ak_energy_relief: 662 + tax_units: + tax_unit: + members: [person] + households: + household: + members: [person] + state_code: AK + output: + taxable_ak_energy_relief: 0 + # 50,000 of wages and the $1,312 regular dividend for 2023. + irs_gross_income: 51_312 + +- name: Case 16, a supplied 2026 payment counts for a recipient who now lives outside Alaska, as a supplied dividend does. + period: 2026 + input: + people: + person: + age: 40 + employment_income: 50_000 + ak_permanent_fund_dividend: 1_000 + ak_energy_relief: 200 + tax_units: + tax_unit: + members: [person] + households: + household: + members: [person] + state_code: WA + output: + taxable_ak_energy_relief: 200 + irs_gross_income: 51_200 diff --git a/policyengine_us/tests/test_ak_energy_relief_gross_income.py b/policyengine_us/tests/test_ak_energy_relief_gross_income.py index 980b4322397..932d79057ce 100644 --- a/policyengine_us/tests/test_ak_energy_relief_gross_income.py +++ b/policyengine_us/tests/test_ak_energy_relief_gross_income.py @@ -1,17 +1,20 @@ """Invariants for Alaska's energy relief payment in federal gross income. -Three hold for any payment amount and any year from 2022 on. - -1. Gross income rises by the whole payment, except in 2022, when it does not - move (IR-2023-23, footnote 1). -2. taxable_ak_energy_relief stays between zero and the payment, and it stays at - zero outside Alaska. -3. With no means-tested response in play, the tax on the payment takes less than +Two hold for any payment amount, any year from 2022 on and any state of +residence. + +1. A supplied payment raises gross income by the whole payment, wherever the + recipient lives now, except a payment from the 2022 program, received in + 2022 or 2023, which leaves gross income where it was (IR-2023-23, + footnote 1; Notice 2023-56, section 4.03). taxable_ak_energy_relief holds + exactly that change. +2. With no means-tested response in play, the tax on the payment takes less than the payment, and household and SPM net income each rise by what remains. -YAML pins the amounts the IRS and Alaska publish for each year. These tests need -Hypothesis over amounts no published figure names, and they compare two -simulations of one household. +YAML pins the amounts the IRS and Alaska publish for each year, and that the +calculated payment reaches no one outside Alaska. These tests draw amounts, +years and states no published figure names, and they compare two simulations +of one household. """ import pytest @@ -21,7 +24,11 @@ from policyengine_us import Simulation YEARS = (2022, 2023, 2024, 2025, 2026) -EXCLUDED_YEAR = 2022 +# Payments from the 2022 program: received in 2022, or in 2023 under section +# 4.03 of Notice 2023-56, since Alaska paid no energy relief under a 2023 +# program. +EXCLUDED_YEARS = (2022, 2023) +STATES = ("AK", "HI", "TX", "WA") # 32-bit floats resolve to $0.03125 at this income, and the net income formulas # round several times, so a change can differ from its components by a few cents. TOLERANCE = 0.25 @@ -53,42 +60,34 @@ def calculate(simulation, name, year): @settings(max_examples=10, deadline=None) -@example(year=2022, earnings=50_000, payment=662) -@example(year=2024, earnings=50_000, payment=298) -@example(year=2026, earnings=0, payment=200) +@example(state="AK", year=2022, earnings=50_000, payment=662) +@example(state="AK", year=2023, earnings=50_000, payment=662) +@example(state="AK", year=2024, earnings=50_000, payment=298) +@example(state="WA", year=2026, earnings=50_000, payment=200) +@example(state="TX", year=2026, earnings=0, payment=200) @given( + state=st.sampled_from(STATES), year=st.sampled_from(YEARS), earnings=st.integers(min_value=0, max_value=300_000), payment=st.integers(min_value=1, max_value=30_000), ) -def test_gross_income_rises_by_the_payment_except_in_2022(year, earnings, payment): - without = Simulation(situation=one_person("AK", year, earnings, 0)) - paid = Simulation(situation=one_person("AK", year, earnings, payment)) +def test_gross_income_counts_the_payment_wherever_the_recipient_lives( + state, year, earnings, payment +): + without = Simulation(situation=one_person(state, year, earnings, 0)) + paid = Simulation(situation=one_person(state, year, earnings, payment)) + expected = 0 if year in EXCLUDED_YEARS else payment + taxable = calculate(paid, "taxable_ak_energy_relief", year) change = calculate(paid, "irs_gross_income", year) - calculate( without, "irs_gross_income", year ) - expected = 0 if year == EXCLUDED_YEAR else payment + assert taxable == pytest.approx(expected, abs=TOLERANCE) assert change == pytest.approx(expected, abs=TOLERANCE) -@settings(max_examples=10, deadline=None) -@example(state="WA", year=2026, payment=200) -@example(state="AK", year=2022, payment=662) -@given( - state=st.sampled_from(("AK", "HI", "TX", "WA")), - year=st.sampled_from(YEARS), - payment=st.integers(min_value=0, max_value=30_000), -) -def test_taxable_amount_stays_within_the_payment_and_in_alaska(state, year, payment): - simulation = Simulation(situation=one_person(state, year, 50_000, payment)) - taxable = calculate(simulation, "taxable_ak_energy_relief", year) - assert 0 <= taxable <= payment - if state != "AK": - assert taxable == 0 - - @settings(max_examples=10, deadline=None) @example(year=2022, payment=662) +@example(year=2023, payment=662) @example(year=2024, payment=298) @example(year=2026, payment=200) @given( @@ -99,7 +98,7 @@ def test_net_incomes_rise_by_the_payment_less_its_tax(year, payment): without = Simulation(situation=one_person("AK", year, HIGH_EARNINGS, 0)) paid = Simulation(situation=one_person("AK", year, HIGH_EARNINGS, payment)) tax = calculate(paid, "income_tax", year) - calculate(without, "income_tax", year) - if year == EXCLUDED_YEAR: + if year in EXCLUDED_YEARS: assert tax == pytest.approx(0, abs=TOLERANCE) else: assert 0 < tax < payment diff --git a/policyengine_us/variables/gov/irs/income/taxable_income/adjusted_gross_income/irs_gross_income/taxable_ak_energy_relief.py b/policyengine_us/variables/gov/irs/income/taxable_income/adjusted_gross_income/irs_gross_income/taxable_ak_energy_relief.py index d0e4f90f3a0..b0941e91575 100644 --- a/policyengine_us/variables/gov/irs/income/taxable_income/adjusted_gross_income/irs_gross_income/taxable_ak_energy_relief.py +++ b/policyengine_us/variables/gov/irs/income/taxable_income/adjusted_gross_income/irs_gross_income/taxable_ak_energy_relief.py @@ -7,22 +7,28 @@ class taxable_ak_energy_relief(Variable): label = "Alaska energy relief payment in gross income" unit = USD documentation = ( - "The part of ak_energy_relief in federal gross income: none of the " - "2022 payment, whose exclusion the IRS said it would not challenge, " - "and all of each later payment, which Alaska pays as part of the " - "taxable dividend. See docs/validation/alaska-pfd.md." + "The part of ak_energy_relief in federal gross income: none of a " + "payment from the 2022 program, whose exclusion the IRS said it would " + "not challenge, whether received in 2022 or in 2023; and all of each " + "payment from 2024 on, which Alaska pays as part of the taxable " + "dividend. A payment counts wherever the recipient lives now, as the " + "regular dividend does. See docs/validation/alaska-pfd.md." ) definition_period = YEAR reference = ( "https://www.law.cornell.edu/uscode/text/26/61", "https://www.irs.gov/newsroom/irs-issues-guidance-on-state-tax-payments-to-help-taxpayers", "https://www.irs.gov/pub/irs-drop/n-23-56.pdf#page=2", + "https://www.irs.gov/pub/irs-drop/n-23-56.pdf#page=13", + "https://www.irs.gov/pub/irs-prior/p525--2023.pdf#page=37", "https://www.irs.gov/pub/irs-prior/p525--2024.pdf#page=32", "https://pfd.alaska.gov/payments/tax-information", ) - defined_for = StateCode.AK def formula(person, period, parameters): + # No defined_for: ak_energy_relief computes nothing for people living + # outside Alaska, and a payment supplied for someone who has since + # moved stays in gross income. p = parameters(period).gov.irs.gross_income return where( p.ak_energy_relief_excluded, diff --git a/policyengine_us/variables/gov/states/ak/dor/ak_energy_relief.py b/policyengine_us/variables/gov/states/ak/dor/ak_energy_relief.py index 15cb696a604..c0f8f8a0650 100644 --- a/policyengine_us/variables/gov/states/ak/dor/ak_energy_relief.py +++ b/policyengine_us/variables/gov/states/ak/dor/ak_energy_relief.py @@ -14,8 +14,9 @@ class ak_energy_relief(Variable): "requires also overriding ak_permanent_fund_dividend for each person. " "The rounded 2022 energy payment is $662, separate from the $2,622 " "regular PFD. taxable_ak_energy_relief holds the part in federal gross " - "income: none of the 2022 payment, whose exclusion the IRS said it " - "would not challenge, and all of each later payment. " + "income: none of a payment from the 2022 program, whose exclusion the " + "IRS said it would not challenge, whether received in 2022 or in 2023, " + "and all of each payment from 2024 on. " "See docs/validation/alaska-pfd.md." ) unit = USD diff --git a/source_conflicts/candidates.yaml b/source_conflicts/candidates.yaml index 67db2788328..1190975dda6 100644 --- a/source_conflicts/candidates.yaml +++ b/source_conflicts/candidates.yaml @@ -11023,7 +11023,7 @@ candidates: program: income-tax years: from: 2022 - to: 2022 + to: 2023 type: tax question: Does Alaska's 2022 supplemental energy relief payment count as federal gross income, when the IRS said it would not challenge a taxpayer who leaves it out? @@ -11037,12 +11037,16 @@ candidates: - kind: guidance citation: IRS Notice 2023-56, sections 2, 3.03 and 3.04 url: https://www.irs.gov/pub/irs-drop/n-23-56.pdf#page=2 + - kind: guidance + citation: IRS Notice 2023-56, section 4.03 + url: https://www.irs.gov/pub/irs-drop/n-23-56.pdf#page=13 readings: statute: Section 61(a) counts all income unless another section excludes it. Section 139 excludes a government payment only in connection with a qualified disaster, and the general welfare exclusion requires a payment based on individual or family need. other: IR-2023-23 says that if a taxpayer leaves the payment out of 2022 income, the IRS will not challenge that - treatment, and its footnote limits the Alaska item to the supplemental energy relief payment. + treatment, and its footnote limits the Alaska item to the supplemental energy relief payment. Section 4.03 of + Notice 2023-56 extends the same treatment to a payment under the 2022 program received in 2023. example: An Alaskan adult with $50,000 of wages has 2022 gross income of $52,622 with the $662 payment left out, and $53,284 with it counted. pe_us: @@ -11054,9 +11058,10 @@ candidates: - https://github.com/PolicyEngine/policyengine-us/pull/10669 state: ruled note: Whether the 2022 payment qualifies under either exclusion is a fact-intensive question, by the IRS's own - account, so the model takes the agency's position and the taxpayer's cheaper choice. Later payments count, since - Notice 2023-56 limits the news release to payments made in 2022 and Publication 525 for 2024 taxes the entire - dividend. + account, so the model takes the agency's position and the taxpayer's cheaper choice. Alaska paid no energy relief + under a 2023 program, so the model also leaves out energy relief received in 2023. Payments from 2024 on count, + since Notice 2023-56 limits the news release to payments made in 2022 and to 2023 payments under 2022 programs, + and Publication 525 for 2024 taxes the entire dividend. - id: us:charitable-non-itemizer-2020-separate-cap program: income-tax years: From e0426d39cd1b86616e76c4ba635ebce9f1e210f8 Mon Sep 17 00:00:00 2001 From: Max Ghenis Date: Sat, 7 Nov 2026 13:44:30 -0500 Subject: [PATCH 5/8] Map Alaska's energy relief in the gross income coverage test, and name wage-replacement benefits in the North Dakota candidate With #10663 on main, its coverage test needs a resource for every gross income source. taxable_ak_energy_relief maps to ak_energy_relief, which spm_unit_benefits and household_benefits count. The us-nd:renters-refund-insurance-proceeds candidate now asks about wage-replacement disability benefits, since IRC 105(b) and (c) leave medical reimbursements and permanent-injury payments from employer-paid plans out of gross income. Co-Authored-By: Claude Opus 5.5 --- .../tests/test_household_spm_resource_parity.py | 1 + source_conflicts/candidates.yaml | 14 ++++++++------ 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/policyengine_us/tests/test_household_spm_resource_parity.py b/policyengine_us/tests/test_household_spm_resource_parity.py index 165d3b89f10..87cdf70f590 100644 --- a/policyengine_us/tests/test_household_spm_resource_parity.py +++ b/policyengine_us/tests/test_household_spm_resource_parity.py @@ -109,6 +109,7 @@ "taxable_retirement_distributions": "retirement_distributions", "miscellaneous_income": "miscellaneous_income", "ak_permanent_fund_dividend": "ak_permanent_fund_dividend", + "taxable_ak_energy_relief": "ak_energy_relief", "taxable_alimony_income": "alimony_income", "military_retirement_income": "military_retirement_income", } diff --git a/source_conflicts/candidates.yaml b/source_conflicts/candidates.yaml index dae40cb5a51..26c4c6caf0b 100644 --- a/source_conflicts/candidates.yaml +++ b/source_conflicts/candidates.yaml @@ -6706,8 +6706,9 @@ candidates: years: from: 2025 type: tax - question: Does the renter's refund count disability benefits from an employer-paid plan, when the Tax Commissioner's - guideline lists insurance policy proceeds for illness, injury or dismemberment among items that are not income? + question: Does the renter's refund count wage-replacement disability benefits from an employer-paid plan, when the Tax + Commissioner's guideline lists insurance policy proceeds for illness, injury or dismemberment among items that are + not income? sources: - kind: statute citation: N.D.C.C. 57-02-08.1(5)(c) @@ -6717,11 +6718,12 @@ candidates: url: https://www.tax.nd.gov/sites/www/files/documents/guidelines/homestead-veterans-renters/credits-for-nd-homeowners-renters-guideline.pdf#page=2 readings: statute: Income comes from all sources and leaves out any amount excluded from income by federal or state law. - Federal law excludes benefits from a plan the recipient paid for (IRC 104(a)(3)) and counts benefits from a plan - the employer paid for (IRC 105(a)). + Federal law excludes benefits from a plan the recipient paid for (IRC 104(a)(3)) and counts wage-replacement + benefits from a plan the employer paid for (IRC 105(a)), apart from the medical reimbursements and permanent-injury + payments that IRC 105(b) and (c) exclude. other: Item 11 lists the proceeds as not income, whoever paid for the policy. - example: A renter with $10,000 of wages and $12,000 of disability benefits, $5,000 of them from a plan the renter - paid for, has income of $17,000 under the statute and $10,000 under item 11. + example: A renter with $10,000 of wages and $12,000 of wage-replacement disability benefits, $5,000 of them from a + plan the renter paid for, has income of $17,000 under the statute and $10,000 under item 11. pe_us: follows: statute code: From 8aa38784c3dd15bba0baceff1dab3cab701ca2ff Mon Sep 17 00:00:00 2001 From: Max Ghenis Date: Sat, 7 Nov 2026 13:52:40 -0500 Subject: [PATCH 6/8] Name the IRS as the actor in the energy relief guidance, in active voice The changelog, validation doc, parameter comments, docstrings and conflict-log entry now name the IRS as the actor in each notice and publication they cite, and name who got each payment. Co-Authored-By: Claude Opus 5.5 --- .../ak-energy-relief-gross-income.fixed.md | 2 +- docs/validation/alaska-pfd.md | 46 ++++++++++--------- .../ak_energy_relief_excluded.yaml | 12 ++--- .../taxable_ak_energy_relief.py | 14 +++--- .../gov/states/ak/dor/ak_energy_relief.py | 4 +- source_conflicts/candidates.yaml | 21 +++++---- 6 files changed, 51 insertions(+), 48 deletions(-) diff --git a/changelog.d/ak-energy-relief-gross-income.fixed.md b/changelog.d/ak-energy-relief-gross-income.fixed.md index 3cd0f49b90e..06b1508cb96 100644 --- a/changelog.d/ak-energy-relief-gross-income.fixed.md +++ b/changelog.d/ak-energy-relief-gross-income.fixed.md @@ -1 +1 @@ -Count Alaska's energy relief payment in federal gross income from 2024 on, through a new `taxable_ak_energy_relief` source (#9919). IRS Publication 525 for 2024 taxes the entire $1,702 dividend, energy relief included, and the Permanent Fund Dividend Division reports the $1,200 dividend for 2026 the same way. Payments from the 2022 program stay out, whether received in 2022 or in 2023: IR-2023-23 says the IRS will not challenge their exclusion, and section 4.03 of Notice 2023-56 extends that to payments under the program received in 2023. A supplied payment counts wherever the recipient lives now. +Count Alaska's energy relief payment in federal gross income from 2024 on, through a new `taxable_ak_energy_relief` source (#9919). In Publication 525 for 2024, the IRS treats the entire $1,702 dividend as taxable, energy relief included, and the Permanent Fund Dividend Division reports the $1,200 dividend for 2026 the same way. Payments from the 2022 program stay out, whether recipients got them in 2022 or in 2023: the IRS said in IR-2023-23 that it would not challenge their exclusion, and in section 4.03 of Notice 2023-56 it extended that to payments under the program that taxpayers got in 2023. A payment that a dataset or user supplies counts wherever the recipient lives. diff --git a/docs/validation/alaska-pfd.md b/docs/validation/alaska-pfd.md index 1e45cbb9ffd..75dcee59952 100644 --- a/docs/validation/alaska-pfd.md +++ b/docs/validation/alaska-pfd.md @@ -70,29 +70,31 @@ between the payment and that disaster; see [Notice 2023-56, section 3.04](https://www.irs.gov/pub/irs-drop/n-23-56.pdf#page=6). This model convention does not establish those facts. -The same treatment covers a payment from the 2022 program that a recipient -received in 2023. -[Notice 2023-56, section 4.03](https://www.irs.gov/pub/irs-drop/n-23-56.pdf#page=13) -lets a taxpayer who got no payment under a covered 2022 program during 2022 -exclude a payment under that program received in 2023, and -[IRS Publication 525 for 2023](https://www.irs.gov/pub/irs-prior/p525--2023.pdf#page=37) -repeats the rule. Alaska paid no energy relief under a 2023 program, so the -model leaves out any energy relief received in 2023. +The model also leaves out a payment from the 2022 program that a recipient got +in 2023. In +[section 4.03 of Notice 2023-56](https://www.irs.gov/pub/irs-drop/n-23-56.pdf#page=13), +the IRS lets a taxpayer who got no payment under a covered 2022 program during +2022 exclude a payment under that program that they got in 2023, and it repeats +the rule in +[Publication 525 for 2023](https://www.irs.gov/pub/irs-prior/p525--2023.pdf#page=37). +Alaska paid no energy relief under a 2023 program, so the model leaves out any +energy relief that a recipient got in 2023. -The model counts every payment from 2024 on. -[Notice 2023-56, section 2](https://www.irs.gov/pub/irs-drop/n-23-56.pdf#page=2) -says the news release applied only to payments made in 2022, and section 4.03 -adds only the 2023 payments under 2022 programs. -[IRS Publication 525 for 2024](https://www.irs.gov/pub/irs-prior/p525--2024.pdf#page=32) -tells filers not to reduce Schedule 1 line 8g by the energy relief portion, since -the entire \$1,702 is taxable. The model's \$1,403.83 of PFD and \$298.17 of energy -relief add up to that. The +The model counts every payment from 2024 on. In +[section 2 of Notice 2023-56](https://www.irs.gov/pub/irs-drop/n-23-56.pdf#page=2), +the IRS limits the news release to payments that states made in 2022, and in +section 4.03 it adds only 2023 payments under 2022 programs. In +[Publication 525 for 2024](https://www.irs.gov/pub/irs-prior/p525--2024.pdf#page=32), +the IRS tells filers not to reduce Schedule 1 line 8g by the energy relief +portion and treats the entire \$1,702 as taxable. The model's \$1,403.83 of PFD +and \$298.17 of energy relief add up to that. The [PFD Division](https://pfd.alaska.gov/payments/tax-information) says the \$1,200 -dividend for 2026 includes the energy relief payment, and that dividends for adults -are taxable. The model's \$1,000 and \$200 add up to that, so an Alaskan adult with -\$50,000 of wages has federal AGI of \$51,200 in 2026. +dividend for 2026 includes the energy relief payment, and that dividends for +adults "are taxable for federal income tax purposes". The model's \$1,000 and +\$200 add up to that, so an Alaskan adult with \$50,000 of wages has federal AGI +of \$51,200 in 2026. A payment counts wherever the recipient lives. The model calculates -`ak_energy_relief` only for Alaska residents, but a payment supplied for someone -who has since moved stays in federal gross income, as a supplied regular -dividend does. +`ak_energy_relief` only for Alaska residents. When a dataset or user supplies a +payment for someone who has since moved, the payment stays in federal gross +income, as the regular dividend does. diff --git a/policyengine_us/parameters/gov/irs/gross_income/ak_energy_relief_excluded.yaml b/policyengine_us/parameters/gov/irs/gross_income/ak_energy_relief_excluded.yaml index bede5be09ee..2ed68580bcf 100644 --- a/policyengine_us/parameters/gov/irs/gross_income/ak_energy_relief_excluded.yaml +++ b/policyengine_us/parameters/gov/irs/gross_income/ak_energy_relief_excluded.yaml @@ -2,9 +2,9 @@ description: Taxpayers leave Alaska's energy relief payment out of federal gross values: 2022-01-01: true - # Alaska paid no energy relief under a 2023 program, so a payment received - # in 2023 came from the 2022 program, and section 4.03 of Notice 2023-56 - # keeps it out. + # Alaska paid no energy relief under a 2023 program, so any payment a + # recipient got in 2023 came from the 2022 program, and under section 4.03 + # of Notice 2023-56 the recipient may exclude it. 2024-01-01: false metadata: @@ -15,11 +15,11 @@ metadata: # The 2022 payment, footnote 1. - title: IRS News Release IR-2023-23, IRS issues guidance on state tax payments to help taxpayers href: https://www.irs.gov/newsroom/irs-issues-guidance-on-state-tax-payments-to-help-taxpayers - # Section 2: the news release covers payments made in 2022. + # Section 2: the news release covers payments that states made in 2022. - title: IRS Notice 2023-56, Federal Income Tax Consequences of Certain State Payments, section 2 href: https://www.irs.gov/pub/irs-drop/n-23-56.pdf#page=2 - # Section 4.03: a payment received in 2023 under a 2022 program that the - # news release covered stays out. + # Section 4.03: a taxpayer may exclude a payment that they got in 2023 under + # a 2022 program the news release covered. - title: IRS Notice 2023-56, Federal Income Tax Consequences of Certain State Payments, section 4.03 href: https://www.irs.gov/pub/irs-drop/n-23-56.pdf#page=13 - title: IRS Publication 525 (2023), Spillover payments under certain 2022 state tax payment programs diff --git a/policyengine_us/variables/gov/irs/income/taxable_income/adjusted_gross_income/irs_gross_income/taxable_ak_energy_relief.py b/policyengine_us/variables/gov/irs/income/taxable_income/adjusted_gross_income/irs_gross_income/taxable_ak_energy_relief.py index b0941e91575..aed5f9d9956 100644 --- a/policyengine_us/variables/gov/irs/income/taxable_income/adjusted_gross_income/irs_gross_income/taxable_ak_energy_relief.py +++ b/policyengine_us/variables/gov/irs/income/taxable_income/adjusted_gross_income/irs_gross_income/taxable_ak_energy_relief.py @@ -9,10 +9,10 @@ class taxable_ak_energy_relief(Variable): documentation = ( "The part of ak_energy_relief in federal gross income: none of a " "payment from the 2022 program, whose exclusion the IRS said it would " - "not challenge, whether received in 2022 or in 2023; and all of each " - "payment from 2024 on, which Alaska pays as part of the taxable " - "dividend. A payment counts wherever the recipient lives now, as the " - "regular dividend does. See docs/validation/alaska-pfd.md." + "not challenge, whether the recipient got it in 2022 or in 2023; and " + "all of each payment from 2024 on, which Alaska pays as part of the " + "taxable dividend. A payment counts wherever the recipient lives, as " + "the regular dividend does. See docs/validation/alaska-pfd.md." ) definition_period = YEAR reference = ( @@ -26,9 +26,9 @@ class taxable_ak_energy_relief(Variable): ) def formula(person, period, parameters): - # No defined_for: ak_energy_relief computes nothing for people living - # outside Alaska, and a payment supplied for someone who has since - # moved stays in gross income. + # No defined_for: ak_energy_relief computes nothing for people who live + # outside Alaska, and when a dataset or user supplies a payment for + # someone who has since moved, the payment stays in gross income. p = parameters(period).gov.irs.gross_income return where( p.ak_energy_relief_excluded, diff --git a/policyengine_us/variables/gov/states/ak/dor/ak_energy_relief.py b/policyengine_us/variables/gov/states/ak/dor/ak_energy_relief.py index c0f8f8a0650..df5782a0c33 100644 --- a/policyengine_us/variables/gov/states/ak/dor/ak_energy_relief.py +++ b/policyengine_us/variables/gov/states/ak/dor/ak_energy_relief.py @@ -15,8 +15,8 @@ class ak_energy_relief(Variable): "The rounded 2022 energy payment is $662, separate from the $2,622 " "regular PFD. taxable_ak_energy_relief holds the part in federal gross " "income: none of a payment from the 2022 program, whose exclusion the " - "IRS said it would not challenge, whether received in 2022 or in 2023, " - "and all of each payment from 2024 on. " + "IRS said it would not challenge, whether the recipient got it in 2022 " + "or in 2023, and all of each payment from 2024 on. " "See docs/validation/alaska-pfd.md." ) unit = USD diff --git a/source_conflicts/candidates.yaml b/source_conflicts/candidates.yaml index 26c4c6caf0b..58bc28be8ca 100644 --- a/source_conflicts/candidates.yaml +++ b/source_conflicts/candidates.yaml @@ -12089,11 +12089,12 @@ candidates: statute: Section 61(a) counts all income unless another section excludes it. Section 139 excludes a government payment only in connection with a qualified disaster, and the general welfare exclusion requires a payment based on individual or family need. - other: IR-2023-23 says that if a taxpayer leaves the payment out of 2022 income, the IRS will not challenge that - treatment, and its footnote limits the Alaska item to the supplemental energy relief payment. Section 4.03 of - Notice 2023-56 extends the same treatment to a payment under the 2022 program received in 2023. - example: An Alaskan adult with $50,000 of wages has 2022 gross income of $52,622 with the $662 payment left out, - and $53,284 with it counted. + other: In IR-2023-23, the IRS says that if a taxpayer leaves the payment out of 2022 income, it will not challenge + that treatment, and in a footnote it limits the Alaska item to the supplemental energy relief payment. In section + 4.03 of Notice 2023-56, the IRS extends the same treatment to a payment under the 2022 program that a taxpayer got + in 2023. + example: An Alaskan adult with $50,000 of wages has 2022 gross income of $52,622 if they leave the $662 payment + out, and $53,284 if they count it. pe_us: follows: gap-fill code: @@ -12102,11 +12103,11 @@ candidates: prs: - https://github.com/PolicyEngine/policyengine-us/pull/10669 state: ruled - note: Whether the 2022 payment qualifies under either exclusion is a fact-intensive question, by the IRS's own - account, so the model takes the agency's position and the taxpayer's cheaper choice. Alaska paid no energy relief - under a 2023 program, so the model also leaves out energy relief received in 2023. Payments from 2024 on count, - since Notice 2023-56 limits the news release to payments made in 2022 and to 2023 payments under 2022 programs, - and Publication 525 for 2024 taxes the entire dividend. + note: By the IRS's own account, whether the 2022 payment qualifies under either exclusion depends on the facts, + so the model takes the agency's position and the taxpayer's cheaper choice. Alaska paid no energy relief under a + 2023 program, so the model also leaves out energy relief that recipients got in 2023. Payments from 2024 on + count, since in Notice 2023-56 the IRS limits the news release to payments that states made in 2022 and to + 2023 payments under 2022 programs, and in Publication 525 for 2024 it treats the entire dividend as taxable. - id: us:charitable-non-itemizer-2020-separate-cap program: income-tax years: From e5c4307b186e6bd4f84e6429772fd2c8a080fa64 Mon Sep 17 00:00:00 2001 From: Max Ghenis Date: Sat, 7 Nov 2026 16:45:52 -0500 Subject: [PATCH 7/8] Ground the 2023 exclusion in Alaska's payment record Alaska paid no energy relief with the 2023 dividend, and it paid the relief that the Legislature added in 2023 with the 2024 dividend. So every energy relief payment that recipients got in 2023 came from the 2022 program. The comments, docs, a YAML case name and the candidate note had said Alaska paid under no 2023 program, which the 2024 payment contradicts under the way Notice 2023-56 names programs. Each place now states section 4.03's condition as well: the taxpayer got nothing under the program in 2022. It holds because Alaska paid the 2022 program's relief as part of one disbursement per eligible Alaskan. The parameter and the candidate cite the three Department of Revenue releases behind these facts. The docs, docstring and pull request text now say a supplied payment counts outside Alaska as a supplied regular dividend does. The North Dakota statute reading drops "wage-replacement", since the IRC 105(b) and (c) clause already names what IRC 105 leaves out. No formula or parameter value changes. Co-Authored-By: Claude Opus 5.5 --- .../ak-energy-relief-gross-income.fixed.md | 2 +- docs/validation/alaska-pfd.md | 22 +++++++---- .../ak_energy_relief_excluded.yaml | 27 +++++++++++--- .../taxable_ak_energy_relief.yaml | 4 +- .../test_ak_energy_relief_gross_income.py | 7 ++-- .../taxable_ak_energy_relief.py | 13 ++++--- source_conflicts/candidates.yaml | 37 +++++++++++++------ 7 files changed, 74 insertions(+), 38 deletions(-) diff --git a/changelog.d/ak-energy-relief-gross-income.fixed.md b/changelog.d/ak-energy-relief-gross-income.fixed.md index 06b1508cb96..d0d780a027e 100644 --- a/changelog.d/ak-energy-relief-gross-income.fixed.md +++ b/changelog.d/ak-energy-relief-gross-income.fixed.md @@ -1 +1 @@ -Count Alaska's energy relief payment in federal gross income from 2024 on, through a new `taxable_ak_energy_relief` source (#9919). In Publication 525 for 2024, the IRS treats the entire $1,702 dividend as taxable, energy relief included, and the Permanent Fund Dividend Division reports the $1,200 dividend for 2026 the same way. Payments from the 2022 program stay out, whether recipients got them in 2022 or in 2023: the IRS said in IR-2023-23 that it would not challenge their exclusion, and in section 4.03 of Notice 2023-56 it extended that to payments under the program that taxpayers got in 2023. A payment that a dataset or user supplies counts wherever the recipient lives. +Count Alaska's energy relief payment in federal gross income from 2024 on, through a new `taxable_ak_energy_relief` source (#9919). In Publication 525 for 2024, the IRS treats the entire $1,702 dividend as taxable, energy relief included, and the Permanent Fund Dividend Division says the same of the $1,200 dividend for 2026. Payments from the 2022 program stay out, whether recipients got them in 2022 or in 2023. In IR-2023-23, the IRS said it would not challenge their exclusion. In section 4.03 of Notice 2023-56, it let a taxpayer who got nothing under the program in 2022 exclude a payment they got in 2023. A payment that a dataset or user supplies counts wherever the recipient lives. diff --git a/docs/validation/alaska-pfd.md b/docs/validation/alaska-pfd.md index 75dcee59952..2635ee31aec 100644 --- a/docs/validation/alaska-pfd.md +++ b/docs/validation/alaska-pfd.md @@ -73,17 +73,23 @@ does not establish those facts. The model also leaves out a payment from the 2022 program that a recipient got in 2023. In [section 4.03 of Notice 2023-56](https://www.irs.gov/pub/irs-drop/n-23-56.pdf#page=13), -the IRS lets a taxpayer who got no payment under a covered 2022 program during -2022 exclude a payment under that program that they got in 2023, and it repeats -the rule in +the IRS lets a taxpayer who got nothing under a covered 2022 program in 2022 +exclude a payment under it that they got in 2023. It repeats the rule in [Publication 525 for 2023](https://www.irs.gov/pub/irs-prior/p525--2023.pdf#page=37). -Alaska paid no energy relief under a 2023 program, so the model leaves out any -energy relief that a recipient got in 2023. +Alaska paid the 2022 program's energy relief as part of +[one \$3,284 disbursement per eligible Alaskan](https://dor.alaska.gov/docs/default-source/press-releases/2023_02_17-dor-response-to-irs-guidance-on-2022-pfd.pdf#page=1), +so a recipient who got it in 2023 got nothing under the program in 2022. Alaska +paid no energy relief with the +[2023 dividend](https://dor.alaska.gov/department-of-revenue/news-detail/2023/09/21/dor-announces-2023-pfd-amount), +and it paid the relief that the Legislature +[added in 2023](https://dor.alaska.gov/department-of-revenue/news-detail/2024/09/19/department-of-revenue-announces-2024-permanent-fund-dividend-amount-and-energy-relief) +with the 2024 dividend. So every energy relief payment that a recipient got in +2023 came from the 2022 program, and the model leaves all of them out. The model counts every payment from 2024 on. In [section 2 of Notice 2023-56](https://www.irs.gov/pub/irs-drop/n-23-56.pdf#page=2), -the IRS limits the news release to payments that states made in 2022, and in -section 4.03 it adds only 2023 payments under 2022 programs. In +the IRS says the news release applied only to payments that states made in +2022, and in section 4.03 it adds only 2023 payments under 2022 programs. In [Publication 525 for 2024](https://www.irs.gov/pub/irs-prior/p525--2024.pdf#page=32), the IRS tells filers not to reduce Schedule 1 line 8g by the energy relief portion and treats the entire \$1,702 as taxable. The model's \$1,403.83 of PFD @@ -97,4 +103,4 @@ of \$51,200 in 2026. A payment counts wherever the recipient lives. The model calculates `ak_energy_relief` only for Alaska residents. When a dataset or user supplies a payment for someone who has since moved, the payment stays in federal gross -income, as the regular dividend does. +income, as a supplied regular dividend does. diff --git a/policyengine_us/parameters/gov/irs/gross_income/ak_energy_relief_excluded.yaml b/policyengine_us/parameters/gov/irs/gross_income/ak_energy_relief_excluded.yaml index 2ed68580bcf..660ef51459f 100644 --- a/policyengine_us/parameters/gov/irs/gross_income/ak_energy_relief_excluded.yaml +++ b/policyengine_us/parameters/gov/irs/gross_income/ak_energy_relief_excluded.yaml @@ -2,9 +2,12 @@ description: Taxpayers leave Alaska's energy relief payment out of federal gross values: 2022-01-01: true - # Alaska paid no energy relief under a 2023 program, so any payment a - # recipient got in 2023 came from the 2022 program, and under section 4.03 - # of Notice 2023-56 the recipient may exclude it. + # Alaska paid no energy relief with the 2023 dividend. It paid the relief that + # the Legislature added in 2023 with the 2024 dividend, so any payment that a + # recipient got in 2023 came from the 2022 program. Alaska paid that program's + # relief as part of one disbursement per eligible Alaskan, so a recipient who + # got it in 2023 got nothing under the program in 2022. In section 4.03 of + # Notice 2023-56, the IRS lets that taxpayer exclude the payment. 2024-01-01: false metadata: @@ -15,15 +18,27 @@ metadata: # The 2022 payment, footnote 1. - title: IRS News Release IR-2023-23, IRS issues guidance on state tax payments to help taxpayers href: https://www.irs.gov/newsroom/irs-issues-guidance-on-state-tax-payments-to-help-taxpayers - # Section 2: the news release covers payments that states made in 2022. + # Alaska paid the 2022 program's relief as part of one disbursement per + # eligible Alaskan. + - title: Alaska Department of Revenue, DOR Response to IRS Guidance on 2022 PFD + href: https://dor.alaska.gov/docs/default-source/press-releases/2023_02_17-dor-response-to-irs-guidance-on-2022-pfd.pdf#page=1 + # Section 2: the news release applied only to payments that states made in + # 2022. - title: IRS Notice 2023-56, Federal Income Tax Consequences of Certain State Payments, section 2 href: https://www.irs.gov/pub/irs-drop/n-23-56.pdf#page=2 - # Section 4.03: a taxpayer may exclude a payment that they got in 2023 under - # a 2022 program the news release covered. + # Section 4.03: a taxpayer who got no payment under a 2022 program that the + # news release covered may exclude a payment under it that they got in 2023. - title: IRS Notice 2023-56, Federal Income Tax Consequences of Certain State Payments, section 4.03 href: https://www.irs.gov/pub/irs-drop/n-23-56.pdf#page=13 - title: IRS Publication 525 (2023), Spillover payments under certain 2022 state tax payment programs href: https://www.irs.gov/pub/irs-prior/p525--2023.pdf#page=37 + # Alaska paid no energy relief with the 2023 dividend. + - title: Alaska Department of Revenue, Department of Revenue Announces 2023 PFD Amount + href: https://dor.alaska.gov/department-of-revenue/news-detail/2023/09/21/dor-announces-2023-pfd-amount + # Alaska paid the relief that the Legislature added in 2023 with the 2024 + # dividend. + - title: Alaska Department of Revenue, Department of Revenue Announces 2024 Permanent Fund Dividend Amount and Energy Relief + href: https://dor.alaska.gov/department-of-revenue/news-detail/2024/09/19/department-of-revenue-announces-2024-permanent-fund-dividend-amount-and-energy-relief # The 2024 payment. - title: IRS Publication 525 (2024), Taxable and Nontaxable Income href: https://www.irs.gov/pub/irs-prior/p525--2024.pdf#page=32 diff --git a/policyengine_us/tests/policy/baseline/gov/irs/income/taxable_income/adjusted_gross_income/irs_gross_income/taxable_ak_energy_relief.yaml b/policyengine_us/tests/policy/baseline/gov/irs/income/taxable_income/adjusted_gross_income/irs_gross_income/taxable_ak_energy_relief.yaml index c5c41320b73..108e5e2fc27 100644 --- a/policyengine_us/tests/policy/baseline/gov/irs/income/taxable_income/adjusted_gross_income/irs_gross_income/taxable_ak_energy_relief.yaml +++ b/policyengine_us/tests/policy/baseline/gov/irs/income/taxable_income/adjusted_gross_income/irs_gross_income/taxable_ak_energy_relief.yaml @@ -168,7 +168,7 @@ irs_gross_income: [51_200, 0] dependent_gross_income: [0, 1_200] -- name: Case 14, Alaska paid no energy relief under a 2023 program. +- name: Case 14, Alaska paid no energy relief with the 2023 dividend. period: 2023 input: state_code: AK @@ -176,7 +176,7 @@ ak_energy_relief: 0 taxable_ak_energy_relief: 0 -- name: Case 15, a payment from the 2022 program received in 2023 stays out (Notice 2023-56, section 4.03). +- name: Case 15, a 2022-program payment that the recipient got in 2023 stays out (Notice 2023-56, section 4.03). period: 2023 input: people: diff --git a/policyengine_us/tests/test_ak_energy_relief_gross_income.py b/policyengine_us/tests/test_ak_energy_relief_gross_income.py index 932d79057ce..5a7f32a5cd7 100644 --- a/policyengine_us/tests/test_ak_energy_relief_gross_income.py +++ b/policyengine_us/tests/test_ak_energy_relief_gross_income.py @@ -24,9 +24,10 @@ from policyengine_us import Simulation YEARS = (2022, 2023, 2024, 2025, 2026) -# Payments from the 2022 program: received in 2022, or in 2023 under section -# 4.03 of Notice 2023-56, since Alaska paid no energy relief under a 2023 -# program. +# Recipients got the 2022 program's payments in 2022 or 2023, and the model +# leaves out energy relief from both years (IR-2023-23; Notice 2023-56, section +# 4.03). Alaska paid no energy relief with the 2023 dividend and paid the relief +# the Legislature added in 2023 with the 2024 dividend. EXCLUDED_YEARS = (2022, 2023) STATES = ("AK", "HI", "TX", "WA") # 32-bit floats resolve to $0.03125 at this income, and the net income formulas diff --git a/policyengine_us/variables/gov/irs/income/taxable_income/adjusted_gross_income/irs_gross_income/taxable_ak_energy_relief.py b/policyengine_us/variables/gov/irs/income/taxable_income/adjusted_gross_income/irs_gross_income/taxable_ak_energy_relief.py index aed5f9d9956..665c7b6f02d 100644 --- a/policyengine_us/variables/gov/irs/income/taxable_income/adjusted_gross_income/irs_gross_income/taxable_ak_energy_relief.py +++ b/policyengine_us/variables/gov/irs/income/taxable_income/adjusted_gross_income/irs_gross_income/taxable_ak_energy_relief.py @@ -7,12 +7,13 @@ class taxable_ak_energy_relief(Variable): label = "Alaska energy relief payment in gross income" unit = USD documentation = ( - "The part of ak_energy_relief in federal gross income: none of a " - "payment from the 2022 program, whose exclusion the IRS said it would " - "not challenge, whether the recipient got it in 2022 or in 2023; and " - "all of each payment from 2024 on, which Alaska pays as part of the " - "taxable dividend. A payment counts wherever the recipient lives, as " - "the regular dividend does. See docs/validation/alaska-pfd.md." + "The part of ak_energy_relief in federal gross income. It holds none " + "of a payment from the 2022 program, which the IRS lets recipients " + "exclude whether they got it in 2022 or in 2023. It holds all of each " + "payment from 2024 on, which Alaska pays as part of the taxable " + "dividend. A payment that a dataset or user supplies counts wherever " + "the recipient lives, as a supplied regular dividend does. See " + "docs/validation/alaska-pfd.md." ) definition_period = YEAR reference = ( diff --git a/source_conflicts/candidates.yaml b/source_conflicts/candidates.yaml index 58bc28be8ca..e6935160e8c 100644 --- a/source_conflicts/candidates.yaml +++ b/source_conflicts/candidates.yaml @@ -6717,10 +6717,10 @@ candidates: citation: Property Tax Credits for North Dakota Homeowners and Renters, item 11 url: https://www.tax.nd.gov/sites/www/files/documents/guidelines/homestead-veterans-renters/credits-for-nd-homeowners-renters-guideline.pdf#page=2 readings: - statute: Income comes from all sources and leaves out any amount excluded from income by federal or state law. - Federal law excludes benefits from a plan the recipient paid for (IRC 104(a)(3)) and counts wage-replacement - benefits from a plan the employer paid for (IRC 105(a)), apart from the medical reimbursements and permanent-injury - payments that IRC 105(b) and (c) exclude. + statute: Income comes from all sources and leaves out any amount that federal or state law excludes from income. + Federal law excludes benefits from a plan the recipient paid for (IRC 104(a)(3)). It counts benefits from a plan + the employer paid for (IRC 105(a)), other than the medical reimbursements and permanent-injury payments that IRC + 105(b) and (c) exclude. other: Item 11 lists the proceeds as not income, whoever paid for the policy. example: A renter with $10,000 of wages and $12,000 of wage-replacement disability benefits, $5,000 of them from a plan the renter paid for, has income of $17,000 under the statute and $10,000 under item 11. @@ -12085,14 +12085,24 @@ candidates: - kind: guidance citation: IRS Notice 2023-56, section 4.03 url: https://www.irs.gov/pub/irs-drop/n-23-56.pdf#page=13 + - kind: agency-practice + citation: Alaska Department of Revenue, DOR Response to IRS Guidance on 2022 PFD (February 17, 2023) + url: https://dor.alaska.gov/docs/default-source/press-releases/2023_02_17-dor-response-to-irs-guidance-on-2022-pfd.pdf#page=1 + - kind: agency-practice + citation: Alaska Department of Revenue, Department of Revenue Announces 2023 PFD Amount (September 21, 2023) + url: https://dor.alaska.gov/department-of-revenue/news-detail/2023/09/21/dor-announces-2023-pfd-amount + - kind: agency-practice + citation: Alaska Department of Revenue, Department of Revenue Announces 2024 Permanent Fund Dividend Amount and Energy + Relief (September 19, 2024) + url: https://dor.alaska.gov/department-of-revenue/news-detail/2024/09/19/department-of-revenue-announces-2024-permanent-fund-dividend-amount-and-energy-relief readings: statute: Section 61(a) counts all income unless another section excludes it. Section 139 excludes a government payment only in connection with a qualified disaster, and the general welfare exclusion requires a payment based on individual or family need. other: In IR-2023-23, the IRS says that if a taxpayer leaves the payment out of 2022 income, it will not challenge - that treatment, and in a footnote it limits the Alaska item to the supplemental energy relief payment. In section - 4.03 of Notice 2023-56, the IRS extends the same treatment to a payment under the 2022 program that a taxpayer got - in 2023. + that treatment. In a footnote, it limits the Alaska item to the supplemental energy relief payment. In section + 4.03 of Notice 2023-56, the IRS lets a taxpayer who got nothing under the 2022 program in 2022 exclude a payment + under it that they got in 2023. example: An Alaskan adult with $50,000 of wages has 2022 gross income of $52,622 if they leave the $662 payment out, and $53,284 if they count it. pe_us: @@ -12103,11 +12113,14 @@ candidates: prs: - https://github.com/PolicyEngine/policyengine-us/pull/10669 state: ruled - note: By the IRS's own account, whether the 2022 payment qualifies under either exclusion depends on the facts, - so the model takes the agency's position and the taxpayer's cheaper choice. Alaska paid no energy relief under a - 2023 program, so the model also leaves out energy relief that recipients got in 2023. Payments from 2024 on - count, since in Notice 2023-56 the IRS limits the news release to payments that states made in 2022 and to - 2023 payments under 2022 programs, and in Publication 525 for 2024 it treats the entire dividend as taxable. + note: By the IRS's own account, whether the 2022 payment qualifies under either exclusion depends on the facts, so the + model takes the agency's position and the taxpayer's cheaper choice. Alaska paid no energy relief with the 2023 + dividend and paid the relief that the Legislature added in 2023 with the 2024 dividend. So any energy relief that a + recipient got in 2023 came from the 2022 program. Alaska paid each eligible Alaskan once under that program, so a + 2023 recipient got nothing under it in 2022, and the model leaves the 2023 payment out too. The model counts + payments from 2024 on. In Notice 2023-56, the IRS says the news release applied only to payments that states made in + 2022, and in section 4.03 it adds only 2023 payments under 2022 programs. In Publication 525 for 2024, the IRS + treats the entire 2024 dividend as taxable. - id: us:charitable-non-itemizer-2020-separate-cap program: income-tax years: From a4043b2a829fe58828c59b9501a930ebe56037c2 Mon Sep 17 00:00:00 2001 From: Max Ghenis Date: Sun, 8 Nov 2026 13:02:08 -0500 Subject: [PATCH 8/8] Ground the 2023 exclusion in Alaska's annual reports, and use active clauses - Cite page 4 of the PFD Division's 2023 annual report, which funds the 2023 dividend from the dividend fund's balance and the Permanent Fund's earnings with no energy relief, and page 4 of the 2024 report, which adds $190.3 million from the general fund for the energy relief. - Describe section 4.03 of Notice 2023-56 as addressing the 2022 programs that IR-2023-23 covered. - Replace participial phrasing ("a supplied payment", "energy relief included") with active clauses in the docs, docstrings, YAML case names, changelog and candidates.yaml, and say that a regular dividend that a dataset or user supplies also counts for someone who has moved. - Shorten the ak_energy_relief docstring, and state in the property test's docstring which households each test draws and where the net income invariant stops holding. Co-Authored-By: Claude Opus 5.5 --- .../ak-energy-relief-gross-income.fixed.md | 2 +- docs/validation/alaska-pfd.md | 29 +++++++++++-------- .../ak_energy_relief_excluded.yaml | 7 +++-- .../taxable_ak_energy_relief.yaml | 8 ++--- .../test_ak_energy_relief_gross_income.py | 28 +++++++++--------- .../taxable_ak_energy_relief.py | 4 +-- .../gov/states/ak/dor/ak_energy_relief.py | 5 ++-- source_conflicts/candidates.yaml | 8 ++--- 8 files changed, 48 insertions(+), 43 deletions(-) diff --git a/changelog.d/ak-energy-relief-gross-income.fixed.md b/changelog.d/ak-energy-relief-gross-income.fixed.md index d0d780a027e..006531e3039 100644 --- a/changelog.d/ak-energy-relief-gross-income.fixed.md +++ b/changelog.d/ak-energy-relief-gross-income.fixed.md @@ -1 +1 @@ -Count Alaska's energy relief payment in federal gross income from 2024 on, through a new `taxable_ak_energy_relief` source (#9919). In Publication 525 for 2024, the IRS treats the entire $1,702 dividend as taxable, energy relief included, and the Permanent Fund Dividend Division says the same of the $1,200 dividend for 2026. Payments from the 2022 program stay out, whether recipients got them in 2022 or in 2023. In IR-2023-23, the IRS said it would not challenge their exclusion. In section 4.03 of Notice 2023-56, it let a taxpayer who got nothing under the program in 2022 exclude a payment they got in 2023. A payment that a dataset or user supplies counts wherever the recipient lives. +Count Alaska's energy relief payment in federal gross income from 2024 on, through a new `taxable_ak_energy_relief` source (#9919). In Publication 525 for 2024, the IRS treats the entire $1,702 dividend as taxable, including the energy relief. The Permanent Fund Dividend Division says the same of the $1,200 dividend for 2026. Payments from the 2022 program stay out, whether recipients got them in 2022 or in 2023. In IR-2023-23, the IRS said it would not challenge a taxpayer who left out a payment that Alaska made in 2022. In section 4.03 of Notice 2023-56, it let a taxpayer who got nothing under the program in 2022 exclude a payment they got in 2023. A payment that a dataset or user supplies counts wherever the recipient lives. diff --git a/docs/validation/alaska-pfd.md b/docs/validation/alaska-pfd.md index 2635ee31aec..77755c51f44 100644 --- a/docs/validation/alaska-pfd.md +++ b/docs/validation/alaska-pfd.md @@ -73,23 +73,28 @@ does not establish those facts. The model also leaves out a payment from the 2022 program that a recipient got in 2023. In [section 4.03 of Notice 2023-56](https://www.irs.gov/pub/irs-drop/n-23-56.pdf#page=13), -the IRS lets a taxpayer who got nothing under a covered 2022 program in 2022 -exclude a payment under it that they got in 2023. It repeats the rule in +the IRS addresses the 2022 programs that the news release covered. It lets a +taxpayer who got nothing under such a program in 2022 exclude a payment that +they got under it in 2023. It repeats the rule in [Publication 525 for 2023](https://www.irs.gov/pub/irs-prior/p525--2023.pdf#page=37). + Alaska paid the 2022 program's energy relief as part of [one \$3,284 disbursement per eligible Alaskan](https://dor.alaska.gov/docs/default-source/press-releases/2023_02_17-dor-response-to-irs-guidance-on-2022-pfd.pdf#page=1), so a recipient who got it in 2023 got nothing under the program in 2022. Alaska -paid no energy relief with the -[2023 dividend](https://dor.alaska.gov/department-of-revenue/news-detail/2023/09/21/dor-announces-2023-pfd-amount), -and it paid the relief that the Legislature +paid the \$1,312 dividend for 2023 from the dividend fund's balance and the +Permanent Fund's earnings, with no energy relief +([PFD Division annual report for 2023](https://dor.alaska.gov/docs/permanentfunddividendlibraries/annual-reports/2023-pfd-annual-report.pdf?sfvrsn=6f6d9c6c_1#page=4), +page 4). It paid the relief that the Legislature [added in 2023](https://dor.alaska.gov/department-of-revenue/news-detail/2024/09/19/department-of-revenue-announces-2024-permanent-fund-dividend-amount-and-energy-relief) -with the 2024 dividend. So every energy relief payment that a recipient got in -2023 came from the 2022 program, and the model leaves all of them out. +with the 2024 dividend, using \$190.3 million from the general fund +([annual report for 2024](https://dor.alaska.gov/docs/permanentfunddividendlibraries/annual-reports/2024-pfd-annual-report.pdf?sfvrsn=214f2751_1#page=4), +page 4). So every energy relief payment that a recipient got in 2023 came from +the 2022 program, and the model leaves all of them out. The model counts every payment from 2024 on. In [section 2 of Notice 2023-56](https://www.irs.gov/pub/irs-drop/n-23-56.pdf#page=2), the IRS says the news release applied only to payments that states made in -2022, and in section 4.03 it adds only 2023 payments under 2022 programs. In +2022. In section 4.03, it adds only 2023 payments under 2022 programs. In [Publication 525 for 2024](https://www.irs.gov/pub/irs-prior/p525--2024.pdf#page=32), the IRS tells filers not to reduce Schedule 1 line 8g by the energy relief portion and treats the entire \$1,702 as taxable. The model's \$1,403.83 of PFD @@ -100,7 +105,7 @@ adults "are taxable for federal income tax purposes". The model's \$1,000 and \$200 add up to that, so an Alaskan adult with \$50,000 of wages has federal AGI of \$51,200 in 2026. -A payment counts wherever the recipient lives. The model calculates -`ak_energy_relief` only for Alaska residents. When a dataset or user supplies a -payment for someone who has since moved, the payment stays in federal gross -income, as a supplied regular dividend does. +A payment counts wherever the recipient lives, though the model calculates +`ak_energy_relief` only for Alaska residents. When a dataset or user supplies +energy relief or a regular dividend for someone who has since moved, the amount +stays in federal gross income. diff --git a/policyengine_us/parameters/gov/irs/gross_income/ak_energy_relief_excluded.yaml b/policyengine_us/parameters/gov/irs/gross_income/ak_energy_relief_excluded.yaml index 660ef51459f..76e327d5f21 100644 --- a/policyengine_us/parameters/gov/irs/gross_income/ak_energy_relief_excluded.yaml +++ b/policyengine_us/parameters/gov/irs/gross_income/ak_energy_relief_excluded.yaml @@ -32,9 +32,10 @@ metadata: href: https://www.irs.gov/pub/irs-drop/n-23-56.pdf#page=13 - title: IRS Publication 525 (2023), Spillover payments under certain 2022 state tax payment programs href: https://www.irs.gov/pub/irs-prior/p525--2023.pdf#page=37 - # Alaska paid no energy relief with the 2023 dividend. - - title: Alaska Department of Revenue, Department of Revenue Announces 2023 PFD Amount - href: https://dor.alaska.gov/department-of-revenue/news-detail/2023/09/21/dor-announces-2023-pfd-amount + # Page 4: Alaska paid the 2023 dividend from the dividend fund's balance and + # the Permanent Fund's earnings, with no energy relief. + - title: Alaska Permanent Fund Dividend Division, Annual Report 2023, dividend calculation + href: https://dor.alaska.gov/docs/permanentfunddividendlibraries/annual-reports/2023-pfd-annual-report.pdf?sfvrsn=6f6d9c6c_1#page=4 # Alaska paid the relief that the Legislature added in 2023 with the 2024 # dividend. - title: Alaska Department of Revenue, Department of Revenue Announces 2024 Permanent Fund Dividend Amount and Energy Relief diff --git a/policyengine_us/tests/policy/baseline/gov/irs/income/taxable_income/adjusted_gross_income/irs_gross_income/taxable_ak_energy_relief.yaml b/policyengine_us/tests/policy/baseline/gov/irs/income/taxable_income/adjusted_gross_income/irs_gross_income/taxable_ak_energy_relief.yaml index 108e5e2fc27..25ec90f291f 100644 --- a/policyengine_us/tests/policy/baseline/gov/irs/income/taxable_income/adjusted_gross_income/irs_gross_income/taxable_ak_energy_relief.yaml +++ b/policyengine_us/tests/policy/baseline/gov/irs/income/taxable_income/adjusted_gross_income/irs_gross_income/taxable_ak_energy_relief.yaml @@ -31,7 +31,7 @@ ak_energy_relief: 200 taxable_ak_energy_relief: 200 -- name: Case 5, the calculated payment reaches no one living outside Alaska. +- name: Case 5, the model calculates no payment for someone living outside Alaska. period: 2026 input: state_code: WA @@ -39,7 +39,7 @@ ak_energy_relief: 0 taxable_ak_energy_relief: 0 -- name: Case 6, a supplied 2022 payment stays out. +- name: Case 6, a 2022 payment that a user supplies stays out. period: 2022 input: state_code: AK @@ -47,7 +47,7 @@ output: taxable_ak_energy_relief: 0 -- name: Case 7, a supplied 2026 payment counts in full. +- name: Case 7, a 2026 payment that a user supplies counts in full. period: 2026 input: state_code: AK @@ -196,7 +196,7 @@ # 50,000 of wages and the $1,312 regular dividend for 2023. irs_gross_income: 51_312 -- name: Case 16, a supplied 2026 payment counts for a recipient who now lives outside Alaska, as a supplied dividend does. +- name: Case 16, a 2026 payment and dividend that a user supplies count for a recipient who now lives outside Alaska. period: 2026 input: people: diff --git a/policyengine_us/tests/test_ak_energy_relief_gross_income.py b/policyengine_us/tests/test_ak_energy_relief_gross_income.py index 5a7f32a5cd7..d763e14dff0 100644 --- a/policyengine_us/tests/test_ak_energy_relief_gross_income.py +++ b/policyengine_us/tests/test_ak_energy_relief_gross_income.py @@ -1,20 +1,20 @@ """Invariants for Alaska's energy relief payment in federal gross income. -Two hold for any payment amount, any year from 2022 on and any state of -residence. +1. From 2024 on, taxable_ak_energy_relief equals a payment that a dataset or + user supplies, wherever the recipient lives, and in 2022 and 2023 it holds + zero (IR-2023-23, footnote 1; Notice 2023-56, section 4.03). For a single + filer with no income but wages, irs_gross_income rises by the same amount. + Social Security that the payment makes taxable adds to the rise. +2. For a single Alaskan with $500,000 of wages, the tax on the payment stays + below the payment, and household and SPM net income each rise by what + remains. Below that income, the tax on a small payment can exceed the + payment when the payment ends a deduction or credit. A smaller premium tax + credit also raises a Marketplace enrollee's SPM expenses. -1. A supplied payment raises gross income by the whole payment, wherever the - recipient lives now, except a payment from the 2022 program, received in - 2022 or 2023, which leaves gross income where it was (IR-2023-23, - footnote 1; Notice 2023-56, section 4.03). taxable_ak_energy_relief holds - exactly that change. -2. With no means-tested response in play, the tax on the payment takes less than - the payment, and household and SPM net income each rise by what remains. - -YAML pins the amounts the IRS and Alaska publish for each year, and that the -calculated payment reaches no one outside Alaska. These tests draw amounts, -years and states no published figure names, and they compare two simulations -of one household. +YAML pins the amounts that the IRS and Alaska publish for each year, and that +the model calculates no payment for anyone outside Alaska. These tests draw +amounts, years and states beyond the sources' examples, and they compare two +simulations of one household. """ import pytest diff --git a/policyengine_us/variables/gov/irs/income/taxable_income/adjusted_gross_income/irs_gross_income/taxable_ak_energy_relief.py b/policyengine_us/variables/gov/irs/income/taxable_income/adjusted_gross_income/irs_gross_income/taxable_ak_energy_relief.py index 665c7b6f02d..098818330e6 100644 --- a/policyengine_us/variables/gov/irs/income/taxable_income/adjusted_gross_income/irs_gross_income/taxable_ak_energy_relief.py +++ b/policyengine_us/variables/gov/irs/income/taxable_income/adjusted_gross_income/irs_gross_income/taxable_ak_energy_relief.py @@ -11,8 +11,8 @@ class taxable_ak_energy_relief(Variable): "of a payment from the 2022 program, which the IRS lets recipients " "exclude whether they got it in 2022 or in 2023. It holds all of each " "payment from 2024 on, which Alaska pays as part of the taxable " - "dividend. A payment that a dataset or user supplies counts wherever " - "the recipient lives, as a supplied regular dividend does. See " + "dividend. Like a regular dividend, a payment that a dataset or user " + "supplies counts wherever the recipient lives. See " "docs/validation/alaska-pfd.md." ) definition_period = YEAR diff --git a/policyengine_us/variables/gov/states/ak/dor/ak_energy_relief.py b/policyengine_us/variables/gov/states/ak/dor/ak_energy_relief.py index df5782a0c33..466f7db6b3c 100644 --- a/policyengine_us/variables/gov/states/ak/dor/ak_energy_relief.py +++ b/policyengine_us/variables/gov/states/ak/dor/ak_energy_relief.py @@ -14,9 +14,8 @@ class ak_energy_relief(Variable): "requires also overriding ak_permanent_fund_dividend for each person. " "The rounded 2022 energy payment is $662, separate from the $2,622 " "regular PFD. taxable_ak_energy_relief holds the part in federal gross " - "income: none of a payment from the 2022 program, whose exclusion the " - "IRS said it would not challenge, whether the recipient got it in 2022 " - "or in 2023, and all of each payment from 2024 on. " + "income: none of a 2022-program payment, which the IRS lets recipients " + "exclude in 2022 or 2023, and all of each payment from 2024 on. " "See docs/validation/alaska-pfd.md." ) unit = USD diff --git a/source_conflicts/candidates.yaml b/source_conflicts/candidates.yaml index e6935160e8c..c5e4026f9cc 100644 --- a/source_conflicts/candidates.yaml +++ b/source_conflicts/candidates.yaml @@ -6722,8 +6722,8 @@ candidates: the employer paid for (IRC 105(a)), other than the medical reimbursements and permanent-injury payments that IRC 105(b) and (c) exclude. other: Item 11 lists the proceeds as not income, whoever paid for the policy. - example: A renter with $10,000 of wages and $12,000 of wage-replacement disability benefits, $5,000 of them from a - plan the renter paid for, has income of $17,000 under the statute and $10,000 under item 11. + example: A renter has $10,000 of wages and $12,000 of wage-replacement disability benefits, $5,000 of them from a plan + the renter paid for. The renter's income comes to $17,000 under the statute and $10,000 under item 11. pe_us: follows: statute code: @@ -12089,8 +12089,8 @@ candidates: citation: Alaska Department of Revenue, DOR Response to IRS Guidance on 2022 PFD (February 17, 2023) url: https://dor.alaska.gov/docs/default-source/press-releases/2023_02_17-dor-response-to-irs-guidance-on-2022-pfd.pdf#page=1 - kind: agency-practice - citation: Alaska Department of Revenue, Department of Revenue Announces 2023 PFD Amount (September 21, 2023) - url: https://dor.alaska.gov/department-of-revenue/news-detail/2023/09/21/dor-announces-2023-pfd-amount + citation: Alaska Permanent Fund Dividend Division, Annual Report 2023, page 4 (dividend calculation) + url: https://dor.alaska.gov/docs/permanentfunddividendlibraries/annual-reports/2023-pfd-annual-report.pdf?sfvrsn=6f6d9c6c_1#page=4 - kind: agency-practice citation: Alaska Department of Revenue, Department of Revenue Announces 2024 Permanent Fund Dividend Amount and Energy Relief (September 19, 2024)