Skip to content

Reduce Oregon's federal tax subtraction by the OR-17 worksheet's refundable credits only - #10093

Draft
MaxGhenis wants to merge 5 commits into
mainfrom
or-federal-tax-subtraction-worksheet
Draft

MaxGhenis wants to merge 5 commits into
mainfrom
or-federal-tax-subtraction-worksheet

Conversation

@MaxGhenis

@MaxGhenis MaxGhenis commented Oct 11, 2026 •

Copy link
Copy Markdown
Contributor

WIP (draft). Pending: targeted YAML runs (queued under the hub heavy lock), main-vs-branch households, the microsimulation (held by Fleet ops), an independent review and the Axiom parity item.

What changes

Oregon lets residents subtract their federal income tax liability, capped by federal AGI (ORS 316.680(1)(b), 316.685, 316.695). Main computed it as max(0, income_tax + eitc). That reduces the liability by every federal refundable credit except the EITC, including the additional child tax credit. It also counts the net investment income tax and never subtracts the premium tax credit, because PE keeps that credit out of income_tax.

Each year's Publication OR-17 federal tax worksheet (Part A) does it differently:

  • Line 5: Form 1040 line 22 (tax after nonrefundable credits, excluding any excess advance premium tax credit repayment), plus only the other taxes on Schedule 2, lines 8, 16 and 17. Those are the additional tax on IRAs and other tax-favored accounts, recapture of the low-income housing credit, and other additional taxes such as credit recaptures. That leaves out the net investment income tax (line 12) and the Social Security and Medicare tax on unreported tips and wages (lines 5 and 6).
  • Subtract: only listed refundable credits.
    • 2017–2019 and 2022–2025: the American Opportunity credit and the premium tax credit (Form 8962, line 24, regardless of advance payments). From 2025 the list also includes the refundable adoption credit, which PE does not model.
    • 2020: those two plus stimulus payments and the recovery rebate credit.
    • 2021: those three plus the refundable child tax credit (Schedule 8812, line 14e, with the nonrefundable part added back on line 2) and the refundable child and dependent care credit.
  • Never subtract: the EITC (ORS 316.685(1)(b)), or the additional child tax credit outside 2021.

The branch adds gov.states.or.tax.income.subtractions.federal_tax_liability.refundable_credits, dated per worksheet, and computes max(0, income_tax_before_refundable_credits − net_investment_income_tax − unreported_payroll_tax − listed credits), then applies the existing cap.

Law

  • ORS 316.680(1)(b): "The amount of any federal income taxes accrued by the taxpayer during the taxable year as described in ORS 316.685…" ORS 316.685(1)(b): "the taxpayer shall not take into account any amount of the earned income credit…" https://www.oregonlegislature.gov/bills_laws/ors/ors316.html
  • 2025 OR-17, PDF p.71: "Line 1: Enter your federal tax liability after nonrefundable credits but before other taxes. This is found on Form 1040, line 22." "Line 4: Enter the total of any other taxes, plus any additions to tax that include only income tax, such as recapture taxes, from Form 1040, Schedule 2, lines 8, 16, and 17." "Line 8: Enter your total premium tax credit amount from federal Form 8962, line 24. This is your allowable premium credit regardless of any excess advance payments you received or credit you're claiming on your federal return." https://www.oregon.gov/dor/forms/FormsPubs/publication-or-17_101-431_2025.pdf#page=71 (worksheet rows on p.72).
  • Every year 2017–2025 was read: pages and line numbers are in the parameter's references.

Where it matters

A positive refundable_ctc (outside 2021) means the CTC exhausted the liability that limits it, so Form 1040 line 22 is already zero. The additional child tax credit therefore changes the subtraction only when there are line 4 taxes, such as the 10% early-distribution tax. The premium tax credit is the larger change: marketplace enrollees who owe federal tax had their subtraction overstated by the credit. The net investment income tax rarely binds, because the AGI cap reaches zero ($145,000 single; $290,000 joint) at or below the tax's $200,000/$250,000 thresholds.

Coordination

#10038 (draft) adds claim_of_right_credit back to income_tax + eitc here. This PR replaces that formula: the worksheet list never subtracts the section 1341 credit, so #10038's Oregon edit becomes unnecessary. Whichever merges second drops #10038's Oregon formula change and moves its test input from income_tax to income_tax_before_refundable_credits.

Tests

(pending)

Microsimulation

(pending; Fleet ops hold)

Invariants

For every input, with T = federal tax before refundable credits and cap = the AGI-based limit:

  1. 0 ≤ subtraction ≤ min(T, cap).
  2. The EITC never changes the subtraction (ORS 316.685(1)(b)). Outside 2021, neither does the additional child tax credit.
  3. Raising a listed credit (for example the premium tax credit) by d lowers the subtraction by at most d, and never raises it.
  4. Raising T by d raises the subtraction by at most d, and never lowers it.

policyengine_us/tests/core/test_or_federal_tax_liability_subtraction_invariants.py checks all four with Hypothesis for 2020, 2021 and 2025. Each example evaluates 6 tax units and their 4 variants in one simulation.

axiom: (pending)

🤖 Generated with Claude Code

MaxGhenis and others added 4 commits October 11, 2026 09:44
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ndable credits only

ORS 316.680(1)(b) and 316.685; Publication OR-17 federal tax worksheet,
Part A (2017-2025). The worksheet starts from Form 1040 line 22 plus the
other income taxes on Schedule 2, lines 8, 16 and 17, and subtracts only
the American Opportunity credit, the premium tax credit, and in 2020-2021
the recovery rebate credit and (2021) the refundable child tax and child
care credits. Main used income_tax + eitc, so it subtracted the additional
child tax credit in every year, never subtracted the premium tax credit,
and kept the net investment income tax.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Bounds, independence from the EITC (and the ACTC outside 2021), and
1-Lipschitz responses to listed credits and federal tax, checked with
Hypothesis on batches of twin tax units in one simulation per example.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant