From ab22cb4ee72c206d0686031fd35045454daec1b0 Mon Sep 17 00:00:00 2001 From: Daphne Hansell <128793799+daphnehanse11@users.noreply.github.com> Date: Wed, 20 May 2026 13:37:41 -0400 Subject: [PATCH 1/5] Update ACA take-up time series --- changelog.d/changed/620.md | 1 + policyengine_us_data/parameters/take_up/aca.yaml | 10 +++++++++- tests/unit/test_stochastic_variables.py | 7 +++++++ 3 files changed, 17 insertions(+), 1 deletion(-) create mode 100644 changelog.d/changed/620.md diff --git a/changelog.d/changed/620.md b/changelog.d/changed/620.md new file mode 100644 index 000000000..7c96c9e3c --- /dev/null +++ b/changelog.d/changed/620.md @@ -0,0 +1 @@ +Update the ACA take-up parameter with a KFF-based time series for 2023 through 2026. diff --git a/policyengine_us_data/parameters/take_up/aca.yaml b/policyengine_us_data/parameters/take_up/aca.yaml index 98f920142..3f183cd90 100644 --- a/policyengine_us_data/parameters/take_up/aca.yaml +++ b/policyengine_us_data/parameters/take_up/aca.yaml @@ -5,6 +5,14 @@ metadata: period: year reference: - title: KFF "A Closer Look at the Remaining Uninsured Population Eligible for Medicaid and CHIP" - href: https://www.kff.org/uninsured/issue-brief/a-closer-look-at-the-remaining-uninsured-population-eligible-for-medicaid-and-chip/#:~:text=the%20uninsured%20rate%20dropped%20to,States%20began%20the + href: https://www.kff.org/affordable-care-act/state-indicator/distribution-of-eligibility-for-aca-coverage-among-the-remaining-uninsured/ + - title: KFF State Health Facts, Open Enrollment Marketplace Plan Selections, 2014-2026 + href: https://www.kff.org/affordable-care-act/state-indicator/open-enrollment-marketplace-plan-selections/ values: 2018-01-01: 0.672 + # Marketplace plan selections / (plan selections + 2023 tax-credit-eligible uninsured). + # KFF reports 8,163,000 uninsured people eligible for Marketplace tax credits in 2023. + 2023-01-01: 0.667088 + 2024-01-01: 0.724308 + 2025-01-01: 0.748697 + 2026-01-01: 0.739150 diff --git a/tests/unit/test_stochastic_variables.py b/tests/unit/test_stochastic_variables.py index a168f3ee3..ddeac744e 100644 --- a/tests/unit/test_stochastic_variables.py +++ b/tests/unit/test_stochastic_variables.py @@ -37,6 +37,13 @@ def test_aca_rate_loads(self): rate = load_take_up_rate("aca", 2022) assert 0 < rate <= 1 + def test_aca_rate_uses_marketplace_enrollment_time_series(self): + assert load_take_up_rate("aca", 2022) == 0.672 + assert np.isclose(load_take_up_rate("aca", 2023), 0.667088) + assert np.isclose(load_take_up_rate("aca", 2024), 0.724308) + assert np.isclose(load_take_up_rate("aca", 2025), 0.748697) + assert np.isclose(load_take_up_rate("aca", 2026), 0.739150) + def test_head_start_rate_loads(self): rate = load_take_up_rate("head_start", 2022) assert 0 < rate <= 1 From 93c174a281fc4f2219f4e0e94cce9daa3aa814d9 Mon Sep 17 00:00:00 2001 From: Daphne Hansell <128793799+daphnehanse11@users.noreply.github.com> Date: Wed, 20 May 2026 14:38:10 -0400 Subject: [PATCH 2/5] Fix changelog fragment path --- changelog.d/{changed/620.md => 620.changed.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename changelog.d/{changed/620.md => 620.changed.md} (100%) diff --git a/changelog.d/changed/620.md b/changelog.d/620.changed.md similarity index 100% rename from changelog.d/changed/620.md rename to changelog.d/620.changed.md From 5b9c1d2305647b48cc6912f67187d53a40039528 Mon Sep 17 00:00:00 2001 From: Daphne Hansell <128793799+daphnehanse11@users.noreply.github.com> Date: Wed, 20 May 2026 15:32:00 -0400 Subject: [PATCH 3/5] Use APTC enrollment for ACA take-up rates --- .../parameters/take_up/aca.yaml | 22 +++++++++++++------ tests/unit/test_stochastic_variables.py | 8 +++---- 2 files changed, 19 insertions(+), 11 deletions(-) diff --git a/policyengine_us_data/parameters/take_up/aca.yaml b/policyengine_us_data/parameters/take_up/aca.yaml index 3f183cd90..177203c8d 100644 --- a/policyengine_us_data/parameters/take_up/aca.yaml +++ b/policyengine_us_data/parameters/take_up/aca.yaml @@ -6,13 +6,21 @@ metadata: reference: - title: KFF "A Closer Look at the Remaining Uninsured Population Eligible for Medicaid and CHIP" href: https://www.kff.org/affordable-care-act/state-indicator/distribution-of-eligibility-for-aca-coverage-among-the-remaining-uninsured/ - - title: KFF State Health Facts, Open Enrollment Marketplace Plan Selections, 2014-2026 - href: https://www.kff.org/affordable-care-act/state-indicator/open-enrollment-marketplace-plan-selections/ + - title: "CMS Effectuated Enrollment: Early 2024 Snapshot and Full Year 2023 Average" + href: https://www.cms.gov/files/document/early-2024-and-full-year-2023-effectuated-enrollment-report.pdf + - title: CMS "2024 Marketplace Open Enrollment Period Public Use Files" + href: https://www.cms.gov/data-research/statistics-trends-reports/marketplace-products/2024-marketplace-open-enrollment-period-public-use-files + - title: "CMS Effectuated Enrollment: Early 2025 Snapshot and Full Year 2024 Average" + href: https://www.cms.gov/files/document/effectuated-enrollment-early-snapshot-2025-and-full-year-2024-average.pdf + - title: CMS "2026 Marketplace Open Enrollment Period Public Use Files" + href: https://www.cms.gov/data-research/statistics-trends-reports/marketplace-products/2026-marketplace-open-enrollment-period-public-use-files values: 2018-01-01: 0.672 - # Marketplace plan selections / (plan selections + 2023 tax-credit-eligible uninsured). + # APTC enrollment / (APTC enrollment + 2023 tax-credit-eligible uninsured). # KFF reports 8,163,000 uninsured people eligible for Marketplace tax credits in 2023. - 2023-01-01: 0.667088 - 2024-01-01: 0.724308 - 2025-01-01: 0.748697 - 2026-01-01: 0.739150 + # APTC enrollment: 14,793,073 (2023), 19,771,819 (2024), 21,822,894 (2025), + # and 20,035,756 (2026). + 2023-01-01: 0.644408 + 2024-01-01: 0.707784 + 2025-01-01: 0.727772 + 2026-01-01: 0.710519 diff --git a/tests/unit/test_stochastic_variables.py b/tests/unit/test_stochastic_variables.py index ddeac744e..0d9c9a7a4 100644 --- a/tests/unit/test_stochastic_variables.py +++ b/tests/unit/test_stochastic_variables.py @@ -39,10 +39,10 @@ def test_aca_rate_loads(self): def test_aca_rate_uses_marketplace_enrollment_time_series(self): assert load_take_up_rate("aca", 2022) == 0.672 - assert np.isclose(load_take_up_rate("aca", 2023), 0.667088) - assert np.isclose(load_take_up_rate("aca", 2024), 0.724308) - assert np.isclose(load_take_up_rate("aca", 2025), 0.748697) - assert np.isclose(load_take_up_rate("aca", 2026), 0.739150) + assert np.isclose(load_take_up_rate("aca", 2023), 0.644408) + assert np.isclose(load_take_up_rate("aca", 2024), 0.707784) + assert np.isclose(load_take_up_rate("aca", 2025), 0.727772) + assert np.isclose(load_take_up_rate("aca", 2026), 0.710519) def test_head_start_rate_loads(self): rate = load_take_up_rate("head_start", 2022) From d1e36c19a5ecaa6836b210322db94d46583d1d66 Mon Sep 17 00:00:00 2001 From: Max Ghenis Date: Mon, 25 May 2026 10:38:41 -0400 Subject: [PATCH 4/5] Use consistent ACA OEP take-up series --- .../parameters/take_up/aca.yaml | 20 +++++++++---------- tests/unit/test_stochastic_variables.py | 8 ++++---- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/policyengine_us_data/parameters/take_up/aca.yaml b/policyengine_us_data/parameters/take_up/aca.yaml index 177203c8d..8ebfc85f0 100644 --- a/policyengine_us_data/parameters/take_up/aca.yaml +++ b/policyengine_us_data/parameters/take_up/aca.yaml @@ -6,21 +6,21 @@ metadata: reference: - title: KFF "A Closer Look at the Remaining Uninsured Population Eligible for Medicaid and CHIP" href: https://www.kff.org/affordable-care-act/state-indicator/distribution-of-eligibility-for-aca-coverage-among-the-remaining-uninsured/ - - title: "CMS Effectuated Enrollment: Early 2024 Snapshot and Full Year 2023 Average" - href: https://www.cms.gov/files/document/early-2024-and-full-year-2023-effectuated-enrollment-report.pdf + - title: CMS "2023 Marketplace Open Enrollment Period Public Use Files" + href: https://www.cms.gov/data-research/statistics-trends-reports/marketplace-products/2023-marketplace-open-enrollment-period-public-use-files - title: CMS "2024 Marketplace Open Enrollment Period Public Use Files" href: https://www.cms.gov/data-research/statistics-trends-reports/marketplace-products/2024-marketplace-open-enrollment-period-public-use-files - - title: "CMS Effectuated Enrollment: Early 2025 Snapshot and Full Year 2024 Average" - href: https://www.cms.gov/files/document/effectuated-enrollment-early-snapshot-2025-and-full-year-2024-average.pdf + - title: CMS "2025 Marketplace Open Enrollment Period Public Use Files" + href: https://www.cms.gov/data-research/statistics-trends-reports/marketplace-products/2025-marketplace-open-enrollment-period-public-use-files - title: CMS "2026 Marketplace Open Enrollment Period Public Use Files" href: https://www.cms.gov/data-research/statistics-trends-reports/marketplace-products/2026-marketplace-open-enrollment-period-public-use-files values: 2018-01-01: 0.672 - # APTC enrollment / (APTC enrollment + 2023 tax-credit-eligible uninsured). + # OEP APTC plan selections / (OEP APTC plan selections + 2023 tax-credit-eligible uninsured). # KFF reports 8,163,000 uninsured people eligible for Marketplace tax credits in 2023. - # APTC enrollment: 14,793,073 (2023), 19,771,819 (2024), 21,822,894 (2025), - # and 20,035,756 (2026). - 2023-01-01: 0.644408 - 2024-01-01: 0.707784 - 2025-01-01: 0.727772 + # OEP APTC plan selections: 14,797,921 (2023), 19,743,689 (2024), + # 22,380,137 (2025), and 20,035,756 (2026). + 2023-01-01: 0.644483 + 2024-01-01: 0.707489 + 2025-01-01: 0.732739 2026-01-01: 0.710519 diff --git a/tests/unit/test_stochastic_variables.py b/tests/unit/test_stochastic_variables.py index 0d9c9a7a4..3c1ca127b 100644 --- a/tests/unit/test_stochastic_variables.py +++ b/tests/unit/test_stochastic_variables.py @@ -37,11 +37,11 @@ def test_aca_rate_loads(self): rate = load_take_up_rate("aca", 2022) assert 0 < rate <= 1 - def test_aca_rate_uses_marketplace_enrollment_time_series(self): + def test_aca_rate_uses_marketplace_oep_enrollment_time_series(self): assert load_take_up_rate("aca", 2022) == 0.672 - assert np.isclose(load_take_up_rate("aca", 2023), 0.644408) - assert np.isclose(load_take_up_rate("aca", 2024), 0.707784) - assert np.isclose(load_take_up_rate("aca", 2025), 0.727772) + assert np.isclose(load_take_up_rate("aca", 2023), 0.644483) + assert np.isclose(load_take_up_rate("aca", 2024), 0.707489) + assert np.isclose(load_take_up_rate("aca", 2025), 0.732739) assert np.isclose(load_take_up_rate("aca", 2026), 0.710519) def test_head_start_rate_loads(self): From 7f08cc6a62d6f58e8e46066ab7944bc5d963ad81 Mon Sep 17 00:00:00 2001 From: Daphne Hansell <128793799+daphnehanse11@users.noreply.github.com> Date: Thu, 11 Jun 2026 10:13:24 -0400 Subject: [PATCH 5/5] Document ACA take-up methodology and align sources Verify APTC plan-selection counts against CMS state-level OEP PUFs, document the frozen 2023 KFF denominator and its downward bias for 2024-2026, explain the plan-selections-vs-effectuated choice, fix the stale KFF reference title, and credit CMS in the changelog entry. Co-Authored-By: Claude Fable 5 --- changelog.d/620.changed.md | 2 +- .../parameters/take_up/aca.yaml | 19 ++++++++++++++----- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/changelog.d/620.changed.md b/changelog.d/620.changed.md index 7c96c9e3c..902b25d78 100644 --- a/changelog.d/620.changed.md +++ b/changelog.d/620.changed.md @@ -1 +1 @@ -Update the ACA take-up parameter with a KFF-based time series for 2023 through 2026. +Update the ACA take-up parameter with a 2023-2026 time series built from CMS Marketplace open enrollment data and KFF eligibility estimates. diff --git a/policyengine_us_data/parameters/take_up/aca.yaml b/policyengine_us_data/parameters/take_up/aca.yaml index 8ebfc85f0..b1a40a7bb 100644 --- a/policyengine_us_data/parameters/take_up/aca.yaml +++ b/policyengine_us_data/parameters/take_up/aca.yaml @@ -4,7 +4,7 @@ metadata: unit: /1 period: year reference: - - title: KFF "A Closer Look at the Remaining Uninsured Population Eligible for Medicaid and CHIP" + - title: KFF "Distribution of Eligibility for ACA Health Coverage Among the Remaining Uninsured" href: https://www.kff.org/affordable-care-act/state-indicator/distribution-of-eligibility-for-aca-coverage-among-the-remaining-uninsured/ - title: CMS "2023 Marketplace Open Enrollment Period Public Use Files" href: https://www.cms.gov/data-research/statistics-trends-reports/marketplace-products/2023-marketplace-open-enrollment-period-public-use-files @@ -16,10 +16,19 @@ metadata: href: https://www.cms.gov/data-research/statistics-trends-reports/marketplace-products/2026-marketplace-open-enrollment-period-public-use-files values: 2018-01-01: 0.672 - # OEP APTC plan selections / (OEP APTC plan selections + 2023 tax-credit-eligible uninsured). - # KFF reports 8,163,000 uninsured people eligible for Marketplace tax credits in 2023. - # OEP APTC plan selections: 14,797,921 (2023), 19,743,689 (2024), - # 22,380,137 (2025), and 20,035,756 (2026). + # OEP APTC plan selections / (OEP APTC plan selections + tax-credit-eligible uninsured). + # Numerator: APTC plan selections summed from the CMS state-level OEP public + # use files: 14,797,921 (2023), 19,743,689 (2024), 22,380,137 (2025), and + # 20,035,756 (2026). Plan selections are used instead of effectuated + # enrollment so all four years come from the same source; effectuated + # enrollment for 2026 is not yet published. + # Denominator addend: KFF reports 8,163,000 uninsured people eligible for + # Marketplace tax credits, published for 2023 only. The same count is reused + # for 2024-2026, which likely understates take-up in those years because + # later enrollment growth draws people out of that uninsured pool. + # 2021-2022 stay on the 2018 baseline because the KFF denominator reflects + # the 2023 uninsured population (post-Medicaid-unwinding) and does not + # backcast to earlier years. 2023-01-01: 0.644483 2024-01-01: 0.707489 2025-01-01: 0.732739