PolicyEngine should model working-disabled Medicaid buy-in pathways as one shared Medicaid eligibility category with state-specific parameters, rather than as dozens of independent state programs.
Background
KFF 2026 State Health Facts marks 47 states as having Medicaid buy-in pathways for working people with disabilities. Illinois HBWD is already implemented state-specifically, and Mississippi has a separate issue (#8441), but the remaining state-specific tickets created in #8446-#8491 showed that most differences are parameter data rather than fundamentally different logic.
Sources:
Repetition found
Across the 45 state-specific issues filed from the KFF table:
- 19 states use a 250% FPL income limit.
- 6 states have no income standard reported.
- 9 states have no asset limit.
- 15 states have no age limit reported.
- 14 states have no premium/monthly fee reported or applicable.
The common shape is:
disabled + working + state resident + income test + asset test + optional age test + optional premium.
Proposed architecture
Add a shared Medicaid category/pathway, tentatively:
gov.hhs.medicaid.eligibility.categories.working_disabled_buy_in
Add a new Medicaid category enum value, e.g. WORKING_DISABLED_BUY_IN, rather than folding this into SENIOR_OR_DISABLED, because premiums and downstream health/spending analysis need to distinguish buy-in eligibility.
Suggested variables:
is_working_disabled_buy_in_for_medicaid
is_working_disabled_buy_in_income_eligible
is_working_disabled_buy_in_asset_eligible
is_working_disabled_buy_in_age_eligible
is_working_disabled_buy_in_employment_eligible
working_disabled_buy_in_medicaid_premium or integration into a broader medicaid_premium framework
Suggested state-breakdown parameters:
in_effect.yaml
income/fpl_limit/individual.yaml
income/fpl_limit/couple.yaml
income/monthly_limit/individual.yaml and /couple.yaml if needed for states where the table/source gives dollar limits directly
assets/limit/individual.yaml
assets/limit/couple.yaml
age/min.yaml
age/max.yaml
work/monthly_hours_threshold.yaml where applicable
- premium parameters for fixed-dollar, range, percent-of-income, and capped premium formulas
State-specific escape hatches
Default to the shared pathway. Add state-specific variables only where source rules cannot be parameterized cleanly, for example:
Illinois HBWD can either remain as a state-specific implementation initially or be migrated into the shared category once the shared schema is stable.
Acceptance criteria
- Add
WORKING_DISABLED_BUY_IN (or equivalent) to Medicaid category handling.
- Add shared eligibility variables and state-breakdown parameters for the common buy-in tests.
- Integrate the shared pathway into
is_medicaid_eligible and Medicaid cost/category logic.
- Add at least a representative test matrix:
- one 250% FPL state,
- one no-asset-limit state,
- one state with a fixed premium,
- one state with an age limit,
- one state with no income standard reported.
- Document which states are covered by the shared schema and which still require state-specific follow-up.
- Avoid creating 45 separate state program implementations for rules that fit the shared schema.
Replaces state-specific tickets
This issue replaces the state-by-state tickets #8446 through #8491, excluding unrelated issue #8453. Those tickets should be closed in favor of this shared implementation approach.
Related: #8363, #1011, #8441, #8102, #6010.
PolicyEngine should model working-disabled Medicaid buy-in pathways as one shared Medicaid eligibility category with state-specific parameters, rather than as dozens of independent state programs.
Background
KFF 2026 State Health Facts marks 47 states as having Medicaid buy-in pathways for working people with disabilities. Illinois HBWD is already implemented state-specifically, and Mississippi has a separate issue (#8441), but the remaining state-specific tickets created in #8446-#8491 showed that most differences are parameter data rather than fundamentally different logic.
Sources:
Repetition found
Across the 45 state-specific issues filed from the KFF table:
The common shape is:
disabled+working+state resident+income test+asset test+ optionalage test+ optionalpremium.Proposed architecture
Add a shared Medicaid category/pathway, tentatively:
Add a new Medicaid category enum value, e.g.
WORKING_DISABLED_BUY_IN, rather than folding this intoSENIOR_OR_DISABLED, because premiums and downstream health/spending analysis need to distinguish buy-in eligibility.Suggested variables:
is_working_disabled_buy_in_for_medicaidis_working_disabled_buy_in_income_eligibleis_working_disabled_buy_in_asset_eligibleis_working_disabled_buy_in_age_eligibleis_working_disabled_buy_in_employment_eligibleworking_disabled_buy_in_medicaid_premiumor integration into a broadermedicaid_premiumframeworkSuggested state-breakdown parameters:
in_effect.yamlincome/fpl_limit/individual.yamlincome/fpl_limit/couple.yamlincome/monthly_limit/individual.yamland/couple.yamlif needed for states where the table/source gives dollar limits directlyassets/limit/individual.yamlassets/limit/couple.yamlage/min.yamlage/max.yamlwork/monthly_hours_threshold.yamlwhere applicableState-specific escape hatches
Default to the shared pathway. Add state-specific variables only where source rules cannot be parameterized cleanly, for example:
Illinois HBWD can either remain as a state-specific implementation initially or be migrated into the shared category once the shared schema is stable.
Acceptance criteria
WORKING_DISABLED_BUY_IN(or equivalent) to Medicaid category handling.is_medicaid_eligibleand Medicaid cost/category logic.Replaces state-specific tickets
This issue replaces the state-by-state tickets #8446 through #8491, excluding unrelated issue #8453. Those tickets should be closed in favor of this shared implementation approach.
Related: #8363, #1011, #8441, #8102, #6010.