diff --git a/changelog.d/va-educator-expense-deduction.added.md b/changelog.d/va-educator-expense-deduction.added.md new file mode 100644 index 00000000000..844d6a44c9c --- /dev/null +++ b/changelog.d/va-educator-expense-deduction.added.md @@ -0,0 +1 @@ +Add Virginia's eligible educator expense deduction (up to $500), reinstated for tax year 2026 and after by the 2026 Appropriation Act (HB 30). diff --git a/changelog.d/va-refundable-eitc-2026-budget.changed.md b/changelog.d/va-refundable-eitc-2026-budget.changed.md new file mode 100644 index 00000000000..e225f9fbca9 --- /dev/null +++ b/changelog.d/va-refundable-eitc-2026-budget.changed.md @@ -0,0 +1 @@ +Extend Virginia's 20% refundable EITC through tax year 2029 under the 2026 Appropriation Act (HB 30); it expires (0%) for tax years beginning on or after January 1, 2030. diff --git a/changelog.d/va-standard-deduction-2026-budget.changed.md b/changelog.d/va-standard-deduction-2026-budget.changed.md new file mode 100644 index 00000000000..4defde056db --- /dev/null +++ b/changelog.d/va-standard-deduction-2026-budget.changed.md @@ -0,0 +1 @@ +Raise Virginia's standard deduction under the 2026 Appropriation Act (HB 30) to $9,200 single / $18,400 joint for tax year 2027 and $9,300 / $18,600 for tax years 2028-2029, with the sunset to $3,000 / $6,000 moved to tax year 2030. diff --git a/policyengine_us/parameters/gov/states/va/tax/income/credits/eitc/match/refundable.yaml b/policyengine_us/parameters/gov/states/va/tax/income/credits/eitc/match/refundable.yaml index 85a83757384..17ede9d0209 100644 --- a/policyengine_us/parameters/gov/states/va/tax/income/credits/eitc/match/refundable.yaml +++ b/policyengine_us/parameters/gov/states/va/tax/income/credits/eitc/match/refundable.yaml @@ -3,7 +3,7 @@ values: 2021-01-01: 0 2022-01-01: 0.15 2025-01-01: 0.2 - 2027-01-01: 0.15 + 2030-01-01: 0 metadata: period: year @@ -26,4 +26,8 @@ metadata: # 2025 EITC reflected in statute - title: House Bill 1600 (2025 Appropriations Act) href: https://legiscan.com/VA/text/HB1600/id/3262750/Virginia-2025-HB1600-Chaptered.pdf#page=783 - + # HB 30 (2026) 3rd enactment clause extends the 20% refundable EITC through TY2029; it expires (0%) for TY2030+ + - title: House Bill 30 (2026 Appropriation Act, Special Session I, Chapter 1), Item 4-14 #1c (third enactment clause) + href: https://budget.lis.virginia.gov/amendment/2026/2/HB30/Introduced/CR/4-14/1c + - title: Virginia Department of Taxation 2026 Legislative Summary - refundable EITC + href: https://www.tax.virginia.gov/sites/default/files/inline-files/2026-legislative-summary.pdf#page=9 diff --git a/policyengine_us/parameters/gov/states/va/tax/income/deductions/educator_expense/cap.yaml b/policyengine_us/parameters/gov/states/va/tax/income/deductions/educator_expense/cap.yaml new file mode 100644 index 00000000000..a97ca5b7247 --- /dev/null +++ b/policyengine_us/parameters/gov/states/va/tax/income/deductions/educator_expense/cap.yaml @@ -0,0 +1,17 @@ +description: Virginia caps the eligible educator expense deduction at this amount per eligible educator. The deduction did not apply for tax year 2025. +values: + 2021-01-01: 0 + 2022-01-01: 500 + 2025-01-01: 0 + 2026-01-01: 500 +metadata: + unit: currency-USD + period: year + label: Virginia eligible educator expense deduction cap + reference: + - title: Code of Virginia § 58.1-322.03.18 + href: https://law.lis.virginia.gov/vacode/title58.1/section58.1-322.03/ + - title: House Bill 30 (2026 Appropriation Act, Special Session I, Chapter 1), third enactment clause - reinstates the deduction for tax year 2026 and after + href: https://budget.lis.virginia.gov/amendment/2026/2/HB30/Introduced/CR/4-14/1c + - title: Virginia Department of Taxation 2026 Legislative Summary - eligible educator expenses deduction + href: https://www.tax.virginia.gov/sites/default/files/inline-files/2026-legislative-summary.pdf#page=10 diff --git a/policyengine_us/parameters/gov/states/va/tax/income/deductions/standard.yaml b/policyengine_us/parameters/gov/states/va/tax/income/deductions/standard.yaml index 82e906d2fbf..c140c185a6a 100644 --- a/policyengine_us/parameters/gov/states/va/tax/income/deductions/standard.yaml +++ b/policyengine_us/parameters/gov/states/va/tax/income/deductions/standard.yaml @@ -7,7 +7,7 @@ metadata: - filing_status reference: - title: Code of Virginia § 58.1-322.03.(1)(b) - href: https://law.lis.virginia.gov/vacodefull/title58.1/chapter3/article2/ + href: https://law.lis.virginia.gov/vacode/title58.1/section58.1-322.03/ - title: Virginia 2025 Form 760 Resident Individual Income Tax Instructions href: https://www.tax.virginia.gov/sites/default/files/vatax-pdf/2025-760-instructions.pdf#page=17 - title: Virginia 2024 Form 760 Resident Individual Income Tax Instructions @@ -22,34 +22,48 @@ metadata: href: https://www.tax.virginia.gov/sites/default/files/inline-files/2023-legislative-summary.pdf#page=10 - title: House Bill 1600 (2025 Appropriations Act) href: https://legiscan.com/VA/text/HB1600/id/3262750/Virginia-2025-HB1600-Chaptered.pdf#page=780 + - title: House Bill 30 (2026 Appropriation Act, Special Session I, Chapter 1), Item 4-14 #1c + href: https://budget.lis.virginia.gov/amendment/2026/2/HB30/Introduced/CR/4-14/1c + - title: Virginia Department of Taxation 2026 Legislative Summary - standard deduction + href: https://www.tax.virginia.gov/sites/default/files/inline-files/2026-legislative-summary.pdf#page=9 JOINT: 2021-01-01: 9_000 2022-01-01: 16_000 2024-01-01: 17_000 2025-01-01: 17_500 - 2027-01-01: 6_000 + 2027-01-01: 18_400 + 2028-01-01: 18_600 + 2030-01-01: 6_000 SINGLE: 2021-01-01: 4_500 2022-01-01: 8_000 2024-01-01: 8_500 2025-01-01: 8_750 - 2027-01-01: 3_000 + 2027-01-01: 9_200 + 2028-01-01: 9_300 + 2030-01-01: 3_000 SEPARATE: 2021-01-01: 4_500 2022-01-01: 8_000 2024-01-01: 8_500 2025-01-01: 8_750 - 2027-01-01: 3_000 + 2027-01-01: 9_200 + 2028-01-01: 9_300 + 2030-01-01: 3_000 HEAD_OF_HOUSEHOLD: 2021-01-01: 4_500 2022-01-01: 8_000 2024-01-01: 8_500 2025-01-01: 8_750 - 2027-01-01: 3_000 + 2027-01-01: 9_200 + 2028-01-01: 9_300 + 2030-01-01: 3_000 SURVIVING_SPOUSE: 2021-01-01: 4_500 2022-01-01: 8_000 2024-01-01: 8_500 2025-01-01: 8_750 - 2027-01-01: 3_000 + 2027-01-01: 9_200 + 2028-01-01: 9_300 + 2030-01-01: 3_000 diff --git a/policyengine_us/tests/policy/baseline/gov/states/va/tax/income/credits/eitc/va_refundable_eitc_if_claimed.yaml b/policyengine_us/tests/policy/baseline/gov/states/va/tax/income/credits/eitc/va_refundable_eitc_if_claimed.yaml index 48a430872a6..ca129272ab9 100644 --- a/policyengine_us/tests/policy/baseline/gov/states/va/tax/income/credits/eitc/va_refundable_eitc_if_claimed.yaml +++ b/policyengine_us/tests/policy/baseline/gov/states/va/tax/income/credits/eitc/va_refundable_eitc_if_claimed.yaml @@ -31,3 +31,38 @@ eitc: 0 output: va_refundable_eitc_if_claimed: 0 + +# HB 30 (2026) extends the 20% refundable rate through TY2029. Under prior law +# the rate reverted after TY2026; these years now stay at 20%. +- name: VA 2027 Refundable EITC still at 20% + period: 2027 + input: + state_code: VA + eitc: 5_000 + output: + va_refundable_eitc_if_claimed: 1_000 + +- name: VA 2028 Refundable EITC still at 20% + period: 2028 + input: + state_code: VA + eitc: 5_000 + output: + va_refundable_eitc_if_claimed: 1_000 + +- name: VA 2029 Refundable EITC still at 20% + period: 2029 + input: + state_code: VA + eitc: 5_000 + output: + va_refundable_eitc_if_claimed: 1_000 + +# The refundable EITC expires for taxable years beginning on/after 2030. +- name: VA 2030 Refundable EITC has expired + period: 2030 + input: + state_code: VA + eitc: 5_000 + output: + va_refundable_eitc_if_claimed: 0 diff --git a/policyengine_us/tests/policy/baseline/gov/states/va/tax/income/deductions/educator_expense/va_educator_expense_deduction.yaml b/policyengine_us/tests/policy/baseline/gov/states/va/tax/income/deductions/educator_expense/va_educator_expense_deduction.yaml new file mode 100644 index 00000000000..abf1288137a --- /dev/null +++ b/policyengine_us/tests/policy/baseline/gov/states/va/tax/income/deductions/educator_expense/va_educator_expense_deduction.yaml @@ -0,0 +1,151 @@ +# Virginia eligible educator expense deduction (Va. Code 58.1-322.03): the lesser +# of $500 or eligible educator expenses not claimed federally, per eligible +# educator. Reinstated for TY2026+ by the 2026 Appropriation Act (HB 30); it did +# not apply for TY2025. Eligible expenses are an explicit input (default $0). + +- name: 2026 educator deduction defaults to zero with no expenses + period: 2026 + input: + state_code: VA + output: + va_educator_expense_deduction: 0 + +- name: 2026 educator deduction is the lesser of expenses and the $500 cap + period: 2026 + input: + people: + person1: + va_educator_expenses: 800 + tax_units: + tax_unit: + members: [person1] + households: + household: + members: [person1] + state_code: VA + output: + va_educator_expense_deduction: 500 + +- name: 2026 educator deduction below the cap equals the expenses + period: 2026 + input: + people: + person1: + va_educator_expenses: 300 + tax_units: + tax_unit: + members: [person1] + households: + household: + members: [person1] + state_code: VA + output: + va_educator_expense_deduction: 300 + +- name: 2025 educator deduction is unavailable even with expenses + period: 2025 + input: + people: + person1: + va_educator_expenses: 400 + tax_units: + tax_unit: + members: [person1] + households: + household: + members: [person1] + state_code: VA + output: + va_educator_expense_deduction: 0 + +- name: 2026 non-Virginia filer receives no educator deduction + period: 2026 + input: + people: + person1: + va_educator_expenses: 400 + tax_units: + tax_unit: + members: [person1] + households: + household: + members: [person1] + state_code: MD + output: + va_educator_expense_deduction: 0 + +- name: 2026 the $500 cap applies per eligible educator + period: 2026 + input: + people: + person1: + va_educator_expenses: 500 + person2: + va_educator_expenses: 500 + tax_units: + tax_unit: + members: [person1, person2] + households: + household: + members: [person1, person2] + state_code: VA + output: + va_educator_expense_deduction: 1_000 + +- name: 2026 educator deduction reduces Virginia taxable income + period: 2026 + input: + people: + person1: + va_educator_expenses: 400 + tax_units: + tax_unit: + members: [person1] + va_agi: 50_000 + va_deductions: 0 + va_total_exemptions: 0 + households: + household: + members: [person1] + state_code: VA + output: + va_educator_expense_deduction: 400 + va_taxable_income: 49_600 + +- name: 2024 educator deduction was available under prior law + period: 2024 + input: + people: + person1: + va_educator_expenses: 800 + tax_units: + tax_unit: + members: [person1] + households: + household: + members: [person1] + state_code: VA + output: + va_educator_expense_deduction: 500 + +# Regression: the cap is defined before 2022 (0), so pre-2022 VA taxable-income +# calculations do not error on a missing parameter value. +- name: 2021 educator deduction is zero and taxable income still computes + period: 2021 + input: + people: + person1: + va_educator_expenses: 400 + tax_units: + tax_unit: + members: [person1] + va_agi: 50_000 + va_deductions: 0 + va_total_exemptions: 0 + households: + household: + members: [person1] + state_code: VA + output: + va_educator_expense_deduction: 0 + va_taxable_income: 50_000 diff --git a/policyengine_us/tests/policy/baseline/gov/states/va/tax/income/deductions/va_standard_deduction.yaml b/policyengine_us/tests/policy/baseline/gov/states/va/tax/income/deductions/va_standard_deduction.yaml index a5970286d55..37d5f9a3f43 100644 --- a/policyengine_us/tests/policy/baseline/gov/states/va/tax/income/deductions/va_standard_deduction.yaml +++ b/policyengine_us/tests/policy/baseline/gov/states/va/tax/income/deductions/va_standard_deduction.yaml @@ -46,3 +46,115 @@ state_code: VA output: va_standard_deduction: 8_750 + +# 2027 tests - HB 30 (2026 Appropriation Act) raises the standard deduction +# by $450 (single) and $900 (joint) for taxable years 2027. +- name: VA 2027 Standard deduction if single filer + period: 2027 + input: + filing_status: SINGLE + state_code: VA + output: + va_standard_deduction: 9_200 + +- name: VA 2027 Standard deduction if married filing jointly + period: 2027 + input: + filing_status: JOINT + state_code: VA + output: + va_standard_deduction: 18_400 + +# 2028 tests - HB 30 further raises the standard deduction for TY2028-2029. +- name: VA 2028 Standard deduction if single filer + period: 2028 + input: + filing_status: SINGLE + state_code: VA + output: + va_standard_deduction: 9_300 + +- name: VA 2028 Standard deduction if married filing jointly + period: 2028 + input: + filing_status: JOINT + state_code: VA + output: + va_standard_deduction: 18_600 + +# 2030 tests - the increased amounts sunset after TY2029 and revert to the +# pre-2019 amounts ($3,000 single / $6,000 joint). +- name: VA 2030 Standard deduction sunsets for single filer + period: 2030 + input: + filing_status: SINGLE + state_code: VA + output: + va_standard_deduction: 3_000 + +- name: VA 2030 Standard deduction sunsets for married filing jointly + period: 2030 + input: + filing_status: JOINT + state_code: VA + output: + va_standard_deduction: 6_000 + +# 2026 regression - HB 30 leaves TY2026 unchanged at $8,750 / $17,500. +- name: VA 2026 Standard deduction unchanged for single filer + period: 2026 + input: + filing_status: SINGLE + state_code: VA + output: + va_standard_deduction: 8_750 + +- name: VA 2026 Standard deduction unchanged for married filing jointly + period: 2026 + input: + filing_status: JOINT + state_code: VA + output: + va_standard_deduction: 17_500 + +# 2029 - last year of the increased amounts before the TY2030 sunset. +- name: VA 2029 Standard deduction for single filer + period: 2029 + input: + filing_status: SINGLE + state_code: VA + output: + va_standard_deduction: 9_300 + +- name: VA 2029 Standard deduction for married filing jointly + period: 2029 + input: + filing_status: JOINT + state_code: VA + output: + va_standard_deduction: 18_600 + +# 2027 - the remaining filing statuses take the single amount ($9,200). +- name: VA 2027 Standard deduction if married filing separately + period: 2027 + input: + filing_status: SEPARATE + state_code: VA + output: + va_standard_deduction: 9_200 + +- name: VA 2027 Standard deduction if head of household + period: 2027 + input: + filing_status: HEAD_OF_HOUSEHOLD + state_code: VA + output: + va_standard_deduction: 9_200 + +- name: VA 2027 Standard deduction if surviving spouse + period: 2027 + input: + filing_status: SURVIVING_SPOUSE + state_code: VA + output: + va_standard_deduction: 9_200 diff --git a/policyengine_us/variables/gov/states/va/tax/income/deductions/educator_expense/va_educator_expense_deduction.py b/policyengine_us/variables/gov/states/va/tax/income/deductions/educator_expense/va_educator_expense_deduction.py new file mode 100644 index 00000000000..4693ffd0858 --- /dev/null +++ b/policyengine_us/variables/gov/states/va/tax/income/deductions/educator_expense/va_educator_expense_deduction.py @@ -0,0 +1,26 @@ +from policyengine_us.model_api import * + + +class va_educator_expense_deduction(Variable): + value_type = float + entity = TaxUnit + label = "Virginia eligible educator expense deduction" + unit = USD + definition_period = YEAR + defined_for = StateCode.VA + reference = ( + "https://law.lis.virginia.gov/vacode/title58.1/section58.1-322.03/", + "https://www.tax.virginia.gov/sites/default/files/inline-files/2026-legislative-summary.pdf#page=10", + ) + + def formula(tax_unit, period, parameters): + # Va. Code 58.1-322.03: the lesser of $500 or eligible educator expenses + # (not claimed federally) per eligible educator. Available for TY2022-2024 + # and, reinstated by the 2026 Appropriation Act (HB 30), TY2026+; the cap + # is 0 for TY2025 (and before TY2022), so the deduction is gated by year. + cap = parameters( + period + ).gov.states.va.tax.income.deductions.educator_expense.cap + person = tax_unit.members + capped = min_(person("va_educator_expenses", period), cap) + return tax_unit.sum(capped) diff --git a/policyengine_us/variables/gov/states/va/tax/income/deductions/educator_expense/va_educator_expenses.py b/policyengine_us/variables/gov/states/va/tax/income/deductions/educator_expense/va_educator_expenses.py new file mode 100644 index 00000000000..6a49c5d0a74 --- /dev/null +++ b/policyengine_us/variables/gov/states/va/tax/income/deductions/educator_expense/va_educator_expenses.py @@ -0,0 +1,16 @@ +from policyengine_us.model_api import * + + +class va_educator_expenses(Variable): + value_type = float + entity = Person + label = "Virginia eligible educator expenses" + unit = USD + definition_period = YEAR + defined_for = StateCode.VA + # Eligible educator qualifying expenses that were NOT reimbursed nor claimed + # as a deduction on the federal return (Va. Code 58.1-322.03). The federal + # educator deduction is above-the-line and already reflected in federal AGI, + # and the baseline data do not identify this excess amount, so this is an + # explicit input that defaults to $0 (as with the Ohio educator deduction). + reference = "https://law.lis.virginia.gov/vacode/title58.1/section58.1-322.03/" diff --git a/policyengine_us/variables/gov/states/va/tax/income/va_taxable_income.py b/policyengine_us/variables/gov/states/va/tax/income/va_taxable_income.py index c77f458de9a..991181b87e2 100644 --- a/policyengine_us/variables/gov/states/va/tax/income/va_taxable_income.py +++ b/policyengine_us/variables/gov/states/va/tax/income/va_taxable_income.py @@ -23,4 +23,9 @@ def formula(tax_unit, period, parameters): cdcc_expense_deduction = tax_unit( "va_child_dependent_care_expense_deduction", period ) - return max_(agi - total_deductions - cdcc_expense_deduction, 0) + # Virginia also allows the eligible educator expense deduction. + educator_deduction = tax_unit("va_educator_expense_deduction", period) + return max_( + agi - total_deductions - cdcc_expense_deduction - educator_deduction, + 0, + )