-
Notifications
You must be signed in to change notification settings - Fork 201
Implement Indiana TANF #6853
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Draft
hua7450
wants to merge
9
commits into
PolicyEngine:master
Choose a base branch
from
hua7450:indiana-tanf-implementation
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
Implement Indiana TANF #6853
Conversation
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
Starting multi-phase implementation of Indiana's Temporary Assistance for Needy Families (TANF) program following the encode-policy workflow. Related to issue PolicyEngine#6665 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
STEP 1: Parameters - Created payment standards ($248-$1,241 for family sizes 1-10) - Created gross income limits ($457-$1,905 for family sizes 1-10) - Created net income limits ($248-$1,241 for family sizes 1-10) - Created resource limits ($1,000 at application, $10,000 while receiving) - Created vehicle equity exclusion ($20,000) - Created earned income disregard (75% for benefit calculation) - Created time limits (24 months adults, 60 months children) STEP 2: Variables - in_tanf: Main benefit calculation (payment standard - countable income) - in_tanf_eligible: Eligibility determination (demographic + income tests) - in_tanf_income_eligible: Income eligibility (gross and net tests) - in_tanf_payment_standard: Payment standard by family size - in_tanf_assistance_unit_size: Household size - in_tanf_countable_income: Total countable income - in_tanf_countable_earned_income: Earned income with 75% disregard - in_tanf_countable_unearned_income: Unearned income (no disregard) Key Design Decisions: - Used federal baseline for demographic eligibility (is_demographic_tanf_eligible) - Used federal baseline for income sources (tanf_gross_earned_income, tanf_gross_unearned_income) - State-specific income limits and benefit calculation - All values parameterized from official FSSA sources - Zero hard-coded values (except arithmetic: 0, 1, 10) References: - Indiana FSSA: https://www.in.gov/fssa/dfr/tanf-cash-assistance/about-tanf/ - Indiana Code IC 12-14: https://iga.in.gov/laws/2023/ic/titles/12 - 470 IAC 10.3: https://iar.iga.in.gov/latestArticle/470/10.3 - WIOA State Plan: https://wioaplans.ed.gov/node/67731 Related to PolicyEngine#6665 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
Create missing intermediate variables to match test expectations: - Add in_tanf_gross_income variable (sum of gross earned and unearned) - Add in_tanf_gross_income_eligible variable (checks gross income against limit) - Add in_tanf_net_income_eligible variable (checks countable income against limit) - Update in_tanf_income_eligible to use new variables This resolves entity mismatches and missing variable references between tests and implementation, enabling proper integration testing.
Critical fixes: - Renamed time_limits/children.yaml to child.yaml to avoid conflict with ParameterNode.children attribute - Fixed income calculation variables to use person-level inputs and aggregate to SPMUnit - Updated test expectations for Test Case 3 (gross income exceeds limit) - Updated test expectations for person vs unit-level values - Fixed Test Case 7 (single adult not demographically eligible) - Added unemployment_compensation to unearned income calculation - Deleted working_references.md after embedding all references All 53 tests now pass successfully. Generated with Claude Code Co-Authored-By: Claude <[email protected]>
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #6853 +/- ##
==========================================
Coverage 100.00% 100.00%
==========================================
Files 1 12 +11
Lines 16 160 +144
==========================================
+ Hits 16 160 +144
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
Implements missing resources (assets) eligibility test for Indiana TANF: - Add in_tanf_countable_resources variable with vehicle exclusion - Add in_tanf_resources_eligible variable with dual limits (application vs ongoing) - Update in_tanf_eligible to include resources check - Improve parameter references to cite specific regulations (470 IAC 10.3-3-6) - Apply PolicyEngine code style guidelines for cleaner formulas - Add comprehensive test coverage (13 new tests, 59 total passing) Resources limits: - $1,000 at application - $10,000 while receiving benefits - $20,000 vehicle equity exclusion All values properly parameterized with no hard-coding. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
- Restructure income variables with proper eligibility vs payment separation - Rename variables for clarity (in_tanf_countable_income_for_payment, in_tanf_payment_eligible) - Apply correct per-earner ($90) vs per-unit ($30, 1/3) disregard logic - Reorganize parameter folder structure following DC TANF pattern - Add FPG rate parameter for continuing eligibility threshold - Create comprehensive unit and integration tests 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
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.
Summary
Implements Indiana's Temporary Assistance for Needy Families (TANF) program with comprehensive income eligibility tests, payment calculations, and resource limits.
Closes #6868
Status
Key Changes
Implementation Summary
Formula (Per 470 IAC 10.3-4)
Eligibility Income Disregards (Per earner + per unit):
Payment Income Disregards:
Benefit Calculation:
Two Income Tests Required:
Files Added
Parameters (10 files)
Variables (12 files)
Tests (13 files, 68 test cases)
Example Calculations
Family of 3 with Earned Income
Household: Single parent with 2 children
Income: $400/month earned income
Two-Earner Household (Demonstrating Per-Earner $90)
Household: Family of 3, both parents work
Income: $200/month each ($400 total)
Key: Two earners get $180 total work expense vs $90 for single earner.
Testing & Verification
Test Results
How to Run
policyengine-core test policyengine_us/tests/policy/baseline/gov/states/in/fssa/tanf/ -c policyengine_usImplementation Highlights
Key Features
Design Decisions
Dual Disregard Sets: Eligibility uses $90 + $30 + 1/3; Payment uses 75%
Per-Earner vs Per-Unit: $90 is per earner; $30 and 1/3 are per unit
4-Month Limit Simplification: $30 and 1/3 disregards technically only apply for first 4 months
Post-2023 Reform: Payment standard = 100% of standard of need
References
Official Sources
Branch Information
Branch:
indiana-tanf-implementationBase:
masterStatus: ✅ All formulas verified, 68 tests passing
Implementation by: @hua7450
Issue: #6868
Ready for: Code review and testing feedback
🤖 Generated with Claude Code