Model historical Arkansas Medicaid work requirements#8274
Model historical Arkansas Medicaid work requirements#8274daphnehanse11 wants to merge 3 commits into
Conversation
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #8274 +/- ##
===========================================
- Coverage 100.00% 95.58% -4.42%
===========================================
Files 7 3 -4
Lines 215 68 -147
Branches 6 2 -4
===========================================
- Hits 215 65 -150
- Misses 0 2 +2
- Partials 0 1 +1
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:
|
- run ruff format on Arkansas Medicaid work-requirement variables - add the missing changelog fragment - tighten the monthly_hours_threshold description (the formula uses >=, so "at least" rather than "more than") - clarify the applies parameter description with the standard "if this is true" suffix Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
PR reviewI checked the PR out in a fresh worktree, validated the implementation against the cited regulations, and pushed CI/quality fixes. Fixes pushed (c2cf764)
Regulatory accuracyCross-checked against the cited KFF brief and Arkansas Code Rule 016.20.18; the annual approximation matches the documented rollout:
The intentional omissions (monthly reporting, three-month lockout, 19-29 phase-in, TEA/SNAP-derived exemptions, AI/AN, medical frailty, treatment programs) are clearly documented in both the PR description and inline parameter comments — fair tradeoff for annual microdata. Verified locally
Validation summary
|
Use defined_for = StateCode.AR on ar_medicaid_work_requirement_subject and ar_medicaid_work_requirement_eligible so they only compute for Arkansas residents. Drop the inline state == "AR" check from the subject formula (now redundant), and wrap the eligibility variable in is_medicaid_eligible with a where clause so non-AR residents are treated as passing the check rather than getting the bool default of False. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
What changed
is_medicaid_eligibleso it only affects the adult expansion category in ArkansasWhy
Issue #8272 tracks the need to represent the Arkansas Works work-requirement period more faithfully without pretending it was an income-threshold change.
Modeling approach
This PR uses an annual approximation because PolicyEngine's default microdata are primarily annual even though the underlying waiver operated monthly.
The approximation is:
2018: adults ages30-49at or below100% FPLare subject2019: adults ages30-49at or below138% FPLare subject2020+: the Arkansas historical overlay turns offObservable exemptions included in the approximation:
18Explicitly not modeled here:
19-29That last omission is intentional: modeling ages
19-29in annual data would likely overstate exposure because the phase-in was only partially rolled out before enforcement stopped.Confidence
I'm reasonably confident in this as an annual-data approximation. I'm much less confident that annual data can support a literally correct monthly Arkansas waiver model, which is why the assumptions are documented in both parameters and code comments.
Validation
uv run python policyengine_us/tests/test_batched.py policyengine_us/tests/policy/baseline/gov/states/ar/dhs/medicaid/eligibility --batches 1uv run python policyengine_us/tests/test_batched.py policyengine_us/tests/policy/baseline/gov/hhs/medicaid/eligibility --batches 1uv run python policyengine_us/tests/test_batched.py policyengine_us/tests/policy/baseline/gov/hhs/medicaid --batches 1Closes #8272