Skip to content

Conversation

@hua7450
Copy link
Collaborator

@hua7450 hua7450 commented Dec 24, 2025

Summary

Closes #7040

Implements Nebraska Aid to Dependent Children (ADC), the state's TANF program.

Regulatory Authority

Primary Legal Sources

  1. Nebraska Revised Statutes

  2. Nebraska Administrative Code Title 468

Income Eligibility Tests

Standard of Need Test

Countable income (net earned + unearned) must be strictly less than the Standard of Need for the unit size.

Earned Income Disregard: 50% of gross earned income is disregarded for recipients.

Income Standards

Unit Size Need Standard Payment Standard (55%)
1 $601 $331
2 $741 $408
3 $881 $485
4 $1,021 $562
5 $1,161 $639
6 $1,301 $716
7 $1,441 $793
8 $1,581 $870
9 $1,721 $947
10 $1,861 $1,024
Each additional +$140 +$77

Formula: Base (1 person) = $601; each additional person = +$140
Source: Neb. Rev. Stat. 43-513

Resource Limits

Unit Size Resource Limit
1 person $4,000
2+ persons $6,000

Source: Neb. Rev. Stat. 68-1726

Benefit Calculation

Gap Budgeting Formula

Nebraska uses "Budget the Gap" methodology:

  1. Calculate Net Earned Income: Gross Earned Income * (1 - 0.50)
  2. Calculate Gap: Need Standard - Net Earned Income
  3. Determine Benefit Before Unearned: min(Gap, Payment Standard)
  4. Subtract Unearned Income: Benefit - Unearned Income
  5. Apply Minimum Payment Rule: If benefit > $0 but < $10, return $10

Source: Neb. Rev. Stat. 68-1713(1)(p)

Minimum Payment Rule

No ADC payment shall be less than $10 per month.
Source: Neb. Rev. Stat. 43-512

Example Calculation

Family of 3 with $1,000/month gross earned income:

  1. Need Standard (size 3): $881
  2. Net Earned Income: $1,000 * 0.50 = $500
  3. Gap: $881 - $500 = $381
  4. Payment Standard: $881 * 0.55 = $485
  5. Benefit: min($381, $485) = $381
  6. Final (no unearned): $381

Files Added

Parameters (5 files)

policyengine_us/parameters/gov/states/ne/dhhs/adc/
├── need_standard.yaml           # Standard of need by unit size
├── payment_standard_rate.yaml   # 55% of need standard
├── min_payment.yaml             # $10 minimum
├── resource_limit.yaml          # $4,000/$6,000 limits
└── income/
    └── earned_income_disregard.yaml  # 50% disregard

Variables (8 files)

policyengine_us/variables/gov/states/ne/dhhs/adc/
├── ne_adc.py                        # Final benefit amount
├── ne_adc_eligible.py               # Overall eligibility
├── ne_adc_income_eligible.py        # Income test
├── ne_adc_resources_eligible.py     # Resource test
├── ne_adc_countable_earned_income.py # After 50% disregard
├── ne_adc_need_standard.py          # Need standard lookup
├── ne_adc_payment_standard.py       # 55% of need standard
└── ne_adc_maximum_benefit.py        # Gap budgeting result

Tests (7 files, 55 test cases)

policyengine_us/tests/policy/baseline/gov/states/ne/dhhs/adc/
├── integration.yaml                 # 7 end-to-end scenarios
├── ne_adc.yaml                      # 6 benefit tests
├── edge_cases.yaml                  # 24 boundary tests
├── ne_adc_eligible.yaml             # 5 eligibility tests
├── ne_adc_need_standard.yaml        # 5 need standard tests
├── ne_adc_payment_standard.yaml     # 4 payment standard tests
└── ne_adc_countable_earned_income.yaml # 4 disregard tests

Test Coverage

Test Category Count Description
Integration tests 7 Full calculation pipeline
Benefit calculations 6 Various income scenarios
Edge cases 24 Boundary conditions, limits
Eligibility 5 Income threshold tests
Need standard 5 Lookup by unit size
Payment standard 4 55% calculation with rounding
Countable income 4 50% disregard application
Total 55

Implementation Notes

  1. Simplified Implementation: Uses 50% earned income disregard (recipient rate) for all cases. Nebraska distinguishes between applicants (20%) and recipients (50%), but this requires tracking status that PolicyEngine cannot model.

  2. Non-Simulatable Rules: Time limits (60-month lifetime limit), work requirements, and transitional benefits cannot be enforced due to PolicyEngine's single-period architecture.

  3. Rounding: Payment standard uses ceiling (np.ceil) to round up to whole dollars.

🤖 Generated with Claude Code

hua7450 and others added 2 commits December 23, 2025 19:44
Starting implementation of Nebraska TANF (Aid to Dependent Children).
Documentation and parallel development will follow.
Implements Nebraska's ADC program with:
- Income eligibility based on need standard
- Resource eligibility with $6,000 limit
- Earned income disregard (50%)
- Payment standard calculation
- Benefit calculation with minimum payment threshold

Includes parameters, variables, and comprehensive YAML tests.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@codecov
Copy link

codecov bot commented Dec 24, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 100.00%. Comparing base (9739e2f) to head (a02398a).
⚠️ Report is 17 commits behind head on main.

Additional details and impacted files
@@             Coverage Diff              @@
##             main     #7041       +/-   ##
============================================
+ Coverage   76.92%   100.00%   +23.07%     
============================================
  Files           1         9        +8     
  Lines          39       121       +82     
  Branches        4         0        -4     
============================================
+ Hits           30       121       +91     
+ Misses          8         0        -8     
+ Partials        1         0        -1     
Flag Coverage Δ
unittests 100.00% <100.00%> (+23.07%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

hua7450 and others added 3 commits December 23, 2025 21:21
Move parameters and variables into logical subfolders following
patterns used by other state TANF implementations (IL, OR, CO):

Parameters:
- benefit/ - need_standard, payment_standard_rate
- income/ - earned_income_disregard
- resources/ - limit (renamed from resource_limit)

Variables:
- benefit/ - need_standard, payment_standard, maximum_benefit
- eligibility/ - eligible, income_eligible, resources_eligible
- income/ - countable_earned_income

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Implement Nebraska TANF

1 participant