Bump policyengine-us to >=1.711.0; pin otherprop→NIIT behavior#962
Merged
Conversation
policyengine-us 1.711.0 includes PR #8564 which unwires the Utah Homeowner/Renter Relief credit from TC-40 refundable credits. Utah Code § 59-2A-205 (homeowner) and § 59-2A-305 (renter) administer the Circuit-Breaker credit on TC-90H and TC-90CB respectively — separate refund applications — and the TC-40 income-tax instructions for tax year 2025 carry no reference to either form. The fix removes a phantom $1,412 refundable credit that PE-US 1.710.6 was applying to qualifying UT seniors and pulls the credit back through the existing state_property_tax_credits aggregate (sptcr / v40). Also add a small regression test pinning the TAXSIM `otherprop` → PE-US `rental_income` routing introduced in PR #961: • IRC § 1411(c)(1)(A)(i) rents/royalties in NIIT base • Form 8960 Line 4a • TAXSIM-35 binary smoke test ($1M otherprop single → fiitax $353,188, NIIT $30,400) The QBID gate override in policyengine_runner.py is asserted by the fiitax target — auto-QBID on rental_income would knock the fiitax by roughly $170K, well outside the $50 tolerance. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
This was referenced Jun 4, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
policyengine-usdependency from>=1.552.0to>=1.711.0inpyproject.toml. The 1.711.0+ line includes Unwire UT Homeowner/Renter Relief from income tax refundable credits policyengine-us#8564, which unwires the Utah Homeowner/Renter Relief credit from TC-40 refundable credits.tests/test_otherprop_niit.pypinning theotherprop→rental_incomemapping and NIIT behavior introduced in Route otherprop to rental_income for correct NIIT, suppress auto-QBID #961 to TAXSIM-35 and statute.Why the bump
PE-US 1.710.6 (our current pin) carried a stale
gov.states.ut.tax.income.credits.refundableparameter that listedut_homeowner_renter_relief. That program is administered on Form TC-90CB (Renter) / Form TC-90H (Homeowner) — separate refund applications under Utah Code §§ 59-2A-205 and 59-2A-305 — not on the TC-40 income-tax return. The Utah Tax Commission's 2025 TC-40 instructions confirm: no reference to TC-90CB/TC-90H anywhere in the income-tax flow.This caused a $1,412 phantom refundable credit for low-income UT seniors in the eCPS comparison (surfaced while investigating PR #961's regressions). The fix landed in PE-US main on June 2, 2026 as PR #8564. The credit continues to flow correctly via the household-level
state_property_tax_creditsaggregate, so TAXSIMsptcr(v40) is unaffected.Why the new test
PR #961 routed TAXSIM
otherpropto PE-USrental_incomeso passive rents/royalties enter the NIIT base, and disabled the auto-QBID gate. The behavior is anchored to:fiitax=\$353,188,niit=\$30,400(= 3.8% × ($1M − $200K)).Three pinning tests:
test_otherprop_drives_niit_at_3_8_percent— asserts NIIT = $30,400 ±$10. If the YAML mapping ever dropsotherpropfromrental_income, this fails.test_otherprop_does_not_trigger_qbid— asserts fiitax ≈ $353,188 ±$50. If the QBID gate override regresses, PE applies ~$170K of QBID and the fiitax drops well outside tolerance.test_no_otherprop_no_niit_on_wages— control: wages-only filer must owe no NIIT.Verification
pytest tests/suite passes locally on the bumped PE-US (1.720.6 resolved from>=1.711.0)siitaxreturns to\$0(matching TAXSIM)Test plan