Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
17 commits
Select commit Hold shift + click to select a range
b78aa0d
Follow the adopted CA Premium Subsidy design at the 150% FPL boundary
MaxGhenis Oct 20, 2026
0cfff85
Tidy CA premium subsidy tests and pin the FPL truncation (review r1)
MaxGhenis Oct 20, 2026
a5d51e4
Pin truncation, not rounding, in the CA 150% income case (review r2)
MaxGhenis Oct 20, 2026
5134a2c
Merge upstream main into California premium subsidy fix
MaxGhenis Oct 20, 2026
f8fedc0
Select California premium subsidy bands from exact income
MaxGhenis Oct 20, 2026
38efe45
Document exact California subsidy boundaries and lookup rounding
MaxGhenis Oct 20, 2026
7769acf
Decide CA Premium Subsidy eligibility on the exact FPL ratio
MaxGhenis Oct 20, 2026
85f6368
Add 100% floor cases from derived income; merge duplicate reference
MaxGhenis Oct 20, 2026
d9929e4
Divide in float64; make the property test cache-safe
MaxGhenis Oct 20, 2026
16310f4
Merge current main before addressing California premium subsidy reviews
MaxGhenis Oct 23, 2026
cc1af12
Address California premium subsidy reviews and record the 150 percent…
MaxGhenis Oct 23, 2026
fc58cae
Merge remote-tracking branch 'upstream/main' into ca-premium-subsidy-…
MaxGhenis Oct 23, 2026
937adc9
Merge PolicyEngine/policyengine-us#10301 (cc1af12cd1) into ca-premium…
MaxGhenis Oct 23, 2026
1238297
Move PY2027 to the Final 2027 California Premium Subsidy Program Design
MaxGhenis Oct 23, 2026
93371bc
Divide the CA Premium Subsidy band ratio in float64
MaxGhenis Oct 24, 2026
05ff168
Merge main into ca-premium-subsidy-165-exact-ratio
MaxGhenis Oct 26, 2026
32004fd
Derive Case 19's federal credit from the 2027 table
MaxGhenis Oct 26, 2026
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/ca-premium-subsidy-165-exact-ratio.fixed.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Decide California Premium Subsidy eligibility on the exact ratio of nonnegative ACA MAGI to prior-year FPL instead of the truncated `aca_magi_fraction`, so PY2026 incomes from 165.003% to 165.994% of FPL are no longer eligible ([2026 Program Design, (d)(7)](https://board.coveredca.com/meetings/2025/July%2028,%202025/CoveredCA_2026_Premium_Subsidy_Program_Design_Final.pdf#page=2): "at or below 165 percent"). Move PY2027 from the superseded Program Design V4 to the [Final 2027 Program Design, (d)(4) and (d)(7)](https://hbex.coveredca.com/data-research/Final-2027-California-Premium-Subsidy-Program-Design.pdf#page=2): 0% up to 150% FPL, 2.8% rising to 5.28% above 150% up to 200% (replacing V4's 2.69%-3.41% and 3.41%-5.1% bands), and eligibility "at or below 200 percent", so households at exactly 200% FPL now qualify.
1 change: 1 addition & 0 deletions changelog.d/statute-first-ca-premium-subsidy.fixed.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Select California Premium Subsidy bands from exact nonnegative ACA MAGI divided by prior-year FPL under the adopted [2026 Program Design, (d)(4)](https://board.coveredca.com/meetings/2025/July%2028,%202025/CoveredCA_2026_Premium_Subsidy_Program_Design_Final.pdf#page=2): exactly 150% changes from a 3.19% contribution to 0%, while income above 150% enters the 3.19% band. Retain the truncated fraction for the rate within that band, following [FTB 3849 Table 1-2 (2020)](https://www.ftb.ca.gov/forms/2020/2020-3849-instructions.pdf#page=6) and [2021](https://www.ftb.ca.gov/forms/2021/2021-3849-instructions.pdf#page=6); [2025 Form 8962 Worksheet 2 line 4](https://www.irs.gov/pub/irs-prior/i8962--2025.pdf#page=9) likewise tests "more than" on the exact amount before truncating.
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,10 @@ values:
2026-01-01:
- 0 # 100-150%: flat 0%
- 0.0391 # 150-165%: ends 3.91%
# PY2027 Program Design V4 (adopted Board Res. 2026-22).
# Bands: 100-150% FPL, 150-165% FPL, 165-200% FPL.
# Final 2027 Program Design. Bands: 100-150% FPL, 150-200% FPL.
2027-01-01:
- 0 # 100-150%: flat 0%
- 0.0341 # 150-165%: ends 3.41%
- 0.051 # 165-200%: ends 5.1%
- 0.0528 # 150-200%: ends 5.28%

metadata:
unit: /1
Expand All @@ -20,7 +18,7 @@ metadata:
href: https://board.coveredca.com/meetings/2025/July%2028,%202025/CoveredCA_2026_Premium_Subsidy_Program_Design_Final.pdf#page=2
- title: 2026 California State Premium Subsidy Policy Explainer, Table 1
href: https://hbex.coveredca.com/stakeholders/PDFs/2026-02_StatePremiumSub_PolicyExplainer-Final.pdf#page=2
- title: 2027 California Premium Subsidy Program Design V4, subdiv. (d)(4)
href: https://board.coveredca.com/meetings/2026/May%2021,%202026/CoveredCA_2027_Premium_Subsidy_Program_Design_V4_05-19-26.pdf#page=2
- title: Covered California Board Resolution 2026-22
href: https://board.coveredca.com/meetings/2026/June%2018,%202026/2026-22.pdf
- title: Final 2027 California Premium Subsidy Program Design, subdiv. (d)(4)
href: https://hbex.coveredca.com/data-research/Final-2027-California-Premium-Subsidy-Program-Design.pdf#page=2
- title: 2027 California State Premium Subsidy Program Insight, Table 1
href: https://hbex.coveredca.com/stakeholders/PDFs/2026-03_StatePremiumSub2027_Insight_Final.pdf#page=2
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,10 @@ values:
2026-01-01:
- 0 # 100-150%: flat 0%
- 0.0319 # 150-165%: starts 3.19%
# PY2027 Program Design V4 (adopted Board Res. 2026-22).
# Bands: 100-150% FPL, 150-165% FPL, 165-200% FPL.
# Final 2027 Program Design. Bands: 100-150% FPL, 150-200% FPL.
2027-01-01:
- 0 # 100-150%: flat 0%
- 0.0269 # 150-165%: starts 2.69%
- 0.0341 # 165-200%: starts 3.41%
- 0 # 100-150%: flat 0%
- 0.028 # 150-200%: starts 2.8%

metadata:
unit: /1
Expand All @@ -20,7 +18,7 @@ metadata:
href: https://board.coveredca.com/meetings/2025/July%2028,%202025/CoveredCA_2026_Premium_Subsidy_Program_Design_Final.pdf#page=2
- title: 2026 California State Premium Subsidy Policy Explainer, Table 1
href: https://hbex.coveredca.com/stakeholders/PDFs/2026-02_StatePremiumSub_PolicyExplainer-Final.pdf#page=2
- title: 2027 California Premium Subsidy Program Design V4, subdiv. (d)(4)
href: https://board.coveredca.com/meetings/2026/May%2021,%202026/CoveredCA_2027_Premium_Subsidy_Program_Design_V4_05-19-26.pdf#page=2
- title: Covered California Board Resolution 2026-22
href: https://board.coveredca.com/meetings/2026/June%2018,%202026/2026-22.pdf
- title: Final 2027 California Premium Subsidy Program Design, subdiv. (d)(4)
href: https://hbex.coveredca.com/data-research/Final-2027-California-Premium-Subsidy-Program-Design.pdf#page=2
- title: 2027 California State Premium Subsidy Program Insight, Table 1
href: https://hbex.coveredca.com/stakeholders/PDFs/2026-03_StatePremiumSub2027_Insight_Final.pdf#page=2
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,11 @@ values:
- 1
- 1.5
- 1.65
# PY2027 Program Design V4 (adopted Board Res. 2026-22) widens the top band
# to under 200% FPL, adding a 165-200% bracket.
# The Final 2027 Program Design has two bands, "100% up to 150%" (0%) and
# "Above 150% up to 200%" (2.8% to 5.28%), with no knot at 165%.
2027-01-01:
- 1
- 1.5
- 1.65
- 2.0

metadata:
Expand All @@ -30,7 +29,5 @@ metadata:
href: https://board.coveredca.com/meetings/2025/July%2028,%202025/CoveredCA_2026_Premium_Subsidy_Program_Design_Final.pdf#page=2
- title: 2026 California State Premium Subsidy Policy Explainer, Table 1
href: https://hbex.coveredca.com/stakeholders/PDFs/2026-02_StatePremiumSub_PolicyExplainer-Final.pdf#page=2
- title: 2027 California Premium Subsidy Program Design V4, subdiv. (d)(4)
href: https://board.coveredca.com/meetings/2026/May%2021,%202026/CoveredCA_2027_Premium_Subsidy_Program_Design_V4_05-19-26.pdf#page=2
- title: Covered California Board Resolution 2026-22
href: https://board.coveredca.com/meetings/2026/June%2018,%202026/2026-22.pdf
- title: Final 2027 California Premium Subsidy Program Design, subdiv. (d)(4) and (d)(7)
href: https://hbex.coveredca.com/data-research/Final-2027-California-Premium-Subsidy-Program-Design.pdf#page=2
Original file line number Diff line number Diff line change
@@ -1,9 +1,16 @@
description: California limits income eligibility to this share of the federal poverty line under the California Premium Subsidy program.
values:
# Each limit is inclusive and applies to the exact income-to-FPL ratio, not
# the truncated aca_magi_fraction.
# PY2026 Program Design (d)(7): "at or below 165 percent".
2026-01-01: 1.65
# PY2027 Program Design V4 (adopted Board Res. 2026-22) extends eligibility to
# "under 200%" FPL; with 2-decimal FPL-percentage truncation, <= 1.99 == "<200%".
2027-01-01: 1.99
# Final 2027 Program Design (d)(7): "at or below 200 percent".
# The OE27 enroller deck conflicts with (d)(7) at 200%: its summary slide says
# the subsidy "applies only to enrollees up to under 200% FPL", while its own
# worked example at exactly 200% FPL applies the 5.28% rate. Follow the
# adopted Design.
# Candidate: us-ca:premium-subsidy-200-fpl-limit until registered.
2027-01-01: 2.0

metadata:
unit: /1
Expand All @@ -14,7 +21,9 @@ metadata:
href: https://board.coveredca.com/meetings/2025/July%2028,%202025/CoveredCA_2026_Premium_Subsidy_Program_Design_Final.pdf#page=2
- title: 2026 California State Premium Subsidy Policy Explainer, eligibility
href: https://hbex.coveredca.com/stakeholders/PDFs/2026-02_StatePremiumSub_PolicyExplainer-Final.pdf#page=1
- title: 2027 California Premium Subsidy Program Design V4, subdiv. (d)(7)
href: https://board.coveredca.com/meetings/2026/May%2021,%202026/CoveredCA_2027_Premium_Subsidy_Program_Design_V4_05-19-26.pdf#page=2
- title: Covered California Board Resolution 2026-22
href: https://board.coveredca.com/meetings/2026/June%2018,%202026/2026-22.pdf
- title: Final 2027 California Premium Subsidy Program Design, subdiv. (d)(7)
href: https://hbex.coveredca.com/data-research/Final-2027-California-Premium-Subsidy-Program-Design.pdf#page=2
- title: 2027 California State Premium Subsidy Program Insight, eligibility
href: https://hbex.coveredca.com/stakeholders/PDFs/2026-03_StatePremiumSub2027_Insight_Final.pdf#page=1
- title: "Covered California OE 2027 Enroller Kick-off, 200% FPL example #page 37-40"
href: https://hbex.coveredca.com/toolkit/webinars-briefings/downloads/OE27_Enroller_Kickoff.pdf#page=37
Original file line number Diff line number Diff line change
@@ -1,13 +1,15 @@
description: California provides state premium subsidies when this is true under the California Premium Subsidy program.
values:
# The provision runs from PY2026, matching the New Mexico and Maryland approach
# (ending 2028-01-01). PY2026 and PY2027 both have board-adopted, verified
# program designs: the PY2027 Program Design V4 (adopted Board Resolution
# 2026-22, June 18 2026; funded by the 2026 Budget Act $300M HCARF) changes the
# schedule, so PY2027 is NOT a carry-forward of PY2026 (see the applicable
# percentage and fpl_limit files). Section 100800(c) has the Exchange adopt the
# design annually upon appropriation and Section 100825 creates no entitlement,
# so the provision ends 2028-01-01 absent a verified PY2028 design.
# (ending 2028-01-01). PY2026 and PY2027 both have adopted, verified program
# designs: the Final 2027 Program Design (adopted under item 4800-101-3381 of
# the Budget Act of 2026; the 2027 Insight reports $300M appropriated from
# the Health Care Affordability Reserve Fund) changes the schedule, so PY2027
# is NOT a carry-forward of PY2026 (see the applicable percentage and
# fpl_limit files).
# Section 100800(c) has the Exchange adopt the design annually upon
# appropriation and Section 100825 creates no entitlement, so the provision
# ends 2028-01-01 absent a verified PY2028 design.
#
# The Program Design's enhanced-PTC trigger ("state subsidy applies if the
# federal enhanced PTC is not extended by Sept 30 2025") fired, so the residual
Expand All @@ -25,6 +27,10 @@ metadata:
reference:
- title: 2026 California Premium Subsidy Program Design, preamble
href: https://board.coveredca.com/meetings/2025/July%2028,%202025/CoveredCA_2026_Premium_Subsidy_Program_Design_Final.pdf#page=1
- title: Final 2027 California Premium Subsidy Program Design, preamble
href: https://hbex.coveredca.com/data-research/Final-2027-California-Premium-Subsidy-Program-Design.pdf#page=1
- title: 2027 California State Premium Subsidy Program Insight, background
href: https://hbex.coveredca.com/stakeholders/PDFs/2026-03_StatePremiumSub2027_Insight_Final.pdf#page=1
- title: CA Gov. Code Section 100800(c) (Exchange adopts annual program design upon appropriation)
href: https://leginfo.legislature.ca.gov/faces/codes_displaySection.xhtml?lawCode=GOV&sectionNum=100800.
- title: CA Gov. Code Section 100825
Expand Down
1 change: 1 addition & 0 deletions policyengine_us/tests/code_health/test_source_conflicts.py
Original file line number Diff line number Diff line change
Expand Up @@ -125,6 +125,7 @@
"policyengine_us/parameters/gov/ssa/ssi/income/ism/food_counts.yaml": 1,
"policyengine_us/parameters/gov/states/ar/ade/oec/sra/rates/no_copay_smi_threshold.yaml": 1,
"policyengine_us/parameters/gov/states/ca/cpuc/income_sources.yaml": 1,
"policyengine_us/parameters/gov/states/ca/hbex/premium_subsidy/fpl_limit.yaml": 1,
"policyengine_us/parameters/gov/states/co/doi/premium_assistance/amount/additional_member.yaml": 1,
"policyengine_us/parameters/gov/states/co/doi/premium_assistance/amount/first_member.yaml": 1,
"policyengine_us/parameters/gov/states/fl/commerce/liheap/payment/base_amount.yaml": 1,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
# The negative-MAGI clamp case supplies eligibility and a positive rate to
# isolate the amount formula; its income fraction is correctly zero.
# CA schedule: threshold [1.0, 1.5, 1.65], initial [0, 0.0319], final [0, 0.0391]
# PY2027 (Final Design): threshold [1.0, 1.5, 2.0], initial [0, 0.028], final [0, 0.0528]

# ---- 100-150% FPL band (applicable percentage 0%) ----

Expand Down Expand Up @@ -99,8 +100,9 @@
ca_premium_subsidy: 3_112.50

- name: Case 4, exactly 165% FPL positive subsidy (pct 3.91%, top of the ramp).
# pct = 0.0391 (final rate). income 26_000.
# amount = max(0, 7_000 - 2_500 - 0.0391*26_000) = 7_000 - 2_500 - 1_016.60 = 3_483.40.
# pct = 0.0391 (final rate). income 25_822.50 = 165% of the 2025 one-person
# FPG $15,650, the highest income "at or below 165 percent".
# amount = max(0, 7_000 - 2_500 - 0.0391*25_822.50) = 7_000 - 2_500 - 1_009.66 = 3_490.34.
period: 2026
absolute_error_margin: 0.01
input:
Expand All @@ -112,8 +114,8 @@
tax_unit:
members: [person1]
tax_unit_fpg:
2025: 15_757.575757575758
aca_magi: 26_000
2025: 15_650
aca_magi: 25_822.50
aca_magi_fraction: 1.65
slcsp: 7_000
aca_ptc: 2_500
Expand All @@ -123,7 +125,8 @@
members: [person1]
state_code: CA
output:
ca_premium_subsidy: 3_483.40
ca_premium_subsidy_eligible: true
ca_premium_subsidy: 3_490.34

- name: Case 5, 160% FPL with expected contribution exceeding the gap -> $0 floor.
# pct = 0.0319 + (2/3)*0.0072 = 0.0367. income 24_000 -> 0.0367*24_000 = 880.80.
Expand Down Expand Up @@ -259,6 +262,7 @@
aca_magi_fraction: 1.66
slcsp: 6_000
aca_ptc: 2_000
tax_unit_is_filer: true
households:
household:
members: [person1]
Expand Down Expand Up @@ -295,9 +299,10 @@
# ---- Floor edge with a positive amount ----

- name: Case 11, exactly at the 100% FPL floor (1.0) with a positive subsidy.
# magi_frac 1.0 -> pct 0 (flat 100-150% band). Eligible: 1.0 >= fpl_floor 1.0,
# <= fpl_limit 1.65, in effect, APTC-eligible. income 15_000.
# amount = max(0, 6_000 - 3_500 - 0*15_000) = 2_500. Confirms the floor edge is
# magi_frac 1.0 -> pct 0 (flat 100-150% band). Eligible: income 15_650 is
# exactly the 2025 one-person FPG, so 1.0 >= fpl_floor 1.0, <= fpl_limit 1.65,
# in effect, APTC-eligible.
# amount = max(0, 6_000 - 3_500 - 0*15_650) = 2_500. Confirms the floor edge is
# eligible AND pays the full post-APTC gap (pct is 0 at the bottom of the band).
period: 2026
absolute_error_margin: 0.01
Expand All @@ -310,8 +315,8 @@
tax_unit:
members: [person1]
tax_unit_fpg:
2025: 15_000
aca_magi: 15_000
2025: 15_650
aca_magi: 15_650
aca_magi_fraction: 1.00
slcsp: 6_000
aca_ptc: 3_500
Expand All @@ -321,6 +326,7 @@
members: [person1]
state_code: CA
output:
ca_premium_subsidy_eligible: true
ca_premium_subsidy: 2_500

# ---- Mid-band interaction: APTC and pct both active, residual positive ----
Expand Down Expand Up @@ -409,6 +415,7 @@
aca_magi_fraction: 1.66
slcsp: 6_000
aca_ptc: 2_000
tax_unit_is_filer: true
households:
household:
members: [person1]
Expand Down Expand Up @@ -439,6 +446,7 @@
aca_magi_fraction: 0.99
slcsp: 6_000
aca_ptc: 2_000
tax_unit_is_filer: true
households:
household:
members: [person1]
Expand All @@ -447,15 +455,16 @@
ca_premium_subsidy_applicable_percentage: 0
ca_premium_subsidy: 0

# ---- PY2027 carry-forward (positive amount) ----
# ---- PY2027 Final Program Design (positive amount) ----

- name: Case 16, PY2027 pays a positive subsidy at 157.5% FPL (revised schedule).
# in_effect is true through PY2027 and the schedule CHANGED (Board Res. 2026-22):
# the 150-165% band is now initial 0.0269 -> final 0.0341, so
# magi_frac 1.575 -> pct 0.0269 + 0.5*(0.0341-0.0269) = 0.0269 + 0.0036 = 0.0305.
# income 25_000. amount = max(0, 6_000 - 2_000 - 0.0305*25_000)
# = 6_000 - 2_000 - 762.50 = 3_237.50 (up from the 2026 value of 3_112.50 at the
# same FPL because the PY2027 applicable percentage in this band is lower).
# in_effect is true through PY2027 and the Final 2027 Program Design (d)(4)
# changes the schedule: one paying band "Above 150% up to 200%", initial
# 0.028 -> final 0.0528. magi_frac 1.575 -> position (1.575-1.5)/0.5 = 0.15
# -> pct 0.028 + 0.15*0.0248 = 0.03172. income 25_000.
# amount = max(0, 6_000 - 2_000 - 0.03172*25_000) = 6_000 - 2_000 - 793 = 3_207
# (up from the 2026 value of 3_112.50 at the same FPL because the PY2027
# applicable percentage at this point is lower).
period: 2027
absolute_error_margin: 0.01
input:
Expand All @@ -478,7 +487,7 @@
members: [person1]
state_code: CA
output:
ca_premium_subsidy: 3_237.50
ca_premium_subsidy: 3_207

# ---- Floor from the SLCSP == APTC direction ----

Expand Down Expand Up @@ -551,3 +560,43 @@
ca_premium_subsidy_eligible: true
ca_premium_subsidy_applicable_percentage: 0.0355
ca_premium_subsidy: 3_881.75

# ---- PY2027 upper limit (Covered California's worked example) ----

- name: Case 19, PY2027 exactly 200% FPL pays the 1.5-point gap (OE27 example).
# The OE27 enroller deck (PDF pages 37-38) works a single 40-year-old in
# Sacramento County at $31,920, exactly 200% of the 2026 one-person FPG
# $15,960: benchmark $688 a month, federal required contribution 6.78%,
# state rate 5.28% (6.78% - 1.5%), state subsidy about $40 a month.
# slcsp = 688*12 = 8_256. aca_ptc = 8_256 - 0.0678*31_920 = 8_256 - 2_164.176
# = 6_091.824. Eligible: 2.0 is "at or below 200 percent" (Design (d)(7)).
# amount = max(0, 8_256 - 6_091.824 - 0.0528*31_920)
# = 2_164.176 - 1_685.376 = 478.80 = 0.015*31_920, or $39.90 a month.
# aca_ptc is derived from the federal 2027 applicable percentage table
# (Rev. Proc. 2026-26, PolicyEngine/policyengine-us#10443), which gives 6.78%
# at exactly 200% FPL. The output pins that federal credit.
period: 2027
absolute_error_margin: 0.01
input:
people:
person1:
age: 40
is_aca_ptc_eligible: true
tax_units:
tax_unit:
members: [person1]
tax_unit_fpg:
2026: 15_960
aca_magi: 31_920
aca_magi_fraction: 2.00
slcsp: 8_256
tax_unit_is_filer: true
households:
household:
members: [person1]
state_code: CA
output:
aca_ptc: 6_091.824
ca_premium_subsidy_eligible: true
ca_premium_subsidy_applicable_percentage: 0.0528
ca_premium_subsidy: 478.80
Loading
Loading