-
Notifications
You must be signed in to change notification settings - Fork 201
Add Nevada TANF Program #6934
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
base: main
Are you sure you want to change the base?
Add Nevada TANF Program #6934
Conversation
Starting implementation of Nevada's TANF (Temporary Assistance for Needy Families) program. Documentation and parallel development will follow. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Implements Nevada TANF including: - Benefit calculation (nv_tanf.py) - Payment standard by unit size (nv_tanf_payment_standard.py) - Income eligibility with gross income test and countable income test - Earned income disregards ($90 flat + 50% of remaining) - Resource eligibility with $2,000 limit - All required parameters with proper metadata and references Closes PolicyEngine#6933 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #6934 +/- ##
=========================================
Coverage 100.00% 100.00%
=========================================
Files 13 9 -4
Lines 195 128 -67
=========================================
- Hits 195 128 -67
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:
|
- Fix parameter formatting: remove trailing zeros (1.30 -> 1.3, 0.20 -> 0.2) - Expand test coverage from 2 to 13 comprehensive test cases: - Earned income disregard calculation (flat $90 vs 20%) - Gross income test failure (above 130% FPL) - Net income test failure (above payment standard) - Large household (size 6+) - Edge cases at exact thresholds - Mixed earned/unearned income - Single parent household - Assets at limit - Fix test output format: replace expressions with explicit values - Use employment_income_before_lsr as input variable for test framework compatibility 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Replace broken dss.nv.gov FAQ links with working URLs - Add Nevada DWSS Eligibility and Payments Manual chapter references - Add NRS 422A statutory reference for income limit - Fix breakdown range from (0,12) to (1,11) for household sizes - Change resource_limit period from month to year - Change max_unit_size unit from int to person 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
not relevant
PavelMakarchuk
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
📋 PR Review: Add Nevada TANF Program
Overview
This PR implements the Nevada Temporary Assistance for Needy Families (TANF) program with comprehensive eligibility rules, income calculations, and benefit computations. 16 files changed, +1174 lines.
⚠️ CI Status
| Check | Status |
|---|---|
uv.lock freshness |
❌ FAILING |
| All other checks | ✅ Passing |
Fix required: Run uv lock to refresh the lock file.
✅ Strengths
-
Excellent test coverage - 13 comprehensive test cases covering:
- Zero income eligibility
- Asset limits (at/over threshold)
- Work expense deductions (flat $90 vs 20% rate)
- Gross income test (130% FPL)
- Net income test (payment standard)
- Large households (size 6)
- Mixed income (earned + unearned)
- Edge cases at thresholds
-
Proper parameterization - All values in YAML parameters, no hard-coded values in formulas
-
Correct PolicyEngine patterns:
- ✅ Uses
max_()andmin_()vectorized functions - ✅ Uses
&for boolean operations - ✅ Correct
p = parameters(period).gov...pattern - ✅ Proper entity types (
SPMUnit) - ✅ Correct period handling (
MONTHwithperiod.this_yearfor yearly lookups)
- ✅ Uses
-
Reference validation passed - Key values corroborated:
- $90 flat work expense ✅
- 20% work expense rate ✅
- 130% FPL gross income limit ✅
- $10,000 resource limit ✅
- $386/month for family of 3 ✅
🔴 Issues to Address
1. CI Failure: uv.lock freshness
Run uv lock to fix.
2. TODO Comments in Parameter References (5 instances)
All PDF references have unresolved TODOs:
payment_standard/amount.yaml:10work_expense_flat_amount.yaml:10work_expense_rate.yaml:10max_unit_size.yaml:8resource_limit/amount.yaml:10
Either verify and update the page numbers, or remove the #page=1 anchors.
3. Payment Standard Discrepancy
Comment states Child-only (1 child) = $417/month but parameter value for size 1 is $262. This suggests child-only TANF may have different payment standards. Either:
- Remove the confusing comment, or
- Create separate parameters for child-only cases if needed
🟡 Suggestions (Non-blocking)
-
Document known limitations - The code notes that PolicyEngine cannot track employment duration for graduated disregards (100%/85%/75%/65%). Consider adding this to variable metadata.
-
Verify effective dates - 1997-01-01 dates for work expense values could use verification or citation.
-
Working references file - Consider if
sources/working_references.md(495 lines) should be committed or moved to PR description.
📊 Validation Summary
| Validation | Result |
|---|---|
| No hard-coded values | ✅ Pass |
Variable naming (nv_tanf_*) |
✅ Pass |
| Entity types correct | ✅ Pass |
| Period handling | ✅ Pass |
| Parameter access pattern | ✅ Pass |
| Vectorization | ✅ Pass |
| References provided | ✅ Pass (with TODOs) |
| Values corroborated | ✅ 5/6 verified |
| Test coverage | ✅ Excellent |
| CI passing | ❌ uv.lock |
🚀 Next Steps
- Required:
uv lockto fix CI - Recommended: Resolve TODO comments or remove page anchors
- Recommended: Clarify child-only payment standard discrepancy
Recommendation: High-quality implementation. Address the CI failure and TODO comments, then ready to merge.
PR Review: Nevada TANF Implementation✅ Overall Assessment: APPROVEThis is a well-structured Nevada TANF implementation that follows PolicyEngine coding standards. All CI checks pass and the implementation is ready for merge with minor suggestions for enhanced test coverage. 🟢 StrengthsImplementation Quality:
Reference Quality:
Test Coverage:
🟡 Suggestions (Optional Improvements)1. Missing Unit Test File for
|
| Check | Result |
|---|---|
| CI Status | ✅ All checks pass |
| Hard-coded Values | ✅ None found |
| Reference Quality | ✅ All parameters referenced |
| Vectorization | ✅ Correct patterns used |
| Entity/Period Usage | ✅ Correct |
| Test Coverage | ✅ Good (minor gaps noted) |
Verdict: APPROVE - Ready for merge. The suggestions above would enhance the implementation but are not blocking.
🤖 Generated with Claude Code
Summary
Implements Nevada Temporary Assistance for Needy Families (TANF) program.
Closes #6933
Nevada TANF Income Rules
Regulatory Authority
1. INCOME ELIGIBILITY TESTS
Gross Income Test
Source: Nevada DWSS TANF FAQ - Income Eligibility
Net Income Test
Source: Nevada DWSS TANF FAQ - Income Considerations
2. INCOME DEDUCTIONS & EXEMPTIONS
A. Work Expense Deduction (Applied Per Person)
The deduction is applied to "each household member's gross earnings" individually, then summed to determine household countable earned income.
Source: Nevada TANF State Plan, Section 3.4
B. Graduated Earned Income Disregards (NOT IMPLEMENTED)
Note: These time-based disregards are not implemented because PolicyEngine cannot track employment duration. The implementation applies only the work expense deduction (max of $90 or 20%).
Source: Nevada DWSS TANF FAQ - Earned Income Disregards
3. INCOME STANDARDS BY FAMILY SIZE
Current Values (Effective April 1, 2018)
Historical Values Included
Need Standard (Effective April 1, 2015):
Payment Standard (Effective July 1, 2007):
Source:
4. RESOURCE LIMIT
Exempt resources: Two vehicles, primary residence, burial plots, funeral agreements, household goods and personal items.
Source: Nevada DWSS TANF FAQ - Resources/Property
5. BENEFIT CALCULATION
Formula:
Where Countable Income =
And Work Expense Deduction (per person) =
Calculation Steps:
Source: Nevada TANF State Plan, Section 3.4
6. KNOWN LIMITATIONS
Graduated Earned Income Disregards: The 100%/85%/75%/65% monthly disregards cannot be implemented as PolicyEngine cannot track employment duration.
Child-Only TANF Program: Nevada's Child-Only/Kinship Care program (which uses 275% FPL income test) is not implemented as a separate variant.
Subsidized Housing Income: Per regulations, up to $76 of housing subsidy value should be budgeted as unearned income. Not implemented.
🤖 Generated with Claude Code