PolicyEngine / PolicyEngine/policyengine-us

VT: §5830e(c) other-contributory retirement exclusion is unmodeled — the (a)-(c) election only sees Social Security and CSRS

Open
#9,207 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
162
Forks
212
Avg merge
3d 3h
Merged PRs (30d)
97

Description

Follow-up from #9146 / PR #9196. Act 71 (2025) lets the §5830e(d) military exclusion stack with **one** elected exclusion among subsections (a) Social Security, (b) CSRS, and (c) other contributory retirement systems. PR #9196 implements the election over the modeled options — but only (a) and (b) exist in the model:

- `vt_csrs_retirement_pay_exclusion` sums only `csrs_retirement_pay`, whose documentation limits it to federal CSRS.
- No Vermont variable reads any other contributory-pension input, so a subsection (c) pension (e.g. a municipal or state contributory system other than CSRS) can never qualify, be elected, or stack with the military exclusion. Filers whose best (a)-(c) option is a (c) pension are under-computed.

Modeling questions to settle before implementing:
1. Which input carries (c) income — a new dedicated input (cleanest), or a mapping from `pension_income` net of the modeled CSRS/military/SS amounts (risks double-counting and mislabeling non-contributory DB pensions)?
2. (c) shares the (b) reduction band under §5830e(e)'s election structure as amended — confirm the band parameters apply to (c) identically (the current `csrs/reduction/*` parameters would then deserve a rename or a shared parent).

Until then the election is over {SS, CSRS} only; PR #9196 was rescoped accordingly.

Contributor guide

Open the contributing guide

Research direction

Start with PR #9196 and the existing vt_csrs_retirement_pay_exclusion variable and csrs/reduction/* parameters. Determine which input should represent subsection (c) income and confirm whether it shares subsection (b)'s reduction band. Done means the election covers Social Security, CSRS, and the other contributory system without double-counting, and that the military exclusion can stack with the elected option.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
backend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.