Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Ohio Joint Filing Credit #3086

Merged
merged 27 commits into from
Dec 24, 2023
Merged
Show file tree
Hide file tree
Changes from 24 commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
46831d5
Ohio Joint Filing Credit
mylittlebecca Sep 26, 2023
29cf317
Fix 3057
mylittlebecca Sep 26, 2023
965e8fc
Fix 3057
mylittlebecca Sep 26, 2023
c84b163
Merge branch 'master' of https://github.com/PolicyEngine/policyengine…
mylittlebecca Sep 26, 2023
77d0312
Ohio Joint Filing Credit
mylittlebecca Sep 26, 2023
c872da5
Ohio Joint Filing Credit
mylittlebecca Sep 26, 2023
0ec013d
Ohio Joint Filing Credit
mylittlebecca Sep 28, 2023
4a146b2
Merge branch 'master' of https://github.com/PolicyEngine/policyengine…
mylittlebecca Sep 28, 2023
6906709
Ohio Joint Filing Credit
mylittlebecca Oct 2, 2023
a53458b
Merge branch 'master' of https://github.com/PolicyEngine/policyengine…
mylittlebecca Oct 2, 2023
d33c0f8
Ohio Joint Filing Credit
mylittlebecca Oct 2, 2023
95efba7
Fix Ohio Joint Filing Credit
mylittlebecca Oct 4, 2023
d6c79d5
Merge branch 'master' of https://github.com/PolicyEngine/policyengine…
mylittlebecca Oct 4, 2023
305c771
Ohio Joint Filing Credit
mylittlebecca Oct 9, 2023
e51e9ab
Merge branch 'master' of https://github.com/PolicyEngine/policyengine…
mylittlebecca Oct 9, 2023
b5c3517
Ohio Joint Filing Credit
mylittlebecca Nov 22, 2023
17be7bd
Ohio Joint Filing Credit
mylittlebecca Nov 29, 2023
2bb756a
Merge branch 'master' of https://github.com/PolicyEngine/policyengine…
mylittlebecca Nov 29, 2023
8fd79e3
formatting
PavelMakarchuk Dec 14, 2023
cfeff29
typo
PavelMakarchuk Dec 14, 2023
dbbfbb1
minor fix
PavelMakarchuk Dec 15, 2023
80a3cac
Merge branch 'master' of https://github.com/PolicyEngine/policyengine…
PavelMakarchuk Dec 24, 2023
71f5eb8
fix variables and tests
PavelMakarchuk Dec 24, 2023
5a26129
delete extra Ohio file
PavelMakarchuk Dec 24, 2023
ef1eaa3
suggested format
PavelMakarchuk Dec 24, 2023
59bef10
Merge branch 'master' of https://github.com/PolicyEngine/policyengine…
PavelMakarchuk Dec 24, 2023
a082a4e
typo
PavelMakarchuk Dec 24, 2023
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
4 changes: 4 additions & 0 deletions changelog_entry.yaml
PavelMakarchuk marked this conversation as resolved.
Show resolved Hide resolved
PavelMakarchuk marked this conversation as resolved.
Show resolved Hide resolved
PavelMakarchuk marked this conversation as resolved.
Show resolved Hide resolved
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
- bump: minor
changes:
added:
- Ohio joint filing credit.
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,4 @@ metadata:
- title: Mass. General Laws c.62 § 6(h)(1)
href: https://www.mass.gov/info-details/mass-general-laws-c62-ss-6
- title: Form 1 2022 Massachusetts Resident Income Tax (line 43)
href: https://www.mass.gov/doc/2022-form-1-instructions/download#page=16
href: https://www.mass.gov/doc/2022-form-1-instructions/download#page=16
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
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
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
description: Ohio qualifies filers for the joint filing credit with adjusted gross income at or above this amount.
PavelMakarchuk marked this conversation as resolved.
Show resolved Hide resolved
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
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
description: Ohio multiplies the joint filing credit rate by the tax liability less the sum of these non-refundable tax credits.
PavelMakarchuk marked this conversation as resolved.
Show resolved Hide resolved
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
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
description: Ohio multiplies the tax liability less certain non-refundable tax credits by this rate under the joint filing credit, based on the state adjusted gross income less exemptions
PavelMakarchuk marked this conversation as resolved.
Show resolved Hide resolved
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
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,15 @@ values:
- oh_retirement_credit
- oh_non_public_school_credits
- oh_exemption_credits
- oh_joint_filing_credit
2023-01-01:
- oh_eitc
- oh_cdcc
- oh_senior_citizen_credit
- oh_retirement_credit
- oh_non_public_school_credits
- oh_exemption_credits
- oh_joint_filing_credit
metadata:
unit: list
label: Ohio non-refundable tax credits
Expand Down
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
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
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
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
output:
# base amount = $346.16
# + 2.765% of (31_000 - 25_000) = 165.90
oh_income_tax_before_credits: 512.06
oh_income_tax_before_non_refundable_credits: 512.06

- name: Single filing, income in 3rd tax bracket
period: 2021
Expand All @@ -19,4 +19,4 @@
# base amount = 346.16
# + 2.765 of (44_250 - 25_000) = 532.26
# + 3.226% of (64_500 - 44_250) = 653.27
oh_income_tax_before_credits: 1_531.69
oh_income_tax_before_non_refundable_credits: 1_531.69
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
period: 2021
input:
state_code: OH
oh_income_tax_before_credits: 800
oh_income_tax_before_non_refundable_credits: 800
oh_non_refundable_credits: 900
output:
oh_income_tax_before_refundable_credits: 0
Expand All @@ -11,7 +11,7 @@
period: 2021
input:
state_code: OH
oh_income_tax_before_credits: 800
oh_income_tax_before_non_refundable_credits: 800
oh_non_refundable_credits: 600
output:
oh_income_tax_before_refundable_credits: 200
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"
)
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"
mylittlebecca marked this conversation as resolved.
Show resolved Hide resolved
defined_for = "oh_joint_filing_credit_eligible"

def formula(tax_unit, period, parameters):
tax_before_joint_filing_crdedit = tax_unit(
PavelMakarchuk marked this conversation as resolved.
Show resolved Hide resolved
"oh_tax_before_joint_filing_credit", period
)
p = parameters(period).gov.states.oh.tax.income.credits.joint_filing
# Ohio use MAGI for the credit computation, which is Ohio AGI with
PavelMakarchuk marked this conversation as resolved.
Show resolved Hide resolved
# the addition of the business income deduction, which is currently not included in the model,
PavelMakarchuk marked this conversation as resolved.
Show resolved Hide resolved
# hence, we use the Ohio AGI for the credit computation
oh_agi = tax_unit("oh_agi", period)
exemption = tax_unit("oh_personal_exemptions", period)
PavelMakarchuk marked this conversation as resolved.
Show resolved Hide resolved
agi_less_exepmtion = max_(oh_agi - exemption, 0)
PavelMakarchuk marked this conversation as resolved.
Show resolved Hide resolved
percentage = p.rate.calc(agi_less_exepmtion)
return min_(tax_before_joint_filing_crdedit * percentage, p.cap)
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
head_eligible = is_head & (income >= p.income_threshold)
PavelMakarchuk marked this conversation as resolved.
Show resolved Hide resolved

spouse_eligible = is_spouse & (income >= p.income_threshold)

income_eligible = tax_unit.any(head_eligible) & tax_unit.any(
spouse_eligible
)
status_eligible = filing_status == filing_status.possible_values.JOINT
return income_eligible & status_eligible
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"
)
Loading
Loading