-
Notifications
You must be signed in to change notification settings - Fork 183
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add Ohio Joint Filing Credit (#3086)
* Ohio Joint Filing Credit Fixes #3057 * Fix 3057 * Fix 3057 * Ohio Joint Filing Credit Fixes #3057 * Ohio Joint Filing Credit Fixes #3057 * Ohio Joint Filing Credit Fixes #3057 * Ohio Joint Filing Credit Fixes #3057 * Ohio Joint Filing Credit Fixes #3057 * Fix Ohio Joint Filing Credit * Ohio Joint Filing Credit Fixes #3057 * Ohio Joint Filing Credit Fixes #3057 * formatting * typo * minor fix * fix variables and tests * delete extra Ohio file * suggested format * typo --------- Co-authored-by: PavelMakarchuk <[email protected]>
- Loading branch information
1 parent
840e7c3
commit 448b179
Showing
20 changed files
with
349 additions
and
8 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
- bump: minor | ||
changes: | ||
added: | ||
- Ohio joint filing credit. |
20 changes: 20 additions & 0 deletions
20
...yengine_us/parameters/gov/states/oh/tax/income/credits/joint_filing/agi_subtractions.yaml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
description: Ohio subtracts these items from the Ohio adjusted gross income, under the joint filing credit. | ||
|
||
metadata: | ||
unit: list | ||
reference: | ||
- title: 2021 Ohio IT 1040 Individual Income Tax Return Form Instructions Line 12 | ||
href: https://tax.ohio.gov/static/forms/ohio_individual/individual/2021/pit-it1040-booklet.pdf#page=20 | ||
- title: 2022 Ohio IT 1040 Individual Income Tax Return Form Instructions Line 12 | ||
href: https://tax.ohio.gov/static/forms/ohio_individual/individual/2022/it1040-sd100-instruction-booklet.pdf#page=20 | ||
- title: Ohio Revised Code - Section 5747.05 Tax credits. (E) (1) | ||
href: https://law.justia.com/codes/ohio/2022/title-57/chapter-5747/section-5747-05/ | ||
period: year | ||
label: Ohio joint filing credit adjusted gross income subtractions | ||
|
||
values: | ||
2021-01-01: | ||
- interest_income | ||
- dividend_income | ||
- capital_gains | ||
- rental_income |
15 changes: 15 additions & 0 deletions
15
policyengine_us/parameters/gov/states/oh/tax/income/credits/joint_filing/cap.yaml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
description: Ohio caps the joint filing credit at this amount. | ||
values: | ||
2021-01-01: 650 | ||
|
||
metadata: | ||
period: year | ||
unit: currency-USD | ||
label: Ohio joint filing credit cap | ||
reference: | ||
- title: 2021 Ohio IT 1040 Individual Income Tax Return Form Instructions Line 12 | ||
href: https://tax.ohio.gov/static/forms/ohio_individual/individual/2021/pit-it1040-booklet.pdf#page=20 | ||
- title: 2022 Ohio IT 1040 Individual Income Tax Return Form Instructions Line 12 | ||
href: https://tax.ohio.gov/static/forms/ohio_individual/individual/2022/it1040-sd100-instruction-booklet.pdf#page=20 | ||
- title: Ohio Revised Code - Section 5747.05 Tax credits. (E) (1) | ||
href: https://codes.ohio.gov/ohio-revised-code/section-5747.05 |
15 changes: 15 additions & 0 deletions
15
...yengine_us/parameters/gov/states/oh/tax/income/credits/joint_filing/income_threshold.yaml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
description: Ohio limits the joint filing credit to filers with head and spouse each having at least this adjusted gross income. | ||
values: | ||
2021-01-01: 500 | ||
|
||
metadata: | ||
period: year | ||
unit: currency-USD | ||
label: Ohio joint filing credit income threshold | ||
reference: | ||
- title: 2021 Ohio IT 1040 Individual Income Tax Return Form Instructions Line 12 | ||
href: https://tax.ohio.gov/static/forms/ohio_individual/individual/2021/pit-it1040-booklet.pdf#page=20 | ||
- title: 2022 Ohio IT 1040 Individual Income Tax Return Form Instructions Line 12 | ||
href: https://tax.ohio.gov/static/forms/ohio_individual/individual/2022/it1040-sd100-instruction-booklet.pdf#page=20 | ||
- title: Ohio Revised Code - Section 5747.05 Tax credits. (E) (1) | ||
href: https://codes.ohio.gov/ohio-revised-code/section-5747.05 |
21 changes: 21 additions & 0 deletions
21
...arameters/gov/states/oh/tax/income/credits/joint_filing/other_non_refundable_credits.yaml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
description: Ohio provides a joint filing credit equal to a fraction of tax liability less these non-refundable tax credits. | ||
values: | ||
2021-01-01: | ||
- oh_cdcc # Line 6 | ||
- oh_senior_citizen_credit # Line 3 | ||
- oh_retirement_credit # Line 2 | ||
- oh_exemption_credits # Line 9 | ||
2023-01-01: | ||
- oh_cdcc # Line 6 | ||
- oh_senior_citizen_credit # Line 3 | ||
- oh_retirement_credit # Line 2 | ||
- oh_exemption_credits # Line 9 | ||
metadata: | ||
unit: list | ||
period: year | ||
label: Ohio non-refundable tax credits prior to the joint filing credit | ||
reference: | ||
- title: 2021 Ohio Schedule of Credits | ||
href: https://tax.ohio.gov/static/forms/ohio_individual/individual/2021/sch-cre.pdf | ||
- title: 2022 Ohio Schedule of Credits | ||
href: https://tax.ohio.gov/static/forms/ohio_individual/individual/2022/itschedule-credits.pdf |
32 changes: 32 additions & 0 deletions
32
policyengine_us/parameters/gov/states/oh/tax/income/credits/joint_filing/rate.yaml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
description: Ohio provides a joint filing credit equal to this fraction of tax liability less certain non-refundable tax credits, based on the state adjusted gross income less exemptions. | ||
metadata: | ||
threshold_unit: currency-USD | ||
amount_unit: /1 | ||
type: single_amount | ||
period: year | ||
label: Ohio joint filing credit income rate | ||
reference: | ||
- title: 2021 Ohio IT 1040 Individual Income Tax Return Form Instructions Line 12 | ||
href: https://tax.ohio.gov/static/forms/ohio_individual/individual/2021/pit-it1040-booklet.pdf#page=20 | ||
- title: 2022 Ohio IT 1040 Individual Income Tax Return Form Instructions Line 12 | ||
href: https://tax.ohio.gov/static/forms/ohio_individual/individual/2022/it1040-sd100-instruction-booklet.pdf#page=20 | ||
- title: Ohio Revised Code - Section 5747.05 Tax credits. (E) | ||
href: https://codes.ohio.gov/ohio-revised-code/section-5747.05 | ||
|
||
brackets: | ||
- threshold: | ||
2021-01-01: 0 | ||
amount: | ||
2021-01-01: 0.2 | ||
- threshold: | ||
2021-01-01: 25_000 | ||
amount: | ||
2021-01-01: 0.15 | ||
- threshold: | ||
2021-01-01: 50_000 | ||
amount: | ||
2021-01-01: 0.1 | ||
- threshold: | ||
2021-01-01: 75_000 | ||
amount: | ||
2021-01-01: 0.05 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
33 changes: 33 additions & 0 deletions
33
...baseline/gov/states/oh/tax/income/credits/joint_filing_credit/oh_joint_filing_credit.yaml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
- name: Eligible for joint filing credit | ||
absolute_error_margin: 0.01 | ||
period: 2021 | ||
input: | ||
oh_joint_filing_credit_eligible: true | ||
oh_agi: 67_000 | ||
oh_personal_exemptions: 10_000 | ||
oh_tax_before_joint_filing_credit: 4_000 | ||
output: | ||
oh_joint_filing_credit: 400 | ||
|
||
- name: Eligible for maximum joint filing credit | ||
absolute_error_margin: 0.01 | ||
period: 2022 | ||
input: | ||
state_code: OH | ||
oh_joint_filing_credit_eligible: true | ||
oh_agi: 47_000 | ||
oh_personal_exemptions: 10_000 | ||
oh_tax_before_joint_filing_credit: 6_000 | ||
output: | ||
oh_joint_filing_credit: 650 | ||
|
||
- name: Not eligible for joint filing credit | ||
absolute_error_margin: 0.01 | ||
period: 2021 | ||
input: | ||
oh_joint_filing_credit_eligible: false | ||
oh_agi: 47_000 | ||
oh_personal_exemptions: 10_000 | ||
oh_tax_before_joint_filing_credit: 4_000 | ||
output: | ||
oh_joint_filing_credit: 0 |
62 changes: 62 additions & 0 deletions
62
...gov/states/oh/tax/income/credits/joint_filing_credit/oh_joint_filing_credit_eligible.yaml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,62 @@ | ||
- name: Income not eligible for joint filing credit | ||
absolute_error_margin: 0.01 | ||
period: 2021 | ||
input: | ||
people: | ||
person1: | ||
is_tax_unit_head: true | ||
oh_alternative_agi: 400 | ||
person2: | ||
is_tax_unit_spouse: true | ||
oh_alternative_agi: 700 | ||
tax_units: | ||
tax_unit: | ||
members: [person1, person2] | ||
filing_status: JOINT | ||
households: | ||
household: | ||
state_code: OH | ||
output: | ||
oh_joint_filing_credit_eligible: false | ||
|
||
- name: Status not eligible for joint filing credit | ||
absolute_error_margin: 0.01 | ||
period: 2021 | ||
input: | ||
people: | ||
person1: | ||
is_tax_unit_head: true | ||
oh_alternative_agi: 600 | ||
person2: | ||
is_tax_unit_spouse: true | ||
oh_alternative_agi: 700 | ||
tax_units: | ||
tax_unit: | ||
members: [person1, person2] | ||
filing_status: HEAD_OF_HOUSEHOLD | ||
households: | ||
household: | ||
state_code: OH | ||
output: | ||
oh_joint_filing_credit_eligible: false | ||
|
||
- name: Eligible for joint filing credit | ||
absolute_error_margin: 0.01 | ||
period: 2021 | ||
input: | ||
people: | ||
person1: | ||
is_tax_unit_head: true | ||
oh_alternative_agi: 600 | ||
person2: | ||
is_tax_unit_spouse: true | ||
oh_alternative_agi: 700 | ||
tax_units: | ||
tax_unit: | ||
members: [person1, person2] | ||
filing_status: JOINT | ||
households: | ||
household: | ||
state_code: OH | ||
output: | ||
oh_joint_filing_credit_eligible: true |
17 changes: 17 additions & 0 deletions
17
...v/states/oh/tax/income/credits/joint_filing_credit/oh_tax_before_joint_filing_credit.yaml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
- name: Capped at 0 | ||
period: 2022 | ||
input: | ||
oh_income_tax_before_non_refundable_credits: 20 | ||
oh_partial_non_refundable_credits: 30 | ||
state_code: OH | ||
output: | ||
oh_tax_before_joint_filing_credit: 0 | ||
|
||
- name: Reduction | ||
period: 2022 | ||
input: | ||
oh_income_tax_before_non_refundable_credits: 100 | ||
oh_partial_non_refundable_credits: 20 | ||
state_code: OH | ||
output: | ||
oh_tax_before_joint_filing_credit: 80 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
22 changes: 22 additions & 0 deletions
22
...e_us/variables/gov/states/oh/tax/income/credits/joint_filing_credit/oh_alternative_agi.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
from policyengine_us.model_api import * | ||
|
||
|
||
class oh_alternative_agi(Variable): | ||
value_type = float | ||
entity = Person | ||
label = ( | ||
"Ohio alternative adjusted gross income for the joint filing credit" | ||
) | ||
unit = USD | ||
definition_period = YEAR | ||
reference = ( | ||
"https://codes.ohio.gov/ohio-revised-code/section-5747.055", | ||
"https://tax.ohio.gov/static/forms/ohio_individual/individual/2021/pit-it1040-booklet.pdf#page=20", | ||
) | ||
defined_for = StateCode.OH | ||
|
||
adds = ["oh_agi"] | ||
|
||
subtracts = ( | ||
"gov.states.oh.tax.income.credits.joint_filing.agi_subtractions" | ||
) |
25 changes: 25 additions & 0 deletions
25
.../variables/gov/states/oh/tax/income/credits/joint_filing_credit/oh_joint_filing_credit.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
from policyengine_us.model_api import * | ||
|
||
|
||
class oh_joint_filing_credit(Variable): | ||
value_type = float | ||
entity = TaxUnit | ||
label = "Ohio joint filing credit" | ||
unit = USD | ||
definition_period = YEAR | ||
reference = "https://codes.ohio.gov/ohio-revised-code/section-5747.05" | ||
defined_for = "oh_joint_filing_credit_eligible" | ||
|
||
def formula(tax_unit, period, parameters): | ||
tax_before_joint_filing_credit = tax_unit( | ||
"oh_tax_before_joint_filing_credit", period | ||
) | ||
p = parameters(period).gov.states.oh.tax.income.credits.joint_filing | ||
# Ohio uses MAGI for the credit computation, which is Ohio AGI with | ||
# the addition of the business income deduction, which is currently not included in the model, | ||
# hence, we use the Ohio AGI for the credit computation | ||
oh_agi = tax_unit("oh_agi", period) | ||
exemptions = tax_unit("oh_personal_exemptions", period) | ||
agi_less_exepmtions = max_(oh_agi - exemptions, 0) | ||
percentage = p.rate.calc(agi_less_exepmtions) | ||
return min_(tax_before_joint_filing_credit * percentage, p.cap) |
28 changes: 28 additions & 0 deletions
28
...s/gov/states/oh/tax/income/credits/joint_filing_credit/oh_joint_filing_credit_eligible.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
from policyengine_us.model_api import * | ||
|
||
|
||
class oh_joint_filing_credit_eligible(Variable): | ||
value_type = bool | ||
entity = TaxUnit | ||
label = "Eligible for the Ohio joint filing credit" | ||
definition_period = YEAR | ||
reference = "https://codes.ohio.gov/ohio-revised-code/section-5747.05" | ||
defined_for = StateCode.OH | ||
|
||
def formula(tax_unit, period, parameters): | ||
filing_status = tax_unit("filing_status", period) | ||
person = tax_unit.members | ||
is_head = person("is_tax_unit_head", period) | ||
is_spouse = person("is_tax_unit_spouse", period) | ||
p = parameters(period).gov.states.oh.tax.income.credits.joint_filing | ||
income = person("oh_alternative_agi", period) | ||
# The head and the spouse have to meet the income requirement individually | ||
income_eligible = income >= p.income_threshold | ||
head_eligible = tax_unit.any(is_head & income_eligible) | ||
|
||
spouse_eligible = tax_unit.any(is_spouse & income_eligible) | ||
# The head and the spouse have to meet the income requirement individually | ||
head_and_spouse_eligible = head_eligible & spouse_eligible | ||
|
||
status_eligible = filing_status == filing_status.possible_values.JOINT | ||
return head_and_spouse_eligible & status_eligible |
20 changes: 20 additions & 0 deletions
20
...gov/states/oh/tax/income/credits/joint_filing_credit/oh_partial_non_refundable_credits.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
from policyengine_us.model_api import * | ||
|
||
|
||
class oh_partial_non_refundable_credits(Variable): | ||
value_type = float | ||
entity = TaxUnit | ||
label = "Ohio non-refundable credits prior to the joint filing credit" | ||
reference = ( | ||
# 2021 Ohio Schedule of Credits | ||
"https://tax.ohio.gov/static/forms/ohio_individual/individual/2021/sch-cre.pdf", | ||
# 2022 Ohio Schedule of Credits | ||
"https://tax.ohio.gov/static/forms/ohio_individual/individual/2022/itschedule-credits.pdf", | ||
) | ||
unit = USD | ||
definition_period = YEAR | ||
defined_for = StateCode.OH | ||
|
||
adds = ( | ||
"gov.states.oh.tax.income.credits.joint_filing.non_refundable_credits" | ||
) |
23 changes: 23 additions & 0 deletions
23
...gov/states/oh/tax/income/credits/joint_filing_credit/oh_tax_before_joint_filing_credit.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
from policyengine_us.model_api import * | ||
|
||
|
||
class oh_tax_before_joint_filing_credit(Variable): | ||
value_type = float | ||
entity = TaxUnit | ||
label = "Ohio tax liability before the joint filing credit" | ||
reference = ( | ||
# 2021 Ohio Schedule of Credits | ||
"https://tax.ohio.gov/static/forms/ohio_individual/individual/2021/sch-cre.pdf", | ||
# 2022 Ohio Schedule of Credits | ||
"https://tax.ohio.gov/static/forms/ohio_individual/individual/2022/itschedule-credits.pdf", | ||
) | ||
unit = USD | ||
definition_period = YEAR | ||
defined_for = StateCode.OH | ||
|
||
def formula(tax_unit, period, parameters): | ||
tax_before_credits = tax_unit( | ||
"oh_income_tax_before_non_refundable_credits", period | ||
) | ||
total_credits = tax_unit("oh_partial_non_refundable_credits", period) | ||
return max_(0, tax_before_credits - total_credits) |
Oops, something went wrong.