diff --git a/changelog.d/ny-itemized-reduction-line-45.fixed.md b/changelog.d/ny-itemized-reduction-line-45.fixed.md new file mode 100644 index 00000000000..03b58d529ea --- /dev/null +++ b/changelog.d/ny-itemized-reduction-line-45.fixed.md @@ -0,0 +1 @@ +Apply the New York itemized deduction adjustment (Tax Law 615(f), IT-196 line 46) to the deduction after the line 40 limitation, including the college tuition itemized deduction. diff --git a/policyengine_us/tests/policy/baseline/gov/states/ny/tax/income/taxable_income/deductions/itemized/ny_itemized_deductions_higher_incremental_reduction.yaml b/policyengine_us/tests/policy/baseline/gov/states/ny/tax/income/taxable_income/deductions/itemized/ny_itemized_deductions_higher_incremental_reduction.yaml index 53913b572ff..9d9096f9d92 100644 --- a/policyengine_us/tests/policy/baseline/gov/states/ny/tax/income/taxable_income/deductions/itemized/ny_itemized_deductions_higher_incremental_reduction.yaml +++ b/policyengine_us/tests/policy/baseline/gov/states/ny/tax/income/taxable_income/deductions/itemized/ny_itemized_deductions_higher_incremental_reduction.yaml @@ -21,3 +21,36 @@ state_code: NY output: ny_itemized_deductions_higher_incremental_reduction: 25 + +- name: Case 3, the higher share uses the base after the line 40 limitation. + period: 2021 + absolute_error_margin: 0.01 + input: + ny_agi: 500_000 + ny_itemized_deductions_max: 50_000 + ny_itemized_deductions_phase_out: 640.50 + charitable_deduction: 0 + filing_status: SINGLE + state_code: NY + output: + # IT-196 (2021) line 46 Worksheet 4: line 1 = 50,000 - 640.50 = 49,359.50. + # Line 2 = min(500,000 - 475,000, 50,000) / 50,000 = 0.5. + # Line 3 = 0.25 * 49,359.50 = 12,339.875; higher amount = 0.5 * 12,339.875. + ny_itemized_deductions_higher_incremental_reduction: 6_169.9375 + +- name: Case 4, the higher share base includes the college tuition deduction. + period: 2021 + absolute_error_margin: 0.01 + input: + ny_agi: 500_000 + ny_itemized_deductions_max: 60_000 + ny_college_tuition_deduction: 10_000 + ny_itemized_deductions_phase_out: 640.50 + charitable_deduction: 0 + filing_status: SINGLE + state_code: NY + output: + # Tax Law 615(f)(2) uses the deduction allowable under 615(a), with the + # 615(d)(4) tuition deduction: base = 60,000 - 640.50 = 59,359.50. + # Fraction = 25,000 / 50,000 = 0.5; 0.5 * 0.25 * 59,359.50 = 7,419.9375. + ny_itemized_deductions_higher_incremental_reduction: 7_419.9375 diff --git a/policyengine_us/tests/policy/baseline/gov/states/ny/tax/income/taxable_income/deductions/itemized/ny_itemized_deductions_lower_incremental_reduction.yaml b/policyengine_us/tests/policy/baseline/gov/states/ny/tax/income/taxable_income/deductions/itemized/ny_itemized_deductions_lower_incremental_reduction.yaml index 84386a40dd3..17aa2202975 100644 --- a/policyengine_us/tests/policy/baseline/gov/states/ny/tax/income/taxable_income/deductions/itemized/ny_itemized_deductions_lower_incremental_reduction.yaml +++ b/policyengine_us/tests/policy/baseline/gov/states/ny/tax/income/taxable_income/deductions/itemized/ny_itemized_deductions_lower_incremental_reduction.yaml @@ -33,3 +33,55 @@ state_code: NY output: ny_itemized_deductions_lower_incremental_reduction: 25 + +- name: Case 4, the line 46 share uses line 45, after the line 40 limitation. + period: 2021 + absolute_error_margin: 0.01 + input: + ny_agi: 360_200 + ny_itemized_deductions_max: 50_000 + ny_itemized_deductions_phase_out: 640.50 + charitable_deduction: 0 + filing_status: JOINT + state_code: NY + output: + # IT-196 (2021) line 46 Worksheet 3: line 45 = 50,000 - 640.50 = 49,359.50. + # Line 4 = min(360,200 - 200,000, 50,000) = 50,000; line 5 = 1. + # Line 6 = 0.25 * 49,359.50 = 12,339.875. + ny_itemized_deductions_lower_incremental_reduction: 12_339.875 + +- name: Case 5, the college tuition deduction is part of the 615(f) base. + period: 2021 + absolute_error_margin: 0.01 + input: + ny_agi: 360_200 + ny_itemized_deductions_max: 60_000 + ny_college_tuition_deduction: 10_000 + charitable_deduction: 0 + filing_status: JOINT + state_code: NY + output: + # Tax Law 615(f)(1) takes the percentage of the deduction allowable under + # 615(a), which includes the 615(d)(4) college tuition deduction (IT-196 + # line 45 holds it on line 43 for Form IT-203 filers). No federal AGI is + # given, so the line 40 limitation does not apply: base = 60,000. + # Line 4 = min(360,200 - 200,000, 50,000) = 50,000; line 5 = 1. + # Line 6 = 0.25 * 60,000 = 15,000. + ny_itemized_deductions_lower_incremental_reduction: 15_000 + +- name: Case 6, the base includes college tuition and is after the line 40 limitation. + period: 2021 + absolute_error_margin: 0.01 + input: + ny_agi: 360_200 + ny_itemized_deductions_max: 60_000 + ny_college_tuition_deduction: 10_000 + ny_itemized_deductions_phase_out: 640.50 + charitable_deduction: 0 + filing_status: JOINT + state_code: NY + output: + # Base = 60,000 - 640.50 = 59,359.50 (tuition 10,000 stays in the base). + # Line 5 = min(160,200, 50,000) / 50,000 = 1. + # Line 6 = 0.25 * 59,359.50 = 14,839.875. + ny_itemized_deductions_lower_incremental_reduction: 14_839.875 diff --git a/policyengine_us/tests/policy/baseline/gov/states/ny/tax/income/taxable_income/deductions/itemized/ny_itemized_deductions_phase_out_integration.yaml b/policyengine_us/tests/policy/baseline/gov/states/ny/tax/income/taxable_income/deductions/itemized/ny_itemized_deductions_phase_out_integration.yaml index 7704dceee09..10b3f0301ec 100644 --- a/policyengine_us/tests/policy/baseline/gov/states/ny/tax/income/taxable_income/deductions/itemized/ny_itemized_deductions_phase_out_integration.yaml +++ b/policyengine_us/tests/policy/baseline/gov/states/ny/tax/income/taxable_income/deductions/itemized/ny_itemized_deductions_phase_out_integration.yaml @@ -79,3 +79,167 @@ # ny_itemized_deductions_max = 50,000 + 25,000 + 10,000 = 85,000 passes # through Line 40 untouched (Line 46 still applies on NY AGI 300,000). ny_itemized_deductions_phase_out_applies: false + +- name: JOINT 2021 - the line 46 adjustment applies to line 45, after the line 40 limitation. + period: 2021 + absolute_error_margin: 0.01 + input: + people: + head: + age: 40 + taxable_interest_income: 360_200 + deductible_mortgage_interest: 50_000 + spouse: + age: 40 + tax_units: + tax_unit: + members: [head, spouse] + state_sales_tax: 0 + local_sales_tax: 0 + marital_units: + marital_unit: + members: [head, spouse] + families: + family: + members: [head, spouse] + spm_units: + spm_unit: + members: [head, spouse] + households: + household: + members: [head, spouse] + state_code: NY + output: + # Hand computation from the 2021 IT-196 instructions (policyengine-taxsim #1512). + # Line 40: 50,000 - min(0.80 * 50,000, 0.03 * (360,200 - 338,850)) = 49,359.50. + # Line 46 (Worksheet 3): 0.25 * 49,359.50 = 12,339.875. + # Line 47: 49,359.50 - 12,339.875 = 37,019.625. + ny_itemized_deductions_phase_out: 640.50 + ny_itemized_deductions_reduction: 12_339.875 + ny_itemized_deductions: 37_019.625 + # IT-201 (2021): taxable income 360,200 - 37,019.625 = 323,180.375 is not + # more than 323,200, so Tax computation worksheet 2 applies. NY AGI is + # $211,550 or more, so the tax is line 3: 0.0633 * 323,180.375 = 20,457.32. + ny_taxable_income: 323_180.375 + +- name: JOINT 2021 - the line 46 adjustment applies to line 45, after the line 40 limitation, tax before credits. + period: 2021 + # The model adds the rounded $1,056 recapture amount, so it returns about + # 0.22 more than the flat 6.33% of line 3. + absolute_error_margin: 0.5 + input: + people: + head: + age: 40 + taxable_interest_income: 360_200 + deductible_mortgage_interest: 50_000 + spouse: + age: 40 + tax_units: + tax_unit: + members: [head, spouse] + state_sales_tax: 0 + local_sales_tax: 0 + marital_units: + marital_unit: + members: [head, spouse] + families: + family: + members: [head, spouse] + spm_units: + spm_unit: + members: [head, spouse] + households: + household: + members: [head, spouse] + state_code: NY + output: + # IT-201 (2021): taxable income 360,200 - 37,019.625 = 323,180.375 is not + # more than 323,200, so Tax computation worksheet 2 applies. NY AGI is + # $211,550 or more, so the tax is line 3: 0.0633 * 323,180.375 = 20,457.32. + ny_income_tax_before_credits: 20_457.32 + +- name: JOINT 2021 - the line 46 adjustment base includes the college tuition deduction. + period: 2021 + absolute_error_margin: 0.01 + input: + people: + head: + age: 40 + taxable_interest_income: 360_200 + deductible_mortgage_interest: 50_000 + qualified_tuition_expenses: 10_000 + spouse: + age: 40 + tax_units: + tax_unit: + members: [head, spouse] + state_sales_tax: 0 + local_sales_tax: 0 + marital_units: + marital_unit: + members: [head, spouse] + families: + family: + members: [head, spouse] + spm_units: + spm_unit: + members: [head, spouse] + households: + household: + members: [head, spouse] + state_code: NY + output: + # Tax Law 615(d)(4): tuition deduction = 100% of 10,000 allowable expenses. + ny_college_tuition_deduction: 10_000 + # Line 40: tuition is not on the line 40 worksheet, so the limitation is + # min(0.80 * 50,000, 0.03 * (360,200 - 338,850)) = 640.50. + ny_itemized_deductions_phase_out: 640.50 + # Tax Law 615(f)(1): 25% of the deduction allowable under 615(a), which + # includes the 615(d)(4) tuition deduction (IT-196 line 45 with line 43): + # 0.25 * (50,000 + 10,000 - 640.50) = 0.25 * 59,359.50 = 14,839.875. + ny_itemized_deductions_reduction: 14_839.875 + # 59,359.50 - 14,839.875 = 44,519.625. + ny_itemized_deductions: 44_519.625 + # IT-201 (2021): taxable income 360,200 - 44,519.625 = 315,680.375 is not + # more than 323,200, so Tax computation worksheet 2 applies. NY AGI is + # $211,550 or more, so the tax is line 3: 0.0633 * 315,680.375 = 19,982.57. + ny_taxable_income: 315_680.375 + +- name: JOINT 2021 - the line 46 adjustment base includes the college tuition deduction, tax before credits. + period: 2021 + # The model adds the rounded $1,056 recapture amount, so it returns about + # 0.22 more than the flat 6.33% of line 3. + absolute_error_margin: 0.5 + input: + people: + head: + age: 40 + taxable_interest_income: 360_200 + deductible_mortgage_interest: 50_000 + qualified_tuition_expenses: 10_000 + spouse: + age: 40 + tax_units: + tax_unit: + members: [head, spouse] + state_sales_tax: 0 + local_sales_tax: 0 + marital_units: + marital_unit: + members: [head, spouse] + families: + family: + members: [head, spouse] + spm_units: + spm_unit: + members: [head, spouse] + households: + household: + members: [head, spouse] + state_code: NY + output: + # IT-201 (2021): taxable income 360,200 - 44,519.625 = 315,680.375 is not + # more than 323,200, so Tax computation worksheet 2 applies. NY AGI is + # $211,550 or more, so the tax is line 3: 0.0633 * 315,680.375 = 19,982.57. + ny_income_tax_before_credits: 19_982.57 diff --git a/policyengine_us/variables/gov/states/ny/tax/income/taxable_income/deductions/itemized/reduction/based_on_charitable_deduction/incremental/ny_itemized_deductions_higher_incremental_reduction.py b/policyengine_us/variables/gov/states/ny/tax/income/taxable_income/deductions/itemized/reduction/based_on_charitable_deduction/incremental/ny_itemized_deductions_higher_incremental_reduction.py index 4fbd86fdd6e..1d1713e68b4 100644 --- a/policyengine_us/variables/gov/states/ny/tax/income/taxable_income/deductions/itemized/reduction/based_on_charitable_deduction/incremental/ny_itemized_deductions_higher_incremental_reduction.py +++ b/policyengine_us/variables/gov/states/ny/tax/income/taxable_income/deductions/itemized/reduction/based_on_charitable_deduction/incremental/ny_itemized_deductions_higher_incremental_reduction.py @@ -7,7 +7,11 @@ class ny_itemized_deductions_higher_incremental_reduction(Variable): label = "New York itemized deductions higher incremental reduction" unit = USD definition_period = YEAR - reference = "https://www.nysenate.gov/legislation/laws/TAX/615" # (f) + reference = ( + "https://www.nysenate.gov/legislation/laws/TAX/615", # (f) + "https://www.tax.ny.gov/pdf/2021/inc/it196_2021.pdf#page=3", # Lines 40-49 + "https://www.tax.ny.gov/pdf/2021/inc/it196i_2021.pdf#page=20", # Line 46 + ) defined_for = "ny_itemized_deductions_reduction_applies" def formula(tax_unit, period, parameters): @@ -18,5 +22,12 @@ def formula(tax_unit, period, parameters): agi_excess = max_(agi - p.income_threshold, 0) numerator = min_(p.numerator, agi_excess) fraction = numerator / p.denominator - itemized_deduction = tax_unit("ny_itemized_deductions_max", period) - return itemized_deduction * p.rate * fraction + # Tax Law 615(f) applies the percentage to the New York itemized + # deduction otherwise allowable under 615(a): the pre-TCJA federal + # deductions after the line 40 limitation, with the 615(c)-(e) + # modifications, including the 615(d)(4) college tuition deduction. + # This is IT-196 line 45 for Form IT-203 filers (line 43 tuition). + itemized_max = tax_unit("ny_itemized_deductions_max", period) + phase_out = tax_unit("ny_itemized_deductions_phase_out", period) + base = itemized_max - phase_out + return base * p.rate * fraction diff --git a/policyengine_us/variables/gov/states/ny/tax/income/taxable_income/deductions/itemized/reduction/based_on_charitable_deduction/incremental/ny_itemized_deductions_lower_incremental_reduction.py b/policyengine_us/variables/gov/states/ny/tax/income/taxable_income/deductions/itemized/reduction/based_on_charitable_deduction/incremental/ny_itemized_deductions_lower_incremental_reduction.py index fb4e7be5f7f..91a60ed56b8 100644 --- a/policyengine_us/variables/gov/states/ny/tax/income/taxable_income/deductions/itemized/reduction/based_on_charitable_deduction/incremental/ny_itemized_deductions_lower_incremental_reduction.py +++ b/policyengine_us/variables/gov/states/ny/tax/income/taxable_income/deductions/itemized/reduction/based_on_charitable_deduction/incremental/ny_itemized_deductions_lower_incremental_reduction.py @@ -7,7 +7,11 @@ class ny_itemized_deductions_lower_incremental_reduction(Variable): label = "New York itemized deductions lower incremental reduction" unit = USD definition_period = YEAR - reference = "https://www.nysenate.gov/legislation/laws/TAX/615" # (f) + reference = ( + "https://www.nysenate.gov/legislation/laws/TAX/615", # (f) + "https://www.tax.ny.gov/pdf/2021/inc/it196_2021.pdf#page=3", # Lines 40-49 + "https://www.tax.ny.gov/pdf/2021/inc/it196i_2021.pdf#page=20", # Line 46 + ) defined_for = "ny_itemized_deductions_reduction_applies" def formula(tax_unit, period, parameters): @@ -19,5 +23,12 @@ def formula(tax_unit, period, parameters): agi_excess = max_(agi - p.income_threshold[filing_status], 0) numerator = min_(p.numerator, agi_excess) fraction = numerator / p.denominator - itemized_deduction = tax_unit("ny_itemized_deductions_max", period) - return itemized_deduction * p.rate * fraction + # Tax Law 615(f) applies the percentage to the New York itemized + # deduction otherwise allowable under 615(a): the pre-TCJA federal + # deductions after the line 40 limitation, with the 615(c)-(e) + # modifications, including the 615(d)(4) college tuition deduction. + # This is IT-196 line 45 for Form IT-203 filers (line 43 tuition). + itemized_max = tax_unit("ny_itemized_deductions_max", period) + phase_out = tax_unit("ny_itemized_deductions_phase_out", period) + base = itemized_max - phase_out + return base * p.rate * fraction diff --git a/source_conflicts/candidates.yaml b/source_conflicts/candidates.yaml index 1eba90dc1f3..0afa6441e9c 100644 --- a/source_conflicts/candidates.yaml +++ b/source_conflicts/candidates.yaml @@ -7807,6 +7807,49 @@ candidates: state: ruled note: Both credits halve exactly, as the statute says; the tables round for the form. Section 606 authorizes nearest-dollar tables only for the real property tax credit. +- id: us-ny:itemized-deduction-adjustment-college-tuition-base + program: income-tax + years: + from: 2018 + type: tax + question: Does the Tax Law 615(f) itemized deduction adjustment (IT-196 line 46) apply to a base that includes the + 615(d)(4) college tuition itemized deduction, as 615(a) defines the deduction, or to a base without it, as Form + IT-196 lays out lines 45 and 48 for Form IT-201 filers? + sources: + - kind: statute + citation: N.Y. Tax Law 615(a), (d)(4), (f)(1)-(2) and (g) + url: https://www.nysenate.gov/legislation/laws/TAX/615 + - kind: form + citation: Form IT-196 (2021), lines 40-49 + url: https://www.tax.ny.gov/pdf/2021/inc/it196_2021.pdf#page=3 + - kind: instructions + citation: Form IT-196-I (2021), lines 43, 46 and 48 and Worksheets 3 and 4 + url: https://www.tax.ny.gov/pdf/2021/inc/it196i_2021.pdf#page=20 + readings: + statute: 615(f) takes its percentage of "the New York itemized deduction otherwise allowable under subsection (a)", + and 615(a) defines that deduction "with the modifications specified in this section", which include the + 615(d)(4) college tuition deduction. The base includes tuition, as IT-196 line 45 does for Form IT-203 filers + (line 43). + other: For Form IT-201 filers, IT-196 adds the college tuition deduction on line 48, after the line 46 + adjustment, so the line 45 base leaves it out. + example: A 2021 joint return with NY AGI $360,200, $50,000 of mortgage interest, a $640.50 line 40 limitation and a + $10,000 college tuition deduction has a line 46 adjustment of 0.25 x 59,359.50 = 14,839.875 and a New York itemized + deduction of 44,519.625 under the statute, against 12,339.875 and 47,019.625 under the IT-201 form layout. + pe_us: + follows: statute + code: + - policyengine_us/variables/gov/states/ny/tax/income/taxable_income/deductions/itemized/reduction/based_on_charitable_deduction/incremental/ny_itemized_deductions_lower_incremental_reduction.py + - policyengine_us/variables/gov/states/ny/tax/income/taxable_income/deductions/itemized/reduction/based_on_charitable_deduction/incremental/ny_itemized_deductions_higher_incremental_reduction.py + - policyengine_us/variables/gov/states/ny/tax/income/taxable_income/deductions/itemized/ny_itemized_deductions.py + prs: + - https://github.com/PolicyEngine/policyengine-us/pull/10658 + state: unreviewed + note: The 615(f) base is ny_itemized_deductions_max (which includes ny_college_tuition_deduction) minus the line 40 + limitation, for every filer. Above NY AGI $1,000,000, ny_itemized_deductions returns only the 615(g) share of the + charitable deduction, so the college tuition deduction is not added back, which also follows the statute ("Notwithstanding + subsection (a)") over the IT-201 line 48 addition. The model has no IT-201/IT-203 split for this rule. The IT-196 + line 40-49 layout and the Worksheets 3 and 4 "25% (.25) of line 45" wording are the same on the 2018-2025 forms + and instructions checked (forms 2018-2021 and 2025; instructions 2018-2022, 2024 and 2025). - id: us-ny:real-property-credit-claimable-spouse program: income-tax years: