Skip to content

Conversation

@hua7450
Copy link
Collaborator

@hua7450 hua7450 commented Dec 23, 2025

Summary

Closes #7038

Implements the New Mexico TANF program (officially called "New Mexico Works"), administered by the New Mexico Health Care Authority (HCA).

Regulatory Authority

Income Eligibility Tests

Gross Income Test

Gross income must be less than 85% of the Federal Poverty Guidelines for the benefit group size.

Source: 8.102.520.11 NMAC

Net Income Test

Countable net income must be less than the payment standard (standard of need) for the benefit group size.

Source: 8.102.520.11 NMAC

Income Deductions & Exemptions

Work Incentive Deduction (Earned Income)

Family Type Flat Deduction Plus Percentage
Single-parent families $125 + 50% of remainder
Two-parent families $225 per parent + 50% of remainder
Non-parent caretakers $125 + 50% of remainder
Non-benefit group members $125 (flat only)

Source: 8.102.520.12 NMAC

Child Care Deduction

Child Age Maximum Monthly Deduction
Under age 2 $200 per child
Age 2 and older $175 per child

Source: 8.102.520.12 NMAC

Child Support Deduction

Component Amount
Disregard $50
Passthrough (1 child) $100
Passthrough (2+ children) $200

Source: 8.102.520.10 NMAC, HCA Child Support Announcement (Jan 2023)

Income Standards

Benefit Group Size Payment Standard
1 $327
2 $439
3 $549
4 $663
5 $775
6 $887
7 $999
8 $1,134
Each additional +$111

Source: 8.102.500.8(D)(4) NMAC, HCA 23% Increase Announcement (Sept 2023)

Benefit Calculation

Benefit = Payment Standard - Countable Income

Where:
  Countable Income = Countable Earned + Countable Unearned - Child Care Deduction
  Countable Earned = max(Gross Earned - Work Incentive Deduction, 0)
  Countable Unearned = max(Gross Unearned - Child Support Deduction, 0)

Source: 8.102.500.8 NMAC

Files Added

Parameters (27 files)

tanf/
├── age_threshold/
│   ├── high_school_student.yaml
│   ├── minor_child.yaml
│   └── special_education.yaml
├── diversion/
│   └── amount.yaml
├── income/
│   ├── deductions/
│   │   ├── child_care/amount.yaml
│   │   ├── child_support/
│   │   │   ├── disregard.yaml
│   │   │   └── passthrough.yaml
│   │   └── work_incentive/
│   │       ├── non_benefit_group/amount.yaml
│   │       ├── other_member/amount.yaml
│   │       ├── rate.yaml
│   │       ├── single_parent/amount.yaml
│   │       └── two_parent/amount.yaml
│   ├── gross_limit/rate.yaml
│   └── self_employment/mileage_rate.yaml
├── payment_standard/
│   ├── additional_person.yaml
│   ├── amount.yaml
│   └── max_unit_size.yaml
├── resources/
│   ├── liquid/amount.yaml
│   └── non_liquid/amount.yaml
├── sanctions/
│   ├── first_level_rate.yaml
│   └── second_level_rate.yaml
├── school_clothing_allowance/
│   ├── august.yaml
│   └── january.yaml
├── support_services/
│   └── income_limit_rate.yaml
└── transition_bonus/
    ├── amount.yaml
    ├── income_limit_rate.yaml
    └── minimum_work_hours.yaml

Variables (13 files)

tanf/
├── eligibility/
│   ├── nm_tanf_eligible.py
│   ├── nm_tanf_gross_income_eligible.py
│   └── nm_tanf_net_income_eligible.py
├── income/
│   ├── nm_tanf_child_care_deduction.py
│   ├── nm_tanf_child_support_deduction.py
│   ├── nm_tanf_countable_earned_income.py
│   ├── nm_tanf_countable_income.py
│   ├── nm_tanf_countable_unearned_income.py
│   ├── nm_tanf_earned_income_deduction_person.py
│   ├── nm_tanf_earned_income_deduction.py
│   └── nm_tanf_gross_income.py
├── nm_tanf_maximum_benefit.py
└── nm_tanf.py

Tests (11 files)

tanf/
├── integration.yaml (13 cases)
├── nm_tanf_child_care_deduction.yaml (14 cases)
├── nm_tanf_countable_earned_income.yaml (5 cases)
├── nm_tanf_countable_income.yaml (5 cases)
├── nm_tanf_countable_unearned_income.yaml (15 cases)
├── nm_tanf_earned_income_deduction.yaml (14 cases)
├── nm_tanf_eligible.yaml (5 cases)
├── nm_tanf_gross_income_eligible.yaml (12 cases)
├── nm_tanf_maximum_benefit.yaml (11 cases)
├── nm_tanf_net_income_eligible.yaml (12 cases)
└── nm_tanf.yaml (16 cases)

Test Coverage

  • 122 total test cases
  • Unit tests for each variable
  • 13 integration tests covering realistic scenarios:
    • Single-parent with 1-3 children
    • Two-parent households
    • Households with working teenagers
    • Child care expense scenarios
    • Child support income scenarios
    • Edge cases (income at thresholds, large households)

Example Calculation

Case: Single parent with two children earning $1,000/month

Gross Income: $1,000/month
85% FPL for size 3: $1,762/month → Gross income eligible ✓

Work Incentive Deduction (single parent):
  Step 1: $1,000 - $125 = $875
  Step 2: $875 × 0.50 = $437.50
  Total deduction: $562.50
  Countable earned: $437.50

Payment Standard (size 3): $549
Benefit: $549 - $437.50 = $111.50/month

🤖 Generated with Claude Code

hua7450 and others added 2 commits December 23, 2025 18:24
Starting implementation of New Mexico TANF program.
Documentation and parallel development will follow.

Closes PolicyEngine#7038
Implements the New Mexico Health Care Authority's Temporary Family
Assistance program including:

- Eligibility determination (income, demographic, immigration)
- Income limit calculations (85% FPL gross test)
- Payment standard calculations by family size
- Income deductions (work incentive, child care, child support)
- Benefit calculation (payment standard minus countable income)
- Comprehensive integration and unit tests (122 tests)

All variables include regulatory citations from 8.102 NMAC.

Closes PolicyEngine#7038

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

Co-Authored-By: Claude <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 (ec13e64).
⚠️ Report is 17 commits behind head on main.

Additional details and impacted files
@@             Coverage Diff              @@
##             main     #7039       +/-   ##
============================================
+ Coverage   76.92%   100.00%   +23.07%     
============================================
  Files           1        14       +13     
  Lines          39       209      +170     
  Branches        4         0        -4     
============================================
+ Hits           30       209      +179     
+ 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.

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 New Mexico TANF

1 participant