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 8781c9ec180..61fc27071b6 100644 --- a/source_conflicts/candidates.yaml +++ b/source_conflicts/candidates.yaml @@ -7870,6 +7870,49 @@ candidates: main home''s value limits its own non-acquisition debt" give $22,500 home by home and $25,000 with Pub. 936''s total. The readings differ only when one home''s home equity debt exceeds its own room while the other home has room to spare. Ruled in November 2026 to follow the statute.' +- 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: