Skip to content

Commit

Permalink
Kansas Additional Exemption for Disabled Veterans 2023 (#5052)
Browse files Browse the repository at this point in the history
* Kansas Additional Exemption for Disabled Veterans 2023
Fixes #4969

* add test cases, adjust formula

* make format

* adjust formula. create is_veteran variable.

* reorganize parameters

* minor change

* format

* minor change

* add formula for is_veteran.py
  • Loading branch information
hua7450 authored Oct 15, 2024
1 parent 913242a commit 33caa80
Show file tree
Hide file tree
Showing 12 changed files with 199 additions and 36 deletions.
4 changes: 4 additions & 0 deletions changelog_entry.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
- bump: minor
changes:
added:
- Kansas disabled veteran exemptions.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
description: Kansas provides the following exemption amount for each person in a filing unit.
values:
2021-01-01: 2_250

metadata:
period: year
unit: currency-USD
label: Kansas personal exemption
reference:
- title: 2021 Form K-40 instructions
href: https://www.ksrevenue.gov/pdf/ip21.pdf#page=6
- title: 2022 Form K-40 instructions
href: https://www.ksrevenue.gov/pdf/ip22.pdf#page=6
- title: 2023 Form K-40 instructions
href: https://www.ksrevenue.gov/pdf/ip23.pdf#page=6
- title: 2023 Form K-40
href: https://www.ksrevenue.gov/pdf/k-4023.pdf#page=1
- title: KS Stat § 79-32,121 (2023) (a)
href: https://law.justia.com/codes/kansas/chapter-79/article-32/section-79-32-121/
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
description: Kansas provides the following exemption amount for disabled veterans.
values:
2023-01-01: 2_250

metadata:
period: year
unit: currency-USD
label: Kansas disabled veteran exemption amount
reference:
- title: 2023 Form K-40 instructions
href: https://www.ksrevenue.gov/pdf/ip23.pdf#page=6
- title: 2023 Form K-40
href: https://www.ksrevenue.gov/pdf/k-4023.pdf#page=2
- title: KS Stat § 79-32,121 (2023) (b)
href: https://law.justia.com/codes/kansas/chapter-79/article-32/section-79-32-121/
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
description: Kansas provides additional exemptions for disabled veterans if this is true.
metadata:
unit: bool
period: year
label: Kansas additional exemptions for disabled veterans in effect
reference:
- title: KS Stat § 79-32,121 (2023) (b)
href: https://law.justia.com/codes/kansas/chapter-79/article-32/section-79-32-121/
- title: 2023 Form K-40
href: https://www.ksrevenue.gov/pdf/k-4023.pdf#page=1

values:
2021-01-01: false
2023-01-01: true
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
- name: Case 1, the filer is a disabled veteran, get exemptions.
period: 2023
input:
is_permanently_and_totally_disabled: true
is_veteran: true
state_code: KS
output:
ks_disabled_veteran_exemptions_eligible_person: true

- name: Case 2, the filer is a veteran, but not disabled, no exemption.
period: 2023
input:
is_permanently_and_totally_disabled: false
is_veteran: true
state_code: KS
output:
ks_disabled_veteran_exemptions_eligible_person: false

- name: Case 3, the filer is a disabled, but not veteran, no exemption.
period: 2023
input:
is_permanently_and_totally_disabled: false
is_veteran: true
state_code: KS
output:
ks_disabled_veteran_exemptions_eligible_person: false

- name: Case 4, in 2022, the filer is a disabled veteran.
period: 2022
input:
is_permanently_and_totally_disabled: true
is_veteran: true
state_code: KS
output:
ks_disabled_veteran_exemptions_eligible_person: false
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
- name: Four exemptions in 2021
period: 2021
input:
ks_count_exemptions: 4
state_code: KS
output:
ks_exemptions: 2_250 * 4

- name: Two exemptions in 2022
period: 2022
input:
ks_count_exemptions: 2
state_code: KS
output:
ks_exemptions: 2_250 * 2

- name: Case 3,two exemptions in 2023, and one disabled veteran exemption.
period: 2023
input:
people:
person1:
ks_disabled_veteran_exemptions_eligible_person: true
person2:
ks_disabled_veteran_exemptions_eligible_person: false
tax_units:
tax_unit:
members: [person1, person2]
ks_count_exemptions: 2
households:
household:
members: [person1, person2]
state_code: KS
output:
ks_exemptions: 6_750

- name: Case 4,two exemptions in 2023, and two disabled veteran exemption.
period: 2023
input:
people:
person1:
ks_disabled_veteran_exemptions_eligible_person: true
person2:
ks_disabled_veteran_exemptions_eligible_person: true
tax_units:
tax_unit:
members: [person1, person2]
ks_count_exemptions: 2
households:
household:
members: [person1, person2]
state_code: KS
output:
ks_exemptions: 9_000

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
- name: Case 1, veterans_benefits > 0, is a veteran.
period: 2020
input:
veterans_benefits: 100
output:
is_veteran: true

- name: Case 2, veterans_benefits = 0, is not a veteran.
period: 2020
input:
veterans_benefits: 0
output:
is_veteran: false
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
from policyengine_us.model_api import *


class ks_disabled_veteran_exemptions_eligible_person(Variable):
value_type = bool
entity = Person
label = "Eligible person for the Kansas disabled veteran exemption"
unit = USD
definition_period = YEAR
reference = "https://law.justia.com/codes/kansas/chapter-79/article-32/section-79-32-121/"
defined_for = StateCode.KS

def formula(person, period, parameters):
p = parameters(
period
).gov.states.ks.tax.income.exemptions.disabled_veteran
disabled = person("is_permanently_and_totally_disabled", period)
is_veteran = person("is_veteran", period)

return p.in_effect * disabled * is_veteran
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,20 @@ class ks_exemptions(Variable):
label = "Kansas exemptions amount"
unit = USD
definition_period = YEAR
reference = (
"https://www.ksrevenue.gov/pdf/ip21.pdf"
"https://www.ksrevenue.gov/pdf/ip22.pdf"
)
reference = "https://law.justia.com/codes/kansas/chapter-79/article-32/section-79-32-121/"
defined_for = StateCode.KS

def formula(tax_unit, period, parameters):
exemptions_count = tax_unit("ks_count_exemptions", period)
p = parameters(period).gov.states.ks.tax.income.exemptions
return exemptions_count * p.amount
exemptions_count = tax_unit("ks_count_exemptions", period)
base_exemptions = exemptions_count * p.base
veteran_exemptions_count = add(
tax_unit,
period,
["ks_disabled_veteran_exemptions_eligible_person"],
)
additional_exemptions = (
veteran_exemptions_count * p.disabled_veteran.base
)

return base_exemptions + additional_exemptions
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
from policyengine_us.model_api import *


class is_veteran(Variable):
value_type = bool
entity = Person
label = "Is veteran"
documentation = "A person who served in the active military, naval, air, or space service, and who was discharged or released therefrom under conditions other than dishonorable."
reference = "https://www.law.cornell.edu/uscode/text/38/101" # (2)
definition_period = YEAR

def formula(person, period, parameters):
return person("veterans_benefits", period) > 0

0 comments on commit 33caa80

Please sign in to comment.