diff --git a/changelog.d/ky-separate-ignores-dependent-separation.fixed.md b/changelog.d/ky-separate-ignores-dependent-separation.fixed.md new file mode 100644 index 00000000000..e3af180a79d --- /dev/null +++ b/changelog.d/ky-separate-ignores-dependent-separation.fixed.md @@ -0,0 +1 @@ +Kentucky filing status now follows the filer's own federal filing status, so a separated dependent no longer makes an unmarried filer file separately, and a separated filer who files federal head of household uses Kentucky Filing Status 1 (Single). diff --git a/policyengine_us/tests/policy/baseline/gov/states/ky/tax/income/ky_filing_status.yaml b/policyengine_us/tests/policy/baseline/gov/states/ky/tax/income/ky_filing_status.yaml index ac803570de6..12cb1b640eb 100644 --- a/policyengine_us/tests/policy/baseline/gov/states/ky/tax/income/ky_filing_status.yaml +++ b/policyengine_us/tests/policy/baseline/gov/states/ky/tax/income/ky_filing_status.yaml @@ -7,7 +7,7 @@ output: ky_filing_status: SINGLE -- name: Joint +- name: Joint period: 2023 input: is_tax_unit_spouse: true @@ -16,7 +16,7 @@ output: ky_filing_status: JOINT -- name: Joint +- name: Separated filer with no spouse in the tax unit period: 2023 input: is_tax_unit_spouse: false @@ -24,3 +24,191 @@ state_code: KY output: ky_filing_status: SEPARATE + +- name: A separated dependent does not make a single parent file separately. + period: 2025 + input: + people: + parent: + age: 45 + dependent: + age: 18 + is_tax_unit_dependent: true + is_separated: true + tax_units: + tax_unit: + members: [parent, dependent] + american_opportunity_credit: 2_000 + lifetime_learning_credit: 0 + households: + household: + members: [parent, dependent] + state_code: KY + output: + # KRS 141.066(1)(d) uses the IRC 7703 marital status of the filer. The + # parent is unmarried, so Form 740 Filing Status 1 (Single) applies. + ky_filing_status: SINGLE + # KRS 141.069(4) limits the tuition credit only for a married taxpayer. + ky_tuition_tax_credit_eligible: true + # 25% of the 2,000 federal education credit. + ky_tuition_tax_credit_potential: 500 + +- name: A separated parent who files federal head of household uses Kentucky Filing Status 1. + period: 2025 + input: + people: + parent: + age: 38 + is_tax_unit_head: true + is_separated: true + child: + age: 6 + is_tax_unit_dependent: true + tax_units: + tax_unit: + members: [parent, child] + households: + household: + members: [parent, child] + state_code: KY + output: + # IRC 7703(b) treats the parent as unmarried, so the parent files as head of household. + filing_status: HEAD_OF_HOUSEHOLD + # Form 740 instructions: Filing Status 1 (Single) covers federal head of household filers. + ky_filing_status: SINGLE + ky_tuition_tax_credit_eligible: true + +- name: A separated filer with only a qualifying relative files separately. + period: 2025 + input: + people: + head: + age: 40 + is_tax_unit_head: true + is_separated: true + grandparent: + age: 78 + is_tax_unit_dependent: true + is_related_to_head_or_spouse: true + tax_units: + tax_unit: + members: [head, grandparent] + households: + household: + members: [head, grandparent] + state_code: KY + output: + # IRC 7703(b) needs a child, so the head stays married and files separately. + filing_status: SEPARATE + ky_filing_status: SEPARATE + ky_tuition_tax_credit_eligible: false + +- name: A separated dependent does not stop a married couple filing jointly. + period: 2025 + input: + people: + head: + age: 40 + is_tax_unit_head: true + spouse: + age: 38 + is_tax_unit_spouse: true + dependent: + age: 18 + is_tax_unit_dependent: true + is_separated: true + tax_units: + tax_unit: + members: [head, spouse, dependent] + households: + household: + members: [head, spouse, dependent] + state_code: KY + output: + # Roles are inputs, so this case tests Kentucky filing status alone. + ky_filing_status: JOINT + ky_tuition_tax_credit_eligible: true + +- name: Spouses who file separate federal returns may file a combined Kentucky return. + period: 2025 + input: + people: + head: + age: 40 + is_tax_unit_head: true + spouse: + age: 38 + is_tax_unit_spouse: true + tax_units: + tax_unit: + members: [head, spouse] + filing_status: SEPARATE + households: + household: + members: [head, spouse] + state_code: KY + output: + # Form 740 instructions: spouses may file separately on a combined return + # whether they filed jointly or separately for federal purposes. Both + # spouses in one tax unit is that combined return, not Filing Status 4. + ky_filing_status: JOINT + # KRS 141.069(4) allows the credit on a combined return. + ky_tuition_tax_credit_eligible: true + +- name: A married filer who files a separate federal return alone files Kentucky separate returns. + period: 2025 + input: + people: + head: + age: 40 + tax_units: + tax_unit: + members: [head] + filing_status: SEPARATE + households: + household: + members: [head] + state_code: KY + output: + # The spouse is not in the tax unit, so this is Filing Status 4. + ky_filing_status: SEPARATE + # KRS 141.069(4) bars the credit on separate returns. + ky_tuition_tax_credit_eligible: false + +- name: A supplied federal head of household status uses Kentucky Filing Status 1. + period: 2025 + input: + people: + head: + age: 40 + is_separated: true + tax_units: + tax_unit: + members: [head] + filing_status: HEAD_OF_HOUSEHOLD + households: + household: + members: [head] + state_code: KY + output: + ky_filing_status: SINGLE + ky_tuition_tax_credit_eligible: true + +- name: A supplied federal surviving spouse status uses Kentucky Filing Status 1. + period: 2025 + input: + people: + head: + age: 40 + tax_units: + tax_unit: + members: [head] + filing_status: SURVIVING_SPOUSE + households: + household: + members: [head] + state_code: KY + output: + # Form 740 instructions: federal "Qualifying Widow(er)" filers use Single. + ky_filing_status: SINGLE + ky_tuition_tax_credit_eligible: true diff --git a/policyengine_us/variables/gov/states/ky/tax/income/credits/tuition_tax/ky_tuition_tax_credit_eligible.py b/policyengine_us/variables/gov/states/ky/tax/income/credits/tuition_tax/ky_tuition_tax_credit_eligible.py index 251a38bc276..2003611291d 100644 --- a/policyengine_us/variables/gov/states/ky/tax/income/credits/tuition_tax/ky_tuition_tax_credit_eligible.py +++ b/policyengine_us/variables/gov/states/ky/tax/income/credits/tuition_tax/ky_tuition_tax_credit_eligible.py @@ -7,9 +7,11 @@ class ky_tuition_tax_credit_eligible(Variable): label = "Eligible for the Kentucky tuition tax credit" # Form 8863-K unit = USD definition_period = YEAR + reference = "https://apps.legislature.ky.gov/law/statutes/statute.aspx?id=29060" # KRS 141.069(4) defined_for = StateCode.KY def formula(tax_unit, period, parameters): filing_status = tax_unit("ky_filing_status", period) - # Married filing separate filers are ineligible. + # A taxpayer who is married under IRC 7703 is ineligible when filing a + # separate return (Filing Status 4). return filing_status != filing_status.possible_values.SEPARATE diff --git a/policyengine_us/variables/gov/states/ky/tax/income/ky_filing_status.py b/policyengine_us/variables/gov/states/ky/tax/income/ky_filing_status.py index e33c2cab340..fee5a993cd0 100644 --- a/policyengine_us/variables/gov/states/ky/tax/income/ky_filing_status.py +++ b/policyengine_us/variables/gov/states/ky/tax/income/ky_filing_status.py @@ -14,20 +14,31 @@ class ky_filing_status(Variable): default_value = KyFilingStatus.SINGLE definition_period = YEAR reference = ( - "https://codes.findlaw.com/ky/title-xi-revenue-and-taxation/ky-rev-st-sect-141-066.html", # Section (1), (c) & (d) + "https://apps.legislature.ky.gov/law/statutes/statute.aspx?id=49188", # KRS 141.066(1)(c) & (d) "https://revenue.ky.gov/Forms/740%20Packet%20Instructions%205-9-23.pdf#page=11", + "https://revenue.ky.gov/Forms/740%20instructions%20packet%20(2024).pdf#page=13", ) label = "Filing status for the tax unit in Kentucky" defined_for = StateCode.KY def formula(tax_unit, period, parameters): - has_spouse = add(tax_unit, period, ["is_tax_unit_spouse"]) > 0 - person = tax_unit.members - is_separated = tax_unit.any(person("is_separated", period)) + # Kentucky follows the filer's own federal marital status (IRC 7703), + # so a separated dependent does not make the filer file separately. + # Federal head of household and surviving spouse filers use + # Kentucky Filing Status 1 (Single). + filing_status = tax_unit("filing_status", period) + statuses = filing_status.possible_values + # Spouses on one return file jointly or separately on a combined + # return, which Kentucky allows after federal separate returns, so a + # spouse in the tax unit means a joint or combined return. Separate + # returns (Filing Status 4) leave the spouse out of the tax unit. + joint_or_combined = (filing_status == statuses.JOINT) | tax_unit( + "tax_unit_married", period + ) return select( [ - has_spouse, - is_separated, + joint_or_combined, + filing_status == statuses.SEPARATE, ], [ KyFilingStatus.JOINT,