Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions changelog.d/revert-ok-401-pension-9009.fixed.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Restored the Oklahoma retirement benefit subtraction for private employer (IRC section 401) pension income before tax year 2022, which qualifies as an Other Retirement Income source on Schedule 511-A line 6.

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -347,3 +347,31 @@
ok_standard_deduction: 12_700
# Sales tax credit: 4 exemptions * $40 = $160 (has dependents, under $50k)
ok_stc: 160

- name: OK 2021 joint couple with private (IRC 401) employer pensions each claim the 10k other-retirement exclusion (taxsim 1083)
period: 2021
absolute_error_margin: 2
input:
people:
head:
age: 65
taxable_private_pension_income: 19_228.76
taxable_interest_income: 21_716.92
social_security_retirement: 12_472.44
spouse:
age: 68
taxable_private_pension_income: 19_228.76
taxable_interest_income: 21_716.92
social_security_retirement: 12_472.44
tax_units:
tax_unit:
members: [head, spouse]
households:
household:
members: [head, spouse]
state_code: OK
output:
adjusted_gross_income: 103_095
ok_pension_subtraction: 20_000
ok_agi: 61_891
ok_income_tax: 2_005
Original file line number Diff line number Diff line change
Expand Up @@ -226,17 +226,16 @@
# Total: $10,000 + $10,000 = $20,000
ok_pension_subtraction: 20_000

# Issue #8830: private employer (IRC 401) pensions were not a qualifying
# Schedule 511-A line 6 source until tax year 2022.
- name: OK pension subtraction - 2021 - private (IRC 401) pension does not qualify
# Private employer (IRC section 401) pensions are a qualifying Schedule 511-A
# line 6 source in 2021 (2021 Form 511 Packet, page 17).
- name: OK pension subtraction - 2021 - private (IRC 401) pension qualifies
absolute_error_margin: 0.01
period: 2021
input:
people:
person1:
is_tax_unit_head: true
age: 66
# Private employer (IRC 401) pension only; not a qualifying source in 2021
taxable_private_pension_income: 20_000
spm_units:
spm_unit:
Expand All @@ -252,56 +251,5 @@
members: [person1]
state_code: OK
output:
ok_pension_subtraction: 0

- name: OK pension subtraction - 2022 - private (IRC 401) pension now qualifies
absolute_error_margin: 0.01
period: 2022
input:
people:
person1:
is_tax_unit_head: true
age: 66
taxable_private_pension_income: 20_000
spm_units:
spm_unit:
members: [person1]
snap: 0
tanf: 0
tax_units:
tax_unit:
members: [person1]
aca_ptc: 0
households:
household:
members: [person1]
state_code: OK
output:
# Private pension is a qualifying source from 2022, capped at $10,000
# Private pension qualifies, capped at $10,000
ok_pension_subtraction: 10_000

- name: OK pension subtraction - 2021 - government pension still qualifies
absolute_error_margin: 0.01
period: 2021
input:
people:
person1:
is_tax_unit_head: true
age: 66
# Government (non-private) pension remained a qualifying source in 2021
taxable_public_pension_income: 8_000
spm_units:
spm_unit:
members: [person1]
snap: 0
tanf: 0
tax_units:
tax_unit:
members: [person1]
aca_ptc: 0
households:
household:
members: [person1]
state_code: OK
output:
ok_pension_subtraction: 8_000
Original file line number Diff line number Diff line change
Expand Up @@ -33,17 +33,6 @@ def formula(tax_unit, period, parameters):
# Get pension income for each person in the tax unit
pensions = tax_unit.members("taxable_pension_income", period)
p = parameters(period).gov.states.ok.tax.income.agi.subtractions
# Before tax year 2022, private employer (IRC section 401) pensions
# were not a qualifying source on Schedule 511-A, line 6 (Other
# Retirement Income); Oklahoma added IRC section 401 employer plans
# starting in 2022. Exclude private pension income from the
# subtraction base before then.
private_pensions = tax_unit.members("taxable_private_pension_income", period)
qualifying_pensions = where(
p.private_pension_qualifies,
pensions,
max_(0, pensions - private_pensions),
)
# Each person can subtract up to the pension limit
# Sum across all tax unit members
return tax_unit.sum(min_(p.pension_limit, qualifying_pensions))
return tax_unit.sum(min_(p.pension_limit, pensions))
Loading