Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions changelog.d/6174.fixed.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
- Treated people denied Medicaid by work requirements as ineligible for ACA marketplace premium payment and premium tax credits.
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,46 @@
pays_aca_premium: false
is_aca_ptc_eligible: false

- name: Failing Medicaid work requirements prevents ACA premium payment
period: 2027
input:
age: 40
medicaid_category: ADULT
immigration_status: CITIZEN
monthly_hours_worked: 0
employment_income: 0
medicaid_community_engagement_pass_through_eligible: false
is_aca_eshi_eligible: false
is_chip_eligible: false
is_medicare_eligible: false
aca_magi_fraction: 2.5
output:
medicaid_work_requirement_eligible: false
is_medicaid_eligible: false
is_medicaid_ineligible_due_to_work_requirement: true
pays_aca_premium: false
is_aca_ptc_eligible: false

- name: Non-Medicaid adult who fails work hours can still pay ACA premium
period: 2027
input:
age: 40
medicaid_category: NONE
immigration_status: CITIZEN
monthly_hours_worked: 0
employment_income: 0
medicaid_community_engagement_pass_through_eligible: false
is_aca_eshi_eligible: false
is_chip_eligible: false
is_medicare_eligible: false
aca_magi_fraction: 2.5
output:
medicaid_work_requirement_eligible: false
is_medicaid_eligible: false
is_medicaid_ineligible_due_to_work_requirement: false
pays_aca_premium: true
is_aca_ptc_eligible: true

- name: Married filing separately can pay ACA premium without PTC
period: 2026
input:
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
- name: Federal applicable adult is barred when work requirements apply and are unmet
period: 2027
input:
age: 40
medicaid_category: ADULT
immigration_status: CITIZEN
monthly_hours_worked: 0
employment_income: 0
medicaid_community_engagement_pass_through_eligible: false
output:
medicaid_work_requirement_eligible: false
is_medicaid_work_requirement_applicable_adult: true
is_medicaid_ineligible_due_to_work_requirement: true

- name: Federal applicable adult is not barred when work requirements are met
period: 2027
input:
age: 40
medicaid_category: ADULT
immigration_status: CITIZEN
monthly_hours_worked: 80
output:
medicaid_work_requirement_eligible: true
is_medicaid_work_requirement_applicable_adult: true
is_medicaid_ineligible_due_to_work_requirement: false

- name: Arkansas expansion adult is barred when state work requirements apply and are unmet
period: 2018
input:
age: 40
medicaid_category: ADULT
immigration_status: CITIZEN
medicaid_income_level: 0.9
monthly_hours_worked: 0
state_code: AR
output:
ar_medicaid_work_requirement_eligible: false
is_medicaid_ineligible_due_to_work_requirement: true

- name: Arkansas expansion adult is not barred when state work requirements are met
period: 2018
input:
age: 40
medicaid_category: ADULT
immigration_status: CITIZEN
medicaid_income_level: 0.9
monthly_hours_worked: 80
state_code: AR
output:
ar_medicaid_work_requirement_eligible: true
is_medicaid_ineligible_due_to_work_requirement: false
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ def formula(person, period, parameters):

INELIGIBLE_COVERAGE = [
"is_medicaid_eligible",
"is_medicaid_ineligible_due_to_work_requirement",
"is_chip_eligible",
"is_basic_health_program_eligible",
"is_aca_eshi_eligible",
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
from policyengine_us.model_api import *


class is_medicaid_ineligible_due_to_work_requirement(Variable):
value_type = bool
entity = Person
label = "Ineligible for Medicaid due to a work requirement"
definition_period = YEAR
reference = "https://www.congress.gov/bill/119th-congress/house-bill/1/text"

def formula(person, period, parameters):
category = person("medicaid_category", period)
federal_medicaid_eligible = (
category != category.possible_values.NONE
) & person("is_medicaid_immigration_status_eligible", period)

federal_barred = False
p = parameters(period).gov.hhs.medicaid.eligibility.work_requirements
if p.applies:
applicable_adult = person(
"is_medicaid_work_requirement_applicable_adult", period
)
work_requirement_eligible = person(
"medicaid_work_requirement_eligible", period
)
federal_barred = (
federal_medicaid_eligible
& applicable_adult
& ~work_requirement_eligible
)

ar_barred = False
ar_p = parameters(period).gov.states.ar.dhs.medicaid.work_requirements
if ar_p.applies:
in_ar = person.household("state_code_str", period) == "AR"
ar_barred = (
in_ar
& federal_medicaid_eligible
& ~person("ar_medicaid_work_requirement_eligible", period)
)

return federal_barred | ar_barred
Loading