-
Notifications
You must be signed in to change notification settings - Fork 201
Implement Wisconsin Works (W-2) #6857
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
12
commits into
PolicyEngine:master
Choose a base branch
from
hua7450:integration/wi-tanf-20251123
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 Wisconsin Works (W-2) #6857
hua7450
wants to merge
12
commits into
PolicyEngine:master
from
hua7450:integration/wi-tanf-20251123
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
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #6857 +/- ##
=========================================
Coverage 100.00% 100.00%
=========================================
Files 2 7 +5
Lines 39 108 +69
=========================================
+ Hits 39 108 +69
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:
|
Starting implementation of Wisconsin TANF (Wisconsin Works - W-2). Documentation and parallel development will follow. Related to PolicyEngine#6856
- Comprehensive documentation in docs/agents/sources/wi_tanf/ - Overview of program structure and legal authorities - Detailed eligibility requirements (income, assets, demographic) - Benefit calculation methodology (fixed payments by placement type) - Consolidated working_references.md for implementation sprint - Identified 2024 WIOA Combined Plan TANF Section PDF for extraction - Flagged non-simulatable rules (time limits, work requirements) - Implementation guidance for simplified approach
Tests created based on Wisconsin TANF documentation covering: - Income limits and countable income calculation - Resource eligibility requirements - Overall TANF eligibility determination - Integration test with real-world scenarios 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
- Income limits: 115% FPL by household size (monthly) - Payment standard: CSJ placement at $653/month - Asset limit: $2,500 combined equity value - Vehicle exclusion: $10,000 equity disregard All parameters sourced from: - Wisconsin Statutes § 49.145, § 49.148 - Wisconsin Administrative Code DCF 101.09, DCF 101.18 - W-2 Manual Chapter 3 (Eligibility), Chapter 7 (Benefits) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
Implements simplified Wisconsin TANF eligibility and benefit calculation: Variables created: - wi_tanf_income_limit: Returns 115% FPL income limit by household size - wi_tanf_countable_income: Calculates income with WI-specific disregards (child support, EITC, state EITC fully excluded) - wi_tanf_income_eligible: Tests countable income <= limit - wi_tanf_countable_resources: Calculates assets with vehicle exclusion - wi_tanf_resources_eligible: Tests assets <= $2,500 - wi_tanf_eligible: Combines all eligibility checks - wi_tanf: Fixed $653/month CSJ benefit if eligible Key implementation notes: - Uses federal demographic eligibility baseline (age 18+, custodial parent) - Uses federal gross income baseline (tanf_gross_earned_income, tanf_gross_unearned_income) - Implements Wisconsin-specific income disregards and limits - Fixed payment amount ($653 CSJ) - NO benefit reduction formula - Cannot model placement assignment, time limits, or work requirements due to PolicyEngine's single-period architecture Parameters fixed: - Added 'values:' key to payment_standard.yaml, asset_limit/*.yaml - Kept scale parameter structure for income_limit/amount.yaml All formulas use parameters - zero hard-coded values. References: Wisconsin Statutes §§ 49.145, 49.148; Wisconsin Administrative Code DCF 101.09, 101.18; W-2 Manual Chapters 3, 7 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
- Fix variable name: household_assets -> net_worth (accessed via spm_unit.household()) - Fix test variable names: household_net_worth -> net_worth - Fix test variable names: household_vehicle_value -> household_vehicles_value - Align variable references between tests and implementation These fixes resolve import errors and variable mismatches between the parallel branches from test-creator and rules-engineer agents. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
- Add Wisconsin TANF (Wisconsin Works - W-2) implementation - Include income eligibility rules and calculations - Include cash assistance benefit calculation - Include countable income determination - Include maximum benefit amounts and group categorization 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
- Update all test periods from 2024 to 2025 to match parameter effective dates - Fix wi_tanf_countable_resources to properly separate vehicle and non-vehicle assets - Fix wi_tanf_countable_income entity aggregation for EITC - Delete working_references.md (all citations now embedded in code metadata) All 44 tests now pass. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
- Renamed from wi_tanf to wi_works throughout - Added placement-based benefit calculation with enum (CSJ, CMC, ARP, W2_T) - Replaced hardcoded income limits with 115% FPL rate - Added citizenship check using is_citizen_or_legal_immigrant - Added placement auto-detection for CMC (infant <= 2 months) and ARP (3rd trimester) - Restructured parameters: asset_limit -> asset, payment_standard -> placement/amount - Used adds/subtracts pattern for countable income instead of formula - Added comprehensive test suite for all variables with formulas 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
6e1c266 to
8e32c70
Compare
🤖 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]>
🤖 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 Wisconsin Works (W-2), Wisconsin's TANF program, with placement-based benefit calculation and automatic placement detection for eligible categories.
Closes #6856
Related: #6869 (prorated CSJ not modeled)
Status
Key Changes
Implementation Summary
Formula (Per Wisconsin Statutes §§ 49.141-49.161)
Income Eligibility: 115% of Federal Poverty Level
Resource Eligibility: $2,500 limit with $10,000 vehicle exclusion
Benefit Calculation: Placement-based flat payments
Placement Types:
Automatic Placement Detection
Files Added
Parameters (6 files)
Variables (7 files)
Tests (7 files, 40 test cases)
Example Calculations
Example 1: Family Eligible for CSJ
Household: Single parent with 1 child, no special conditions
Income: $1,000/month earned
Example 2: CMC Placement with Infant
Household: Parent with newborn (1 month old)
Example 3: ARP Placement for Third Trimester
Household: Pregnant person in 8th month
Implementation Highlights
Key Features
Design Decisions
Placement Enum: Uses
WIWorksPlacementenum for type-safe placement handlingFPL Rate Pattern: Uses
1.15multiplier instead of hardcoded dollar amountsFederal Rule Reuse: Uses federal TANF variables
is_demographic_tanf_eligibleis_citizen_or_legal_immigranttanf_gross_earned_incometanf_gross_unearned_incomeChild Support Disregard: Uses
adds/subtractsattributesKnown Limitations & Future Enhancements
Not Yet Implemented
Simplified Assumptions
Testing & Verification
Test Results
✅ All 40 tests passing across 7 test files - 7 placement tests (CMC, ARP, CSJ scenarios) - 33 unit tests (income, resources, eligibility) - 0 failuresHow to Run
References
Official Sources
Branch Information
Branch:
integration/wi-tanf-20251123Base:
masterStatus: ✅ All tests passing, ready for review
Implementation by: @hua7450
Issue: #6856
Ready for: Code review and testing feedback
🤖 Generated with Claude Code
Co-Authored-By: Claude [email protected]