Add dependent-exemption/credit age-gate contributed reforms for 13 states#8816
Open
DTrim99 wants to merge 3 commits into
Open
Add dependent-exemption/credit age-gate contributed reforms for 13 states#8816DTrim99 wants to merge 3 commits into
DTrim99 wants to merge 3 commits into
Conversation
…ates
Adds gov.contrib.states.{st}.dependent_exemption / dependent_credit contributed
reforms so a state's per-dependent exemption or credit can be adjusted, eliminated,
or age-limited (restricted to dependents under a chosen age). This lets tools model
eliminating the exemption/credit only for young children and swapping it for a child
allowance.
Each contrib has an in_effect flag, an amount (default reproduces the baseline, so
activating at default is a no-op — a negative sentinel means "use the baseline
schedule" for the stepped states), and an age_limit (in_effect + threshold).
New contribs:
- Separate-variable states: NY, IL, MS, NJ, SC
- Bundled personal+dependent carve-out: GA, KS, MN (MN's AGI phase-out preserved)
- Exemption-credit states: CA, IA (per-dependent portion separated)
- Income/age-stepped: AL (AGI-stepped, reads the baseline schedule), AZ (age-based schedule)
Also adds an age_limit sub-tree to the existing AR dependent_credit contrib and
age-gates its person-level per-dependent amount.
Each state has a YAML test: default reproduces baseline; amount 0 eliminates the
dependent portion only; the age limit restricts to under-threshold dependents. All
pass against the current engine.
Also fixes CLAUDE.md to note the default branch is `main`, not `master`.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…l suites Quick Feedback runs every selected YAML suite inside one coverage-instrumented process; each contrib suite loads the full tax-benefit system, so a broad PR (13 direct test files here) accumulates memory until the GitHub runner dies (the job failed at ~56 min with no step conclusion and no uploaded logs). limit_test_paths already had two tiers (defer slow directories; reduce broad scopes to directly changed tests) but returned the direct-file fallback unbounded. Add the missing third tier: beyond SELECTIVE_TEST_MAX_DIRECT_FILES (default 8) direct files, defer entirely to the sharded full-suite jobs, which run all of them anyway. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…ess, dead var, boundary tests - CA/IA dependent_credit amount.yaml: add missing references (values unchanged). - MN reform: fix reference tuple missing a comma (was one concatenated URL). - No-op robustness: IL/CA/KS contrib amount defaults now replicate the baseline schedule + uprating so activating at default reproduces baseline for all years (previously a static snapshot that drifted outside the snapshot year). MS/NJ/NY/IA baselines are flat constants, already correct. - Remove dead KS variable ks_older_dependents_count (defined but never read). - Tests: append age-limit boundary cases (age==threshold excluded, threshold-1 included) to all 13 states; strengthen GA to pin ga_dependent_exemption directly. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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.
What
Adds
gov.contrib.states.{st}.dependent_exemption/dependent_creditcontributed reforms so a state's per-dependent exemption or credit can be adjusted, eliminated, or age-limited — restricted to dependents under a chosen age. This lets tools (e.g. the child-poverty dashboard) model eliminating a state's dependent exemption/credit only for young children and swapping it for a child allowance.Extends the existing us#8696 / #8800 dependent-exemption contrib family (HI, MD, OH, RI, DE, VA, MI, NE, OK, VT, WI, WV) to the remaining states that had a dependent exemption/credit but no age gate.
New contribs
Each has
in_effect,amount(default reproduces the baseline so activating at default is a no-op — a negative sentinel means "use the baseline schedule" for the stepped states), andage_limit(in_effect+threshold):-1sentinel), AZ (age-based schedule)Also adds an
age_limitsub-tree to the existing ARdependent_creditcontrib and age-gates its person-level per-dependent amount (previously left un-age-gated).Behavior / tests
Every state has a YAML test with the same contract:
amount: 0→ eliminates the dependent portion only (personal exemptions / other credits preserved),age_limit→ applies the exemption/credit only to dependents under the threshold (older dependents keep the baseline).All new tests pass against the current engine (verified locally via
policyengine-core test). Bundled states additionally assert that over-age dependents fall back to the baseline personal treatment; NJ leaves its college-dependent exemption untouched; SC leaves its young-child deduction untouched.Also
Fixes
CLAUDE.mdto note the default branch ismain, notmaster(it previously said "PRs targeting master branch").🤖 Generated with Claude Code