Skip to content
Draft
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/nd-renters-refund-public-assistance.fixed.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
North Dakota renter's refund income counts Supplemental Security Income and TANF, which N.D.C.C. 57-02-08.1(5)(c) includes as public assistance benefits.
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,16 @@ values:
- market_income
- social_security
- total_unemployment_compensation
# NDCC 57-02-08.1(5)(c) counts "any county, state, or federal public
# assistance benefits". The IRS leaves general assistance, SSI and TANF out
# of gross income under its general welfare exclusion, which rests on IRS
# rulings, not a statute or regulation, so no federal or state law
# excludes them from income. SNAP (7 U.S.C. 2017(b)) and LIHEAP, including
# nd_liheap (42 U.S.C. 8624(f)(1)), stay out because federal law excludes
# them from income for any purpose under state law.
- general_assistance
- ssi
- tanf
metadata:
unit: list
period: year
Expand All @@ -14,3 +23,5 @@ metadata:
href: https://ndlegis.gov/cencode/t57c02.pdf#page=16
- title: North Dakota Office of State Tax Commissioner | Property Tax Credits for North Dakota Homeowners and Renters
href: https://www.tax.nd.gov/sites/www/files/documents/guidelines/homestead-veterans-renters/credits-for-nd-homeowners-renters-guideline.pdf#page=2
- title: North Dakota Office of State Tax Commissioner | SFN 24777 (10-2025), Application for Senior Citizens or Permanently and Totally Disabled Renter's Property Tax Refund, line 7
href: https://www.tax.nd.gov/sites/www/files/documents/forms/homestead-disabled-renters/renters-refund-application.pdf#page=1
Original file line number Diff line number Diff line change
Expand Up @@ -370,7 +370,7 @@ def _state_case(**values):


def _state_simulation(cases, reference_system, with_se_deduction):
people, tax_units, households, marital_units = {}, {}, {}, {}
people, tax_units, spm_units, households, marital_units = {}, {}, {}, {}, {}
expectations = {
"nd_renters_refund_income": [],
"nm_medical_expense_credit": [],
Expand Down Expand Up @@ -429,6 +429,10 @@ def _state_simulation(cases, reference_system, with_se_deduction):
),
"employment_income": case["income"] if person_index == 0 else 0,
"medicare_enrolled": False,
# NDCC 57-02-08.1(5)(c) also counts public assistance. These
# households receive none, so the ND expectation tests the
# medical base alone.
"ssi": 0,
premium_variable: premiums[position],
"other_medical_expenses": other[position],
}
Expand All @@ -448,6 +452,7 @@ def _state_simulation(cases, reference_system, with_se_deduction):
if supplied:
tax_unit["itemized_medical_expenses"] = {PERIOD: case["subtotal"]}
tax_units[unit_name] = tax_unit
spm_units[unit_name] = {"members": names, "tanf": {PERIOD: 0}}
households[unit_name] = {"members": names, "state_code": {PERIOD: state}}
accounting["main_base"].append(main_base)
accounting["gross"].append(gross)
Expand Down Expand Up @@ -475,6 +480,7 @@ def _state_simulation(cases, reference_system, with_se_deduction):
situation={
"people": people,
"tax_units": tax_units,
"spm_units": spm_units,
"households": households,
"marital_units": marital_units,
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -134,3 +134,29 @@
state_code: ND
output:
nd_renters_refund: 400

- name: Case 8, SSI counts in income and lowers the refund.
absolute_error_margin: 0.01
period: 2026
input:
people:
person1:
age: 70
social_security_retirement: 6_000
ssi: 9_000
rent: 4_800
tax_units:
tax_unit:
members: [person1]
itemized_medical_expenses: 0
households:
household:
members: [person1]
state_code: ND
output:
# NDCC 57-02-08.1(5)(c) counts social security and federal public
# assistance benefits: 6,000 + 9,000.
nd_renters_refund_income: 15_000
# NDCC 57-02-08.1(2)(b): 20% of the rent less 4% of income,
# 960 - 600.
nd_renters_refund: 360
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@
output:
nd_renters_refund_income: 0

- name: Case 3, income includes unemployment and excludes nonincome sources.
- name: Case 3, income includes unemployment and public assistance and excludes nonincome sources.
absolute_error_margin: 0.01
period: 2025
input:
Expand All @@ -61,7 +61,10 @@
members: [person1]
state_code: ND
output:
nd_renters_refund_income: 12_000
# NDCC 57-02-08.1(5)(c) counts "any county, state, or federal public
# assistance benefits", so general assistance and SSI count with
# unemployment compensation: 8,000 + 4,000 + 6,000.
nd_renters_refund_income: 18_000

- name: Case 4, after-tax premiums reduce renter refund income as medical expenses.
absolute_error_margin: 0.01
Expand Down Expand Up @@ -346,7 +349,9 @@
people:
parent:
age: 40
employment_income: 30_000
# Wages go in before any labor supply response, where TANF reads
# them, so the family has no TANF.
employment_income_before_lsr: 30_000
child:
age: 15
is_tax_unit_dependent: true
Expand Down Expand Up @@ -411,7 +416,9 @@
people:
parent:
age: 40
employment_income: 45_000
# Wages go in before any labor supply response, where TANF reads
# them, so the family has no TANF.
employment_income_before_lsr: 45_000
child:
age: 3
is_tax_unit_dependent: true
Expand Down Expand Up @@ -480,3 +487,55 @@
output:
# 30,000 + 5,000 + 1,000, with no state-law subtraction.
nd_renters_refund_income: 36_000

- name: North Dakota counts TANF, which no law excludes from income, and leaves out SNAP, which federal law excludes.
period: 2026
absolute_error_margin: 0.01
input:
people:
parent:
age: 40
employment_income: 10_000
child:
age: 8
tax_units:
tax_unit:
members: [parent, child]
spm_units:
spm_unit:
members: [parent, child]
tanf: 3_600
snap: 2_400
households:
household:
members: [parent, child]
state_code: ND
output:
# NDCC 57-02-08.1(5)(c) counts "any county, state, or federal public
# assistance benefits" and excludes "any amount excluded from income by
# federal or state law". 7 U.S.C. 2017(b) keeps SNAP out of income "for
# any purpose under any Federal, State, or local laws": 10,000 + 3,600.
nd_renters_refund_income: 13_600

- name: North Dakota counts a dependent's SSI with the applicant's social security.
period: 2026
absolute_error_margin: 0.01
input:
people:
grandparent:
age: 70
social_security_retirement: 18_000
grandchild:
age: 10
ssi: 9_000
tax_units:
tax_unit:
members: [grandparent, grandchild]
households:
household:
members: [grandparent, grandchild]
state_code: ND
output:
# The statute counts "the income of any dependent of the applicant" and
# federal public assistance benefits: 18,000 + 9,000.
nd_renters_refund_income: 27_000
Loading