From bc0e425032caadff7a839076f5135533bb7f217a Mon Sep 17 00:00:00 2001 From: Pinyan <129036923+pxu12@users.noreply.github.com> Date: Mon, 9 Sep 2024 05:58:14 +0000 Subject: [PATCH] Nebraska Military Retirement Benefit Exclusion 2022 Fixes #5011 --- changelog_entry.yaml | 1 + .../military_retirement/fraction.yaml | 13 ++++++++++++ .../ne_military_retirement_subtraction.yaml | 19 ++++++++++++++++++ .../ne_military_retirement_substraction.py | 20 +++++++++++++++++++ 4 files changed, 53 insertions(+) create mode 100644 policyengine_us/parameters/gov/states/ne/tax/income/agi/subtractions/military_retirement/fraction.yaml create mode 100644 policyengine_us/tests/policy/baseline/gov/states/ne/tax/income/adjusted_gross_income/ne_military_retirement_subtraction.yaml create mode 100644 policyengine_us/variables/gov/states/ne/tax/income/adjusted_gross_income/subtractions/ne_military_retirement_substraction.py diff --git a/changelog_entry.yaml b/changelog_entry.yaml index e69de29bb2d..8b137891791 100644 --- a/changelog_entry.yaml +++ b/changelog_entry.yaml @@ -0,0 +1 @@ + diff --git a/policyengine_us/parameters/gov/states/ne/tax/income/agi/subtractions/military_retirement/fraction.yaml b/policyengine_us/parameters/gov/states/ne/tax/income/agi/subtractions/military_retirement/fraction.yaml new file mode 100644 index 00000000000..9e761661c52 --- /dev/null +++ b/policyengine_us/parameters/gov/states/ne/tax/income/agi/subtractions/military_retirement/fraction.yaml @@ -0,0 +1,13 @@ +description: Fraction of military retirement benefits allowed as NE AGI subtraction when federal AGI is above threshold (fraction is 1.0 for others). +values: + 2022-01-01: 1 + +metadata: + label: fraction of military retirement benefits allowed as NE AGI subtraction when federal AGI is above threshold (fraction is 1.0 for others) + unit: /1 + period: year + reference: + - title: 2022 NE income tax form and instruction booklet + href: https://revenue.nebraska.gov/sites/revenue.nebraska.gov/files/doc/2022_Ne_Individual_Income_Tax_Booklet_8-307-2022_final_8.pdf#page=3 + - title: Legislative Bill 387 + href: https://revenue.nebraska.gov/sites/revenue.nebraska.gov/files/doc/info/legislation/2021/LB387.pdf diff --git a/policyengine_us/tests/policy/baseline/gov/states/ne/tax/income/adjusted_gross_income/ne_military_retirement_subtraction.yaml b/policyengine_us/tests/policy/baseline/gov/states/ne/tax/income/adjusted_gross_income/ne_military_retirement_subtraction.yaml new file mode 100644 index 00000000000..cc018be0c99 --- /dev/null +++ b/policyengine_us/tests/policy/baseline/gov/states/ne/tax/income/adjusted_gross_income/ne_military_retirement_subtraction.yaml @@ -0,0 +1,19 @@ +- name: Test 1, less than agi, for 2022 + absolute_error_margin: 0.01 + period: 2022 + input: + adjusted_gross_income: 200_000 + military_retirement_pay: 30_000 + state_code: NE + output: + ne_military_retirement_subtraction: 30_000 + +- name: Test 2, more than agi, for 2022 + absolute_error_margin: 0.01 + period: 2022 + input: + adjusted_gross_income: 20_000 + military_retirement_pay: 30_000 + state_code: NE + output: + ne_military_retirement_subtraction: 20_000 diff --git a/policyengine_us/variables/gov/states/ne/tax/income/adjusted_gross_income/subtractions/ne_military_retirement_substraction.py b/policyengine_us/variables/gov/states/ne/tax/income/adjusted_gross_income/subtractions/ne_military_retirement_substraction.py new file mode 100644 index 00000000000..b58f53fb709 --- /dev/null +++ b/policyengine_us/variables/gov/states/ne/tax/income/adjusted_gross_income/subtractions/ne_military_retirement_substraction.py @@ -0,0 +1,20 @@ +from policyengine_us.model_api import * + + +class ne_military_retirement_subtraction(Variable): + value_type = float + entity = TaxUnit + label = "Nebraska military retirement subtraction" + unit = USD + definition_period = YEAR + defined_for = StateCode.NE + + def formula(tax_unit, period, parameters): + fagi = tax_unit("adjusted_gross_income", period) + p = parameters( + period + ).gov.states.ne.tax.income.agi.subtractions.military_retirement + military_retirement_benefits = add( + tax_unit, period, ["military_retirement_pay"] + ) + return min_(military_retirement_benefits * p.fraction, fagi)