Skip to content

Add Colorado premium assistance (Connect for Health Colorado premium wrap) - #9237

Draft
DTrim99 wants to merge 4 commits into
mainfrom
co-premium-assistance
Draft

Add Colorado premium assistance (Connect for Health Colorado premium wrap)#9237
DTrim99 wants to merge 4 commits into
mainfrom
co-premium-assistance

Conversation

@DTrim99

@DTrim99 DTrim99 commented Aug 5, 2026

Copy link
Copy Markdown
Collaborator

Add Colorado Premium Assistance

Closes #9221

Summary

Adds Colorado Premium Assistance (CPA) — a flat per-member-per-month state premium wrap layered on top of the federal Advance Premium Tax Credit (APTC) for marketplace enrollees through Connect for Health Colorado. The program is funded by the Health Insurance Affordability Enterprise (HIAE, Division of Insurance) and is enacted and operating for plan year 2026 (176,000+ recipients, ~$10.6M/month), extended at current levels through plan year 2027 by SB26-178.

  • New variables: co_premium_assistance_eligible (bool) and co_premium_assistance (USD), both TaxUnit/YEAR, defined_for CO
  • New parameter node: gov.states.co.doi.premium_assistance (six parameters; zero hard-coded values in formulas)
  • Wired into healthcare_benefit_value and registered in programs.yaml (verified_years: "2026-2027")

