Add South Carolina fully refundable EITC contrib reform#8683
Open
DTrim99 wants to merge 2 commits into
Open
Conversation
Adds a Child Poverty Impact Dashboard contrib reform that converts South Carolina's nonrefundable EITC (125% of the federal EITC, capped per filer at $200 from 2026) to fully refundable for all filers, activated by gov.contrib.states.sc.child_poverty_impact_dashboard.eitc.in_effect. Mirrors the corrected Utah/Missouri/Ohio refundability reforms (PolicyEngine#8645/PolicyEngine#8642/ PolicyEngine#8657): pays sc_eitc_potential (uncapped at liability) so zero-liability filers receive the credit, rebuilds sc_non_refundable_credits via the ordered cap walk with sc_eitc filtered out (no add() path-string bug), and clears the inherited adds/subtracts on sc_refundable_credits before giving it a formula. The statutory per-filer cap (gov.states.sc.tax.income.credits.eitc.max) is preserved and remains separately adjustable. Tested: 4 YAML cases (zero-liability refund, no double-count with liability, $200 cap respected, SC-only) plus an end-to-end check that the in_effect param activates the reform and raises a zero-liability filer's net income. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…llowlist The fully refundable SC EITC reform filters sc_eitc out of the ordered non-refundable list by name, which the applied-credit downstream-consumer code-health guardrail flags as a new consumer. Add the reviewed entry, as done for the UT/OH refundability reforms. 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 this does
Adds a Child Poverty Impact Dashboard contrib reform that converts South Carolina's nonrefundable EITC to fully refundable for all filers, activated by
gov.contrib.states.sc.child_poverty_impact_dashboard.eitc.in_effect. This is the SC half of #8682.SC's EITC is 125% of the federal EITC, capped per filer at $200 from 2026, and is nonrefundable by default (applied only up to remaining state income tax liability), so zero-liability filers receive nothing today.
Approach
Mirrors the corrected Utah/Missouri/Ohio refundability reforms (#8645 / #8642 / #8657) — same principles, no reintroduced bugs:
sc_fully_refundable_eitcreturnssc_eitc_potential(uncapped at liability), so the full credit is paid as a refund.sc_eitcis capped at liability and zeroes out for exactly the low-liability filers refundability helps.sc_non_refundable_creditsre-runsordered_capped_state_non_refundable_creditsover the ordered list withsc_eitcfiltered out — noadd("<param-path string>")bug, and nosum − sc_eitcoverstatement when the bucket binds.addsbefore adding a formula.sc_refundable_creditssetsadds = None; subtracts = None(the baseline computes viaadds) and returns the standard refundable credits plussc_fully_refundable_eitc.The statutory per-filer cap (
gov.states.sc.tax.income.credits.eitc.max) is preserved and remains separately adjustable — the dashboard exposes it as its own lever.New files
policyengine_us/reforms/states/sc/child_poverty_eitc/sc_fully_refundable_eitc_reform.py(+__init__.py)policyengine_us/parameters/gov/contrib/states/sc/child_poverty_impact_dashboard/eitc/in_effect.yamlpolicyengine_us/tests/policy/reform/sc_fully_refundable_eitc.yamlpolicyengine_us/reforms/reforms.py; changelog fragmentVerification
…child_poverty_impact_dashboard.eitc.in_effect = trueon a 2026 SC filer with a federal EITC of $100 and zero SC liability yieldssc_fully_refundable_eitc = $125,sc_refundable_credits = $125, and +$125 household net income (baseline pays $0).Part of #8682.