Implement Pennsylvania CTC contributed reforms#7438
Implement Pennsylvania CTC contributed reforms#7438DTrim99 wants to merge 3 commits intoPolicyEngine:mainfrom
Conversation
Add two Pennsylvania Child Tax Credit reform proposals: 1. Flat Amount CTC (pa_ctc_flat_amount): - $1,000 per child under age 6 - 2% phaseout rate above $125k threshold (all filing statuses) - Effective 2026 2. Federal CTC Match (pa_ctc_match): - 50% match of federal CTC for children under 6 - No income phaseout - Effective 2026 Includes: - Parameter files in gov/contrib/states/pa/ctc/ - Reform code in reforms/states/pa/ctc/ - __init__.py files for proper imports - Updates to reforms.py - 14 YAML tests with full coverage Closes PolicyEngine#7436 Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Implementation CompleteProposal 1: Flat Amount CTC
Proposal 2: Federal CTC Match
Test Coverage (14 tests)
All tests pass locally. |
Updates the PA CTC match formula to use ctc_value instead of ctc_child_individual_maximum. This ensures low-income families only receive the match on their actual federal CTC amount after phase-in, not the maximum amount they would eventually receive. Adds low income test cases: - $2,000 income: $0 match (below $2,500 phase-in threshold) - $10,000 income: $562.50 match (partial phase-in) - $20,000 income: $1,100 match (full phase-in) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
Updated the CTC match implementation to use Added low income test cases:
All 9 CTC match tests and 8 flat amount tests pass. |
- Changed formula to use refundable_ctc + min(non_refundable_ctc, tax_liability) instead of ctc_value, which overstated the federal CTC for low/moderate income families who cannot use the nonrefundable portion due to $0 tax liability - Added SSN requirement check (meets_ctc_child_identification_requirements) to exclude children without valid SSN from the match - Updated test at $20k income: expected PA match is $850 (not $1,100) since only $1,700 refundable CTC is received, not $2,200 - Added test at $15k income verifying refundable CTC cap behavior - Added test for child without SSN verifying $0 PA match Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Fix: PA CTC Match Now Uses Actual Federal CTC ReceivedThis commit fixes an important issue with the PA CTC match formula. ProblemThe original implementation used
For families with income below the standard deduction (~$24k), they have $0 tax liability and can only receive the refundable $1,700, not the full $2,200. ExampleAt $20,000 income with 1 young child:
Changes
|
Summary
Implements two Pennsylvania Child Tax Credit reform proposals as contributed reforms (not law).
Closes #7436
Proposals
1. Flat Amount CTC (
pa_ctc_flat_amount)2. Federal CTC Match (
pa_ctc_match)Files Added
Parameters (
gov/contrib/states/pa/ctc/):flat_amount/- in_effect, amount, age_limit, phaseout/threshold, phaseout/ratectc_match/- in_effect, match, age_limitReform Code (
reforms/states/pa/ctc/):pa_ctc_flat_amount.pypa_ctc_match.py__init__.pyfilesTests (
tests/policy/contrib/states/pa/ctc/):Test Plan
make formatpasses🤖 Generated with Claude Code