Regulatory Authority

  • Primary benefit-design authority: Connect for Health Colorado — Colorado Premium Assistance. The $80/$29/5-member/100–400% FPL design is set administratively by the HIAE board / Connect for Health Colorado — it is not written verbatim into the bill or DOI regulation text. Note: this page returned a 403 to automated fetches during source collection (body is JS-rendered); per user decision it is cited as primary anyway, with a corroboration chain carried in the parameter comments: Boulder County open-enrollment notice (government source), healthinsurance.org Colorado guide, ACA Signups SB26-178 writeup, and the Spanish-language mirror of the C4HCO site — all agreeing on $80/$29, 100–400% FPL, 5-member cap, and the remaining-premium cap.
  • Enabling authority and funding: HB25B-1006 (2025 First Extraordinary Session, signed 2025-08-28; bill text PDF) — verified page anchors: § 10-16-1205(2)(e) allocations (up to $50M reinsurance #page=3, up to $50M to carriers for on-exchange APTC recipients #page=4); § 10-16-1207(4)(c.5) board/commissioner rule hook under which the CPA amounts are set (#page=5); § 10-16-1209(1) trigger — effective only because Congress did not extend the enhanced PTC by 2025-12-31 (#page=8); $100M interest-free Unclaimed Property Trust Fund loan, § 38-13-801(7) (#page=10).
  • Extension: SB26-178 (enacted July 2026) extends CPA "at its current levels" through plan year 2027 (C4HCO statement).
  • Statutory home: the HIAE lives in the Colorado insurance code at C.R.S. § 10-16-1201 et seq. (Health Insurance Affordability Act, SB20-215), with premium-wrap payment authority at § 10-16-1205(1)(b) — hence the gov.states.co.doi.premium_assistance parameter node (DOI/DORA, distinct from the hcpf node used by co_omnisalud).

Eligibility

A tax unit is eligible when all of the following hold:

  1. Program in effect: in_effect parameter window false → 2026-01-01: true → 2028-01-01: false. The 2028 end date is verified by SB26-178 (extension "at current levels" through PY2027) — not a carry-forward assumption as in the NM/CA implementations.
  2. APTC-eligible member: at least one tax-unit member with is_aca_ptc_eligible (marketplace enrollment, premium payment, MFS exclusion, immigration/TIN status, and the federal income test are inherited — APTC eligibility is not re-implemented).
  3. Income band: aca_magi_fraction within the published 100–400% FPL band, stored as rates (fpl_limit/lower = 1.0, fpl_limit/upper = 4.0). The lower bound is strict, which excludes the below-FPL immigration-exception APTC population (aca_ptc_below_fpl_immigration_exception) — matching the published 100–400% design (same convention as CA); C4HCO's operational treatment of that population is unverified.

Both variables carry defined_for = StateCode.CO.

Benefit Calculation

Monthly flat build-up: $80 for the first member plus $29 for each additional member, with at most 5 members counted — maximum flat amount 80 + 4 × 29 = $196/month. Members are counted as persons with is_aca_ptc_eligible; a zero-member tax unit gets $0 (vector-safe guard, not $80).

Annual amount:

n            = min_(count of APTC-eligible members, member_cap)
flat_monthly = where(n > 0, first_member + additional_member × (n − 1), 0)
residual     = max_(0, annual SLCSP − aca_ptc)
co_premium_assistance = eligible × min_(12 × flat_monthly, residual)

All five numbers ($80, $29, 5, 1.0, 4.0) come from parameters; no hard-coded values.

Three approximations, each documented in the variable:

  1. SLCSP as premium proxy: the enrolled-plan premium is approximated by the benchmark second-lowest-cost silver plan, so the "remaining premium after APTC" cap is max_(0, SLCSP − APTC) — the same convention as nm_premium_assistance and ca_premium_subsidy. If APTC already zeroes the benchmark, CPA is $0.
  2. APTC-covered-member count: "member paying a premium" is approximated by "APTC-eligible member," since the model cannot attribute the post-APTC residual to individual members. The pays_aca_premium machinery already zeroes the 4th+ child, consistent with CPA's rule that a $0-premium member generates no increment.
  3. Full-year enrollment: the YEAR variable applies the residual cap at the annual level (12 × monthly flat vs. annual residual), assuming enrollment in all 12 months.

CPA is paid upfront at enrollment and is not a tax credit — no reconciliation is modeled (see Not Modeled).

Requirements Coverage

All 24 in-scope requirements are implemented; 40/40 tests pass.

Requirement Status Evidence
REQ-01 in_effect window, 2028 end verified (SB26-178) Done in_effect.yaml; 2025/2027/2028 window tests
REQ-02 APTC-eligible member gate Done tax_unit.any(is_aca_ptc_eligible)
REQ-03/04 100–400% FPL band, strict lower bound Done 0.99/1.0/1.01 and 3.99/4.0/4.01 boundary tests
REQ-05 defined_for StateCode.CO Done Both variables; non-CO test
REQ-06/07 $80 + $29/additional, 5-member cap → $196/mo Done Cap-binding cases (6 eligible members → $196/mo)
REQ-08/09 member count proxy; n = 0 → 0 guard Done min_ cap + where(n > 0, …, 0)
REQ-10/11 residual cap max_(0, SLCSP − APTC); annual min Done Residual-binding and APTC-zeroes-premium cases
REQ-12 zero hard-coded values Done All 5 numbers from parameters
REQ-13/14 six parameters under gov.states.co.doi.premium_assistance; no pre-2026 values, no uprating Done Corroboration chain + superseded-figure warnings in comments
REQ-15/16/17 two TaxUnit/YEAR variables under variables/gov/states/co/doi/premium_assistance/ Done Approximations documented in variable docs
REQ-18 healthcare_benefit_value adds entry Done Alphabetical slot next to co_omnisalud
REQ-19 programs.yaml entry Done verified_years: "2026-2027"
REQ-20 changelog fragment Done changelog.d/co-premium-assistance.added.md
REQ-21/22 YAML tests, direct-input style, hand-verified arithmetic Done 13 + 13 + 7 scenarios incl. both caps binding, boundaries, window years, non-CO
REQ-23 vectorization Done Multi-person/multi-year YAML cases (full microsim shard runs in CI)
REQ-24 healthcare_benefit_value regression Done Case 7 ($960 in → $960 out)

Test results (run per-file locally): co_premium_assistance_eligible.yaml 13/13, co_premium_assistance.yaml 13/13, integration.yaml 7/7, household/healthcare_benefit_value.yaml 7/7 — 40 passed, 0 failed. Formatted with ruff.

Not Modeled

  • REQ-25 Auto-application mechanics — CPA applies automatically at enrollment; modeled as full take-up among eligible enrollees.
  • REQ-26 No-reconciliation / upfront-only nature — no repayment or tax-return interaction is modeled.
  • REQ-27 HIAE funding machinery — $100M UPTF loan, $50M/$50M allocations, carrier payment flows, TABOR treatment.
  • REQ-28 Colorado Option Silver Enhanced $0-premium plan (Reg 4-2-83) — a separate 0–150% FPL mechanism, not CPA.
  • REQ-29 OmniSalud interaction — co_omnisalud stays separate; populations are disjoint by construction (CPA requires federal APTC eligibility, OmniSalud requires federal ineligibility), so no double counting.
  • REQ-30 Enrolled-plan (non-benchmark) premiums, partial-year enrollment, and per-member APTC attribution — approximated per the three documented approximations above.

Source Notes

  • DOI Emergency Regulation 25-E-03 (eff. 2025-06-23) specified a "lesser of $50 PMPM" first member / "$18 PMPM" additional member subsidy at ≤200% FPL. Those were pre-launch rate-filing contingency figures, superseded by the launched $80/$29/100–400% FPL CPA design — they are explicitly not used here. The regulation is cited in parameter comments only to explain the discrepancy.
  • DOI Amended Regulation 4-2-83 (eff. 2026-01-01) governs the Colorado Option Silver Enhanced Plan (73% AV, $0 premium, 0–150% FPL) — a different HIAE mechanism, not CPA, and not cited as authority for CPA amounts.
  • The $80/$29/5-member design is administrative (HIAE board / C4HCO, under the C.R.S. § 10-16-1207(4)(c.5) rule hook), so the C4HCO consumer page is the value authority, with the government/press corroboration chain carried in the parameter comments.

Files Added

changelog.d/
└── co-premium-assistance.added.md                            (new)
policyengine_us/
├── parameters/gov/states/co/doi/premium_assistance/
│   ├── amount/
│   │   ├── first_member.yaml                                 (new — $80/month)
│   │   └── additional_member.yaml                            (new — $29/month)
│   ├── fpl_limit/
│   │   ├── lower.yaml                                        (new — 1.0)
│   │   └── upper.yaml                                        (new — 4.0)
│   ├── in_effect.yaml                                        (new — 2026–2027 window)
│   └── member_cap.yaml                                       (new — 5)
├── variables/gov/states/co/doi/premium_assistance/
│   ├── co_premium_assistance.py                              (new)
│   └── co_premium_assistance_eligible.py                     (new)
├── variables/household/healthcare_benefit_value.py           (modified — adds entry)
├── programs.yaml                                             (modified — CPA entry)
└── tests/policy/baseline/
    ├── gov/states/co/doi/premium_assistance/
    │   ├── co_premium_assistance.yaml                        (new — 13 tests)
    │   ├── co_premium_assistance_eligible.yaml               (new — 13 tests)
    │   └── integration.yaml                                  (new — 7 tests)
    └── household/healthcare_benefit_value.yaml               (modified — CO regression case)

15 files changed, 1,075 insertions(+).

@codecov

codecov Bot commented Aug 5, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 100.00%. Comparing base (63bcfc5) to head (c1cab01).
⚠️ Report is 4 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##              main     #9237    +/-   ##
==========================================
  Coverage   100.00%   100.00%            
==========================================
  Files           12         3     -9     
  Lines          192        45   -147     
==========================================
- Hits           192        45   -147     
Flag Coverage Δ
unittests 100.00% <100.00%> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 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.

DTrim99 and others added 4 commits August 6, 2026 10:53
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- co_premium_assistance_eligible.py: comment that the explicit 100% FPL floor
  is NOT redundant with is_aca_ptc_eligible (that gate admits the below-poverty
  lawfully-present immigration exception), so the floor does real work
- member_cap.yaml: unit person (repo norm for member-count caps)
- fpl_limit/lower.yaml 1.0->1, fpl_limit/upper.yaml 4.0->4 (bare-integer form)
- fpl_limit reference titles: added the 100%-400% FPL band note
- Tests: mixed-eligibility member-COUNT amount case (n=2 of 3 members guards
  the eligible-count sum vs household size), 2027 multi-member carry-forward
  (n=2 and n=5 cap), and a derived-from-raw-income integration scenario
  asserting derived slcsp 6_114.40 / aca_ptc 4_264.54 / co_premium_assistance
  960 (44/44 passing)

No parameter values (beyond 1.0->1 / 4.0->4 formatting) or formula logic changed.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@DTrim99
DTrim99 force-pushed the co-premium-assistance branch from ef839a7 to c1cab01 Compare August 6, 2026 14:55
@DTrim99

DTrim99 commented Aug 6, 2026

Copy link
Copy Markdown
Collaborator Author

Review fixes applied (/review-program/fix-pr)

Full multi-agent review (regulatory, references, code patterns, test coverage, and a source audit that corroborated the administratively-set values against Boulder County / healthinsurance.org / ACA Signups / the C4HCO Spanish mirror, since the primary C4HCO page 403s to bots). 0 critical, 0 value mismatches — $80/$29 PMPM, the 5-member cap, the 100–400% FPL band, the SLCSP−APTC residual cap, and the SB26-178-verified 2028 window all confirmed; the superseded $50/$18 Emergency-Reg figures appear nowhere as values. Applied all should-address items and suggestions:

Code / docs / params

  • co_premium_assistance_eligible.py: added a comment noting the explicit 100% FPL floor is not redundant with the is_aca_ptc_eligible gate — that gate admits the below-poverty lawfully-present immigration exception, so the floor does real work and must not be simplified away.
  • member_cap.yaml: unit: person (the repo norm for member-count caps).
  • fpl_limit/lower.yaml 1.01, fpl_limit/upper.yaml 4.04 (bare-integer form; numerically identical), and tightened the two reference titles with the 100–400% FPL band note.
  • Left the .any() member gate as-is — it is the idiomatic pattern here (matches sibling co_omnisalud).

Tests (44/44 passing)

  • A mixed-eligibility member-count amount case: 2 of 3 members APTC-eligible → n=2 (base $1,308), guarding that the amount uses the eligible count (add(is_aca_ptc_eligible)), not household size.
  • PY2027 multi-member carry-forward cases (n=2 and the n=5 cap → $2,352), confirming the $29 additional-member amount and 5-cap carry forward (prior 2027 coverage was n=1 only).
  • A derived-from-raw-income integration scenario: aca_magi_fraction, slcsp (6,114.40), and aca_ptc (4,264.54) all derive from raw employment_income, asserting the $960 flat-cap result — so a change to the federal ACA chain would be caught.

No parameter values (beyond 1.01 / 4.04 formatting) or formula logic changed. Rebased onto current main; CI green.

🤖 Generated with Claude Code

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.

Model Colorado state premium wrap (flat $80 + $29/member PMPM top-up)

1 participant