diff --git a/changelog.d/hi-ccap-copay-income-base.fixed.md b/changelog.d/hi-ccap-copay-income-base.fixed.md new file mode 100644 index 00000000000..0b4715a8f14 --- /dev/null +++ b/changelog.d/hi-ccap-copay-income-base.fixed.md @@ -0,0 +1 @@ +Hawaii CCAP co-payments follow HAR 17-798.3-14 beginning August 2021, applying the sliding-scale tier to the family's monthly gross income; the prior HAR 17-798.2-14(b)(4) provider-rate method is preserved for earlier periods. diff --git a/policyengine_us/parameters/gov/states/hi/bessd/ccap/copay/income_based_in_effect.yaml b/policyengine_us/parameters/gov/states/hi/bessd/ccap/copay/income_based_in_effect.yaml new file mode 100644 index 00000000000..2c0edfb3545 --- /dev/null +++ b/policyengine_us/parameters/gov/states/hi/bessd/ccap/copay/income_based_in_effect.yaml @@ -0,0 +1,24 @@ +description: Hawaii computes the Child Care Subsidy co-payment as a percentage of the family's monthly gross income when this is in effect, and as a percentage of the department's maximum rate allowable otherwise. + +values: + 2020-01-01: false + 2021-08-06: true + +metadata: + unit: bool + period: year + label: Hawaii CCAP income-based co-payment in effect + reference: + # HAR chapter 17-798.3 (effective August 6, 2021) replaced the + # payment provisions of chapter 17-798.2; its section -14 multiplies + # the co-payment tier by the family unit's monthly gross income, + # where the superseded 17-798.2-14(b)(4) multiplied it by the + # department's maximum rate allowable. Monthly formulas read this + # parameter as of the first day of the month, so the model applies + # the income-based method from September 2021 onward; August 2021, + # which straddles the effective date, still uses the maximum-rate + # method. + - title: HAR 17-798.3-14, co-payment tier multiplied by the family unit's monthly gross income (eff. 2021-08-06) + href: https://humanservices.hawaii.gov/bessd/files/2021/09/CHAPTER-17-798.3-Child-Care-Payments.pdf#page=35 + - title: HAR 17-798.2-14(b)(4), co-payment tier multiplied by the department's maximum rate allowable (superseded) + href: https://humanservices.hawaii.gov/bessd/files/2013/01/HAR-17-798.2-Child-Care-Services-Rules.pdf#page=29 diff --git a/policyengine_us/parameters/gov/states/hi/bessd/ccap/copay/rate.yaml b/policyengine_us/parameters/gov/states/hi/bessd/ccap/copay/rate.yaml index eb0279788f9..836c0bb1322 100644 --- a/policyengine_us/parameters/gov/states/hi/bessd/ccap/copay/rate.yaml +++ b/policyengine_us/parameters/gov/states/hi/bessd/ccap/copay/rate.yaml @@ -1,4 +1,4 @@ -description: Hawaii sets this co-payment percentage of the department's maximum rate allowable under the Child Care Subsidy program, by the family's gross income as a share of the federal poverty guidelines. +description: Hawaii sets this co-payment percentage under the Child Care Subsidy program, by the family's gross income as a share of the federal poverty guidelines. metadata: type: single_amount @@ -7,18 +7,18 @@ metadata: period: year label: Hawaii CCAP co-payment rate by FPG ratio reference: - # HAR 17-798.2-14(b)(4): co-payment = (percentage of the department's - # maximum rate allowable) based on the family's monthly gross income. - # The rule's attached scale is "Exhibit III (dated Oct 1, 2009)", which has - # been superseded by the 2020 sliding-fee scale below; the implemented - # 0-9% percentages come from that 2020 scale, the operative source. - - title: HAR 17-798.2-14(b)(4) - href: https://humanservices.hawaii.gov/bessd/files/2013/01/HAR-17-798.2-Child-Care-Services-Rules.pdf#page=29 - # Operative sliding fee scale (single-page scanned chart, eff 2020-01-02) - # mapping each FPG band to its co-payment percentage. The standalone PDF - # labels itself "Exhibit II" in its own footer, which is its internal - # numbering and differs from the HAR's exhibit numbering (Exhibit III). - - title: Hawaii DHS Child Care Gross Income Eligibility Limits and Sliding Fee Scale (PDF "Exhibit II"), effective 2020-01-02 + # HAR 17-798.3-14(3) (eff. 2021-08-06, page 35 of the chapter PDF) + # determines the co-payment tier from Exhibit II, dated January 2, + # 2020, attached at the end of the chapter; step (4) multiplies the + # tier by the family unit's monthly gross income. The percentages + # below are the Exhibit II column headings. The superseded + # 17-798.2-14(b)(4) used the same tier scale but multiplied it by the + # department's maximum rate allowable (see income_based_in_effect.yaml). + - title: HAR 17-798.3, Exhibit II Child Care Gross Income Eligibility Limits and Sliding Fee Scale (dated January 2, 2020), applied under 17-798.3-14(3) (tier selection; the multiply is step (4)) + href: https://humanservices.hawaii.gov/bessd/files/2021/09/CHAPTER-17-798.3-Child-Care-Payments.pdf#page=73 + # The same Exhibit II scale as a standalone scanned chart (eff + # 2020-01-02), mapping each FPG band to its co-payment percentage. + - title: Hawaii DHS Child Care Gross Income Eligibility Limits and Sliding Fee Scale (Exhibit II), effective 2020-01-02 href: https://childcaresubsidyapplication.dhs.hawaii.gov/Child-Care-Gross-Income-Eligibility-Limits-and-Sliding-Fee-Scale # Bands are "above X%" boundaries (e.g., 101-115% means above 100% up to diff --git a/policyengine_us/parameters/gov/states/hi/bessd/ccap/income/countable_income/sources.yaml b/policyengine_us/parameters/gov/states/hi/bessd/ccap/income/countable_income/sources.yaml index 557192dc00c..63eaaa2b789 100644 --- a/policyengine_us/parameters/gov/states/hi/bessd/ccap/income/countable_income/sources.yaml +++ b/policyengine_us/parameters/gov/states/hi/bessd/ccap/income/countable_income/sources.yaml @@ -48,6 +48,12 @@ metadata: period: year label: Hawaii CCAP countable income sources reference: + # Chapter 17-798.3 (eff. 2021-08-06) carries the same source list in + # 17-798.3-10(b) and the same exclusions in 17-798.3-11 (page 29); + # "gross income" is defined in 17-798.3-2 as all non-excluded earned + # and unearned income. + - title: HAR 17-798.3-10(b) and 17-798.3-11 + href: https://humanservices.hawaii.gov/bessd/files/2021/09/CHAPTER-17-798.3-Child-Care-Payments.pdf#page=24 - title: HAR 17-798.2-10(b) href: https://humanservices.hawaii.gov/bessd/files/2013/01/HAR-17-798.2-Child-Care-Services-Rules.pdf#page=19 - title: HAR 17-798.2-11 diff --git a/policyengine_us/tests/policy/baseline/gov/states/hi/bessd/ccap/copay/hi_ccap_copay.yaml b/policyengine_us/tests/policy/baseline/gov/states/hi/bessd/ccap/copay/hi_ccap_copay.yaml index 075e1ca3314..65ff2be8a04 100644 --- a/policyengine_us/tests/policy/baseline/gov/states/hi/bessd/ccap/copay/hi_ccap_copay.yaml +++ b/policyengine_us/tests/policy/baseline/gov/states/hi/bessd/ccap/copay/hi_ccap_copay.yaml @@ -1,12 +1,11 @@ -# HI CCAP family co-payment (HAR 17-798.2-14(b)(4)). -# Co-payment = (department's maximum rate allowable) x (co-pay percentage). -# The percentage multiplies the PROVIDER MAX RATE, not gross income. This is -# the HI-specific difference from income-times-percent designs. +# HI CCAP family co-payment (HAR 17-798.3-14, eff. 2021-08-06). +# Co-payment = (co-payment tier from Exhibit II) x (monthly gross income +# for the family unit), assessed once per family unit. # # Family of 2, HI 2025 (FPG family of 2 = 24,320/year = 2,026.67/month). # Children are full-time (childcare_hours_per_week 30 -> ~130 monthly hours). -- name: Case 1, worked example 740 rate times 9 percent. +- name: Case 1, worked example gross income times 9 percent. period: 2025-01 absolute_error_margin: 0.01 input: @@ -31,11 +30,11 @@ members: [person1, person2] state_code: HI output: - # Max rate (licensed center or group home, full-time) = 795; copay rate 9% - # copay = 795 x 0.09 = 71.55 - hi_ccap_copay: 71.55 + # Monthly gross income = 56,000 / 12 = 4,666.67; copay tier 9% + # copay = 4,666.67 x 0.09 = 420.00 + hi_ccap_copay: 420 -- name: Case 2, infant/toddler rate 1733 times 5 percent. +- name: Case 2, gross income times 5 percent. period: 2025-01 absolute_error_margin: 0.01 input: @@ -60,9 +59,9 @@ members: [person1, person2] state_code: HI output: - # Max rate (licensed center infant/toddler, full-time) = 1,733; copay rate 5% - # copay = 1,733 x 0.05 = 86.65 - hi_ccap_copay: 86.65 + # Monthly gross income = 40,800 / 12 = 3,400; copay tier 5% + # copay = 3,400 x 0.05 = 170.00 (the provider rate does not enter) + hi_ccap_copay: 170 - name: Case 3, zero copay percent gives zero copay. period: 2025-01 @@ -89,5 +88,214 @@ members: [person1, person2] state_code: HI output: - # 795 x 0.00 = 0 + # 1,000 x 0.00 = 0 hi_ccap_copay: 0 + +# The FFY2025-2027 CCDF plan (section 3.1.2) shows a family unit of 1 at +# monthly income 3,632 paying a 327 co-payment: ratio far above 230% FPG +# -> 9% tier, and 3,632 x 0.09 = 326.88, which rounds to the plan's 327. +- name: Case 4, CCDF plan worked example, family of 1 at 3632 per month. + period: 2025-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 25 + employment_income: 43_584 # 3,632/mo + immigration_status: CITIZEN + tax_units: + tax_unit: + members: [person1] + spm_units: + spm_unit: + members: [person1] + households: + household: + members: [person1] + state_code: HI + output: + hi_ccap_copay_rate: 0.09 + hi_ccap_copay: 326.88 + +# === Effective-date boundary: HAR 17-798.3 replaced 17-798.2's payment +# provisions on August 6, 2021. Before then the co-payment was the tier +# percentage of the department's maximum rate allowable, per child +# (17-798.2-14(b)(4)); since then it is the tier percentage of monthly +# gross income, per family unit (17-798.3-14). === + +- name: Case 5, before August 2021 the tier applies to the provider maximum rate. + period: 2021-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 30 + employment_income: 56_000 # 4,666.67/mo, far above 230% FPG -> 9% + immigration_status: CITIZEN + person2: + age: 4 + immigration_status: CITIZEN + childcare_hours_per_week: 30 + hi_ccap_provider_category: LICENSED_CENTER_OR_GROUP_HOME + tax_units: + tax_unit: + members: [person1, person2] + spm_units: + spm_unit: + members: [person1, person2] + households: + household: + members: [person1, person2] + state_code: HI + output: + # Max rate (licensed center or group home, full-time) = 795 + # copay = 795 x 0.09 = 71.55 + hi_ccap_copay: 71.55 + +- name: Case 6, from the 2021 rule change the tier applies to gross income. + period: 2022-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 30 + employment_income: 56_000 # 4,666.67/mo, far above 230% FPG -> 9% + immigration_status: CITIZEN + person2: + age: 4 + immigration_status: CITIZEN + childcare_hours_per_week: 30 + hi_ccap_provider_category: LICENSED_CENTER_OR_GROUP_HOME + tax_units: + tax_unit: + members: [person1, person2] + spm_units: + spm_unit: + members: [person1, person2] + households: + household: + members: [person1, person2] + state_code: HI + output: + # copay = 4,666.67 x 0.09 = 420.00 (same household as Case 5) + hi_ccap_copay: 420 + +# The August 6, 2021 effective date falls mid-month. Monthly formulas read +# income_based_in_effect as of the first day of the month, so August 2021 +# is the last month on the maximum-rate method and September 2021 the +# first on the gross-income method. HI 2021 FPG family of 2 = +# 20,040/year = 1,670/month, so 4,666.67 is 2.79 x FPG -> 9% tier. + +- name: Case 7, August 2021 still uses the maximum-rate method and September 2021 is the first month on the gross-income method. + period: 2021 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 30 + employment_income: 56_000 # 4,666.67/mo, FPG ratio 2.79 -> 9% + immigration_status: CITIZEN + person2: + age: 4 + immigration_status: CITIZEN + childcare_hours_per_week: 30 + hi_ccap_provider_category: LICENSED_CENTER_OR_GROUP_HOME + tax_units: + tax_unit: + members: [person1, person2] + spm_units: + spm_unit: + members: [person1, person2] + households: + household: + members: [person1, person2] + state_code: HI + output: + # The toggle is still false on August 1, 2021 and true on September 1: + # August copay = 795 (max rate) x 0.09 = 71.55 + # September copay = 4,666.67 (gross income) x 0.09 = 420.00 + hi_ccap_copay_rate: + 2021-08: 0.09 + 2021-09: 0.09 + hi_ccap_copay: + 2021-08: 71.55 + 2021-09: 420 + +# Two children in care: the old method summed each child's maximum rate +# before applying the tier; the new method charges the tier on the family's +# income once, regardless of how many children are in care. Family of 3, +# 66,000/year = 5,500/month. HI FPG family of 3: 2021 = 25,260/year = +# 2,105/month (ratio 2.61); 2022 = 26,490/year = 2,207.50/month +# (ratio 2.49). Both years land in the 9% tier. + +- name: Case 8, before August 2021 two children sum their maximum rates. + period: 2021-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 30 + employment_income: 66_000 # 5,500/mo, FPG ratio 2.61 -> 9% + immigration_status: CITIZEN + person2: + age: 1 # < 36 months -> INFANT_TODDLER rate + immigration_status: CITIZEN + childcare_hours_per_week: 30 + hi_ccap_provider_category: LICENSED_CENTER_OR_GROUP_HOME + person3: + age: 4 # >= 36 months -> OLDER rate + immigration_status: CITIZEN + childcare_hours_per_week: 30 + hi_ccap_provider_category: LICENSED_CENTER_OR_GROUP_HOME + tax_units: + tax_unit: + members: [person1, person2, person3] + spm_units: + spm_unit: + members: [person1, person2, person3] + households: + household: + members: [person1, person2, person3] + state_code: HI + output: + # Licensed center full-time rates: infant/toddler 1,733 + older 795 + # = 2,528; copay = 2,528 x 0.09 = 227.52 + hi_ccap_maximum_monthly_rate: [0, 1_733, 795] + hi_ccap_copay_rate: 0.09 + hi_ccap_copay: 227.52 + +- name: Case 9, from the 2021 rule change two children still pay the tier on income once. + period: 2022-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 30 + employment_income: 66_000 # 5,500/mo, FPG ratio 2.49 -> 9% + immigration_status: CITIZEN + person2: + age: 1 # < 36 months -> INFANT_TODDLER rate + immigration_status: CITIZEN + childcare_hours_per_week: 30 + hi_ccap_provider_category: LICENSED_CENTER_OR_GROUP_HOME + person3: + age: 4 # >= 36 months -> OLDER rate + immigration_status: CITIZEN + childcare_hours_per_week: 30 + hi_ccap_provider_category: LICENSED_CENTER_OR_GROUP_HOME + tax_units: + tax_unit: + members: [person1, person2, person3] + spm_units: + spm_unit: + members: [person1, person2, person3] + households: + household: + members: [person1, person2, person3] + state_code: HI + output: + # Same household and rates as Case 8, but the rates no longer enter: + # copay = 5,500 (gross income) x 0.09 = 495.00, not 227.52 + hi_ccap_maximum_monthly_rate: [0, 1_733, 795] + hi_ccap_copay_rate: 0.09 + hi_ccap_copay: 495 diff --git a/policyengine_us/tests/policy/baseline/gov/states/hi/bessd/ccap/copay/hi_ccap_copay_rate.yaml b/policyengine_us/tests/policy/baseline/gov/states/hi/bessd/ccap/copay/hi_ccap_copay_rate.yaml index 2804c50bc36..8906ff01a9c 100644 --- a/policyengine_us/tests/policy/baseline/gov/states/hi/bessd/ccap/copay/hi_ccap_copay_rate.yaml +++ b/policyengine_us/tests/policy/baseline/gov/states/hi/bessd/ccap/copay/hi_ccap_copay_rate.yaml @@ -1,4 +1,4 @@ -# HI CCAP co-payment rate by FPG band (Exhibit II, HAR 17-798.2-14(b)(4)). +# HI CCAP co-payment rate by FPG band (Exhibit II, HAR 17-798.3-14(3)). # The rate is a function of monthly gross income as a share of the federal # poverty guidelines, independent of family size. Bands (income above X%): # 0-100% -> 0%, 101-115% -> 1%, 116-130% -> 2%, 131-145% -> 3%, diff --git a/policyengine_us/tests/policy/baseline/gov/states/hi/bessd/ccap/hi_ccap.yaml b/policyengine_us/tests/policy/baseline/gov/states/hi/bessd/ccap/hi_ccap.yaml index 215beaadb7f..6ed40870741 100644 --- a/policyengine_us/tests/policy/baseline/gov/states/hi/bessd/ccap/hi_ccap.yaml +++ b/policyengine_us/tests/policy/baseline/gov/states/hi/bessd/ccap/hi_ccap.yaml @@ -94,9 +94,9 @@ members: [person1, person2] state_code: HI output: - # capped = min(1,000, 795) = 795; copay = 795 x 0.09 = 71.55 - # subsidy = 795 - 71.55 = 723.45 - hi_ccap: 723.45 + # capped = min(1,000, 795) = 795; copay = 4,666.67 x 0.09 = 420.00 + # subsidy = 795 - 420.00 = 375.00 + hi_ccap: 375 - name: Case 4, two children sum their rates. period: 2025-01 @@ -230,9 +230,9 @@ state_code: HI output: # capped = min(500 charge, 795 rate) = 500 - # copay = 795 x 0.09 = 71.55 (always on the dept max rate) - # subsidy = max(500 - 71.55, 0) = 428.45 (lesser is the charge, not rate) - hi_ccap: 428.45 + # copay = 4,666.67 x 0.09 = 420.00 (on gross income) + # subsidy = max(500 - 420.00, 0) = 80.00 (lesser is the charge, not rate) + hi_ccap: 80 - name: Case 8, copay larger than the lesser-of amount floors the subsidy at zero. period: 2025-01 @@ -262,8 +262,8 @@ members: [person1, person2] state_code: HI output: - # capped = min(1 charge, 795 rate) = 1; copay = 795 x 0.09 = 71.55 - # subsidy = max(1 - 71.55, 0) = 0 (no negative benefit) + # capped = min(1 charge, 795 rate) = 1; copay = 4,666.67 x 0.09 = 420.00 + # subsidy = max(1 - 420.00, 0) = 0 (no negative benefit) hi_ccap: 0 - name: Case 9, household with no children produces a graceful zero. @@ -401,3 +401,44 @@ hi_ccap_maximum_monthly_rate: [0, 86] # subsidy = min(1,000 expenses, 86 rate) - 0 copay = 86 hi_ccap: 86 + +# === Pre-August-2021 co-payment method (HAR 17-798.2-14(b)(4)) === + +- name: Case 13, before August 2021 the copay on the maximum rate reduces the subsidy. + period: 2021-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 30 + employment_income: 56_000 # 4,666.67/mo + weekly_hours_worked_before_lsr: 40 + immigration_status: CITIZEN + person2: + age: 4 + immigration_status: CITIZEN + is_in_k12_school: false + childcare_hours_per_week: 30 + hi_ccap_provider_category: LICENSED_CENTER_OR_GROUP_HOME + tax_units: + tax_unit: + members: [person1, person2] + spm_units: + spm_unit: + members: [person1, person2] + spm_unit_pre_subsidy_childcare_expenses: 12_000 # 1,000/mo + households: + household: + members: [person1, person2] + state_code: HI + output: + # 2021: HI SMI 104,242 x 0.68 (family of 2) x 0.85 / 12 = 5,020.99 + # >= 4,666.67 -> income eligible; FPG family of 2 = 1,670/mo, ratio + # 2.79 -> 9%. + hi_ccap_eligible: true + # Same household as Case 3, but the copay is 9% of the 795 maximum + # rate rather than of income: 795 x 0.09 = 71.55. + hi_ccap_copay: 71.55 + # capped = min(1,000, 795) = 795; subsidy = 795 - 71.55 = 723.45 + # (versus 375 under the gross-income method in Case 3) + hi_ccap: 723.45 diff --git a/policyengine_us/tests/policy/baseline/gov/states/hi/bessd/ccap/integration.yaml b/policyengine_us/tests/policy/baseline/gov/states/hi/bessd/ccap/integration.yaml index 04817f4602f..3177adf0c2c 100644 --- a/policyengine_us/tests/policy/baseline/gov/states/hi/bessd/ccap/integration.yaml +++ b/policyengine_us/tests/policy/baseline/gov/states/hi/bessd/ccap/integration.yaml @@ -96,10 +96,10 @@ hi_ccap_maximum_monthly_rate: [0, 795] # FPG ratio = 5,000 / 2,026.67 = 2.4671 -> 9% band hi_ccap_copay_rate: 0.09 - # copay = 795 x 0.09 = 71.55 - hi_ccap_copay: 71.55 - # capped = min(1,000 expenses, 795 rate) = 795; subsidy = 795 - 71.55 - hi_ccap: 723.45 + # copay = 5,000 x 0.09 = 450.00 + hi_ccap_copay: 450 + # capped = min(1,000 expenses, 795 rate) = 795; subsidy = 795 - 450.00 + hi_ccap: 345 - name: Case 3, protective-services child with income test waived. period: 2025-01 @@ -139,10 +139,11 @@ hi_ccap_maximum_monthly_rate: [0, 980] # FPG ratio far above 230% -> 9% band hi_ccap_copay_rate: 0.09 - # copay = 980 x 0.09 = 88.20 - hi_ccap_copay: 88.20 - # capped = min(1,000, 980) = 980; subsidy = 980 - 88.20 - hi_ccap: 891.80 + # copay = 16,666.67 x 0.09 = 1,500.00 (scales with income, so the + # high-income family owes more than the capped rate) + hi_ccap_copay: 1_500 + # capped = min(1,000, 980) = 980; subsidy = max(980 - 1,500, 0) = 0 + hi_ccap: 0 - name: Case 4, disabled teenager in before-after-school care. period: 2025-01 @@ -184,10 +185,10 @@ hi_ccap_maximum_monthly_rate: [0, 155] # FPG ratio = 2,500 / 2,026.67 = 1.2336 -> 2% band hi_ccap_copay_rate: 0.02 - # copay = 155 x 0.02 = 3.10 - hi_ccap_copay: 3.10 - # capped = min(250 expenses, 155 rate) = 155; subsidy = 155 - 3.10 - hi_ccap: 151.90 + # copay = 2,500 x 0.02 = 50.00 + hi_ccap_copay: 50 + # capped = min(250 expenses, 155 rate) = 155; subsidy = 155 - 50.00 + hi_ccap: 105 - name: Case 5, two children at different provider types. period: 2025-01 @@ -235,10 +236,11 @@ # FPG family of 3 = 30,650/yr = 2,554.17/mo # ratio = 3,000 / 2,554.17 = 1.1746 -> 2% band hi_ccap_copay_rate: 0.02 - # copay = (400 + 86) x 0.02 = 9.72 - hi_ccap_copay: 9.72 - # capped = min(750 expenses, 486 rates) = 486; subsidy = 486 - 9.72 - hi_ccap: 476.28 + # copay = 3,000 x 0.02 = 60.00, assessed once per family unit + # regardless of the number of children in care + hi_ccap_copay: 60 + # capped = min(750 expenses, 486 rates) = 486; subsidy = 486 - 60.00 + hi_ccap: 426 - name: Case 6, two-parent family with one idle parent is ineligible. period: 2025-01 diff --git a/policyengine_us/variables/gov/states/hi/bessd/ccap/copay/hi_ccap_copay.py b/policyengine_us/variables/gov/states/hi/bessd/ccap/copay/hi_ccap_copay.py index 36c906eed74..67bbe0e0c6e 100644 --- a/policyengine_us/variables/gov/states/hi/bessd/ccap/copay/hi_ccap_copay.py +++ b/policyengine_us/variables/gov/states/hi/bessd/ccap/copay/hi_ccap_copay.py @@ -8,12 +8,29 @@ class hi_ccap_copay(Variable): label = "Hawaii CCAP family co-payment" definition_period = MONTH defined_for = StateCode.HI - reference = "https://humanservices.hawaii.gov/bessd/files/2013/01/HAR-17-798.2-Child-Care-Services-Rules.pdf#page=29" + reference = ( + "https://humanservices.hawaii.gov/bessd/files/2021/09/CHAPTER-17-798.3-Child-Care-Payments.pdf#page=35", + "https://humanservices.hawaii.gov/bessd/files/2013/01/HAR-17-798.2-Child-Care-Services-Rules.pdf#page=29", + ) def formula(spm_unit, period, parameters): - # Co-payment = (department's maximum rate allowable) x (co-payment - # percentage from the sliding fee scale) (HAR 17-798.2-14(b)(4)). - # The percentage multiplies the provider max rate, not gross income. - maximum_monthly_rate = add(spm_unit, period, ["hi_ccap_maximum_monthly_rate"]) + p = parameters(period).gov.states.hi.bessd.ccap.copay copay_rate = spm_unit("hi_ccap_copay_rate", period) - return maximum_monthly_rate * copay_rate + # From August 6, 2021, the co-payment is the sliding-fee tier + # multiplied by the family unit's monthly gross income, assessed + # once per family (HAR 17-798.3-14(4); the tier itself is selected + # at step (3)). Before then, it was the tier multiplied by the + # department's maximum rate allowable, per child in care + # (HAR 17-798.2-14(b)(4)). + # "Gross income" is a defined term in both chapters: "all + # non-excluded earned and unearned income as specified in this + # chapter" (HAR 17-798.3-2; identically HAR 17-798.2-2). The + # counted sources are listed in 17-798.3-10(b) and the exclusions, + # including the 17-798.3-11(8) earnings of minor children who are + # at least half-time students, in 17-798.3-11 (mirroring + # 17-798.2-10 and -11). The statutory monthly gross income is + # therefore the same countable income that selects the tier. + countable_income = spm_unit("hi_ccap_countable_income", period) + maximum_monthly_rate = add(spm_unit, period, ["hi_ccap_maximum_monthly_rate"]) + base = where(p.income_based_in_effect, countable_income, maximum_monthly_rate) + return base * copay_rate diff --git a/policyengine_us/variables/gov/states/hi/bessd/ccap/copay/hi_ccap_copay_rate.py b/policyengine_us/variables/gov/states/hi/bessd/ccap/copay/hi_ccap_copay_rate.py index 05cb287dee9..4e8470cbce6 100644 --- a/policyengine_us/variables/gov/states/hi/bessd/ccap/copay/hi_ccap_copay_rate.py +++ b/policyengine_us/variables/gov/states/hi/bessd/ccap/copay/hi_ccap_copay_rate.py @@ -7,15 +7,15 @@ class hi_ccap_copay_rate(Variable): label = "Hawaii CCAP co-payment rate" definition_period = MONTH defined_for = StateCode.HI - reference = "https://humanservices.hawaii.gov/bessd/files/2013/01/HAR-17-798.2-Child-Care-Services-Rules.pdf#page=29" + reference = "https://humanservices.hawaii.gov/bessd/files/2021/09/CHAPTER-17-798.3-Child-Care-Payments.pdf#page=35" def formula(spm_unit, period, parameters): p = parameters(period).gov.states.hi.bessd.ccap.copay countable_income = spm_unit("hi_ccap_countable_income", period) fpg = spm_unit("spm_unit_fpg", period) - # Co-payment percentage is a function of the family's gross income - # as a share of the federal poverty guidelines (HAR - # 17-798.2-14(b)(4); Exhibit II sliding fee scale). The dollar + # The co-payment tier is a function of the family's gross income + # as a share of the federal poverty guidelines (HAR 17-798.3-14(3); + # Exhibit II sliding fee scale, dated January 2, 2020). The dollar # columns in Exhibit II are just FPG x band, so the percentage is # independent of family size. fpg_ratio = where(fpg > 0, countable_income / fpg, 0) diff --git a/policyengine_us/variables/gov/states/hi/bessd/ccap/hi_ccap_countable_income.py b/policyengine_us/variables/gov/states/hi/bessd/ccap/hi_ccap_countable_income.py index 691d83703ef..c38c3cd56e0 100644 --- a/policyengine_us/variables/gov/states/hi/bessd/ccap/hi_ccap_countable_income.py +++ b/policyengine_us/variables/gov/states/hi/bessd/ccap/hi_ccap_countable_income.py @@ -8,15 +8,25 @@ class hi_ccap_countable_income(Variable): definition_period = MONTH unit = USD defined_for = StateCode.HI - reference = "https://humanservices.hawaii.gov/bessd/files/2013/01/HAR-17-798.2-Child-Care-Services-Rules.pdf#page=19" + reference = ( + # HAR 17-798.3-10 (counted sources) and -11 (exclusions), eff. + # 2021-08-06; "gross income" is defined in 17-798.3-2 as all + # non-excluded earned and unearned income. + "https://humanservices.hawaii.gov/bessd/files/2021/09/CHAPTER-17-798.3-Child-Care-Payments.pdf#page=24", + # Superseded HAR 17-798.2-10 and -11, with the same source list, + # exclusions, and 17-798.2-2 definition. + "https://humanservices.hawaii.gov/bessd/files/2013/01/HAR-17-798.2-Child-Care-Services-Rules.pdf#page=19", + ) def formula(spm_unit, period, parameters): p = parameters(period).gov.states.hi.bessd.ccap - # Monthly gross income from all counted sources (HAR 17-798.2-10(b)). + # Monthly gross income from all counted sources (HAR 17-798.3-10(b); + # identically 17-798.2-10(b) before August 6, 2021). gross = add(spm_unit, period, p.income.countable_income.sources) - # HAR 17-798.2-11(8): exclude the earnings of minor household members - # who are at least half-time students. is_full_time_student is the - # available proxy for a minor's at-least-half-time enrollment. + # HAR 17-798.3-11(8) (17-798.2-11(8) before August 6, 2021): exclude + # the earnings of minor household members who are at least half-time + # students. is_full_time_student is the available proxy for a + # minor's at-least-half-time enrollment. person = spm_unit.members is_minor_student = ( person("age", period.this_year) < p.age.minor_age_limit