Skip to content

Fix saver's credit AGI boundary tiers - #9193

Merged
MaxGhenis merged 1 commit into
PolicyEngine:mainfrom
saisharan0103:mergepath/issue-9151-saver-s-credit-rate-tiers-treat
Aug 2, 2026
Merged

Fix saver's credit AGI boundary tiers#9193
MaxGhenis merged 1 commit into
PolicyEngine:mainfrom
saisharan0103:mergepath/issue-9151-saver-s-credit-rate-tiers-treat

Conversation

@saisharan0103

Copy link
Copy Markdown
Contributor

Fixes #9151.

The saver's credit joint rate parameter stored IRS-published inclusive AGI maxima as single_amount thresholds. Since PolicyEngine treats those thresholds as lower bounds, AGI exactly equal to a published maximum moved into the next lower credit-rate tier.

This keeps the existing formula and filing-status adjustment logic, and shifts the nonzero joint thresholds to the first whole-dollar AGI above each published inclusive maximum for the years already represented in the parameter.

Also updates the nearby saver's credit YAML tests so exact published boundaries receive the higher inclusive-tier rate, adds the reported 2026 single-filer first-tier boundary regression case, and includes the repository-required fixed changelog fragment.

…usive AGI maxima exclusively (boundary enters next tier)

Closes PolicyEngine#9151

@MaxGhenis MaxGhenis left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Merging under the cross-family dual-review protocol (Claude Fable 5 + GPT-5.6-sol, independent reviews, both merge-ok). Implements #9151's recommended next-whole-dollar representation of the IRS inclusive AGI maxima exactly.

Verified: every changed expectation recomputed from branch parameters; filing-status derivations (0.5/0.75) preserve whole-dollar boundary behavior; the changed scale's only formula consumer is savers_credit_person; 15/15 YAML cases pass. Nonblocking: fractional-AGI slivers between a published maximum and the +1 threshold retain the higher rate (documented whole-dollar convention per the issue); a maximum+1 fixture would pin the tier transition explicitly.

@MaxGhenis
MaxGhenis merged commit 62d3530 into PolicyEngine:main Aug 2, 2026
31 checks passed
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.

Saver's credit rate tiers treat inclusive AGI maxima exclusively (boundary enters next tier)

2 participants