From e3490b09b9701870a9f4db5a1fbbd0670db7364a Mon Sep 17 00:00:00 2001 From: Ziming Date: Thu, 16 Jul 2026 12:19:01 -0400 Subject: [PATCH 1/7] Add placeholder changelog for Wisconsin Shares CCAP Scaffolds the branch for #9060 (Wisconsin Shares Child Care Subsidy Program). Implementation to follow. Co-Authored-By: Claude Fable 5 --- changelog.d/wi-ccap.added.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 changelog.d/wi-ccap.added.md diff --git a/changelog.d/wi-ccap.added.md b/changelog.d/wi-ccap.added.md new file mode 100644 index 00000000000..755fdb1d84b --- /dev/null +++ b/changelog.d/wi-ccap.added.md @@ -0,0 +1 @@ +Wisconsin Shares Child Care Subsidy Program (CCAP). From ff88a12dd32c875eb1c457d9ae2f51c27593296f Mon Sep 17 00:00:00 2001 From: Ziming Date: Thu, 16 Jul 2026 14:31:36 -0400 Subject: [PATCH 2/7] Implement Wisconsin Shares Child Care Subsidy Program (ref #9060) Co-Authored-By: Claude Fable 5 --- .../hhs/ccdf/child_care_subsidy_programs.yaml | 1 + .../gov/states/wi/dcf/shares/age_group.yaml | 34 + .../dcf/shares/copay/exit/phase_out_rate.yaml | 23 + .../copay/hours/assistance_group_cap.yaml | 16 + .../dcf/shares/copay/hours/per_child_cap.yaml | 19 + .../copay/per_hour/five_or_more_children.yaml | 106 +++ .../shares/copay/per_hour/four_children.yaml | 106 +++ .../dcf/shares/copay/per_hour/one_child.yaml | 106 +++ .../shares/copay/per_hour/three_children.yaml | 106 +++ .../shares/copay/per_hour/two_children.yaml | 106 +++ .../dcf/shares/eligibility/asset_limit.yaml | 19 + .../shares/eligibility/child_age_limit.yaml | 15 + .../eligibility/disabled_child_age_limit.yaml | 16 + .../dcf/shares/hours/above_full_time_cap.yaml | 16 + .../hours/above_full_time_threshold.yaml | 17 + .../hours/full_time_weekly_conversion.yaml | 17 + .../hours/part_time_max_weekly_hours.yaml | 17 + .../hours/part_time_weekly_conversion.yaml | 17 + .../wi/dcf/shares/hours/weeks_per_month.yaml | 17 + .../income/child_support_disregard_cap.yaml | 17 + .../shares/income/limit/initial_fpg_rate.yaml | 20 + .../shares/income/limit/ongoing_smi_rate.yaml | 18 + .../income/minor_income_disregard_age.yaml | 17 + .../states/wi/dcf/shares/income/sources.yaml | 65 ++ .../rates/certified_licensed_rate_ratio.yaml | 25 + .../licensed_family/full_time_monthly.yaml | 672 ++++++++++++++++++ .../shares/rates/licensed_family/hourly.yaml | 672 ++++++++++++++++++ .../licensed_group/full_time_monthly.yaml | 670 +++++++++++++++++ .../shares/rates/licensed_group/hourly.yaml | 671 +++++++++++++++++ policyengine_us/programs.yaml | 8 +- .../wi/dcf/shares/copay/wi_shares_copay.yaml | 253 +++++++ .../copay/wi_shares_copay_per_hour.yaml | 267 +++++++ .../wi_shares_activity_eligible.yaml | 151 ++++ .../eligibility/wi_shares_asset_eligible.yaml | 99 +++ .../eligibility/wi_shares_eligible.yaml | 157 ++++ .../eligibility/wi_shares_eligible_child.yaml | 130 ++++ .../wi_shares_income_eligible.yaml | 179 +++++ ...wi_shares_parent_in_approved_activity.yaml | 81 +++ .../shares/hours/wi_shares_copay_hours.yaml | 61 ++ .../wi_shares_monthly_subsidized_hours.yaml | 61 ++ .../shares/hours/wi_shares_time_category.yaml | 58 ++ .../income/wi_shares_countable_income.yaml | 216 ++++++ .../gov/states/wi/dcf/shares/integration.yaml | 321 +++++++++ .../dcf/shares/rates/wi_shares_age_group.yaml | 107 +++ .../rates/wi_shares_hourly_max_rate.yaml | 147 ++++ .../rates/wi_shares_monthly_max_rate.yaml | 99 +++ .../gov/states/wi/dcf/shares/wi_shares.yaml | 148 ++++ .../dcf/shares/wi_shares_child_subsidy.yaml | 243 +++++++ .../wi/dcf/shares/copay/wi_shares_copay.py | 48 ++ .../shares/copay/wi_shares_copay_per_hour.py | 49 ++ .../eligibility/is_wi_shares_enrolled.py | 13 + .../wi_shares_activity_eligible.py | 30 + .../eligibility/wi_shares_asset_eligible.py | 26 + .../shares/eligibility/wi_shares_eligible.py | 22 + .../eligibility/wi_shares_eligible_child.py | 33 + .../eligibility/wi_shares_income_eligible.py | 32 + .../wi_shares_parent_in_approved_activity.py | 30 + .../dcf/shares/hours/wi_shares_copay_hours.py | 31 + .../wi_shares_monthly_subsidized_hours.py | 35 + .../shares/hours/wi_shares_time_category.py | 32 + .../income/wi_shares_countable_income.py | 51 ++ .../dcf/shares/rates/wi_shares_age_group.py | 28 + .../shares/rates/wi_shares_hourly_max_rate.py | 47 ++ .../rates/wi_shares_monthly_max_rate.py | 68 ++ .../shares/rates/wi_shares_provider_type.py | 23 + .../wi/dcf/shares/wi_child_care_subsidies.py | 12 + .../gov/states/wi/dcf/shares/wi_shares.py | 15 + .../wi/dcf/shares/wi_shares_child_subsidy.py | 58 ++ 68 files changed, 7089 insertions(+), 1 deletion(-) create mode 100644 policyengine_us/parameters/gov/states/wi/dcf/shares/age_group.yaml create mode 100644 policyengine_us/parameters/gov/states/wi/dcf/shares/copay/exit/phase_out_rate.yaml create mode 100644 policyengine_us/parameters/gov/states/wi/dcf/shares/copay/hours/assistance_group_cap.yaml create mode 100644 policyengine_us/parameters/gov/states/wi/dcf/shares/copay/hours/per_child_cap.yaml create mode 100644 policyengine_us/parameters/gov/states/wi/dcf/shares/copay/per_hour/five_or_more_children.yaml create mode 100644 policyengine_us/parameters/gov/states/wi/dcf/shares/copay/per_hour/four_children.yaml create mode 100644 policyengine_us/parameters/gov/states/wi/dcf/shares/copay/per_hour/one_child.yaml create mode 100644 policyengine_us/parameters/gov/states/wi/dcf/shares/copay/per_hour/three_children.yaml create mode 100644 policyengine_us/parameters/gov/states/wi/dcf/shares/copay/per_hour/two_children.yaml create mode 100644 policyengine_us/parameters/gov/states/wi/dcf/shares/eligibility/asset_limit.yaml create mode 100644 policyengine_us/parameters/gov/states/wi/dcf/shares/eligibility/child_age_limit.yaml create mode 100644 policyengine_us/parameters/gov/states/wi/dcf/shares/eligibility/disabled_child_age_limit.yaml create mode 100644 policyengine_us/parameters/gov/states/wi/dcf/shares/hours/above_full_time_cap.yaml create mode 100644 policyengine_us/parameters/gov/states/wi/dcf/shares/hours/above_full_time_threshold.yaml create mode 100644 policyengine_us/parameters/gov/states/wi/dcf/shares/hours/full_time_weekly_conversion.yaml create mode 100644 policyengine_us/parameters/gov/states/wi/dcf/shares/hours/part_time_max_weekly_hours.yaml create mode 100644 policyengine_us/parameters/gov/states/wi/dcf/shares/hours/part_time_weekly_conversion.yaml create mode 100644 policyengine_us/parameters/gov/states/wi/dcf/shares/hours/weeks_per_month.yaml create mode 100644 policyengine_us/parameters/gov/states/wi/dcf/shares/income/child_support_disregard_cap.yaml create mode 100644 policyengine_us/parameters/gov/states/wi/dcf/shares/income/limit/initial_fpg_rate.yaml create mode 100644 policyengine_us/parameters/gov/states/wi/dcf/shares/income/limit/ongoing_smi_rate.yaml create mode 100644 policyengine_us/parameters/gov/states/wi/dcf/shares/income/minor_income_disregard_age.yaml create mode 100644 policyengine_us/parameters/gov/states/wi/dcf/shares/income/sources.yaml create mode 100644 policyengine_us/parameters/gov/states/wi/dcf/shares/rates/certified_licensed_rate_ratio.yaml create mode 100644 policyengine_us/parameters/gov/states/wi/dcf/shares/rates/licensed_family/full_time_monthly.yaml create mode 100644 policyengine_us/parameters/gov/states/wi/dcf/shares/rates/licensed_family/hourly.yaml create mode 100644 policyengine_us/parameters/gov/states/wi/dcf/shares/rates/licensed_group/full_time_monthly.yaml create mode 100644 policyengine_us/parameters/gov/states/wi/dcf/shares/rates/licensed_group/hourly.yaml create mode 100644 policyengine_us/tests/policy/baseline/gov/states/wi/dcf/shares/copay/wi_shares_copay.yaml create mode 100644 policyengine_us/tests/policy/baseline/gov/states/wi/dcf/shares/copay/wi_shares_copay_per_hour.yaml create mode 100644 policyengine_us/tests/policy/baseline/gov/states/wi/dcf/shares/eligibility/wi_shares_activity_eligible.yaml create mode 100644 policyengine_us/tests/policy/baseline/gov/states/wi/dcf/shares/eligibility/wi_shares_asset_eligible.yaml create mode 100644 policyengine_us/tests/policy/baseline/gov/states/wi/dcf/shares/eligibility/wi_shares_eligible.yaml create mode 100644 policyengine_us/tests/policy/baseline/gov/states/wi/dcf/shares/eligibility/wi_shares_eligible_child.yaml create mode 100644 policyengine_us/tests/policy/baseline/gov/states/wi/dcf/shares/eligibility/wi_shares_income_eligible.yaml create mode 100644 policyengine_us/tests/policy/baseline/gov/states/wi/dcf/shares/eligibility/wi_shares_parent_in_approved_activity.yaml create mode 100644 policyengine_us/tests/policy/baseline/gov/states/wi/dcf/shares/hours/wi_shares_copay_hours.yaml create mode 100644 policyengine_us/tests/policy/baseline/gov/states/wi/dcf/shares/hours/wi_shares_monthly_subsidized_hours.yaml create mode 100644 policyengine_us/tests/policy/baseline/gov/states/wi/dcf/shares/hours/wi_shares_time_category.yaml create mode 100644 policyengine_us/tests/policy/baseline/gov/states/wi/dcf/shares/income/wi_shares_countable_income.yaml create mode 100644 policyengine_us/tests/policy/baseline/gov/states/wi/dcf/shares/integration.yaml create mode 100644 policyengine_us/tests/policy/baseline/gov/states/wi/dcf/shares/rates/wi_shares_age_group.yaml create mode 100644 policyengine_us/tests/policy/baseline/gov/states/wi/dcf/shares/rates/wi_shares_hourly_max_rate.yaml create mode 100644 policyengine_us/tests/policy/baseline/gov/states/wi/dcf/shares/rates/wi_shares_monthly_max_rate.yaml create mode 100644 policyengine_us/tests/policy/baseline/gov/states/wi/dcf/shares/wi_shares.yaml create mode 100644 policyengine_us/tests/policy/baseline/gov/states/wi/dcf/shares/wi_shares_child_subsidy.yaml create mode 100644 policyengine_us/variables/gov/states/wi/dcf/shares/copay/wi_shares_copay.py create mode 100644 policyengine_us/variables/gov/states/wi/dcf/shares/copay/wi_shares_copay_per_hour.py create mode 100644 policyengine_us/variables/gov/states/wi/dcf/shares/eligibility/is_wi_shares_enrolled.py create mode 100644 policyengine_us/variables/gov/states/wi/dcf/shares/eligibility/wi_shares_activity_eligible.py create mode 100644 policyengine_us/variables/gov/states/wi/dcf/shares/eligibility/wi_shares_asset_eligible.py create mode 100644 policyengine_us/variables/gov/states/wi/dcf/shares/eligibility/wi_shares_eligible.py create mode 100644 policyengine_us/variables/gov/states/wi/dcf/shares/eligibility/wi_shares_eligible_child.py create mode 100644 policyengine_us/variables/gov/states/wi/dcf/shares/eligibility/wi_shares_income_eligible.py create mode 100644 policyengine_us/variables/gov/states/wi/dcf/shares/eligibility/wi_shares_parent_in_approved_activity.py create mode 100644 policyengine_us/variables/gov/states/wi/dcf/shares/hours/wi_shares_copay_hours.py create mode 100644 policyengine_us/variables/gov/states/wi/dcf/shares/hours/wi_shares_monthly_subsidized_hours.py create mode 100644 policyengine_us/variables/gov/states/wi/dcf/shares/hours/wi_shares_time_category.py create mode 100644 policyengine_us/variables/gov/states/wi/dcf/shares/income/wi_shares_countable_income.py create mode 100644 policyengine_us/variables/gov/states/wi/dcf/shares/rates/wi_shares_age_group.py create mode 100644 policyengine_us/variables/gov/states/wi/dcf/shares/rates/wi_shares_hourly_max_rate.py create mode 100644 policyengine_us/variables/gov/states/wi/dcf/shares/rates/wi_shares_monthly_max_rate.py create mode 100644 policyengine_us/variables/gov/states/wi/dcf/shares/rates/wi_shares_provider_type.py create mode 100644 policyengine_us/variables/gov/states/wi/dcf/shares/wi_child_care_subsidies.py create mode 100644 policyengine_us/variables/gov/states/wi/dcf/shares/wi_shares.py create mode 100644 policyengine_us/variables/gov/states/wi/dcf/shares/wi_shares_child_subsidy.py diff --git a/policyengine_us/parameters/gov/hhs/ccdf/child_care_subsidy_programs.yaml b/policyengine_us/parameters/gov/hhs/ccdf/child_care_subsidy_programs.yaml index acd03170470..0cbe745f592 100644 --- a/policyengine_us/parameters/gov/hhs/ccdf/child_care_subsidy_programs.yaml +++ b/policyengine_us/parameters/gov/hhs/ccdf/child_care_subsidy_programs.yaml @@ -37,6 +37,7 @@ values: - sc_child_care_subsidies # South Carolina Child Care Scholarship Program - va_child_care_subsidies # Virginia Child Care Subsidy Program - wa_child_care_subsidies # Washington Working Connections Child Care + - wi_child_care_subsidies # Wisconsin Shares Child Care Subsidy Program - wv_child_care_subsidies # West Virginia Child Care Assistance Program - nd_child_care_subsidies # North Dakota Child Care Assistance Program diff --git a/policyengine_us/parameters/gov/states/wi/dcf/shares/age_group.yaml b/policyengine_us/parameters/gov/states/wi/dcf/shares/age_group.yaml new file mode 100644 index 00000000000..a5c48e268e0 --- /dev/null +++ b/policyengine_us/parameters/gov/states/wi/dcf/shares/age_group.yaml @@ -0,0 +1,34 @@ +description: Wisconsin assigns children to these age groups when determining maximum subsidy rates under the Wisconsin Shares Child Care Subsidy Program. + +# The maximum rate tables use four age groups: "0 through 1", "2 through 3", +# "4 through 5", and "6+". The integer amounts are the indices of the +# wi_shares_age_group enum members in that order. +brackets: + - threshold: + 2025-10-01: 0 + amount: + 2025-10-01: 0 # AGE_0_THROUGH_1 + - threshold: + 2025-10-01: 2 + amount: + 2025-10-01: 1 # AGE_2_THROUGH_3 + - threshold: + 2025-10-01: 4 + amount: + 2025-10-01: 2 # AGE_4_THROUGH_5 + - threshold: + 2025-10-01: 6 + amount: + 2025-10-01: 3 # AGE_6_AND_OLDER + +metadata: + type: single_amount + threshold_unit: year + amount_unit: /1 + period: year + label: Wisconsin Shares child age group + reference: + - title: Wisconsin Shares Handbook (July 2026), Section 18.5.1 Subsidy Maximum Rates + href: https://dcf.wisconsin.gov/wisconsin-shares/wisconsin-shares-handbook-july-2026#page=156 + - title: 2025 Wisconsin Shares Child Care Subsidy County and Tribal Maximum Rates - Statewide, effective 10/1/2025 (pp. 26-40) + href: https://dcf.wisconsin.gov/files/wishares/pdf/max-rates-statewide.pdf#page=26 diff --git a/policyengine_us/parameters/gov/states/wi/dcf/shares/copay/exit/phase_out_rate.yaml b/policyengine_us/parameters/gov/states/wi/dcf/shares/copay/exit/phase_out_rate.yaml new file mode 100644 index 00000000000..a1befc38966 --- /dev/null +++ b/policyengine_us/parameters/gov/states/wi/dcf/shares/copay/exit/phase_out_rate.yaml @@ -0,0 +1,23 @@ +description: Wisconsin increases the assistance group's monthly copayment by this share of monthly income above the initial income limit during the exit period under the Wisconsin Shares Child Care Subsidy Program. + +# "The AG Copay is increased by $1 for every $5 that the income exceeds 200% +# FPL" - the formula floors the product to whole dollars ($1 per full $5). +# The $1-per-$5 rate applies beginning fiscal year 2024-25 per +# Wis. Stat. § 49.155(1m)(c)1d.a. (it was $1 per $3 before); coverage here +# begins with the February 1, 2026 copayment schedule era. +values: + 2026-02-01: 0.2 + +metadata: + unit: /1 + period: year + label: Wisconsin Shares exit period additional copayment rate + reference: + - title: Wisconsin Shares Handbook (July 2026), Section 18.2.1 Exit Period Copayments + href: https://dcf.wisconsin.gov/wisconsin-shares/wisconsin-shares-handbook-july-2026#page=150 + - title: Wisconsin Shares Handbook (July 2026), Section 18.4.2 Exit + href: https://dcf.wisconsin.gov/wisconsin-shares/wisconsin-shares-handbook-july-2026#page=154 + - title: Wis. Stat. § 49.155(1m)(c)1d.a. + href: https://docs.legis.wisconsin.gov/statutes/statutes/49/III/155 + - title: Wisconsin Shares Copayment Schedule, effective February 1, 2026 + href: https://dcf.wisconsin.gov/files/wishares/pdf/wishares-copay-schedule.pdf diff --git a/policyengine_us/parameters/gov/states/wi/dcf/shares/copay/hours/assistance_group_cap.yaml b/policyengine_us/parameters/gov/states/wi/dcf/shares/copay/hours/assistance_group_cap.yaml new file mode 100644 index 00000000000..21a3a0ece85 --- /dev/null +++ b/policyengine_us/parameters/gov/states/wi/dcf/shares/copay/hours/assistance_group_cap.yaml @@ -0,0 +1,16 @@ +description: Wisconsin caps the total monthly copayment hours of an assistance group at this amount under the Wisconsin Shares Child Care Subsidy Program. + +# If an assistance group has five children or more, the maximum copayment +# hours are 5 x 152 = 760. +values: + 2026-02-01: 760 + +metadata: + unit: hour + period: month + label: Wisconsin Shares assistance group monthly copayment hours cap + reference: + - title: Wisconsin Shares Handbook (July 2026), Section 18.2 Copayments + href: https://dcf.wisconsin.gov/wisconsin-shares/wisconsin-shares-handbook-july-2026#page=150 + - title: Wisconsin Shares Copayment Schedule, effective February 1, 2026 + href: https://dcf.wisconsin.gov/files/wishares/pdf/wishares-copay-schedule.pdf diff --git a/policyengine_us/parameters/gov/states/wi/dcf/shares/copay/hours/per_child_cap.yaml b/policyengine_us/parameters/gov/states/wi/dcf/shares/copay/hours/per_child_cap.yaml new file mode 100644 index 00000000000..407b45500c3 --- /dev/null +++ b/policyengine_us/parameters/gov/states/wi/dcf/shares/copay/hours/per_child_cap.yaml @@ -0,0 +1,19 @@ +description: Wisconsin caps each child's monthly copayment hours at this amount under the Wisconsin Shares Child Care Subsidy Program. + +# Each child contributes up to 152 hours per provider location to the +# assistance group's copayment hours. Part-time authorizations contribute +# 131 hours (30 weekly hours x 4.348125, rounded up), below this cap; +# full-time authorizations contribute 152 hours (the 153rd subsidized hour +# is not charged a copayment). +values: + 2026-02-01: 152 + +metadata: + unit: hour + period: month + label: Wisconsin Shares per-child monthly copayment hours cap + reference: + - title: Wisconsin Shares Handbook (July 2026), Section 18.2 Copayments + href: https://dcf.wisconsin.gov/wisconsin-shares/wisconsin-shares-handbook-july-2026#page=150 + - title: Wisconsin Shares Copayment Schedule, effective February 1, 2026 + href: https://dcf.wisconsin.gov/files/wishares/pdf/wishares-copay-schedule.pdf diff --git a/policyengine_us/parameters/gov/states/wi/dcf/shares/copay/per_hour/five_or_more_children.yaml b/policyengine_us/parameters/gov/states/wi/dcf/shares/copay/per_hour/five_or_more_children.yaml new file mode 100644 index 00000000000..2e8290762e2 --- /dev/null +++ b/policyengine_us/parameters/gov/states/wi/dcf/shares/copay/per_hour/five_or_more_children.yaml @@ -0,0 +1,106 @@ +description: Wisconsin charges assistance groups with five or more authorized children this hourly copayment, based on income as a share of the federal poverty guideline, under the Wisconsin Shares Child Care Subsidy Program. + +# Copay per hour by the assistance group's income as a share of the federal +# poverty guideline. The schedule floors income to the lower 5% FPL line ("If +# the assistance group's income is between two lines, it uses the lower +# amount"); the 65% to 100% FPL rows are all $0.00 and collapse into the first +# bracket. Thresholds are shifted down by 0.0001 (e.g., 1.05 -> 1.0499) so +# float32 income ratios landing marginally below an exact band edge still map +# into that band. The 200% FPL row equals the 195% row, so income at or above +# 195% FPL keeps the top rate; the exit period adds a separate copayment on +# top (see exit/phase_out_rate.yaml). +brackets: + - threshold: + 2026-02-01: 0 + amount: + 2026-02-01: 0 # At or below 100% FPL + - threshold: + 2026-02-01: 1.0499 + amount: + 2026-02-01: 0.38 # 105% FPL band + - threshold: + 2026-02-01: 1.0999 + amount: + 2026-02-01: 0.4 # 110% FPL band + - threshold: + 2026-02-01: 1.1499 + amount: + 2026-02-01: 0.42 # 115% FPL band + - threshold: + 2026-02-01: 1.1999 + amount: + 2026-02-01: 0.45 # 120% FPL band + - threshold: + 2026-02-01: 1.2499 + amount: + 2026-02-01: 0.48 # 125% FPL band + - threshold: + 2026-02-01: 1.2999 + amount: + 2026-02-01: 0.53 # 130% FPL band + - threshold: + 2026-02-01: 1.3499 + amount: + 2026-02-01: 0.55 # 135% FPL band + - threshold: + 2026-02-01: 1.3999 + amount: + 2026-02-01: 0.57 # 140% FPL band + - threshold: + 2026-02-01: 1.4499 + amount: + 2026-02-01: 0.6 # 145% FPL band + - threshold: + 2026-02-01: 1.4999 + amount: + 2026-02-01: 0.63 # 150% FPL band + - threshold: + 2026-02-01: 1.5499 + amount: + 2026-02-01: 0.67 # 155% FPL band + - threshold: + 2026-02-01: 1.5999 + amount: + 2026-02-01: 0.7 # 160% FPL band + - threshold: + 2026-02-01: 1.6499 + amount: + 2026-02-01: 0.74 # 165% FPL band + - threshold: + 2026-02-01: 1.6999 + amount: + 2026-02-01: 0.77 # 170% FPL band + - threshold: + 2026-02-01: 1.7499 + amount: + 2026-02-01: 0.8 # 175% FPL band + - threshold: + 2026-02-01: 1.7999 + amount: + 2026-02-01: 0.82 # 180% FPL band + - threshold: + 2026-02-01: 1.8499 + amount: + 2026-02-01: 0.84 # 185% FPL band + - threshold: + 2026-02-01: 1.8999 + amount: + 2026-02-01: 0.86 # 190% FPL band + - threshold: + 2026-02-01: 1.9499 + amount: + 2026-02-01: 0.89 # 195% FPL band + +metadata: + type: single_amount + threshold_unit: /1 + amount_unit: currency-USD + period: hour + label: Wisconsin Shares hourly copayment with five or more authorized children + reference: + - title: Wisconsin Shares Copayment Schedule, effective February 1, 2026 + href: https://dcf.wisconsin.gov/files/wishares/pdf/wishares-copay-schedule.pdf + - title: Wisconsin Shares Handbook (July 2026), Section 18.2 Copayments + href: https://dcf.wisconsin.gov/wisconsin-shares/wisconsin-shares-handbook-july-2026#page=150 + - title: Wis. Stat. § 49.155(5)(a) + href: https://docs.legis.wisconsin.gov/statutes/statutes/49/III/155 diff --git a/policyengine_us/parameters/gov/states/wi/dcf/shares/copay/per_hour/four_children.yaml b/policyengine_us/parameters/gov/states/wi/dcf/shares/copay/per_hour/four_children.yaml new file mode 100644 index 00000000000..f23b172bc02 --- /dev/null +++ b/policyengine_us/parameters/gov/states/wi/dcf/shares/copay/per_hour/four_children.yaml @@ -0,0 +1,106 @@ +description: Wisconsin charges assistance groups with four authorized children this hourly copayment, based on income as a share of the federal poverty guideline, under the Wisconsin Shares Child Care Subsidy Program. + +# Copay per hour by the assistance group's income as a share of the federal +# poverty guideline. The schedule floors income to the lower 5% FPL line ("If +# the assistance group's income is between two lines, it uses the lower +# amount"); the 65% to 100% FPL rows are all $0.00 and collapse into the first +# bracket. Thresholds are shifted down by 0.0001 (e.g., 1.05 -> 1.0499) so +# float32 income ratios landing marginally below an exact band edge still map +# into that band. The 200% FPL row equals the 195% row, so income at or above +# 195% FPL keeps the top rate; the exit period adds a separate copayment on +# top (see exit/phase_out_rate.yaml). +brackets: + - threshold: + 2026-02-01: 0 + amount: + 2026-02-01: 0 # At or below 100% FPL + - threshold: + 2026-02-01: 1.0499 + amount: + 2026-02-01: 0.41 # 105% FPL band + - threshold: + 2026-02-01: 1.0999 + amount: + 2026-02-01: 0.43 # 110% FPL band + - threshold: + 2026-02-01: 1.1499 + amount: + 2026-02-01: 0.46 # 115% FPL band + - threshold: + 2026-02-01: 1.1999 + amount: + 2026-02-01: 0.49 # 120% FPL band + - threshold: + 2026-02-01: 1.2499 + amount: + 2026-02-01: 0.53 # 125% FPL band + - threshold: + 2026-02-01: 1.2999 + amount: + 2026-02-01: 0.58 # 130% FPL band + - threshold: + 2026-02-01: 1.3499 + amount: + 2026-02-01: 0.61 # 135% FPL band + - threshold: + 2026-02-01: 1.3999 + amount: + 2026-02-01: 0.63 # 140% FPL band + - threshold: + 2026-02-01: 1.4499 + amount: + 2026-02-01: 0.66 # 145% FPL band + - threshold: + 2026-02-01: 1.4999 + amount: + 2026-02-01: 0.69 # 150% FPL band + - threshold: + 2026-02-01: 1.5499 + amount: + 2026-02-01: 0.73 # 155% FPL band + - threshold: + 2026-02-01: 1.5999 + amount: + 2026-02-01: 0.76 # 160% FPL band + - threshold: + 2026-02-01: 1.6499 + amount: + 2026-02-01: 0.8 # 165% FPL band + - threshold: + 2026-02-01: 1.6999 + amount: + 2026-02-01: 0.84 # 170% FPL band + - threshold: + 2026-02-01: 1.7499 + amount: + 2026-02-01: 0.88 # 175% FPL band + - threshold: + 2026-02-01: 1.7999 + amount: + 2026-02-01: 0.91 # 180% FPL band + - threshold: + 2026-02-01: 1.8499 + amount: + 2026-02-01: 0.93 # 185% FPL band + - threshold: + 2026-02-01: 1.8999 + amount: + 2026-02-01: 0.96 # 190% FPL band + - threshold: + 2026-02-01: 1.9499 + amount: + 2026-02-01: 0.99 # 195% FPL band + +metadata: + type: single_amount + threshold_unit: /1 + amount_unit: currency-USD + period: hour + label: Wisconsin Shares hourly copayment with four authorized children + reference: + - title: Wisconsin Shares Copayment Schedule, effective February 1, 2026 + href: https://dcf.wisconsin.gov/files/wishares/pdf/wishares-copay-schedule.pdf + - title: Wisconsin Shares Handbook (July 2026), Section 18.2 Copayments + href: https://dcf.wisconsin.gov/wisconsin-shares/wisconsin-shares-handbook-july-2026#page=150 + - title: Wis. Stat. § 49.155(5)(a) + href: https://docs.legis.wisconsin.gov/statutes/statutes/49/III/155 diff --git a/policyengine_us/parameters/gov/states/wi/dcf/shares/copay/per_hour/one_child.yaml b/policyengine_us/parameters/gov/states/wi/dcf/shares/copay/per_hour/one_child.yaml new file mode 100644 index 00000000000..d455ba83218 --- /dev/null +++ b/policyengine_us/parameters/gov/states/wi/dcf/shares/copay/per_hour/one_child.yaml @@ -0,0 +1,106 @@ +description: Wisconsin charges assistance groups with one authorized child this hourly copayment, based on income as a share of the federal poverty guideline, under the Wisconsin Shares Child Care Subsidy Program. + +# Copay per hour by the assistance group's income as a share of the federal +# poverty guideline. The schedule floors income to the lower 5% FPL line ("If +# the assistance group's income is between two lines, it uses the lower +# amount"); the 65% to 100% FPL rows are all $0.00 and collapse into the first +# bracket. Thresholds are shifted down by 0.0001 (e.g., 1.05 -> 1.0499) so +# float32 income ratios landing marginally below an exact band edge still map +# into that band. The 200% FPL row equals the 195% row, so income at or above +# 195% FPL keeps the top rate; the exit period adds a separate copayment on +# top (see exit/phase_out_rate.yaml). +brackets: + - threshold: + 2026-02-01: 0 + amount: + 2026-02-01: 0 # At or below 100% FPL + - threshold: + 2026-02-01: 1.0499 + amount: + 2026-02-01: 0.9 # 105% FPL band + - threshold: + 2026-02-01: 1.0999 + amount: + 2026-02-01: 0.96 # 110% FPL band + - threshold: + 2026-02-01: 1.1499 + amount: + 2026-02-01: 1.03 # 115% FPL band + - threshold: + 2026-02-01: 1.1999 + amount: + 2026-02-01: 1.1 # 120% FPL band + - threshold: + 2026-02-01: 1.2499 + amount: + 2026-02-01: 1.22 # 125% FPL band + - threshold: + 2026-02-01: 1.2999 + amount: + 2026-02-01: 1.39 # 130% FPL band + - threshold: + 2026-02-01: 1.3499 + amount: + 2026-02-01: 1.47 # 135% FPL band + - threshold: + 2026-02-01: 1.3999 + amount: + 2026-02-01: 1.52 # 140% FPL band + - threshold: + 2026-02-01: 1.4499 + amount: + 2026-02-01: 1.6 # 145% FPL band + - threshold: + 2026-02-01: 1.4999 + amount: + 2026-02-01: 1.65 # 150% FPL band + - threshold: + 2026-02-01: 1.5499 + amount: + 2026-02-01: 1.73 # 155% FPL band + - threshold: + 2026-02-01: 1.5999 + amount: + 2026-02-01: 1.79 # 160% FPL band + - threshold: + 2026-02-01: 1.6499 + amount: + 2026-02-01: 1.85 # 165% FPL band + - threshold: + 2026-02-01: 1.6999 + amount: + 2026-02-01: 1.9 # 170% FPL band + - threshold: + 2026-02-01: 1.7499 + amount: + 2026-02-01: 1.97 # 175% FPL band + - threshold: + 2026-02-01: 1.7999 + amount: + 2026-02-01: 2.06 # 180% FPL band + - threshold: + 2026-02-01: 1.8499 + amount: + 2026-02-01: 2.15 # 185% FPL band + - threshold: + 2026-02-01: 1.8999 + amount: + 2026-02-01: 2.24 # 190% FPL band + - threshold: + 2026-02-01: 1.9499 + amount: + 2026-02-01: 2.34 # 195% FPL band + +metadata: + type: single_amount + threshold_unit: /1 + amount_unit: currency-USD + period: hour + label: Wisconsin Shares hourly copayment with one authorized child + reference: + - title: Wisconsin Shares Copayment Schedule, effective February 1, 2026 + href: https://dcf.wisconsin.gov/files/wishares/pdf/wishares-copay-schedule.pdf + - title: Wisconsin Shares Handbook (July 2026), Section 18.2 Copayments + href: https://dcf.wisconsin.gov/wisconsin-shares/wisconsin-shares-handbook-july-2026#page=150 + - title: Wis. Stat. § 49.155(5)(a) + href: https://docs.legis.wisconsin.gov/statutes/statutes/49/III/155 diff --git a/policyengine_us/parameters/gov/states/wi/dcf/shares/copay/per_hour/three_children.yaml b/policyengine_us/parameters/gov/states/wi/dcf/shares/copay/per_hour/three_children.yaml new file mode 100644 index 00000000000..03e262ad1dc --- /dev/null +++ b/policyengine_us/parameters/gov/states/wi/dcf/shares/copay/per_hour/three_children.yaml @@ -0,0 +1,106 @@ +description: Wisconsin charges assistance groups with three authorized children this hourly copayment, based on income as a share of the federal poverty guideline, under the Wisconsin Shares Child Care Subsidy Program. + +# Copay per hour by the assistance group's income as a share of the federal +# poverty guideline. The schedule floors income to the lower 5% FPL line ("If +# the assistance group's income is between two lines, it uses the lower +# amount"); the 65% to 100% FPL rows are all $0.00 and collapse into the first +# bracket. Thresholds are shifted down by 0.0001 (e.g., 1.05 -> 1.0499) so +# float32 income ratios landing marginally below an exact band edge still map +# into that band. The 200% FPL row equals the 195% row, so income at or above +# 195% FPL keeps the top rate; the exit period adds a separate copayment on +# top (see exit/phase_out_rate.yaml). +brackets: + - threshold: + 2026-02-01: 0 + amount: + 2026-02-01: 0 # At or below 100% FPL + - threshold: + 2026-02-01: 1.0499 + amount: + 2026-02-01: 0.46 # 105% FPL band + - threshold: + 2026-02-01: 1.0999 + amount: + 2026-02-01: 0.49 # 110% FPL band + - threshold: + 2026-02-01: 1.1499 + amount: + 2026-02-01: 0.53 # 115% FPL band + - threshold: + 2026-02-01: 1.1999 + amount: + 2026-02-01: 0.56 # 120% FPL band + - threshold: + 2026-02-01: 1.2499 + amount: + 2026-02-01: 0.61 # 125% FPL band + - threshold: + 2026-02-01: 1.2999 + amount: + 2026-02-01: 0.67 # 130% FPL band + - threshold: + 2026-02-01: 1.3499 + amount: + 2026-02-01: 0.71 # 135% FPL band + - threshold: + 2026-02-01: 1.3999 + amount: + 2026-02-01: 0.73 # 140% FPL band + - threshold: + 2026-02-01: 1.4499 + amount: + 2026-02-01: 0.77 # 145% FPL band + - threshold: + 2026-02-01: 1.4999 + amount: + 2026-02-01: 0.79 # 150% FPL band + - threshold: + 2026-02-01: 1.5499 + amount: + 2026-02-01: 0.83 # 155% FPL band + - threshold: + 2026-02-01: 1.5999 + amount: + 2026-02-01: 0.87 # 160% FPL band + - threshold: + 2026-02-01: 1.6499 + amount: + 2026-02-01: 0.91 # 165% FPL band + - threshold: + 2026-02-01: 1.6999 + amount: + 2026-02-01: 0.96 # 170% FPL band + - threshold: + 2026-02-01: 1.7499 + amount: + 2026-02-01: 1 # 175% FPL band + - threshold: + 2026-02-01: 1.7999 + amount: + 2026-02-01: 1.05 # 180% FPL band + - threshold: + 2026-02-01: 1.8499 + amount: + 2026-02-01: 1.08 # 185% FPL band + - threshold: + 2026-02-01: 1.8999 + amount: + 2026-02-01: 1.12 # 190% FPL band + - threshold: + 2026-02-01: 1.9499 + amount: + 2026-02-01: 1.14 # 195% FPL band + +metadata: + type: single_amount + threshold_unit: /1 + amount_unit: currency-USD + period: hour + label: Wisconsin Shares hourly copayment with three authorized children + reference: + - title: Wisconsin Shares Copayment Schedule, effective February 1, 2026 + href: https://dcf.wisconsin.gov/files/wishares/pdf/wishares-copay-schedule.pdf + - title: Wisconsin Shares Handbook (July 2026), Section 18.2 Copayments + href: https://dcf.wisconsin.gov/wisconsin-shares/wisconsin-shares-handbook-july-2026#page=150 + - title: Wis. Stat. § 49.155(5)(a) + href: https://docs.legis.wisconsin.gov/statutes/statutes/49/III/155 diff --git a/policyengine_us/parameters/gov/states/wi/dcf/shares/copay/per_hour/two_children.yaml b/policyengine_us/parameters/gov/states/wi/dcf/shares/copay/per_hour/two_children.yaml new file mode 100644 index 00000000000..e4d173bd589 --- /dev/null +++ b/policyengine_us/parameters/gov/states/wi/dcf/shares/copay/per_hour/two_children.yaml @@ -0,0 +1,106 @@ +description: Wisconsin charges assistance groups with two authorized children this hourly copayment, based on income as a share of the federal poverty guideline, under the Wisconsin Shares Child Care Subsidy Program. + +# Copay per hour by the assistance group's income as a share of the federal +# poverty guideline. The schedule floors income to the lower 5% FPL line ("If +# the assistance group's income is between two lines, it uses the lower +# amount"); the 65% to 100% FPL rows are all $0.00 and collapse into the first +# bracket. Thresholds are shifted down by 0.0001 (e.g., 1.05 -> 1.0499) so +# float32 income ratios landing marginally below an exact band edge still map +# into that band. The 200% FPL row equals the 195% row, so income at or above +# 195% FPL keeps the top rate; the exit period adds a separate copayment on +# top (see exit/phase_out_rate.yaml). +brackets: + - threshold: + 2026-02-01: 0 + amount: + 2026-02-01: 0 # At or below 100% FPL + - threshold: + 2026-02-01: 1.0499 + amount: + 2026-02-01: 0.57 # 105% FPL band + - threshold: + 2026-02-01: 1.0999 + amount: + 2026-02-01: 0.61 # 110% FPL band + - threshold: + 2026-02-01: 1.1499 + amount: + 2026-02-01: 0.65 # 115% FPL band + - threshold: + 2026-02-01: 1.1999 + amount: + 2026-02-01: 0.69 # 120% FPL band + - threshold: + 2026-02-01: 1.2499 + amount: + 2026-02-01: 0.76 # 125% FPL band + - threshold: + 2026-02-01: 1.2999 + amount: + 2026-02-01: 0.85 # 130% FPL band + - threshold: + 2026-02-01: 1.3499 + amount: + 2026-02-01: 0.9 # 135% FPL band + - threshold: + 2026-02-01: 1.3999 + amount: + 2026-02-01: 0.93 # 140% FPL band + - threshold: + 2026-02-01: 1.4499 + amount: + 2026-02-01: 0.98 # 145% FPL band + - threshold: + 2026-02-01: 1.4999 + amount: + 2026-02-01: 1 # 150% FPL band + - threshold: + 2026-02-01: 1.5499 + amount: + 2026-02-01: 1.05 # 155% FPL band + - threshold: + 2026-02-01: 1.5999 + amount: + 2026-02-01: 1.09 # 160% FPL band + - threshold: + 2026-02-01: 1.6499 + amount: + 2026-02-01: 1.13 # 165% FPL band + - threshold: + 2026-02-01: 1.6999 + amount: + 2026-02-01: 1.19 # 170% FPL band + - threshold: + 2026-02-01: 1.7499 + amount: + 2026-02-01: 1.24 # 175% FPL band + - threshold: + 2026-02-01: 1.7999 + amount: + 2026-02-01: 1.3 # 180% FPL band + - threshold: + 2026-02-01: 1.8499 + amount: + 2026-02-01: 1.36 # 185% FPL band + - threshold: + 2026-02-01: 1.8999 + amount: + 2026-02-01: 1.42 # 190% FPL band + - threshold: + 2026-02-01: 1.9499 + amount: + 2026-02-01: 1.46 # 195% FPL band + +metadata: + type: single_amount + threshold_unit: /1 + amount_unit: currency-USD + period: hour + label: Wisconsin Shares hourly copayment with two authorized children + reference: + - title: Wisconsin Shares Copayment Schedule, effective February 1, 2026 + href: https://dcf.wisconsin.gov/files/wishares/pdf/wishares-copay-schedule.pdf + - title: Wisconsin Shares Handbook (July 2026), Section 18.2 Copayments + href: https://dcf.wisconsin.gov/wisconsin-shares/wisconsin-shares-handbook-july-2026#page=150 + - title: Wis. Stat. § 49.155(5)(a) + href: https://docs.legis.wisconsin.gov/statutes/statutes/49/III/155 diff --git a/policyengine_us/parameters/gov/states/wi/dcf/shares/eligibility/asset_limit.yaml b/policyengine_us/parameters/gov/states/wi/dcf/shares/eligibility/asset_limit.yaml new file mode 100644 index 00000000000..8247ff6ea4a --- /dev/null +++ b/policyengine_us/parameters/gov/states/wi/dcf/shares/eligibility/asset_limit.yaml @@ -0,0 +1,19 @@ +description: Wisconsin limits the liquid assets of an assistance group to this amount under the Wisconsin Shares Child Care Subsidy Program. + +# Only liquid assets (cash, checking, savings, money market accounts, and +# credit union share accounts) are included in the asset test; the amount is +# self-declared. The statutory home value (200% of the statewide median, +# § 49.155(1m)(cr)1.) and vehicle equity ($20,000, § 49.155(1m)(cr)2.) limits +# are not part of the handbook's operational asset test. +values: + 2025-10-01: 25_000 + +metadata: + unit: currency-USD + period: year + label: Wisconsin Shares liquid asset limit + reference: + - title: Wisconsin Shares Handbook (July 2026), Section 6.5 Liquid Asset Limit + href: https://dcf.wisconsin.gov/wisconsin-shares/wisconsin-shares-handbook-july-2026#page=64 + - title: Wis. Stat. § 49.155(1m)(cm) + href: https://docs.legis.wisconsin.gov/statutes/statutes/49/III/155 diff --git a/policyengine_us/parameters/gov/states/wi/dcf/shares/eligibility/child_age_limit.yaml b/policyengine_us/parameters/gov/states/wi/dcf/shares/eligibility/child_age_limit.yaml new file mode 100644 index 00000000000..368c94cfdc1 --- /dev/null +++ b/policyengine_us/parameters/gov/states/wi/dcf/shares/eligibility/child_age_limit.yaml @@ -0,0 +1,15 @@ +description: Wisconsin limits eligibility to children below this age under the Wisconsin Shares Child Care Subsidy Program. + +# Children are eligible if under age 13, "which includes 12 years, 11 months". +values: + 2025-10-01: 13 + +metadata: + unit: year + period: year + label: Wisconsin Shares child age limit + reference: + - title: Wisconsin Shares Handbook (July 2026), Section 4.3 Ages of Eligible Children + href: https://dcf.wisconsin.gov/wisconsin-shares/wisconsin-shares-handbook-july-2026#page=21 + - title: Wis. Stat. § 49.155(1m)(a) + href: https://docs.legis.wisconsin.gov/statutes/statutes/49/III/155 diff --git a/policyengine_us/parameters/gov/states/wi/dcf/shares/eligibility/disabled_child_age_limit.yaml b/policyengine_us/parameters/gov/states/wi/dcf/shares/eligibility/disabled_child_age_limit.yaml new file mode 100644 index 00000000000..7815c0a3d07 --- /dev/null +++ b/policyengine_us/parameters/gov/states/wi/dcf/shares/eligibility/disabled_child_age_limit.yaml @@ -0,0 +1,16 @@ +description: Wisconsin limits eligibility to disabled children below this age under the Wisconsin Shares Child Care Subsidy Program. + +# Children under age 19 are eligible if they have a verified disability and are +# not physically or mentally capable of caring for themselves. +values: + 2025-10-01: 19 + +metadata: + unit: year + period: year + label: Wisconsin Shares disabled child age limit + reference: + - title: Wisconsin Shares Handbook (July 2026), Section 4.3 Ages of Eligible Children + href: https://dcf.wisconsin.gov/wisconsin-shares/wisconsin-shares-handbook-july-2026#page=21 + - title: Wis. Stat. § 49.155(1m)(a) + href: https://docs.legis.wisconsin.gov/statutes/statutes/49/III/155 diff --git a/policyengine_us/parameters/gov/states/wi/dcf/shares/hours/above_full_time_cap.yaml b/policyengine_us/parameters/gov/states/wi/dcf/shares/hours/above_full_time_cap.yaml new file mode 100644 index 00000000000..8985d84f469 --- /dev/null +++ b/policyengine_us/parameters/gov/states/wi/dcf/shares/hours/above_full_time_cap.yaml @@ -0,0 +1,16 @@ +description: Wisconsin caps the weekly hours covered by the above-full-time add-on at this amount under the Wisconsin Shares Child Care Subsidy Program. + +# The above-full-time add-on covers average weekly hours above 50 and up to +# 75 per week. +values: + 2025-10-01: 75 + +metadata: + unit: hour + period: week + label: Wisconsin Shares above-full-time weekly hours cap + reference: + - title: Wisconsin Shares Handbook (July 2026), Section 16.1.1 Authorization Hours + href: https://dcf.wisconsin.gov/wisconsin-shares/wisconsin-shares-handbook-july-2026#page=111 + - title: Wisconsin Shares Handbook (July 2026), Section 18.5 Subsidy Calculation + href: https://dcf.wisconsin.gov/wisconsin-shares/wisconsin-shares-handbook-july-2026#page=156 diff --git a/policyengine_us/parameters/gov/states/wi/dcf/shares/hours/above_full_time_threshold.yaml b/policyengine_us/parameters/gov/states/wi/dcf/shares/hours/above_full_time_threshold.yaml new file mode 100644 index 00000000000..66fd4ca5ea0 --- /dev/null +++ b/policyengine_us/parameters/gov/states/wi/dcf/shares/hours/above_full_time_threshold.yaml @@ -0,0 +1,17 @@ +description: Wisconsin provides an above-full-time weekly add-on for child care need exceeding this many weekly hours under the Wisconsin Shares Child Care Subsidy Program. + +# Parents with a child care need of more than 50 weekly hours receive the +# full-time subsidy plus a weekly add-on for the hours above 50 (up to 75), +# converted to a monthly amount and added after the capped-subsidy comparison. +values: + 2025-10-01: 50 + +metadata: + unit: hour + period: week + label: Wisconsin Shares above-full-time weekly hours threshold + reference: + - title: Wisconsin Shares Handbook (July 2026), Section 16.1.1 Authorization Hours + href: https://dcf.wisconsin.gov/wisconsin-shares/wisconsin-shares-handbook-july-2026#page=111 + - title: Wisconsin Shares Handbook (July 2026), Section 18.5 Subsidy Calculation + href: https://dcf.wisconsin.gov/wisconsin-shares/wisconsin-shares-handbook-july-2026#page=156 diff --git a/policyengine_us/parameters/gov/states/wi/dcf/shares/hours/full_time_weekly_conversion.yaml b/policyengine_us/parameters/gov/states/wi/dcf/shares/hours/full_time_weekly_conversion.yaml new file mode 100644 index 00000000000..9e6ca8b4b46 --- /dev/null +++ b/policyengine_us/parameters/gov/states/wi/dcf/shares/hours/full_time_weekly_conversion.yaml @@ -0,0 +1,17 @@ +description: Wisconsin converts full-time authorizations to this many weekly hours when calculating the monthly subsidy under the Wisconsin Shares Child Care Subsidy Program. + +# The benefit calculation uses 35 weekly hours (the full-time cap) whenever +# the authorization is full time: 35 x 4.348125 weeks per month = 152.18, +# rounded up to 153 monthly subsidized hours. +values: + 2025-10-01: 35 + +metadata: + unit: hour + period: week + label: Wisconsin Shares full-time weekly hours conversion + reference: + - title: Wisconsin Shares Handbook (July 2026), Section 18.5 Subsidy Calculation + href: https://dcf.wisconsin.gov/wisconsin-shares/wisconsin-shares-handbook-july-2026#page=155 + - title: Wisconsin Shares Handbook (July 2026), Appendix II Copayment and Subsidy Calculation Examples + href: https://dcf.wisconsin.gov/wisconsin-shares/wisconsin-shares-handbook-july-2026#page=173 diff --git a/policyengine_us/parameters/gov/states/wi/dcf/shares/hours/part_time_max_weekly_hours.yaml b/policyengine_us/parameters/gov/states/wi/dcf/shares/hours/part_time_max_weekly_hours.yaml new file mode 100644 index 00000000000..6f5816d6004 --- /dev/null +++ b/policyengine_us/parameters/gov/states/wi/dcf/shares/hours/part_time_max_weekly_hours.yaml @@ -0,0 +1,17 @@ +description: Wisconsin classifies authorizations of at most this many weekly hours as part time under the Wisconsin Shares Child Care Subsidy Program. + +# "Authorizations of 20 weekly hours or less are part-time authorizations; +# full-time authorizations are more than 20 weekly hours." The boundary is +# inclusive on the part-time side (exactly 20 hours is part time). +values: + 2025-10-01: 20 + +metadata: + unit: hour + period: week + label: Wisconsin Shares part-time maximum weekly hours + reference: + - title: Wisconsin Shares Handbook (July 2026), Section 16.1.1 Authorization Hours + href: https://dcf.wisconsin.gov/wisconsin-shares/wisconsin-shares-handbook-july-2026#page=111 + - title: Wisconsin Shares Handbook (July 2026), Section 18.5 Subsidy Calculation + href: https://dcf.wisconsin.gov/wisconsin-shares/wisconsin-shares-handbook-july-2026#page=155 diff --git a/policyengine_us/parameters/gov/states/wi/dcf/shares/hours/part_time_weekly_conversion.yaml b/policyengine_us/parameters/gov/states/wi/dcf/shares/hours/part_time_weekly_conversion.yaml new file mode 100644 index 00000000000..457096d468d --- /dev/null +++ b/policyengine_us/parameters/gov/states/wi/dcf/shares/hours/part_time_weekly_conversion.yaml @@ -0,0 +1,17 @@ +description: Wisconsin converts part-time authorizations to this many weekly hours when calculating the monthly subsidy under the Wisconsin Shares Child Care Subsidy Program. + +# The benefit calculation uses 30 weekly hours (not the child's actual +# authorized hours) whenever the authorization is part time: 30 x 4.348125 +# weeks per month = 130.44, rounded up to 131 monthly subsidized hours. +values: + 2025-10-01: 30 + +metadata: + unit: hour + period: week + label: Wisconsin Shares part-time weekly hours conversion + reference: + - title: Wisconsin Shares Handbook (July 2026), Section 18.5 Subsidy Calculation + href: https://dcf.wisconsin.gov/wisconsin-shares/wisconsin-shares-handbook-july-2026#page=155 + - title: Wisconsin Shares Handbook (July 2026), Appendix II Copayment and Subsidy Calculation Examples + href: https://dcf.wisconsin.gov/wisconsin-shares/wisconsin-shares-handbook-july-2026#page=173 diff --git a/policyengine_us/parameters/gov/states/wi/dcf/shares/hours/weeks_per_month.yaml b/policyengine_us/parameters/gov/states/wi/dcf/shares/hours/weeks_per_month.yaml new file mode 100644 index 00000000000..cafa9668927 --- /dev/null +++ b/policyengine_us/parameters/gov/states/wi/dcf/shares/hours/weeks_per_month.yaml @@ -0,0 +1,17 @@ +description: Wisconsin multiplies weekly authorized hours by this factor to determine monthly hours under the Wisconsin Shares Child Care Subsidy Program. + +# The handbook's exact conversion factor: "The weekly approved authorization +# hours are multiplied by 4.348125 to determine the final monthly authorized +# hours." Monthly hours are rounded up to the nearest whole hour. +values: + 2025-10-01: 4.348125 + +metadata: + unit: /1 + period: year + label: Wisconsin Shares weeks per month conversion factor + reference: + - title: Wisconsin Shares Handbook (July 2026), Section 16.1.1 Authorization Hours + href: https://dcf.wisconsin.gov/wisconsin-shares/wisconsin-shares-handbook-july-2026#page=111 + - title: Wisconsin Shares Handbook (July 2026), Appendix II Copayment and Subsidy Calculation Examples + href: https://dcf.wisconsin.gov/wisconsin-shares/wisconsin-shares-handbook-july-2026#page=173 diff --git a/policyengine_us/parameters/gov/states/wi/dcf/shares/income/child_support_disregard_cap.yaml b/policyengine_us/parameters/gov/states/wi/dcf/shares/income/child_support_disregard_cap.yaml new file mode 100644 index 00000000000..08fe9389833 --- /dev/null +++ b/policyengine_us/parameters/gov/states/wi/dcf/shares/income/child_support_disregard_cap.yaml @@ -0,0 +1,17 @@ +description: Wisconsin disregards court-ordered child and family support payments when the assistance group's total monthly amount is at or below this cap, and counts the entire amount when it exceeds the cap, under the Wisconsin Shares Child Care Subsidy Program. + +# This is a cliff, not a deduction: support of $1,250 or less per month is +# fully disregarded; if the total exceeds $1,250 per month, the entire amount +# (not just the excess) is counted. +values: + 2025-10-01: 1_250 + +metadata: + unit: currency-USD + period: month + label: Wisconsin Shares child support disregard cap + reference: + - title: Wisconsin Shares Handbook (July 2026), Section 6.3 Disregarded Income + href: https://dcf.wisconsin.gov/wisconsin-shares/wisconsin-shares-handbook-july-2026#page=59 + - title: Wisconsin Shares Handbook (July 2026), Section 6.2 Counted Income + href: https://dcf.wisconsin.gov/wisconsin-shares/wisconsin-shares-handbook-july-2026#page=59 diff --git a/policyengine_us/parameters/gov/states/wi/dcf/shares/income/limit/initial_fpg_rate.yaml b/policyengine_us/parameters/gov/states/wi/dcf/shares/income/limit/initial_fpg_rate.yaml new file mode 100644 index 00000000000..5eac0a2021d --- /dev/null +++ b/policyengine_us/parameters/gov/states/wi/dcf/shares/income/limit/initial_fpg_rate.yaml @@ -0,0 +1,20 @@ +description: Wisconsin limits initial eligibility to assistance groups with gross income at or below this share of the federal poverty guideline under the Wisconsin Shares Child Care Subsidy Program. + +# Applies at application and to assistance groups that have been closed for +# more than one calendar month. The handbook publishes the corresponding +# dollar table (effective 2/1/2026); the underlying limit is 200% of the +# federal poverty level. +values: + 2025-10-01: 2 + +metadata: + unit: /1 + period: year + label: Wisconsin Shares initial income limit as a share of the federal poverty guideline + reference: + - title: Wisconsin Shares Handbook (July 2026), Section 6.1.1 Application Income Limit + href: https://dcf.wisconsin.gov/wisconsin-shares/wisconsin-shares-handbook-july-2026#page=57 + - title: Wis. Stat. § 49.155(1m)(c)1. + href: https://docs.legis.wisconsin.gov/statutes/statutes/49/III/155 + - title: Legislative Fiscal Bureau 2025-27 Budget Paper 211, Wisconsin Shares Child Care Subsidy Program + href: https://docs.legis.wisconsin.gov/misc/lfb/budget/2025_27_biennial_budget/302_budget_papers/211_children_and_families_tanf_and_economic_support_wisconsin_shares_child_care_subsidy_program.pdf#page=2 diff --git a/policyengine_us/parameters/gov/states/wi/dcf/shares/income/limit/ongoing_smi_rate.yaml b/policyengine_us/parameters/gov/states/wi/dcf/shares/income/limit/ongoing_smi_rate.yaml new file mode 100644 index 00000000000..18e96ac635c --- /dev/null +++ b/policyengine_us/parameters/gov/states/wi/dcf/shares/income/limit/ongoing_smi_rate.yaml @@ -0,0 +1,18 @@ +description: Wisconsin limits ongoing eligibility to assistance groups with gross income at or below this share of the state median income under the Wisconsin Shares Child Care Subsidy Program. + +# Enrolled assistance groups above 200% of the federal poverty level remain +# eligible until income exceeds 85% of the state median income for the +# assistance group size (or the copayment reduces the subsidy to zero). The +# handbook publishes the corresponding dollar table (effective 3/1/2026). +values: + 2025-10-01: 0.85 + +metadata: + unit: /1 + period: year + label: Wisconsin Shares ongoing income limit as a share of state median income + reference: + - title: Wisconsin Shares Handbook (July 2026), Section 6.1.2 Ongoing Eligibility Income Limit + href: https://dcf.wisconsin.gov/wisconsin-shares/wisconsin-shares-handbook-july-2026#page=58 + - title: Wis. Stat. § 49.155(1m)(c)1d.b. + href: https://docs.legis.wisconsin.gov/statutes/statutes/49/III/155 diff --git a/policyengine_us/parameters/gov/states/wi/dcf/shares/income/minor_income_disregard_age.yaml b/policyengine_us/parameters/gov/states/wi/dcf/shares/income/minor_income_disregard_age.yaml new file mode 100644 index 00000000000..c55232b8496 --- /dev/null +++ b/policyengine_us/parameters/gov/states/wi/dcf/shares/income/minor_income_disregard_age.yaml @@ -0,0 +1,17 @@ +description: Wisconsin disregards the earned income and Supplemental Security Income of dependents below this age under the Wisconsin Shares Child Care Subsidy Program. + +# The handbook disregards "Earned Income and Supplemental Security Income +# (SSI) payments of Minor Dependents" without defining "minor"; Wisconsin's +# age of majority is 18 (Wis. Stat. § 990.01(20)). +values: + 2025-10-01: 18 + +metadata: + unit: year + period: year + label: Wisconsin Shares minor dependent income disregard age + reference: + - title: Wisconsin Shares Handbook (July 2026), Section 6.3 Disregarded Income + href: https://dcf.wisconsin.gov/wisconsin-shares/wisconsin-shares-handbook-july-2026#page=59 + - title: Wis. Stat. § 990.01(20) + href: https://docs.legis.wisconsin.gov/statutes/statutes/990/01 diff --git a/policyengine_us/parameters/gov/states/wi/dcf/shares/income/sources.yaml b/policyengine_us/parameters/gov/states/wi/dcf/shares/income/sources.yaml new file mode 100644 index 00000000000..1034aa7986a --- /dev/null +++ b/policyengine_us/parameters/gov/states/wi/dcf/shares/income/sources.yaml @@ -0,0 +1,65 @@ +description: Wisconsin counts income from these sources under the Wisconsin Shares Child Care Subsidy Program. + +values: + 2025-10-01: + # Earned income + - employment_income + # Net self-employment income reported to the IRS; the handbook's add-backs + # (depreciation, personal business expenses, personal transportation, + # capital equipment purchases, and loan principal payments) have no + # PolicyEngine inputs (Sections 6.2 and 6.4.4). + - self_employment_income + # Unearned income + - dividend_income + # interest_income is an umbrella that already adds taxable_interest_income + # and tax_exempt_interest_income. + - interest_income + # Net rental income and royalties. + - rental_income + # social_security is an umbrella that already includes the old age, + # survivorship, disability, and dependents components. + - social_security + # Pensions and annuities, including veteran pensions. + - pension_income + - unemployment_compensation + - workers_compensation + # Alimony and other maintenance payments. + - alimony_income + - veterans_benefits + # Capital gains income from selling securities and other property. + - capital_gains + + # Handled at the formula level (not listed here): + # - Supplemental Security Income of adults in the assistance group is + # counted; SSI of minor dependents is disregarded (Section 6.3). + # - Child or family support is counted only if the assistance group's total + # exceeds $1,250 per month, in which case the entire amount counts + # (see child_support_disregard_cap.yaml). + # - Earned income of minor dependents is disregarded (Section 6.3). + # + # No PolicyEngine variable exists for these counted sources: + # - Estate and trust income + # - Student financial aid not used for tuition and books + # + # Disregarded by Section 6.3 (deliberately not listed): + # - Wisconsin Works (W-2) payments (CSJ, W-2 T, CMC, ARP, TSP, CMF+); + # also avoids the child care to TANF circular dependency + # - Emergency Assistance and Wisconsin Shares subsidies + # - Foster care, Kinship Care, subsidized guardianship, and adoption + # assistance payments + # - State and federal tax refunds + # - Educational aid, and scholarships or grants used for tuition and books + # - Work study income + # - Loans, reimbursements, gifts, and earmarked funds + # - Refugee Cash Assistance + # - The wage subsidy portion of TEMP/TMJ/TJ placements + +metadata: + unit: list + period: year + label: Wisconsin Shares countable income sources + reference: + - title: Wisconsin Shares Handbook (July 2026), Section 6.2 Counted Income (pp. 58-59) + href: https://dcf.wisconsin.gov/wisconsin-shares/wisconsin-shares-handbook-july-2026#page=58 + - title: Wisconsin Shares Handbook (July 2026), Section 6.3 Disregarded Income + href: https://dcf.wisconsin.gov/wisconsin-shares/wisconsin-shares-handbook-july-2026#page=59 diff --git a/policyengine_us/parameters/gov/states/wi/dcf/shares/rates/certified_licensed_rate_ratio.yaml b/policyengine_us/parameters/gov/states/wi/dcf/shares/rates/certified_licensed_rate_ratio.yaml new file mode 100644 index 00000000000..6fdd360dae2 --- /dev/null +++ b/policyengine_us/parameters/gov/states/wi/dcf/shares/rates/certified_licensed_rate_ratio.yaml @@ -0,0 +1,25 @@ +description: Wisconsin sets the hourly maximum rate for certified child care providers at this share of the licensed family hourly maximum under the Wisconsin Shares Child Care Subsidy Program. + +# "Hourly maximums for regularly and provisionally certified providers are set +# at 90% of the licensed family hourly maximum." The result is rounded up to +# the cent (verified against every certified cell of the statewide table, +# e.g., 0.9 x $7.86 = $7.074, published as $7.08). Certified providers have no +# monthly maximum of their own; monthly subsidy payments are capped at the +# licensed family monthly maximum. The statewide table's Certified column +# merges regularly and provisionally certified providers. The statute caps +# certified rates at 90% of the licensed rates; the published tables apply +# exactly 90%. +values: + 2025-10-01: 0.9 + +metadata: + unit: /1 + period: year + label: Wisconsin Shares certified provider rate ratio + reference: + - title: Wisconsin Shares Handbook (July 2026), Section 18.5.1 Subsidy Maximum Rates + href: https://dcf.wisconsin.gov/wisconsin-shares/wisconsin-shares-handbook-july-2026#page=156 + - title: Wis. Stat. § 49.155(6)(b)-(c) + href: https://docs.legis.wisconsin.gov/statutes/statutes/49/III/155 + - title: DCF 201 Child Care Subsidy Payments and Provider Fees rulemaking (SS 002-23) + href: https://dcf.wisconsin.gov/files/cs/guidance-documents/pdf/dcf-201-child-care-subsidy-payments-provider-fees.pdf#page=2 diff --git a/policyengine_us/parameters/gov/states/wi/dcf/shares/rates/licensed_family/full_time_monthly.yaml b/policyengine_us/parameters/gov/states/wi/dcf/shares/rates/licensed_family/full_time_monthly.yaml new file mode 100644 index 00000000000..2b21f233550 --- /dev/null +++ b/policyengine_us/parameters/gov/states/wi/dcf/shares/rates/licensed_family/full_time_monthly.yaml @@ -0,0 +1,672 @@ +description: Wisconsin caps the monthly subsidy for full-time licensed family child care at these amounts by county and child age group under the Wisconsin Shares Child Care Subsidy Program. + +# Statewide table effective 10/1/2025. Full-time monthly maximums are +# independent table cells (a weekly rate x 4.348125 weeks per month), not a +# fixed multiple of the hourly maximum, so they are transcribed per cell. +# Certified providers have no monthly maximum of their own; their monthly +# payments are capped at these licensed family monthly maximums. +# Tribal-agency rows of the table are not transcribed (PolicyEngine has no +# tribal geography). +metadata: + unit: currency-USD + period: month + label: Wisconsin Shares licensed family full-time monthly maximum rate + breakdown: + - county + - wi_shares_age_group + reference: + - title: 2025 Wisconsin Shares Child Care Subsidy County and Tribal Maximum Rates - Statewide, effective 10/1/2025 (pp. 26-40) + href: https://dcf.wisconsin.gov/files/wishares/pdf/max-rates-statewide.pdf#page=26 + - title: Wisconsin Shares Handbook (July 2026), Section 18.5.1 Subsidy Maximum Rates + href: https://dcf.wisconsin.gov/wisconsin-shares/wisconsin-shares-handbook-july-2026#page=156 + - title: Wis. Stat. § 49.155(6) + href: https://docs.legis.wisconsin.gov/statutes/statutes/49/III/155 + +ADAMS_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 1195.74 + AGE_2_THROUGH_3: + 2025-10-01: 1087.04 + AGE_4_THROUGH_5: + 2025-10-01: 1087.04 + AGE_6_AND_OLDER: + 2025-10-01: 1087.04 +ASHLAND_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 826.15 + AGE_2_THROUGH_3: + 2025-10-01: 739.19 + AGE_4_THROUGH_5: + 2025-10-01: 673.96 + AGE_6_AND_OLDER: + 2025-10-01: 673.96 +BARRON_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 847.89 + AGE_2_THROUGH_3: + 2025-10-01: 739.19 + AGE_4_THROUGH_5: + 2025-10-01: 739.19 + AGE_6_AND_OLDER: + 2025-10-01: 739.19 +BAYFIELD_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 978.33 + AGE_2_THROUGH_3: + 2025-10-01: 913.11 + AGE_4_THROUGH_5: + 2025-10-01: 847.89 + AGE_6_AND_OLDER: + 2025-10-01: 804.41 +BROWN_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 1195.74 + AGE_2_THROUGH_3: + 2025-10-01: 1087.04 + AGE_4_THROUGH_5: + 2025-10-01: 1087.04 + AGE_6_AND_OLDER: + 2025-10-01: 869.63 +BUFFALO_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 847.89 + AGE_2_THROUGH_3: + 2025-10-01: 773.97 + AGE_4_THROUGH_5: + 2025-10-01: 773.97 + AGE_6_AND_OLDER: + 2025-10-01: 652.22 +BURNETT_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 1087.04 + AGE_2_THROUGH_3: + 2025-10-01: 978.33 + AGE_4_THROUGH_5: + 2025-10-01: 869.63 + AGE_6_AND_OLDER: + 2025-10-01: 869.63 +CALUMET_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 1087.04 + AGE_2_THROUGH_3: + 2025-10-01: 956.59 + AGE_4_THROUGH_5: + 2025-10-01: 913.11 + AGE_6_AND_OLDER: + 2025-10-01: 869.63 +CHIPPEWA_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 869.63 + AGE_2_THROUGH_3: + 2025-10-01: 869.63 + AGE_4_THROUGH_5: + 2025-10-01: 869.63 + AGE_6_AND_OLDER: + 2025-10-01: 869.63 +CLARK_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 826.15 + AGE_2_THROUGH_3: + 2025-10-01: 782.67 + AGE_4_THROUGH_5: + 2025-10-01: 782.67 + AGE_6_AND_OLDER: + 2025-10-01: 652.22 +COLUMBIA_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 1087.04 + AGE_2_THROUGH_3: + 2025-10-01: 1087.04 + AGE_4_THROUGH_5: + 2025-10-01: 978.33 + AGE_6_AND_OLDER: + 2025-10-01: 978.33 +CRAWFORD_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 1087.04 + AGE_2_THROUGH_3: + 2025-10-01: 978.33 + AGE_4_THROUGH_5: + 2025-10-01: 869.63 + AGE_6_AND_OLDER: + 2025-10-01: 869.63 +DANE_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 1521.85 + AGE_2_THROUGH_3: + 2025-10-01: 1456.63 + AGE_4_THROUGH_5: + 2025-10-01: 1413.15 + AGE_6_AND_OLDER: + 2025-10-01: 1304.44 +DODGE_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 1087.04 + AGE_2_THROUGH_3: + 2025-10-01: 1087.04 + AGE_4_THROUGH_5: + 2025-10-01: 978.33 + AGE_6_AND_OLDER: + 2025-10-01: 978.33 +DOOR_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 1195.74 + AGE_2_THROUGH_3: + 2025-10-01: 1087.04 + AGE_4_THROUGH_5: + 2025-10-01: 1087.04 + AGE_6_AND_OLDER: + 2025-10-01: 869.63 +DOUGLAS_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 978.33 + AGE_2_THROUGH_3: + 2025-10-01: 913.11 + AGE_4_THROUGH_5: + 2025-10-01: 847.89 + AGE_6_AND_OLDER: + 2025-10-01: 804.41 +DUNN_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 869.63 + AGE_2_THROUGH_3: + 2025-10-01: 739.19 + AGE_4_THROUGH_5: + 2025-10-01: 739.19 + AGE_6_AND_OLDER: + 2025-10-01: 739.19 +EAU_CLAIRE_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 869.63 + AGE_2_THROUGH_3: + 2025-10-01: 869.63 + AGE_4_THROUGH_5: + 2025-10-01: 826.15 + AGE_6_AND_OLDER: + 2025-10-01: 782.67 +FLORENCE_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 1087.04 + AGE_2_THROUGH_3: + 2025-10-01: 1087.04 + AGE_4_THROUGH_5: + 2025-10-01: 978.33 + AGE_6_AND_OLDER: + 2025-10-01: 978.33 +FOND_DU_LAC_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 1087.04 + AGE_2_THROUGH_3: + 2025-10-01: 1087.04 + AGE_4_THROUGH_5: + 2025-10-01: 978.33 + AGE_6_AND_OLDER: + 2025-10-01: 978.33 +FOREST_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 847.89 + AGE_2_THROUGH_3: + 2025-10-01: 804.41 + AGE_4_THROUGH_5: + 2025-10-01: 804.41 + AGE_6_AND_OLDER: + 2025-10-01: 760.93 +GRANT_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 1087.04 + AGE_2_THROUGH_3: + 2025-10-01: 978.33 + AGE_4_THROUGH_5: + 2025-10-01: 869.63 + AGE_6_AND_OLDER: + 2025-10-01: 869.63 +GREEN_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 956.59 + AGE_2_THROUGH_3: + 2025-10-01: 782.67 + AGE_4_THROUGH_5: + 2025-10-01: 782.67 + AGE_6_AND_OLDER: + 2025-10-01: 782.67 +GREEN_LAKE_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 1087.04 + AGE_2_THROUGH_3: + 2025-10-01: 978.33 + AGE_4_THROUGH_5: + 2025-10-01: 869.63 + AGE_6_AND_OLDER: + 2025-10-01: 869.63 +IOWA_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 1260.96 + AGE_2_THROUGH_3: + 2025-10-01: 1130.52 + AGE_4_THROUGH_5: + 2025-10-01: 1130.52 + AGE_6_AND_OLDER: + 2025-10-01: 1130.52 +IRON_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 847.89 + AGE_2_THROUGH_3: + 2025-10-01: 739.19 + AGE_4_THROUGH_5: + 2025-10-01: 739.19 + AGE_6_AND_OLDER: + 2025-10-01: 739.19 +JACKSON_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 1195.74 + AGE_2_THROUGH_3: + 2025-10-01: 1087.04 + AGE_4_THROUGH_5: + 2025-10-01: 1087.04 + AGE_6_AND_OLDER: + 2025-10-01: 869.63 +JEFFERSON_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 956.59 + AGE_2_THROUGH_3: + 2025-10-01: 956.59 + AGE_4_THROUGH_5: + 2025-10-01: 826.15 + AGE_6_AND_OLDER: + 2025-10-01: 826.15 +JUNEAU_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 847.89 + AGE_2_THROUGH_3: + 2025-10-01: 804.41 + AGE_4_THROUGH_5: + 2025-10-01: 804.41 + AGE_6_AND_OLDER: + 2025-10-01: 760.93 +KENOSHA_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 1087.04 + AGE_2_THROUGH_3: + 2025-10-01: 978.33 + AGE_4_THROUGH_5: + 2025-10-01: 869.63 + AGE_6_AND_OLDER: + 2025-10-01: 869.63 +KEWAUNEE_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 1152.26 + AGE_2_THROUGH_3: + 2025-10-01: 1000.07 + AGE_4_THROUGH_5: + 2025-10-01: 1000.07 + AGE_6_AND_OLDER: + 2025-10-01: 978.33 +LA_CROSSE_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 913.11 + AGE_2_THROUGH_3: + 2025-10-01: 869.63 + AGE_4_THROUGH_5: + 2025-10-01: 782.67 + AGE_6_AND_OLDER: + 2025-10-01: 760.93 +LAFAYETTE_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 1087.04 + AGE_2_THROUGH_3: + 2025-10-01: 978.33 + AGE_4_THROUGH_5: + 2025-10-01: 869.63 + AGE_6_AND_OLDER: + 2025-10-01: 869.63 +LANGLADE_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 1087.04 + AGE_2_THROUGH_3: + 2025-10-01: 978.33 + AGE_4_THROUGH_5: + 2025-10-01: 869.63 + AGE_6_AND_OLDER: + 2025-10-01: 869.63 +LINCOLN_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 847.89 + AGE_2_THROUGH_3: + 2025-10-01: 739.19 + AGE_4_THROUGH_5: + 2025-10-01: 739.19 + AGE_6_AND_OLDER: + 2025-10-01: 739.19 +MANITOWOC_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 847.89 + AGE_2_THROUGH_3: + 2025-10-01: 739.19 + AGE_4_THROUGH_5: + 2025-10-01: 739.19 + AGE_6_AND_OLDER: + 2025-10-01: 739.19 +MARATHON_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 978.33 + AGE_2_THROUGH_3: + 2025-10-01: 913.11 + AGE_4_THROUGH_5: + 2025-10-01: 847.89 + AGE_6_AND_OLDER: + 2025-10-01: 804.41 +MARINETTE_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 847.89 + AGE_2_THROUGH_3: + 2025-10-01: 739.19 + AGE_4_THROUGH_5: + 2025-10-01: 739.19 + AGE_6_AND_OLDER: + 2025-10-01: 739.19 +MARQUETTE_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 847.89 + AGE_2_THROUGH_3: + 2025-10-01: 739.19 + AGE_4_THROUGH_5: + 2025-10-01: 739.19 + AGE_6_AND_OLDER: + 2025-10-01: 739.19 +MENOMINEE_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 1304.44 + AGE_2_THROUGH_3: + 2025-10-01: 1239.22 + AGE_4_THROUGH_5: + 2025-10-01: 1187.91 + AGE_6_AND_OLDER: + 2025-10-01: 1087.04 +MILWAUKEE_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 1304.44 + AGE_2_THROUGH_3: + 2025-10-01: 1239.22 + AGE_4_THROUGH_5: + 2025-10-01: 1187.91 + AGE_6_AND_OLDER: + 2025-10-01: 1087.04 +MONROE_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 1087.04 + AGE_2_THROUGH_3: + 2025-10-01: 978.33 + AGE_4_THROUGH_5: + 2025-10-01: 869.63 + AGE_6_AND_OLDER: + 2025-10-01: 869.63 +OCONTO_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 1087.04 + AGE_2_THROUGH_3: + 2025-10-01: 1087.04 + AGE_4_THROUGH_5: + 2025-10-01: 978.33 + AGE_6_AND_OLDER: + 2025-10-01: 978.33 +ONEIDA_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 826.15 + AGE_2_THROUGH_3: + 2025-10-01: 826.15 + AGE_4_THROUGH_5: + 2025-10-01: 826.15 + AGE_6_AND_OLDER: + 2025-10-01: 826.15 +OUTAGAMIE_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 1152.26 + AGE_2_THROUGH_3: + 2025-10-01: 1000.07 + AGE_4_THROUGH_5: + 2025-10-01: 1000.07 + AGE_6_AND_OLDER: + 2025-10-01: 978.33 +OZAUKEE_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 1304.44 + AGE_2_THROUGH_3: + 2025-10-01: 1239.22 + AGE_4_THROUGH_5: + 2025-10-01: 1187.91 + AGE_6_AND_OLDER: + 2025-10-01: 1087.04 +PEPIN_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 869.63 + AGE_2_THROUGH_3: + 2025-10-01: 869.63 + AGE_4_THROUGH_5: + 2025-10-01: 826.15 + AGE_6_AND_OLDER: + 2025-10-01: 782.67 +PIERCE_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 1152.26 + AGE_2_THROUGH_3: + 2025-10-01: 1000.07 + AGE_4_THROUGH_5: + 2025-10-01: 1000.07 + AGE_6_AND_OLDER: + 2025-10-01: 978.33 +POLK_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 978.33 + AGE_2_THROUGH_3: + 2025-10-01: 913.11 + AGE_4_THROUGH_5: + 2025-10-01: 847.89 + AGE_6_AND_OLDER: + 2025-10-01: 804.41 +PORTAGE_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 913.11 + AGE_2_THROUGH_3: + 2025-10-01: 913.11 + AGE_4_THROUGH_5: + 2025-10-01: 913.11 + AGE_6_AND_OLDER: + 2025-10-01: 913.11 +PRICE_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 1087.04 + AGE_2_THROUGH_3: + 2025-10-01: 978.33 + AGE_4_THROUGH_5: + 2025-10-01: 869.63 + AGE_6_AND_OLDER: + 2025-10-01: 869.63 +RACINE_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 1087.04 + AGE_2_THROUGH_3: + 2025-10-01: 978.33 + AGE_4_THROUGH_5: + 2025-10-01: 869.63 + AGE_6_AND_OLDER: + 2025-10-01: 869.63 +RICHLAND_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 847.89 + AGE_2_THROUGH_3: + 2025-10-01: 804.41 + AGE_4_THROUGH_5: + 2025-10-01: 804.41 + AGE_6_AND_OLDER: + 2025-10-01: 760.93 +ROCK_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 1087.04 + AGE_2_THROUGH_3: + 2025-10-01: 978.33 + AGE_4_THROUGH_5: + 2025-10-01: 869.63 + AGE_6_AND_OLDER: + 2025-10-01: 869.63 +RUSK_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 1087.04 + AGE_2_THROUGH_3: + 2025-10-01: 978.33 + AGE_4_THROUGH_5: + 2025-10-01: 869.63 + AGE_6_AND_OLDER: + 2025-10-01: 869.63 +SAUK_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 956.59 + AGE_2_THROUGH_3: + 2025-10-01: 956.59 + AGE_4_THROUGH_5: + 2025-10-01: 826.15 + AGE_6_AND_OLDER: + 2025-10-01: 826.15 +SAWYER_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 826.15 + AGE_2_THROUGH_3: + 2025-10-01: 782.67 + AGE_4_THROUGH_5: + 2025-10-01: 782.67 + AGE_6_AND_OLDER: + 2025-10-01: 782.67 +SHAWANO_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 847.89 + AGE_2_THROUGH_3: + 2025-10-01: 804.41 + AGE_4_THROUGH_5: + 2025-10-01: 804.41 + AGE_6_AND_OLDER: + 2025-10-01: 760.93 +SHEBOYGAN_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 1521.85 + AGE_2_THROUGH_3: + 2025-10-01: 1456.63 + AGE_4_THROUGH_5: + 2025-10-01: 1413.15 + AGE_6_AND_OLDER: + 2025-10-01: 1304.44 +ST_CROIX_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 1087.04 + AGE_2_THROUGH_3: + 2025-10-01: 1000.07 + AGE_4_THROUGH_5: + 2025-10-01: 1000.07 + AGE_6_AND_OLDER: + 2025-10-01: 869.63 +TAYLOR_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 978.33 + AGE_2_THROUGH_3: + 2025-10-01: 913.11 + AGE_4_THROUGH_5: + 2025-10-01: 847.89 + AGE_6_AND_OLDER: + 2025-10-01: 804.41 +TREMPEALEAU_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 1087.04 + AGE_2_THROUGH_3: + 2025-10-01: 1000.07 + AGE_4_THROUGH_5: + 2025-10-01: 1000.07 + AGE_6_AND_OLDER: + 2025-10-01: 869.63 +VERNON_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 1087.04 + AGE_2_THROUGH_3: + 2025-10-01: 978.33 + AGE_4_THROUGH_5: + 2025-10-01: 869.63 + AGE_6_AND_OLDER: + 2025-10-01: 869.63 +VILAS_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 1087.04 + AGE_2_THROUGH_3: + 2025-10-01: 978.33 + AGE_4_THROUGH_5: + 2025-10-01: 869.63 + AGE_6_AND_OLDER: + 2025-10-01: 869.63 +WALWORTH_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 978.33 + AGE_2_THROUGH_3: + 2025-10-01: 869.63 + AGE_4_THROUGH_5: + 2025-10-01: 869.63 + AGE_6_AND_OLDER: + 2025-10-01: 869.63 +WASHBURN_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 847.89 + AGE_2_THROUGH_3: + 2025-10-01: 739.19 + AGE_4_THROUGH_5: + 2025-10-01: 739.19 + AGE_6_AND_OLDER: + 2025-10-01: 739.19 +WASHINGTON_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 1195.74 + AGE_2_THROUGH_3: + 2025-10-01: 1087.04 + AGE_4_THROUGH_5: + 2025-10-01: 1087.04 + AGE_6_AND_OLDER: + 2025-10-01: 913.11 +WAUKESHA_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 1260.96 + AGE_2_THROUGH_3: + 2025-10-01: 1130.52 + AGE_4_THROUGH_5: + 2025-10-01: 1130.52 + AGE_6_AND_OLDER: + 2025-10-01: 1130.52 +WAUPACA_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 869.63 + AGE_2_THROUGH_3: + 2025-10-01: 826.15 + AGE_4_THROUGH_5: + 2025-10-01: 826.15 + AGE_6_AND_OLDER: + 2025-10-01: 826.15 +WAUSHARA_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 1087.04 + AGE_2_THROUGH_3: + 2025-10-01: 978.33 + AGE_4_THROUGH_5: + 2025-10-01: 869.63 + AGE_6_AND_OLDER: + 2025-10-01: 869.63 +WINNEBAGO_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 1087.04 + AGE_2_THROUGH_3: + 2025-10-01: 956.59 + AGE_4_THROUGH_5: + 2025-10-01: 913.11 + AGE_6_AND_OLDER: + 2025-10-01: 869.63 +WOOD_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 869.63 + AGE_2_THROUGH_3: + 2025-10-01: 869.63 + AGE_4_THROUGH_5: + 2025-10-01: 739.19 + AGE_6_AND_OLDER: + 2025-10-01: 869.63 diff --git a/policyengine_us/parameters/gov/states/wi/dcf/shares/rates/licensed_family/hourly.yaml b/policyengine_us/parameters/gov/states/wi/dcf/shares/rates/licensed_family/hourly.yaml new file mode 100644 index 00000000000..d69963249c0 --- /dev/null +++ b/policyengine_us/parameters/gov/states/wi/dcf/shares/rates/licensed_family/hourly.yaml @@ -0,0 +1,672 @@ +description: Wisconsin caps the hourly subsidy rate for licensed family child care at these amounts by county and child age group under the Wisconsin Shares Child Care Subsidy Program. + +# Statewide table effective 10/1/2025. The published part-time monthly +# maximum equals the hourly maximum x 131 part-time monthly hours exactly +# (verified for every county), so it is derived in the formula rather than +# transcribed. Certified provider hourly maximums are 90% of these values, +# rounded up to the cent (see ../certified_licensed_rate_ratio.yaml). +# Tribal-agency rows of the table are not transcribed (PolicyEngine has no +# tribal geography). +metadata: + unit: currency-USD + period: hour + label: Wisconsin Shares licensed family hourly maximum rate + breakdown: + - county + - wi_shares_age_group + reference: + - title: 2025 Wisconsin Shares Child Care Subsidy County and Tribal Maximum Rates - Statewide, effective 10/1/2025 (pp. 26-40) + href: https://dcf.wisconsin.gov/files/wishares/pdf/max-rates-statewide.pdf#page=26 + - title: Wisconsin Shares Handbook (July 2026), Section 18.5.1 Subsidy Maximum Rates + href: https://dcf.wisconsin.gov/wisconsin-shares/wisconsin-shares-handbook-july-2026#page=156 + - title: Wis. Stat. § 49.155(6) + href: https://docs.legis.wisconsin.gov/statutes/statutes/49/III/155 + +ADAMS_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 7.86 + AGE_2_THROUGH_3: + 2025-10-01: 7.15 + AGE_4_THROUGH_5: + 2025-10-01: 7.15 + AGE_6_AND_OLDER: + 2025-10-01: 7.15 +ASHLAND_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 5.43 + AGE_2_THROUGH_3: + 2025-10-01: 4.86 + AGE_4_THROUGH_5: + 2025-10-01: 4.43 + AGE_6_AND_OLDER: + 2025-10-01: 4.43 +BARRON_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 5.58 + AGE_2_THROUGH_3: + 2025-10-01: 4.86 + AGE_4_THROUGH_5: + 2025-10-01: 4.86 + AGE_6_AND_OLDER: + 2025-10-01: 4.86 +BAYFIELD_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 6.43 + AGE_2_THROUGH_3: + 2025-10-01: 6 + AGE_4_THROUGH_5: + 2025-10-01: 5.58 + AGE_6_AND_OLDER: + 2025-10-01: 5.29 +BROWN_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 7.86 + AGE_2_THROUGH_3: + 2025-10-01: 7.15 + AGE_4_THROUGH_5: + 2025-10-01: 7.15 + AGE_6_AND_OLDER: + 2025-10-01: 5.72 +BUFFALO_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 5.58 + AGE_2_THROUGH_3: + 2025-10-01: 5.09 + AGE_4_THROUGH_5: + 2025-10-01: 5.09 + AGE_6_AND_OLDER: + 2025-10-01: 4.29 +BURNETT_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 7.15 + AGE_2_THROUGH_3: + 2025-10-01: 6.43 + AGE_4_THROUGH_5: + 2025-10-01: 5.72 + AGE_6_AND_OLDER: + 2025-10-01: 5.72 +CALUMET_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 7.15 + AGE_2_THROUGH_3: + 2025-10-01: 6.29 + AGE_4_THROUGH_5: + 2025-10-01: 6 + AGE_6_AND_OLDER: + 2025-10-01: 5.72 +CHIPPEWA_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 5.72 + AGE_2_THROUGH_3: + 2025-10-01: 5.72 + AGE_4_THROUGH_5: + 2025-10-01: 5.72 + AGE_6_AND_OLDER: + 2025-10-01: 5.72 +CLARK_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 5.43 + AGE_2_THROUGH_3: + 2025-10-01: 5.15 + AGE_4_THROUGH_5: + 2025-10-01: 5.15 + AGE_6_AND_OLDER: + 2025-10-01: 4.29 +COLUMBIA_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 7.15 + AGE_2_THROUGH_3: + 2025-10-01: 7.15 + AGE_4_THROUGH_5: + 2025-10-01: 6.43 + AGE_6_AND_OLDER: + 2025-10-01: 6.43 +CRAWFORD_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 7.15 + AGE_2_THROUGH_3: + 2025-10-01: 6.43 + AGE_4_THROUGH_5: + 2025-10-01: 5.72 + AGE_6_AND_OLDER: + 2025-10-01: 5.72 +DANE_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 10 + AGE_2_THROUGH_3: + 2025-10-01: 9.58 + AGE_4_THROUGH_5: + 2025-10-01: 9.29 + AGE_6_AND_OLDER: + 2025-10-01: 8.58 +DODGE_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 7.15 + AGE_2_THROUGH_3: + 2025-10-01: 7.15 + AGE_4_THROUGH_5: + 2025-10-01: 6.43 + AGE_6_AND_OLDER: + 2025-10-01: 6.43 +DOOR_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 7.86 + AGE_2_THROUGH_3: + 2025-10-01: 7.15 + AGE_4_THROUGH_5: + 2025-10-01: 7.15 + AGE_6_AND_OLDER: + 2025-10-01: 5.72 +DOUGLAS_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 6.43 + AGE_2_THROUGH_3: + 2025-10-01: 6 + AGE_4_THROUGH_5: + 2025-10-01: 5.58 + AGE_6_AND_OLDER: + 2025-10-01: 5.29 +DUNN_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 5.72 + AGE_2_THROUGH_3: + 2025-10-01: 4.86 + AGE_4_THROUGH_5: + 2025-10-01: 4.86 + AGE_6_AND_OLDER: + 2025-10-01: 4.86 +EAU_CLAIRE_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 5.72 + AGE_2_THROUGH_3: + 2025-10-01: 5.72 + AGE_4_THROUGH_5: + 2025-10-01: 5.43 + AGE_6_AND_OLDER: + 2025-10-01: 5.15 +FLORENCE_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 7.15 + AGE_2_THROUGH_3: + 2025-10-01: 7.15 + AGE_4_THROUGH_5: + 2025-10-01: 6.43 + AGE_6_AND_OLDER: + 2025-10-01: 6.43 +FOND_DU_LAC_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 7.15 + AGE_2_THROUGH_3: + 2025-10-01: 7.15 + AGE_4_THROUGH_5: + 2025-10-01: 6.43 + AGE_6_AND_OLDER: + 2025-10-01: 6.43 +FOREST_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 5.58 + AGE_2_THROUGH_3: + 2025-10-01: 5.29 + AGE_4_THROUGH_5: + 2025-10-01: 5.29 + AGE_6_AND_OLDER: + 2025-10-01: 5 +GRANT_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 7.15 + AGE_2_THROUGH_3: + 2025-10-01: 6.43 + AGE_4_THROUGH_5: + 2025-10-01: 5.72 + AGE_6_AND_OLDER: + 2025-10-01: 5.72 +GREEN_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 6.29 + AGE_2_THROUGH_3: + 2025-10-01: 5.15 + AGE_4_THROUGH_5: + 2025-10-01: 5.15 + AGE_6_AND_OLDER: + 2025-10-01: 5.15 +GREEN_LAKE_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 7.15 + AGE_2_THROUGH_3: + 2025-10-01: 6.43 + AGE_4_THROUGH_5: + 2025-10-01: 5.72 + AGE_6_AND_OLDER: + 2025-10-01: 5.72 +IOWA_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 8.29 + AGE_2_THROUGH_3: + 2025-10-01: 7.43 + AGE_4_THROUGH_5: + 2025-10-01: 7.43 + AGE_6_AND_OLDER: + 2025-10-01: 7.43 +IRON_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 5.58 + AGE_2_THROUGH_3: + 2025-10-01: 4.86 + AGE_4_THROUGH_5: + 2025-10-01: 4.86 + AGE_6_AND_OLDER: + 2025-10-01: 4.86 +JACKSON_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 7.86 + AGE_2_THROUGH_3: + 2025-10-01: 7.15 + AGE_4_THROUGH_5: + 2025-10-01: 7.15 + AGE_6_AND_OLDER: + 2025-10-01: 5.72 +JEFFERSON_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 6.29 + AGE_2_THROUGH_3: + 2025-10-01: 6.29 + AGE_4_THROUGH_5: + 2025-10-01: 5.43 + AGE_6_AND_OLDER: + 2025-10-01: 5.43 +JUNEAU_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 5.58 + AGE_2_THROUGH_3: + 2025-10-01: 5.29 + AGE_4_THROUGH_5: + 2025-10-01: 5.29 + AGE_6_AND_OLDER: + 2025-10-01: 5 +KENOSHA_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 7.15 + AGE_2_THROUGH_3: + 2025-10-01: 6.43 + AGE_4_THROUGH_5: + 2025-10-01: 5.72 + AGE_6_AND_OLDER: + 2025-10-01: 5.72 +KEWAUNEE_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 7.58 + AGE_2_THROUGH_3: + 2025-10-01: 6.58 + AGE_4_THROUGH_5: + 2025-10-01: 6.58 + AGE_6_AND_OLDER: + 2025-10-01: 6.43 +LA_CROSSE_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 6 + AGE_2_THROUGH_3: + 2025-10-01: 5.72 + AGE_4_THROUGH_5: + 2025-10-01: 5.15 + AGE_6_AND_OLDER: + 2025-10-01: 5 +LAFAYETTE_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 7.15 + AGE_2_THROUGH_3: + 2025-10-01: 6.43 + AGE_4_THROUGH_5: + 2025-10-01: 5.72 + AGE_6_AND_OLDER: + 2025-10-01: 5.72 +LANGLADE_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 7.15 + AGE_2_THROUGH_3: + 2025-10-01: 6.43 + AGE_4_THROUGH_5: + 2025-10-01: 5.72 + AGE_6_AND_OLDER: + 2025-10-01: 5.72 +LINCOLN_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 5.58 + AGE_2_THROUGH_3: + 2025-10-01: 4.86 + AGE_4_THROUGH_5: + 2025-10-01: 4.86 + AGE_6_AND_OLDER: + 2025-10-01: 4.86 +MANITOWOC_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 5.58 + AGE_2_THROUGH_3: + 2025-10-01: 4.86 + AGE_4_THROUGH_5: + 2025-10-01: 4.86 + AGE_6_AND_OLDER: + 2025-10-01: 4.86 +MARATHON_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 6.43 + AGE_2_THROUGH_3: + 2025-10-01: 6 + AGE_4_THROUGH_5: + 2025-10-01: 5.58 + AGE_6_AND_OLDER: + 2025-10-01: 5.29 +MARINETTE_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 5.58 + AGE_2_THROUGH_3: + 2025-10-01: 4.86 + AGE_4_THROUGH_5: + 2025-10-01: 4.86 + AGE_6_AND_OLDER: + 2025-10-01: 4.86 +MARQUETTE_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 5.58 + AGE_2_THROUGH_3: + 2025-10-01: 4.86 + AGE_4_THROUGH_5: + 2025-10-01: 4.86 + AGE_6_AND_OLDER: + 2025-10-01: 4.86 +MENOMINEE_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 8.58 + AGE_2_THROUGH_3: + 2025-10-01: 8.15 + AGE_4_THROUGH_5: + 2025-10-01: 7.81 + AGE_6_AND_OLDER: + 2025-10-01: 7.15 +MILWAUKEE_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 8.58 + AGE_2_THROUGH_3: + 2025-10-01: 8.15 + AGE_4_THROUGH_5: + 2025-10-01: 7.81 + AGE_6_AND_OLDER: + 2025-10-01: 7.15 +MONROE_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 7.15 + AGE_2_THROUGH_3: + 2025-10-01: 6.43 + AGE_4_THROUGH_5: + 2025-10-01: 5.72 + AGE_6_AND_OLDER: + 2025-10-01: 5.72 +OCONTO_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 7.15 + AGE_2_THROUGH_3: + 2025-10-01: 7.15 + AGE_4_THROUGH_5: + 2025-10-01: 6.43 + AGE_6_AND_OLDER: + 2025-10-01: 6.43 +ONEIDA_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 5.43 + AGE_2_THROUGH_3: + 2025-10-01: 5.43 + AGE_4_THROUGH_5: + 2025-10-01: 5.43 + AGE_6_AND_OLDER: + 2025-10-01: 5.43 +OUTAGAMIE_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 7.58 + AGE_2_THROUGH_3: + 2025-10-01: 6.58 + AGE_4_THROUGH_5: + 2025-10-01: 6.58 + AGE_6_AND_OLDER: + 2025-10-01: 6.43 +OZAUKEE_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 8.58 + AGE_2_THROUGH_3: + 2025-10-01: 8.15 + AGE_4_THROUGH_5: + 2025-10-01: 7.81 + AGE_6_AND_OLDER: + 2025-10-01: 7.15 +PEPIN_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 5.72 + AGE_2_THROUGH_3: + 2025-10-01: 5.72 + AGE_4_THROUGH_5: + 2025-10-01: 5.43 + AGE_6_AND_OLDER: + 2025-10-01: 5.15 +PIERCE_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 7.58 + AGE_2_THROUGH_3: + 2025-10-01: 6.58 + AGE_4_THROUGH_5: + 2025-10-01: 6.58 + AGE_6_AND_OLDER: + 2025-10-01: 6.43 +POLK_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 6.43 + AGE_2_THROUGH_3: + 2025-10-01: 6 + AGE_4_THROUGH_5: + 2025-10-01: 5.58 + AGE_6_AND_OLDER: + 2025-10-01: 5.29 +PORTAGE_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 6 + AGE_2_THROUGH_3: + 2025-10-01: 6 + AGE_4_THROUGH_5: + 2025-10-01: 6 + AGE_6_AND_OLDER: + 2025-10-01: 6 +PRICE_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 7.15 + AGE_2_THROUGH_3: + 2025-10-01: 6.43 + AGE_4_THROUGH_5: + 2025-10-01: 5.72 + AGE_6_AND_OLDER: + 2025-10-01: 5.72 +RACINE_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 7.15 + AGE_2_THROUGH_3: + 2025-10-01: 6.43 + AGE_4_THROUGH_5: + 2025-10-01: 5.72 + AGE_6_AND_OLDER: + 2025-10-01: 5.72 +RICHLAND_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 5.58 + AGE_2_THROUGH_3: + 2025-10-01: 5.29 + AGE_4_THROUGH_5: + 2025-10-01: 5.29 + AGE_6_AND_OLDER: + 2025-10-01: 5 +ROCK_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 7.15 + AGE_2_THROUGH_3: + 2025-10-01: 6.43 + AGE_4_THROUGH_5: + 2025-10-01: 5.72 + AGE_6_AND_OLDER: + 2025-10-01: 5.72 +RUSK_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 7.15 + AGE_2_THROUGH_3: + 2025-10-01: 6.43 + AGE_4_THROUGH_5: + 2025-10-01: 5.72 + AGE_6_AND_OLDER: + 2025-10-01: 5.72 +SAUK_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 6.29 + AGE_2_THROUGH_3: + 2025-10-01: 6.29 + AGE_4_THROUGH_5: + 2025-10-01: 5.43 + AGE_6_AND_OLDER: + 2025-10-01: 5.43 +SAWYER_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 5.43 + AGE_2_THROUGH_3: + 2025-10-01: 5.15 + AGE_4_THROUGH_5: + 2025-10-01: 5.15 + AGE_6_AND_OLDER: + 2025-10-01: 5.15 +SHAWANO_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 5.58 + AGE_2_THROUGH_3: + 2025-10-01: 5.29 + AGE_4_THROUGH_5: + 2025-10-01: 5.29 + AGE_6_AND_OLDER: + 2025-10-01: 5 +SHEBOYGAN_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 10 + AGE_2_THROUGH_3: + 2025-10-01: 9.58 + AGE_4_THROUGH_5: + 2025-10-01: 9.29 + AGE_6_AND_OLDER: + 2025-10-01: 8.58 +ST_CROIX_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 7.15 + AGE_2_THROUGH_3: + 2025-10-01: 6.58 + AGE_4_THROUGH_5: + 2025-10-01: 6.58 + AGE_6_AND_OLDER: + 2025-10-01: 5.72 +TAYLOR_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 6.43 + AGE_2_THROUGH_3: + 2025-10-01: 6 + AGE_4_THROUGH_5: + 2025-10-01: 5.58 + AGE_6_AND_OLDER: + 2025-10-01: 5.29 +TREMPEALEAU_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 7.15 + AGE_2_THROUGH_3: + 2025-10-01: 6.58 + AGE_4_THROUGH_5: + 2025-10-01: 6.58 + AGE_6_AND_OLDER: + 2025-10-01: 5.72 +VERNON_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 7.15 + AGE_2_THROUGH_3: + 2025-10-01: 6.43 + AGE_4_THROUGH_5: + 2025-10-01: 5.72 + AGE_6_AND_OLDER: + 2025-10-01: 5.72 +VILAS_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 7.15 + AGE_2_THROUGH_3: + 2025-10-01: 6.43 + AGE_4_THROUGH_5: + 2025-10-01: 5.72 + AGE_6_AND_OLDER: + 2025-10-01: 5.72 +WALWORTH_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 6.43 + AGE_2_THROUGH_3: + 2025-10-01: 5.72 + AGE_4_THROUGH_5: + 2025-10-01: 5.72 + AGE_6_AND_OLDER: + 2025-10-01: 5.72 +WASHBURN_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 5.58 + AGE_2_THROUGH_3: + 2025-10-01: 4.86 + AGE_4_THROUGH_5: + 2025-10-01: 4.86 + AGE_6_AND_OLDER: + 2025-10-01: 4.86 +WASHINGTON_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 7.86 + AGE_2_THROUGH_3: + 2025-10-01: 7.15 + AGE_4_THROUGH_5: + 2025-10-01: 7.15 + AGE_6_AND_OLDER: + 2025-10-01: 6 +WAUKESHA_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 8.29 + AGE_2_THROUGH_3: + 2025-10-01: 7.43 + AGE_4_THROUGH_5: + 2025-10-01: 7.43 + AGE_6_AND_OLDER: + 2025-10-01: 7.43 +WAUPACA_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 5.72 + AGE_2_THROUGH_3: + 2025-10-01: 5.43 + AGE_4_THROUGH_5: + 2025-10-01: 5.43 + AGE_6_AND_OLDER: + 2025-10-01: 5.43 +WAUSHARA_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 7.15 + AGE_2_THROUGH_3: + 2025-10-01: 6.43 + AGE_4_THROUGH_5: + 2025-10-01: 5.72 + AGE_6_AND_OLDER: + 2025-10-01: 5.72 +WINNEBAGO_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 7.15 + AGE_2_THROUGH_3: + 2025-10-01: 6.29 + AGE_4_THROUGH_5: + 2025-10-01: 6 + AGE_6_AND_OLDER: + 2025-10-01: 5.72 +WOOD_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 5.72 + AGE_2_THROUGH_3: + 2025-10-01: 5.72 + AGE_4_THROUGH_5: + 2025-10-01: 4.86 + AGE_6_AND_OLDER: + 2025-10-01: 5.72 diff --git a/policyengine_us/parameters/gov/states/wi/dcf/shares/rates/licensed_group/full_time_monthly.yaml b/policyengine_us/parameters/gov/states/wi/dcf/shares/rates/licensed_group/full_time_monthly.yaml new file mode 100644 index 00000000000..e7de04e3539 --- /dev/null +++ b/policyengine_us/parameters/gov/states/wi/dcf/shares/rates/licensed_group/full_time_monthly.yaml @@ -0,0 +1,670 @@ +description: Wisconsin caps the monthly subsidy for full-time licensed group child care at these amounts by county and child age group under the Wisconsin Shares Child Care Subsidy Program. + +# Statewide table effective 10/1/2025. Full-time monthly maximums are +# independent table cells (a weekly rate x 4.348125 weeks per month), not a +# fixed multiple of the hourly maximum, so they are transcribed per cell. +# Tribal-agency rows of the table are not transcribed (PolicyEngine has no +# tribal geography). +metadata: + unit: currency-USD + period: month + label: Wisconsin Shares licensed group full-time monthly maximum rate + breakdown: + - county + - wi_shares_age_group + reference: + - title: 2025 Wisconsin Shares Child Care Subsidy County and Tribal Maximum Rates - Statewide, effective 10/1/2025 (pp. 26-40) + href: https://dcf.wisconsin.gov/files/wishares/pdf/max-rates-statewide.pdf#page=26 + - title: Wisconsin Shares Handbook (July 2026), Section 18.5.1 Subsidy Maximum Rates + href: https://dcf.wisconsin.gov/wisconsin-shares/wisconsin-shares-handbook-july-2026#page=156 + - title: Wis. Stat. § 49.155(6) + href: https://docs.legis.wisconsin.gov/statutes/statutes/49/III/155 + +ADAMS_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 1543.59 + AGE_2_THROUGH_3: + 2025-10-01: 1330.53 + AGE_4_THROUGH_5: + 2025-10-01: 1239.22 + AGE_6_AND_OLDER: + 2025-10-01: 1108.78 +ASHLAND_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 1065.3 + AGE_2_THROUGH_3: + 2025-10-01: 1000.07 + AGE_4_THROUGH_5: + 2025-10-01: 934.85 + AGE_6_AND_OLDER: + 2025-10-01: 695.7 +BARRON_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 1157.69 + AGE_2_THROUGH_3: + 2025-10-01: 1021.81 + AGE_4_THROUGH_5: + 2025-10-01: 983.77 + AGE_6_AND_OLDER: + 2025-10-01: 983.77 +BAYFIELD_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 1304.44 + AGE_2_THROUGH_3: + 2025-10-01: 1134.87 + AGE_4_THROUGH_5: + 2025-10-01: 1043.55 + AGE_6_AND_OLDER: + 2025-10-01: 887.02 +BROWN_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 1543.59 + AGE_2_THROUGH_3: + 2025-10-01: 1330.53 + AGE_4_THROUGH_5: + 2025-10-01: 1239.22 + AGE_6_AND_OLDER: + 2025-10-01: 1108.78 +BUFFALO_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 1004.42 + AGE_2_THROUGH_3: + 2025-10-01: 923.98 + AGE_4_THROUGH_5: + 2025-10-01: 913.11 + AGE_6_AND_OLDER: + 2025-10-01: 913.11 +BURNETT_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 1487.06 + AGE_2_THROUGH_3: + 2025-10-01: 1217.48 + AGE_4_THROUGH_5: + 2025-10-01: 1000.07 + AGE_6_AND_OLDER: + 2025-10-01: 956.59 +CALUMET_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 1347.92 + AGE_2_THROUGH_3: + 2025-10-01: 1304.44 + AGE_4_THROUGH_5: + 2025-10-01: 1_174 + AGE_6_AND_OLDER: + 2025-10-01: 1108.78 +CHIPPEWA_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 1413.15 + AGE_2_THROUGH_3: + 2025-10-01: 1347.92 + AGE_4_THROUGH_5: + 2025-10-01: 1213.13 + AGE_6_AND_OLDER: + 2025-10-01: 1195.74 +CLARK_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 1152.26 + AGE_2_THROUGH_3: + 2025-10-01: 1043.55 + AGE_4_THROUGH_5: + 2025-10-01: 956.59 + AGE_6_AND_OLDER: + 2025-10-01: 934.85 +COLUMBIA_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 1426.19 + AGE_2_THROUGH_3: + 2025-10-01: 1239.22 + AGE_4_THROUGH_5: + 2025-10-01: 1108.78 + AGE_6_AND_OLDER: + 2025-10-01: 1108.78 +CRAWFORD_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 1487.06 + AGE_2_THROUGH_3: + 2025-10-01: 1217.48 + AGE_4_THROUGH_5: + 2025-10-01: 1000.07 + AGE_6_AND_OLDER: + 2025-10-01: 956.59 +DANE_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 2087.1 + AGE_2_THROUGH_3: + 2025-10-01: 1747.95 + AGE_4_THROUGH_5: + 2025-10-01: 1558.03 + AGE_6_AND_OLDER: + 2025-10-01: 1413.15 +DODGE_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 1426.19 + AGE_2_THROUGH_3: + 2025-10-01: 1239.22 + AGE_4_THROUGH_5: + 2025-10-01: 1108.78 + AGE_6_AND_OLDER: + 2025-10-01: 1108.78 +DOOR_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 1543.59 + AGE_2_THROUGH_3: + 2025-10-01: 1330.53 + AGE_4_THROUGH_5: + 2025-10-01: 1239.22 + AGE_6_AND_OLDER: + 2025-10-01: 1108.78 +DOUGLAS_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 1304.44 + AGE_2_THROUGH_3: + 2025-10-01: 1134.87 + AGE_4_THROUGH_5: + 2025-10-01: 1043.55 + AGE_6_AND_OLDER: + 2025-10-01: 887.02 +DUNN_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 1195.74 + AGE_2_THROUGH_3: + 2025-10-01: 1121.82 + AGE_4_THROUGH_5: + 2025-10-01: 1121.82 + AGE_6_AND_OLDER: + 2025-10-01: 891.37 +EAU_CLAIRE_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 1369.66 + AGE_2_THROUGH_3: + 2025-10-01: 1282.7 + AGE_4_THROUGH_5: + 2025-10-01: 1_174 + AGE_6_AND_OLDER: + 2025-10-01: 1043.55 +FLORENCE_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 1426.19 + AGE_2_THROUGH_3: + 2025-10-01: 1239.22 + AGE_4_THROUGH_5: + 2025-10-01: 1108.78 + AGE_6_AND_OLDER: + 2025-10-01: 1108.78 +FOND_DU_LAC_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 1426.19 + AGE_2_THROUGH_3: + 2025-10-01: 1239.22 + AGE_4_THROUGH_5: + 2025-10-01: 1108.78 + AGE_6_AND_OLDER: + 2025-10-01: 1108.78 +FOREST_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 1_174 + AGE_2_THROUGH_3: + 2025-10-01: 1065.3 + AGE_4_THROUGH_5: + 2025-10-01: 1043.55 + AGE_6_AND_OLDER: + 2025-10-01: 1043.55 +GRANT_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 1487.06 + AGE_2_THROUGH_3: + 2025-10-01: 1217.48 + AGE_4_THROUGH_5: + 2025-10-01: 1000.07 + AGE_6_AND_OLDER: + 2025-10-01: 956.59 +GREEN_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 1304.44 + AGE_2_THROUGH_3: + 2025-10-01: 1_174 + AGE_4_THROUGH_5: + 2025-10-01: 1_174 + AGE_6_AND_OLDER: + 2025-10-01: 1065.3 +GREEN_LAKE_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 1487.06 + AGE_2_THROUGH_3: + 2025-10-01: 1217.48 + AGE_4_THROUGH_5: + 2025-10-01: 1000.07 + AGE_6_AND_OLDER: + 2025-10-01: 956.59 +IOWA_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 1665.34 + AGE_2_THROUGH_3: + 2025-10-01: 1434.89 + AGE_4_THROUGH_5: + 2025-10-01: 1304.44 + AGE_6_AND_OLDER: + 2025-10-01: 1147.91 +IRON_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 1157.69 + AGE_2_THROUGH_3: + 2025-10-01: 1021.81 + AGE_4_THROUGH_5: + 2025-10-01: 983.77 + AGE_6_AND_OLDER: + 2025-10-01: 983.77 +JACKSON_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 1543.59 + AGE_2_THROUGH_3: + 2025-10-01: 1330.53 + AGE_4_THROUGH_5: + 2025-10-01: 1239.22 + AGE_6_AND_OLDER: + 2025-10-01: 1108.78 +JEFFERSON_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 1269.66 + AGE_2_THROUGH_3: + 2025-10-01: 1104.43 + AGE_4_THROUGH_5: + 2025-10-01: 1017.47 + AGE_6_AND_OLDER: + 2025-10-01: 847.89 +JUNEAU_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 1_174 + AGE_2_THROUGH_3: + 2025-10-01: 1065.3 + AGE_4_THROUGH_5: + 2025-10-01: 1043.55 + AGE_6_AND_OLDER: + 2025-10-01: 1043.55 +KENOSHA_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 1487.06 + AGE_2_THROUGH_3: + 2025-10-01: 1217.48 + AGE_4_THROUGH_5: + 2025-10-01: 1000.07 + AGE_6_AND_OLDER: + 2025-10-01: 956.59 +KEWAUNEE_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 1347.92 + AGE_2_THROUGH_3: + 2025-10-01: 1304.44 + AGE_4_THROUGH_5: + 2025-10-01: 1200.09 + AGE_6_AND_OLDER: + 2025-10-01: 1087.04 +LA_CROSSE_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 1256.61 + AGE_2_THROUGH_3: + 2025-10-01: 1130.52 + AGE_4_THROUGH_5: + 2025-10-01: 1087.04 + AGE_6_AND_OLDER: + 2025-10-01: 1087.04 +LAFAYETTE_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 1487.06 + AGE_2_THROUGH_3: + 2025-10-01: 1217.48 + AGE_4_THROUGH_5: + 2025-10-01: 1000.07 + AGE_6_AND_OLDER: + 2025-10-01: 956.59 +LANGLADE_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 1487.06 + AGE_2_THROUGH_3: + 2025-10-01: 1217.48 + AGE_4_THROUGH_5: + 2025-10-01: 1000.07 + AGE_6_AND_OLDER: + 2025-10-01: 956.59 +LINCOLN_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 1157.69 + AGE_2_THROUGH_3: + 2025-10-01: 1021.81 + AGE_4_THROUGH_5: + 2025-10-01: 983.77 + AGE_6_AND_OLDER: + 2025-10-01: 983.77 +MANITOWOC_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 1157.69 + AGE_2_THROUGH_3: + 2025-10-01: 1021.81 + AGE_4_THROUGH_5: + 2025-10-01: 983.77 + AGE_6_AND_OLDER: + 2025-10-01: 983.77 +MARATHON_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 1304.44 + AGE_2_THROUGH_3: + 2025-10-01: 1134.87 + AGE_4_THROUGH_5: + 2025-10-01: 1043.55 + AGE_6_AND_OLDER: + 2025-10-01: 887.02 +MARINETTE_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 1157.69 + AGE_2_THROUGH_3: + 2025-10-01: 1021.81 + AGE_4_THROUGH_5: + 2025-10-01: 983.77 + AGE_6_AND_OLDER: + 2025-10-01: 983.77 +MARQUETTE_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 1157.69 + AGE_2_THROUGH_3: + 2025-10-01: 1021.81 + AGE_4_THROUGH_5: + 2025-10-01: 983.77 + AGE_6_AND_OLDER: + 2025-10-01: 983.77 +MENOMINEE_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 1695.77 + AGE_2_THROUGH_3: + 2025-10-01: 1478.37 + AGE_4_THROUGH_5: + 2025-10-01: 1326.18 + AGE_6_AND_OLDER: + 2025-10-01: 1195.74 +MILWAUKEE_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 1695.77 + AGE_2_THROUGH_3: + 2025-10-01: 1478.37 + AGE_4_THROUGH_5: + 2025-10-01: 1326.18 + AGE_6_AND_OLDER: + 2025-10-01: 1195.74 +MONROE_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 1487.06 + AGE_2_THROUGH_3: + 2025-10-01: 1217.48 + AGE_4_THROUGH_5: + 2025-10-01: 1000.07 + AGE_6_AND_OLDER: + 2025-10-01: 956.59 +OCONTO_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 1426.19 + AGE_2_THROUGH_3: + 2025-10-01: 1239.22 + AGE_4_THROUGH_5: + 2025-10-01: 1108.78 + AGE_6_AND_OLDER: + 2025-10-01: 1108.78 +ONEIDA_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 1369.66 + AGE_2_THROUGH_3: + 2025-10-01: 1304.44 + AGE_4_THROUGH_5: + 2025-10-01: 1_174 + AGE_6_AND_OLDER: + 2025-10-01: 1_174 +OUTAGAMIE_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 1347.92 + AGE_2_THROUGH_3: + 2025-10-01: 1304.44 + AGE_4_THROUGH_5: + 2025-10-01: 1200.09 + AGE_6_AND_OLDER: + 2025-10-01: 1087.04 +OZAUKEE_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 1695.77 + AGE_2_THROUGH_3: + 2025-10-01: 1478.37 + AGE_4_THROUGH_5: + 2025-10-01: 1326.18 + AGE_6_AND_OLDER: + 2025-10-01: 1195.74 +PEPIN_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 1369.66 + AGE_2_THROUGH_3: + 2025-10-01: 1282.7 + AGE_4_THROUGH_5: + 2025-10-01: 1_174 + AGE_6_AND_OLDER: + 2025-10-01: 1043.55 +PIERCE_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 1347.92 + AGE_2_THROUGH_3: + 2025-10-01: 1304.44 + AGE_4_THROUGH_5: + 2025-10-01: 1200.09 + AGE_6_AND_OLDER: + 2025-10-01: 1087.04 +POLK_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 1304.44 + AGE_2_THROUGH_3: + 2025-10-01: 1134.87 + AGE_4_THROUGH_5: + 2025-10-01: 1043.55 + AGE_6_AND_OLDER: + 2025-10-01: 887.02 +PORTAGE_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 1347.92 + AGE_2_THROUGH_3: + 2025-10-01: 1304.44 + AGE_4_THROUGH_5: + 2025-10-01: 1217.48 + AGE_6_AND_OLDER: + 2025-10-01: 1130.52 +PRICE_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 1487.06 + AGE_2_THROUGH_3: + 2025-10-01: 1217.48 + AGE_4_THROUGH_5: + 2025-10-01: 1000.07 + AGE_6_AND_OLDER: + 2025-10-01: 956.59 +RACINE_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 1487.06 + AGE_2_THROUGH_3: + 2025-10-01: 1217.48 + AGE_4_THROUGH_5: + 2025-10-01: 1000.07 + AGE_6_AND_OLDER: + 2025-10-01: 956.59 +RICHLAND_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 1_174 + AGE_2_THROUGH_3: + 2025-10-01: 1065.3 + AGE_4_THROUGH_5: + 2025-10-01: 1043.55 + AGE_6_AND_OLDER: + 2025-10-01: 1043.55 +ROCK_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 1487.06 + AGE_2_THROUGH_3: + 2025-10-01: 1217.48 + AGE_4_THROUGH_5: + 2025-10-01: 1000.07 + AGE_6_AND_OLDER: + 2025-10-01: 956.59 +RUSK_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 1487.06 + AGE_2_THROUGH_3: + 2025-10-01: 1217.48 + AGE_4_THROUGH_5: + 2025-10-01: 1000.07 + AGE_6_AND_OLDER: + 2025-10-01: 956.59 +SAUK_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 1269.66 + AGE_2_THROUGH_3: + 2025-10-01: 1104.43 + AGE_4_THROUGH_5: + 2025-10-01: 1017.47 + AGE_6_AND_OLDER: + 2025-10-01: 847.89 +SAWYER_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 891.37 + AGE_2_THROUGH_3: + 2025-10-01: 804.41 + AGE_4_THROUGH_5: + 2025-10-01: 804.41 + AGE_6_AND_OLDER: + 2025-10-01: 804.41 +SHAWANO_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 1_174 + AGE_2_THROUGH_3: + 2025-10-01: 1065.3 + AGE_4_THROUGH_5: + 2025-10-01: 1043.55 + AGE_6_AND_OLDER: + 2025-10-01: 1043.55 +SHEBOYGAN_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 2087.1 + AGE_2_THROUGH_3: + 2025-10-01: 1747.95 + AGE_4_THROUGH_5: + 2025-10-01: 1558.03 + AGE_6_AND_OLDER: + 2025-10-01: 1413.15 +ST_CROIX_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 1652.29 + AGE_2_THROUGH_3: + 2025-10-01: 1347.92 + AGE_4_THROUGH_5: + 2025-10-01: 1282.7 + AGE_6_AND_OLDER: + 2025-10-01: 1304.44 +TAYLOR_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 1304.44 + AGE_2_THROUGH_3: + 2025-10-01: 1134.87 + AGE_4_THROUGH_5: + 2025-10-01: 1043.55 + AGE_6_AND_OLDER: + 2025-10-01: 887.02 +TREMPEALEAU_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 1652.29 + AGE_2_THROUGH_3: + 2025-10-01: 1347.92 + AGE_4_THROUGH_5: + 2025-10-01: 1282.7 + AGE_6_AND_OLDER: + 2025-10-01: 1304.44 +VERNON_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 1487.06 + AGE_2_THROUGH_3: + 2025-10-01: 1217.48 + AGE_4_THROUGH_5: + 2025-10-01: 1000.07 + AGE_6_AND_OLDER: + 2025-10-01: 956.59 +VILAS_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 1487.06 + AGE_2_THROUGH_3: + 2025-10-01: 1217.48 + AGE_4_THROUGH_5: + 2025-10-01: 1000.07 + AGE_6_AND_OLDER: + 2025-10-01: 956.59 +WALWORTH_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 1360.97 + AGE_2_THROUGH_3: + 2025-10-01: 1200.09 + AGE_4_THROUGH_5: + 2025-10-01: 1143.56 + AGE_6_AND_OLDER: + 2025-10-01: 1073.12 +WASHBURN_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 1157.69 + AGE_2_THROUGH_3: + 2025-10-01: 1021.81 + AGE_4_THROUGH_5: + 2025-10-01: 983.77 + AGE_6_AND_OLDER: + 2025-10-01: 983.77 +WASHINGTON_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 1474.02 + AGE_2_THROUGH_3: + 2025-10-01: 1334.88 + AGE_4_THROUGH_5: + 2025-10-01: 1143.56 + AGE_6_AND_OLDER: + 2025-10-01: 1043.55 +WAUKESHA_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 1665.34 + AGE_2_THROUGH_3: + 2025-10-01: 1434.89 + AGE_4_THROUGH_5: + 2025-10-01: 1304.44 + AGE_6_AND_OLDER: + 2025-10-01: 1147.91 +WAUPACA_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 1184.87 + AGE_2_THROUGH_3: + 2025-10-01: 1016.38 + AGE_4_THROUGH_5: + 2025-10-01: 1016.38 + AGE_6_AND_OLDER: + 2025-10-01: 1016.38 +WAUSHARA_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 1487.06 + AGE_2_THROUGH_3: + 2025-10-01: 1217.48 + AGE_4_THROUGH_5: + 2025-10-01: 1000.07 + AGE_6_AND_OLDER: + 2025-10-01: 956.59 +WINNEBAGO_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 1456.63 + AGE_2_THROUGH_3: + 2025-10-01: 1304.44 + AGE_4_THROUGH_5: + 2025-10-01: 1152.26 + AGE_6_AND_OLDER: + 2025-10-01: 1087.04 +WOOD_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 1087.04 + AGE_2_THROUGH_3: + 2025-10-01: 1087.04 + AGE_4_THROUGH_5: + 2025-10-01: 1043.55 + AGE_6_AND_OLDER: + 2025-10-01: 1043.55 diff --git a/policyengine_us/parameters/gov/states/wi/dcf/shares/rates/licensed_group/hourly.yaml b/policyengine_us/parameters/gov/states/wi/dcf/shares/rates/licensed_group/hourly.yaml new file mode 100644 index 00000000000..478026522d2 --- /dev/null +++ b/policyengine_us/parameters/gov/states/wi/dcf/shares/rates/licensed_group/hourly.yaml @@ -0,0 +1,671 @@ +description: Wisconsin caps the hourly subsidy rate for licensed group child care at these amounts by county and child age group under the Wisconsin Shares Child Care Subsidy Program. + +# Statewide table effective 10/1/2025. The published part-time monthly +# maximum equals the hourly maximum x 131 part-time monthly hours exactly +# (verified for every county), so it is derived in the formula rather than +# transcribed. +# Tribal-agency rows of the table are not transcribed (PolicyEngine has no +# tribal geography). +metadata: + unit: currency-USD + period: hour + label: Wisconsin Shares licensed group hourly maximum rate + breakdown: + - county + - wi_shares_age_group + reference: + - title: 2025 Wisconsin Shares Child Care Subsidy County and Tribal Maximum Rates - Statewide, effective 10/1/2025 (pp. 26-40) + href: https://dcf.wisconsin.gov/files/wishares/pdf/max-rates-statewide.pdf#page=26 + - title: Wisconsin Shares Handbook (July 2026), Section 18.5.1 Subsidy Maximum Rates + href: https://dcf.wisconsin.gov/wisconsin-shares/wisconsin-shares-handbook-july-2026#page=156 + - title: Wis. Stat. § 49.155(6) + href: https://docs.legis.wisconsin.gov/statutes/statutes/49/III/155 + +ADAMS_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 10.15 + AGE_2_THROUGH_3: + 2025-10-01: 8.75 + AGE_4_THROUGH_5: + 2025-10-01: 8.15 + AGE_6_AND_OLDER: + 2025-10-01: 7.29 +ASHLAND_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 7 + AGE_2_THROUGH_3: + 2025-10-01: 6.58 + AGE_4_THROUGH_5: + 2025-10-01: 6.15 + AGE_6_AND_OLDER: + 2025-10-01: 4.58 +BARRON_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 7.61 + AGE_2_THROUGH_3: + 2025-10-01: 6.72 + AGE_4_THROUGH_5: + 2025-10-01: 6.47 + AGE_6_AND_OLDER: + 2025-10-01: 6.47 +BAYFIELD_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 8.58 + AGE_2_THROUGH_3: + 2025-10-01: 7.46 + AGE_4_THROUGH_5: + 2025-10-01: 6.86 + AGE_6_AND_OLDER: + 2025-10-01: 5.83 +BROWN_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 10.15 + AGE_2_THROUGH_3: + 2025-10-01: 8.75 + AGE_4_THROUGH_5: + 2025-10-01: 8.15 + AGE_6_AND_OLDER: + 2025-10-01: 7.29 +BUFFALO_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 6.6 + AGE_2_THROUGH_3: + 2025-10-01: 6.08 + AGE_4_THROUGH_5: + 2025-10-01: 6 + AGE_6_AND_OLDER: + 2025-10-01: 6 +BURNETT_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 9.78 + AGE_2_THROUGH_3: + 2025-10-01: 8 + AGE_4_THROUGH_5: + 2025-10-01: 6.58 + AGE_6_AND_OLDER: + 2025-10-01: 6.29 +CALUMET_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 8.86 + AGE_2_THROUGH_3: + 2025-10-01: 8.58 + AGE_4_THROUGH_5: + 2025-10-01: 7.72 + AGE_6_AND_OLDER: + 2025-10-01: 7.29 +CHIPPEWA_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 9.29 + AGE_2_THROUGH_3: + 2025-10-01: 8.86 + AGE_4_THROUGH_5: + 2025-10-01: 7.98 + AGE_6_AND_OLDER: + 2025-10-01: 7.86 +CLARK_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 7.58 + AGE_2_THROUGH_3: + 2025-10-01: 6.86 + AGE_4_THROUGH_5: + 2025-10-01: 6.29 + AGE_6_AND_OLDER: + 2025-10-01: 6.15 +COLUMBIA_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 9.38 + AGE_2_THROUGH_3: + 2025-10-01: 8.15 + AGE_4_THROUGH_5: + 2025-10-01: 7.29 + AGE_6_AND_OLDER: + 2025-10-01: 7.29 +CRAWFORD_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 9.78 + AGE_2_THROUGH_3: + 2025-10-01: 8 + AGE_4_THROUGH_5: + 2025-10-01: 6.58 + AGE_6_AND_OLDER: + 2025-10-01: 6.29 +DANE_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 13.72 + AGE_2_THROUGH_3: + 2025-10-01: 11.49 + AGE_4_THROUGH_5: + 2025-10-01: 10.24 + AGE_6_AND_OLDER: + 2025-10-01: 9.29 +DODGE_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 9.38 + AGE_2_THROUGH_3: + 2025-10-01: 8.15 + AGE_4_THROUGH_5: + 2025-10-01: 7.29 + AGE_6_AND_OLDER: + 2025-10-01: 7.29 +DOOR_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 10.15 + AGE_2_THROUGH_3: + 2025-10-01: 8.75 + AGE_4_THROUGH_5: + 2025-10-01: 8.15 + AGE_6_AND_OLDER: + 2025-10-01: 7.29 +DOUGLAS_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 8.58 + AGE_2_THROUGH_3: + 2025-10-01: 7.46 + AGE_4_THROUGH_5: + 2025-10-01: 6.86 + AGE_6_AND_OLDER: + 2025-10-01: 5.83 +DUNN_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 7.86 + AGE_2_THROUGH_3: + 2025-10-01: 7.38 + AGE_4_THROUGH_5: + 2025-10-01: 7.38 + AGE_6_AND_OLDER: + 2025-10-01: 5.86 +EAU_CLAIRE_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 9 + AGE_2_THROUGH_3: + 2025-10-01: 8.43 + AGE_4_THROUGH_5: + 2025-10-01: 7.72 + AGE_6_AND_OLDER: + 2025-10-01: 6.86 +FLORENCE_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 9.38 + AGE_2_THROUGH_3: + 2025-10-01: 8.15 + AGE_4_THROUGH_5: + 2025-10-01: 7.29 + AGE_6_AND_OLDER: + 2025-10-01: 7.29 +FOND_DU_LAC_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 9.38 + AGE_2_THROUGH_3: + 2025-10-01: 8.15 + AGE_4_THROUGH_5: + 2025-10-01: 7.29 + AGE_6_AND_OLDER: + 2025-10-01: 7.29 +FOREST_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 7.72 + AGE_2_THROUGH_3: + 2025-10-01: 7 + AGE_4_THROUGH_5: + 2025-10-01: 6.86 + AGE_6_AND_OLDER: + 2025-10-01: 6.86 +GRANT_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 9.78 + AGE_2_THROUGH_3: + 2025-10-01: 8 + AGE_4_THROUGH_5: + 2025-10-01: 6.58 + AGE_6_AND_OLDER: + 2025-10-01: 6.29 +GREEN_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 8.58 + AGE_2_THROUGH_3: + 2025-10-01: 7.72 + AGE_4_THROUGH_5: + 2025-10-01: 7.72 + AGE_6_AND_OLDER: + 2025-10-01: 7 +GREEN_LAKE_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 9.78 + AGE_2_THROUGH_3: + 2025-10-01: 8 + AGE_4_THROUGH_5: + 2025-10-01: 6.58 + AGE_6_AND_OLDER: + 2025-10-01: 6.29 +IOWA_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 10.95 + AGE_2_THROUGH_3: + 2025-10-01: 9.43 + AGE_4_THROUGH_5: + 2025-10-01: 8.58 + AGE_6_AND_OLDER: + 2025-10-01: 7.55 +IRON_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 7.61 + AGE_2_THROUGH_3: + 2025-10-01: 6.72 + AGE_4_THROUGH_5: + 2025-10-01: 6.47 + AGE_6_AND_OLDER: + 2025-10-01: 6.47 +JACKSON_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 10.15 + AGE_2_THROUGH_3: + 2025-10-01: 8.75 + AGE_4_THROUGH_5: + 2025-10-01: 8.15 + AGE_6_AND_OLDER: + 2025-10-01: 7.29 +JEFFERSON_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 8.35 + AGE_2_THROUGH_3: + 2025-10-01: 7.26 + AGE_4_THROUGH_5: + 2025-10-01: 6.69 + AGE_6_AND_OLDER: + 2025-10-01: 5.58 +JUNEAU_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 7.72 + AGE_2_THROUGH_3: + 2025-10-01: 7 + AGE_4_THROUGH_5: + 2025-10-01: 6.86 + AGE_6_AND_OLDER: + 2025-10-01: 6.86 +KENOSHA_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 9.78 + AGE_2_THROUGH_3: + 2025-10-01: 8 + AGE_4_THROUGH_5: + 2025-10-01: 6.58 + AGE_6_AND_OLDER: + 2025-10-01: 6.29 +KEWAUNEE_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 8.86 + AGE_2_THROUGH_3: + 2025-10-01: 8.58 + AGE_4_THROUGH_5: + 2025-10-01: 7.89 + AGE_6_AND_OLDER: + 2025-10-01: 7.15 +LA_CROSSE_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 8.26 + AGE_2_THROUGH_3: + 2025-10-01: 7.43 + AGE_4_THROUGH_5: + 2025-10-01: 7.15 + AGE_6_AND_OLDER: + 2025-10-01: 7.15 +LAFAYETTE_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 9.78 + AGE_2_THROUGH_3: + 2025-10-01: 8 + AGE_4_THROUGH_5: + 2025-10-01: 6.58 + AGE_6_AND_OLDER: + 2025-10-01: 6.29 +LANGLADE_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 9.78 + AGE_2_THROUGH_3: + 2025-10-01: 8 + AGE_4_THROUGH_5: + 2025-10-01: 6.58 + AGE_6_AND_OLDER: + 2025-10-01: 6.29 +LINCOLN_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 7.61 + AGE_2_THROUGH_3: + 2025-10-01: 6.72 + AGE_4_THROUGH_5: + 2025-10-01: 6.47 + AGE_6_AND_OLDER: + 2025-10-01: 6.47 +MANITOWOC_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 7.61 + AGE_2_THROUGH_3: + 2025-10-01: 6.72 + AGE_4_THROUGH_5: + 2025-10-01: 6.47 + AGE_6_AND_OLDER: + 2025-10-01: 6.47 +MARATHON_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 8.58 + AGE_2_THROUGH_3: + 2025-10-01: 7.46 + AGE_4_THROUGH_5: + 2025-10-01: 6.86 + AGE_6_AND_OLDER: + 2025-10-01: 5.83 +MARINETTE_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 7.61 + AGE_2_THROUGH_3: + 2025-10-01: 6.72 + AGE_4_THROUGH_5: + 2025-10-01: 6.47 + AGE_6_AND_OLDER: + 2025-10-01: 6.47 +MARQUETTE_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 7.61 + AGE_2_THROUGH_3: + 2025-10-01: 6.72 + AGE_4_THROUGH_5: + 2025-10-01: 6.47 + AGE_6_AND_OLDER: + 2025-10-01: 6.47 +MENOMINEE_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 11.15 + AGE_2_THROUGH_3: + 2025-10-01: 9.72 + AGE_4_THROUGH_5: + 2025-10-01: 8.72 + AGE_6_AND_OLDER: + 2025-10-01: 7.86 +MILWAUKEE_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 11.15 + AGE_2_THROUGH_3: + 2025-10-01: 9.72 + AGE_4_THROUGH_5: + 2025-10-01: 8.72 + AGE_6_AND_OLDER: + 2025-10-01: 7.86 +MONROE_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 9.78 + AGE_2_THROUGH_3: + 2025-10-01: 8 + AGE_4_THROUGH_5: + 2025-10-01: 6.58 + AGE_6_AND_OLDER: + 2025-10-01: 6.29 +OCONTO_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 9.38 + AGE_2_THROUGH_3: + 2025-10-01: 8.15 + AGE_4_THROUGH_5: + 2025-10-01: 7.29 + AGE_6_AND_OLDER: + 2025-10-01: 7.29 +ONEIDA_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 9 + AGE_2_THROUGH_3: + 2025-10-01: 8.58 + AGE_4_THROUGH_5: + 2025-10-01: 7.72 + AGE_6_AND_OLDER: + 2025-10-01: 7.72 +OUTAGAMIE_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 8.86 + AGE_2_THROUGH_3: + 2025-10-01: 8.58 + AGE_4_THROUGH_5: + 2025-10-01: 7.89 + AGE_6_AND_OLDER: + 2025-10-01: 7.15 +OZAUKEE_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 11.15 + AGE_2_THROUGH_3: + 2025-10-01: 9.72 + AGE_4_THROUGH_5: + 2025-10-01: 8.72 + AGE_6_AND_OLDER: + 2025-10-01: 7.86 +PEPIN_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 9 + AGE_2_THROUGH_3: + 2025-10-01: 8.43 + AGE_4_THROUGH_5: + 2025-10-01: 7.72 + AGE_6_AND_OLDER: + 2025-10-01: 6.86 +PIERCE_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 8.86 + AGE_2_THROUGH_3: + 2025-10-01: 8.58 + AGE_4_THROUGH_5: + 2025-10-01: 7.89 + AGE_6_AND_OLDER: + 2025-10-01: 7.15 +POLK_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 8.58 + AGE_2_THROUGH_3: + 2025-10-01: 7.46 + AGE_4_THROUGH_5: + 2025-10-01: 6.86 + AGE_6_AND_OLDER: + 2025-10-01: 5.83 +PORTAGE_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 8.86 + AGE_2_THROUGH_3: + 2025-10-01: 8.58 + AGE_4_THROUGH_5: + 2025-10-01: 8 + AGE_6_AND_OLDER: + 2025-10-01: 7.43 +PRICE_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 9.78 + AGE_2_THROUGH_3: + 2025-10-01: 8 + AGE_4_THROUGH_5: + 2025-10-01: 6.58 + AGE_6_AND_OLDER: + 2025-10-01: 6.29 +RACINE_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 9.78 + AGE_2_THROUGH_3: + 2025-10-01: 8 + AGE_4_THROUGH_5: + 2025-10-01: 6.58 + AGE_6_AND_OLDER: + 2025-10-01: 6.29 +RICHLAND_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 7.72 + AGE_2_THROUGH_3: + 2025-10-01: 7 + AGE_4_THROUGH_5: + 2025-10-01: 6.86 + AGE_6_AND_OLDER: + 2025-10-01: 6.86 +ROCK_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 9.78 + AGE_2_THROUGH_3: + 2025-10-01: 8 + AGE_4_THROUGH_5: + 2025-10-01: 6.58 + AGE_6_AND_OLDER: + 2025-10-01: 6.29 +RUSK_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 9.78 + AGE_2_THROUGH_3: + 2025-10-01: 8 + AGE_4_THROUGH_5: + 2025-10-01: 6.58 + AGE_6_AND_OLDER: + 2025-10-01: 6.29 +SAUK_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 8.35 + AGE_2_THROUGH_3: + 2025-10-01: 7.26 + AGE_4_THROUGH_5: + 2025-10-01: 6.69 + AGE_6_AND_OLDER: + 2025-10-01: 5.58 +SAWYER_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 5.86 + AGE_2_THROUGH_3: + 2025-10-01: 5.29 + AGE_4_THROUGH_5: + 2025-10-01: 5.29 + AGE_6_AND_OLDER: + 2025-10-01: 5.29 +SHAWANO_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 7.72 + AGE_2_THROUGH_3: + 2025-10-01: 7 + AGE_4_THROUGH_5: + 2025-10-01: 6.86 + AGE_6_AND_OLDER: + 2025-10-01: 6.86 +SHEBOYGAN_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 13.72 + AGE_2_THROUGH_3: + 2025-10-01: 11.49 + AGE_4_THROUGH_5: + 2025-10-01: 10.24 + AGE_6_AND_OLDER: + 2025-10-01: 9.29 +ST_CROIX_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 10.86 + AGE_2_THROUGH_3: + 2025-10-01: 8.86 + AGE_4_THROUGH_5: + 2025-10-01: 8.43 + AGE_6_AND_OLDER: + 2025-10-01: 8.58 +TAYLOR_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 8.58 + AGE_2_THROUGH_3: + 2025-10-01: 7.46 + AGE_4_THROUGH_5: + 2025-10-01: 6.86 + AGE_6_AND_OLDER: + 2025-10-01: 5.83 +TREMPEALEAU_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 10.86 + AGE_2_THROUGH_3: + 2025-10-01: 8.86 + AGE_4_THROUGH_5: + 2025-10-01: 8.43 + AGE_6_AND_OLDER: + 2025-10-01: 8.58 +VERNON_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 9.78 + AGE_2_THROUGH_3: + 2025-10-01: 8 + AGE_4_THROUGH_5: + 2025-10-01: 6.58 + AGE_6_AND_OLDER: + 2025-10-01: 6.29 +VILAS_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 9.78 + AGE_2_THROUGH_3: + 2025-10-01: 8 + AGE_4_THROUGH_5: + 2025-10-01: 6.58 + AGE_6_AND_OLDER: + 2025-10-01: 6.29 +WALWORTH_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 8.95 + AGE_2_THROUGH_3: + 2025-10-01: 7.89 + AGE_4_THROUGH_5: + 2025-10-01: 7.52 + AGE_6_AND_OLDER: + 2025-10-01: 7.06 +WASHBURN_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 7.61 + AGE_2_THROUGH_3: + 2025-10-01: 6.72 + AGE_4_THROUGH_5: + 2025-10-01: 6.47 + AGE_6_AND_OLDER: + 2025-10-01: 6.47 +WASHINGTON_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 9.69 + AGE_2_THROUGH_3: + 2025-10-01: 8.78 + AGE_4_THROUGH_5: + 2025-10-01: 7.52 + AGE_6_AND_OLDER: + 2025-10-01: 6.86 +WAUKESHA_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 10.95 + AGE_2_THROUGH_3: + 2025-10-01: 9.43 + AGE_4_THROUGH_5: + 2025-10-01: 8.58 + AGE_6_AND_OLDER: + 2025-10-01: 7.55 +WAUPACA_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 7.79 + AGE_2_THROUGH_3: + 2025-10-01: 6.68 + AGE_4_THROUGH_5: + 2025-10-01: 6.68 + AGE_6_AND_OLDER: + 2025-10-01: 6.68 +WAUSHARA_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 9.78 + AGE_2_THROUGH_3: + 2025-10-01: 8 + AGE_4_THROUGH_5: + 2025-10-01: 6.58 + AGE_6_AND_OLDER: + 2025-10-01: 6.29 +WINNEBAGO_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 9.58 + AGE_2_THROUGH_3: + 2025-10-01: 8.58 + AGE_4_THROUGH_5: + 2025-10-01: 7.58 + AGE_6_AND_OLDER: + 2025-10-01: 7.15 +WOOD_COUNTY_WI: + AGE_0_THROUGH_1: + 2025-10-01: 7.15 + AGE_2_THROUGH_3: + 2025-10-01: 7.15 + AGE_4_THROUGH_5: + 2025-10-01: 6.86 + AGE_6_AND_OLDER: + 2025-10-01: 6.86 diff --git a/policyengine_us/programs.yaml b/policyengine_us/programs.yaml index a5114d95d5e..10045fc803b 100644 --- a/policyengine_us/programs.yaml +++ b/policyengine_us/programs.yaml @@ -460,7 +460,7 @@ programs: category: Benefits agency: HHS status: partial - coverage: AK, AR, AL, AZ, CA, CO, CT, DE, DC, FL, GA, HI, IA, ID, IL, IN, KS, KY, LA, MA, MD, ME, MI, MN, MO, MS, MT, NC, ND, NE, NH, NJ, NM, NV, PA, RI, SC, TX, VA, VT, WA, WV + coverage: AK, AR, AL, AZ, CA, CO, CT, DE, DC, FL, GA, HI, IA, ID, IL, IN, KS, KY, LA, MA, MD, ME, MI, MN, MO, MS, MT, NC, ND, NE, NH, NJ, NM, NV, PA, RI, SC, TX, VA, VT, WA, WI, WV state_implementations: - state: AK status: complete @@ -678,6 +678,12 @@ programs: name: Washington WCCC full_name: Washington Working Connections Child Care variable: wa_wccc + - state: WI + status: complete + name: Wisconsin Shares + full_name: Wisconsin Shares Child Care Subsidy Program + variable: wi_shares + parameter_prefix: gov.states.wi.dcf.shares - state: WV status: complete name: West Virginia CCAP diff --git a/policyengine_us/tests/policy/baseline/gov/states/wi/dcf/shares/copay/wi_shares_copay.yaml b/policyengine_us/tests/policy/baseline/gov/states/wi/dcf/shares/copay/wi_shares_copay.yaml new file mode 100644 index 00000000000..9b59fbc94a7 --- /dev/null +++ b/policyengine_us/tests/policy/baseline/gov/states/wi/dcf/shares/copay/wi_shares_copay.yaml @@ -0,0 +1,253 @@ +# Wisconsin Shares assistance group copayment: copay hours (131 part time / +# 152 full time per child, group total capped at 760) times the hourly +# copayment, plus the exit-period addition of $1 for every full $5 of income +# above 200% FPL for enrolled groups. Foster children and W-2 participant +# families have a $0 copayment type. Wisconsin Shares Handbook (July 2026) +# Sections 18.2-18.4 and Appendix II; Wis. Stat. s. 49.155(1m)(c)1d.a. +# Cases 1 and 2 reproduce Appendix II Example 1 (Juniper) and Case 4 +# reproduces the Appendix II Exit-period example (Renee); incomes are derived +# from FPL ratios with spm_unit_fpg set explicitly. +- name: Case 1, two part-time children at 115% FPL owe $170.30 (Appendix II Example 1). + period: 2027-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 30 + employment_income: 27_600 # 2,300/month = 115% FPL. + person2: + age: 2 + childcare_hours_per_week: 20 + person3: + age: 4 + childcare_hours_per_week: 20 + spm_units: + spm_unit: + members: [person1, person2, person3] + spm_unit_fpg: 24_000 + households: + household: + members: [person1, person2, person3] + state_code: WI + output: + # 0.65/hour x (131 + 131) copay hours = 170.30. + wi_shares_copay: 170.30 + +- name: Case 2, the same family full time owes $197.60 (Appendix II Example 1, summer). + period: 2027-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 30 + employment_income: 27_600 # 2,300/month = 115% FPL. + person2: + age: 2 + childcare_hours_per_week: 40 + person3: + age: 4 + childcare_hours_per_week: 40 + spm_units: + spm_unit: + members: [person1, person2, person3] + spm_unit_fpg: 24_000 + households: + household: + members: [person1, person2, person3] + state_code: WI + output: + # 0.65/hour x (152 + 152) capped copay hours = 197.60. + wi_shares_copay: 197.60 + +- name: Case 3, family at 100% FPL owes no copayment. + period: 2027-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 30 + employment_income: 24_000 # 2,000/month = 100% FPL. + person2: + age: 4 + childcare_hours_per_week: 40 + spm_units: + spm_unit: + members: [person1, person2] + spm_unit_fpg: 24_000 + households: + household: + members: [person1, person2] + state_code: WI + output: + wi_shares_copay: 0 + +- name: Case 4, enrolled family at 207% FPL owes the 200% rate plus a $31 exit copayment (Appendix II). + period: 2027-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 30 + employment_income: 56_511 # 4,709.25/month = 207% of the 27,300 FPG. + person2: + age: 1 + childcare_hours_per_week: 15 + person3: + age: 3 + childcare_hours_per_week: 15 + spm_units: + spm_unit: + members: [person1, person2, person3] + is_wi_shares_enrolled: true + spm_unit_fpg: 27_300 # 2,275/month; 200% = 4,550/month. + hhs_smi: 120_000 # 85% = 8,500/month, above the family's income. + households: + household: + members: [person1, person2, person3] + state_code: WI + output: + # Initial copay: 1.46/hour x (131 + 131) = 382.52. + # Exit addition: floor((4,709.25 - 4,550) / 5) = floor(31.85) = 31. + # Total: 382.52 + 31 = 413.52. + wi_shares_copay: 413.52 + +- name: Case 5, W-2 participant family has a $0 copayment type. + period: 2027-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 30 + employment_income: 27_600 # 2,300/month = 115% FPL. + person2: + age: 4 + childcare_hours_per_week: 40 + spm_units: + spm_unit: + members: [person1, person2] + is_tanf_enrolled: true + spm_unit_fpg: 24_000 + households: + household: + members: [person1, person2] + state_code: WI + output: + wi_shares_copay: 0 + +- name: Case 6, foster child has a $0 copayment type. + period: 2027-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 30 + employment_income: 27_600 # 2,300/month = 115% FPL. + person2: + age: 4 + childcare_hours_per_week: 40 + is_in_foster_care: true + spm_units: + spm_unit: + members: [person1, person2] + spm_unit_fpg: 24_000 + households: + household: + members: [person1, person2] + state_code: WI + output: + wi_shares_copay: 0 + +- name: Case 7, six full-time children hit the 760-hour assistance group cap. + period: 2027-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 30 + employment_income: 36_000 # 3,000/month = 150% FPL. + person2: + age: 1 + childcare_hours_per_week: 40 + person3: + age: 2 + childcare_hours_per_week: 40 + person4: + age: 3 + childcare_hours_per_week: 40 + person5: + age: 4 + childcare_hours_per_week: 40 + person6: + age: 5 + childcare_hours_per_week: 40 + person7: + age: 6 + childcare_hours_per_week: 40 + spm_units: + spm_unit: + members: [person1, person2, person3, person4, person5, person6, person7] + spm_unit_fpg: 24_000 + households: + household: + members: [person1, person2, person3, person4, person5, person6, person7] + state_code: WI + output: + # Uncapped copay hours 6 x 152 = 912, capped at 760; five-or-more-children + # rate at 150% FPL is 0.63/hour: 0.63 x 760 = 478.80. + wi_shares_copay: 478.80 + +- name: Case 8, a foster child is excluded from the copayment pool while the sibling still pays. + period: 2027-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 30 + employment_income: 27_600 # 2,300/month = 115% FPL. + person2: + age: 3 + childcare_hours_per_week: 40 + is_in_foster_care: true + person3: + age: 5 + childcare_hours_per_week: 40 + spm_units: + spm_unit: + members: [person1, person2, person3] + spm_unit_fpg: 24_000 + households: + household: + members: [person1, person2, person3] + state_code: WI + output: + # The foster child contributes no copayment hours, so only one child + # counts toward the schedule column: 1.03/hour at 115% FPL. + wi_shares_copay_per_hour: 1.03 + # 1.03 x 152 full-time copay hours for the non-foster sibling. + wi_shares_copay: 156.56 + +- name: Case 9, an enrolled family less than $5 above 200% FPL pays no exit addition. + period: 2027-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 30 + employment_income: 48_048 # 4,004/month, $4 above 4,000 (200% FPL). + person2: + age: 4 + childcare_hours_per_week: 40 + spm_units: + spm_unit: + members: [person1, person2] + is_wi_shares_enrolled: true + spm_unit_fpg: 24_000 + hhs_smi: 96_000 # 85% = 6,800/month, above the family's income. + households: + household: + members: [person1, person2] + state_code: WI + output: + # Top one-child rate 2.34 x 152 copay hours = 355.68; the exit addition + # is $1 per FULL $5 above the limit: floor(4 / 5) = 0. + wi_shares_copay: 355.68 diff --git a/policyengine_us/tests/policy/baseline/gov/states/wi/dcf/shares/copay/wi_shares_copay_per_hour.yaml b/policyengine_us/tests/policy/baseline/gov/states/wi/dcf/shares/copay/wi_shares_copay_per_hour.yaml new file mode 100644 index 00000000000..d33e5f18176 --- /dev/null +++ b/policyengine_us/tests/policy/baseline/gov/states/wi/dcf/shares/copay/wi_shares_copay_per_hour.yaml @@ -0,0 +1,267 @@ +# Wisconsin Shares hourly copayment: looked up from the Copayment Schedule +# (effective 2/1/2026) by the assistance group's income as a share of the +# federal poverty guideline (floored to the lower 5% line, $0 at or below +# 100% FPL) and the number of children with authorizations (1 through 5 or +# more). Wisconsin Shares Handbook (July 2026) Section 18.2. +# spm_unit_fpg is set to 24,000/year (2,000/month) so the FPL ratios are +# exact; each child's positive care hours make them count toward the lookup. +- name: Case 1, one child at 115% of the poverty guideline. + period: 2027-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 30 + employment_income: 27_600 # 2,300/month = 115% FPL. + person2: + age: 4 + childcare_hours_per_week: 20 + spm_units: + spm_unit: + members: [person1, person2] + spm_unit_fpg: 24_000 + households: + household: + members: [person1, person2] + state_code: WI + output: + wi_shares_copay_per_hour: 1.03 + +- name: Case 2, two children at 115% of the poverty guideline. + period: 2027-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 30 + employment_income: 27_600 # 2,300/month = 115% FPL. + person2: + age: 2 + childcare_hours_per_week: 20 + person3: + age: 4 + childcare_hours_per_week: 20 + spm_units: + spm_unit: + members: [person1, person2, person3] + spm_unit_fpg: 24_000 + households: + household: + members: [person1, person2, person3] + state_code: WI + output: + wi_shares_copay_per_hour: 0.65 + +- name: Case 3, three children at 130% of the poverty guideline. + period: 2027-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 30 + employment_income: 31_200 # 2,600/month = 130% FPL. + person2: + age: 1 + childcare_hours_per_week: 20 + person3: + age: 3 + childcare_hours_per_week: 20 + person4: + age: 5 + childcare_hours_per_week: 20 + spm_units: + spm_unit: + members: [person1, person2, person3, person4] + spm_unit_fpg: 24_000 + households: + household: + members: [person1, person2, person3, person4] + state_code: WI + output: + wi_shares_copay_per_hour: 0.67 + +- name: Case 4, four children at 150% of the poverty guideline. + period: 2027-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 30 + employment_income: 36_000 # 3,000/month = 150% FPL. + person2: + age: 1 + childcare_hours_per_week: 20 + person3: + age: 3 + childcare_hours_per_week: 20 + person4: + age: 5 + childcare_hours_per_week: 20 + person5: + age: 7 + childcare_hours_per_week: 20 + spm_units: + spm_unit: + members: [person1, person2, person3, person4, person5] + spm_unit_fpg: 24_000 + households: + household: + members: [person1, person2, person3, person4, person5] + state_code: WI + output: + wi_shares_copay_per_hour: 0.69 + +- name: Case 5, six children use the five-or-more column at 150% of the poverty guideline. + period: 2027-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 30 + employment_income: 36_000 # 3,000/month = 150% FPL. + person2: + age: 1 + childcare_hours_per_week: 20 + person3: + age: 2 + childcare_hours_per_week: 20 + person4: + age: 3 + childcare_hours_per_week: 20 + person5: + age: 4 + childcare_hours_per_week: 20 + person6: + age: 5 + childcare_hours_per_week: 20 + person7: + age: 6 + childcare_hours_per_week: 20 + spm_units: + spm_unit: + members: [person1, person2, person3, person4, person5, person6, person7] + spm_unit_fpg: 24_000 + households: + household: + members: [person1, person2, person3, person4, person5, person6, person7] + state_code: WI + output: + wi_shares_copay_per_hour: 0.63 + +- name: Case 6, income at 100% of the poverty guideline pays no copayment. + period: 2027-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 30 + employment_income: 24_000 # 2,000/month = 100% FPL. + person2: + age: 2 + childcare_hours_per_week: 20 + person3: + age: 4 + childcare_hours_per_week: 20 + spm_units: + spm_unit: + members: [person1, person2, person3] + spm_unit_fpg: 24_000 + households: + household: + members: [person1, person2, person3] + state_code: WI + output: + wi_shares_copay_per_hour: 0 + +- name: Case 7, income between two lines floors to the lower 5% level. + period: 2027-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 30 + employment_income: 28_080 # 2,340/month = 117% FPL, floors to the 115% line. + person2: + age: 4 + childcare_hours_per_week: 20 + spm_units: + spm_unit: + members: [person1, person2] + spm_unit_fpg: 24_000 + households: + household: + members: [person1, person2] + state_code: WI + output: + wi_shares_copay_per_hour: 1.03 + +- name: Case 8, income at 200% of the poverty guideline uses the top schedule rate. + period: 2027-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 30 + employment_income: 48_000 # 4,000/month = 200% FPL; the 200% row equals the 195% row. + person2: + age: 2 + childcare_hours_per_week: 20 + person3: + age: 4 + childcare_hours_per_week: 20 + spm_units: + spm_unit: + members: [person1, person2, person3] + spm_unit_fpg: 24_000 + households: + household: + members: [person1, person2, person3] + state_code: WI + output: + wi_shares_copay_per_hour: 1.46 + +- name: Case 9, income at 103% of the poverty guideline floors to the $0 line at 100%. + period: 2027-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 30 + employment_income: 24_720 # 2,060/month = 103% FPL, floors to the 100% line. + person2: + age: 4 + childcare_hours_per_week: 20 + spm_units: + spm_unit: + members: [person1, person2] + spm_unit_fpg: 24_000 + households: + household: + members: [person1, person2] + state_code: WI + output: + # Above 100% FPL, but the schedule's lowest positive line is 105%. + wi_shares_copay_per_hour: 0 + +- name: Case 10, income at exactly 105% of the poverty guideline uses the 105% line. + period: 2027-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 30 + employment_income: 25_200 # 2,100/month = exactly 105% FPL. + person2: + age: 4 + childcare_hours_per_week: 20 + spm_units: + spm_unit: + members: [person1, person2] + spm_unit_fpg: 24_000 + households: + household: + members: [person1, person2] + state_code: WI + output: + # The first positive band edge: one child at the 105% line pays 0.90. + wi_shares_copay_per_hour: 0.90 diff --git a/policyengine_us/tests/policy/baseline/gov/states/wi/dcf/shares/eligibility/wi_shares_activity_eligible.yaml b/policyengine_us/tests/policy/baseline/gov/states/wi/dcf/shares/eligibility/wi_shares_activity_eligible.yaml new file mode 100644 index 00000000000..6d42720f9d1 --- /dev/null +++ b/policyengine_us/tests/policy/baseline/gov/states/wi/dcf/shares/eligibility/wi_shares_activity_eligible.yaml @@ -0,0 +1,151 @@ +# Wisconsin Shares activity eligibility: every parent (head and spouse) in +# the assistance group must participate in an approved activity, with +# meets_ccdf_activity_test as an OR fallback covering approved activities +# PolicyEngine does not individually model (FSET, job search, temporary +# break). Wisconsin Shares Handbook (July 2026) Sections 4.8 and 5.1. +- name: Case 1, single employed parent satisfies the activity test. + period: 2027-01 + input: + people: + person1: + age: 30 + weekly_hours_worked_before_lsr: 40 + person2: + age: 4 + spm_units: + spm_unit: + members: [person1, person2] + households: + household: + members: [person1, person2] + state_code: WI + output: + wi_shares_activity_eligible: true + +- name: Case 2, two parents with one idle parent fail the activity test. + period: 2027-01 + input: + people: + person1: + age: 30 + weekly_hours_worked_before_lsr: 40 + person2: + age: 32 + weekly_hours_worked_before_lsr: 0 + person3: + age: 4 + spm_units: + spm_unit: + members: [person1, person2, person3] + households: + household: + members: [person1, person2, person3] + state_code: WI + output: + wi_shares_activity_eligible: false + +- name: Case 3, two employed parents satisfy the activity test. + period: 2027-01 + input: + people: + person1: + age: 30 + weekly_hours_worked_before_lsr: 40 + person2: + age: 32 + weekly_hours_worked_before_lsr: 25 + person3: + age: 4 + spm_units: + spm_unit: + members: [person1, person2, person3] + households: + household: + members: [person1, person2, person3] + state_code: WI + output: + wi_shares_activity_eligible: true + +- name: Case 4, idle parent covered by the CCDF activity test fallback is activity eligible. + period: 2027-01 + input: + people: + person1: + age: 30 + weekly_hours_worked_before_lsr: 0 + person2: + age: 4 + spm_units: + spm_unit: + members: [person1, person2] + meets_ccdf_activity_test: true + households: + household: + members: [person1, person2] + state_code: WI + output: + wi_shares_activity_eligible: true + +- name: Case 5, idle single parent without the fallback fails the activity test. + period: 2027-01 + input: + people: + person1: + age: 30 + weekly_hours_worked_before_lsr: 0 + person2: + age: 4 + spm_units: + spm_unit: + members: [person1, person2] + households: + household: + members: [person1, person2] + state_code: WI + output: + wi_shares_activity_eligible: false + +- name: Case 6, one employed parent and one full-time student parent satisfy the activity test. + period: 2027-01 + input: + people: + person1: + age: 30 + weekly_hours_worked_before_lsr: 40 + person2: + age: 32 + weekly_hours_worked_before_lsr: 0 + is_full_time_student: true + person3: + age: 4 + spm_units: + spm_unit: + members: [person1, person2, person3] + households: + household: + members: [person1, person2, person3] + state_code: WI + output: + wi_shares_activity_eligible: true + +- name: Case 7, an idle teenage dependent does not block the activity test. + period: 2027-01 + input: + people: + person1: + age: 30 + weekly_hours_worked_before_lsr: 40 + person2: + age: 16 + weekly_hours_worked_before_lsr: 0 # Not a head or spouse, so not tested. + person3: + age: 4 + spm_units: + spm_unit: + members: [person1, person2, person3] + households: + household: + members: [person1, person2, person3] + state_code: WI + output: + wi_shares_activity_eligible: true diff --git a/policyengine_us/tests/policy/baseline/gov/states/wi/dcf/shares/eligibility/wi_shares_asset_eligible.yaml b/policyengine_us/tests/policy/baseline/gov/states/wi/dcf/shares/eligibility/wi_shares_asset_eligible.yaml new file mode 100644 index 00000000000..f7cfc0c20ea --- /dev/null +++ b/policyengine_us/tests/policy/baseline/gov/states/wi/dcf/shares/eligibility/wi_shares_asset_eligible.yaml @@ -0,0 +1,99 @@ +# Wisconsin Shares liquid asset test: the assistance group's liquid assets +# must be at or below $25,000. Only liquid assets are included in the asset +# test. Wisconsin Shares Handbook (July 2026) Section 6.5; +# Wis. Stat. s. 49.155(1m)(cm). +- name: Case 1, family below the liquid asset limit is asset eligible. + period: 2027-01 + input: + people: + person1: + age: 30 + person2: + age: 4 + spm_units: + spm_unit: + members: [person1, person2] + spm_unit_cash_assets: 20_000 + households: + household: + members: [person1, person2] + state_code: WI + output: + wi_shares_asset_eligible: true + +- name: Case 2, family at exactly the $25,000 limit is asset eligible. + period: 2027-01 + input: + people: + person1: + age: 30 + person2: + age: 4 + spm_units: + spm_unit: + members: [person1, person2] + spm_unit_cash_assets: 25_000 + households: + household: + members: [person1, person2] + state_code: WI + output: + wi_shares_asset_eligible: true + +- name: Case 3, family just above the $25,000 limit is not asset eligible. + period: 2027-01 + input: + people: + person1: + age: 30 + person2: + age: 4 + spm_units: + spm_unit: + members: [person1, person2] + spm_unit_cash_assets: 25_001 + households: + household: + members: [person1, person2] + state_code: WI + output: + wi_shares_asset_eligible: false + +- name: Case 4, family caring for a foster child is exempt from the asset test. + period: 2027-01 + input: + people: + person1: + age: 30 + person2: + age: 4 + is_in_foster_care: true + spm_units: + spm_unit: + members: [person1, person2] + spm_unit_cash_assets: 30_000 # Above the limit, but foster families are exempt. + households: + household: + members: [person1, person2] + state_code: WI + output: + wi_shares_asset_eligible: true + +- name: Case 5, family one dollar below the $25,000 limit is asset eligible. + period: 2027-01 + input: + people: + person1: + age: 30 + person2: + age: 4 + spm_units: + spm_unit: + members: [person1, person2] + spm_unit_cash_assets: 24_999 + households: + household: + members: [person1, person2] + state_code: WI + output: + wi_shares_asset_eligible: true diff --git a/policyengine_us/tests/policy/baseline/gov/states/wi/dcf/shares/eligibility/wi_shares_eligible.yaml b/policyengine_us/tests/policy/baseline/gov/states/wi/dcf/shares/eligibility/wi_shares_eligible.yaml new file mode 100644 index 00000000000..bf4987b578c --- /dev/null +++ b/policyengine_us/tests/policy/baseline/gov/states/wi/dcf/shares/eligibility/wi_shares_eligible.yaml @@ -0,0 +1,157 @@ +# Wisconsin Shares overall eligibility combines: an eligible child in the +# assistance group, the two-tier income test, the $25,000 liquid asset test, +# and the parental activity test. Wisconsin Shares Handbook (July 2026) +# Chapters 4-6; Wis. Stat. s. 49.155(1m). +# FPG and SMI are set explicitly (FPG 24,000/year = 2,000/month; SMI +# 96,000/year) so income ratios are exact. +- name: Case 1, working family with a young child passes every test. + period: 2027-01 + input: + people: + person1: + age: 30 + employment_income: 36_000 # 3,000/month = 150% FPL. + person2: + age: 4 + childcare_hours_per_week: 20 + spm_units: + spm_unit: + members: [person1, person2] + spm_unit_fpg: 24_000 + hhs_smi: 96_000 + households: + household: + members: [person1, person2] + state_code: WI + output: + wi_shares_eligible: true + +- name: Case 2, single adult without children is not eligible. + period: 2027-01 + input: + people: + person1: + age: 30 + employment_income: 36_000 + spm_units: + spm_unit: + members: [person1] + spm_unit_fpg: 24_000 + hhs_smi: 96_000 + households: + household: + members: [person1] + state_code: WI + output: + wi_shares_eligible: false + +- name: Case 3, family whose only child is fourteen and not disabled is not eligible. + period: 2027-01 + input: + people: + person1: + age: 30 + employment_income: 36_000 + person2: + age: 14 + spm_units: + spm_unit: + members: [person1, person2] + spm_unit_fpg: 24_000 + hhs_smi: 96_000 + households: + household: + members: [person1, person2] + state_code: WI + output: + wi_shares_eligible: false + +- name: Case 4, family above the liquid asset limit is not eligible. + period: 2027-01 + input: + people: + person1: + age: 30 + employment_income: 36_000 + person2: + age: 4 + childcare_hours_per_week: 20 + spm_units: + spm_unit: + members: [person1, person2] + spm_unit_cash_assets: 30_000 + spm_unit_fpg: 24_000 + hhs_smi: 96_000 + households: + household: + members: [person1, person2] + state_code: WI + output: + wi_shares_eligible: false + +- name: Case 5, applicant family above 200% of the poverty guideline is not eligible. + period: 2027-01 + input: + people: + person1: + age: 30 + employment_income: 52_800 # 4,400/month > 4,000 (200% FPL). + person2: + age: 4 + childcare_hours_per_week: 20 + spm_units: + spm_unit: + members: [person1, person2] + spm_unit_fpg: 24_000 + hhs_smi: 96_000 + households: + household: + members: [person1, person2] + state_code: WI + output: + wi_shares_eligible: false + +- name: Case 6, family whose only parent has no approved activity is not eligible. + period: 2027-01 + input: + people: + person1: + age: 30 + weekly_hours_worked_before_lsr: 0 + person2: + age: 4 + childcare_hours_per_week: 20 + spm_units: + spm_unit: + members: [person1, person2] + spm_unit_fpg: 24_000 + hhs_smi: 96_000 + households: + household: + members: [person1, person2] + state_code: WI + output: + wi_shares_eligible: false + +- name: Case 7, family whose only child is undocumented is not eligible. + period: 2027-01 + input: + people: + person1: + age: 30 + employment_income: 36_000 + person2: + age: 4 + childcare_hours_per_week: 20 + immigration_status: UNDOCUMENTED + spm_units: + spm_unit: + members: [person1, person2] + spm_unit_fpg: 24_000 + hhs_smi: 96_000 + households: + household: + members: [person1, person2] + state_code: WI + output: + wi_shares_eligible: false diff --git a/policyengine_us/tests/policy/baseline/gov/states/wi/dcf/shares/eligibility/wi_shares_eligible_child.yaml b/policyengine_us/tests/policy/baseline/gov/states/wi/dcf/shares/eligibility/wi_shares_eligible_child.yaml new file mode 100644 index 00000000000..b758c650c22 --- /dev/null +++ b/policyengine_us/tests/policy/baseline/gov/states/wi/dcf/shares/eligibility/wi_shares_eligible_child.yaml @@ -0,0 +1,130 @@ +# Wisconsin Shares eligible child: under age 13 ("includes 12 years, 11 +# months"), or under age 19 with a verified disability, and the child +# (beneficiary) must be a U.S. citizen or qualified immigrant. +# Wisconsin Shares Handbook (July 2026) Sections 4.3 and 4.5; +# Wis. Stat. s. 49.155(1m)(a) intro. +- name: Case 1, five-year-old citizen is an eligible child. + period: 2027-01 + input: + people: + person1: + age: 5 + households: + household: + members: [person1] + state_code: WI + output: + wi_shares_eligible_child: true + +- name: Case 2, twelve-year-old is still an eligible child. + period: 2027-01 + input: + people: + person1: + age: 12 + households: + household: + members: [person1] + state_code: WI + output: + wi_shares_eligible_child: true + +- name: Case 3, thirteen-year-old without a disability is not an eligible child. + period: 2027-01 + input: + people: + person1: + age: 13 + households: + household: + members: [person1] + state_code: WI + output: + wi_shares_eligible_child: false + +- name: Case 4, fifteen-year-old with a disability is an eligible child. + period: 2027-01 + input: + people: + person1: + age: 15 + is_disabled: true + households: + household: + members: [person1] + state_code: WI + output: + wi_shares_eligible_child: true + +- name: Case 5, nineteen-year-old with a disability is not an eligible child. + period: 2027-01 + input: + people: + person1: + age: 19 + is_disabled: true + households: + household: + members: [person1] + state_code: WI + output: + wi_shares_eligible_child: false + +- name: Case 6, undocumented child is not an eligible child. + period: 2027-01 + input: + people: + person1: + age: 5 + immigration_status: UNDOCUMENTED + households: + household: + members: [person1] + state_code: WI + output: + wi_shares_eligible_child: false + +- name: Case 7, refugee child is a qualified immigrant and an eligible child. + period: 2027-01 + input: + people: + person1: + age: 5 + immigration_status: REFUGEE + households: + household: + members: [person1] + state_code: WI + output: + wi_shares_eligible_child: true + +- name: Case 8, eighteen-year-old with a disability is still an eligible child. + period: 2027-01 + input: + people: + person1: + age: 18 + is_disabled: true + households: + household: + members: [person1] + state_code: WI + output: + wi_shares_eligible_child: true + +- name: Case 9, undocumented teenager with a disability is not an eligible child. + period: 2027-01 + input: + people: + person1: + age: 15 + is_disabled: true + immigration_status: UNDOCUMENTED + households: + household: + members: [person1] + state_code: WI + output: + # Age eligible through the disability pathway, but the immigration + # requirement applies to every pathway. + wi_shares_eligible_child: false diff --git a/policyengine_us/tests/policy/baseline/gov/states/wi/dcf/shares/eligibility/wi_shares_income_eligible.yaml b/policyengine_us/tests/policy/baseline/gov/states/wi/dcf/shares/eligibility/wi_shares_income_eligible.yaml new file mode 100644 index 00000000000..ae2ede58c11 --- /dev/null +++ b/policyengine_us/tests/policy/baseline/gov/states/wi/dcf/shares/eligibility/wi_shares_income_eligible.yaml @@ -0,0 +1,179 @@ +# Wisconsin Shares two-tier income test: new applicants must have gross +# monthly income at or below 200% of the federal poverty guideline; enrolled +# assistance groups remain income eligible until gross income exceeds 85% of +# the state median income. Wisconsin Shares Handbook (July 2026) Sections +# 6.1.1 and 6.1.2; Wis. Stat. s. 49.155(1m)(c)1. and (1m)(c)1d.b. +# spm_unit_fpg and hhs_smi are set explicitly so the band math is exact and +# immune to uprating drift: FPG 24,000/year = 2,000/month (200% = 4,000); +# SMI 96,000/year = 8,000/month (85% = 6,800). +- name: Case 1, applicant at 150% of the poverty guideline is income eligible. + period: 2027-01 + input: + people: + person1: + age: 30 + employment_income: 36_000 # 3,000/month = 150% FPL. + person2: + age: 4 + spm_units: + spm_unit: + members: [person1, person2] + spm_unit_fpg: 24_000 + hhs_smi: 96_000 + households: + household: + members: [person1, person2] + state_code: WI + output: + wi_shares_income_eligible: true + +- name: Case 2, applicant just above 200% of the poverty guideline is not income eligible. + period: 2027-01 + input: + people: + person1: + age: 30 + employment_income: 48_060 # 4,005/month > 4,000 (200% FPL). + person2: + age: 4 + spm_units: + spm_unit: + members: [person1, person2] + spm_unit_fpg: 24_000 + hhs_smi: 96_000 + households: + household: + members: [person1, person2] + state_code: WI + output: + wi_shares_income_eligible: false + +- name: Case 3, enrolled family with the same income stays eligible under the 85% SMI tier. + period: 2027-01 + input: + people: + person1: + age: 30 + employment_income: 48_060 # 4,005/month, above 200% FPL but below 6,800 (85% SMI). + person2: + age: 4 + spm_units: + spm_unit: + members: [person1, person2] + is_wi_shares_enrolled: true + spm_unit_fpg: 24_000 + hhs_smi: 96_000 + households: + household: + members: [person1, person2] + state_code: WI + output: + wi_shares_income_eligible: true + +- name: Case 4, enrolled family above 85% of the state median income is not income eligible. + period: 2027-01 + input: + people: + person1: + age: 30 + employment_income: 84_000 # 7,000/month > 6,800 (85% SMI). + person2: + age: 4 + spm_units: + spm_unit: + members: [person1, person2] + is_wi_shares_enrolled: true + spm_unit_fpg: 24_000 + hhs_smi: 96_000 + households: + household: + members: [person1, person2] + state_code: WI + output: + wi_shares_income_eligible: false + +- name: Case 5, applicant just below 200% of the poverty guideline is income eligible. + period: 2027-01 + input: + people: + person1: + age: 30 + employment_income: 47_988 # 3,999/month < 4,000 (200% FPL). + person2: + age: 4 + spm_units: + spm_unit: + members: [person1, person2] + spm_unit_fpg: 24_000 + hhs_smi: 96_000 + households: + household: + members: [person1, person2] + state_code: WI + output: + wi_shares_income_eligible: true + +- name: Case 6, applicant at exactly 200% of the poverty guideline is income eligible. + period: 2027-01 + input: + people: + person1: + age: 30 + employment_income: 48_000 # Exactly 4,000/month = 200% FPL ("at or below"). + person2: + age: 4 + spm_units: + spm_unit: + members: [person1, person2] + spm_unit_fpg: 24_000 + hhs_smi: 96_000 + households: + household: + members: [person1, person2] + state_code: WI + output: + wi_shares_income_eligible: true + +- name: Case 7, enrolled family one dollar below 85% of the state median income is income eligible. + period: 2027-01 + input: + people: + person1: + age: 30 + employment_income: 81_588 # 6,799/month, one dollar below 6,800 (85% SMI). + person2: + age: 4 + spm_units: + spm_unit: + members: [person1, person2] + is_wi_shares_enrolled: true + spm_unit_fpg: 24_000 + hhs_smi: 96_000 + households: + household: + members: [person1, person2] + state_code: WI + output: + wi_shares_income_eligible: true + +- name: Case 8, enrolled family one dollar above 85% of the state median income is not income eligible. + period: 2027-01 + input: + people: + person1: + age: 30 + employment_income: 81_612 # 6,801/month, one dollar above 6,800 (85% SMI). + person2: + age: 4 + spm_units: + spm_unit: + members: [person1, person2] + is_wi_shares_enrolled: true + spm_unit_fpg: 24_000 + hhs_smi: 96_000 + households: + household: + members: [person1, person2] + state_code: WI + output: + wi_shares_income_eligible: false diff --git a/policyengine_us/tests/policy/baseline/gov/states/wi/dcf/shares/eligibility/wi_shares_parent_in_approved_activity.yaml b/policyengine_us/tests/policy/baseline/gov/states/wi/dcf/shares/eligibility/wi_shares_parent_in_approved_activity.yaml new file mode 100644 index 00000000000..78edc93f2c9 --- /dev/null +++ b/policyengine_us/tests/policy/baseline/gov/states/wi/dcf/shares/eligibility/wi_shares_parent_in_approved_activity.yaml @@ -0,0 +1,81 @@ +# Wisconsin Shares approved activities: employment (including +# self-employment), education, and Wisconsin Works (W-2) participation. +# Wisconsin Shares Handbook (July 2026) Sections 4.8 and 5.1; +# Wis. Stat. s. 49.155(1m)(a)1.-6. +# weekly_hours_worked_before_lsr defaults to 40, so non-working cases must +# set it to 0 explicitly. +- name: Case 1, employed parent is in an approved activity. + period: 2027-01 + input: + people: + person1: + age: 30 + weekly_hours_worked_before_lsr: 30 + households: + household: + members: [person1] + state_code: WI + output: + wi_shares_parent_in_approved_activity: true + +- name: Case 2, parent with no work hours and no other activity is not in an approved activity. + period: 2027-01 + input: + people: + person1: + age: 30 + weekly_hours_worked_before_lsr: 0 + households: + household: + members: [person1] + state_code: WI + output: + wi_shares_parent_in_approved_activity: false + +- name: Case 3, full-time student parent is in an approved activity. + period: 2027-01 + input: + people: + person1: + age: 30 + weekly_hours_worked_before_lsr: 0 + is_full_time_student: true + households: + household: + members: [person1] + state_code: WI + output: + wi_shares_parent_in_approved_activity: true + +- name: Case 4, W-2 participant parent is in an approved activity. + period: 2027-01 + input: + people: + person1: + age: 30 + weekly_hours_worked_before_lsr: 0 + spm_units: + spm_unit: + members: [person1] + is_tanf_enrolled: true + households: + household: + members: [person1] + state_code: WI + output: + wi_shares_parent_in_approved_activity: true + +- name: Case 5, self-employed parent with earnings but no recorded hours is in an approved activity. + period: 2027-01 + input: + people: + person1: + age: 30 + weekly_hours_worked_before_lsr: 0 + self_employment_income: 12_000 + households: + household: + members: [person1] + state_code: WI + output: + wi_shares_parent_in_approved_activity: true diff --git a/policyengine_us/tests/policy/baseline/gov/states/wi/dcf/shares/hours/wi_shares_copay_hours.yaml b/policyengine_us/tests/policy/baseline/gov/states/wi/dcf/shares/hours/wi_shares_copay_hours.yaml new file mode 100644 index 00000000000..83c68541a29 --- /dev/null +++ b/policyengine_us/tests/policy/baseline/gov/states/wi/dcf/shares/hours/wi_shares_copay_hours.yaml @@ -0,0 +1,61 @@ +# Wisconsin Shares copayment hours per child: 131 for part-time +# authorizations and 152 for full-time authorizations (the 153rd subsidized +# hour is not charged a copayment; each child's copay hours are capped at 152 +# per provider location). Wisconsin Shares Handbook (July 2026) Section 18.2 +# and Appendix II Example 1. +- name: Case 1, part-time authorization yields 131 copayment hours. + period: 2027-01 + input: + people: + person1: + age: 4 + childcare_hours_per_week: 20 + households: + household: + members: [person1] + state_code: WI + output: + wi_shares_copay_hours: 131 + +- name: Case 2, full-time authorization yields 152 copayment hours. + period: 2027-01 + input: + people: + person1: + age: 4 + childcare_hours_per_week: 28 + households: + household: + members: [person1] + state_code: WI + output: + wi_shares_copay_hours: 152 + +- name: Case 3, above-full-time care is still capped at 152 copayment hours. + period: 2027-01 + input: + people: + person1: + age: 4 + childcare_hours_per_week: 60 + households: + household: + members: [person1] + state_code: WI + output: + wi_shares_copay_hours: 152 + +- name: Case 4, foster child has a $0 copayment type and contributes no copayment hours. + period: 2027-01 + input: + people: + person1: + age: 4 + childcare_hours_per_week: 40 + is_in_foster_care: true + households: + household: + members: [person1] + state_code: WI + output: + wi_shares_copay_hours: 0 diff --git a/policyengine_us/tests/policy/baseline/gov/states/wi/dcf/shares/hours/wi_shares_monthly_subsidized_hours.yaml b/policyengine_us/tests/policy/baseline/gov/states/wi/dcf/shares/hours/wi_shares_monthly_subsidized_hours.yaml new file mode 100644 index 00000000000..896e5c8e7a5 --- /dev/null +++ b/policyengine_us/tests/policy/baseline/gov/states/wi/dcf/shares/hours/wi_shares_monthly_subsidized_hours.yaml @@ -0,0 +1,61 @@ +# Wisconsin Shares monthly subsidized hours use fixed conversions, not the +# child's actual hours: part time converts to 30 weekly hours and full time +# to 35 weekly hours, times 4.348125 weeks per month, rounded up. +# Part time: 30 x 4.348125 = 130.44 -> 131 monthly hours. +# Full time: 35 x 4.348125 = 152.18 -> 153 monthly hours. +# Wisconsin Shares Handbook (July 2026) Section 18.5 and Appendix II. +- name: Case 1, part-time authorization converts to 131 monthly hours. + period: 2027-01 + input: + people: + person1: + age: 4 + childcare_hours_per_week: 15 + households: + household: + members: [person1] + state_code: WI + output: + wi_shares_monthly_subsidized_hours: 131 + +- name: Case 2, full-time authorization converts to 153 monthly hours. + period: 2027-01 + input: + people: + person1: + age: 4 + childcare_hours_per_week: 40 + households: + household: + members: [person1] + state_code: WI + output: + wi_shares_monthly_subsidized_hours: 153 + +- name: Case 3, sixty weekly hours stays at 153 monthly hours because the above-full-time add-on is separate. + period: 2027-01 + input: + people: + person1: + age: 4 + childcare_hours_per_week: 60 + households: + household: + members: [person1] + state_code: WI + output: + wi_shares_monthly_subsidized_hours: 153 + +- name: Case 4, child with no hours of care has no authorization and no subsidized hours. + period: 2027-01 + input: + people: + person1: + age: 4 + childcare_hours_per_week: 0 + households: + household: + members: [person1] + state_code: WI + output: + wi_shares_monthly_subsidized_hours: 0 diff --git a/policyengine_us/tests/policy/baseline/gov/states/wi/dcf/shares/hours/wi_shares_time_category.yaml b/policyengine_us/tests/policy/baseline/gov/states/wi/dcf/shares/hours/wi_shares_time_category.yaml new file mode 100644 index 00000000000..bfd972e6cc7 --- /dev/null +++ b/policyengine_us/tests/policy/baseline/gov/states/wi/dcf/shares/hours/wi_shares_time_category.yaml @@ -0,0 +1,58 @@ +# Wisconsin Shares time category: an authorization of at most 20 weekly +# hours is part time; more than 20 weekly hours is full time. +# Wisconsin Shares Handbook (July 2026) Section 16.1.1. +- name: Case 1, ten weekly hours is a part-time authorization. + period: 2027-01 + input: + people: + person1: + age: 4 + childcare_hours_per_week: 10 + households: + household: + members: [person1] + state_code: WI + output: + wi_shares_time_category: PART_TIME + +- name: Case 2, exactly twenty weekly hours is still part time. + period: 2027-01 + input: + people: + person1: + age: 4 + childcare_hours_per_week: 20 + households: + household: + members: [person1] + state_code: WI + output: + wi_shares_time_category: PART_TIME + +- name: Case 3, twenty-one weekly hours is a full-time authorization. + period: 2027-01 + input: + people: + person1: + age: 4 + childcare_hours_per_week: 21 + households: + household: + members: [person1] + state_code: WI + output: + wi_shares_time_category: FULL_TIME + +- name: Case 4, forty-five weekly hours is a full-time authorization. + period: 2027-01 + input: + people: + person1: + age: 4 + childcare_hours_per_week: 45 + households: + household: + members: [person1] + state_code: WI + output: + wi_shares_time_category: FULL_TIME diff --git a/policyengine_us/tests/policy/baseline/gov/states/wi/dcf/shares/income/wi_shares_countable_income.yaml b/policyengine_us/tests/policy/baseline/gov/states/wi/dcf/shares/income/wi_shares_countable_income.yaml new file mode 100644 index 00000000000..6be1f8112af --- /dev/null +++ b/policyengine_us/tests/policy/baseline/gov/states/wi/dcf/shares/income/wi_shares_countable_income.yaml @@ -0,0 +1,216 @@ +# Wisconsin Shares countable income: gross earned and unearned income of the +# assistance group, with these handbook disregards: court-ordered child or +# family support is fully disregarded when the monthly total is at or below +# $1,250 and fully counted when it exceeds $1,250 (a cliff); the earned +# income and SSI of minor dependents are disregarded; adult SSI counts. +# Wisconsin Shares Handbook (July 2026) Sections 6.2 and 6.3. +- name: Case 1, wages count in full. + period: 2027-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 30 + employment_income: 36_000 # 3,000/month. + person2: + age: 4 + spm_units: + spm_unit: + members: [person1, person2] + households: + household: + members: [person1, person2] + state_code: WI + output: + wi_shares_countable_income: 3_000 + +- name: Case 2, child support of $1,000 per month is fully disregarded. + period: 2027-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 30 + employment_income: 24_000 # 2,000/month. + child_support_received: 12_000 # 1,000/month, at or below the 1,250 cap. + person2: + age: 4 + spm_units: + spm_unit: + members: [person1, person2] + households: + household: + members: [person1, person2] + state_code: WI + output: + wi_shares_countable_income: 2_000 + +- name: Case 3, child support of $1,500 per month counts in its entirety. + period: 2027-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 30 + employment_income: 24_000 # 2,000/month. + child_support_received: 18_000 # 1,500/month exceeds the 1,250 cap, so all counts. + person2: + age: 4 + spm_units: + spm_unit: + members: [person1, person2] + households: + household: + members: [person1, person2] + state_code: WI + output: + wi_shares_countable_income: 3_500 # 2,000 + 1,500. + +- name: Case 4, child support of exactly $1,250 per month is still disregarded. + period: 2027-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 30 + employment_income: 24_000 # 2,000/month. + child_support_received: 15_000 # Exactly 1,250/month, not above the cap. + person2: + age: 4 + spm_units: + spm_unit: + members: [person1, person2] + households: + household: + members: [person1, person2] + state_code: WI + output: + wi_shares_countable_income: 2_000 + +- name: Case 5, earnings of a minor dependent are disregarded. + period: 2027-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 30 + employment_income: 24_000 # 2,000/month. + person2: + age: 16 + employment_income: 6_000 # Minor dependent's wages are disregarded. + spm_units: + spm_unit: + members: [person1, person2] + households: + household: + members: [person1, person2] + state_code: WI + output: + wi_shares_countable_income: 2_000 + +- name: Case 6, adult SSI counts while a minor dependent's SSI is disregarded. + period: 2027-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 30 + employment_income: 0 + ssi: 500 # Monthly, counted for adults. + person2: + age: 10 + ssi: 300 # Monthly, disregarded for minor dependents. + spm_units: + spm_unit: + members: [person1, person2] + households: + household: + members: [person1, person2] + state_code: WI + output: + wi_shares_countable_income: 500 + +- name: Case 7, Social Security, unemployment insurance, and pensions all count. + period: 2027-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 30 + social_security: 12_000 # 1,000/month. + unemployment_compensation: 6_000 # 500/month. + pension_income: 6_000 # 500/month. + person2: + age: 4 + spm_units: + spm_unit: + members: [person1, person2] + households: + household: + members: [person1, person2] + state_code: WI + output: + wi_shares_countable_income: 2_000 + +- name: Case 8, net self-employment income counts. + period: 2027-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 30 + self_employment_income: 24_000 # 2,000/month. + person2: + age: 4 + spm_units: + spm_unit: + members: [person1, person2] + households: + household: + members: [person1, person2] + state_code: WI + output: + wi_shares_countable_income: 2_000 + +- name: Case 9, a self-employment loss larger than wages floors countable income at zero. + period: 2027-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 30 + employment_income: 24_000 # 2,000/month. + self_employment_income: -36_000 # -3,000/month loss. + person2: + age: 4 + spm_units: + spm_unit: + members: [person1, person2] + households: + household: + members: [person1, person2] + state_code: WI + output: + # 2,000 - 3,000 = -1,000, floored at zero. + wi_shares_countable_income: 0 + +- name: Case 10, a minor parent's earned income counts because they are a head, not a dependent. + period: 2027-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 17 + employment_income: 24_000 # 2,000/month; the minor-dependent disregard does not apply to a head. + is_tax_unit_head_or_spouse: true # A teen parent heads their own tax unit. + person2: + age: 1 + spm_units: + spm_unit: + members: [person1, person2] + households: + household: + members: [person1, person2] + state_code: WI + output: + wi_shares_countable_income: 2_000 diff --git a/policyengine_us/tests/policy/baseline/gov/states/wi/dcf/shares/integration.yaml b/policyengine_us/tests/policy/baseline/gov/states/wi/dcf/shares/integration.yaml new file mode 100644 index 00000000000..e3c8a932551 --- /dev/null +++ b/policyengine_us/tests/policy/baseline/gov/states/wi/dcf/shares/integration.yaml @@ -0,0 +1,321 @@ +# Integration tests for the Wisconsin Shares Child Care Subsidy Program. +# End-to-end scenarios verifying the eligibility chain, the two-tier income +# test, county maximum-rate lookups (statewide table effective 10/1/2025), +# the copayment schedule (effective 2/1/2026), the exit-period copayment +# addition, and the flow into the federal child_care_subsidies total. +# +# Cases 1-5 reproduce the worked examples in Wisconsin Shares Handbook +# (July 2026) Appendix II. The handbook computes copays from the family's +# FPL percentage, so each case sets spm_unit_fpg explicitly (three-person +# examples: 27,300/year = 2,275/month; two-person examples: 21,650/year = +# 1,804.17/month) and derives income as the example's FPL ratio. hhs_smi is +# set explicitly so the 85% SMI ongoing test is deterministic. +- name: Case 1, two part-time children at 115% FPL (Appendix II Example 1, Juniper). + period: 2027-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 30 + employment_income: 31_395 # 2,616.25/month = 115% of the 2,275 monthly FPG. + person2: + age: 3 + childcare_hours_per_week: 20 + person3: + age: 5 + childcare_hours_per_week: 20 + spm_units: + spm_unit: + members: [person1, person2, person3] + spm_unit_fpg: 27_300 + hhs_smi: 96_000 + spm_unit_pre_subsidy_childcare_expenses: 48_000 # 2,000/month per child. + households: + household: + members: [person1, person2, person3] + state_code: WI + county_str: MILWAUKEE_COUNTY_WI + output: + wi_shares_eligible_child: [false, true, true] + wi_shares_income_eligible: true + wi_shares_eligible: true + # Copay schedule at 115% FPL with two authorized children: 0.65/hour. + wi_shares_copay_per_hour: 0.65 + # 0.65 x (131 + 131) part-time copay hours = 170.30 (handbook figure). + wi_shares_copay: 170.30 + # Milwaukee licensed group part-time subsidies (hourly x 131), each less + # half the copay (85.15): + # person2 (age 3): 9.72 x 131 = 1,273.32 - 85.15 = 1,188.17. + # person3 (age 5): 8.72 x 131 = 1,142.32 - 85.15 = 1,057.17. + wi_shares_child_subsidy: [0, 1_188.17, 1_057.17] + wi_shares: 2_245.34 + # The YEAR aggregator reports the same monthly value, confirming + # wi_shares flows into the federal child_care_subsidies total. + wi_child_care_subsidies: 2_245.34 + +- name: Case 2, two full-time children at 175% FPL (Appendix II Example 2, Monique). + period: 2027-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 30 + weekly_hours_worked_before_lsr: 30 + employment_income: 47_775 # 3,981.25/month = 175% of the 2,275 monthly FPG. + person2: + age: 4 + childcare_hours_per_week: 28 + person3: + age: 2 + childcare_hours_per_week: 36 # 8 + 28 weekly hours across two providers. + spm_units: + spm_unit: + members: [person1, person2, person3] + spm_unit_fpg: 27_300 + hhs_smi: 96_000 + spm_unit_pre_subsidy_childcare_expenses: 60_000 # 2,500/month per child. + households: + household: + members: [person1, person2, person3] + state_code: WI + county_str: DANE_COUNTY_WI + output: + wi_shares_eligible: true + # Copay schedule at 175% FPL with two authorized children: 1.24/hour. + # Both children are full time: 1.24 x (152 + 152) = 376.96 (handbook + # figure). + wi_shares_copay: 376.96 + # Dane licensed group full-time subsidies, each less half the copay + # (188.48): + # person2 (age 4): min(10.24 x 153 = 1,566.72, 2,500, 1,558.03 full-time + # cell) = 1,558.03 - 188.48 = 1,369.55. + # person3 (age 2): min(11.49 x 153 = 1,757.97, 2,500, 1,747.95 full-time + # cell) = 1,747.95 - 188.48 = 1,559.47. + wi_shares_child_subsidy: [0, 1_369.55, 1_559.47] + wi_shares: 2_929.02 + +- name: Case 3, enrolled family at 207% FPL pays the exit-period copayment (Appendix II, Renee). + period: 2027-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 30 + employment_income: 56_511 # 4,709.25/month = 207% of the 2,275 monthly FPG. + person2: + age: 1 + childcare_hours_per_week: 15 + person3: + age: 3 + childcare_hours_per_week: 15 + spm_units: + spm_unit: + members: [person1, person2, person3] + is_wi_shares_enrolled: true + spm_unit_fpg: 27_300 # 200% = 4,550/month. + hhs_smi: 120_000 # 85% = 8,500/month, above the family's income. + spm_unit_pre_subsidy_childcare_expenses: 60_000 # 2,500/month per child. + households: + household: + members: [person1, person2, person3] + state_code: WI + county_str: MILWAUKEE_COUNTY_WI + output: + # Above 200% FPL but enrolled and below 85% SMI, so still eligible. + wi_shares_income_eligible: true + wi_shares_eligible: true + # Initial copay 1.46 x (131 + 131) = 382.52, plus the exit addition of + # $1 per full $5 above 200% FPL: floor((4,709.25 - 4,550) / 5) = 31. + # Total 413.52 (handbook figure). + wi_shares_copay: 413.52 + # Milwaukee licensed group part-time subsidies, each less half the copay + # (206.76): + # person2 (age 1): 11.15 x 131 = 1,460.65 - 206.76 = 1,253.89. + # person3 (age 3): 9.72 x 131 = 1,273.32 - 206.76 = 1,066.56. + wi_shares_child_subsidy: [0, 1_253.89, 1_066.56] + wi_shares: 2_320.45 + +- name: Case 4, copayment exceeding the subsidy pays nothing but keeps eligibility (Appendix II, Ebony). + period: 2027-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 30 + employment_income: 57_372.50 # 4,781.04/month = 265% of the 1,804.17 monthly FPG. + person2: + age: 4 + childcare_hours_per_week: 10 + wi_shares_provider_type: CERTIFIED + spm_units: + spm_unit: + members: [person1, person2] + is_wi_shares_enrolled: true + spm_unit_fpg: 21_650 # 200% = 3,608.33/month. + hhs_smi: 96_000 # 85% = 6,800/month, above the family's income. + spm_unit_pre_subsidy_childcare_expenses: 12_000 # 1,000/month provider price. + households: + household: + members: [person1, person2] + state_code: WI + county_str: ASHLAND_COUNTY_WI + output: + wi_shares_income_eligible: true + # Copay: 2.34 x 131 = 306.54, plus floor((4,781.04 - 3,608.33) / 5) = 234; + # total 540.54 (handbook figure). + wi_shares_copay: 540.54 + # Subsidy: Ashland certified hourly for a four-year-old 3.99 x 131 = + # 522.69 (handbook figure), which the 540.54 copay fully consumes. + wi_shares: 0 + # The family remains eligible even though no subsidy is paid. + wi_shares_eligible: true + +- name: Case 5, small subsidy remains above the exit-period copayment (Appendix II, Sarafina). + period: 2027-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 30 + employment_income: 58_455 # 4,871.25/month = 270% of the 1,804.17 monthly FPG. + person2: + age: 6 + childcare_hours_per_week: 10 + wi_shares_provider_type: CERTIFIED + spm_units: + spm_unit: + members: [person1, person2] + is_wi_shares_enrolled: true + spm_unit_fpg: 21_650 # 200% = 3,608.33/month. + hhs_smi: 96_000 + spm_unit_pre_subsidy_childcare_expenses: 12_000 # 1,000/month provider price. + households: + household: + members: [person1, person2] + state_code: WI + county_str: WASHBURN_COUNTY_WI + output: + wi_shares_eligible: true + # Copay: 2.34 x 131 = 306.54, plus floor((4,871.25 - 3,608.33) / 5) = 252; + # total 558.54 (handbook figure). + wi_shares_copay: 558.54 + # Subsidy: Washburn certified hourly for a six-year-old 4.38 x 131 = + # 573.78 - 558.54 = 15.24 (the handbook prose says 13.25, but its own + # arithmetic gives 15.24). + wi_shares: 15.24 + +- name: Case 6, new applicant above 200% FPL is ineligible. + period: 2027-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 30 + employment_income: 45_465 # 3,788.75/month = 210% of the 1,804.17 monthly FPG. + person2: + age: 3 + childcare_hours_per_week: 40 + spm_units: + spm_unit: + members: [person1, person2] + spm_unit_fpg: 21_650 # 200% = 3,608.33/month. + hhs_smi: 96_000 + spm_unit_pre_subsidy_childcare_expenses: 24_000 + households: + household: + members: [person1, person2] + state_code: WI + county_str: MILWAUKEE_COUNTY_WI + output: + # Not enrolled, so the 200% FPL application limit applies. + wi_shares_income_eligible: false + wi_shares_eligible: false + wi_shares: 0 + +- name: Case 7, otherwise-qualifying Minnesota family receives nothing. + period: 2027-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 30 + employment_income: 27_600 # 2,300/month = 115% FPL. + person2: + age: 3 + childcare_hours_per_week: 40 + spm_units: + spm_unit: + members: [person1, person2] + spm_unit_fpg: 24_000 + hhs_smi: 96_000 + spm_unit_pre_subsidy_childcare_expenses: 24_000 + households: + household: + members: [person1, person2] + state_code: MN + county_str: HENNEPIN_COUNTY_MN + output: + wi_shares_eligible: false + wi_shares: 0 + +- name: Case 8, enrolled family above 85% of the state median income loses eligibility. + period: 2027-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 30 + employment_income: 120_000 # 10,000/month > 6,800 (85% of the 8,000 monthly SMI). + person2: + age: 3 + childcare_hours_per_week: 40 + spm_units: + spm_unit: + members: [person1, person2] + is_wi_shares_enrolled: true + spm_unit_fpg: 24_000 + hhs_smi: 96_000 + spm_unit_pre_subsidy_childcare_expenses: 24_000 + households: + household: + members: [person1, person2] + state_code: WI + county_str: MILWAUKEE_COUNTY_WI + output: + # Enrollment extends the income limit to 85% SMI, but not beyond it. + wi_shares_income_eligible: false + wi_shares_eligible: false + wi_shares: 0 + +- name: Case 9, disabled sixteen-year-old qualifies end to end at the 6 and older rate. + period: 2027-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 30 + employment_income: 24_000 # 2,000/month = 100% FPL. + person2: + age: 16 + is_disabled: true + childcare_hours_per_week: 40 + spm_units: + spm_unit: + members: [person1, person2] + spm_unit_fpg: 24_000 + hhs_smi: 96_000 + spm_unit_pre_subsidy_childcare_expenses: 24_000 # 2,000/month provider price. + households: + household: + members: [person1, person2] + state_code: WI + county_str: MILWAUKEE_COUNTY_WI + output: + # The disability pathway keeps a child under 19 eligible. + wi_shares_eligible_child: [false, true] + wi_shares_eligible: true + # $0 copayment at 100% FPL. + wi_shares_copay: 0 + # Milwaukee licensed group 6 and older: min(7.86 x 153 = 1,202.58, 2,000, + # 1,195.74 full-time cell) = 1,195.74. + wi_shares: 1_195.74 diff --git a/policyengine_us/tests/policy/baseline/gov/states/wi/dcf/shares/rates/wi_shares_age_group.yaml b/policyengine_us/tests/policy/baseline/gov/states/wi/dcf/shares/rates/wi_shares_age_group.yaml new file mode 100644 index 00000000000..72533a7afc6 --- /dev/null +++ b/policyengine_us/tests/policy/baseline/gov/states/wi/dcf/shares/rates/wi_shares_age_group.yaml @@ -0,0 +1,107 @@ +# Wisconsin Shares rate-table age groups: "0 through 1" (under 2), +# "2 through 3", "4 through 5", and "6+". +# Wisconsin Shares Handbook (July 2026) Section 18.5.1; statewide maximum +# rate table effective 10/1/2025. +- name: Case 1, one-year-old is in the 0 through 1 group. + period: 2027-01 + input: + people: + person1: + age: 1 + households: + household: + members: [person1] + state_code: WI + output: + wi_shares_age_group: AGE_0_THROUGH_1 + +- name: Case 2, two-year-old is in the 2 through 3 group. + period: 2027-01 + input: + people: + person1: + age: 2 + households: + household: + members: [person1] + state_code: WI + output: + wi_shares_age_group: AGE_2_THROUGH_3 + +- name: Case 3, three-year-old is in the 2 through 3 group. + period: 2027-01 + input: + people: + person1: + age: 3 + households: + household: + members: [person1] + state_code: WI + output: + wi_shares_age_group: AGE_2_THROUGH_3 + +- name: Case 4, four-year-old is in the 4 through 5 group. + period: 2027-01 + input: + people: + person1: + age: 4 + households: + household: + members: [person1] + state_code: WI + output: + wi_shares_age_group: AGE_4_THROUGH_5 + +- name: Case 5, five-year-old is in the 4 through 5 group. + period: 2027-01 + input: + people: + person1: + age: 5 + households: + household: + members: [person1] + state_code: WI + output: + wi_shares_age_group: AGE_4_THROUGH_5 + +- name: Case 6, six-year-old is in the 6 and older group. + period: 2027-01 + input: + people: + person1: + age: 6 + households: + household: + members: [person1] + state_code: WI + output: + wi_shares_age_group: AGE_6_AND_OLDER + +- name: Case 7, twelve-year-old is in the 6 and older group. + period: 2027-01 + input: + people: + person1: + age: 12 + households: + household: + members: [person1] + state_code: WI + output: + wi_shares_age_group: AGE_6_AND_OLDER + +- name: Case 8, newborn is in the 0 through 1 group. + period: 2027-01 + input: + people: + person1: + age: 0 + households: + household: + members: [person1] + state_code: WI + output: + wi_shares_age_group: AGE_0_THROUGH_1 diff --git a/policyengine_us/tests/policy/baseline/gov/states/wi/dcf/shares/rates/wi_shares_hourly_max_rate.yaml b/policyengine_us/tests/policy/baseline/gov/states/wi/dcf/shares/rates/wi_shares_hourly_max_rate.yaml new file mode 100644 index 00000000000..258a6dec8c6 --- /dev/null +++ b/policyengine_us/tests/policy/baseline/gov/states/wi/dcf/shares/rates/wi_shares_hourly_max_rate.yaml @@ -0,0 +1,147 @@ +# Wisconsin Shares hourly maximum rates by county, provider type, and child +# age group, from the statewide maximum rate table effective 10/1/2025 +# (max-rates-statewide.pdf pages 26-40). Certified provider hourly maximums +# equal 90% of the licensed family hourly maximum, rounded up to the cent +# (Wis. Stat. s. 49.155(6)(b)-(c)); both certified cases below match the +# dollar figures printed in Handbook Appendix II. +- name: Case 1, Adams County licensed group rate for a one-year-old. + period: 2027-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 1 + childcare_hours_per_week: 20 + wi_shares_provider_type: LICENSED_GROUP + households: + household: + members: [person1] + state_code: WI + county_str: ADAMS_COUNTY_WI + output: + wi_shares_hourly_max_rate: 10.15 + +- name: Case 2, Milwaukee County licensed group rate for a three-year-old. + period: 2027-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 3 + childcare_hours_per_week: 20 + wi_shares_provider_type: LICENSED_GROUP + households: + household: + members: [person1] + state_code: WI + county_str: MILWAUKEE_COUNTY_WI + output: + wi_shares_hourly_max_rate: 9.72 + +- name: Case 3, Milwaukee County licensed family rate for a three-year-old. + period: 2027-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 3 + childcare_hours_per_week: 20 + wi_shares_provider_type: LICENSED_FAMILY + households: + household: + members: [person1] + state_code: WI + county_str: MILWAUKEE_COUNTY_WI + output: + wi_shares_hourly_max_rate: 8.15 + +- name: Case 4, Ashland County certified rate for a four-year-old matches Handbook Appendix II. + period: 2027-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 4 + childcare_hours_per_week: 10 + wi_shares_provider_type: CERTIFIED + households: + household: + members: [person1] + state_code: WI + county_str: ASHLAND_COUNTY_WI + output: + # 90% of the 4.43 licensed family hourly rate = 3.987, rounded up to 3.99. + wi_shares_hourly_max_rate: 3.99 + +- name: Case 5, Washburn County certified rate for a six-year-old matches Handbook Appendix II. + period: 2027-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 6 + childcare_hours_per_week: 10 + wi_shares_provider_type: CERTIFIED + households: + household: + members: [person1] + state_code: WI + county_str: WASHBURN_COUNTY_WI + output: + # 90% of the 4.86 licensed family hourly rate = 4.374, rounded UP to + # 4.38 (this cell distinguishes ceiling from nearest-cent rounding). + wi_shares_hourly_max_rate: 4.38 + +- name: Case 6, provider type defaults to licensed group in Dane County for an infant. + period: 2027-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 0 + childcare_hours_per_week: 20 + households: + household: + members: [person1] + state_code: WI + county_str: DANE_COUNTY_WI + output: + wi_shares_hourly_max_rate: 13.72 + +- name: Case 7, disabled fifteen-year-old uses the 6 and older rate. + period: 2027-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 15 + is_disabled: true + childcare_hours_per_week: 20 + wi_shares_provider_type: LICENSED_GROUP + households: + household: + members: [person1] + state_code: WI + county_str: MILWAUKEE_COUNTY_WI + output: + # The disability pathway keeps the child eligible through age 18; the + # rate table's 6 and older group applies. + wi_shares_hourly_max_rate: 7.86 + +- name: Case 8, fifteen-year-old without a disability is not an eligible child and has no rate. + period: 2027-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 15 + childcare_hours_per_week: 20 + wi_shares_provider_type: LICENSED_GROUP + households: + household: + members: [person1] + state_code: WI + county_str: MILWAUKEE_COUNTY_WI + output: + # defined_for wi_shares_eligible_child zeroes the rate. + wi_shares_hourly_max_rate: 0 diff --git a/policyengine_us/tests/policy/baseline/gov/states/wi/dcf/shares/rates/wi_shares_monthly_max_rate.yaml b/policyengine_us/tests/policy/baseline/gov/states/wi/dcf/shares/rates/wi_shares_monthly_max_rate.yaml new file mode 100644 index 00000000000..efe743cdc17 --- /dev/null +++ b/policyengine_us/tests/policy/baseline/gov/states/wi/dcf/shares/rates/wi_shares_monthly_max_rate.yaml @@ -0,0 +1,99 @@ +# Wisconsin Shares monthly maximum rates: the part-time monthly maximum +# equals the hourly maximum times 131 part-time monthly hours exactly; the +# full-time monthly maximum is a separately published cell (a whole-dollar +# weekly rate times 4.348125), NOT the hourly rate times 153, so a full-time +# case distinguishes transcription from derivation. Certified providers have +# no monthly maximum of their own; their payments are capped at the licensed +# family monthly maximum. Wisconsin Shares Handbook (July 2026) Section +# 18.5.1; statewide maximum rate table effective 10/1/2025. +- name: Case 1, Milwaukee County licensed group part-time monthly maximum for a three-year-old. + period: 2027-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 3 + childcare_hours_per_week: 15 + wi_shares_provider_type: LICENSED_GROUP + households: + household: + members: [person1] + state_code: WI + county_str: MILWAUKEE_COUNTY_WI + output: + # 9.72 hourly x 131 part-time monthly hours = 1,273.32. + wi_shares_monthly_max_rate: 1_273.32 + +- name: Case 2, Milwaukee County licensed group full-time monthly maximum for a three-year-old. + period: 2027-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 3 + childcare_hours_per_week: 40 + wi_shares_provider_type: LICENSED_GROUP + households: + household: + members: [person1] + state_code: WI + county_str: MILWAUKEE_COUNTY_WI + output: + # Published full-time monthly cell 1,478.37 (340 weekly x 4.348125), + # not the 9.72 hourly x 153 = 1,487.16 derivation. + wi_shares_monthly_max_rate: 1_478.37 + +- name: Case 3, Milwaukee County licensed family full-time monthly maximum for a six-year-old. + period: 2027-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 6 + childcare_hours_per_week: 40 + wi_shares_provider_type: LICENSED_FAMILY + households: + household: + members: [person1] + state_code: WI + county_str: MILWAUKEE_COUNTY_WI + output: + wi_shares_monthly_max_rate: 1_087.04 + +- name: Case 4, certified full-time care is capped at the licensed family monthly maximum. + period: 2027-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 3 + childcare_hours_per_week: 40 + wi_shares_provider_type: CERTIFIED + households: + household: + members: [person1] + state_code: WI + county_str: MILWAUKEE_COUNTY_WI + output: + # Certified providers have no monthly maximum of their own; the licensed + # family full-time monthly cell for Milwaukee County applies. + wi_shares_monthly_max_rate: 1_239.22 + +- name: Case 5, certified part-time care is capped at the licensed family part-time monthly maximum. + period: 2027-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 3 + childcare_hours_per_week: 15 + wi_shares_provider_type: CERTIFIED + households: + household: + members: [person1] + state_code: WI + county_str: MILWAUKEE_COUNTY_WI + output: + # Licensed family hourly 8.15 x 131 part-time monthly hours = 1,067.65, + # not the certified hourly (7.34) x 131. + wi_shares_monthly_max_rate: 1_067.65 diff --git a/policyengine_us/tests/policy/baseline/gov/states/wi/dcf/shares/wi_shares.yaml b/policyengine_us/tests/policy/baseline/gov/states/wi/dcf/shares/wi_shares.yaml new file mode 100644 index 00000000000..8a7ef1c7ecc --- /dev/null +++ b/policyengine_us/tests/policy/baseline/gov/states/wi/dcf/shares/wi_shares.yaml @@ -0,0 +1,148 @@ +# Wisconsin Shares monthly subsidy: the sum over eligible children in care +# of the per-child subsidy net of the child's copayment share, floored at +# $0 per child. Wisconsin Shares Handbook (July 2026) Sections 18.2 and +# 18.5. FPG is set explicitly (24,000/year = 2,000/month) so FPL ratios are +# exact; Milwaukee County licensed group rates apply (three-year-old: +# 9.72 hourly, 1,478.37 full-time monthly cell). +- name: Case 1, working family at 100% FPL receives the full maximum rate. + period: 2027-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 30 + employment_income: 24_000 # 2,000/month = 100% FPL. + person2: + age: 3 + childcare_hours_per_week: 40 + spm_units: + spm_unit: + members: [person1, person2] + spm_unit_fpg: 24_000 + spm_unit_pre_subsidy_childcare_expenses: 24_000 # 2,000/month provider price. + households: + household: + members: [person1, person2] + state_code: WI + county_str: MILWAUKEE_COUNTY_WI + output: + wi_shares_eligible: true + # min(9.72 x 153 = 1,487.16, 2,000, 1,478.37) = 1,478.37; no copay at + # 100% FPL. + wi_shares: 1_478.37 + +- name: Case 2, a second child not in care adds no subsidy and does not change the copayment column. + period: 2027-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 30 + employment_income: 27_600 # 2,300/month = 115% FPL. + person2: + age: 3 + childcare_hours_per_week: 40 + person3: + age: 5 + childcare_hours_per_week: 0 # No authorization. + spm_units: + spm_unit: + members: [person1, person2, person3] + spm_unit_fpg: 24_000 + spm_unit_pre_subsidy_childcare_expenses: 48_000 # 2,000/month per child. + households: + household: + members: [person1, person2, person3] + state_code: WI + county_str: MILWAUKEE_COUNTY_WI + output: + # Only one child has an authorization, so the one-child copay column + # applies at 115% FPL (1.03/hour), and only that child's 152 full-time + # copay hours count. + wi_shares_copay_per_hour: 1.03 + wi_shares_copay: 156.56 # 1.03 x 152. + # Subsidy: 1,478.37 for the child in care, nothing for the other child. + # 1,478.37 - 156.56 = 1,321.81. + wi_shares: 1_321.81 + +- name: Case 3, a self-employment loss does not inflate the benefit. + period: 2027-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 30 + self_employment_income: -60_000 # -5,000/month. + person2: + age: 3 + childcare_hours_per_week: 40 + spm_units: + spm_unit: + members: [person1, person2] + spm_unit_fpg: 24_000 + spm_unit_pre_subsidy_childcare_expenses: 24_000 # 2,000/month provider price. + households: + household: + members: [person1, person2] + state_code: WI + county_str: MILWAUKEE_COUNTY_WI + output: + # Negative income floors at zero: the family is income eligible with a + # $0 copayment, and the benefit stays capped at the maximum rate. + wi_shares_income_eligible: true + wi_shares_copay: 0 + wi_shares: 1_478.37 + +- name: Case 4, a foster child's family pays no copayment and receives the full subsidy. + period: 2027-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 30 + employment_income: 27_600 # 2,300/month = 115% FPL. + person2: + age: 3 + childcare_hours_per_week: 40 + is_in_foster_care: true + spm_units: + spm_unit: + members: [person1, person2] + spm_unit_fpg: 24_000 + spm_unit_pre_subsidy_childcare_expenses: 24_000 # 2,000/month provider price. + households: + household: + members: [person1, person2] + state_code: WI + county_str: MILWAUKEE_COUNTY_WI + output: + wi_shares_copay: 0 + wi_shares: 1_478.37 + +- name: Case 5, family with no income receives the maximum-rate subsidy with no copayment. + period: 2027-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 30 + employment_income: 0 # weekly_hours_worked_before_lsr defaults to 40, keeping the activity test satisfied. + person2: + age: 3 + childcare_hours_per_week: 40 + spm_units: + spm_unit: + members: [person1, person2] + spm_unit_fpg: 24_000 + spm_unit_pre_subsidy_childcare_expenses: 24_000 # 2,000/month provider price. + households: + household: + members: [person1, person2] + state_code: WI + county_str: MILWAUKEE_COUNTY_WI + output: + # Zero income is at or below 100% FPL: eligible, $0 copayment, and the + # subsidy stays capped at the full-time monthly cell. + wi_shares_eligible: true + wi_shares_copay: 0 + wi_shares: 1_478.37 diff --git a/policyengine_us/tests/policy/baseline/gov/states/wi/dcf/shares/wi_shares_child_subsidy.yaml b/policyengine_us/tests/policy/baseline/gov/states/wi/dcf/shares/wi_shares_child_subsidy.yaml new file mode 100644 index 00000000000..05ade53d3b3 --- /dev/null +++ b/policyengine_us/tests/policy/baseline/gov/states/wi/dcf/shares/wi_shares_child_subsidy.yaml @@ -0,0 +1,243 @@ +# Wisconsin Shares per-child subsidy: the lesser of the hourly maximum times +# the fixed monthly subsidized hours (131 part time / 153 full time), the +# provider's monthly price, and the monthly maximum rate; plus the +# above-full-time weekly add-on for care needs over 50 hours (up to 75); +# minus the child's share of the assistance group copayment, floored at $0. +# Wisconsin Shares Handbook (July 2026) Sections 16.1.1, 18.2, and 18.5; +# Appendix II "Assuming the Full Cost of Care" examples (Ebony and Sarafina). +# Incomes are ratio-derived with spm_unit_fpg set explicitly (21,650/year = +# 1,804.17/month for the two-person examples). +- name: Case 1, copayment exceeding the subsidy pays nothing (Appendix II, Ebony). + period: 2027-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 30 + employment_income: 57_372.50 # 4,781.04/month = 265% of the 21,650 FPG. + person2: + age: 4 + childcare_hours_per_week: 10 + wi_shares_provider_type: CERTIFIED + spm_units: + spm_unit: + members: [person1, person2] + is_wi_shares_enrolled: true + spm_unit_fpg: 21_650 # 1,804.17/month; 200% = 3,608.33/month. + hhs_smi: 96_000 # 85% = 6,800/month, above the family's income. + spm_unit_pre_subsidy_childcare_expenses: 12_000 # 1,000/month provider price. + households: + household: + members: [person1, person2] + state_code: WI + county_str: ASHLAND_COUNTY_WI + output: + # Subsidy: certified hourly 3.99 x 131 part-time hours = 522.69. + # Copay: 2.34/hour x 131 = 306.54, plus exit addition + # floor((4,781.04 - 3,608.33) / 5) = floor(234.54) = 234; total 540.54. + # 540.54 exceeds 522.69, so no subsidy is paid. + wi_shares_child_subsidy: [0, 0] + +- name: Case 2, small subsidy remains after the copayment (Appendix II, Sarafina). + period: 2027-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 30 + employment_income: 58_455 # 4,871.25/month = 270% of the 21,650 FPG. + person2: + age: 6 + childcare_hours_per_week: 10 + wi_shares_provider_type: CERTIFIED + spm_units: + spm_unit: + members: [person1, person2] + is_wi_shares_enrolled: true + spm_unit_fpg: 21_650 # 1,804.17/month; 200% = 3,608.33/month. + hhs_smi: 96_000 + spm_unit_pre_subsidy_childcare_expenses: 12_000 # 1,000/month provider price. + households: + household: + members: [person1, person2] + state_code: WI + county_str: WASHBURN_COUNTY_WI + output: + # Subsidy: certified hourly 4.38 x 131 part-time hours = 573.78. + # Copay: 2.34/hour x 131 = 306.54, plus exit addition + # floor((4,871.25 - 3,608.33) / 5) = floor(252.58) = 252; total 558.54. + # 573.78 - 558.54 = 15.24. + wi_shares_child_subsidy: [0, 15.24] + +- name: Case 3, a provider price below the maximum rate caps the subsidy. + period: 2027-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 30 + employment_income: 24_000 # 2,000/month = 100% FPL, no copayment. + person2: + age: 3 + childcare_hours_per_week: 15 + wi_shares_provider_type: LICENSED_GROUP + spm_units: + spm_unit: + members: [person1, person2] + spm_unit_fpg: 24_000 + spm_unit_pre_subsidy_childcare_expenses: 6_000 # 500/month provider price. + households: + household: + members: [person1, person2] + state_code: WI + county_str: MILWAUKEE_COUNTY_WI + output: + # min(9.72 x 131 = 1,273.32, 500 provider price, 1,273.32 monthly max) + # = 500; no copayment at 100% FPL. + wi_shares_child_subsidy: [0, 500] + +- name: Case 4, sixty weekly hours add the above-full-time weekly add-on. + period: 2027-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 30 + employment_income: 24_000 # 2,000/month = 100% FPL, no copayment. + person2: + age: 0 + childcare_hours_per_week: 60 + wi_shares_provider_type: LICENSED_GROUP + spm_units: + spm_unit: + members: [person1, person2] + spm_unit_fpg: 24_000 + spm_unit_pre_subsidy_childcare_expenses: 36_000 # 3,000/month provider price. + households: + household: + members: [person1, person2] + state_code: WI + county_str: MILWAUKEE_COUNTY_WI + output: + # Full-time subsidy: min(11.15 x 153 = 1,705.95, 3,000, 1,695.77 full-time + # monthly cell) = 1,695.77. + # Add-on for hours above 50: (60 - 50) x 4.348125 x 11.15 = 484.82, + # added after the capped comparison. + # 1,695.77 + 484.82 = 2,180.59. + wi_shares_child_subsidy: [0, 2_180.59] + +- name: Case 5, the above-full-time add-on stops at 75 weekly hours. + period: 2027-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 30 + employment_income: 24_000 # 2,000/month = 100% FPL, no copayment. + person2: + age: 0 + childcare_hours_per_week: 80 + wi_shares_provider_type: LICENSED_GROUP + spm_units: + spm_unit: + members: [person1, person2] + spm_unit_fpg: 24_000 + spm_unit_pre_subsidy_childcare_expenses: 36_000 # 3,000/month provider price. + households: + household: + members: [person1, person2] + state_code: WI + county_str: MILWAUKEE_COUNTY_WI + output: + # Add-on hours capped at 75 - 50 = 25 weekly hours: + # 25 x 4.348125 x 11.15 = 1,212.04. + # 1,695.77 + 1,212.04 = 2,907.81. + wi_shares_child_subsidy: [0, 2_907.81] + +- name: Case 6, mixed part-time and full-time siblings split the copayment by their copay hours. + period: 2027-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 30 + employment_income: 27_600 # 2,300/month = 115% FPL. + person2: + age: 3 + childcare_hours_per_week: 15 # Part time. + person3: + age: 5 + childcare_hours_per_week: 40 # Full time. + spm_units: + spm_unit: + members: [person1, person2, person3] + spm_unit_fpg: 24_000 + spm_unit_pre_subsidy_childcare_expenses: 48_000 # 2,000/month per child. + households: + household: + members: [person1, person2, person3] + state_code: WI + county_str: MILWAUKEE_COUNTY_WI + output: + # Copay: 0.65/hour (two children at 115% FPL) x (131 + 152) = 183.95. + wi_shares_copay: 183.95 + # Copay shares are proportional to copay hours: + # person2: 183.95 x 131 / 283 = 85.15; person3: 183.95 x 152 / 283 = 98.80. + # person2 (age 3, part time): 9.72 x 131 = 1,273.32 - 85.15 = 1,188.17. + # person3 (age 5, full time): min(8.72 x 153 = 1,334.16, 2,000, 1,326.18 + # full-time cell) = 1,326.18 - 98.80 = 1,227.38. + wi_shares_child_subsidy: [0, 1_188.17, 1_227.38] + +- name: Case 7, exactly fifty weekly hours receive no above-full-time add-on. + period: 2027-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 30 + employment_income: 24_000 # 2,000/month = 100% FPL, no copayment. + person2: + age: 0 + childcare_hours_per_week: 50 + wi_shares_provider_type: LICENSED_GROUP + spm_units: + spm_unit: + members: [person1, person2] + spm_unit_fpg: 24_000 + spm_unit_pre_subsidy_childcare_expenses: 36_000 # 3,000/month provider price. + households: + household: + members: [person1, person2] + state_code: WI + county_str: MILWAUKEE_COUNTY_WI + output: + # The add-on starts above 50 weekly hours, so 50 hours receive only the + # full-time subsidy: min(11.15 x 153 = 1,705.95, 3,000, 1,695.77 + # full-time cell) = 1,695.77. + wi_shares_child_subsidy: [0, 1_695.77] + +- name: Case 8, a provider price of zero pays no subsidy. + period: 2027-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 30 + employment_income: 24_000 # 2,000/month = 100% FPL, no copayment. + person2: + age: 3 + childcare_hours_per_week: 40 + wi_shares_provider_type: LICENSED_GROUP + spm_units: + spm_unit: + members: [person1, person2] + spm_unit_fpg: 24_000 + spm_unit_pre_subsidy_childcare_expenses: 0 # Free care. + households: + household: + members: [person1, person2] + state_code: WI + county_str: MILWAUKEE_COUNTY_WI + output: + # min(9.72 x 153 = 1,487.16, 0 provider price, 1,478.37) = 0. + wi_shares_child_subsidy: [0, 0] diff --git a/policyengine_us/variables/gov/states/wi/dcf/shares/copay/wi_shares_copay.py b/policyengine_us/variables/gov/states/wi/dcf/shares/copay/wi_shares_copay.py new file mode 100644 index 00000000000..53868c85821 --- /dev/null +++ b/policyengine_us/variables/gov/states/wi/dcf/shares/copay/wi_shares_copay.py @@ -0,0 +1,48 @@ +from policyengine_us.model_api import * + + +class wi_shares_copay(Variable): + value_type = float + entity = SPMUnit + unit = USD + label = "Wisconsin Shares assistance group copayment" + definition_period = MONTH + defined_for = "wi_shares_eligible" + reference = ( + "https://dcf.wisconsin.gov/wisconsin-shares/wisconsin-shares-handbook-july-2026#page=150", + "https://dcf.wisconsin.gov/wisconsin-shares/wisconsin-shares-handbook-july-2026#page=154", + "https://dcf.wisconsin.gov/files/wishares/pdf/wishares-copay-schedule.pdf", + "https://docs.legis.wisconsin.gov/statutes/statutes/49/III/155", + ) + + def formula(spm_unit, period, parameters): + p = parameters(period).gov.states.wi.dcf.shares + # The assistance group copayment is the copayment per hour times the + # group's copayment hours, capped at 760 (five children at 152 hours; + # Section 18.2). + copay_hours = add(spm_unit, period, ["wi_shares_copay_hours"]) + capped_hours = min_(copay_hours, p.copay.hours.assistance_group_cap) + copay_per_hour = spm_unit("wi_shares_copay_per_hour", period) + base_copay = copay_per_hour * capped_hours + # Exit period: enrolled assistance groups with income above 200% of + # the federal poverty guideline pay an additional copayment of $1 for + # every full $5 of income above the limit (Sections 18.2.1 and + # 18.4.2; Wis. Stat. § 49.155(1m)(c)1d.a.). New applicants above the + # limit are income-ineligible instead. + enrolled = spm_unit("is_wi_shares_enrolled", period) + countable_income = spm_unit("wi_shares_countable_income", period) + monthly_fpg = spm_unit("spm_unit_fpg", period) + initial_limit = monthly_fpg * p.income.limit.initial_fpg_rate + excess_income = max_(countable_income - initial_limit, 0) + exit_copay = where( + enrolled, + np.floor(excess_income * p.copay.exit.phase_out_rate), + 0, + ) + # Assistance groups with a parent open for W-2 have a $0 copayment + # type (Section 18.3); foster children are already excluded from the + # copayment hours pool. Groups with no copayment hours owe no + # copayment. + is_tanf_enrolled = spm_unit("is_tanf_enrolled", period) + no_copay = is_tanf_enrolled | (capped_hours == 0) + return where(no_copay, 0, base_copay + exit_copay) diff --git a/policyengine_us/variables/gov/states/wi/dcf/shares/copay/wi_shares_copay_per_hour.py b/policyengine_us/variables/gov/states/wi/dcf/shares/copay/wi_shares_copay_per_hour.py new file mode 100644 index 00000000000..3321843e894 --- /dev/null +++ b/policyengine_us/variables/gov/states/wi/dcf/shares/copay/wi_shares_copay_per_hour.py @@ -0,0 +1,49 @@ +from policyengine_us.model_api import * + + +class wi_shares_copay_per_hour(Variable): + value_type = float + entity = SPMUnit + unit = USD + label = "Wisconsin Shares copayment per hour" + definition_period = MONTH + defined_for = "wi_shares_eligible" + reference = ( + "https://dcf.wisconsin.gov/wisconsin-shares/wisconsin-shares-handbook-july-2026#page=150", + "https://dcf.wisconsin.gov/files/wishares/pdf/wishares-copay-schedule.pdf", + "https://docs.legis.wisconsin.gov/statutes/statutes/49/III/155", + ) + + def formula(spm_unit, period, parameters): + p = parameters(period).gov.states.wi.dcf.shares.copay.per_hour + # The copayment schedule looks up the hourly copayment by the + # assistance group's income as a share of the federal poverty + # guideline (floored to the lower 5% line) and the number of children + # with authorizations, capped at the five-or-more column + # (Section 18.2). spm_unit_fpg is an annual dollar amount, so reading + # it with the bare monthly period auto-divides it to a monthly value. + countable_income = spm_unit("wi_shares_countable_income", period) + monthly_fpg = spm_unit("spm_unit_fpg", period) + fpg_ratio = countable_income / monthly_fpg + # Only children subject to a regular copayment count toward the + # column lookup; income above 200% of the poverty guideline keeps the + # top rate, with the exit-period copayment added in wi_shares_copay. + person = spm_unit.members + counted_children = spm_unit.sum(person("wi_shares_copay_hours", period) > 0) + return select( + [ + counted_children == 1, + counted_children == 2, + counted_children == 3, + counted_children == 4, + counted_children >= 5, + ], + [ + p.one_child.calc(fpg_ratio), + p.two_children.calc(fpg_ratio), + p.three_children.calc(fpg_ratio), + p.four_children.calc(fpg_ratio), + p.five_or_more_children.calc(fpg_ratio), + ], + default=0, + ) diff --git a/policyengine_us/variables/gov/states/wi/dcf/shares/eligibility/is_wi_shares_enrolled.py b/policyengine_us/variables/gov/states/wi/dcf/shares/eligibility/is_wi_shares_enrolled.py new file mode 100644 index 00000000000..062ccddc809 --- /dev/null +++ b/policyengine_us/variables/gov/states/wi/dcf/shares/eligibility/is_wi_shares_enrolled.py @@ -0,0 +1,13 @@ +from policyengine_us.model_api import * + + +class is_wi_shares_enrolled(Variable): + value_type = bool + entity = SPMUnit + definition_period = MONTH + label = "Enrolled in Wisconsin Shares" + defined_for = StateCode.WI + reference = ( + "https://dcf.wisconsin.gov/wisconsin-shares/wisconsin-shares-handbook-july-2026#page=57", + "https://dcf.wisconsin.gov/wisconsin-shares/wisconsin-shares-handbook-july-2026#page=58", + ) diff --git a/policyengine_us/variables/gov/states/wi/dcf/shares/eligibility/wi_shares_activity_eligible.py b/policyengine_us/variables/gov/states/wi/dcf/shares/eligibility/wi_shares_activity_eligible.py new file mode 100644 index 00000000000..ae30726f94a --- /dev/null +++ b/policyengine_us/variables/gov/states/wi/dcf/shares/eligibility/wi_shares_activity_eligible.py @@ -0,0 +1,30 @@ +from policyengine_us.model_api import * + + +class wi_shares_activity_eligible(Variable): + value_type = bool + entity = SPMUnit + label = "Wisconsin Shares activity eligible" + definition_period = MONTH + defined_for = StateCode.WI + reference = ( + "https://dcf.wisconsin.gov/wisconsin-shares/wisconsin-shares-handbook-july-2026#page=35", + "https://docs.legis.wisconsin.gov/statutes/statutes/49/III/155", + ) + + def formula(spm_unit, period, parameters): + # Every parent in the assistance group must participate in an approved + # activity for child care to be needed (Sections 4.8 and 5.1). + person = spm_unit.members + is_head_or_spouse = person("is_tax_unit_head_or_spouse", period.this_year) + in_approved_activity = person("wi_shares_parent_in_approved_activity", period) + has_head_or_spouse = spm_unit.sum(is_head_or_spouse) >= 1 + all_covered = spm_unit.sum(is_head_or_spouse & ~in_approved_activity) == 0 + modeled_eligible = has_head_or_spouse & all_covered + # Fall back to the CCDF activity-test input for approved activities + # not individually modeled, such as FSET job search or work + # experience, Learnfare, and a temporary break from an approved + # activity of up to three months (Section 5.1; Wis. Stat. + # § 49.155(1m)(a)6.). + meets_ccdf = spm_unit("meets_ccdf_activity_test", period.this_year) + return modeled_eligible | meets_ccdf diff --git a/policyengine_us/variables/gov/states/wi/dcf/shares/eligibility/wi_shares_asset_eligible.py b/policyengine_us/variables/gov/states/wi/dcf/shares/eligibility/wi_shares_asset_eligible.py new file mode 100644 index 00000000000..69b8f9771d6 --- /dev/null +++ b/policyengine_us/variables/gov/states/wi/dcf/shares/eligibility/wi_shares_asset_eligible.py @@ -0,0 +1,26 @@ +from policyengine_us.model_api import * + + +class wi_shares_asset_eligible(Variable): + value_type = bool + entity = SPMUnit + label = "Wisconsin Shares asset eligible" + definition_period = MONTH + defined_for = StateCode.WI + reference = ( + "https://dcf.wisconsin.gov/wisconsin-shares/wisconsin-shares-handbook-july-2026#page=64", + "https://docs.legis.wisconsin.gov/statutes/statutes/49/III/155", + ) + + def formula(spm_unit, period, parameters): + p = parameters(period).gov.states.wi.dcf.shares.eligibility + # Only liquid assets are included in the self-declared asset test + # (Section 6.5); the statutory home value and vehicle equity limits + # (Wis. Stat. § 49.155(1m)(cr)) are not part of the operational test. + assets = spm_unit("spm_unit_cash_assets", period.this_year) + # Foster parents are exempt from the asset test; the other exempt + # categories (subsidized guardians, interim caretakers, court-ordered + # kinship relatives, and tribal placement homes) are not tracked at + # the moment (Section 6.5). + has_foster_child = add(spm_unit, period, ["is_in_foster_care"]) > 0 + return (assets <= p.asset_limit) | has_foster_child diff --git a/policyengine_us/variables/gov/states/wi/dcf/shares/eligibility/wi_shares_eligible.py b/policyengine_us/variables/gov/states/wi/dcf/shares/eligibility/wi_shares_eligible.py new file mode 100644 index 00000000000..73f2e624521 --- /dev/null +++ b/policyengine_us/variables/gov/states/wi/dcf/shares/eligibility/wi_shares_eligible.py @@ -0,0 +1,22 @@ +from policyengine_us.model_api import * + + +class wi_shares_eligible(Variable): + value_type = bool + entity = SPMUnit + label = "Wisconsin Shares eligible" + definition_period = MONTH + defined_for = StateCode.WI + reference = ( + "https://dcf.wisconsin.gov/wisconsin-shares/wisconsin-shares-handbook-july-2026#page=22", + "https://docs.legis.wisconsin.gov/statutes/statutes/49/III/155", + ) + + def formula(spm_unit, period, parameters): + # Wisconsin residency (Section 4.4) is enforced through the + # defined_for = StateCode.WI gates on this eligibility chain. + has_eligible_child = add(spm_unit, period, ["wi_shares_eligible_child"]) > 0 + income_eligible = spm_unit("wi_shares_income_eligible", period) + asset_eligible = spm_unit("wi_shares_asset_eligible", period) + activity_eligible = spm_unit("wi_shares_activity_eligible", period) + return has_eligible_child & income_eligible & asset_eligible & activity_eligible diff --git a/policyengine_us/variables/gov/states/wi/dcf/shares/eligibility/wi_shares_eligible_child.py b/policyengine_us/variables/gov/states/wi/dcf/shares/eligibility/wi_shares_eligible_child.py new file mode 100644 index 00000000000..3a0b0614ffa --- /dev/null +++ b/policyengine_us/variables/gov/states/wi/dcf/shares/eligibility/wi_shares_eligible_child.py @@ -0,0 +1,33 @@ +from policyengine_us.model_api import * + + +class wi_shares_eligible_child(Variable): + value_type = bool + entity = Person + label = "Wisconsin Shares eligible child" + definition_period = MONTH + defined_for = StateCode.WI + reference = ( + "https://dcf.wisconsin.gov/wisconsin-shares/wisconsin-shares-handbook-july-2026#page=21", + "https://dcf.wisconsin.gov/wisconsin-shares/wisconsin-shares-handbook-july-2026#page=22", + "https://docs.legis.wisconsin.gov/statutes/statutes/49/III/155", + ) + + def formula(person, period, parameters): + p = parameters(period).gov.states.wi.dcf.shares.eligibility + age = person("age", period.this_year) + # Children under age 19 remain eligible with a verified disability if + # they cannot care for themselves; is_disabled proxies the verified + # status (Section 4.3). A child who turns 13 mid-eligibility-period + # stays eligible until renewal under the grandfather rule; we don't + # track the renewal date at the moment. + is_disabled = person("is_disabled", period.this_year) + age_limit = where(is_disabled, p.disabled_child_age_limit, p.child_age_limit) + age_eligible = age < age_limit + # The child receiving care, not the parent, must be a U.S. citizen or + # qualified immigrant; Wisconsin's qualified-immigrant list matches + # the federal CCDF set (Section 4.5). + immigration_eligible = person( + "is_ccdf_immigration_eligible_child", period.this_year + ) + return age_eligible & immigration_eligible diff --git a/policyengine_us/variables/gov/states/wi/dcf/shares/eligibility/wi_shares_income_eligible.py b/policyengine_us/variables/gov/states/wi/dcf/shares/eligibility/wi_shares_income_eligible.py new file mode 100644 index 00000000000..d68c00fba73 --- /dev/null +++ b/policyengine_us/variables/gov/states/wi/dcf/shares/eligibility/wi_shares_income_eligible.py @@ -0,0 +1,32 @@ +from policyengine_us.model_api import * + + +class wi_shares_income_eligible(Variable): + value_type = bool + entity = SPMUnit + label = "Wisconsin Shares income eligible" + definition_period = MONTH + defined_for = StateCode.WI + reference = ( + "https://dcf.wisconsin.gov/wisconsin-shares/wisconsin-shares-handbook-july-2026#page=57", + "https://dcf.wisconsin.gov/wisconsin-shares/wisconsin-shares-handbook-july-2026#page=58", + "https://docs.legis.wisconsin.gov/statutes/statutes/49/III/155", + ) + + def formula(spm_unit, period, parameters): + p = parameters(period).gov.states.wi.dcf.shares.income.limit + countable_income = spm_unit("wi_shares_countable_income", period) + enrolled = spm_unit("is_wi_shares_enrolled", period) + # New applicants (and assistance groups closed for more than one + # calendar month) are tested against 200% of the federal poverty + # guideline (Section 6.1.1); enrolled assistance groups remain + # eligible until income exceeds 85% of the state median income + # (Section 6.1.2). spm_unit_fpg and hhs_smi are annual dollar amounts, + # so reading them with the bare monthly period auto-divides them to + # monthly values. + monthly_fpg = spm_unit("spm_unit_fpg", period) + monthly_smi = spm_unit("hhs_smi", period) + initial_limit = monthly_fpg * p.initial_fpg_rate + ongoing_limit = monthly_smi * p.ongoing_smi_rate + income_limit = where(enrolled, ongoing_limit, initial_limit) + return countable_income <= income_limit diff --git a/policyengine_us/variables/gov/states/wi/dcf/shares/eligibility/wi_shares_parent_in_approved_activity.py b/policyengine_us/variables/gov/states/wi/dcf/shares/eligibility/wi_shares_parent_in_approved_activity.py new file mode 100644 index 00000000000..d385d87ea90 --- /dev/null +++ b/policyengine_us/variables/gov/states/wi/dcf/shares/eligibility/wi_shares_parent_in_approved_activity.py @@ -0,0 +1,30 @@ +from policyengine_us.model_api import * + + +class wi_shares_parent_in_approved_activity(Variable): + value_type = bool + entity = Person + label = "Wisconsin Shares parent in an approved activity" + definition_period = MONTH + defined_for = StateCode.WI + reference = ( + "https://dcf.wisconsin.gov/wisconsin-shares/wisconsin-shares-handbook-july-2026#page=35", + "https://docs.legis.wisconsin.gov/statutes/statutes/49/III/155", + ) + + def formula(person, period, parameters): + # Approved activities include employment and self-employment, + # education, Wisconsin Works (W-2) participation, and Tribal TANF + # (Sections 4.8 and 5.1; Wis. Stat. § 49.155(1m)(a)1.-6.). There is + # no minimum-hours requirement. A self-employment loss still + # evidences active self-employment. weekly_hours_worked_before_lsr is + # used instead of weekly_hours_worked to avoid a labor-supply + # response cycle. + is_employed = ( + (person("weekly_hours_worked_before_lsr", period.this_year) > 0) + | (person("employment_income", period) > 0) + | (person("self_employment_income", period) != 0) + ) + is_student = person("is_full_time_student", period.this_year) + is_tanf_enrolled = person.spm_unit("is_tanf_enrolled", period) + return is_employed | is_student | is_tanf_enrolled diff --git a/policyengine_us/variables/gov/states/wi/dcf/shares/hours/wi_shares_copay_hours.py b/policyengine_us/variables/gov/states/wi/dcf/shares/hours/wi_shares_copay_hours.py new file mode 100644 index 00000000000..ae263ba0c3f --- /dev/null +++ b/policyengine_us/variables/gov/states/wi/dcf/shares/hours/wi_shares_copay_hours.py @@ -0,0 +1,31 @@ +from policyengine_us.model_api import * + + +class wi_shares_copay_hours(Variable): + value_type = float + entity = Person + unit = "hour" + label = "Wisconsin Shares monthly copayment hours" + definition_period = MONTH + defined_for = "wi_shares_eligible_child" + reference = ( + "https://dcf.wisconsin.gov/wisconsin-shares/wisconsin-shares-handbook-july-2026#page=150", + "https://dcf.wisconsin.gov/files/wishares/pdf/wishares-copay-schedule.pdf", + ) + + def formula(person, period, parameters): + p = parameters(period).gov.states.wi.dcf.shares.copay.hours + # Each child's copayment hours are their monthly subsidized hours + # capped at 152: part-time authorizations contribute 131 hours and + # full-time authorizations contribute 152 (the 153rd subsidized hour + # is not charged a copayment; Section 18.2). + subsidized_hours = person("wi_shares_monthly_subsidized_hours", period) + capped_hours = min_(subsidized_hours, p.per_child_cap) + # Children with a $0 copayment type are excluded from the assistance + # group's copayment hours pool (Section 18.3). Foster children are + # the modeled $0 type; the W-2 participant type zeroes the whole + # assistance group's copayment in wi_shares_copay, and the + # court-ordered kinship and Learnfare types are not tracked at the + # moment. + is_regular_copay_type = ~person("is_in_foster_care", period) + return capped_hours * is_regular_copay_type diff --git a/policyengine_us/variables/gov/states/wi/dcf/shares/hours/wi_shares_monthly_subsidized_hours.py b/policyengine_us/variables/gov/states/wi/dcf/shares/hours/wi_shares_monthly_subsidized_hours.py new file mode 100644 index 00000000000..ad5ef2f198e --- /dev/null +++ b/policyengine_us/variables/gov/states/wi/dcf/shares/hours/wi_shares_monthly_subsidized_hours.py @@ -0,0 +1,35 @@ +from policyengine_us.model_api import * +from policyengine_us.variables.gov.states.wi.dcf.shares.hours.wi_shares_time_category import ( + WISharesTimeCategory, +) + + +class wi_shares_monthly_subsidized_hours(Variable): + value_type = float + entity = Person + unit = "hour" + label = "Wisconsin Shares monthly subsidized hours" + definition_period = MONTH + defined_for = "wi_shares_eligible_child" + reference = ( + "https://dcf.wisconsin.gov/wisconsin-shares/wisconsin-shares-handbook-july-2026#page=155", + "https://dcf.wisconsin.gov/wisconsin-shares/wisconsin-shares-handbook-july-2026#page=173", + ) + + def formula(person, period, parameters): + p = parameters(period).gov.states.wi.dcf.shares.hours + # The subsidy calculation uses fixed conversion hours, not the child's + # actual authorized hours: 30 weekly hours for part-time and 35 for + # full-time authorizations, times 4.348125 weeks per month, rounded up + # to 131 and 153 monthly hours (Section 18.5). + time_category = person("wi_shares_time_category", period) + full_time = time_category == WISharesTimeCategory.FULL_TIME + conversion_hours = where( + full_time, + p.full_time_weekly_conversion, + p.part_time_weekly_conversion, + ) + monthly_hours = np.ceil(conversion_hours * p.weeks_per_month) + # A child with no hours of care has no authorization. + weekly_hours = person("childcare_hours_per_week", period.this_year) + return where(weekly_hours > 0, monthly_hours, 0) diff --git a/policyengine_us/variables/gov/states/wi/dcf/shares/hours/wi_shares_time_category.py b/policyengine_us/variables/gov/states/wi/dcf/shares/hours/wi_shares_time_category.py new file mode 100644 index 00000000000..e1824af48e0 --- /dev/null +++ b/policyengine_us/variables/gov/states/wi/dcf/shares/hours/wi_shares_time_category.py @@ -0,0 +1,32 @@ +from policyengine_us.model_api import * + + +class WISharesTimeCategory(Enum): + PART_TIME = "Part time" + FULL_TIME = "Full time" + + +class wi_shares_time_category(Variable): + value_type = Enum + entity = Person + possible_values = WISharesTimeCategory + default_value = WISharesTimeCategory.PART_TIME + definition_period = MONTH + label = "Wisconsin Shares authorization time category" + defined_for = StateCode.WI + reference = ( + "https://dcf.wisconsin.gov/wisconsin-shares/wisconsin-shares-handbook-july-2026#page=111", + "https://dcf.wisconsin.gov/wisconsin-shares/wisconsin-shares-handbook-july-2026#page=155", + ) + + def formula(person, period, parameters): + p = parameters(period).gov.states.wi.dcf.shares.hours + # Authorizations of 20 weekly hours or less are part time; + # authorizations of more than 20 weekly hours are full time + # (Section 16.1.1). + weekly_hours = person("childcare_hours_per_week", period.this_year) + return where( + weekly_hours > p.part_time_max_weekly_hours, + WISharesTimeCategory.FULL_TIME, + WISharesTimeCategory.PART_TIME, + ) diff --git a/policyengine_us/variables/gov/states/wi/dcf/shares/income/wi_shares_countable_income.py b/policyengine_us/variables/gov/states/wi/dcf/shares/income/wi_shares_countable_income.py new file mode 100644 index 00000000000..6acba45e37a --- /dev/null +++ b/policyengine_us/variables/gov/states/wi/dcf/shares/income/wi_shares_countable_income.py @@ -0,0 +1,51 @@ +from policyengine_us.model_api import * + + +class wi_shares_countable_income(Variable): + value_type = float + entity = SPMUnit + unit = USD + label = "Wisconsin Shares countable income" + definition_period = MONTH + defined_for = StateCode.WI + reference = ( + "https://dcf.wisconsin.gov/wisconsin-shares/wisconsin-shares-handbook-july-2026#page=58", + "https://dcf.wisconsin.gov/wisconsin-shares/wisconsin-shares-handbook-july-2026#page=59", + ) + + def formula(spm_unit, period, parameters): + p = parameters(period).gov.states.wi.dcf.shares.income + base_income = add(spm_unit, period, p.sources) + # The earned income and SSI of minor dependents are disregarded + # (Section 6.3); the earned income of a minor parent (a head or + # spouse) still counts. + person = spm_unit.members + age = person("age", period.this_year) + is_dependent = ~person("is_tax_unit_head_or_spouse", period.this_year) + is_minor_dependent = (age < p.minor_income_disregard_age) & is_dependent + minor_earned_income = spm_unit.sum( + is_minor_dependent + * add(person, period, ["employment_income", "self_employment_income"]) + ) + # SSI of adults in the assistance group is counted (Section 6.2); ssi + # is not in the sources list so the minor-dependent disregard can be + # applied here. + counted_ssi = spm_unit.sum(~is_minor_dependent * person("ssi", period)) + # Court-ordered child and family support is fully disregarded when the + # assistance group's monthly total is at or below the cap; when it + # exceeds the cap, the entire amount counts (a cliff, not a + # deduction; Sections 6.2 and 6.3). + child_support = add(spm_unit, period, ["child_support_received"]) + counted_child_support = where( + child_support > p.child_support_disregard_cap, child_support, 0 + ) + # Self-employment income is net earnings reported to the IRS; the + # handbook's add-backs (depreciation, personal business expenses, + # personal transportation, capital equipment purchases, and loan + # principal payments; Section 6.4.4) have no PolicyEngine inputs. The + # total is floored at zero so a self-employment loss cannot produce + # negative countable income. + return max_( + base_income - minor_earned_income + counted_ssi + counted_child_support, + 0, + ) diff --git a/policyengine_us/variables/gov/states/wi/dcf/shares/rates/wi_shares_age_group.py b/policyengine_us/variables/gov/states/wi/dcf/shares/rates/wi_shares_age_group.py new file mode 100644 index 00000000000..f499b567ff1 --- /dev/null +++ b/policyengine_us/variables/gov/states/wi/dcf/shares/rates/wi_shares_age_group.py @@ -0,0 +1,28 @@ +from policyengine_us.model_api import * + + +class WISharesAgeGroup(Enum): + AGE_0_THROUGH_1 = "0 through 1 years" + AGE_2_THROUGH_3 = "2 through 3 years" + AGE_4_THROUGH_5 = "4 through 5 years" + AGE_6_AND_OLDER = "6 years and older" + + +class wi_shares_age_group(Variable): + value_type = Enum + entity = Person + possible_values = WISharesAgeGroup + default_value = WISharesAgeGroup.AGE_6_AND_OLDER + definition_period = MONTH + label = "Wisconsin Shares rate-table age group" + defined_for = StateCode.WI + reference = ( + "https://dcf.wisconsin.gov/wisconsin-shares/wisconsin-shares-handbook-july-2026#page=156", + "https://dcf.wisconsin.gov/files/wishares/pdf/max-rates-statewide.pdf#page=26", + ) + + def formula(person, period, parameters): + p = parameters(period).gov.states.wi.dcf.shares + age = person("age", period.this_year) + # The bracket amounts are the indices of the enum members above. + return p.age_group.calc(age) diff --git a/policyengine_us/variables/gov/states/wi/dcf/shares/rates/wi_shares_hourly_max_rate.py b/policyengine_us/variables/gov/states/wi/dcf/shares/rates/wi_shares_hourly_max_rate.py new file mode 100644 index 00000000000..2f05db5a6cf --- /dev/null +++ b/policyengine_us/variables/gov/states/wi/dcf/shares/rates/wi_shares_hourly_max_rate.py @@ -0,0 +1,47 @@ +from policyengine_us.model_api import * +from policyengine_us.variables.gov.states.wi.dcf.shares.rates.wi_shares_provider_type import ( + WISharesProviderType, +) + + +class wi_shares_hourly_max_rate(Variable): + value_type = float + entity = Person + unit = USD + label = "Wisconsin Shares hourly maximum rate" + definition_period = MONTH + defined_for = "wi_shares_eligible_child" + reference = ( + "https://dcf.wisconsin.gov/wisconsin-shares/wisconsin-shares-handbook-july-2026#page=156", + "https://dcf.wisconsin.gov/files/wishares/pdf/max-rates-statewide.pdf#page=26", + "https://docs.legis.wisconsin.gov/statutes/statutes/49/III/155", + ) + + def formula(person, period, parameters): + p = parameters(period).gov.states.wi.dcf.shares.rates + age_group = person("wi_shares_age_group", period) + county = person.household("county_str", period) + # defined_for does not short-circuit vectorized execution, so + # non-Wisconsin counties are masked before indexing the county-keyed + # rate tables. + in_wi = person.household("state_code_str", period) == "WI" + safe_county = where(in_wi, county, "ADAMS_COUNTY_WI") + licensed_group_rate = p.licensed_group.hourly[safe_county][age_group] + licensed_family_rate = p.licensed_family.hourly[safe_county][age_group] + # Certified hourly maximums are 90% of the licensed family hourly + # maximum, rounded up to the cent (Section 18.5.1). The cents value + # is rounded to two decimals first so float noise cannot flip the + # ceiling in either direction. + certified_cents = np.round( + licensed_family_rate * p.certified_licensed_rate_ratio * 100, 2 + ) + certified_rate = np.ceil(certified_cents) / 100 + provider_type = person("wi_shares_provider_type", period) + return select( + [ + provider_type == WISharesProviderType.LICENSED_GROUP, + provider_type == WISharesProviderType.LICENSED_FAMILY, + provider_type == WISharesProviderType.CERTIFIED, + ], + [licensed_group_rate, licensed_family_rate, certified_rate], + ) diff --git a/policyengine_us/variables/gov/states/wi/dcf/shares/rates/wi_shares_monthly_max_rate.py b/policyengine_us/variables/gov/states/wi/dcf/shares/rates/wi_shares_monthly_max_rate.py new file mode 100644 index 00000000000..355951cee33 --- /dev/null +++ b/policyengine_us/variables/gov/states/wi/dcf/shares/rates/wi_shares_monthly_max_rate.py @@ -0,0 +1,68 @@ +from policyengine_us.model_api import * +from policyengine_us.variables.gov.states.wi.dcf.shares.rates.wi_shares_provider_type import ( + WISharesProviderType, +) +from policyengine_us.variables.gov.states.wi.dcf.shares.hours.wi_shares_time_category import ( + WISharesTimeCategory, +) + + +class wi_shares_monthly_max_rate(Variable): + value_type = float + entity = Person + unit = USD + label = "Wisconsin Shares monthly maximum rate" + definition_period = MONTH + defined_for = "wi_shares_eligible_child" + reference = ( + "https://dcf.wisconsin.gov/wisconsin-shares/wisconsin-shares-handbook-july-2026#page=156", + "https://dcf.wisconsin.gov/files/wishares/pdf/max-rates-statewide.pdf#page=26", + "https://docs.legis.wisconsin.gov/statutes/statutes/49/III/155", + ) + + def formula(person, period, parameters): + p = parameters(period).gov.states.wi.dcf.shares + age_group = person("wi_shares_age_group", period) + county = person.household("county_str", period) + # defined_for does not short-circuit vectorized execution, so + # non-Wisconsin counties are masked before indexing the county-keyed + # rate tables. + in_wi = person.household("state_code_str", period) == "WI" + safe_county = where(in_wi, county, "ADAMS_COUNTY_WI") + # The published part-time monthly maximum equals the hourly maximum + # times the 131 part-time monthly hours (verified for every county), + # so it is derived; full-time monthly maximums are independent table + # cells (Section 18.5.1). + part_time_monthly_hours = np.ceil( + p.hours.part_time_weekly_conversion * p.hours.weeks_per_month + ) + licensed_group_hourly = p.rates.licensed_group.hourly[safe_county][age_group] + licensed_family_hourly = p.rates.licensed_family.hourly[safe_county][age_group] + time_category = person("wi_shares_time_category", period) + full_time = time_category == WISharesTimeCategory.FULL_TIME + licensed_group_monthly = where( + full_time, + p.rates.licensed_group.full_time_monthly[safe_county][age_group], + licensed_group_hourly * part_time_monthly_hours, + ) + licensed_family_monthly = where( + full_time, + p.rates.licensed_family.full_time_monthly[safe_county][age_group], + licensed_family_hourly * part_time_monthly_hours, + ) + # Certified providers have no monthly maximum of their own; their + # monthly subsidy payments are capped at the licensed family monthly + # maximum (Section 18.5.1; Wis. Stat. § 49.155(6)(b)-(c)). + provider_type = person("wi_shares_provider_type", period) + return select( + [ + provider_type == WISharesProviderType.LICENSED_GROUP, + provider_type == WISharesProviderType.LICENSED_FAMILY, + provider_type == WISharesProviderType.CERTIFIED, + ], + [ + licensed_group_monthly, + licensed_family_monthly, + licensed_family_monthly, + ], + ) diff --git a/policyengine_us/variables/gov/states/wi/dcf/shares/rates/wi_shares_provider_type.py b/policyengine_us/variables/gov/states/wi/dcf/shares/rates/wi_shares_provider_type.py new file mode 100644 index 00000000000..ad6552709e9 --- /dev/null +++ b/policyengine_us/variables/gov/states/wi/dcf/shares/rates/wi_shares_provider_type.py @@ -0,0 +1,23 @@ +from policyengine_us.model_api import * + + +class WISharesProviderType(Enum): + LICENSED_GROUP = "Licensed group" + LICENSED_FAMILY = "Licensed family" + CERTIFIED = "Certified" + + +class wi_shares_provider_type(Variable): + value_type = Enum + entity = Person + possible_values = WISharesProviderType + default_value = WISharesProviderType.LICENSED_GROUP + definition_period = MONTH + label = "Wisconsin Shares child care provider type" + defined_for = StateCode.WI + reference = ( + "https://dcf.wisconsin.gov/wisconsin-shares/wisconsin-shares-handbook-july-2026#page=156", + "https://dcf.wisconsin.gov/files/wishares/pdf/max-rates-statewide.pdf#page=26", + ) + # The maximum rate tables merge regularly and provisionally certified + # providers into a single Certified category (Section 18.5.1). diff --git a/policyengine_us/variables/gov/states/wi/dcf/shares/wi_child_care_subsidies.py b/policyengine_us/variables/gov/states/wi/dcf/shares/wi_child_care_subsidies.py new file mode 100644 index 00000000000..65af2ce8493 --- /dev/null +++ b/policyengine_us/variables/gov/states/wi/dcf/shares/wi_child_care_subsidies.py @@ -0,0 +1,12 @@ +from policyengine_us.model_api import * + + +class wi_child_care_subsidies(Variable): + value_type = float + entity = SPMUnit + label = "Wisconsin child care subsidies" + unit = USD + definition_period = YEAR + defined_for = StateCode.WI + reference = "https://dcf.wisconsin.gov/wisconsin-shares/wisconsin-shares-handbook-july-2026#page=155" + adds = ["wi_shares"] diff --git a/policyengine_us/variables/gov/states/wi/dcf/shares/wi_shares.py b/policyengine_us/variables/gov/states/wi/dcf/shares/wi_shares.py new file mode 100644 index 00000000000..e91d2784d1b --- /dev/null +++ b/policyengine_us/variables/gov/states/wi/dcf/shares/wi_shares.py @@ -0,0 +1,15 @@ +from policyengine_us.model_api import * + + +class wi_shares(Variable): + value_type = float + entity = SPMUnit + unit = USD + label = "Wisconsin Shares child care subsidy" + definition_period = MONTH + defined_for = "wi_shares_eligible" + reference = ( + "https://dcf.wisconsin.gov/wisconsin-shares/wisconsin-shares-handbook-july-2026#page=155", + "https://docs.legis.wisconsin.gov/statutes/statutes/49/III/155", + ) + adds = ["wi_shares_child_subsidy"] diff --git a/policyengine_us/variables/gov/states/wi/dcf/shares/wi_shares_child_subsidy.py b/policyengine_us/variables/gov/states/wi/dcf/shares/wi_shares_child_subsidy.py new file mode 100644 index 00000000000..7828814a4ae --- /dev/null +++ b/policyengine_us/variables/gov/states/wi/dcf/shares/wi_shares_child_subsidy.py @@ -0,0 +1,58 @@ +from policyengine_us.model_api import * + + +class wi_shares_child_subsidy(Variable): + value_type = float + entity = Person + unit = USD + label = "Wisconsin Shares per-child subsidy" + definition_period = MONTH + defined_for = "wi_shares_eligible_child" + reference = ( + "https://dcf.wisconsin.gov/wisconsin-shares/wisconsin-shares-handbook-july-2026#page=150", + "https://dcf.wisconsin.gov/wisconsin-shares/wisconsin-shares-handbook-july-2026#page=155", + "https://dcf.wisconsin.gov/wisconsin-shares/wisconsin-shares-handbook-july-2026#page=173", + ) + + def formula(person, period, parameters): + p = parameters(period).gov.states.wi.dcf.shares.hours + # The per-child subsidy is the least of the hourly maximum times the + # monthly subsidized hours, the provider's monthly price, and the + # monthly maximum rate (Section 18.5). pre_subsidy_childcare_expenses + # is an annual amount read with the bare monthly period, so Core + # auto-divides it to a monthly value. + hourly_max = person("wi_shares_hourly_max_rate", period) + subsidized_hours = person("wi_shares_monthly_subsidized_hours", period) + provider_price = person("pre_subsidy_childcare_expenses", period) + monthly_max = person("wi_shares_monthly_max_rate", period) + uncapped_subsidy = hourly_max * subsidized_hours + base_subsidy = min_(uncapped_subsidy, min_(provider_price, monthly_max)) + # Children needing more than 50 weekly hours of care receive a weekly + # add-on for the hours above 50 (up to 75) at the hourly maximum, + # converted to a monthly amount and added after the capped-subsidy + # comparison (Sections 16.1.1 and 18.5). + weekly_hours = person("childcare_hours_per_week", period.this_year) + addon_weekly_hours = min_( + max_(weekly_hours - p.above_full_time_threshold, 0), + p.above_full_time_cap - p.above_full_time_threshold, + ) + addon = addon_weekly_hours * p.weeks_per_month * hourly_max + # Each child's share of the assistance group copayment is + # proportional to their copayment hours (Section 18.2). The + # denominator is the unit's summed per-child capped hours, which + # equals the assistance group's capped copayment hours except for + # groups with more than five children, where the proportional shares + # still allocate exactly the group copayment. + assistance_group_copay = person.spm_unit("wi_shares_copay", period) + copay_hours = person("wi_shares_copay_hours", period) + unit_copay_hours = person.spm_unit.sum(copay_hours) + copay_share = np.divide( + assistance_group_copay * copay_hours, + unit_copay_hours, + out=np.zeros_like(assistance_group_copay), + where=unit_copay_hours > 0, + ) + # If the copayment share equals or exceeds the subsidy, no subsidy is + # paid for the child, but the family remains eligible + # (Section 18.2.2). + return max_(base_subsidy + addon - copay_share, 0) From 8fd40cedcf44d9f567e48ca931629d6df9841037 Mon Sep 17 00:00:00 2001 From: Ziming Date: Thu, 16 Jul 2026 14:32:43 -0400 Subject: [PATCH 3/7] Expand WI Shares changelog fragment description Co-Authored-By: Claude Fable 5 --- changelog.d/wi-ccap.added.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/changelog.d/wi-ccap.added.md b/changelog.d/wi-ccap.added.md index 755fdb1d84b..2a74c4206b3 100644 --- a/changelog.d/wi-ccap.added.md +++ b/changelog.d/wi-ccap.added.md @@ -1 +1 @@ -Wisconsin Shares Child Care Subsidy Program (CCAP). +Wisconsin Shares child care subsidy program, including activity, asset, and income eligibility, countable income, county-level maximum rates by provider type and age group, and hourly family copayments. From 413446bf6e9c9ee5419ef5b482e0867aca3c5149 Mon Sep 17 00:00:00 2001 From: Ziming Date: Thu, 16 Jul 2026 20:31:32 -0400 Subject: [PATCH 4/7] Review-fix round 1: add missing income sources, fix references - Add farm_operations_income, partnership_s_corp_income, farm_rent_income, estate_income to countable income sources (Handbook 6.2) - Extend minor-dependent earned income disregard to farm/partnership SE income - Deep-link statute citations to subsections (/155/5, /155/6) - Fix DCF-201 citation page and title; Appendix II titles; comment corrections - Tests: federal aggregator assertion, 760-hour-cap per-child allocation, decisive SE-loss activity cases, new-sources coverage (129 passing) Co-Authored-By: Claude Fable 5 --- .../gov/states/wi/dcf/shares/age_group.yaml | 2 +- .../dcf/shares/copay/hours/per_child_cap.yaml | 5 +- .../copay/per_hour/five_or_more_children.yaml | 2 +- .../shares/copay/per_hour/four_children.yaml | 2 +- .../dcf/shares/copay/per_hour/one_child.yaml | 2 +- .../shares/copay/per_hour/three_children.yaml | 2 +- .../shares/copay/per_hour/two_children.yaml | 2 +- .../hours/full_time_weekly_conversion.yaml | 2 +- .../hours/part_time_weekly_conversion.yaml | 2 +- .../wi/dcf/shares/hours/weeks_per_month.yaml | 2 +- .../states/wi/dcf/shares/income/sources.yaml | 14 ++++-- .../rates/certified_licensed_rate_ratio.yaml | 6 +-- .../licensed_family/full_time_monthly.yaml | 4 +- .../shares/rates/licensed_family/hourly.yaml | 4 +- .../licensed_group/full_time_monthly.yaml | 4 +- .../shares/rates/licensed_group/hourly.yaml | 4 +- .../wi/dcf/shares/copay/wi_shares_copay.yaml | 23 ++++++++++ .../wi_shares_activity_eligible.yaml | 27 +++++++++++ ...wi_shares_parent_in_approved_activity.yaml | 17 +++++++ .../income/wi_shares_countable_income.yaml | 46 +++++++++++++++++++ .../gov/states/wi/dcf/shares/integration.yaml | 8 +++- .../wi/dcf/shares/copay/wi_shares_copay.py | 2 +- .../shares/copay/wi_shares_copay_per_hour.py | 2 +- .../income/wi_shares_countable_income.py | 11 ++++- .../shares/rates/wi_shares_hourly_max_rate.py | 2 +- .../rates/wi_shares_monthly_max_rate.py | 2 +- 26 files changed, 167 insertions(+), 32 deletions(-) diff --git a/policyengine_us/parameters/gov/states/wi/dcf/shares/age_group.yaml b/policyengine_us/parameters/gov/states/wi/dcf/shares/age_group.yaml index a5c48e268e0..fe45c40156b 100644 --- a/policyengine_us/parameters/gov/states/wi/dcf/shares/age_group.yaml +++ b/policyengine_us/parameters/gov/states/wi/dcf/shares/age_group.yaml @@ -30,5 +30,5 @@ metadata: reference: - title: Wisconsin Shares Handbook (July 2026), Section 18.5.1 Subsidy Maximum Rates href: https://dcf.wisconsin.gov/wisconsin-shares/wisconsin-shares-handbook-july-2026#page=156 - - title: 2025 Wisconsin Shares Child Care Subsidy County and Tribal Maximum Rates - Statewide, effective 10/1/2025 (pp. 26-40) + - title: 2025 Wisconsin Shares Child Care Subsidy County and Tribal Maximum Rates - Statewide, effective 10/1/2025 href: https://dcf.wisconsin.gov/files/wishares/pdf/max-rates-statewide.pdf#page=26 diff --git a/policyengine_us/parameters/gov/states/wi/dcf/shares/copay/hours/per_child_cap.yaml b/policyengine_us/parameters/gov/states/wi/dcf/shares/copay/hours/per_child_cap.yaml index 407b45500c3..ee2312eff96 100644 --- a/policyengine_us/parameters/gov/states/wi/dcf/shares/copay/hours/per_child_cap.yaml +++ b/policyengine_us/parameters/gov/states/wi/dcf/shares/copay/hours/per_child_cap.yaml @@ -1,7 +1,8 @@ description: Wisconsin caps each child's monthly copayment hours at this amount under the Wisconsin Shares Child Care Subsidy Program. -# Each child contributes up to 152 hours per provider location to the -# assistance group's copayment hours. Part-time authorizations contribute +# Each child contributes up to 152 hours to the assistance group's copayment +# hours, even if the child attends multiple providers (Section 18.2 and +# Appendix II). Part-time authorizations contribute # 131 hours (30 weekly hours x 4.348125, rounded up), below this cap; # full-time authorizations contribute 152 hours (the 153rd subsidized hour # is not charged a copayment). diff --git a/policyengine_us/parameters/gov/states/wi/dcf/shares/copay/per_hour/five_or_more_children.yaml b/policyengine_us/parameters/gov/states/wi/dcf/shares/copay/per_hour/five_or_more_children.yaml index 2e8290762e2..707d0069702 100644 --- a/policyengine_us/parameters/gov/states/wi/dcf/shares/copay/per_hour/five_or_more_children.yaml +++ b/policyengine_us/parameters/gov/states/wi/dcf/shares/copay/per_hour/five_or_more_children.yaml @@ -103,4 +103,4 @@ metadata: - title: Wisconsin Shares Handbook (July 2026), Section 18.2 Copayments href: https://dcf.wisconsin.gov/wisconsin-shares/wisconsin-shares-handbook-july-2026#page=150 - title: Wis. Stat. § 49.155(5)(a) - href: https://docs.legis.wisconsin.gov/statutes/statutes/49/III/155 + href: https://docs.legis.wisconsin.gov/statutes/statutes/49/III/155/5 diff --git a/policyengine_us/parameters/gov/states/wi/dcf/shares/copay/per_hour/four_children.yaml b/policyengine_us/parameters/gov/states/wi/dcf/shares/copay/per_hour/four_children.yaml index f23b172bc02..82c259b6864 100644 --- a/policyengine_us/parameters/gov/states/wi/dcf/shares/copay/per_hour/four_children.yaml +++ b/policyengine_us/parameters/gov/states/wi/dcf/shares/copay/per_hour/four_children.yaml @@ -103,4 +103,4 @@ metadata: - title: Wisconsin Shares Handbook (July 2026), Section 18.2 Copayments href: https://dcf.wisconsin.gov/wisconsin-shares/wisconsin-shares-handbook-july-2026#page=150 - title: Wis. Stat. § 49.155(5)(a) - href: https://docs.legis.wisconsin.gov/statutes/statutes/49/III/155 + href: https://docs.legis.wisconsin.gov/statutes/statutes/49/III/155/5 diff --git a/policyengine_us/parameters/gov/states/wi/dcf/shares/copay/per_hour/one_child.yaml b/policyengine_us/parameters/gov/states/wi/dcf/shares/copay/per_hour/one_child.yaml index d455ba83218..638a9e83855 100644 --- a/policyengine_us/parameters/gov/states/wi/dcf/shares/copay/per_hour/one_child.yaml +++ b/policyengine_us/parameters/gov/states/wi/dcf/shares/copay/per_hour/one_child.yaml @@ -103,4 +103,4 @@ metadata: - title: Wisconsin Shares Handbook (July 2026), Section 18.2 Copayments href: https://dcf.wisconsin.gov/wisconsin-shares/wisconsin-shares-handbook-july-2026#page=150 - title: Wis. Stat. § 49.155(5)(a) - href: https://docs.legis.wisconsin.gov/statutes/statutes/49/III/155 + href: https://docs.legis.wisconsin.gov/statutes/statutes/49/III/155/5 diff --git a/policyengine_us/parameters/gov/states/wi/dcf/shares/copay/per_hour/three_children.yaml b/policyengine_us/parameters/gov/states/wi/dcf/shares/copay/per_hour/three_children.yaml index 03e262ad1dc..1cca316d315 100644 --- a/policyengine_us/parameters/gov/states/wi/dcf/shares/copay/per_hour/three_children.yaml +++ b/policyengine_us/parameters/gov/states/wi/dcf/shares/copay/per_hour/three_children.yaml @@ -103,4 +103,4 @@ metadata: - title: Wisconsin Shares Handbook (July 2026), Section 18.2 Copayments href: https://dcf.wisconsin.gov/wisconsin-shares/wisconsin-shares-handbook-july-2026#page=150 - title: Wis. Stat. § 49.155(5)(a) - href: https://docs.legis.wisconsin.gov/statutes/statutes/49/III/155 + href: https://docs.legis.wisconsin.gov/statutes/statutes/49/III/155/5 diff --git a/policyengine_us/parameters/gov/states/wi/dcf/shares/copay/per_hour/two_children.yaml b/policyengine_us/parameters/gov/states/wi/dcf/shares/copay/per_hour/two_children.yaml index e4d173bd589..f102c24eecd 100644 --- a/policyengine_us/parameters/gov/states/wi/dcf/shares/copay/per_hour/two_children.yaml +++ b/policyengine_us/parameters/gov/states/wi/dcf/shares/copay/per_hour/two_children.yaml @@ -103,4 +103,4 @@ metadata: - title: Wisconsin Shares Handbook (July 2026), Section 18.2 Copayments href: https://dcf.wisconsin.gov/wisconsin-shares/wisconsin-shares-handbook-july-2026#page=150 - title: Wis. Stat. § 49.155(5)(a) - href: https://docs.legis.wisconsin.gov/statutes/statutes/49/III/155 + href: https://docs.legis.wisconsin.gov/statutes/statutes/49/III/155/5 diff --git a/policyengine_us/parameters/gov/states/wi/dcf/shares/hours/full_time_weekly_conversion.yaml b/policyengine_us/parameters/gov/states/wi/dcf/shares/hours/full_time_weekly_conversion.yaml index 9e6ca8b4b46..9e2c5f97536 100644 --- a/policyengine_us/parameters/gov/states/wi/dcf/shares/hours/full_time_weekly_conversion.yaml +++ b/policyengine_us/parameters/gov/states/wi/dcf/shares/hours/full_time_weekly_conversion.yaml @@ -13,5 +13,5 @@ metadata: reference: - title: Wisconsin Shares Handbook (July 2026), Section 18.5 Subsidy Calculation href: https://dcf.wisconsin.gov/wisconsin-shares/wisconsin-shares-handbook-july-2026#page=155 - - title: Wisconsin Shares Handbook (July 2026), Appendix II Copayment and Subsidy Calculation Examples + - title: Wisconsin Shares Handbook (July 2026), Appendix II Benefit Calculation Examples href: https://dcf.wisconsin.gov/wisconsin-shares/wisconsin-shares-handbook-july-2026#page=173 diff --git a/policyengine_us/parameters/gov/states/wi/dcf/shares/hours/part_time_weekly_conversion.yaml b/policyengine_us/parameters/gov/states/wi/dcf/shares/hours/part_time_weekly_conversion.yaml index 457096d468d..32cc3638029 100644 --- a/policyengine_us/parameters/gov/states/wi/dcf/shares/hours/part_time_weekly_conversion.yaml +++ b/policyengine_us/parameters/gov/states/wi/dcf/shares/hours/part_time_weekly_conversion.yaml @@ -13,5 +13,5 @@ metadata: reference: - title: Wisconsin Shares Handbook (July 2026), Section 18.5 Subsidy Calculation href: https://dcf.wisconsin.gov/wisconsin-shares/wisconsin-shares-handbook-july-2026#page=155 - - title: Wisconsin Shares Handbook (July 2026), Appendix II Copayment and Subsidy Calculation Examples + - title: Wisconsin Shares Handbook (July 2026), Appendix II Benefit Calculation Examples href: https://dcf.wisconsin.gov/wisconsin-shares/wisconsin-shares-handbook-july-2026#page=173 diff --git a/policyengine_us/parameters/gov/states/wi/dcf/shares/hours/weeks_per_month.yaml b/policyengine_us/parameters/gov/states/wi/dcf/shares/hours/weeks_per_month.yaml index cafa9668927..59f0c07918b 100644 --- a/policyengine_us/parameters/gov/states/wi/dcf/shares/hours/weeks_per_month.yaml +++ b/policyengine_us/parameters/gov/states/wi/dcf/shares/hours/weeks_per_month.yaml @@ -13,5 +13,5 @@ metadata: reference: - title: Wisconsin Shares Handbook (July 2026), Section 16.1.1 Authorization Hours href: https://dcf.wisconsin.gov/wisconsin-shares/wisconsin-shares-handbook-july-2026#page=111 - - title: Wisconsin Shares Handbook (July 2026), Appendix II Copayment and Subsidy Calculation Examples + - title: Wisconsin Shares Handbook (July 2026), Appendix II Benefit Calculation Examples href: https://dcf.wisconsin.gov/wisconsin-shares/wisconsin-shares-handbook-july-2026#page=173 diff --git a/policyengine_us/parameters/gov/states/wi/dcf/shares/income/sources.yaml b/policyengine_us/parameters/gov/states/wi/dcf/shares/income/sources.yaml index 1034aa7986a..3785c50ac98 100644 --- a/policyengine_us/parameters/gov/states/wi/dcf/shares/income/sources.yaml +++ b/policyengine_us/parameters/gov/states/wi/dcf/shares/income/sources.yaml @@ -9,13 +9,22 @@ values: # capital equipment purchases, and loan principal payments) have no # PolicyEngine inputs (Sections 6.2 and 6.4.4). - self_employment_income + # Farm self-employment (Schedule F); self_employment_income is non-farm + # only. + - farm_operations_income + # Partnership and S corporation net earnings reported to the IRS. + - partnership_s_corp_income # Unearned income - dividend_income # interest_income is an umbrella that already adds taxable_interest_income # and tax_exempt_interest_income. - interest_income - # Net rental income and royalties. + # Net rental income and royalties; farm rental is tracked separately from + # rental_income. - rental_income + - farm_rent_income + # Income from estates or trusts. + - estate_income # social_security is an umbrella that already includes the old age, # survivorship, disability, and dependents components. - social_security @@ -38,7 +47,6 @@ values: # - Earned income of minor dependents is disregarded (Section 6.3). # # No PolicyEngine variable exists for these counted sources: - # - Estate and trust income # - Student financial aid not used for tuition and books # # Disregarded by Section 6.3 (deliberately not listed): @@ -59,7 +67,7 @@ metadata: period: year label: Wisconsin Shares countable income sources reference: - - title: Wisconsin Shares Handbook (July 2026), Section 6.2 Counted Income (pp. 58-59) + - title: Wisconsin Shares Handbook (July 2026), Section 6.2 Counted Income href: https://dcf.wisconsin.gov/wisconsin-shares/wisconsin-shares-handbook-july-2026#page=58 - title: Wisconsin Shares Handbook (July 2026), Section 6.3 Disregarded Income href: https://dcf.wisconsin.gov/wisconsin-shares/wisconsin-shares-handbook-july-2026#page=59 diff --git a/policyengine_us/parameters/gov/states/wi/dcf/shares/rates/certified_licensed_rate_ratio.yaml b/policyengine_us/parameters/gov/states/wi/dcf/shares/rates/certified_licensed_rate_ratio.yaml index 6fdd360dae2..f8abd94a25e 100644 --- a/policyengine_us/parameters/gov/states/wi/dcf/shares/rates/certified_licensed_rate_ratio.yaml +++ b/policyengine_us/parameters/gov/states/wi/dcf/shares/rates/certified_licensed_rate_ratio.yaml @@ -20,6 +20,6 @@ metadata: - title: Wisconsin Shares Handbook (July 2026), Section 18.5.1 Subsidy Maximum Rates href: https://dcf.wisconsin.gov/wisconsin-shares/wisconsin-shares-handbook-july-2026#page=156 - title: Wis. Stat. § 49.155(6)(b)-(c) - href: https://docs.legis.wisconsin.gov/statutes/statutes/49/III/155 - - title: DCF 201 Child Care Subsidy Payments and Provider Fees rulemaking (SS 002-23) - href: https://dcf.wisconsin.gov/files/cs/guidance-documents/pdf/dcf-201-child-care-subsidy-payments-provider-fees.pdf#page=2 + href: https://docs.legis.wisconsin.gov/statutes/statutes/49/III/155/6 + - title: DCF 201 Child Care Subsidy Copayments and Provider Fees rulemaking (SS 002-23) + href: https://dcf.wisconsin.gov/files/cs/guidance-documents/pdf/dcf-201-child-care-subsidy-payments-provider-fees.pdf#page=1 diff --git a/policyengine_us/parameters/gov/states/wi/dcf/shares/rates/licensed_family/full_time_monthly.yaml b/policyengine_us/parameters/gov/states/wi/dcf/shares/rates/licensed_family/full_time_monthly.yaml index 2b21f233550..ce8f8ca44d2 100644 --- a/policyengine_us/parameters/gov/states/wi/dcf/shares/rates/licensed_family/full_time_monthly.yaml +++ b/policyengine_us/parameters/gov/states/wi/dcf/shares/rates/licensed_family/full_time_monthly.yaml @@ -15,12 +15,12 @@ metadata: - county - wi_shares_age_group reference: - - title: 2025 Wisconsin Shares Child Care Subsidy County and Tribal Maximum Rates - Statewide, effective 10/1/2025 (pp. 26-40) + - title: 2025 Wisconsin Shares Child Care Subsidy County and Tribal Maximum Rates - Statewide, effective 10/1/2025 href: https://dcf.wisconsin.gov/files/wishares/pdf/max-rates-statewide.pdf#page=26 - title: Wisconsin Shares Handbook (July 2026), Section 18.5.1 Subsidy Maximum Rates href: https://dcf.wisconsin.gov/wisconsin-shares/wisconsin-shares-handbook-july-2026#page=156 - title: Wis. Stat. § 49.155(6) - href: https://docs.legis.wisconsin.gov/statutes/statutes/49/III/155 + href: https://docs.legis.wisconsin.gov/statutes/statutes/49/III/155/6 ADAMS_COUNTY_WI: AGE_0_THROUGH_1: diff --git a/policyengine_us/parameters/gov/states/wi/dcf/shares/rates/licensed_family/hourly.yaml b/policyengine_us/parameters/gov/states/wi/dcf/shares/rates/licensed_family/hourly.yaml index d69963249c0..3ed9fe6afb8 100644 --- a/policyengine_us/parameters/gov/states/wi/dcf/shares/rates/licensed_family/hourly.yaml +++ b/policyengine_us/parameters/gov/states/wi/dcf/shares/rates/licensed_family/hourly.yaml @@ -15,12 +15,12 @@ metadata: - county - wi_shares_age_group reference: - - title: 2025 Wisconsin Shares Child Care Subsidy County and Tribal Maximum Rates - Statewide, effective 10/1/2025 (pp. 26-40) + - title: 2025 Wisconsin Shares Child Care Subsidy County and Tribal Maximum Rates - Statewide, effective 10/1/2025 href: https://dcf.wisconsin.gov/files/wishares/pdf/max-rates-statewide.pdf#page=26 - title: Wisconsin Shares Handbook (July 2026), Section 18.5.1 Subsidy Maximum Rates href: https://dcf.wisconsin.gov/wisconsin-shares/wisconsin-shares-handbook-july-2026#page=156 - title: Wis. Stat. § 49.155(6) - href: https://docs.legis.wisconsin.gov/statutes/statutes/49/III/155 + href: https://docs.legis.wisconsin.gov/statutes/statutes/49/III/155/6 ADAMS_COUNTY_WI: AGE_0_THROUGH_1: diff --git a/policyengine_us/parameters/gov/states/wi/dcf/shares/rates/licensed_group/full_time_monthly.yaml b/policyengine_us/parameters/gov/states/wi/dcf/shares/rates/licensed_group/full_time_monthly.yaml index e7de04e3539..b31becfbeb2 100644 --- a/policyengine_us/parameters/gov/states/wi/dcf/shares/rates/licensed_group/full_time_monthly.yaml +++ b/policyengine_us/parameters/gov/states/wi/dcf/shares/rates/licensed_group/full_time_monthly.yaml @@ -13,12 +13,12 @@ metadata: - county - wi_shares_age_group reference: - - title: 2025 Wisconsin Shares Child Care Subsidy County and Tribal Maximum Rates - Statewide, effective 10/1/2025 (pp. 26-40) + - title: 2025 Wisconsin Shares Child Care Subsidy County and Tribal Maximum Rates - Statewide, effective 10/1/2025 href: https://dcf.wisconsin.gov/files/wishares/pdf/max-rates-statewide.pdf#page=26 - title: Wisconsin Shares Handbook (July 2026), Section 18.5.1 Subsidy Maximum Rates href: https://dcf.wisconsin.gov/wisconsin-shares/wisconsin-shares-handbook-july-2026#page=156 - title: Wis. Stat. § 49.155(6) - href: https://docs.legis.wisconsin.gov/statutes/statutes/49/III/155 + href: https://docs.legis.wisconsin.gov/statutes/statutes/49/III/155/6 ADAMS_COUNTY_WI: AGE_0_THROUGH_1: diff --git a/policyengine_us/parameters/gov/states/wi/dcf/shares/rates/licensed_group/hourly.yaml b/policyengine_us/parameters/gov/states/wi/dcf/shares/rates/licensed_group/hourly.yaml index 478026522d2..cf08643d87d 100644 --- a/policyengine_us/parameters/gov/states/wi/dcf/shares/rates/licensed_group/hourly.yaml +++ b/policyengine_us/parameters/gov/states/wi/dcf/shares/rates/licensed_group/hourly.yaml @@ -14,12 +14,12 @@ metadata: - county - wi_shares_age_group reference: - - title: 2025 Wisconsin Shares Child Care Subsidy County and Tribal Maximum Rates - Statewide, effective 10/1/2025 (pp. 26-40) + - title: 2025 Wisconsin Shares Child Care Subsidy County and Tribal Maximum Rates - Statewide, effective 10/1/2025 href: https://dcf.wisconsin.gov/files/wishares/pdf/max-rates-statewide.pdf#page=26 - title: Wisconsin Shares Handbook (July 2026), Section 18.5.1 Subsidy Maximum Rates href: https://dcf.wisconsin.gov/wisconsin-shares/wisconsin-shares-handbook-july-2026#page=156 - title: Wis. Stat. § 49.155(6) - href: https://docs.legis.wisconsin.gov/statutes/statutes/49/III/155 + href: https://docs.legis.wisconsin.gov/statutes/statutes/49/III/155/6 ADAMS_COUNTY_WI: AGE_0_THROUGH_1: diff --git a/policyengine_us/tests/policy/baseline/gov/states/wi/dcf/shares/copay/wi_shares_copay.yaml b/policyengine_us/tests/policy/baseline/gov/states/wi/dcf/shares/copay/wi_shares_copay.yaml index 9b59fbc94a7..98b09154da5 100644 --- a/policyengine_us/tests/policy/baseline/gov/states/wi/dcf/shares/copay/wi_shares_copay.yaml +++ b/policyengine_us/tests/policy/baseline/gov/states/wi/dcf/shares/copay/wi_shares_copay.yaml @@ -187,14 +187,37 @@ spm_unit: members: [person1, person2, person3, person4, person5, person6, person7] spm_unit_fpg: 24_000 + spm_unit_pre_subsidy_childcare_expenses: 144_000 # 2,000/month per child. households: household: members: [person1, person2, person3, person4, person5, person6, person7] state_code: WI + county_str: MILWAUKEE_COUNTY_WI output: + # Each full-time child contributes 152 copayment hours. + wi_shares_copay_hours: [0, 152, 152, 152, 152, 152, 152] # Uncapped copay hours 6 x 152 = 912, capped at 760; five-or-more-children # rate at 150% FPL is 0.63/hour: 0.63 x 760 = 478.80. wi_shares_copay: 478.80 + # The per-child copayment shares use the uncapped 912-hour pool as the + # denominator, so each child bears 478.80 x 152 / 912 = 79.80 and the six + # shares still sum to exactly the capped group copayment (6 x 79.80 = + # 478.80). Milwaukee licensed group full-time subsidies, min(hourly x 153, + # 2,000 provider price, full-time cell), each less the 79.80 share: + # person2 (age 1): min(11.15 x 153 = 1,705.95, 2,000, 1,695.77) = 1,695.77 + # - 79.80 = 1,615.97. + # person3 (age 2): min(9.72 x 153 = 1,487.16, 2,000, 1,478.37) = 1,478.37 + # - 79.80 = 1,398.57. + # person4 (age 3): same as person3 = 1,398.57. + # person5 (age 4): min(8.72 x 153 = 1,334.16, 2,000, 1,326.18) = 1,326.18 + # - 79.80 = 1,246.38. + # person6 (age 5): same as person5 = 1,246.38. + # person7 (age 6): min(7.86 x 153 = 1,202.58, 2,000, 1,195.74) = 1,195.74 + # - 79.80 = 1,115.94. + wi_shares_child_subsidy: [0, 1_615.97, 1_398.57, 1_398.57, 1_246.38, 1_246.38, 1_115.94] + # Total subsidies 8,500.61 less the full 478.80 copayment = 8,021.81, + # confirming the allocation distributes the entire group copayment. + wi_shares: 8_021.81 - name: Case 8, a foster child is excluded from the copayment pool while the sibling still pays. period: 2027-01 diff --git a/policyengine_us/tests/policy/baseline/gov/states/wi/dcf/shares/eligibility/wi_shares_activity_eligible.yaml b/policyengine_us/tests/policy/baseline/gov/states/wi/dcf/shares/eligibility/wi_shares_activity_eligible.yaml index 6d42720f9d1..d2a8c1623b9 100644 --- a/policyengine_us/tests/policy/baseline/gov/states/wi/dcf/shares/eligibility/wi_shares_activity_eligible.yaml +++ b/policyengine_us/tests/policy/baseline/gov/states/wi/dcf/shares/eligibility/wi_shares_activity_eligible.yaml @@ -149,3 +149,30 @@ state_code: WI output: wi_shares_activity_eligible: true + +- name: Case 8, a parent with only a self-employment loss passes the activity test and stays eligible. + period: 2027-01 + input: + people: + person1: + age: 30 + weekly_hours_worked_before_lsr: 0 + self_employment_income: -12_000 # -1,000/month; an active business running a loss. + person2: + age: 4 + spm_units: + spm_unit: + members: [person1, person2] + spm_unit_fpg: 24_000 + hhs_smi: 96_000 + households: + household: + members: [person1, person2] + state_code: WI + output: + # With zero work hours, no wages, and no fallback input, the + # self-employment-loss arm alone satisfies the activity test. + wi_shares_activity_eligible: true + # Downstream, the loss floors countable income at zero, so the + # assistance group passes the income test and remains eligible. + wi_shares_eligible: true diff --git a/policyengine_us/tests/policy/baseline/gov/states/wi/dcf/shares/eligibility/wi_shares_parent_in_approved_activity.yaml b/policyengine_us/tests/policy/baseline/gov/states/wi/dcf/shares/eligibility/wi_shares_parent_in_approved_activity.yaml index 78edc93f2c9..6bc3f5a6630 100644 --- a/policyengine_us/tests/policy/baseline/gov/states/wi/dcf/shares/eligibility/wi_shares_parent_in_approved_activity.yaml +++ b/policyengine_us/tests/policy/baseline/gov/states/wi/dcf/shares/eligibility/wi_shares_parent_in_approved_activity.yaml @@ -79,3 +79,20 @@ state_code: WI output: wi_shares_parent_in_approved_activity: true + +- name: Case 6, self-employed parent with a net loss and no recorded hours is in an approved activity. + period: 2027-01 + input: + people: + person1: + age: 30 + weekly_hours_worked_before_lsr: 0 + self_employment_income: -12_000 # An active business running a loss. + households: + household: + members: [person1] + state_code: WI + output: + # With zero hours and no wages, the self_employment_income != 0 arm + # alone treats the loss as evidence of active self-employment. + wi_shares_parent_in_approved_activity: true diff --git a/policyengine_us/tests/policy/baseline/gov/states/wi/dcf/shares/income/wi_shares_countable_income.yaml b/policyengine_us/tests/policy/baseline/gov/states/wi/dcf/shares/income/wi_shares_countable_income.yaml index 6be1f8112af..5462a6e7818 100644 --- a/policyengine_us/tests/policy/baseline/gov/states/wi/dcf/shares/income/wi_shares_countable_income.yaml +++ b/policyengine_us/tests/policy/baseline/gov/states/wi/dcf/shares/income/wi_shares_countable_income.yaml @@ -214,3 +214,49 @@ state_code: WI output: wi_shares_countable_income: 2_000 + +- name: Case 11, farm, partnership, farm rental, and estate income all count. + period: 2027-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 30 + farm_operations_income: 12_000 # 1,000/month. + partnership_s_corp_income: 6_000 # 500/month. + farm_rent_income: 3_000 # 250/month. + estate_income: 3_000 # 250/month. + person2: + age: 4 + spm_units: + spm_unit: + members: [person1, person2] + households: + household: + members: [person1, person2] + state_code: WI + output: + # 1,000 + 500 + 250 + 250 = 2,000. + wi_shares_countable_income: 2_000 + +- name: Case 12, a minor dependent's farm and partnership earnings are disregarded. + period: 2027-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 30 + employment_income: 24_000 # 2,000/month. + person2: + age: 16 + farm_operations_income: 6_000 # Minor dependent's farm self-employment earnings are disregarded. + partnership_s_corp_income: 3_000 # Minor dependent's partnership earnings are disregarded. + spm_units: + spm_unit: + members: [person1, person2] + households: + household: + members: [person1, person2] + state_code: WI + output: + wi_shares_countable_income: 2_000 diff --git a/policyengine_us/tests/policy/baseline/gov/states/wi/dcf/shares/integration.yaml b/policyengine_us/tests/policy/baseline/gov/states/wi/dcf/shares/integration.yaml index e3c8a932551..fbe23128ba9 100644 --- a/policyengine_us/tests/policy/baseline/gov/states/wi/dcf/shares/integration.yaml +++ b/policyengine_us/tests/policy/baseline/gov/states/wi/dcf/shares/integration.yaml @@ -49,9 +49,13 @@ # person3 (age 5): 8.72 x 131 = 1,142.32 - 85.15 = 1,057.17. wi_shares_child_subsidy: [0, 1_188.17, 1_057.17] wi_shares: 2_245.34 - # The YEAR aggregator reports the same monthly value, confirming - # wi_shares flows into the federal child_care_subsidies total. + # The YEAR aggregator reports the same monthly value. wi_child_care_subsidies: 2_245.34 + # The federal total sums the state programs registered in + # gov/hhs/ccdf/child_care_subsidy_programs.yaml; for a Wisconsin + # household only wi_child_care_subsidies contributes, so the federal + # aggregator carries the full 2,245.34. + child_care_subsidies: 2_245.34 - name: Case 2, two full-time children at 175% FPL (Appendix II Example 2, Monique). period: 2027-01 diff --git a/policyengine_us/variables/gov/states/wi/dcf/shares/copay/wi_shares_copay.py b/policyengine_us/variables/gov/states/wi/dcf/shares/copay/wi_shares_copay.py index 53868c85821..30a713055a4 100644 --- a/policyengine_us/variables/gov/states/wi/dcf/shares/copay/wi_shares_copay.py +++ b/policyengine_us/variables/gov/states/wi/dcf/shares/copay/wi_shares_copay.py @@ -12,7 +12,7 @@ class wi_shares_copay(Variable): "https://dcf.wisconsin.gov/wisconsin-shares/wisconsin-shares-handbook-july-2026#page=150", "https://dcf.wisconsin.gov/wisconsin-shares/wisconsin-shares-handbook-july-2026#page=154", "https://dcf.wisconsin.gov/files/wishares/pdf/wishares-copay-schedule.pdf", - "https://docs.legis.wisconsin.gov/statutes/statutes/49/III/155", + "https://docs.legis.wisconsin.gov/statutes/statutes/49/III/155/5", ) def formula(spm_unit, period, parameters): diff --git a/policyengine_us/variables/gov/states/wi/dcf/shares/copay/wi_shares_copay_per_hour.py b/policyengine_us/variables/gov/states/wi/dcf/shares/copay/wi_shares_copay_per_hour.py index 3321843e894..eaa4a20d93a 100644 --- a/policyengine_us/variables/gov/states/wi/dcf/shares/copay/wi_shares_copay_per_hour.py +++ b/policyengine_us/variables/gov/states/wi/dcf/shares/copay/wi_shares_copay_per_hour.py @@ -11,7 +11,7 @@ class wi_shares_copay_per_hour(Variable): reference = ( "https://dcf.wisconsin.gov/wisconsin-shares/wisconsin-shares-handbook-july-2026#page=150", "https://dcf.wisconsin.gov/files/wishares/pdf/wishares-copay-schedule.pdf", - "https://docs.legis.wisconsin.gov/statutes/statutes/49/III/155", + "https://docs.legis.wisconsin.gov/statutes/statutes/49/III/155/5", ) def formula(spm_unit, period, parameters): diff --git a/policyengine_us/variables/gov/states/wi/dcf/shares/income/wi_shares_countable_income.py b/policyengine_us/variables/gov/states/wi/dcf/shares/income/wi_shares_countable_income.py index 6acba45e37a..83075f1166d 100644 --- a/policyengine_us/variables/gov/states/wi/dcf/shares/income/wi_shares_countable_income.py +++ b/policyengine_us/variables/gov/states/wi/dcf/shares/income/wi_shares_countable_income.py @@ -25,7 +25,16 @@ def formula(spm_unit, period, parameters): is_minor_dependent = (age < p.minor_income_disregard_age) & is_dependent minor_earned_income = spm_unit.sum( is_minor_dependent - * add(person, period, ["employment_income", "self_employment_income"]) + * add( + person, + period, + [ + "employment_income", + "self_employment_income", + "farm_operations_income", + "partnership_s_corp_income", + ], + ) ) # SSI of adults in the assistance group is counted (Section 6.2); ssi # is not in the sources list so the minor-dependent disregard can be diff --git a/policyengine_us/variables/gov/states/wi/dcf/shares/rates/wi_shares_hourly_max_rate.py b/policyengine_us/variables/gov/states/wi/dcf/shares/rates/wi_shares_hourly_max_rate.py index 2f05db5a6cf..35e7519d32f 100644 --- a/policyengine_us/variables/gov/states/wi/dcf/shares/rates/wi_shares_hourly_max_rate.py +++ b/policyengine_us/variables/gov/states/wi/dcf/shares/rates/wi_shares_hourly_max_rate.py @@ -14,7 +14,7 @@ class wi_shares_hourly_max_rate(Variable): reference = ( "https://dcf.wisconsin.gov/wisconsin-shares/wisconsin-shares-handbook-july-2026#page=156", "https://dcf.wisconsin.gov/files/wishares/pdf/max-rates-statewide.pdf#page=26", - "https://docs.legis.wisconsin.gov/statutes/statutes/49/III/155", + "https://docs.legis.wisconsin.gov/statutes/statutes/49/III/155/6", ) def formula(person, period, parameters): diff --git a/policyengine_us/variables/gov/states/wi/dcf/shares/rates/wi_shares_monthly_max_rate.py b/policyengine_us/variables/gov/states/wi/dcf/shares/rates/wi_shares_monthly_max_rate.py index 355951cee33..5ad6256f3ae 100644 --- a/policyengine_us/variables/gov/states/wi/dcf/shares/rates/wi_shares_monthly_max_rate.py +++ b/policyengine_us/variables/gov/states/wi/dcf/shares/rates/wi_shares_monthly_max_rate.py @@ -17,7 +17,7 @@ class wi_shares_monthly_max_rate(Variable): reference = ( "https://dcf.wisconsin.gov/wisconsin-shares/wisconsin-shares-handbook-july-2026#page=156", "https://dcf.wisconsin.gov/files/wishares/pdf/max-rates-statewide.pdf#page=26", - "https://docs.legis.wisconsin.gov/statutes/statutes/49/III/155", + "https://docs.legis.wisconsin.gov/statutes/statutes/49/III/155/6", ) def formula(person, period, parameters): From d98487bf619fd98753c2af1a6cffe2406ffdcda9 Mon Sep 17 00:00:00 2001 From: Ziming Date: Sat, 18 Jul 2026 11:18:23 -0400 Subject: [PATCH 5/7] Encode exact copay band thresholds and round the FPL ratio in float64 The five copay schedules shifted every band edge down by 0.0001 as a float32 workaround, which charged the higher band to income marginally below a legal boundary. Restore the exact thresholds and instead compute the FPL ratio in float64 rounded to 5 decimals before the bracket lookup, so exact-edge incomes stay in their band per Handbook 18.2. Co-Authored-By: Claude Fable 5 --- .../copay/per_hour/five_or_more_children.yaml | 44 +++++++++---------- .../shares/copay/per_hour/four_children.yaml | 44 +++++++++---------- .../dcf/shares/copay/per_hour/one_child.yaml | 44 +++++++++---------- .../shares/copay/per_hour/three_children.yaml | 44 +++++++++---------- .../shares/copay/per_hour/two_children.yaml | 44 +++++++++---------- .../shares/copay/wi_shares_copay_per_hour.py | 7 ++- 6 files changed, 116 insertions(+), 111 deletions(-) diff --git a/policyengine_us/parameters/gov/states/wi/dcf/shares/copay/per_hour/five_or_more_children.yaml b/policyengine_us/parameters/gov/states/wi/dcf/shares/copay/per_hour/five_or_more_children.yaml index 707d0069702..b926139facd 100644 --- a/policyengine_us/parameters/gov/states/wi/dcf/shares/copay/per_hour/five_or_more_children.yaml +++ b/policyengine_us/parameters/gov/states/wi/dcf/shares/copay/per_hour/five_or_more_children.yaml @@ -4,9 +4,9 @@ description: Wisconsin charges assistance groups with five or more authorized ch # poverty guideline. The schedule floors income to the lower 5% FPL line ("If # the assistance group's income is between two lines, it uses the lower # amount"); the 65% to 100% FPL rows are all $0.00 and collapse into the first -# bracket. Thresholds are shifted down by 0.0001 (e.g., 1.05 -> 1.0499) so -# float32 income ratios landing marginally below an exact band edge still map -# into that band. The 200% FPL row equals the 195% row, so income at or above +# bracket. The copayment formula rounds the income ratio before this lookup +# so float32 noise at an exact band edge cannot drop a family into the lower +# band. The 200% FPL row equals the 195% row, so income at or above # 195% FPL keeps the top rate; the exit period adds a separate copayment on # top (see exit/phase_out_rate.yaml). brackets: @@ -15,79 +15,79 @@ brackets: amount: 2026-02-01: 0 # At or below 100% FPL - threshold: - 2026-02-01: 1.0499 + 2026-02-01: 1.05 amount: 2026-02-01: 0.38 # 105% FPL band - threshold: - 2026-02-01: 1.0999 + 2026-02-01: 1.1 amount: 2026-02-01: 0.4 # 110% FPL band - threshold: - 2026-02-01: 1.1499 + 2026-02-01: 1.15 amount: 2026-02-01: 0.42 # 115% FPL band - threshold: - 2026-02-01: 1.1999 + 2026-02-01: 1.2 amount: 2026-02-01: 0.45 # 120% FPL band - threshold: - 2026-02-01: 1.2499 + 2026-02-01: 1.25 amount: 2026-02-01: 0.48 # 125% FPL band - threshold: - 2026-02-01: 1.2999 + 2026-02-01: 1.3 amount: 2026-02-01: 0.53 # 130% FPL band - threshold: - 2026-02-01: 1.3499 + 2026-02-01: 1.35 amount: 2026-02-01: 0.55 # 135% FPL band - threshold: - 2026-02-01: 1.3999 + 2026-02-01: 1.4 amount: 2026-02-01: 0.57 # 140% FPL band - threshold: - 2026-02-01: 1.4499 + 2026-02-01: 1.45 amount: 2026-02-01: 0.6 # 145% FPL band - threshold: - 2026-02-01: 1.4999 + 2026-02-01: 1.5 amount: 2026-02-01: 0.63 # 150% FPL band - threshold: - 2026-02-01: 1.5499 + 2026-02-01: 1.55 amount: 2026-02-01: 0.67 # 155% FPL band - threshold: - 2026-02-01: 1.5999 + 2026-02-01: 1.6 amount: 2026-02-01: 0.7 # 160% FPL band - threshold: - 2026-02-01: 1.6499 + 2026-02-01: 1.65 amount: 2026-02-01: 0.74 # 165% FPL band - threshold: - 2026-02-01: 1.6999 + 2026-02-01: 1.7 amount: 2026-02-01: 0.77 # 170% FPL band - threshold: - 2026-02-01: 1.7499 + 2026-02-01: 1.75 amount: 2026-02-01: 0.8 # 175% FPL band - threshold: - 2026-02-01: 1.7999 + 2026-02-01: 1.8 amount: 2026-02-01: 0.82 # 180% FPL band - threshold: - 2026-02-01: 1.8499 + 2026-02-01: 1.85 amount: 2026-02-01: 0.84 # 185% FPL band - threshold: - 2026-02-01: 1.8999 + 2026-02-01: 1.9 amount: 2026-02-01: 0.86 # 190% FPL band - threshold: - 2026-02-01: 1.9499 + 2026-02-01: 1.95 amount: 2026-02-01: 0.89 # 195% FPL band diff --git a/policyengine_us/parameters/gov/states/wi/dcf/shares/copay/per_hour/four_children.yaml b/policyengine_us/parameters/gov/states/wi/dcf/shares/copay/per_hour/four_children.yaml index 82c259b6864..63dc973a87b 100644 --- a/policyengine_us/parameters/gov/states/wi/dcf/shares/copay/per_hour/four_children.yaml +++ b/policyengine_us/parameters/gov/states/wi/dcf/shares/copay/per_hour/four_children.yaml @@ -4,9 +4,9 @@ description: Wisconsin charges assistance groups with four authorized children t # poverty guideline. The schedule floors income to the lower 5% FPL line ("If # the assistance group's income is between two lines, it uses the lower # amount"); the 65% to 100% FPL rows are all $0.00 and collapse into the first -# bracket. Thresholds are shifted down by 0.0001 (e.g., 1.05 -> 1.0499) so -# float32 income ratios landing marginally below an exact band edge still map -# into that band. The 200% FPL row equals the 195% row, so income at or above +# bracket. The copayment formula rounds the income ratio before this lookup +# so float32 noise at an exact band edge cannot drop a family into the lower +# band. The 200% FPL row equals the 195% row, so income at or above # 195% FPL keeps the top rate; the exit period adds a separate copayment on # top (see exit/phase_out_rate.yaml). brackets: @@ -15,79 +15,79 @@ brackets: amount: 2026-02-01: 0 # At or below 100% FPL - threshold: - 2026-02-01: 1.0499 + 2026-02-01: 1.05 amount: 2026-02-01: 0.41 # 105% FPL band - threshold: - 2026-02-01: 1.0999 + 2026-02-01: 1.1 amount: 2026-02-01: 0.43 # 110% FPL band - threshold: - 2026-02-01: 1.1499 + 2026-02-01: 1.15 amount: 2026-02-01: 0.46 # 115% FPL band - threshold: - 2026-02-01: 1.1999 + 2026-02-01: 1.2 amount: 2026-02-01: 0.49 # 120% FPL band - threshold: - 2026-02-01: 1.2499 + 2026-02-01: 1.25 amount: 2026-02-01: 0.53 # 125% FPL band - threshold: - 2026-02-01: 1.2999 + 2026-02-01: 1.3 amount: 2026-02-01: 0.58 # 130% FPL band - threshold: - 2026-02-01: 1.3499 + 2026-02-01: 1.35 amount: 2026-02-01: 0.61 # 135% FPL band - threshold: - 2026-02-01: 1.3999 + 2026-02-01: 1.4 amount: 2026-02-01: 0.63 # 140% FPL band - threshold: - 2026-02-01: 1.4499 + 2026-02-01: 1.45 amount: 2026-02-01: 0.66 # 145% FPL band - threshold: - 2026-02-01: 1.4999 + 2026-02-01: 1.5 amount: 2026-02-01: 0.69 # 150% FPL band - threshold: - 2026-02-01: 1.5499 + 2026-02-01: 1.55 amount: 2026-02-01: 0.73 # 155% FPL band - threshold: - 2026-02-01: 1.5999 + 2026-02-01: 1.6 amount: 2026-02-01: 0.76 # 160% FPL band - threshold: - 2026-02-01: 1.6499 + 2026-02-01: 1.65 amount: 2026-02-01: 0.8 # 165% FPL band - threshold: - 2026-02-01: 1.6999 + 2026-02-01: 1.7 amount: 2026-02-01: 0.84 # 170% FPL band - threshold: - 2026-02-01: 1.7499 + 2026-02-01: 1.75 amount: 2026-02-01: 0.88 # 175% FPL band - threshold: - 2026-02-01: 1.7999 + 2026-02-01: 1.8 amount: 2026-02-01: 0.91 # 180% FPL band - threshold: - 2026-02-01: 1.8499 + 2026-02-01: 1.85 amount: 2026-02-01: 0.93 # 185% FPL band - threshold: - 2026-02-01: 1.8999 + 2026-02-01: 1.9 amount: 2026-02-01: 0.96 # 190% FPL band - threshold: - 2026-02-01: 1.9499 + 2026-02-01: 1.95 amount: 2026-02-01: 0.99 # 195% FPL band diff --git a/policyengine_us/parameters/gov/states/wi/dcf/shares/copay/per_hour/one_child.yaml b/policyengine_us/parameters/gov/states/wi/dcf/shares/copay/per_hour/one_child.yaml index 638a9e83855..f203bb8369d 100644 --- a/policyengine_us/parameters/gov/states/wi/dcf/shares/copay/per_hour/one_child.yaml +++ b/policyengine_us/parameters/gov/states/wi/dcf/shares/copay/per_hour/one_child.yaml @@ -4,9 +4,9 @@ description: Wisconsin charges assistance groups with one authorized child this # poverty guideline. The schedule floors income to the lower 5% FPL line ("If # the assistance group's income is between two lines, it uses the lower # amount"); the 65% to 100% FPL rows are all $0.00 and collapse into the first -# bracket. Thresholds are shifted down by 0.0001 (e.g., 1.05 -> 1.0499) so -# float32 income ratios landing marginally below an exact band edge still map -# into that band. The 200% FPL row equals the 195% row, so income at or above +# bracket. The copayment formula rounds the income ratio before this lookup +# so float32 noise at an exact band edge cannot drop a family into the lower +# band. The 200% FPL row equals the 195% row, so income at or above # 195% FPL keeps the top rate; the exit period adds a separate copayment on # top (see exit/phase_out_rate.yaml). brackets: @@ -15,79 +15,79 @@ brackets: amount: 2026-02-01: 0 # At or below 100% FPL - threshold: - 2026-02-01: 1.0499 + 2026-02-01: 1.05 amount: 2026-02-01: 0.9 # 105% FPL band - threshold: - 2026-02-01: 1.0999 + 2026-02-01: 1.1 amount: 2026-02-01: 0.96 # 110% FPL band - threshold: - 2026-02-01: 1.1499 + 2026-02-01: 1.15 amount: 2026-02-01: 1.03 # 115% FPL band - threshold: - 2026-02-01: 1.1999 + 2026-02-01: 1.2 amount: 2026-02-01: 1.1 # 120% FPL band - threshold: - 2026-02-01: 1.2499 + 2026-02-01: 1.25 amount: 2026-02-01: 1.22 # 125% FPL band - threshold: - 2026-02-01: 1.2999 + 2026-02-01: 1.3 amount: 2026-02-01: 1.39 # 130% FPL band - threshold: - 2026-02-01: 1.3499 + 2026-02-01: 1.35 amount: 2026-02-01: 1.47 # 135% FPL band - threshold: - 2026-02-01: 1.3999 + 2026-02-01: 1.4 amount: 2026-02-01: 1.52 # 140% FPL band - threshold: - 2026-02-01: 1.4499 + 2026-02-01: 1.45 amount: 2026-02-01: 1.6 # 145% FPL band - threshold: - 2026-02-01: 1.4999 + 2026-02-01: 1.5 amount: 2026-02-01: 1.65 # 150% FPL band - threshold: - 2026-02-01: 1.5499 + 2026-02-01: 1.55 amount: 2026-02-01: 1.73 # 155% FPL band - threshold: - 2026-02-01: 1.5999 + 2026-02-01: 1.6 amount: 2026-02-01: 1.79 # 160% FPL band - threshold: - 2026-02-01: 1.6499 + 2026-02-01: 1.65 amount: 2026-02-01: 1.85 # 165% FPL band - threshold: - 2026-02-01: 1.6999 + 2026-02-01: 1.7 amount: 2026-02-01: 1.9 # 170% FPL band - threshold: - 2026-02-01: 1.7499 + 2026-02-01: 1.75 amount: 2026-02-01: 1.97 # 175% FPL band - threshold: - 2026-02-01: 1.7999 + 2026-02-01: 1.8 amount: 2026-02-01: 2.06 # 180% FPL band - threshold: - 2026-02-01: 1.8499 + 2026-02-01: 1.85 amount: 2026-02-01: 2.15 # 185% FPL band - threshold: - 2026-02-01: 1.8999 + 2026-02-01: 1.9 amount: 2026-02-01: 2.24 # 190% FPL band - threshold: - 2026-02-01: 1.9499 + 2026-02-01: 1.95 amount: 2026-02-01: 2.34 # 195% FPL band diff --git a/policyengine_us/parameters/gov/states/wi/dcf/shares/copay/per_hour/three_children.yaml b/policyengine_us/parameters/gov/states/wi/dcf/shares/copay/per_hour/three_children.yaml index 1cca316d315..c1b23f2d9f1 100644 --- a/policyengine_us/parameters/gov/states/wi/dcf/shares/copay/per_hour/three_children.yaml +++ b/policyengine_us/parameters/gov/states/wi/dcf/shares/copay/per_hour/three_children.yaml @@ -4,9 +4,9 @@ description: Wisconsin charges assistance groups with three authorized children # poverty guideline. The schedule floors income to the lower 5% FPL line ("If # the assistance group's income is between two lines, it uses the lower # amount"); the 65% to 100% FPL rows are all $0.00 and collapse into the first -# bracket. Thresholds are shifted down by 0.0001 (e.g., 1.05 -> 1.0499) so -# float32 income ratios landing marginally below an exact band edge still map -# into that band. The 200% FPL row equals the 195% row, so income at or above +# bracket. The copayment formula rounds the income ratio before this lookup +# so float32 noise at an exact band edge cannot drop a family into the lower +# band. The 200% FPL row equals the 195% row, so income at or above # 195% FPL keeps the top rate; the exit period adds a separate copayment on # top (see exit/phase_out_rate.yaml). brackets: @@ -15,79 +15,79 @@ brackets: amount: 2026-02-01: 0 # At or below 100% FPL - threshold: - 2026-02-01: 1.0499 + 2026-02-01: 1.05 amount: 2026-02-01: 0.46 # 105% FPL band - threshold: - 2026-02-01: 1.0999 + 2026-02-01: 1.1 amount: 2026-02-01: 0.49 # 110% FPL band - threshold: - 2026-02-01: 1.1499 + 2026-02-01: 1.15 amount: 2026-02-01: 0.53 # 115% FPL band - threshold: - 2026-02-01: 1.1999 + 2026-02-01: 1.2 amount: 2026-02-01: 0.56 # 120% FPL band - threshold: - 2026-02-01: 1.2499 + 2026-02-01: 1.25 amount: 2026-02-01: 0.61 # 125% FPL band - threshold: - 2026-02-01: 1.2999 + 2026-02-01: 1.3 amount: 2026-02-01: 0.67 # 130% FPL band - threshold: - 2026-02-01: 1.3499 + 2026-02-01: 1.35 amount: 2026-02-01: 0.71 # 135% FPL band - threshold: - 2026-02-01: 1.3999 + 2026-02-01: 1.4 amount: 2026-02-01: 0.73 # 140% FPL band - threshold: - 2026-02-01: 1.4499 + 2026-02-01: 1.45 amount: 2026-02-01: 0.77 # 145% FPL band - threshold: - 2026-02-01: 1.4999 + 2026-02-01: 1.5 amount: 2026-02-01: 0.79 # 150% FPL band - threshold: - 2026-02-01: 1.5499 + 2026-02-01: 1.55 amount: 2026-02-01: 0.83 # 155% FPL band - threshold: - 2026-02-01: 1.5999 + 2026-02-01: 1.6 amount: 2026-02-01: 0.87 # 160% FPL band - threshold: - 2026-02-01: 1.6499 + 2026-02-01: 1.65 amount: 2026-02-01: 0.91 # 165% FPL band - threshold: - 2026-02-01: 1.6999 + 2026-02-01: 1.7 amount: 2026-02-01: 0.96 # 170% FPL band - threshold: - 2026-02-01: 1.7499 + 2026-02-01: 1.75 amount: 2026-02-01: 1 # 175% FPL band - threshold: - 2026-02-01: 1.7999 + 2026-02-01: 1.8 amount: 2026-02-01: 1.05 # 180% FPL band - threshold: - 2026-02-01: 1.8499 + 2026-02-01: 1.85 amount: 2026-02-01: 1.08 # 185% FPL band - threshold: - 2026-02-01: 1.8999 + 2026-02-01: 1.9 amount: 2026-02-01: 1.12 # 190% FPL band - threshold: - 2026-02-01: 1.9499 + 2026-02-01: 1.95 amount: 2026-02-01: 1.14 # 195% FPL band diff --git a/policyengine_us/parameters/gov/states/wi/dcf/shares/copay/per_hour/two_children.yaml b/policyengine_us/parameters/gov/states/wi/dcf/shares/copay/per_hour/two_children.yaml index f102c24eecd..5708d13fad0 100644 --- a/policyengine_us/parameters/gov/states/wi/dcf/shares/copay/per_hour/two_children.yaml +++ b/policyengine_us/parameters/gov/states/wi/dcf/shares/copay/per_hour/two_children.yaml @@ -4,9 +4,9 @@ description: Wisconsin charges assistance groups with two authorized children th # poverty guideline. The schedule floors income to the lower 5% FPL line ("If # the assistance group's income is between two lines, it uses the lower # amount"); the 65% to 100% FPL rows are all $0.00 and collapse into the first -# bracket. Thresholds are shifted down by 0.0001 (e.g., 1.05 -> 1.0499) so -# float32 income ratios landing marginally below an exact band edge still map -# into that band. The 200% FPL row equals the 195% row, so income at or above +# bracket. The copayment formula rounds the income ratio before this lookup +# so float32 noise at an exact band edge cannot drop a family into the lower +# band. The 200% FPL row equals the 195% row, so income at or above # 195% FPL keeps the top rate; the exit period adds a separate copayment on # top (see exit/phase_out_rate.yaml). brackets: @@ -15,79 +15,79 @@ brackets: amount: 2026-02-01: 0 # At or below 100% FPL - threshold: - 2026-02-01: 1.0499 + 2026-02-01: 1.05 amount: 2026-02-01: 0.57 # 105% FPL band - threshold: - 2026-02-01: 1.0999 + 2026-02-01: 1.1 amount: 2026-02-01: 0.61 # 110% FPL band - threshold: - 2026-02-01: 1.1499 + 2026-02-01: 1.15 amount: 2026-02-01: 0.65 # 115% FPL band - threshold: - 2026-02-01: 1.1999 + 2026-02-01: 1.2 amount: 2026-02-01: 0.69 # 120% FPL band - threshold: - 2026-02-01: 1.2499 + 2026-02-01: 1.25 amount: 2026-02-01: 0.76 # 125% FPL band - threshold: - 2026-02-01: 1.2999 + 2026-02-01: 1.3 amount: 2026-02-01: 0.85 # 130% FPL band - threshold: - 2026-02-01: 1.3499 + 2026-02-01: 1.35 amount: 2026-02-01: 0.9 # 135% FPL band - threshold: - 2026-02-01: 1.3999 + 2026-02-01: 1.4 amount: 2026-02-01: 0.93 # 140% FPL band - threshold: - 2026-02-01: 1.4499 + 2026-02-01: 1.45 amount: 2026-02-01: 0.98 # 145% FPL band - threshold: - 2026-02-01: 1.4999 + 2026-02-01: 1.5 amount: 2026-02-01: 1 # 150% FPL band - threshold: - 2026-02-01: 1.5499 + 2026-02-01: 1.55 amount: 2026-02-01: 1.05 # 155% FPL band - threshold: - 2026-02-01: 1.5999 + 2026-02-01: 1.6 amount: 2026-02-01: 1.09 # 160% FPL band - threshold: - 2026-02-01: 1.6499 + 2026-02-01: 1.65 amount: 2026-02-01: 1.13 # 165% FPL band - threshold: - 2026-02-01: 1.6999 + 2026-02-01: 1.7 amount: 2026-02-01: 1.19 # 170% FPL band - threshold: - 2026-02-01: 1.7499 + 2026-02-01: 1.75 amount: 2026-02-01: 1.24 # 175% FPL band - threshold: - 2026-02-01: 1.7999 + 2026-02-01: 1.8 amount: 2026-02-01: 1.3 # 180% FPL band - threshold: - 2026-02-01: 1.8499 + 2026-02-01: 1.85 amount: 2026-02-01: 1.36 # 185% FPL band - threshold: - 2026-02-01: 1.8999 + 2026-02-01: 1.9 amount: 2026-02-01: 1.42 # 190% FPL band - threshold: - 2026-02-01: 1.9499 + 2026-02-01: 1.95 amount: 2026-02-01: 1.46 # 195% FPL band diff --git a/policyengine_us/variables/gov/states/wi/dcf/shares/copay/wi_shares_copay_per_hour.py b/policyengine_us/variables/gov/states/wi/dcf/shares/copay/wi_shares_copay_per_hour.py index eaa4a20d93a..35eef60cf96 100644 --- a/policyengine_us/variables/gov/states/wi/dcf/shares/copay/wi_shares_copay_per_hour.py +++ b/policyengine_us/variables/gov/states/wi/dcf/shares/copay/wi_shares_copay_per_hour.py @@ -24,7 +24,12 @@ def formula(spm_unit, period, parameters): # it with the bare monthly period auto-divides it to a monthly value. countable_income = spm_unit("wi_shares_countable_income", period) monthly_fpg = spm_unit("spm_unit_fpg", period) - fpg_ratio = countable_income / monthly_fpg + # Compute and round the ratio in float64 so float32 noise at an + # exact band edge (e.g., income at exactly 105% of the guideline + # storing as 1.04999995) cannot drop the group into the lower band; + # the exit-period copayment in wi_shares_copay uses unrounded + # income instead. + fpg_ratio = np.round(countable_income.astype(np.float64) / monthly_fpg, 5) # Only children subject to a regular copayment count toward the # column lookup; income above 200% of the poverty guideline keeps the # top rate, with the exit-period copayment added in wi_shares_copay. From d81dfc7921de1841a8487d85ba3d67c937520203 Mon Sep 17 00:00:00 2001 From: Ziming Date: Sat, 18 Jul 2026 13:56:07 -0400 Subject: [PATCH 6/7] Fix review findings: add SSTB self-employment income, rounding guards, citation polish - Add sstb_self_employment_income to countable income sources, the minor-dependent earned-income disregard, and the approved-activity self-employment evidence check (3 symmetric sites) + 2 pinning tests - Mirror the float64 band-lookup guard on the exit-copay floor - Ceil above-full-time add-on hours per the handbook rounding convention (2 test expectations recomputed) - Deepen Wis. Stat. 49.155 references to exact subsections; note the pp. 26-40 span on the county rate matrices; document the copay column-count and band-lookup interpretations Co-Authored-By: Claude Fable 5 --- .../dcf/shares/copay/exit/phase_out_rate.yaml | 2 +- .../dcf/shares/eligibility/asset_limit.yaml | 2 +- .../shares/eligibility/child_age_limit.yaml | 2 +- .../eligibility/disabled_child_age_limit.yaml | 2 +- .../shares/income/limit/initial_fpg_rate.yaml | 2 +- .../shares/income/limit/ongoing_smi_rate.yaml | 2 +- .../income/minor_income_disregard_age.yaml | 2 +- .../states/wi/dcf/shares/income/sources.yaml | 6 +++ .../licensed_family/full_time_monthly.yaml | 3 +- .../shares/rates/licensed_family/hourly.yaml | 3 +- .../licensed_group/full_time_monthly.yaml | 3 +- .../shares/rates/licensed_group/hourly.yaml | 3 +- .../income/wi_shares_countable_income.yaml | 43 +++++++++++++++++++ .../dcf/shares/wi_shares_child_subsidy.yaml | 13 +++--- .../wi/dcf/shares/copay/wi_shares_copay.py | 11 ++++- .../shares/copay/wi_shares_copay_per_hour.py | 11 +++-- .../wi_shares_activity_eligible.py | 2 +- .../eligibility/wi_shares_asset_eligible.py | 2 +- .../shares/eligibility/wi_shares_eligible.py | 2 +- .../eligibility/wi_shares_eligible_child.py | 2 +- .../eligibility/wi_shares_income_eligible.py | 2 +- .../wi_shares_parent_in_approved_activity.py | 3 +- .../income/wi_shares_countable_income.py | 1 + .../wi/dcf/shares/wi_shares_child_subsidy.py | 6 ++- 24 files changed, 102 insertions(+), 28 deletions(-) diff --git a/policyengine_us/parameters/gov/states/wi/dcf/shares/copay/exit/phase_out_rate.yaml b/policyengine_us/parameters/gov/states/wi/dcf/shares/copay/exit/phase_out_rate.yaml index a1befc38966..383f51851ec 100644 --- a/policyengine_us/parameters/gov/states/wi/dcf/shares/copay/exit/phase_out_rate.yaml +++ b/policyengine_us/parameters/gov/states/wi/dcf/shares/copay/exit/phase_out_rate.yaml @@ -18,6 +18,6 @@ metadata: - title: Wisconsin Shares Handbook (July 2026), Section 18.4.2 Exit href: https://dcf.wisconsin.gov/wisconsin-shares/wisconsin-shares-handbook-july-2026#page=154 - title: Wis. Stat. § 49.155(1m)(c)1d.a. - href: https://docs.legis.wisconsin.gov/statutes/statutes/49/III/155 + href: https://docs.legis.wisconsin.gov/statutes/statutes/49/III/155/1m/c/1d/a - title: Wisconsin Shares Copayment Schedule, effective February 1, 2026 href: https://dcf.wisconsin.gov/files/wishares/pdf/wishares-copay-schedule.pdf diff --git a/policyengine_us/parameters/gov/states/wi/dcf/shares/eligibility/asset_limit.yaml b/policyengine_us/parameters/gov/states/wi/dcf/shares/eligibility/asset_limit.yaml index 8247ff6ea4a..85bfd2d4968 100644 --- a/policyengine_us/parameters/gov/states/wi/dcf/shares/eligibility/asset_limit.yaml +++ b/policyengine_us/parameters/gov/states/wi/dcf/shares/eligibility/asset_limit.yaml @@ -16,4 +16,4 @@ metadata: - title: Wisconsin Shares Handbook (July 2026), Section 6.5 Liquid Asset Limit href: https://dcf.wisconsin.gov/wisconsin-shares/wisconsin-shares-handbook-july-2026#page=64 - title: Wis. Stat. § 49.155(1m)(cm) - href: https://docs.legis.wisconsin.gov/statutes/statutes/49/III/155 + href: https://docs.legis.wisconsin.gov/statutes/statutes/49/III/155/1m/cm diff --git a/policyengine_us/parameters/gov/states/wi/dcf/shares/eligibility/child_age_limit.yaml b/policyengine_us/parameters/gov/states/wi/dcf/shares/eligibility/child_age_limit.yaml index 368c94cfdc1..9992020e714 100644 --- a/policyengine_us/parameters/gov/states/wi/dcf/shares/eligibility/child_age_limit.yaml +++ b/policyengine_us/parameters/gov/states/wi/dcf/shares/eligibility/child_age_limit.yaml @@ -12,4 +12,4 @@ metadata: - title: Wisconsin Shares Handbook (July 2026), Section 4.3 Ages of Eligible Children href: https://dcf.wisconsin.gov/wisconsin-shares/wisconsin-shares-handbook-july-2026#page=21 - title: Wis. Stat. § 49.155(1m)(a) - href: https://docs.legis.wisconsin.gov/statutes/statutes/49/III/155 + href: https://docs.legis.wisconsin.gov/statutes/statutes/49/III/155/1m/a diff --git a/policyengine_us/parameters/gov/states/wi/dcf/shares/eligibility/disabled_child_age_limit.yaml b/policyengine_us/parameters/gov/states/wi/dcf/shares/eligibility/disabled_child_age_limit.yaml index 7815c0a3d07..f729de0bafe 100644 --- a/policyengine_us/parameters/gov/states/wi/dcf/shares/eligibility/disabled_child_age_limit.yaml +++ b/policyengine_us/parameters/gov/states/wi/dcf/shares/eligibility/disabled_child_age_limit.yaml @@ -13,4 +13,4 @@ metadata: - title: Wisconsin Shares Handbook (July 2026), Section 4.3 Ages of Eligible Children href: https://dcf.wisconsin.gov/wisconsin-shares/wisconsin-shares-handbook-july-2026#page=21 - title: Wis. Stat. § 49.155(1m)(a) - href: https://docs.legis.wisconsin.gov/statutes/statutes/49/III/155 + href: https://docs.legis.wisconsin.gov/statutes/statutes/49/III/155/1m/a diff --git a/policyengine_us/parameters/gov/states/wi/dcf/shares/income/limit/initial_fpg_rate.yaml b/policyengine_us/parameters/gov/states/wi/dcf/shares/income/limit/initial_fpg_rate.yaml index 5eac0a2021d..51b882f1b58 100644 --- a/policyengine_us/parameters/gov/states/wi/dcf/shares/income/limit/initial_fpg_rate.yaml +++ b/policyengine_us/parameters/gov/states/wi/dcf/shares/income/limit/initial_fpg_rate.yaml @@ -15,6 +15,6 @@ metadata: - title: Wisconsin Shares Handbook (July 2026), Section 6.1.1 Application Income Limit href: https://dcf.wisconsin.gov/wisconsin-shares/wisconsin-shares-handbook-july-2026#page=57 - title: Wis. Stat. § 49.155(1m)(c)1. - href: https://docs.legis.wisconsin.gov/statutes/statutes/49/III/155 + href: https://docs.legis.wisconsin.gov/statutes/statutes/49/III/155/1m/c/1 - title: Legislative Fiscal Bureau 2025-27 Budget Paper 211, Wisconsin Shares Child Care Subsidy Program href: https://docs.legis.wisconsin.gov/misc/lfb/budget/2025_27_biennial_budget/302_budget_papers/211_children_and_families_tanf_and_economic_support_wisconsin_shares_child_care_subsidy_program.pdf#page=2 diff --git a/policyengine_us/parameters/gov/states/wi/dcf/shares/income/limit/ongoing_smi_rate.yaml b/policyengine_us/parameters/gov/states/wi/dcf/shares/income/limit/ongoing_smi_rate.yaml index 18e96ac635c..a9967d22e74 100644 --- a/policyengine_us/parameters/gov/states/wi/dcf/shares/income/limit/ongoing_smi_rate.yaml +++ b/policyengine_us/parameters/gov/states/wi/dcf/shares/income/limit/ongoing_smi_rate.yaml @@ -15,4 +15,4 @@ metadata: - title: Wisconsin Shares Handbook (July 2026), Section 6.1.2 Ongoing Eligibility Income Limit href: https://dcf.wisconsin.gov/wisconsin-shares/wisconsin-shares-handbook-july-2026#page=58 - title: Wis. Stat. § 49.155(1m)(c)1d.b. - href: https://docs.legis.wisconsin.gov/statutes/statutes/49/III/155 + href: https://docs.legis.wisconsin.gov/statutes/statutes/49/III/155/1m/c/1d/b diff --git a/policyengine_us/parameters/gov/states/wi/dcf/shares/income/minor_income_disregard_age.yaml b/policyengine_us/parameters/gov/states/wi/dcf/shares/income/minor_income_disregard_age.yaml index c55232b8496..bcaafc1ffb1 100644 --- a/policyengine_us/parameters/gov/states/wi/dcf/shares/income/minor_income_disregard_age.yaml +++ b/policyengine_us/parameters/gov/states/wi/dcf/shares/income/minor_income_disregard_age.yaml @@ -14,4 +14,4 @@ metadata: - title: Wisconsin Shares Handbook (July 2026), Section 6.3 Disregarded Income href: https://dcf.wisconsin.gov/wisconsin-shares/wisconsin-shares-handbook-july-2026#page=59 - title: Wis. Stat. § 990.01(20) - href: https://docs.legis.wisconsin.gov/statutes/statutes/990/01 + href: https://docs.legis.wisconsin.gov/statutes/statutes/990/01/20 diff --git a/policyengine_us/parameters/gov/states/wi/dcf/shares/income/sources.yaml b/policyengine_us/parameters/gov/states/wi/dcf/shares/income/sources.yaml index 3785c50ac98..a4ff9c0211c 100644 --- a/policyengine_us/parameters/gov/states/wi/dcf/shares/income/sources.yaml +++ b/policyengine_us/parameters/gov/states/wi/dcf/shares/income/sources.yaml @@ -9,6 +9,9 @@ values: # capital equipment purchases, and loan principal payments) have no # PolicyEngine inputs (Sections 6.2 and 6.4.4). - self_employment_income + # Specified service trade or business earnings; self_employment_income + # is non-SSTB only. + - sstb_self_employment_income # Farm self-employment (Schedule F); self_employment_income is non-farm # only. - farm_operations_income @@ -34,6 +37,9 @@ values: - workers_compensation # Alimony and other maintenance payments. - alimony_income + # Broader than the handbook's "veteran pensions" line: VA disability + # compensation also counts under the Section 6.2 catch-all since it is + # not in the Section 6.3 disregard list. - veterans_benefits # Capital gains income from selling securities and other property. - capital_gains diff --git a/policyengine_us/parameters/gov/states/wi/dcf/shares/rates/licensed_family/full_time_monthly.yaml b/policyengine_us/parameters/gov/states/wi/dcf/shares/rates/licensed_family/full_time_monthly.yaml index ce8f8ca44d2..4806b2a1cd9 100644 --- a/policyengine_us/parameters/gov/states/wi/dcf/shares/rates/licensed_family/full_time_monthly.yaml +++ b/policyengine_us/parameters/gov/states/wi/dcf/shares/rates/licensed_family/full_time_monthly.yaml @@ -1,6 +1,7 @@ description: Wisconsin caps the monthly subsidy for full-time licensed family child care at these amounts by county and child age group under the Wisconsin Shares Child Care Subsidy Program. -# Statewide table effective 10/1/2025. Full-time monthly maximums are +# Statewide table effective 10/1/2025 (table spans pp. 26-40; the reference +# anchors its first page). Full-time monthly maximums are # independent table cells (a weekly rate x 4.348125 weeks per month), not a # fixed multiple of the hourly maximum, so they are transcribed per cell. # Certified providers have no monthly maximum of their own; their monthly diff --git a/policyengine_us/parameters/gov/states/wi/dcf/shares/rates/licensed_family/hourly.yaml b/policyengine_us/parameters/gov/states/wi/dcf/shares/rates/licensed_family/hourly.yaml index 3ed9fe6afb8..95fc2460c40 100644 --- a/policyengine_us/parameters/gov/states/wi/dcf/shares/rates/licensed_family/hourly.yaml +++ b/policyengine_us/parameters/gov/states/wi/dcf/shares/rates/licensed_family/hourly.yaml @@ -1,6 +1,7 @@ description: Wisconsin caps the hourly subsidy rate for licensed family child care at these amounts by county and child age group under the Wisconsin Shares Child Care Subsidy Program. -# Statewide table effective 10/1/2025. The published part-time monthly +# Statewide table effective 10/1/2025 (table spans pp. 26-40; the reference +# anchors its first page). The published part-time monthly # maximum equals the hourly maximum x 131 part-time monthly hours exactly # (verified for every county), so it is derived in the formula rather than # transcribed. Certified provider hourly maximums are 90% of these values, diff --git a/policyengine_us/parameters/gov/states/wi/dcf/shares/rates/licensed_group/full_time_monthly.yaml b/policyengine_us/parameters/gov/states/wi/dcf/shares/rates/licensed_group/full_time_monthly.yaml index b31becfbeb2..e17ab1a6609 100644 --- a/policyengine_us/parameters/gov/states/wi/dcf/shares/rates/licensed_group/full_time_monthly.yaml +++ b/policyengine_us/parameters/gov/states/wi/dcf/shares/rates/licensed_group/full_time_monthly.yaml @@ -1,6 +1,7 @@ description: Wisconsin caps the monthly subsidy for full-time licensed group child care at these amounts by county and child age group under the Wisconsin Shares Child Care Subsidy Program. -# Statewide table effective 10/1/2025. Full-time monthly maximums are +# Statewide table effective 10/1/2025 (table spans pp. 26-40; the reference +# anchors its first page). Full-time monthly maximums are # independent table cells (a weekly rate x 4.348125 weeks per month), not a # fixed multiple of the hourly maximum, so they are transcribed per cell. # Tribal-agency rows of the table are not transcribed (PolicyEngine has no diff --git a/policyengine_us/parameters/gov/states/wi/dcf/shares/rates/licensed_group/hourly.yaml b/policyengine_us/parameters/gov/states/wi/dcf/shares/rates/licensed_group/hourly.yaml index cf08643d87d..9dfc94ebb19 100644 --- a/policyengine_us/parameters/gov/states/wi/dcf/shares/rates/licensed_group/hourly.yaml +++ b/policyengine_us/parameters/gov/states/wi/dcf/shares/rates/licensed_group/hourly.yaml @@ -1,6 +1,7 @@ description: Wisconsin caps the hourly subsidy rate for licensed group child care at these amounts by county and child age group under the Wisconsin Shares Child Care Subsidy Program. -# Statewide table effective 10/1/2025. The published part-time monthly +# Statewide table effective 10/1/2025 (table spans pp. 26-40; the reference +# anchors its first page). The published part-time monthly # maximum equals the hourly maximum x 131 part-time monthly hours exactly # (verified for every county), so it is derived in the formula rather than # transcribed. diff --git a/policyengine_us/tests/policy/baseline/gov/states/wi/dcf/shares/income/wi_shares_countable_income.yaml b/policyengine_us/tests/policy/baseline/gov/states/wi/dcf/shares/income/wi_shares_countable_income.yaml index 5462a6e7818..ebbe5cbb1ba 100644 --- a/policyengine_us/tests/policy/baseline/gov/states/wi/dcf/shares/income/wi_shares_countable_income.yaml +++ b/policyengine_us/tests/policy/baseline/gov/states/wi/dcf/shares/income/wi_shares_countable_income.yaml @@ -260,3 +260,46 @@ state_code: WI output: wi_shares_countable_income: 2_000 + +- name: Case 13, SSTB self-employment income counts alongside non-SSTB self-employment income. + period: 2027-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 30 + self_employment_income: 12_000 # 1,000/month, non-SSTB. + sstb_self_employment_income: 12_000 # 1,000/month from a specified service trade or business. + person2: + age: 4 + spm_units: + spm_unit: + members: [person1, person2] + households: + household: + members: [person1, person2] + state_code: WI + output: + # 1,000 + 1,000 = 2,000. + wi_shares_countable_income: 2_000 + +- name: Case 14, a minor dependent's SSTB self-employment earnings are disregarded. + period: 2027-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 30 + employment_income: 24_000 # 2,000/month. + person2: + age: 16 + sstb_self_employment_income: 6_000 # Minor dependent's SSTB earnings are disregarded. + spm_units: + spm_unit: + members: [person1, person2] + households: + household: + members: [person1, person2] + state_code: WI + output: + wi_shares_countable_income: 2_000 diff --git a/policyengine_us/tests/policy/baseline/gov/states/wi/dcf/shares/wi_shares_child_subsidy.yaml b/policyengine_us/tests/policy/baseline/gov/states/wi/dcf/shares/wi_shares_child_subsidy.yaml index 05ade53d3b3..0e7ef3e04f8 100644 --- a/policyengine_us/tests/policy/baseline/gov/states/wi/dcf/shares/wi_shares_child_subsidy.yaml +++ b/policyengine_us/tests/policy/baseline/gov/states/wi/dcf/shares/wi_shares_child_subsidy.yaml @@ -121,10 +121,11 @@ output: # Full-time subsidy: min(11.15 x 153 = 1,705.95, 3,000, 1,695.77 full-time # monthly cell) = 1,695.77. - # Add-on for hours above 50: (60 - 50) x 4.348125 x 11.15 = 484.82, + # Add-on for hours above 50: ceil((60 - 50) x 4.348125) = + # ceil(43.48) = 44 monthly hours x 11.15 = 490.60, # added after the capped comparison. - # 1,695.77 + 484.82 = 2,180.59. - wi_shares_child_subsidy: [0, 2_180.59] + # 1,695.77 + 490.60 = 2,186.37. + wi_shares_child_subsidy: [0, 2_186.37] - name: Case 5, the above-full-time add-on stops at 75 weekly hours. period: 2027-01 @@ -150,9 +151,9 @@ county_str: MILWAUKEE_COUNTY_WI output: # Add-on hours capped at 75 - 50 = 25 weekly hours: - # 25 x 4.348125 x 11.15 = 1,212.04. - # 1,695.77 + 1,212.04 = 2,907.81. - wi_shares_child_subsidy: [0, 2_907.81] + # ceil(25 x 4.348125) = ceil(108.70) = 109 monthly hours x 11.15 = 1,215.35. + # 1,695.77 + 1,215.35 = 2,911.12. + wi_shares_child_subsidy: [0, 2_911.12] - name: Case 6, mixed part-time and full-time siblings split the copayment by their copay hours. period: 2027-01 diff --git a/policyengine_us/variables/gov/states/wi/dcf/shares/copay/wi_shares_copay.py b/policyengine_us/variables/gov/states/wi/dcf/shares/copay/wi_shares_copay.py index 30a713055a4..9e2b20a814d 100644 --- a/policyengine_us/variables/gov/states/wi/dcf/shares/copay/wi_shares_copay.py +++ b/policyengine_us/variables/gov/states/wi/dcf/shares/copay/wi_shares_copay.py @@ -34,9 +34,18 @@ def formula(spm_unit, period, parameters): monthly_fpg = spm_unit("spm_unit_fpg", period) initial_limit = monthly_fpg * p.income.limit.initial_fpg_rate excess_income = max_(countable_income - initial_limit, 0) + # Compute and round the product in float64 so float32 noise at an + # exact $5 multiple of excess income (e.g., 154.99998 instead of + # 155) cannot drop a dollar from the floor; wi_shares_copay_per_hour + # guards its band lookup the same way. exit_copay = where( enrolled, - np.floor(excess_income * p.copay.exit.phase_out_rate), + np.floor( + np.round( + excess_income.astype(np.float64) * p.copay.exit.phase_out_rate, + 5, + ) + ), 0, ) # Assistance groups with a parent open for W-2 have a $0 copayment diff --git a/policyengine_us/variables/gov/states/wi/dcf/shares/copay/wi_shares_copay_per_hour.py b/policyengine_us/variables/gov/states/wi/dcf/shares/copay/wi_shares_copay_per_hour.py index 35eef60cf96..928562c197b 100644 --- a/policyengine_us/variables/gov/states/wi/dcf/shares/copay/wi_shares_copay_per_hour.py +++ b/policyengine_us/variables/gov/states/wi/dcf/shares/copay/wi_shares_copay_per_hour.py @@ -27,11 +27,16 @@ def formula(spm_unit, period, parameters): # Compute and round the ratio in float64 so float32 noise at an # exact band edge (e.g., income at exactly 105% of the guideline # storing as 1.04999995) cannot drop the group into the lower band; - # the exit-period copayment in wi_shares_copay uses unrounded - # income instead. + # the exit-period copayment floor in wi_shares_copay uses the same + # guard. The schedule prints whole-dollar income rows; looking up the + # exact ratio instead can differ by one band within about $0.50 of a + # row boundary (intentional). fpg_ratio = np.round(countable_income.astype(np.float64) / monthly_fpg, 5) # Only children subject to a regular copayment count toward the - # column lookup; income above 200% of the poverty guideline keeps the + # column lookup; reduced-copay-type children (e.g., foster) are + # excluded because Section 18.2 calculates their copayments + # separately, and the handbook does not say which count a mixed + # group uses. Income above 200% of the poverty guideline keeps the # top rate, with the exit-period copayment added in wi_shares_copay. person = spm_unit.members counted_children = spm_unit.sum(person("wi_shares_copay_hours", period) > 0) diff --git a/policyengine_us/variables/gov/states/wi/dcf/shares/eligibility/wi_shares_activity_eligible.py b/policyengine_us/variables/gov/states/wi/dcf/shares/eligibility/wi_shares_activity_eligible.py index ae30726f94a..2671d37ad56 100644 --- a/policyengine_us/variables/gov/states/wi/dcf/shares/eligibility/wi_shares_activity_eligible.py +++ b/policyengine_us/variables/gov/states/wi/dcf/shares/eligibility/wi_shares_activity_eligible.py @@ -9,7 +9,7 @@ class wi_shares_activity_eligible(Variable): defined_for = StateCode.WI reference = ( "https://dcf.wisconsin.gov/wisconsin-shares/wisconsin-shares-handbook-july-2026#page=35", - "https://docs.legis.wisconsin.gov/statutes/statutes/49/III/155", + "https://docs.legis.wisconsin.gov/statutes/statutes/49/III/155/1m/a", ) def formula(spm_unit, period, parameters): diff --git a/policyengine_us/variables/gov/states/wi/dcf/shares/eligibility/wi_shares_asset_eligible.py b/policyengine_us/variables/gov/states/wi/dcf/shares/eligibility/wi_shares_asset_eligible.py index 69b8f9771d6..eba615893a1 100644 --- a/policyengine_us/variables/gov/states/wi/dcf/shares/eligibility/wi_shares_asset_eligible.py +++ b/policyengine_us/variables/gov/states/wi/dcf/shares/eligibility/wi_shares_asset_eligible.py @@ -9,7 +9,7 @@ class wi_shares_asset_eligible(Variable): defined_for = StateCode.WI reference = ( "https://dcf.wisconsin.gov/wisconsin-shares/wisconsin-shares-handbook-july-2026#page=64", - "https://docs.legis.wisconsin.gov/statutes/statutes/49/III/155", + "https://docs.legis.wisconsin.gov/statutes/statutes/49/III/155/1m/cm", ) def formula(spm_unit, period, parameters): diff --git a/policyengine_us/variables/gov/states/wi/dcf/shares/eligibility/wi_shares_eligible.py b/policyengine_us/variables/gov/states/wi/dcf/shares/eligibility/wi_shares_eligible.py index 73f2e624521..5333df7205b 100644 --- a/policyengine_us/variables/gov/states/wi/dcf/shares/eligibility/wi_shares_eligible.py +++ b/policyengine_us/variables/gov/states/wi/dcf/shares/eligibility/wi_shares_eligible.py @@ -9,7 +9,7 @@ class wi_shares_eligible(Variable): defined_for = StateCode.WI reference = ( "https://dcf.wisconsin.gov/wisconsin-shares/wisconsin-shares-handbook-july-2026#page=22", - "https://docs.legis.wisconsin.gov/statutes/statutes/49/III/155", + "https://docs.legis.wisconsin.gov/statutes/statutes/49/III/155/1m", ) def formula(spm_unit, period, parameters): diff --git a/policyengine_us/variables/gov/states/wi/dcf/shares/eligibility/wi_shares_eligible_child.py b/policyengine_us/variables/gov/states/wi/dcf/shares/eligibility/wi_shares_eligible_child.py index 3a0b0614ffa..3b8bbe3289a 100644 --- a/policyengine_us/variables/gov/states/wi/dcf/shares/eligibility/wi_shares_eligible_child.py +++ b/policyengine_us/variables/gov/states/wi/dcf/shares/eligibility/wi_shares_eligible_child.py @@ -10,7 +10,7 @@ class wi_shares_eligible_child(Variable): reference = ( "https://dcf.wisconsin.gov/wisconsin-shares/wisconsin-shares-handbook-july-2026#page=21", "https://dcf.wisconsin.gov/wisconsin-shares/wisconsin-shares-handbook-july-2026#page=22", - "https://docs.legis.wisconsin.gov/statutes/statutes/49/III/155", + "https://docs.legis.wisconsin.gov/statutes/statutes/49/III/155/1m/a", ) def formula(person, period, parameters): diff --git a/policyengine_us/variables/gov/states/wi/dcf/shares/eligibility/wi_shares_income_eligible.py b/policyengine_us/variables/gov/states/wi/dcf/shares/eligibility/wi_shares_income_eligible.py index d68c00fba73..b638c94bf59 100644 --- a/policyengine_us/variables/gov/states/wi/dcf/shares/eligibility/wi_shares_income_eligible.py +++ b/policyengine_us/variables/gov/states/wi/dcf/shares/eligibility/wi_shares_income_eligible.py @@ -10,7 +10,7 @@ class wi_shares_income_eligible(Variable): reference = ( "https://dcf.wisconsin.gov/wisconsin-shares/wisconsin-shares-handbook-july-2026#page=57", "https://dcf.wisconsin.gov/wisconsin-shares/wisconsin-shares-handbook-july-2026#page=58", - "https://docs.legis.wisconsin.gov/statutes/statutes/49/III/155", + "https://docs.legis.wisconsin.gov/statutes/statutes/49/III/155/1m/c", ) def formula(spm_unit, period, parameters): diff --git a/policyengine_us/variables/gov/states/wi/dcf/shares/eligibility/wi_shares_parent_in_approved_activity.py b/policyengine_us/variables/gov/states/wi/dcf/shares/eligibility/wi_shares_parent_in_approved_activity.py index d385d87ea90..e72bf0586d3 100644 --- a/policyengine_us/variables/gov/states/wi/dcf/shares/eligibility/wi_shares_parent_in_approved_activity.py +++ b/policyengine_us/variables/gov/states/wi/dcf/shares/eligibility/wi_shares_parent_in_approved_activity.py @@ -9,7 +9,7 @@ class wi_shares_parent_in_approved_activity(Variable): defined_for = StateCode.WI reference = ( "https://dcf.wisconsin.gov/wisconsin-shares/wisconsin-shares-handbook-july-2026#page=35", - "https://docs.legis.wisconsin.gov/statutes/statutes/49/III/155", + "https://docs.legis.wisconsin.gov/statutes/statutes/49/III/155/1m/a", ) def formula(person, period, parameters): @@ -24,6 +24,7 @@ def formula(person, period, parameters): (person("weekly_hours_worked_before_lsr", period.this_year) > 0) | (person("employment_income", period) > 0) | (person("self_employment_income", period) != 0) + | (person("sstb_self_employment_income", period) != 0) ) is_student = person("is_full_time_student", period.this_year) is_tanf_enrolled = person.spm_unit("is_tanf_enrolled", period) diff --git a/policyengine_us/variables/gov/states/wi/dcf/shares/income/wi_shares_countable_income.py b/policyengine_us/variables/gov/states/wi/dcf/shares/income/wi_shares_countable_income.py index 83075f1166d..d05e9910801 100644 --- a/policyengine_us/variables/gov/states/wi/dcf/shares/income/wi_shares_countable_income.py +++ b/policyengine_us/variables/gov/states/wi/dcf/shares/income/wi_shares_countable_income.py @@ -31,6 +31,7 @@ def formula(spm_unit, period, parameters): [ "employment_income", "self_employment_income", + "sstb_self_employment_income", "farm_operations_income", "partnership_s_corp_income", ], diff --git a/policyengine_us/variables/gov/states/wi/dcf/shares/wi_shares_child_subsidy.py b/policyengine_us/variables/gov/states/wi/dcf/shares/wi_shares_child_subsidy.py index 7828814a4ae..04692e69041 100644 --- a/policyengine_us/variables/gov/states/wi/dcf/shares/wi_shares_child_subsidy.py +++ b/policyengine_us/variables/gov/states/wi/dcf/shares/wi_shares_child_subsidy.py @@ -36,7 +36,11 @@ def formula(person, period, parameters): max_(weekly_hours - p.above_full_time_threshold, 0), p.above_full_time_cap - p.above_full_time_threshold, ) - addon = addon_weekly_hours * p.weeks_per_month * hourly_max + # Monthly hours round up to the whole hour per the program-wide + # conversion convention (Section 16.1.1); the handbook has no worked + # add-on example, so the round-up here is inferred. + addon_monthly_hours = np.ceil(addon_weekly_hours * p.weeks_per_month) + addon = addon_monthly_hours * hourly_max # Each child's share of the assistance group copayment is # proportional to their copayment hours (Section 18.2). The # denominator is the unit's summed per-child capped hours, which From 81457e89acd74a137a755d5357535910ac6b0a10 Mon Sep 17 00:00:00 2001 From: Ziming Date: Sat, 18 Jul 2026 19:14:03 -0400 Subject: [PATCH 7/7] Restructure county rate matrices to avoid parameter tree blowup breakdown: [county, ...] made core homogenize the four rate tables across all 3,236 County enum values (+64,727 nodes, +52% whole-tree), inflating reform-test deepcopies from 736 MB to 1,163 MB and OOM-killing the congress and Rest CI legs (the 'runner shutdown' failures). Adopt the MN CCAP layout: breakdown lists only wi_shares_age_group, county names are literal nested keys (not homogenized), and the rate variables index p[age_group][county] with the existing non-WI masking. All county/age/date values byte-identical (round-trip verified); tree back to 127,566 descendants vs 126,042 on main. Co-Authored-By: Claude Fable 5 --- .../licensed_family/full_time_monthly.yaml | 989 +++++++-------- .../shares/rates/licensed_family/hourly.yaml | 989 +++++++-------- .../licensed_group/full_time_monthly.yaml | 1055 ++++++++--------- .../shares/rates/licensed_group/hourly.yaml | 1055 ++++++++--------- .../shares/rates/wi_shares_hourly_max_rate.py | 4 +- .../rates/wi_shares_monthly_max_rate.py | 8 +- 6 files changed, 1912 insertions(+), 2188 deletions(-) diff --git a/policyengine_us/parameters/gov/states/wi/dcf/shares/rates/licensed_family/full_time_monthly.yaml b/policyengine_us/parameters/gov/states/wi/dcf/shares/rates/licensed_family/full_time_monthly.yaml index 4806b2a1cd9..5fe95deb2b3 100644 --- a/policyengine_us/parameters/gov/states/wi/dcf/shares/rates/licensed_family/full_time_monthly.yaml +++ b/policyengine_us/parameters/gov/states/wi/dcf/shares/rates/licensed_family/full_time_monthly.yaml @@ -13,7 +13,6 @@ metadata: period: month label: Wisconsin Shares licensed family full-time monthly maximum rate breakdown: - - county - wi_shares_age_group reference: - title: 2025 Wisconsin Shares Child Care Subsidy County and Tribal Maximum Rates - Statewide, effective 10/1/2025 @@ -23,651 +22,583 @@ metadata: - title: Wis. Stat. § 49.155(6) href: https://docs.legis.wisconsin.gov/statutes/statutes/49/III/155/6 -ADAMS_COUNTY_WI: - AGE_0_THROUGH_1: +AGE_0_THROUGH_1: + ADAMS_COUNTY_WI: 2025-10-01: 1195.74 - AGE_2_THROUGH_3: - 2025-10-01: 1087.04 - AGE_4_THROUGH_5: - 2025-10-01: 1087.04 - AGE_6_AND_OLDER: - 2025-10-01: 1087.04 -ASHLAND_COUNTY_WI: - AGE_0_THROUGH_1: + ASHLAND_COUNTY_WI: 2025-10-01: 826.15 - AGE_2_THROUGH_3: - 2025-10-01: 739.19 - AGE_4_THROUGH_5: - 2025-10-01: 673.96 - AGE_6_AND_OLDER: - 2025-10-01: 673.96 -BARRON_COUNTY_WI: - AGE_0_THROUGH_1: + BARRON_COUNTY_WI: 2025-10-01: 847.89 - AGE_2_THROUGH_3: - 2025-10-01: 739.19 - AGE_4_THROUGH_5: - 2025-10-01: 739.19 - AGE_6_AND_OLDER: - 2025-10-01: 739.19 -BAYFIELD_COUNTY_WI: - AGE_0_THROUGH_1: + BAYFIELD_COUNTY_WI: 2025-10-01: 978.33 - AGE_2_THROUGH_3: - 2025-10-01: 913.11 - AGE_4_THROUGH_5: - 2025-10-01: 847.89 - AGE_6_AND_OLDER: - 2025-10-01: 804.41 -BROWN_COUNTY_WI: - AGE_0_THROUGH_1: + BROWN_COUNTY_WI: 2025-10-01: 1195.74 - AGE_2_THROUGH_3: + BUFFALO_COUNTY_WI: + 2025-10-01: 847.89 + BURNETT_COUNTY_WI: 2025-10-01: 1087.04 - AGE_4_THROUGH_5: + CALUMET_COUNTY_WI: 2025-10-01: 1087.04 - AGE_6_AND_OLDER: + CHIPPEWA_COUNTY_WI: 2025-10-01: 869.63 -BUFFALO_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 847.89 - AGE_2_THROUGH_3: - 2025-10-01: 773.97 - AGE_4_THROUGH_5: - 2025-10-01: 773.97 - AGE_6_AND_OLDER: - 2025-10-01: 652.22 -BURNETT_COUNTY_WI: - AGE_0_THROUGH_1: + CLARK_COUNTY_WI: + 2025-10-01: 826.15 + COLUMBIA_COUNTY_WI: + 2025-10-01: 1087.04 + CRAWFORD_COUNTY_WI: + 2025-10-01: 1087.04 + DANE_COUNTY_WI: + 2025-10-01: 1521.85 + DODGE_COUNTY_WI: 2025-10-01: 1087.04 - AGE_2_THROUGH_3: + DOOR_COUNTY_WI: + 2025-10-01: 1195.74 + DOUGLAS_COUNTY_WI: 2025-10-01: 978.33 - AGE_4_THROUGH_5: + DUNN_COUNTY_WI: 2025-10-01: 869.63 - AGE_6_AND_OLDER: + EAU_CLAIRE_COUNTY_WI: 2025-10-01: 869.63 -CALUMET_COUNTY_WI: - AGE_0_THROUGH_1: + FLORENCE_COUNTY_WI: + 2025-10-01: 1087.04 + FOND_DU_LAC_COUNTY_WI: + 2025-10-01: 1087.04 + FOREST_COUNTY_WI: + 2025-10-01: 847.89 + GRANT_COUNTY_WI: 2025-10-01: 1087.04 - AGE_2_THROUGH_3: + GREEN_COUNTY_WI: 2025-10-01: 956.59 - AGE_4_THROUGH_5: - 2025-10-01: 913.11 - AGE_6_AND_OLDER: - 2025-10-01: 869.63 -CHIPPEWA_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 869.63 - AGE_2_THROUGH_3: - 2025-10-01: 869.63 - AGE_4_THROUGH_5: - 2025-10-01: 869.63 - AGE_6_AND_OLDER: - 2025-10-01: 869.63 -CLARK_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 826.15 - AGE_2_THROUGH_3: - 2025-10-01: 782.67 - AGE_4_THROUGH_5: - 2025-10-01: 782.67 - AGE_6_AND_OLDER: - 2025-10-01: 652.22 -COLUMBIA_COUNTY_WI: - AGE_0_THROUGH_1: + GREEN_LAKE_COUNTY_WI: 2025-10-01: 1087.04 - AGE_2_THROUGH_3: + IOWA_COUNTY_WI: + 2025-10-01: 1260.96 + IRON_COUNTY_WI: + 2025-10-01: 847.89 + JACKSON_COUNTY_WI: + 2025-10-01: 1195.74 + JEFFERSON_COUNTY_WI: + 2025-10-01: 956.59 + JUNEAU_COUNTY_WI: + 2025-10-01: 847.89 + KENOSHA_COUNTY_WI: 2025-10-01: 1087.04 - AGE_4_THROUGH_5: - 2025-10-01: 978.33 - AGE_6_AND_OLDER: - 2025-10-01: 978.33 -CRAWFORD_COUNTY_WI: - AGE_0_THROUGH_1: + KEWAUNEE_COUNTY_WI: + 2025-10-01: 1152.26 + LA_CROSSE_COUNTY_WI: + 2025-10-01: 913.11 + LAFAYETTE_COUNTY_WI: + 2025-10-01: 1087.04 + LANGLADE_COUNTY_WI: 2025-10-01: 1087.04 - AGE_2_THROUGH_3: + LINCOLN_COUNTY_WI: + 2025-10-01: 847.89 + MANITOWOC_COUNTY_WI: + 2025-10-01: 847.89 + MARATHON_COUNTY_WI: 2025-10-01: 978.33 - AGE_4_THROUGH_5: - 2025-10-01: 869.63 - AGE_6_AND_OLDER: - 2025-10-01: 869.63 -DANE_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 1521.85 - AGE_2_THROUGH_3: - 2025-10-01: 1456.63 - AGE_4_THROUGH_5: - 2025-10-01: 1413.15 - AGE_6_AND_OLDER: + MARINETTE_COUNTY_WI: + 2025-10-01: 847.89 + MARQUETTE_COUNTY_WI: + 2025-10-01: 847.89 + MENOMINEE_COUNTY_WI: + 2025-10-01: 1304.44 + MILWAUKEE_COUNTY_WI: 2025-10-01: 1304.44 -DODGE_COUNTY_WI: - AGE_0_THROUGH_1: + MONROE_COUNTY_WI: 2025-10-01: 1087.04 - AGE_2_THROUGH_3: + OCONTO_COUNTY_WI: 2025-10-01: 1087.04 - AGE_4_THROUGH_5: + ONEIDA_COUNTY_WI: + 2025-10-01: 826.15 + OUTAGAMIE_COUNTY_WI: + 2025-10-01: 1152.26 + OZAUKEE_COUNTY_WI: + 2025-10-01: 1304.44 + PEPIN_COUNTY_WI: + 2025-10-01: 869.63 + PIERCE_COUNTY_WI: + 2025-10-01: 1152.26 + POLK_COUNTY_WI: 2025-10-01: 978.33 - AGE_6_AND_OLDER: + PORTAGE_COUNTY_WI: + 2025-10-01: 913.11 + PRICE_COUNTY_WI: + 2025-10-01: 1087.04 + RACINE_COUNTY_WI: + 2025-10-01: 1087.04 + RICHLAND_COUNTY_WI: + 2025-10-01: 847.89 + ROCK_COUNTY_WI: + 2025-10-01: 1087.04 + RUSK_COUNTY_WI: + 2025-10-01: 1087.04 + SAUK_COUNTY_WI: + 2025-10-01: 956.59 + SAWYER_COUNTY_WI: + 2025-10-01: 826.15 + SHAWANO_COUNTY_WI: + 2025-10-01: 847.89 + SHEBOYGAN_COUNTY_WI: + 2025-10-01: 1521.85 + ST_CROIX_COUNTY_WI: + 2025-10-01: 1087.04 + TAYLOR_COUNTY_WI: 2025-10-01: 978.33 -DOOR_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 1195.74 - AGE_2_THROUGH_3: + TREMPEALEAU_COUNTY_WI: 2025-10-01: 1087.04 - AGE_4_THROUGH_5: + VERNON_COUNTY_WI: 2025-10-01: 1087.04 - AGE_6_AND_OLDER: - 2025-10-01: 869.63 -DOUGLAS_COUNTY_WI: - AGE_0_THROUGH_1: + VILAS_COUNTY_WI: + 2025-10-01: 1087.04 + WALWORTH_COUNTY_WI: 2025-10-01: 978.33 - AGE_2_THROUGH_3: - 2025-10-01: 913.11 - AGE_4_THROUGH_5: + WASHBURN_COUNTY_WI: 2025-10-01: 847.89 - AGE_6_AND_OLDER: - 2025-10-01: 804.41 -DUNN_COUNTY_WI: - AGE_0_THROUGH_1: + WASHINGTON_COUNTY_WI: + 2025-10-01: 1195.74 + WAUKESHA_COUNTY_WI: + 2025-10-01: 1260.96 + WAUPACA_COUNTY_WI: 2025-10-01: 869.63 - AGE_2_THROUGH_3: - 2025-10-01: 739.19 - AGE_4_THROUGH_5: + WAUSHARA_COUNTY_WI: + 2025-10-01: 1087.04 + WINNEBAGO_COUNTY_WI: + 2025-10-01: 1087.04 + WOOD_COUNTY_WI: + 2025-10-01: 869.63 +AGE_2_THROUGH_3: + ADAMS_COUNTY_WI: + 2025-10-01: 1087.04 + ASHLAND_COUNTY_WI: 2025-10-01: 739.19 - AGE_6_AND_OLDER: + BARRON_COUNTY_WI: 2025-10-01: 739.19 -EAU_CLAIRE_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 869.63 - AGE_2_THROUGH_3: + BAYFIELD_COUNTY_WI: + 2025-10-01: 913.11 + BROWN_COUNTY_WI: + 2025-10-01: 1087.04 + BUFFALO_COUNTY_WI: + 2025-10-01: 773.97 + BURNETT_COUNTY_WI: + 2025-10-01: 978.33 + CALUMET_COUNTY_WI: + 2025-10-01: 956.59 + CHIPPEWA_COUNTY_WI: 2025-10-01: 869.63 - AGE_4_THROUGH_5: - 2025-10-01: 826.15 - AGE_6_AND_OLDER: + CLARK_COUNTY_WI: 2025-10-01: 782.67 -FLORENCE_COUNTY_WI: - AGE_0_THROUGH_1: + COLUMBIA_COUNTY_WI: 2025-10-01: 1087.04 - AGE_2_THROUGH_3: - 2025-10-01: 1087.04 - AGE_4_THROUGH_5: - 2025-10-01: 978.33 - AGE_6_AND_OLDER: + CRAWFORD_COUNTY_WI: 2025-10-01: 978.33 -FOND_DU_LAC_COUNTY_WI: - AGE_0_THROUGH_1: + DANE_COUNTY_WI: + 2025-10-01: 1456.63 + DODGE_COUNTY_WI: 2025-10-01: 1087.04 - AGE_2_THROUGH_3: + DOOR_COUNTY_WI: 2025-10-01: 1087.04 - AGE_4_THROUGH_5: - 2025-10-01: 978.33 - AGE_6_AND_OLDER: - 2025-10-01: 978.33 -FOREST_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 847.89 - AGE_2_THROUGH_3: - 2025-10-01: 804.41 - AGE_4_THROUGH_5: - 2025-10-01: 804.41 - AGE_6_AND_OLDER: - 2025-10-01: 760.93 -GRANT_COUNTY_WI: - AGE_0_THROUGH_1: + DOUGLAS_COUNTY_WI: + 2025-10-01: 913.11 + DUNN_COUNTY_WI: + 2025-10-01: 739.19 + EAU_CLAIRE_COUNTY_WI: + 2025-10-01: 869.63 + FLORENCE_COUNTY_WI: + 2025-10-01: 1087.04 + FOND_DU_LAC_COUNTY_WI: 2025-10-01: 1087.04 - AGE_2_THROUGH_3: + FOREST_COUNTY_WI: + 2025-10-01: 804.41 + GRANT_COUNTY_WI: 2025-10-01: 978.33 - AGE_4_THROUGH_5: - 2025-10-01: 869.63 - AGE_6_AND_OLDER: - 2025-10-01: 869.63 -GREEN_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 956.59 - AGE_2_THROUGH_3: - 2025-10-01: 782.67 - AGE_4_THROUGH_5: + GREEN_COUNTY_WI: 2025-10-01: 782.67 - AGE_6_AND_OLDER: - 2025-10-01: 782.67 -GREEN_LAKE_COUNTY_WI: - AGE_0_THROUGH_1: + GREEN_LAKE_COUNTY_WI: + 2025-10-01: 978.33 + IOWA_COUNTY_WI: + 2025-10-01: 1130.52 + IRON_COUNTY_WI: + 2025-10-01: 739.19 + JACKSON_COUNTY_WI: 2025-10-01: 1087.04 - AGE_2_THROUGH_3: + JEFFERSON_COUNTY_WI: + 2025-10-01: 956.59 + JUNEAU_COUNTY_WI: + 2025-10-01: 804.41 + KENOSHA_COUNTY_WI: 2025-10-01: 978.33 - AGE_4_THROUGH_5: - 2025-10-01: 869.63 - AGE_6_AND_OLDER: + KEWAUNEE_COUNTY_WI: + 2025-10-01: 1000.07 + LA_CROSSE_COUNTY_WI: 2025-10-01: 869.63 -IOWA_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 1260.96 - AGE_2_THROUGH_3: - 2025-10-01: 1130.52 - AGE_4_THROUGH_5: - 2025-10-01: 1130.52 - AGE_6_AND_OLDER: - 2025-10-01: 1130.52 -IRON_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 847.89 - AGE_2_THROUGH_3: + LAFAYETTE_COUNTY_WI: + 2025-10-01: 978.33 + LANGLADE_COUNTY_WI: + 2025-10-01: 978.33 + LINCOLN_COUNTY_WI: 2025-10-01: 739.19 - AGE_4_THROUGH_5: + MANITOWOC_COUNTY_WI: 2025-10-01: 739.19 - AGE_6_AND_OLDER: + MARATHON_COUNTY_WI: + 2025-10-01: 913.11 + MARINETTE_COUNTY_WI: 2025-10-01: 739.19 -JACKSON_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 1195.74 - AGE_2_THROUGH_3: - 2025-10-01: 1087.04 - AGE_4_THROUGH_5: + MARQUETTE_COUNTY_WI: + 2025-10-01: 739.19 + MENOMINEE_COUNTY_WI: + 2025-10-01: 1239.22 + MILWAUKEE_COUNTY_WI: + 2025-10-01: 1239.22 + MONROE_COUNTY_WI: + 2025-10-01: 978.33 + OCONTO_COUNTY_WI: 2025-10-01: 1087.04 - AGE_6_AND_OLDER: - 2025-10-01: 869.63 -JEFFERSON_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 956.59 - AGE_2_THROUGH_3: - 2025-10-01: 956.59 - AGE_4_THROUGH_5: - 2025-10-01: 826.15 - AGE_6_AND_OLDER: + ONEIDA_COUNTY_WI: 2025-10-01: 826.15 -JUNEAU_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 847.89 - AGE_2_THROUGH_3: - 2025-10-01: 804.41 - AGE_4_THROUGH_5: + OUTAGAMIE_COUNTY_WI: + 2025-10-01: 1000.07 + OZAUKEE_COUNTY_WI: + 2025-10-01: 1239.22 + PEPIN_COUNTY_WI: + 2025-10-01: 869.63 + PIERCE_COUNTY_WI: + 2025-10-01: 1000.07 + POLK_COUNTY_WI: + 2025-10-01: 913.11 + PORTAGE_COUNTY_WI: + 2025-10-01: 913.11 + PRICE_COUNTY_WI: + 2025-10-01: 978.33 + RACINE_COUNTY_WI: + 2025-10-01: 978.33 + RICHLAND_COUNTY_WI: 2025-10-01: 804.41 - AGE_6_AND_OLDER: - 2025-10-01: 760.93 -KENOSHA_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 1087.04 - AGE_2_THROUGH_3: + ROCK_COUNTY_WI: 2025-10-01: 978.33 - AGE_4_THROUGH_5: - 2025-10-01: 869.63 - AGE_6_AND_OLDER: - 2025-10-01: 869.63 -KEWAUNEE_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 1152.26 - AGE_2_THROUGH_3: + RUSK_COUNTY_WI: + 2025-10-01: 978.33 + SAUK_COUNTY_WI: + 2025-10-01: 956.59 + SAWYER_COUNTY_WI: + 2025-10-01: 782.67 + SHAWANO_COUNTY_WI: + 2025-10-01: 804.41 + SHEBOYGAN_COUNTY_WI: + 2025-10-01: 1456.63 + ST_CROIX_COUNTY_WI: 2025-10-01: 1000.07 - AGE_4_THROUGH_5: + TAYLOR_COUNTY_WI: + 2025-10-01: 913.11 + TREMPEALEAU_COUNTY_WI: 2025-10-01: 1000.07 - AGE_6_AND_OLDER: + VERNON_COUNTY_WI: 2025-10-01: 978.33 -LA_CROSSE_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 913.11 - AGE_2_THROUGH_3: + VILAS_COUNTY_WI: + 2025-10-01: 978.33 + WALWORTH_COUNTY_WI: 2025-10-01: 869.63 - AGE_4_THROUGH_5: - 2025-10-01: 782.67 - AGE_6_AND_OLDER: - 2025-10-01: 760.93 -LAFAYETTE_COUNTY_WI: - AGE_0_THROUGH_1: + WASHBURN_COUNTY_WI: + 2025-10-01: 739.19 + WASHINGTON_COUNTY_WI: 2025-10-01: 1087.04 - AGE_2_THROUGH_3: + WAUKESHA_COUNTY_WI: + 2025-10-01: 1130.52 + WAUPACA_COUNTY_WI: + 2025-10-01: 826.15 + WAUSHARA_COUNTY_WI: 2025-10-01: 978.33 - AGE_4_THROUGH_5: - 2025-10-01: 869.63 - AGE_6_AND_OLDER: + WINNEBAGO_COUNTY_WI: + 2025-10-01: 956.59 + WOOD_COUNTY_WI: 2025-10-01: 869.63 -LANGLADE_COUNTY_WI: - AGE_0_THROUGH_1: +AGE_4_THROUGH_5: + ADAMS_COUNTY_WI: 2025-10-01: 1087.04 - AGE_2_THROUGH_3: - 2025-10-01: 978.33 - AGE_4_THROUGH_5: + ASHLAND_COUNTY_WI: + 2025-10-01: 673.96 + BARRON_COUNTY_WI: + 2025-10-01: 739.19 + BAYFIELD_COUNTY_WI: + 2025-10-01: 847.89 + BROWN_COUNTY_WI: + 2025-10-01: 1087.04 + BUFFALO_COUNTY_WI: + 2025-10-01: 773.97 + BURNETT_COUNTY_WI: 2025-10-01: 869.63 - AGE_6_AND_OLDER: + CALUMET_COUNTY_WI: + 2025-10-01: 913.11 + CHIPPEWA_COUNTY_WI: 2025-10-01: 869.63 -LINCOLN_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 847.89 - AGE_2_THROUGH_3: - 2025-10-01: 739.19 - AGE_4_THROUGH_5: - 2025-10-01: 739.19 - AGE_6_AND_OLDER: - 2025-10-01: 739.19 -MANITOWOC_COUNTY_WI: - AGE_0_THROUGH_1: + CLARK_COUNTY_WI: + 2025-10-01: 782.67 + COLUMBIA_COUNTY_WI: + 2025-10-01: 978.33 + CRAWFORD_COUNTY_WI: + 2025-10-01: 869.63 + DANE_COUNTY_WI: + 2025-10-01: 1413.15 + DODGE_COUNTY_WI: + 2025-10-01: 978.33 + DOOR_COUNTY_WI: + 2025-10-01: 1087.04 + DOUGLAS_COUNTY_WI: 2025-10-01: 847.89 - AGE_2_THROUGH_3: - 2025-10-01: 739.19 - AGE_4_THROUGH_5: + DUNN_COUNTY_WI: 2025-10-01: 739.19 - AGE_6_AND_OLDER: - 2025-10-01: 739.19 -MARATHON_COUNTY_WI: - AGE_0_THROUGH_1: + EAU_CLAIRE_COUNTY_WI: + 2025-10-01: 826.15 + FLORENCE_COUNTY_WI: 2025-10-01: 978.33 - AGE_2_THROUGH_3: - 2025-10-01: 913.11 - AGE_4_THROUGH_5: - 2025-10-01: 847.89 - AGE_6_AND_OLDER: + FOND_DU_LAC_COUNTY_WI: + 2025-10-01: 978.33 + FOREST_COUNTY_WI: 2025-10-01: 804.41 -MARINETTE_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 847.89 - AGE_2_THROUGH_3: + GRANT_COUNTY_WI: + 2025-10-01: 869.63 + GREEN_COUNTY_WI: + 2025-10-01: 782.67 + GREEN_LAKE_COUNTY_WI: + 2025-10-01: 869.63 + IOWA_COUNTY_WI: + 2025-10-01: 1130.52 + IRON_COUNTY_WI: 2025-10-01: 739.19 - AGE_4_THROUGH_5: + JACKSON_COUNTY_WI: + 2025-10-01: 1087.04 + JEFFERSON_COUNTY_WI: + 2025-10-01: 826.15 + JUNEAU_COUNTY_WI: + 2025-10-01: 804.41 + KENOSHA_COUNTY_WI: + 2025-10-01: 869.63 + KEWAUNEE_COUNTY_WI: + 2025-10-01: 1000.07 + LA_CROSSE_COUNTY_WI: + 2025-10-01: 782.67 + LAFAYETTE_COUNTY_WI: + 2025-10-01: 869.63 + LANGLADE_COUNTY_WI: + 2025-10-01: 869.63 + LINCOLN_COUNTY_WI: 2025-10-01: 739.19 - AGE_6_AND_OLDER: + MANITOWOC_COUNTY_WI: 2025-10-01: 739.19 -MARQUETTE_COUNTY_WI: - AGE_0_THROUGH_1: + MARATHON_COUNTY_WI: 2025-10-01: 847.89 - AGE_2_THROUGH_3: + MARINETTE_COUNTY_WI: 2025-10-01: 739.19 - AGE_4_THROUGH_5: + MARQUETTE_COUNTY_WI: 2025-10-01: 739.19 - AGE_6_AND_OLDER: - 2025-10-01: 739.19 -MENOMINEE_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 1304.44 - AGE_2_THROUGH_3: - 2025-10-01: 1239.22 - AGE_4_THROUGH_5: + MENOMINEE_COUNTY_WI: 2025-10-01: 1187.91 - AGE_6_AND_OLDER: - 2025-10-01: 1087.04 -MILWAUKEE_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 1304.44 - AGE_2_THROUGH_3: - 2025-10-01: 1239.22 - AGE_4_THROUGH_5: + MILWAUKEE_COUNTY_WI: 2025-10-01: 1187.91 - AGE_6_AND_OLDER: - 2025-10-01: 1087.04 -MONROE_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 1087.04 - AGE_2_THROUGH_3: - 2025-10-01: 978.33 - AGE_4_THROUGH_5: - 2025-10-01: 869.63 - AGE_6_AND_OLDER: + MONROE_COUNTY_WI: 2025-10-01: 869.63 -OCONTO_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 1087.04 - AGE_2_THROUGH_3: - 2025-10-01: 1087.04 - AGE_4_THROUGH_5: - 2025-10-01: 978.33 - AGE_6_AND_OLDER: + OCONTO_COUNTY_WI: 2025-10-01: 978.33 -ONEIDA_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 826.15 - AGE_2_THROUGH_3: - 2025-10-01: 826.15 - AGE_4_THROUGH_5: - 2025-10-01: 826.15 - AGE_6_AND_OLDER: + ONEIDA_COUNTY_WI: 2025-10-01: 826.15 -OUTAGAMIE_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 1152.26 - AGE_2_THROUGH_3: - 2025-10-01: 1000.07 - AGE_4_THROUGH_5: + OUTAGAMIE_COUNTY_WI: 2025-10-01: 1000.07 - AGE_6_AND_OLDER: - 2025-10-01: 978.33 -OZAUKEE_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 1304.44 - AGE_2_THROUGH_3: - 2025-10-01: 1239.22 - AGE_4_THROUGH_5: + OZAUKEE_COUNTY_WI: 2025-10-01: 1187.91 - AGE_6_AND_OLDER: - 2025-10-01: 1087.04 -PEPIN_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 869.63 - AGE_2_THROUGH_3: - 2025-10-01: 869.63 - AGE_4_THROUGH_5: + PEPIN_COUNTY_WI: 2025-10-01: 826.15 - AGE_6_AND_OLDER: - 2025-10-01: 782.67 -PIERCE_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 1152.26 - AGE_2_THROUGH_3: + PIERCE_COUNTY_WI: 2025-10-01: 1000.07 - AGE_4_THROUGH_5: - 2025-10-01: 1000.07 - AGE_6_AND_OLDER: - 2025-10-01: 978.33 -POLK_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 978.33 - AGE_2_THROUGH_3: - 2025-10-01: 913.11 - AGE_4_THROUGH_5: + POLK_COUNTY_WI: 2025-10-01: 847.89 - AGE_6_AND_OLDER: - 2025-10-01: 804.41 -PORTAGE_COUNTY_WI: - AGE_0_THROUGH_1: + PORTAGE_COUNTY_WI: 2025-10-01: 913.11 - AGE_2_THROUGH_3: - 2025-10-01: 913.11 - AGE_4_THROUGH_5: - 2025-10-01: 913.11 - AGE_6_AND_OLDER: - 2025-10-01: 913.11 -PRICE_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 1087.04 - AGE_2_THROUGH_3: - 2025-10-01: 978.33 - AGE_4_THROUGH_5: + PRICE_COUNTY_WI: 2025-10-01: 869.63 - AGE_6_AND_OLDER: + RACINE_COUNTY_WI: 2025-10-01: 869.63 -RACINE_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 1087.04 - AGE_2_THROUGH_3: - 2025-10-01: 978.33 - AGE_4_THROUGH_5: - 2025-10-01: 869.63 - AGE_6_AND_OLDER: - 2025-10-01: 869.63 -RICHLAND_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 847.89 - AGE_2_THROUGH_3: - 2025-10-01: 804.41 - AGE_4_THROUGH_5: + RICHLAND_COUNTY_WI: 2025-10-01: 804.41 - AGE_6_AND_OLDER: - 2025-10-01: 760.93 -ROCK_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 1087.04 - AGE_2_THROUGH_3: - 2025-10-01: 978.33 - AGE_4_THROUGH_5: - 2025-10-01: 869.63 - AGE_6_AND_OLDER: - 2025-10-01: 869.63 -RUSK_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 1087.04 - AGE_2_THROUGH_3: - 2025-10-01: 978.33 - AGE_4_THROUGH_5: + ROCK_COUNTY_WI: 2025-10-01: 869.63 - AGE_6_AND_OLDER: + RUSK_COUNTY_WI: 2025-10-01: 869.63 -SAUK_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 956.59 - AGE_2_THROUGH_3: - 2025-10-01: 956.59 - AGE_4_THROUGH_5: - 2025-10-01: 826.15 - AGE_6_AND_OLDER: + SAUK_COUNTY_WI: 2025-10-01: 826.15 -SAWYER_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 826.15 - AGE_2_THROUGH_3: - 2025-10-01: 782.67 - AGE_4_THROUGH_5: - 2025-10-01: 782.67 - AGE_6_AND_OLDER: + SAWYER_COUNTY_WI: 2025-10-01: 782.67 -SHAWANO_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 847.89 - AGE_2_THROUGH_3: - 2025-10-01: 804.41 - AGE_4_THROUGH_5: + SHAWANO_COUNTY_WI: 2025-10-01: 804.41 - AGE_6_AND_OLDER: - 2025-10-01: 760.93 -SHEBOYGAN_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 1521.85 - AGE_2_THROUGH_3: - 2025-10-01: 1456.63 - AGE_4_THROUGH_5: + SHEBOYGAN_COUNTY_WI: 2025-10-01: 1413.15 - AGE_6_AND_OLDER: - 2025-10-01: 1304.44 -ST_CROIX_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 1087.04 - AGE_2_THROUGH_3: + ST_CROIX_COUNTY_WI: 2025-10-01: 1000.07 - AGE_4_THROUGH_5: + TAYLOR_COUNTY_WI: + 2025-10-01: 847.89 + TREMPEALEAU_COUNTY_WI: 2025-10-01: 1000.07 - AGE_6_AND_OLDER: + VERNON_COUNTY_WI: 2025-10-01: 869.63 -TAYLOR_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 978.33 - AGE_2_THROUGH_3: - 2025-10-01: 913.11 - AGE_4_THROUGH_5: - 2025-10-01: 847.89 - AGE_6_AND_OLDER: - 2025-10-01: 804.41 -TREMPEALEAU_COUNTY_WI: - AGE_0_THROUGH_1: + VILAS_COUNTY_WI: + 2025-10-01: 869.63 + WALWORTH_COUNTY_WI: + 2025-10-01: 869.63 + WASHBURN_COUNTY_WI: + 2025-10-01: 739.19 + WASHINGTON_COUNTY_WI: 2025-10-01: 1087.04 - AGE_2_THROUGH_3: - 2025-10-01: 1000.07 - AGE_4_THROUGH_5: - 2025-10-01: 1000.07 - AGE_6_AND_OLDER: + WAUKESHA_COUNTY_WI: + 2025-10-01: 1130.52 + WAUPACA_COUNTY_WI: + 2025-10-01: 826.15 + WAUSHARA_COUNTY_WI: 2025-10-01: 869.63 -VERNON_COUNTY_WI: - AGE_0_THROUGH_1: + WINNEBAGO_COUNTY_WI: + 2025-10-01: 913.11 + WOOD_COUNTY_WI: + 2025-10-01: 739.19 +AGE_6_AND_OLDER: + ADAMS_COUNTY_WI: 2025-10-01: 1087.04 - AGE_2_THROUGH_3: - 2025-10-01: 978.33 - AGE_4_THROUGH_5: + ASHLAND_COUNTY_WI: + 2025-10-01: 673.96 + BARRON_COUNTY_WI: + 2025-10-01: 739.19 + BAYFIELD_COUNTY_WI: + 2025-10-01: 804.41 + BROWN_COUNTY_WI: 2025-10-01: 869.63 - AGE_6_AND_OLDER: + BUFFALO_COUNTY_WI: + 2025-10-01: 652.22 + BURNETT_COUNTY_WI: 2025-10-01: 869.63 -VILAS_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 1087.04 - AGE_2_THROUGH_3: + CALUMET_COUNTY_WI: + 2025-10-01: 869.63 + CHIPPEWA_COUNTY_WI: + 2025-10-01: 869.63 + CLARK_COUNTY_WI: + 2025-10-01: 652.22 + COLUMBIA_COUNTY_WI: 2025-10-01: 978.33 - AGE_4_THROUGH_5: + CRAWFORD_COUNTY_WI: 2025-10-01: 869.63 - AGE_6_AND_OLDER: + DANE_COUNTY_WI: + 2025-10-01: 1304.44 + DODGE_COUNTY_WI: + 2025-10-01: 978.33 + DOOR_COUNTY_WI: 2025-10-01: 869.63 -WALWORTH_COUNTY_WI: - AGE_0_THROUGH_1: + DOUGLAS_COUNTY_WI: + 2025-10-01: 804.41 + DUNN_COUNTY_WI: + 2025-10-01: 739.19 + EAU_CLAIRE_COUNTY_WI: + 2025-10-01: 782.67 + FLORENCE_COUNTY_WI: + 2025-10-01: 978.33 + FOND_DU_LAC_COUNTY_WI: 2025-10-01: 978.33 - AGE_2_THROUGH_3: + FOREST_COUNTY_WI: + 2025-10-01: 760.93 + GRANT_COUNTY_WI: + 2025-10-01: 869.63 + GREEN_COUNTY_WI: + 2025-10-01: 782.67 + GREEN_LAKE_COUNTY_WI: 2025-10-01: 869.63 - AGE_4_THROUGH_5: + IOWA_COUNTY_WI: + 2025-10-01: 1130.52 + IRON_COUNTY_WI: + 2025-10-01: 739.19 + JACKSON_COUNTY_WI: 2025-10-01: 869.63 - AGE_6_AND_OLDER: + JEFFERSON_COUNTY_WI: + 2025-10-01: 826.15 + JUNEAU_COUNTY_WI: + 2025-10-01: 760.93 + KENOSHA_COUNTY_WI: 2025-10-01: 869.63 -WASHBURN_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 847.89 - AGE_2_THROUGH_3: + KEWAUNEE_COUNTY_WI: + 2025-10-01: 978.33 + LA_CROSSE_COUNTY_WI: + 2025-10-01: 760.93 + LAFAYETTE_COUNTY_WI: + 2025-10-01: 869.63 + LANGLADE_COUNTY_WI: + 2025-10-01: 869.63 + LINCOLN_COUNTY_WI: 2025-10-01: 739.19 - AGE_4_THROUGH_5: + MANITOWOC_COUNTY_WI: 2025-10-01: 739.19 - AGE_6_AND_OLDER: + MARATHON_COUNTY_WI: + 2025-10-01: 804.41 + MARINETTE_COUNTY_WI: 2025-10-01: 739.19 -WASHINGTON_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 1195.74 - AGE_2_THROUGH_3: + MARQUETTE_COUNTY_WI: + 2025-10-01: 739.19 + MENOMINEE_COUNTY_WI: 2025-10-01: 1087.04 - AGE_4_THROUGH_5: + MILWAUKEE_COUNTY_WI: 2025-10-01: 1087.04 - AGE_6_AND_OLDER: - 2025-10-01: 913.11 -WAUKESHA_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 1260.96 - AGE_2_THROUGH_3: - 2025-10-01: 1130.52 - AGE_4_THROUGH_5: - 2025-10-01: 1130.52 - AGE_6_AND_OLDER: - 2025-10-01: 1130.52 -WAUPACA_COUNTY_WI: - AGE_0_THROUGH_1: + MONROE_COUNTY_WI: 2025-10-01: 869.63 - AGE_2_THROUGH_3: - 2025-10-01: 826.15 - AGE_4_THROUGH_5: - 2025-10-01: 826.15 - AGE_6_AND_OLDER: + OCONTO_COUNTY_WI: + 2025-10-01: 978.33 + ONEIDA_COUNTY_WI: 2025-10-01: 826.15 -WAUSHARA_COUNTY_WI: - AGE_0_THROUGH_1: + OUTAGAMIE_COUNTY_WI: + 2025-10-01: 978.33 + OZAUKEE_COUNTY_WI: 2025-10-01: 1087.04 - AGE_2_THROUGH_3: + PEPIN_COUNTY_WI: + 2025-10-01: 782.67 + PIERCE_COUNTY_WI: 2025-10-01: 978.33 - AGE_4_THROUGH_5: + POLK_COUNTY_WI: + 2025-10-01: 804.41 + PORTAGE_COUNTY_WI: + 2025-10-01: 913.11 + PRICE_COUNTY_WI: 2025-10-01: 869.63 - AGE_6_AND_OLDER: + RACINE_COUNTY_WI: 2025-10-01: 869.63 -WINNEBAGO_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 1087.04 - AGE_2_THROUGH_3: - 2025-10-01: 956.59 - AGE_4_THROUGH_5: - 2025-10-01: 913.11 - AGE_6_AND_OLDER: + RICHLAND_COUNTY_WI: + 2025-10-01: 760.93 + ROCK_COUNTY_WI: 2025-10-01: 869.63 -WOOD_COUNTY_WI: - AGE_0_THROUGH_1: + RUSK_COUNTY_WI: 2025-10-01: 869.63 - AGE_2_THROUGH_3: + SAUK_COUNTY_WI: + 2025-10-01: 826.15 + SAWYER_COUNTY_WI: + 2025-10-01: 782.67 + SHAWANO_COUNTY_WI: + 2025-10-01: 760.93 + SHEBOYGAN_COUNTY_WI: + 2025-10-01: 1304.44 + ST_CROIX_COUNTY_WI: 2025-10-01: 869.63 - AGE_4_THROUGH_5: + TAYLOR_COUNTY_WI: + 2025-10-01: 804.41 + TREMPEALEAU_COUNTY_WI: + 2025-10-01: 869.63 + VERNON_COUNTY_WI: + 2025-10-01: 869.63 + VILAS_COUNTY_WI: + 2025-10-01: 869.63 + WALWORTH_COUNTY_WI: + 2025-10-01: 869.63 + WASHBURN_COUNTY_WI: 2025-10-01: 739.19 - AGE_6_AND_OLDER: + WASHINGTON_COUNTY_WI: + 2025-10-01: 913.11 + WAUKESHA_COUNTY_WI: + 2025-10-01: 1130.52 + WAUPACA_COUNTY_WI: + 2025-10-01: 826.15 + WAUSHARA_COUNTY_WI: + 2025-10-01: 869.63 + WINNEBAGO_COUNTY_WI: + 2025-10-01: 869.63 + WOOD_COUNTY_WI: 2025-10-01: 869.63 diff --git a/policyengine_us/parameters/gov/states/wi/dcf/shares/rates/licensed_family/hourly.yaml b/policyengine_us/parameters/gov/states/wi/dcf/shares/rates/licensed_family/hourly.yaml index 95fc2460c40..7f71594a0f6 100644 --- a/policyengine_us/parameters/gov/states/wi/dcf/shares/rates/licensed_family/hourly.yaml +++ b/policyengine_us/parameters/gov/states/wi/dcf/shares/rates/licensed_family/hourly.yaml @@ -13,7 +13,6 @@ metadata: period: hour label: Wisconsin Shares licensed family hourly maximum rate breakdown: - - county - wi_shares_age_group reference: - title: 2025 Wisconsin Shares Child Care Subsidy County and Tribal Maximum Rates - Statewide, effective 10/1/2025 @@ -23,651 +22,583 @@ metadata: - title: Wis. Stat. § 49.155(6) href: https://docs.legis.wisconsin.gov/statutes/statutes/49/III/155/6 -ADAMS_COUNTY_WI: - AGE_0_THROUGH_1: +AGE_0_THROUGH_1: + ADAMS_COUNTY_WI: 2025-10-01: 7.86 - AGE_2_THROUGH_3: - 2025-10-01: 7.15 - AGE_4_THROUGH_5: - 2025-10-01: 7.15 - AGE_6_AND_OLDER: - 2025-10-01: 7.15 -ASHLAND_COUNTY_WI: - AGE_0_THROUGH_1: + ASHLAND_COUNTY_WI: 2025-10-01: 5.43 - AGE_2_THROUGH_3: - 2025-10-01: 4.86 - AGE_4_THROUGH_5: - 2025-10-01: 4.43 - AGE_6_AND_OLDER: - 2025-10-01: 4.43 -BARRON_COUNTY_WI: - AGE_0_THROUGH_1: + BARRON_COUNTY_WI: 2025-10-01: 5.58 - AGE_2_THROUGH_3: - 2025-10-01: 4.86 - AGE_4_THROUGH_5: - 2025-10-01: 4.86 - AGE_6_AND_OLDER: - 2025-10-01: 4.86 -BAYFIELD_COUNTY_WI: - AGE_0_THROUGH_1: + BAYFIELD_COUNTY_WI: 2025-10-01: 6.43 - AGE_2_THROUGH_3: - 2025-10-01: 6 - AGE_4_THROUGH_5: - 2025-10-01: 5.58 - AGE_6_AND_OLDER: - 2025-10-01: 5.29 -BROWN_COUNTY_WI: - AGE_0_THROUGH_1: + BROWN_COUNTY_WI: 2025-10-01: 7.86 - AGE_2_THROUGH_3: + BUFFALO_COUNTY_WI: + 2025-10-01: 5.58 + BURNETT_COUNTY_WI: 2025-10-01: 7.15 - AGE_4_THROUGH_5: + CALUMET_COUNTY_WI: 2025-10-01: 7.15 - AGE_6_AND_OLDER: + CHIPPEWA_COUNTY_WI: 2025-10-01: 5.72 -BUFFALO_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 5.58 - AGE_2_THROUGH_3: - 2025-10-01: 5.09 - AGE_4_THROUGH_5: - 2025-10-01: 5.09 - AGE_6_AND_OLDER: - 2025-10-01: 4.29 -BURNETT_COUNTY_WI: - AGE_0_THROUGH_1: + CLARK_COUNTY_WI: + 2025-10-01: 5.43 + COLUMBIA_COUNTY_WI: + 2025-10-01: 7.15 + CRAWFORD_COUNTY_WI: + 2025-10-01: 7.15 + DANE_COUNTY_WI: + 2025-10-01: 10 + DODGE_COUNTY_WI: 2025-10-01: 7.15 - AGE_2_THROUGH_3: + DOOR_COUNTY_WI: + 2025-10-01: 7.86 + DOUGLAS_COUNTY_WI: 2025-10-01: 6.43 - AGE_4_THROUGH_5: + DUNN_COUNTY_WI: 2025-10-01: 5.72 - AGE_6_AND_OLDER: + EAU_CLAIRE_COUNTY_WI: 2025-10-01: 5.72 -CALUMET_COUNTY_WI: - AGE_0_THROUGH_1: + FLORENCE_COUNTY_WI: + 2025-10-01: 7.15 + FOND_DU_LAC_COUNTY_WI: + 2025-10-01: 7.15 + FOREST_COUNTY_WI: + 2025-10-01: 5.58 + GRANT_COUNTY_WI: 2025-10-01: 7.15 - AGE_2_THROUGH_3: + GREEN_COUNTY_WI: 2025-10-01: 6.29 - AGE_4_THROUGH_5: - 2025-10-01: 6 - AGE_6_AND_OLDER: - 2025-10-01: 5.72 -CHIPPEWA_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 5.72 - AGE_2_THROUGH_3: - 2025-10-01: 5.72 - AGE_4_THROUGH_5: - 2025-10-01: 5.72 - AGE_6_AND_OLDER: - 2025-10-01: 5.72 -CLARK_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 5.43 - AGE_2_THROUGH_3: - 2025-10-01: 5.15 - AGE_4_THROUGH_5: - 2025-10-01: 5.15 - AGE_6_AND_OLDER: - 2025-10-01: 4.29 -COLUMBIA_COUNTY_WI: - AGE_0_THROUGH_1: + GREEN_LAKE_COUNTY_WI: 2025-10-01: 7.15 - AGE_2_THROUGH_3: + IOWA_COUNTY_WI: + 2025-10-01: 8.29 + IRON_COUNTY_WI: + 2025-10-01: 5.58 + JACKSON_COUNTY_WI: + 2025-10-01: 7.86 + JEFFERSON_COUNTY_WI: + 2025-10-01: 6.29 + JUNEAU_COUNTY_WI: + 2025-10-01: 5.58 + KENOSHA_COUNTY_WI: 2025-10-01: 7.15 - AGE_4_THROUGH_5: - 2025-10-01: 6.43 - AGE_6_AND_OLDER: - 2025-10-01: 6.43 -CRAWFORD_COUNTY_WI: - AGE_0_THROUGH_1: + KEWAUNEE_COUNTY_WI: + 2025-10-01: 7.58 + LA_CROSSE_COUNTY_WI: + 2025-10-01: 6 + LAFAYETTE_COUNTY_WI: + 2025-10-01: 7.15 + LANGLADE_COUNTY_WI: 2025-10-01: 7.15 - AGE_2_THROUGH_3: + LINCOLN_COUNTY_WI: + 2025-10-01: 5.58 + MANITOWOC_COUNTY_WI: + 2025-10-01: 5.58 + MARATHON_COUNTY_WI: 2025-10-01: 6.43 - AGE_4_THROUGH_5: - 2025-10-01: 5.72 - AGE_6_AND_OLDER: - 2025-10-01: 5.72 -DANE_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 10 - AGE_2_THROUGH_3: - 2025-10-01: 9.58 - AGE_4_THROUGH_5: - 2025-10-01: 9.29 - AGE_6_AND_OLDER: + MARINETTE_COUNTY_WI: + 2025-10-01: 5.58 + MARQUETTE_COUNTY_WI: + 2025-10-01: 5.58 + MENOMINEE_COUNTY_WI: + 2025-10-01: 8.58 + MILWAUKEE_COUNTY_WI: 2025-10-01: 8.58 -DODGE_COUNTY_WI: - AGE_0_THROUGH_1: + MONROE_COUNTY_WI: 2025-10-01: 7.15 - AGE_2_THROUGH_3: + OCONTO_COUNTY_WI: 2025-10-01: 7.15 - AGE_4_THROUGH_5: + ONEIDA_COUNTY_WI: + 2025-10-01: 5.43 + OUTAGAMIE_COUNTY_WI: + 2025-10-01: 7.58 + OZAUKEE_COUNTY_WI: + 2025-10-01: 8.58 + PEPIN_COUNTY_WI: + 2025-10-01: 5.72 + PIERCE_COUNTY_WI: + 2025-10-01: 7.58 + POLK_COUNTY_WI: 2025-10-01: 6.43 - AGE_6_AND_OLDER: + PORTAGE_COUNTY_WI: + 2025-10-01: 6 + PRICE_COUNTY_WI: + 2025-10-01: 7.15 + RACINE_COUNTY_WI: + 2025-10-01: 7.15 + RICHLAND_COUNTY_WI: + 2025-10-01: 5.58 + ROCK_COUNTY_WI: + 2025-10-01: 7.15 + RUSK_COUNTY_WI: + 2025-10-01: 7.15 + SAUK_COUNTY_WI: + 2025-10-01: 6.29 + SAWYER_COUNTY_WI: + 2025-10-01: 5.43 + SHAWANO_COUNTY_WI: + 2025-10-01: 5.58 + SHEBOYGAN_COUNTY_WI: + 2025-10-01: 10 + ST_CROIX_COUNTY_WI: + 2025-10-01: 7.15 + TAYLOR_COUNTY_WI: 2025-10-01: 6.43 -DOOR_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 7.86 - AGE_2_THROUGH_3: + TREMPEALEAU_COUNTY_WI: 2025-10-01: 7.15 - AGE_4_THROUGH_5: + VERNON_COUNTY_WI: 2025-10-01: 7.15 - AGE_6_AND_OLDER: - 2025-10-01: 5.72 -DOUGLAS_COUNTY_WI: - AGE_0_THROUGH_1: + VILAS_COUNTY_WI: + 2025-10-01: 7.15 + WALWORTH_COUNTY_WI: 2025-10-01: 6.43 - AGE_2_THROUGH_3: - 2025-10-01: 6 - AGE_4_THROUGH_5: + WASHBURN_COUNTY_WI: 2025-10-01: 5.58 - AGE_6_AND_OLDER: - 2025-10-01: 5.29 -DUNN_COUNTY_WI: - AGE_0_THROUGH_1: + WASHINGTON_COUNTY_WI: + 2025-10-01: 7.86 + WAUKESHA_COUNTY_WI: + 2025-10-01: 8.29 + WAUPACA_COUNTY_WI: 2025-10-01: 5.72 - AGE_2_THROUGH_3: - 2025-10-01: 4.86 - AGE_4_THROUGH_5: + WAUSHARA_COUNTY_WI: + 2025-10-01: 7.15 + WINNEBAGO_COUNTY_WI: + 2025-10-01: 7.15 + WOOD_COUNTY_WI: + 2025-10-01: 5.72 +AGE_2_THROUGH_3: + ADAMS_COUNTY_WI: + 2025-10-01: 7.15 + ASHLAND_COUNTY_WI: 2025-10-01: 4.86 - AGE_6_AND_OLDER: + BARRON_COUNTY_WI: 2025-10-01: 4.86 -EAU_CLAIRE_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 5.72 - AGE_2_THROUGH_3: + BAYFIELD_COUNTY_WI: + 2025-10-01: 6 + BROWN_COUNTY_WI: + 2025-10-01: 7.15 + BUFFALO_COUNTY_WI: + 2025-10-01: 5.09 + BURNETT_COUNTY_WI: + 2025-10-01: 6.43 + CALUMET_COUNTY_WI: + 2025-10-01: 6.29 + CHIPPEWA_COUNTY_WI: 2025-10-01: 5.72 - AGE_4_THROUGH_5: - 2025-10-01: 5.43 - AGE_6_AND_OLDER: + CLARK_COUNTY_WI: 2025-10-01: 5.15 -FLORENCE_COUNTY_WI: - AGE_0_THROUGH_1: + COLUMBIA_COUNTY_WI: 2025-10-01: 7.15 - AGE_2_THROUGH_3: - 2025-10-01: 7.15 - AGE_4_THROUGH_5: - 2025-10-01: 6.43 - AGE_6_AND_OLDER: + CRAWFORD_COUNTY_WI: 2025-10-01: 6.43 -FOND_DU_LAC_COUNTY_WI: - AGE_0_THROUGH_1: + DANE_COUNTY_WI: + 2025-10-01: 9.58 + DODGE_COUNTY_WI: 2025-10-01: 7.15 - AGE_2_THROUGH_3: + DOOR_COUNTY_WI: 2025-10-01: 7.15 - AGE_4_THROUGH_5: - 2025-10-01: 6.43 - AGE_6_AND_OLDER: - 2025-10-01: 6.43 -FOREST_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 5.58 - AGE_2_THROUGH_3: - 2025-10-01: 5.29 - AGE_4_THROUGH_5: - 2025-10-01: 5.29 - AGE_6_AND_OLDER: - 2025-10-01: 5 -GRANT_COUNTY_WI: - AGE_0_THROUGH_1: + DOUGLAS_COUNTY_WI: + 2025-10-01: 6 + DUNN_COUNTY_WI: + 2025-10-01: 4.86 + EAU_CLAIRE_COUNTY_WI: + 2025-10-01: 5.72 + FLORENCE_COUNTY_WI: + 2025-10-01: 7.15 + FOND_DU_LAC_COUNTY_WI: 2025-10-01: 7.15 - AGE_2_THROUGH_3: + FOREST_COUNTY_WI: + 2025-10-01: 5.29 + GRANT_COUNTY_WI: 2025-10-01: 6.43 - AGE_4_THROUGH_5: - 2025-10-01: 5.72 - AGE_6_AND_OLDER: - 2025-10-01: 5.72 -GREEN_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 6.29 - AGE_2_THROUGH_3: - 2025-10-01: 5.15 - AGE_4_THROUGH_5: + GREEN_COUNTY_WI: 2025-10-01: 5.15 - AGE_6_AND_OLDER: - 2025-10-01: 5.15 -GREEN_LAKE_COUNTY_WI: - AGE_0_THROUGH_1: + GREEN_LAKE_COUNTY_WI: + 2025-10-01: 6.43 + IOWA_COUNTY_WI: + 2025-10-01: 7.43 + IRON_COUNTY_WI: + 2025-10-01: 4.86 + JACKSON_COUNTY_WI: 2025-10-01: 7.15 - AGE_2_THROUGH_3: + JEFFERSON_COUNTY_WI: + 2025-10-01: 6.29 + JUNEAU_COUNTY_WI: + 2025-10-01: 5.29 + KENOSHA_COUNTY_WI: 2025-10-01: 6.43 - AGE_4_THROUGH_5: - 2025-10-01: 5.72 - AGE_6_AND_OLDER: + KEWAUNEE_COUNTY_WI: + 2025-10-01: 6.58 + LA_CROSSE_COUNTY_WI: 2025-10-01: 5.72 -IOWA_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 8.29 - AGE_2_THROUGH_3: - 2025-10-01: 7.43 - AGE_4_THROUGH_5: - 2025-10-01: 7.43 - AGE_6_AND_OLDER: - 2025-10-01: 7.43 -IRON_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 5.58 - AGE_2_THROUGH_3: + LAFAYETTE_COUNTY_WI: + 2025-10-01: 6.43 + LANGLADE_COUNTY_WI: + 2025-10-01: 6.43 + LINCOLN_COUNTY_WI: 2025-10-01: 4.86 - AGE_4_THROUGH_5: + MANITOWOC_COUNTY_WI: 2025-10-01: 4.86 - AGE_6_AND_OLDER: + MARATHON_COUNTY_WI: + 2025-10-01: 6 + MARINETTE_COUNTY_WI: 2025-10-01: 4.86 -JACKSON_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 7.86 - AGE_2_THROUGH_3: - 2025-10-01: 7.15 - AGE_4_THROUGH_5: + MARQUETTE_COUNTY_WI: + 2025-10-01: 4.86 + MENOMINEE_COUNTY_WI: + 2025-10-01: 8.15 + MILWAUKEE_COUNTY_WI: + 2025-10-01: 8.15 + MONROE_COUNTY_WI: + 2025-10-01: 6.43 + OCONTO_COUNTY_WI: 2025-10-01: 7.15 - AGE_6_AND_OLDER: - 2025-10-01: 5.72 -JEFFERSON_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 6.29 - AGE_2_THROUGH_3: - 2025-10-01: 6.29 - AGE_4_THROUGH_5: - 2025-10-01: 5.43 - AGE_6_AND_OLDER: + ONEIDA_COUNTY_WI: 2025-10-01: 5.43 -JUNEAU_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 5.58 - AGE_2_THROUGH_3: - 2025-10-01: 5.29 - AGE_4_THROUGH_5: + OUTAGAMIE_COUNTY_WI: + 2025-10-01: 6.58 + OZAUKEE_COUNTY_WI: + 2025-10-01: 8.15 + PEPIN_COUNTY_WI: + 2025-10-01: 5.72 + PIERCE_COUNTY_WI: + 2025-10-01: 6.58 + POLK_COUNTY_WI: + 2025-10-01: 6 + PORTAGE_COUNTY_WI: + 2025-10-01: 6 + PRICE_COUNTY_WI: + 2025-10-01: 6.43 + RACINE_COUNTY_WI: + 2025-10-01: 6.43 + RICHLAND_COUNTY_WI: 2025-10-01: 5.29 - AGE_6_AND_OLDER: - 2025-10-01: 5 -KENOSHA_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 7.15 - AGE_2_THROUGH_3: + ROCK_COUNTY_WI: 2025-10-01: 6.43 - AGE_4_THROUGH_5: - 2025-10-01: 5.72 - AGE_6_AND_OLDER: - 2025-10-01: 5.72 -KEWAUNEE_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 7.58 - AGE_2_THROUGH_3: + RUSK_COUNTY_WI: + 2025-10-01: 6.43 + SAUK_COUNTY_WI: + 2025-10-01: 6.29 + SAWYER_COUNTY_WI: + 2025-10-01: 5.15 + SHAWANO_COUNTY_WI: + 2025-10-01: 5.29 + SHEBOYGAN_COUNTY_WI: + 2025-10-01: 9.58 + ST_CROIX_COUNTY_WI: 2025-10-01: 6.58 - AGE_4_THROUGH_5: + TAYLOR_COUNTY_WI: + 2025-10-01: 6 + TREMPEALEAU_COUNTY_WI: 2025-10-01: 6.58 - AGE_6_AND_OLDER: + VERNON_COUNTY_WI: 2025-10-01: 6.43 -LA_CROSSE_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 6 - AGE_2_THROUGH_3: + VILAS_COUNTY_WI: + 2025-10-01: 6.43 + WALWORTH_COUNTY_WI: 2025-10-01: 5.72 - AGE_4_THROUGH_5: - 2025-10-01: 5.15 - AGE_6_AND_OLDER: - 2025-10-01: 5 -LAFAYETTE_COUNTY_WI: - AGE_0_THROUGH_1: + WASHBURN_COUNTY_WI: + 2025-10-01: 4.86 + WASHINGTON_COUNTY_WI: 2025-10-01: 7.15 - AGE_2_THROUGH_3: + WAUKESHA_COUNTY_WI: + 2025-10-01: 7.43 + WAUPACA_COUNTY_WI: + 2025-10-01: 5.43 + WAUSHARA_COUNTY_WI: 2025-10-01: 6.43 - AGE_4_THROUGH_5: - 2025-10-01: 5.72 - AGE_6_AND_OLDER: + WINNEBAGO_COUNTY_WI: + 2025-10-01: 6.29 + WOOD_COUNTY_WI: 2025-10-01: 5.72 -LANGLADE_COUNTY_WI: - AGE_0_THROUGH_1: +AGE_4_THROUGH_5: + ADAMS_COUNTY_WI: 2025-10-01: 7.15 - AGE_2_THROUGH_3: - 2025-10-01: 6.43 - AGE_4_THROUGH_5: + ASHLAND_COUNTY_WI: + 2025-10-01: 4.43 + BARRON_COUNTY_WI: + 2025-10-01: 4.86 + BAYFIELD_COUNTY_WI: + 2025-10-01: 5.58 + BROWN_COUNTY_WI: + 2025-10-01: 7.15 + BUFFALO_COUNTY_WI: + 2025-10-01: 5.09 + BURNETT_COUNTY_WI: 2025-10-01: 5.72 - AGE_6_AND_OLDER: + CALUMET_COUNTY_WI: + 2025-10-01: 6 + CHIPPEWA_COUNTY_WI: 2025-10-01: 5.72 -LINCOLN_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 5.58 - AGE_2_THROUGH_3: - 2025-10-01: 4.86 - AGE_4_THROUGH_5: - 2025-10-01: 4.86 - AGE_6_AND_OLDER: - 2025-10-01: 4.86 -MANITOWOC_COUNTY_WI: - AGE_0_THROUGH_1: + CLARK_COUNTY_WI: + 2025-10-01: 5.15 + COLUMBIA_COUNTY_WI: + 2025-10-01: 6.43 + CRAWFORD_COUNTY_WI: + 2025-10-01: 5.72 + DANE_COUNTY_WI: + 2025-10-01: 9.29 + DODGE_COUNTY_WI: + 2025-10-01: 6.43 + DOOR_COUNTY_WI: + 2025-10-01: 7.15 + DOUGLAS_COUNTY_WI: 2025-10-01: 5.58 - AGE_2_THROUGH_3: - 2025-10-01: 4.86 - AGE_4_THROUGH_5: + DUNN_COUNTY_WI: 2025-10-01: 4.86 - AGE_6_AND_OLDER: - 2025-10-01: 4.86 -MARATHON_COUNTY_WI: - AGE_0_THROUGH_1: + EAU_CLAIRE_COUNTY_WI: + 2025-10-01: 5.43 + FLORENCE_COUNTY_WI: 2025-10-01: 6.43 - AGE_2_THROUGH_3: - 2025-10-01: 6 - AGE_4_THROUGH_5: - 2025-10-01: 5.58 - AGE_6_AND_OLDER: + FOND_DU_LAC_COUNTY_WI: + 2025-10-01: 6.43 + FOREST_COUNTY_WI: 2025-10-01: 5.29 -MARINETTE_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 5.58 - AGE_2_THROUGH_3: + GRANT_COUNTY_WI: + 2025-10-01: 5.72 + GREEN_COUNTY_WI: + 2025-10-01: 5.15 + GREEN_LAKE_COUNTY_WI: + 2025-10-01: 5.72 + IOWA_COUNTY_WI: + 2025-10-01: 7.43 + IRON_COUNTY_WI: 2025-10-01: 4.86 - AGE_4_THROUGH_5: + JACKSON_COUNTY_WI: + 2025-10-01: 7.15 + JEFFERSON_COUNTY_WI: + 2025-10-01: 5.43 + JUNEAU_COUNTY_WI: + 2025-10-01: 5.29 + KENOSHA_COUNTY_WI: + 2025-10-01: 5.72 + KEWAUNEE_COUNTY_WI: + 2025-10-01: 6.58 + LA_CROSSE_COUNTY_WI: + 2025-10-01: 5.15 + LAFAYETTE_COUNTY_WI: + 2025-10-01: 5.72 + LANGLADE_COUNTY_WI: + 2025-10-01: 5.72 + LINCOLN_COUNTY_WI: 2025-10-01: 4.86 - AGE_6_AND_OLDER: + MANITOWOC_COUNTY_WI: 2025-10-01: 4.86 -MARQUETTE_COUNTY_WI: - AGE_0_THROUGH_1: + MARATHON_COUNTY_WI: 2025-10-01: 5.58 - AGE_2_THROUGH_3: + MARINETTE_COUNTY_WI: 2025-10-01: 4.86 - AGE_4_THROUGH_5: + MARQUETTE_COUNTY_WI: 2025-10-01: 4.86 - AGE_6_AND_OLDER: - 2025-10-01: 4.86 -MENOMINEE_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 8.58 - AGE_2_THROUGH_3: - 2025-10-01: 8.15 - AGE_4_THROUGH_5: + MENOMINEE_COUNTY_WI: 2025-10-01: 7.81 - AGE_6_AND_OLDER: - 2025-10-01: 7.15 -MILWAUKEE_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 8.58 - AGE_2_THROUGH_3: - 2025-10-01: 8.15 - AGE_4_THROUGH_5: + MILWAUKEE_COUNTY_WI: 2025-10-01: 7.81 - AGE_6_AND_OLDER: - 2025-10-01: 7.15 -MONROE_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 7.15 - AGE_2_THROUGH_3: - 2025-10-01: 6.43 - AGE_4_THROUGH_5: - 2025-10-01: 5.72 - AGE_6_AND_OLDER: + MONROE_COUNTY_WI: 2025-10-01: 5.72 -OCONTO_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 7.15 - AGE_2_THROUGH_3: - 2025-10-01: 7.15 - AGE_4_THROUGH_5: - 2025-10-01: 6.43 - AGE_6_AND_OLDER: + OCONTO_COUNTY_WI: 2025-10-01: 6.43 -ONEIDA_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 5.43 - AGE_2_THROUGH_3: - 2025-10-01: 5.43 - AGE_4_THROUGH_5: - 2025-10-01: 5.43 - AGE_6_AND_OLDER: + ONEIDA_COUNTY_WI: 2025-10-01: 5.43 -OUTAGAMIE_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 7.58 - AGE_2_THROUGH_3: - 2025-10-01: 6.58 - AGE_4_THROUGH_5: + OUTAGAMIE_COUNTY_WI: 2025-10-01: 6.58 - AGE_6_AND_OLDER: - 2025-10-01: 6.43 -OZAUKEE_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 8.58 - AGE_2_THROUGH_3: - 2025-10-01: 8.15 - AGE_4_THROUGH_5: + OZAUKEE_COUNTY_WI: 2025-10-01: 7.81 - AGE_6_AND_OLDER: - 2025-10-01: 7.15 -PEPIN_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 5.72 - AGE_2_THROUGH_3: - 2025-10-01: 5.72 - AGE_4_THROUGH_5: + PEPIN_COUNTY_WI: 2025-10-01: 5.43 - AGE_6_AND_OLDER: - 2025-10-01: 5.15 -PIERCE_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 7.58 - AGE_2_THROUGH_3: + PIERCE_COUNTY_WI: 2025-10-01: 6.58 - AGE_4_THROUGH_5: - 2025-10-01: 6.58 - AGE_6_AND_OLDER: - 2025-10-01: 6.43 -POLK_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 6.43 - AGE_2_THROUGH_3: - 2025-10-01: 6 - AGE_4_THROUGH_5: + POLK_COUNTY_WI: 2025-10-01: 5.58 - AGE_6_AND_OLDER: - 2025-10-01: 5.29 -PORTAGE_COUNTY_WI: - AGE_0_THROUGH_1: + PORTAGE_COUNTY_WI: 2025-10-01: 6 - AGE_2_THROUGH_3: - 2025-10-01: 6 - AGE_4_THROUGH_5: - 2025-10-01: 6 - AGE_6_AND_OLDER: - 2025-10-01: 6 -PRICE_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 7.15 - AGE_2_THROUGH_3: - 2025-10-01: 6.43 - AGE_4_THROUGH_5: + PRICE_COUNTY_WI: 2025-10-01: 5.72 - AGE_6_AND_OLDER: + RACINE_COUNTY_WI: 2025-10-01: 5.72 -RACINE_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 7.15 - AGE_2_THROUGH_3: - 2025-10-01: 6.43 - AGE_4_THROUGH_5: - 2025-10-01: 5.72 - AGE_6_AND_OLDER: - 2025-10-01: 5.72 -RICHLAND_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 5.58 - AGE_2_THROUGH_3: - 2025-10-01: 5.29 - AGE_4_THROUGH_5: + RICHLAND_COUNTY_WI: 2025-10-01: 5.29 - AGE_6_AND_OLDER: - 2025-10-01: 5 -ROCK_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 7.15 - AGE_2_THROUGH_3: - 2025-10-01: 6.43 - AGE_4_THROUGH_5: - 2025-10-01: 5.72 - AGE_6_AND_OLDER: - 2025-10-01: 5.72 -RUSK_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 7.15 - AGE_2_THROUGH_3: - 2025-10-01: 6.43 - AGE_4_THROUGH_5: + ROCK_COUNTY_WI: 2025-10-01: 5.72 - AGE_6_AND_OLDER: + RUSK_COUNTY_WI: 2025-10-01: 5.72 -SAUK_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 6.29 - AGE_2_THROUGH_3: - 2025-10-01: 6.29 - AGE_4_THROUGH_5: - 2025-10-01: 5.43 - AGE_6_AND_OLDER: + SAUK_COUNTY_WI: 2025-10-01: 5.43 -SAWYER_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 5.43 - AGE_2_THROUGH_3: - 2025-10-01: 5.15 - AGE_4_THROUGH_5: - 2025-10-01: 5.15 - AGE_6_AND_OLDER: + SAWYER_COUNTY_WI: 2025-10-01: 5.15 -SHAWANO_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 5.58 - AGE_2_THROUGH_3: - 2025-10-01: 5.29 - AGE_4_THROUGH_5: + SHAWANO_COUNTY_WI: 2025-10-01: 5.29 - AGE_6_AND_OLDER: - 2025-10-01: 5 -SHEBOYGAN_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 10 - AGE_2_THROUGH_3: - 2025-10-01: 9.58 - AGE_4_THROUGH_5: + SHEBOYGAN_COUNTY_WI: 2025-10-01: 9.29 - AGE_6_AND_OLDER: - 2025-10-01: 8.58 -ST_CROIX_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 7.15 - AGE_2_THROUGH_3: + ST_CROIX_COUNTY_WI: 2025-10-01: 6.58 - AGE_4_THROUGH_5: + TAYLOR_COUNTY_WI: + 2025-10-01: 5.58 + TREMPEALEAU_COUNTY_WI: 2025-10-01: 6.58 - AGE_6_AND_OLDER: + VERNON_COUNTY_WI: 2025-10-01: 5.72 -TAYLOR_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 6.43 - AGE_2_THROUGH_3: - 2025-10-01: 6 - AGE_4_THROUGH_5: - 2025-10-01: 5.58 - AGE_6_AND_OLDER: - 2025-10-01: 5.29 -TREMPEALEAU_COUNTY_WI: - AGE_0_THROUGH_1: + VILAS_COUNTY_WI: + 2025-10-01: 5.72 + WALWORTH_COUNTY_WI: + 2025-10-01: 5.72 + WASHBURN_COUNTY_WI: + 2025-10-01: 4.86 + WASHINGTON_COUNTY_WI: 2025-10-01: 7.15 - AGE_2_THROUGH_3: - 2025-10-01: 6.58 - AGE_4_THROUGH_5: - 2025-10-01: 6.58 - AGE_6_AND_OLDER: + WAUKESHA_COUNTY_WI: + 2025-10-01: 7.43 + WAUPACA_COUNTY_WI: + 2025-10-01: 5.43 + WAUSHARA_COUNTY_WI: 2025-10-01: 5.72 -VERNON_COUNTY_WI: - AGE_0_THROUGH_1: + WINNEBAGO_COUNTY_WI: + 2025-10-01: 6 + WOOD_COUNTY_WI: + 2025-10-01: 4.86 +AGE_6_AND_OLDER: + ADAMS_COUNTY_WI: 2025-10-01: 7.15 - AGE_2_THROUGH_3: - 2025-10-01: 6.43 - AGE_4_THROUGH_5: + ASHLAND_COUNTY_WI: + 2025-10-01: 4.43 + BARRON_COUNTY_WI: + 2025-10-01: 4.86 + BAYFIELD_COUNTY_WI: + 2025-10-01: 5.29 + BROWN_COUNTY_WI: 2025-10-01: 5.72 - AGE_6_AND_OLDER: + BUFFALO_COUNTY_WI: + 2025-10-01: 4.29 + BURNETT_COUNTY_WI: 2025-10-01: 5.72 -VILAS_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 7.15 - AGE_2_THROUGH_3: + CALUMET_COUNTY_WI: + 2025-10-01: 5.72 + CHIPPEWA_COUNTY_WI: + 2025-10-01: 5.72 + CLARK_COUNTY_WI: + 2025-10-01: 4.29 + COLUMBIA_COUNTY_WI: 2025-10-01: 6.43 - AGE_4_THROUGH_5: + CRAWFORD_COUNTY_WI: 2025-10-01: 5.72 - AGE_6_AND_OLDER: + DANE_COUNTY_WI: + 2025-10-01: 8.58 + DODGE_COUNTY_WI: + 2025-10-01: 6.43 + DOOR_COUNTY_WI: 2025-10-01: 5.72 -WALWORTH_COUNTY_WI: - AGE_0_THROUGH_1: + DOUGLAS_COUNTY_WI: + 2025-10-01: 5.29 + DUNN_COUNTY_WI: + 2025-10-01: 4.86 + EAU_CLAIRE_COUNTY_WI: + 2025-10-01: 5.15 + FLORENCE_COUNTY_WI: + 2025-10-01: 6.43 + FOND_DU_LAC_COUNTY_WI: 2025-10-01: 6.43 - AGE_2_THROUGH_3: + FOREST_COUNTY_WI: + 2025-10-01: 5 + GRANT_COUNTY_WI: + 2025-10-01: 5.72 + GREEN_COUNTY_WI: + 2025-10-01: 5.15 + GREEN_LAKE_COUNTY_WI: 2025-10-01: 5.72 - AGE_4_THROUGH_5: + IOWA_COUNTY_WI: + 2025-10-01: 7.43 + IRON_COUNTY_WI: + 2025-10-01: 4.86 + JACKSON_COUNTY_WI: 2025-10-01: 5.72 - AGE_6_AND_OLDER: + JEFFERSON_COUNTY_WI: + 2025-10-01: 5.43 + JUNEAU_COUNTY_WI: + 2025-10-01: 5 + KENOSHA_COUNTY_WI: 2025-10-01: 5.72 -WASHBURN_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 5.58 - AGE_2_THROUGH_3: + KEWAUNEE_COUNTY_WI: + 2025-10-01: 6.43 + LA_CROSSE_COUNTY_WI: + 2025-10-01: 5 + LAFAYETTE_COUNTY_WI: + 2025-10-01: 5.72 + LANGLADE_COUNTY_WI: + 2025-10-01: 5.72 + LINCOLN_COUNTY_WI: 2025-10-01: 4.86 - AGE_4_THROUGH_5: + MANITOWOC_COUNTY_WI: 2025-10-01: 4.86 - AGE_6_AND_OLDER: + MARATHON_COUNTY_WI: + 2025-10-01: 5.29 + MARINETTE_COUNTY_WI: 2025-10-01: 4.86 -WASHINGTON_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 7.86 - AGE_2_THROUGH_3: + MARQUETTE_COUNTY_WI: + 2025-10-01: 4.86 + MENOMINEE_COUNTY_WI: 2025-10-01: 7.15 - AGE_4_THROUGH_5: + MILWAUKEE_COUNTY_WI: 2025-10-01: 7.15 - AGE_6_AND_OLDER: - 2025-10-01: 6 -WAUKESHA_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 8.29 - AGE_2_THROUGH_3: - 2025-10-01: 7.43 - AGE_4_THROUGH_5: - 2025-10-01: 7.43 - AGE_6_AND_OLDER: - 2025-10-01: 7.43 -WAUPACA_COUNTY_WI: - AGE_0_THROUGH_1: + MONROE_COUNTY_WI: 2025-10-01: 5.72 - AGE_2_THROUGH_3: - 2025-10-01: 5.43 - AGE_4_THROUGH_5: - 2025-10-01: 5.43 - AGE_6_AND_OLDER: + OCONTO_COUNTY_WI: + 2025-10-01: 6.43 + ONEIDA_COUNTY_WI: 2025-10-01: 5.43 -WAUSHARA_COUNTY_WI: - AGE_0_THROUGH_1: + OUTAGAMIE_COUNTY_WI: + 2025-10-01: 6.43 + OZAUKEE_COUNTY_WI: 2025-10-01: 7.15 - AGE_2_THROUGH_3: + PEPIN_COUNTY_WI: + 2025-10-01: 5.15 + PIERCE_COUNTY_WI: 2025-10-01: 6.43 - AGE_4_THROUGH_5: + POLK_COUNTY_WI: + 2025-10-01: 5.29 + PORTAGE_COUNTY_WI: + 2025-10-01: 6 + PRICE_COUNTY_WI: 2025-10-01: 5.72 - AGE_6_AND_OLDER: + RACINE_COUNTY_WI: 2025-10-01: 5.72 -WINNEBAGO_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 7.15 - AGE_2_THROUGH_3: - 2025-10-01: 6.29 - AGE_4_THROUGH_5: - 2025-10-01: 6 - AGE_6_AND_OLDER: + RICHLAND_COUNTY_WI: + 2025-10-01: 5 + ROCK_COUNTY_WI: 2025-10-01: 5.72 -WOOD_COUNTY_WI: - AGE_0_THROUGH_1: + RUSK_COUNTY_WI: 2025-10-01: 5.72 - AGE_2_THROUGH_3: + SAUK_COUNTY_WI: + 2025-10-01: 5.43 + SAWYER_COUNTY_WI: + 2025-10-01: 5.15 + SHAWANO_COUNTY_WI: + 2025-10-01: 5 + SHEBOYGAN_COUNTY_WI: + 2025-10-01: 8.58 + ST_CROIX_COUNTY_WI: 2025-10-01: 5.72 - AGE_4_THROUGH_5: + TAYLOR_COUNTY_WI: + 2025-10-01: 5.29 + TREMPEALEAU_COUNTY_WI: + 2025-10-01: 5.72 + VERNON_COUNTY_WI: + 2025-10-01: 5.72 + VILAS_COUNTY_WI: + 2025-10-01: 5.72 + WALWORTH_COUNTY_WI: + 2025-10-01: 5.72 + WASHBURN_COUNTY_WI: 2025-10-01: 4.86 - AGE_6_AND_OLDER: + WASHINGTON_COUNTY_WI: + 2025-10-01: 6 + WAUKESHA_COUNTY_WI: + 2025-10-01: 7.43 + WAUPACA_COUNTY_WI: + 2025-10-01: 5.43 + WAUSHARA_COUNTY_WI: + 2025-10-01: 5.72 + WINNEBAGO_COUNTY_WI: + 2025-10-01: 5.72 + WOOD_COUNTY_WI: 2025-10-01: 5.72 diff --git a/policyengine_us/parameters/gov/states/wi/dcf/shares/rates/licensed_group/full_time_monthly.yaml b/policyengine_us/parameters/gov/states/wi/dcf/shares/rates/licensed_group/full_time_monthly.yaml index e17ab1a6609..db568a51dcd 100644 --- a/policyengine_us/parameters/gov/states/wi/dcf/shares/rates/licensed_group/full_time_monthly.yaml +++ b/policyengine_us/parameters/gov/states/wi/dcf/shares/rates/licensed_group/full_time_monthly.yaml @@ -11,7 +11,6 @@ metadata: period: month label: Wisconsin Shares licensed group full-time monthly maximum rate breakdown: - - county - wi_shares_age_group reference: - title: 2025 Wisconsin Shares Child Care Subsidy County and Tribal Maximum Rates - Statewide, effective 10/1/2025 @@ -21,651 +20,583 @@ metadata: - title: Wis. Stat. § 49.155(6) href: https://docs.legis.wisconsin.gov/statutes/statutes/49/III/155/6 -ADAMS_COUNTY_WI: - AGE_0_THROUGH_1: +AGE_0_THROUGH_1: + ADAMS_COUNTY_WI: 2025-10-01: 1543.59 - AGE_2_THROUGH_3: - 2025-10-01: 1330.53 - AGE_4_THROUGH_5: - 2025-10-01: 1239.22 - AGE_6_AND_OLDER: - 2025-10-01: 1108.78 -ASHLAND_COUNTY_WI: - AGE_0_THROUGH_1: + ASHLAND_COUNTY_WI: 2025-10-01: 1065.3 - AGE_2_THROUGH_3: - 2025-10-01: 1000.07 - AGE_4_THROUGH_5: - 2025-10-01: 934.85 - AGE_6_AND_OLDER: - 2025-10-01: 695.7 -BARRON_COUNTY_WI: - AGE_0_THROUGH_1: + BARRON_COUNTY_WI: 2025-10-01: 1157.69 - AGE_2_THROUGH_3: - 2025-10-01: 1021.81 - AGE_4_THROUGH_5: - 2025-10-01: 983.77 - AGE_6_AND_OLDER: - 2025-10-01: 983.77 -BAYFIELD_COUNTY_WI: - AGE_0_THROUGH_1: + BAYFIELD_COUNTY_WI: 2025-10-01: 1304.44 - AGE_2_THROUGH_3: - 2025-10-01: 1134.87 - AGE_4_THROUGH_5: - 2025-10-01: 1043.55 - AGE_6_AND_OLDER: - 2025-10-01: 887.02 -BROWN_COUNTY_WI: - AGE_0_THROUGH_1: + BROWN_COUNTY_WI: 2025-10-01: 1543.59 - AGE_2_THROUGH_3: - 2025-10-01: 1330.53 - AGE_4_THROUGH_5: - 2025-10-01: 1239.22 - AGE_6_AND_OLDER: - 2025-10-01: 1108.78 -BUFFALO_COUNTY_WI: - AGE_0_THROUGH_1: + BUFFALO_COUNTY_WI: 2025-10-01: 1004.42 - AGE_2_THROUGH_3: - 2025-10-01: 923.98 - AGE_4_THROUGH_5: - 2025-10-01: 913.11 - AGE_6_AND_OLDER: - 2025-10-01: 913.11 -BURNETT_COUNTY_WI: - AGE_0_THROUGH_1: + BURNETT_COUNTY_WI: 2025-10-01: 1487.06 - AGE_2_THROUGH_3: - 2025-10-01: 1217.48 - AGE_4_THROUGH_5: - 2025-10-01: 1000.07 - AGE_6_AND_OLDER: - 2025-10-01: 956.59 -CALUMET_COUNTY_WI: - AGE_0_THROUGH_1: + CALUMET_COUNTY_WI: 2025-10-01: 1347.92 - AGE_2_THROUGH_3: - 2025-10-01: 1304.44 - AGE_4_THROUGH_5: - 2025-10-01: 1_174 - AGE_6_AND_OLDER: - 2025-10-01: 1108.78 -CHIPPEWA_COUNTY_WI: - AGE_0_THROUGH_1: + CHIPPEWA_COUNTY_WI: 2025-10-01: 1413.15 - AGE_2_THROUGH_3: - 2025-10-01: 1347.92 - AGE_4_THROUGH_5: - 2025-10-01: 1213.13 - AGE_6_AND_OLDER: - 2025-10-01: 1195.74 -CLARK_COUNTY_WI: - AGE_0_THROUGH_1: + CLARK_COUNTY_WI: 2025-10-01: 1152.26 - AGE_2_THROUGH_3: - 2025-10-01: 1043.55 - AGE_4_THROUGH_5: - 2025-10-01: 956.59 - AGE_6_AND_OLDER: - 2025-10-01: 934.85 -COLUMBIA_COUNTY_WI: - AGE_0_THROUGH_1: + COLUMBIA_COUNTY_WI: 2025-10-01: 1426.19 - AGE_2_THROUGH_3: - 2025-10-01: 1239.22 - AGE_4_THROUGH_5: - 2025-10-01: 1108.78 - AGE_6_AND_OLDER: - 2025-10-01: 1108.78 -CRAWFORD_COUNTY_WI: - AGE_0_THROUGH_1: + CRAWFORD_COUNTY_WI: 2025-10-01: 1487.06 - AGE_2_THROUGH_3: - 2025-10-01: 1217.48 - AGE_4_THROUGH_5: - 2025-10-01: 1000.07 - AGE_6_AND_OLDER: - 2025-10-01: 956.59 -DANE_COUNTY_WI: - AGE_0_THROUGH_1: + DANE_COUNTY_WI: 2025-10-01: 2087.1 - AGE_2_THROUGH_3: - 2025-10-01: 1747.95 - AGE_4_THROUGH_5: - 2025-10-01: 1558.03 - AGE_6_AND_OLDER: - 2025-10-01: 1413.15 -DODGE_COUNTY_WI: - AGE_0_THROUGH_1: + DODGE_COUNTY_WI: 2025-10-01: 1426.19 - AGE_2_THROUGH_3: - 2025-10-01: 1239.22 - AGE_4_THROUGH_5: - 2025-10-01: 1108.78 - AGE_6_AND_OLDER: - 2025-10-01: 1108.78 -DOOR_COUNTY_WI: - AGE_0_THROUGH_1: + DOOR_COUNTY_WI: 2025-10-01: 1543.59 - AGE_2_THROUGH_3: - 2025-10-01: 1330.53 - AGE_4_THROUGH_5: - 2025-10-01: 1239.22 - AGE_6_AND_OLDER: - 2025-10-01: 1108.78 -DOUGLAS_COUNTY_WI: - AGE_0_THROUGH_1: + DOUGLAS_COUNTY_WI: 2025-10-01: 1304.44 - AGE_2_THROUGH_3: - 2025-10-01: 1134.87 - AGE_4_THROUGH_5: - 2025-10-01: 1043.55 - AGE_6_AND_OLDER: - 2025-10-01: 887.02 -DUNN_COUNTY_WI: - AGE_0_THROUGH_1: + DUNN_COUNTY_WI: 2025-10-01: 1195.74 - AGE_2_THROUGH_3: - 2025-10-01: 1121.82 - AGE_4_THROUGH_5: - 2025-10-01: 1121.82 - AGE_6_AND_OLDER: - 2025-10-01: 891.37 -EAU_CLAIRE_COUNTY_WI: - AGE_0_THROUGH_1: + EAU_CLAIRE_COUNTY_WI: 2025-10-01: 1369.66 - AGE_2_THROUGH_3: - 2025-10-01: 1282.7 - AGE_4_THROUGH_5: - 2025-10-01: 1_174 - AGE_6_AND_OLDER: - 2025-10-01: 1043.55 -FLORENCE_COUNTY_WI: - AGE_0_THROUGH_1: + FLORENCE_COUNTY_WI: 2025-10-01: 1426.19 - AGE_2_THROUGH_3: - 2025-10-01: 1239.22 - AGE_4_THROUGH_5: - 2025-10-01: 1108.78 - AGE_6_AND_OLDER: - 2025-10-01: 1108.78 -FOND_DU_LAC_COUNTY_WI: - AGE_0_THROUGH_1: + FOND_DU_LAC_COUNTY_WI: 2025-10-01: 1426.19 - AGE_2_THROUGH_3: - 2025-10-01: 1239.22 - AGE_4_THROUGH_5: - 2025-10-01: 1108.78 - AGE_6_AND_OLDER: - 2025-10-01: 1108.78 -FOREST_COUNTY_WI: - AGE_0_THROUGH_1: + FOREST_COUNTY_WI: 2025-10-01: 1_174 - AGE_2_THROUGH_3: - 2025-10-01: 1065.3 - AGE_4_THROUGH_5: - 2025-10-01: 1043.55 - AGE_6_AND_OLDER: - 2025-10-01: 1043.55 -GRANT_COUNTY_WI: - AGE_0_THROUGH_1: + GRANT_COUNTY_WI: 2025-10-01: 1487.06 - AGE_2_THROUGH_3: - 2025-10-01: 1217.48 - AGE_4_THROUGH_5: - 2025-10-01: 1000.07 - AGE_6_AND_OLDER: - 2025-10-01: 956.59 -GREEN_COUNTY_WI: - AGE_0_THROUGH_1: + GREEN_COUNTY_WI: 2025-10-01: 1304.44 - AGE_2_THROUGH_3: - 2025-10-01: 1_174 - AGE_4_THROUGH_5: - 2025-10-01: 1_174 - AGE_6_AND_OLDER: - 2025-10-01: 1065.3 -GREEN_LAKE_COUNTY_WI: - AGE_0_THROUGH_1: + GREEN_LAKE_COUNTY_WI: 2025-10-01: 1487.06 - AGE_2_THROUGH_3: - 2025-10-01: 1217.48 - AGE_4_THROUGH_5: - 2025-10-01: 1000.07 - AGE_6_AND_OLDER: - 2025-10-01: 956.59 -IOWA_COUNTY_WI: - AGE_0_THROUGH_1: + IOWA_COUNTY_WI: 2025-10-01: 1665.34 - AGE_2_THROUGH_3: - 2025-10-01: 1434.89 - AGE_4_THROUGH_5: - 2025-10-01: 1304.44 - AGE_6_AND_OLDER: - 2025-10-01: 1147.91 -IRON_COUNTY_WI: - AGE_0_THROUGH_1: + IRON_COUNTY_WI: 2025-10-01: 1157.69 - AGE_2_THROUGH_3: - 2025-10-01: 1021.81 - AGE_4_THROUGH_5: - 2025-10-01: 983.77 - AGE_6_AND_OLDER: - 2025-10-01: 983.77 -JACKSON_COUNTY_WI: - AGE_0_THROUGH_1: + JACKSON_COUNTY_WI: 2025-10-01: 1543.59 - AGE_2_THROUGH_3: - 2025-10-01: 1330.53 - AGE_4_THROUGH_5: - 2025-10-01: 1239.22 - AGE_6_AND_OLDER: - 2025-10-01: 1108.78 -JEFFERSON_COUNTY_WI: - AGE_0_THROUGH_1: + JEFFERSON_COUNTY_WI: 2025-10-01: 1269.66 - AGE_2_THROUGH_3: - 2025-10-01: 1104.43 - AGE_4_THROUGH_5: - 2025-10-01: 1017.47 - AGE_6_AND_OLDER: - 2025-10-01: 847.89 -JUNEAU_COUNTY_WI: - AGE_0_THROUGH_1: + JUNEAU_COUNTY_WI: 2025-10-01: 1_174 - AGE_2_THROUGH_3: - 2025-10-01: 1065.3 - AGE_4_THROUGH_5: - 2025-10-01: 1043.55 - AGE_6_AND_OLDER: - 2025-10-01: 1043.55 -KENOSHA_COUNTY_WI: - AGE_0_THROUGH_1: + KENOSHA_COUNTY_WI: 2025-10-01: 1487.06 - AGE_2_THROUGH_3: - 2025-10-01: 1217.48 - AGE_4_THROUGH_5: - 2025-10-01: 1000.07 - AGE_6_AND_OLDER: - 2025-10-01: 956.59 -KEWAUNEE_COUNTY_WI: - AGE_0_THROUGH_1: + KEWAUNEE_COUNTY_WI: 2025-10-01: 1347.92 - AGE_2_THROUGH_3: - 2025-10-01: 1304.44 - AGE_4_THROUGH_5: - 2025-10-01: 1200.09 - AGE_6_AND_OLDER: - 2025-10-01: 1087.04 -LA_CROSSE_COUNTY_WI: - AGE_0_THROUGH_1: + LA_CROSSE_COUNTY_WI: 2025-10-01: 1256.61 - AGE_2_THROUGH_3: - 2025-10-01: 1130.52 - AGE_4_THROUGH_5: - 2025-10-01: 1087.04 - AGE_6_AND_OLDER: - 2025-10-01: 1087.04 -LAFAYETTE_COUNTY_WI: - AGE_0_THROUGH_1: + LAFAYETTE_COUNTY_WI: 2025-10-01: 1487.06 - AGE_2_THROUGH_3: - 2025-10-01: 1217.48 - AGE_4_THROUGH_5: - 2025-10-01: 1000.07 - AGE_6_AND_OLDER: - 2025-10-01: 956.59 -LANGLADE_COUNTY_WI: - AGE_0_THROUGH_1: + LANGLADE_COUNTY_WI: 2025-10-01: 1487.06 - AGE_2_THROUGH_3: - 2025-10-01: 1217.48 - AGE_4_THROUGH_5: - 2025-10-01: 1000.07 - AGE_6_AND_OLDER: - 2025-10-01: 956.59 -LINCOLN_COUNTY_WI: - AGE_0_THROUGH_1: + LINCOLN_COUNTY_WI: 2025-10-01: 1157.69 - AGE_2_THROUGH_3: - 2025-10-01: 1021.81 - AGE_4_THROUGH_5: - 2025-10-01: 983.77 - AGE_6_AND_OLDER: - 2025-10-01: 983.77 -MANITOWOC_COUNTY_WI: - AGE_0_THROUGH_1: + MANITOWOC_COUNTY_WI: 2025-10-01: 1157.69 - AGE_2_THROUGH_3: - 2025-10-01: 1021.81 - AGE_4_THROUGH_5: - 2025-10-01: 983.77 - AGE_6_AND_OLDER: - 2025-10-01: 983.77 -MARATHON_COUNTY_WI: - AGE_0_THROUGH_1: + MARATHON_COUNTY_WI: 2025-10-01: 1304.44 - AGE_2_THROUGH_3: - 2025-10-01: 1134.87 - AGE_4_THROUGH_5: - 2025-10-01: 1043.55 - AGE_6_AND_OLDER: - 2025-10-01: 887.02 -MARINETTE_COUNTY_WI: - AGE_0_THROUGH_1: + MARINETTE_COUNTY_WI: 2025-10-01: 1157.69 - AGE_2_THROUGH_3: - 2025-10-01: 1021.81 - AGE_4_THROUGH_5: - 2025-10-01: 983.77 - AGE_6_AND_OLDER: - 2025-10-01: 983.77 -MARQUETTE_COUNTY_WI: - AGE_0_THROUGH_1: + MARQUETTE_COUNTY_WI: 2025-10-01: 1157.69 - AGE_2_THROUGH_3: - 2025-10-01: 1021.81 - AGE_4_THROUGH_5: - 2025-10-01: 983.77 - AGE_6_AND_OLDER: - 2025-10-01: 983.77 -MENOMINEE_COUNTY_WI: - AGE_0_THROUGH_1: + MENOMINEE_COUNTY_WI: 2025-10-01: 1695.77 - AGE_2_THROUGH_3: - 2025-10-01: 1478.37 - AGE_4_THROUGH_5: - 2025-10-01: 1326.18 - AGE_6_AND_OLDER: - 2025-10-01: 1195.74 -MILWAUKEE_COUNTY_WI: - AGE_0_THROUGH_1: + MILWAUKEE_COUNTY_WI: 2025-10-01: 1695.77 - AGE_2_THROUGH_3: - 2025-10-01: 1478.37 - AGE_4_THROUGH_5: - 2025-10-01: 1326.18 - AGE_6_AND_OLDER: - 2025-10-01: 1195.74 -MONROE_COUNTY_WI: - AGE_0_THROUGH_1: + MONROE_COUNTY_WI: 2025-10-01: 1487.06 - AGE_2_THROUGH_3: - 2025-10-01: 1217.48 - AGE_4_THROUGH_5: - 2025-10-01: 1000.07 - AGE_6_AND_OLDER: - 2025-10-01: 956.59 -OCONTO_COUNTY_WI: - AGE_0_THROUGH_1: + OCONTO_COUNTY_WI: 2025-10-01: 1426.19 - AGE_2_THROUGH_3: - 2025-10-01: 1239.22 - AGE_4_THROUGH_5: - 2025-10-01: 1108.78 - AGE_6_AND_OLDER: - 2025-10-01: 1108.78 -ONEIDA_COUNTY_WI: - AGE_0_THROUGH_1: + ONEIDA_COUNTY_WI: 2025-10-01: 1369.66 - AGE_2_THROUGH_3: + OUTAGAMIE_COUNTY_WI: + 2025-10-01: 1347.92 + OZAUKEE_COUNTY_WI: + 2025-10-01: 1695.77 + PEPIN_COUNTY_WI: + 2025-10-01: 1369.66 + PIERCE_COUNTY_WI: + 2025-10-01: 1347.92 + POLK_COUNTY_WI: 2025-10-01: 1304.44 - AGE_4_THROUGH_5: + PORTAGE_COUNTY_WI: + 2025-10-01: 1347.92 + PRICE_COUNTY_WI: + 2025-10-01: 1487.06 + RACINE_COUNTY_WI: + 2025-10-01: 1487.06 + RICHLAND_COUNTY_WI: 2025-10-01: 1_174 - AGE_6_AND_OLDER: + ROCK_COUNTY_WI: + 2025-10-01: 1487.06 + RUSK_COUNTY_WI: + 2025-10-01: 1487.06 + SAUK_COUNTY_WI: + 2025-10-01: 1269.66 + SAWYER_COUNTY_WI: + 2025-10-01: 891.37 + SHAWANO_COUNTY_WI: 2025-10-01: 1_174 -OUTAGAMIE_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 1347.92 - AGE_2_THROUGH_3: + SHEBOYGAN_COUNTY_WI: + 2025-10-01: 2087.1 + ST_CROIX_COUNTY_WI: + 2025-10-01: 1652.29 + TAYLOR_COUNTY_WI: 2025-10-01: 1304.44 - AGE_4_THROUGH_5: - 2025-10-01: 1200.09 - AGE_6_AND_OLDER: + TREMPEALEAU_COUNTY_WI: + 2025-10-01: 1652.29 + VERNON_COUNTY_WI: + 2025-10-01: 1487.06 + VILAS_COUNTY_WI: + 2025-10-01: 1487.06 + WALWORTH_COUNTY_WI: + 2025-10-01: 1360.97 + WASHBURN_COUNTY_WI: + 2025-10-01: 1157.69 + WASHINGTON_COUNTY_WI: + 2025-10-01: 1474.02 + WAUKESHA_COUNTY_WI: + 2025-10-01: 1665.34 + WAUPACA_COUNTY_WI: + 2025-10-01: 1184.87 + WAUSHARA_COUNTY_WI: + 2025-10-01: 1487.06 + WINNEBAGO_COUNTY_WI: + 2025-10-01: 1456.63 + WOOD_COUNTY_WI: 2025-10-01: 1087.04 -OZAUKEE_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 1695.77 - AGE_2_THROUGH_3: - 2025-10-01: 1478.37 - AGE_4_THROUGH_5: - 2025-10-01: 1326.18 - AGE_6_AND_OLDER: - 2025-10-01: 1195.74 -PEPIN_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 1369.66 - AGE_2_THROUGH_3: +AGE_2_THROUGH_3: + ADAMS_COUNTY_WI: + 2025-10-01: 1330.53 + ASHLAND_COUNTY_WI: + 2025-10-01: 1000.07 + BARRON_COUNTY_WI: + 2025-10-01: 1021.81 + BAYFIELD_COUNTY_WI: + 2025-10-01: 1134.87 + BROWN_COUNTY_WI: + 2025-10-01: 1330.53 + BUFFALO_COUNTY_WI: + 2025-10-01: 923.98 + BURNETT_COUNTY_WI: + 2025-10-01: 1217.48 + CALUMET_COUNTY_WI: + 2025-10-01: 1304.44 + CHIPPEWA_COUNTY_WI: + 2025-10-01: 1347.92 + CLARK_COUNTY_WI: + 2025-10-01: 1043.55 + COLUMBIA_COUNTY_WI: + 2025-10-01: 1239.22 + CRAWFORD_COUNTY_WI: + 2025-10-01: 1217.48 + DANE_COUNTY_WI: + 2025-10-01: 1747.95 + DODGE_COUNTY_WI: + 2025-10-01: 1239.22 + DOOR_COUNTY_WI: + 2025-10-01: 1330.53 + DOUGLAS_COUNTY_WI: + 2025-10-01: 1134.87 + DUNN_COUNTY_WI: + 2025-10-01: 1121.82 + EAU_CLAIRE_COUNTY_WI: 2025-10-01: 1282.7 - AGE_4_THROUGH_5: + FLORENCE_COUNTY_WI: + 2025-10-01: 1239.22 + FOND_DU_LAC_COUNTY_WI: + 2025-10-01: 1239.22 + FOREST_COUNTY_WI: + 2025-10-01: 1065.3 + GRANT_COUNTY_WI: + 2025-10-01: 1217.48 + GREEN_COUNTY_WI: 2025-10-01: 1_174 - AGE_6_AND_OLDER: - 2025-10-01: 1043.55 -PIERCE_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 1347.92 - AGE_2_THROUGH_3: + GREEN_LAKE_COUNTY_WI: + 2025-10-01: 1217.48 + IOWA_COUNTY_WI: + 2025-10-01: 1434.89 + IRON_COUNTY_WI: + 2025-10-01: 1021.81 + JACKSON_COUNTY_WI: + 2025-10-01: 1330.53 + JEFFERSON_COUNTY_WI: + 2025-10-01: 1104.43 + JUNEAU_COUNTY_WI: + 2025-10-01: 1065.3 + KENOSHA_COUNTY_WI: + 2025-10-01: 1217.48 + KEWAUNEE_COUNTY_WI: 2025-10-01: 1304.44 - AGE_4_THROUGH_5: - 2025-10-01: 1200.09 - AGE_6_AND_OLDER: - 2025-10-01: 1087.04 -POLK_COUNTY_WI: - AGE_0_THROUGH_1: + LA_CROSSE_COUNTY_WI: + 2025-10-01: 1130.52 + LAFAYETTE_COUNTY_WI: + 2025-10-01: 1217.48 + LANGLADE_COUNTY_WI: + 2025-10-01: 1217.48 + LINCOLN_COUNTY_WI: + 2025-10-01: 1021.81 + MANITOWOC_COUNTY_WI: + 2025-10-01: 1021.81 + MARATHON_COUNTY_WI: + 2025-10-01: 1134.87 + MARINETTE_COUNTY_WI: + 2025-10-01: 1021.81 + MARQUETTE_COUNTY_WI: + 2025-10-01: 1021.81 + MENOMINEE_COUNTY_WI: + 2025-10-01: 1478.37 + MILWAUKEE_COUNTY_WI: + 2025-10-01: 1478.37 + MONROE_COUNTY_WI: + 2025-10-01: 1217.48 + OCONTO_COUNTY_WI: + 2025-10-01: 1239.22 + ONEIDA_COUNTY_WI: 2025-10-01: 1304.44 - AGE_2_THROUGH_3: + OUTAGAMIE_COUNTY_WI: + 2025-10-01: 1304.44 + OZAUKEE_COUNTY_WI: + 2025-10-01: 1478.37 + PEPIN_COUNTY_WI: + 2025-10-01: 1282.7 + PIERCE_COUNTY_WI: + 2025-10-01: 1304.44 + POLK_COUNTY_WI: 2025-10-01: 1134.87 - AGE_4_THROUGH_5: - 2025-10-01: 1043.55 - AGE_6_AND_OLDER: - 2025-10-01: 887.02 -PORTAGE_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 1347.92 - AGE_2_THROUGH_3: + PORTAGE_COUNTY_WI: 2025-10-01: 1304.44 - AGE_4_THROUGH_5: + PRICE_COUNTY_WI: 2025-10-01: 1217.48 - AGE_6_AND_OLDER: - 2025-10-01: 1130.52 -PRICE_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 1487.06 - AGE_2_THROUGH_3: + RACINE_COUNTY_WI: 2025-10-01: 1217.48 - AGE_4_THROUGH_5: - 2025-10-01: 1000.07 - AGE_6_AND_OLDER: - 2025-10-01: 956.59 -RACINE_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 1487.06 - AGE_2_THROUGH_3: + RICHLAND_COUNTY_WI: + 2025-10-01: 1065.3 + ROCK_COUNTY_WI: 2025-10-01: 1217.48 - AGE_4_THROUGH_5: + RUSK_COUNTY_WI: + 2025-10-01: 1217.48 + SAUK_COUNTY_WI: + 2025-10-01: 1104.43 + SAWYER_COUNTY_WI: + 2025-10-01: 804.41 + SHAWANO_COUNTY_WI: + 2025-10-01: 1065.3 + SHEBOYGAN_COUNTY_WI: + 2025-10-01: 1747.95 + ST_CROIX_COUNTY_WI: + 2025-10-01: 1347.92 + TAYLOR_COUNTY_WI: + 2025-10-01: 1134.87 + TREMPEALEAU_COUNTY_WI: + 2025-10-01: 1347.92 + VERNON_COUNTY_WI: + 2025-10-01: 1217.48 + VILAS_COUNTY_WI: + 2025-10-01: 1217.48 + WALWORTH_COUNTY_WI: + 2025-10-01: 1200.09 + WASHBURN_COUNTY_WI: + 2025-10-01: 1021.81 + WASHINGTON_COUNTY_WI: + 2025-10-01: 1334.88 + WAUKESHA_COUNTY_WI: + 2025-10-01: 1434.89 + WAUPACA_COUNTY_WI: + 2025-10-01: 1016.38 + WAUSHARA_COUNTY_WI: + 2025-10-01: 1217.48 + WINNEBAGO_COUNTY_WI: + 2025-10-01: 1304.44 + WOOD_COUNTY_WI: + 2025-10-01: 1087.04 +AGE_4_THROUGH_5: + ADAMS_COUNTY_WI: + 2025-10-01: 1239.22 + ASHLAND_COUNTY_WI: + 2025-10-01: 934.85 + BARRON_COUNTY_WI: + 2025-10-01: 983.77 + BAYFIELD_COUNTY_WI: + 2025-10-01: 1043.55 + BROWN_COUNTY_WI: + 2025-10-01: 1239.22 + BUFFALO_COUNTY_WI: + 2025-10-01: 913.11 + BURNETT_COUNTY_WI: 2025-10-01: 1000.07 - AGE_6_AND_OLDER: + CALUMET_COUNTY_WI: + 2025-10-01: 1_174 + CHIPPEWA_COUNTY_WI: + 2025-10-01: 1213.13 + CLARK_COUNTY_WI: 2025-10-01: 956.59 -RICHLAND_COUNTY_WI: - AGE_0_THROUGH_1: + COLUMBIA_COUNTY_WI: + 2025-10-01: 1108.78 + CRAWFORD_COUNTY_WI: + 2025-10-01: 1000.07 + DANE_COUNTY_WI: + 2025-10-01: 1558.03 + DODGE_COUNTY_WI: + 2025-10-01: 1108.78 + DOOR_COUNTY_WI: + 2025-10-01: 1239.22 + DOUGLAS_COUNTY_WI: + 2025-10-01: 1043.55 + DUNN_COUNTY_WI: + 2025-10-01: 1121.82 + EAU_CLAIRE_COUNTY_WI: 2025-10-01: 1_174 - AGE_2_THROUGH_3: - 2025-10-01: 1065.3 - AGE_4_THROUGH_5: + FLORENCE_COUNTY_WI: + 2025-10-01: 1108.78 + FOND_DU_LAC_COUNTY_WI: + 2025-10-01: 1108.78 + FOREST_COUNTY_WI: 2025-10-01: 1043.55 - AGE_6_AND_OLDER: + GRANT_COUNTY_WI: + 2025-10-01: 1000.07 + GREEN_COUNTY_WI: + 2025-10-01: 1_174 + GREEN_LAKE_COUNTY_WI: + 2025-10-01: 1000.07 + IOWA_COUNTY_WI: + 2025-10-01: 1304.44 + IRON_COUNTY_WI: + 2025-10-01: 983.77 + JACKSON_COUNTY_WI: + 2025-10-01: 1239.22 + JEFFERSON_COUNTY_WI: + 2025-10-01: 1017.47 + JUNEAU_COUNTY_WI: 2025-10-01: 1043.55 -ROCK_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 1487.06 - AGE_2_THROUGH_3: - 2025-10-01: 1217.48 - AGE_4_THROUGH_5: + KENOSHA_COUNTY_WI: 2025-10-01: 1000.07 - AGE_6_AND_OLDER: - 2025-10-01: 956.59 -RUSK_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 1487.06 - AGE_2_THROUGH_3: + KEWAUNEE_COUNTY_WI: + 2025-10-01: 1200.09 + LA_CROSSE_COUNTY_WI: + 2025-10-01: 1087.04 + LAFAYETTE_COUNTY_WI: + 2025-10-01: 1000.07 + LANGLADE_COUNTY_WI: + 2025-10-01: 1000.07 + LINCOLN_COUNTY_WI: + 2025-10-01: 983.77 + MANITOWOC_COUNTY_WI: + 2025-10-01: 983.77 + MARATHON_COUNTY_WI: + 2025-10-01: 1043.55 + MARINETTE_COUNTY_WI: + 2025-10-01: 983.77 + MARQUETTE_COUNTY_WI: + 2025-10-01: 983.77 + MENOMINEE_COUNTY_WI: + 2025-10-01: 1326.18 + MILWAUKEE_COUNTY_WI: + 2025-10-01: 1326.18 + MONROE_COUNTY_WI: + 2025-10-01: 1000.07 + OCONTO_COUNTY_WI: + 2025-10-01: 1108.78 + ONEIDA_COUNTY_WI: + 2025-10-01: 1_174 + OUTAGAMIE_COUNTY_WI: + 2025-10-01: 1200.09 + OZAUKEE_COUNTY_WI: + 2025-10-01: 1326.18 + PEPIN_COUNTY_WI: + 2025-10-01: 1_174 + PIERCE_COUNTY_WI: + 2025-10-01: 1200.09 + POLK_COUNTY_WI: + 2025-10-01: 1043.55 + PORTAGE_COUNTY_WI: 2025-10-01: 1217.48 - AGE_4_THROUGH_5: + PRICE_COUNTY_WI: 2025-10-01: 1000.07 - AGE_6_AND_OLDER: - 2025-10-01: 956.59 -SAUK_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 1269.66 - AGE_2_THROUGH_3: - 2025-10-01: 1104.43 - AGE_4_THROUGH_5: + RACINE_COUNTY_WI: + 2025-10-01: 1000.07 + RICHLAND_COUNTY_WI: + 2025-10-01: 1043.55 + ROCK_COUNTY_WI: + 2025-10-01: 1000.07 + RUSK_COUNTY_WI: + 2025-10-01: 1000.07 + SAUK_COUNTY_WI: 2025-10-01: 1017.47 - AGE_6_AND_OLDER: - 2025-10-01: 847.89 -SAWYER_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 891.37 - AGE_2_THROUGH_3: - 2025-10-01: 804.41 - AGE_4_THROUGH_5: - 2025-10-01: 804.41 - AGE_6_AND_OLDER: + SAWYER_COUNTY_WI: 2025-10-01: 804.41 -SHAWANO_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 1_174 - AGE_2_THROUGH_3: - 2025-10-01: 1065.3 - AGE_4_THROUGH_5: - 2025-10-01: 1043.55 - AGE_6_AND_OLDER: + SHAWANO_COUNTY_WI: 2025-10-01: 1043.55 -SHEBOYGAN_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 2087.1 - AGE_2_THROUGH_3: - 2025-10-01: 1747.95 - AGE_4_THROUGH_5: + SHEBOYGAN_COUNTY_WI: 2025-10-01: 1558.03 - AGE_6_AND_OLDER: - 2025-10-01: 1413.15 -ST_CROIX_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 1652.29 - AGE_2_THROUGH_3: - 2025-10-01: 1347.92 - AGE_4_THROUGH_5: + ST_CROIX_COUNTY_WI: 2025-10-01: 1282.7 - AGE_6_AND_OLDER: - 2025-10-01: 1304.44 -TAYLOR_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 1304.44 - AGE_2_THROUGH_3: - 2025-10-01: 1134.87 - AGE_4_THROUGH_5: + TAYLOR_COUNTY_WI: 2025-10-01: 1043.55 - AGE_6_AND_OLDER: - 2025-10-01: 887.02 -TREMPEALEAU_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 1652.29 - AGE_2_THROUGH_3: - 2025-10-01: 1347.92 - AGE_4_THROUGH_5: + TREMPEALEAU_COUNTY_WI: 2025-10-01: 1282.7 - AGE_6_AND_OLDER: - 2025-10-01: 1304.44 -VERNON_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 1487.06 - AGE_2_THROUGH_3: - 2025-10-01: 1217.48 - AGE_4_THROUGH_5: + VERNON_COUNTY_WI: 2025-10-01: 1000.07 - AGE_6_AND_OLDER: - 2025-10-01: 956.59 -VILAS_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 1487.06 - AGE_2_THROUGH_3: - 2025-10-01: 1217.48 - AGE_4_THROUGH_5: + VILAS_COUNTY_WI: 2025-10-01: 1000.07 - AGE_6_AND_OLDER: - 2025-10-01: 956.59 -WALWORTH_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 1360.97 - AGE_2_THROUGH_3: - 2025-10-01: 1200.09 - AGE_4_THROUGH_5: + WALWORTH_COUNTY_WI: 2025-10-01: 1143.56 - AGE_6_AND_OLDER: - 2025-10-01: 1073.12 -WASHBURN_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 1157.69 - AGE_2_THROUGH_3: - 2025-10-01: 1021.81 - AGE_4_THROUGH_5: - 2025-10-01: 983.77 - AGE_6_AND_OLDER: + WASHBURN_COUNTY_WI: 2025-10-01: 983.77 -WASHINGTON_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 1474.02 - AGE_2_THROUGH_3: - 2025-10-01: 1334.88 - AGE_4_THROUGH_5: + WASHINGTON_COUNTY_WI: 2025-10-01: 1143.56 - AGE_6_AND_OLDER: - 2025-10-01: 1043.55 -WAUKESHA_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 1665.34 - AGE_2_THROUGH_3: - 2025-10-01: 1434.89 - AGE_4_THROUGH_5: + WAUKESHA_COUNTY_WI: 2025-10-01: 1304.44 - AGE_6_AND_OLDER: - 2025-10-01: 1147.91 -WAUPACA_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 1184.87 - AGE_2_THROUGH_3: + WAUPACA_COUNTY_WI: 2025-10-01: 1016.38 - AGE_4_THROUGH_5: - 2025-10-01: 1016.38 - AGE_6_AND_OLDER: - 2025-10-01: 1016.38 -WAUSHARA_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 1487.06 - AGE_2_THROUGH_3: - 2025-10-01: 1217.48 - AGE_4_THROUGH_5: + WAUSHARA_COUNTY_WI: 2025-10-01: 1000.07 - AGE_6_AND_OLDER: - 2025-10-01: 956.59 -WINNEBAGO_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 1456.63 - AGE_2_THROUGH_3: - 2025-10-01: 1304.44 - AGE_4_THROUGH_5: + WINNEBAGO_COUNTY_WI: 2025-10-01: 1152.26 - AGE_6_AND_OLDER: + WOOD_COUNTY_WI: + 2025-10-01: 1043.55 +AGE_6_AND_OLDER: + ADAMS_COUNTY_WI: + 2025-10-01: 1108.78 + ASHLAND_COUNTY_WI: + 2025-10-01: 695.7 + BARRON_COUNTY_WI: + 2025-10-01: 983.77 + BAYFIELD_COUNTY_WI: + 2025-10-01: 887.02 + BROWN_COUNTY_WI: + 2025-10-01: 1108.78 + BUFFALO_COUNTY_WI: + 2025-10-01: 913.11 + BURNETT_COUNTY_WI: + 2025-10-01: 956.59 + CALUMET_COUNTY_WI: + 2025-10-01: 1108.78 + CHIPPEWA_COUNTY_WI: + 2025-10-01: 1195.74 + CLARK_COUNTY_WI: + 2025-10-01: 934.85 + COLUMBIA_COUNTY_WI: + 2025-10-01: 1108.78 + CRAWFORD_COUNTY_WI: + 2025-10-01: 956.59 + DANE_COUNTY_WI: + 2025-10-01: 1413.15 + DODGE_COUNTY_WI: + 2025-10-01: 1108.78 + DOOR_COUNTY_WI: + 2025-10-01: 1108.78 + DOUGLAS_COUNTY_WI: + 2025-10-01: 887.02 + DUNN_COUNTY_WI: + 2025-10-01: 891.37 + EAU_CLAIRE_COUNTY_WI: + 2025-10-01: 1043.55 + FLORENCE_COUNTY_WI: + 2025-10-01: 1108.78 + FOND_DU_LAC_COUNTY_WI: + 2025-10-01: 1108.78 + FOREST_COUNTY_WI: + 2025-10-01: 1043.55 + GRANT_COUNTY_WI: + 2025-10-01: 956.59 + GREEN_COUNTY_WI: + 2025-10-01: 1065.3 + GREEN_LAKE_COUNTY_WI: + 2025-10-01: 956.59 + IOWA_COUNTY_WI: + 2025-10-01: 1147.91 + IRON_COUNTY_WI: + 2025-10-01: 983.77 + JACKSON_COUNTY_WI: + 2025-10-01: 1108.78 + JEFFERSON_COUNTY_WI: + 2025-10-01: 847.89 + JUNEAU_COUNTY_WI: + 2025-10-01: 1043.55 + KENOSHA_COUNTY_WI: + 2025-10-01: 956.59 + KEWAUNEE_COUNTY_WI: 2025-10-01: 1087.04 -WOOD_COUNTY_WI: - AGE_0_THROUGH_1: + LA_CROSSE_COUNTY_WI: + 2025-10-01: 1087.04 + LAFAYETTE_COUNTY_WI: + 2025-10-01: 956.59 + LANGLADE_COUNTY_WI: + 2025-10-01: 956.59 + LINCOLN_COUNTY_WI: + 2025-10-01: 983.77 + MANITOWOC_COUNTY_WI: + 2025-10-01: 983.77 + MARATHON_COUNTY_WI: + 2025-10-01: 887.02 + MARINETTE_COUNTY_WI: + 2025-10-01: 983.77 + MARQUETTE_COUNTY_WI: + 2025-10-01: 983.77 + MENOMINEE_COUNTY_WI: + 2025-10-01: 1195.74 + MILWAUKEE_COUNTY_WI: + 2025-10-01: 1195.74 + MONROE_COUNTY_WI: + 2025-10-01: 956.59 + OCONTO_COUNTY_WI: + 2025-10-01: 1108.78 + ONEIDA_COUNTY_WI: + 2025-10-01: 1_174 + OUTAGAMIE_COUNTY_WI: 2025-10-01: 1087.04 - AGE_2_THROUGH_3: + OZAUKEE_COUNTY_WI: + 2025-10-01: 1195.74 + PEPIN_COUNTY_WI: + 2025-10-01: 1043.55 + PIERCE_COUNTY_WI: 2025-10-01: 1087.04 - AGE_4_THROUGH_5: + POLK_COUNTY_WI: + 2025-10-01: 887.02 + PORTAGE_COUNTY_WI: + 2025-10-01: 1130.52 + PRICE_COUNTY_WI: + 2025-10-01: 956.59 + RACINE_COUNTY_WI: + 2025-10-01: 956.59 + RICHLAND_COUNTY_WI: 2025-10-01: 1043.55 - AGE_6_AND_OLDER: + ROCK_COUNTY_WI: + 2025-10-01: 956.59 + RUSK_COUNTY_WI: + 2025-10-01: 956.59 + SAUK_COUNTY_WI: + 2025-10-01: 847.89 + SAWYER_COUNTY_WI: + 2025-10-01: 804.41 + SHAWANO_COUNTY_WI: + 2025-10-01: 1043.55 + SHEBOYGAN_COUNTY_WI: + 2025-10-01: 1413.15 + ST_CROIX_COUNTY_WI: + 2025-10-01: 1304.44 + TAYLOR_COUNTY_WI: + 2025-10-01: 887.02 + TREMPEALEAU_COUNTY_WI: + 2025-10-01: 1304.44 + VERNON_COUNTY_WI: + 2025-10-01: 956.59 + VILAS_COUNTY_WI: + 2025-10-01: 956.59 + WALWORTH_COUNTY_WI: + 2025-10-01: 1073.12 + WASHBURN_COUNTY_WI: + 2025-10-01: 983.77 + WASHINGTON_COUNTY_WI: + 2025-10-01: 1043.55 + WAUKESHA_COUNTY_WI: + 2025-10-01: 1147.91 + WAUPACA_COUNTY_WI: + 2025-10-01: 1016.38 + WAUSHARA_COUNTY_WI: + 2025-10-01: 956.59 + WINNEBAGO_COUNTY_WI: + 2025-10-01: 1087.04 + WOOD_COUNTY_WI: 2025-10-01: 1043.55 diff --git a/policyengine_us/parameters/gov/states/wi/dcf/shares/rates/licensed_group/hourly.yaml b/policyengine_us/parameters/gov/states/wi/dcf/shares/rates/licensed_group/hourly.yaml index 9dfc94ebb19..d32600d7957 100644 --- a/policyengine_us/parameters/gov/states/wi/dcf/shares/rates/licensed_group/hourly.yaml +++ b/policyengine_us/parameters/gov/states/wi/dcf/shares/rates/licensed_group/hourly.yaml @@ -12,7 +12,6 @@ metadata: period: hour label: Wisconsin Shares licensed group hourly maximum rate breakdown: - - county - wi_shares_age_group reference: - title: 2025 Wisconsin Shares Child Care Subsidy County and Tribal Maximum Rates - Statewide, effective 10/1/2025 @@ -22,651 +21,583 @@ metadata: - title: Wis. Stat. § 49.155(6) href: https://docs.legis.wisconsin.gov/statutes/statutes/49/III/155/6 -ADAMS_COUNTY_WI: - AGE_0_THROUGH_1: +AGE_0_THROUGH_1: + ADAMS_COUNTY_WI: 2025-10-01: 10.15 - AGE_2_THROUGH_3: - 2025-10-01: 8.75 - AGE_4_THROUGH_5: - 2025-10-01: 8.15 - AGE_6_AND_OLDER: - 2025-10-01: 7.29 -ASHLAND_COUNTY_WI: - AGE_0_THROUGH_1: + ASHLAND_COUNTY_WI: 2025-10-01: 7 - AGE_2_THROUGH_3: - 2025-10-01: 6.58 - AGE_4_THROUGH_5: - 2025-10-01: 6.15 - AGE_6_AND_OLDER: - 2025-10-01: 4.58 -BARRON_COUNTY_WI: - AGE_0_THROUGH_1: + BARRON_COUNTY_WI: 2025-10-01: 7.61 - AGE_2_THROUGH_3: - 2025-10-01: 6.72 - AGE_4_THROUGH_5: - 2025-10-01: 6.47 - AGE_6_AND_OLDER: - 2025-10-01: 6.47 -BAYFIELD_COUNTY_WI: - AGE_0_THROUGH_1: + BAYFIELD_COUNTY_WI: 2025-10-01: 8.58 - AGE_2_THROUGH_3: - 2025-10-01: 7.46 - AGE_4_THROUGH_5: - 2025-10-01: 6.86 - AGE_6_AND_OLDER: - 2025-10-01: 5.83 -BROWN_COUNTY_WI: - AGE_0_THROUGH_1: + BROWN_COUNTY_WI: 2025-10-01: 10.15 - AGE_2_THROUGH_3: - 2025-10-01: 8.75 - AGE_4_THROUGH_5: - 2025-10-01: 8.15 - AGE_6_AND_OLDER: - 2025-10-01: 7.29 -BUFFALO_COUNTY_WI: - AGE_0_THROUGH_1: + BUFFALO_COUNTY_WI: 2025-10-01: 6.6 - AGE_2_THROUGH_3: - 2025-10-01: 6.08 - AGE_4_THROUGH_5: - 2025-10-01: 6 - AGE_6_AND_OLDER: - 2025-10-01: 6 -BURNETT_COUNTY_WI: - AGE_0_THROUGH_1: + BURNETT_COUNTY_WI: 2025-10-01: 9.78 - AGE_2_THROUGH_3: - 2025-10-01: 8 - AGE_4_THROUGH_5: - 2025-10-01: 6.58 - AGE_6_AND_OLDER: - 2025-10-01: 6.29 -CALUMET_COUNTY_WI: - AGE_0_THROUGH_1: + CALUMET_COUNTY_WI: 2025-10-01: 8.86 - AGE_2_THROUGH_3: - 2025-10-01: 8.58 - AGE_4_THROUGH_5: - 2025-10-01: 7.72 - AGE_6_AND_OLDER: - 2025-10-01: 7.29 -CHIPPEWA_COUNTY_WI: - AGE_0_THROUGH_1: + CHIPPEWA_COUNTY_WI: 2025-10-01: 9.29 - AGE_2_THROUGH_3: - 2025-10-01: 8.86 - AGE_4_THROUGH_5: - 2025-10-01: 7.98 - AGE_6_AND_OLDER: - 2025-10-01: 7.86 -CLARK_COUNTY_WI: - AGE_0_THROUGH_1: + CLARK_COUNTY_WI: 2025-10-01: 7.58 - AGE_2_THROUGH_3: - 2025-10-01: 6.86 - AGE_4_THROUGH_5: - 2025-10-01: 6.29 - AGE_6_AND_OLDER: - 2025-10-01: 6.15 -COLUMBIA_COUNTY_WI: - AGE_0_THROUGH_1: + COLUMBIA_COUNTY_WI: 2025-10-01: 9.38 - AGE_2_THROUGH_3: - 2025-10-01: 8.15 - AGE_4_THROUGH_5: - 2025-10-01: 7.29 - AGE_6_AND_OLDER: - 2025-10-01: 7.29 -CRAWFORD_COUNTY_WI: - AGE_0_THROUGH_1: + CRAWFORD_COUNTY_WI: 2025-10-01: 9.78 - AGE_2_THROUGH_3: - 2025-10-01: 8 - AGE_4_THROUGH_5: - 2025-10-01: 6.58 - AGE_6_AND_OLDER: - 2025-10-01: 6.29 -DANE_COUNTY_WI: - AGE_0_THROUGH_1: + DANE_COUNTY_WI: 2025-10-01: 13.72 - AGE_2_THROUGH_3: - 2025-10-01: 11.49 - AGE_4_THROUGH_5: - 2025-10-01: 10.24 - AGE_6_AND_OLDER: - 2025-10-01: 9.29 -DODGE_COUNTY_WI: - AGE_0_THROUGH_1: + DODGE_COUNTY_WI: 2025-10-01: 9.38 - AGE_2_THROUGH_3: - 2025-10-01: 8.15 - AGE_4_THROUGH_5: - 2025-10-01: 7.29 - AGE_6_AND_OLDER: - 2025-10-01: 7.29 -DOOR_COUNTY_WI: - AGE_0_THROUGH_1: + DOOR_COUNTY_WI: 2025-10-01: 10.15 - AGE_2_THROUGH_3: - 2025-10-01: 8.75 - AGE_4_THROUGH_5: - 2025-10-01: 8.15 - AGE_6_AND_OLDER: - 2025-10-01: 7.29 -DOUGLAS_COUNTY_WI: - AGE_0_THROUGH_1: + DOUGLAS_COUNTY_WI: 2025-10-01: 8.58 - AGE_2_THROUGH_3: - 2025-10-01: 7.46 - AGE_4_THROUGH_5: - 2025-10-01: 6.86 - AGE_6_AND_OLDER: - 2025-10-01: 5.83 -DUNN_COUNTY_WI: - AGE_0_THROUGH_1: + DUNN_COUNTY_WI: 2025-10-01: 7.86 - AGE_2_THROUGH_3: - 2025-10-01: 7.38 - AGE_4_THROUGH_5: - 2025-10-01: 7.38 - AGE_6_AND_OLDER: - 2025-10-01: 5.86 -EAU_CLAIRE_COUNTY_WI: - AGE_0_THROUGH_1: + EAU_CLAIRE_COUNTY_WI: 2025-10-01: 9 - AGE_2_THROUGH_3: - 2025-10-01: 8.43 - AGE_4_THROUGH_5: - 2025-10-01: 7.72 - AGE_6_AND_OLDER: - 2025-10-01: 6.86 -FLORENCE_COUNTY_WI: - AGE_0_THROUGH_1: + FLORENCE_COUNTY_WI: 2025-10-01: 9.38 - AGE_2_THROUGH_3: - 2025-10-01: 8.15 - AGE_4_THROUGH_5: - 2025-10-01: 7.29 - AGE_6_AND_OLDER: - 2025-10-01: 7.29 -FOND_DU_LAC_COUNTY_WI: - AGE_0_THROUGH_1: + FOND_DU_LAC_COUNTY_WI: 2025-10-01: 9.38 - AGE_2_THROUGH_3: - 2025-10-01: 8.15 - AGE_4_THROUGH_5: - 2025-10-01: 7.29 - AGE_6_AND_OLDER: - 2025-10-01: 7.29 -FOREST_COUNTY_WI: - AGE_0_THROUGH_1: + FOREST_COUNTY_WI: 2025-10-01: 7.72 - AGE_2_THROUGH_3: - 2025-10-01: 7 - AGE_4_THROUGH_5: - 2025-10-01: 6.86 - AGE_6_AND_OLDER: - 2025-10-01: 6.86 -GRANT_COUNTY_WI: - AGE_0_THROUGH_1: + GRANT_COUNTY_WI: 2025-10-01: 9.78 - AGE_2_THROUGH_3: - 2025-10-01: 8 - AGE_4_THROUGH_5: - 2025-10-01: 6.58 - AGE_6_AND_OLDER: - 2025-10-01: 6.29 -GREEN_COUNTY_WI: - AGE_0_THROUGH_1: + GREEN_COUNTY_WI: 2025-10-01: 8.58 - AGE_2_THROUGH_3: - 2025-10-01: 7.72 - AGE_4_THROUGH_5: - 2025-10-01: 7.72 - AGE_6_AND_OLDER: - 2025-10-01: 7 -GREEN_LAKE_COUNTY_WI: - AGE_0_THROUGH_1: + GREEN_LAKE_COUNTY_WI: 2025-10-01: 9.78 - AGE_2_THROUGH_3: - 2025-10-01: 8 - AGE_4_THROUGH_5: - 2025-10-01: 6.58 - AGE_6_AND_OLDER: - 2025-10-01: 6.29 -IOWA_COUNTY_WI: - AGE_0_THROUGH_1: + IOWA_COUNTY_WI: 2025-10-01: 10.95 - AGE_2_THROUGH_3: - 2025-10-01: 9.43 - AGE_4_THROUGH_5: - 2025-10-01: 8.58 - AGE_6_AND_OLDER: - 2025-10-01: 7.55 -IRON_COUNTY_WI: - AGE_0_THROUGH_1: + IRON_COUNTY_WI: 2025-10-01: 7.61 - AGE_2_THROUGH_3: - 2025-10-01: 6.72 - AGE_4_THROUGH_5: - 2025-10-01: 6.47 - AGE_6_AND_OLDER: - 2025-10-01: 6.47 -JACKSON_COUNTY_WI: - AGE_0_THROUGH_1: + JACKSON_COUNTY_WI: 2025-10-01: 10.15 - AGE_2_THROUGH_3: - 2025-10-01: 8.75 - AGE_4_THROUGH_5: - 2025-10-01: 8.15 - AGE_6_AND_OLDER: - 2025-10-01: 7.29 -JEFFERSON_COUNTY_WI: - AGE_0_THROUGH_1: + JEFFERSON_COUNTY_WI: 2025-10-01: 8.35 - AGE_2_THROUGH_3: - 2025-10-01: 7.26 - AGE_4_THROUGH_5: - 2025-10-01: 6.69 - AGE_6_AND_OLDER: - 2025-10-01: 5.58 -JUNEAU_COUNTY_WI: - AGE_0_THROUGH_1: + JUNEAU_COUNTY_WI: 2025-10-01: 7.72 - AGE_2_THROUGH_3: - 2025-10-01: 7 - AGE_4_THROUGH_5: - 2025-10-01: 6.86 - AGE_6_AND_OLDER: - 2025-10-01: 6.86 -KENOSHA_COUNTY_WI: - AGE_0_THROUGH_1: + KENOSHA_COUNTY_WI: 2025-10-01: 9.78 - AGE_2_THROUGH_3: - 2025-10-01: 8 - AGE_4_THROUGH_5: - 2025-10-01: 6.58 - AGE_6_AND_OLDER: - 2025-10-01: 6.29 -KEWAUNEE_COUNTY_WI: - AGE_0_THROUGH_1: + KEWAUNEE_COUNTY_WI: 2025-10-01: 8.86 - AGE_2_THROUGH_3: - 2025-10-01: 8.58 - AGE_4_THROUGH_5: - 2025-10-01: 7.89 - AGE_6_AND_OLDER: - 2025-10-01: 7.15 -LA_CROSSE_COUNTY_WI: - AGE_0_THROUGH_1: + LA_CROSSE_COUNTY_WI: 2025-10-01: 8.26 - AGE_2_THROUGH_3: - 2025-10-01: 7.43 - AGE_4_THROUGH_5: - 2025-10-01: 7.15 - AGE_6_AND_OLDER: - 2025-10-01: 7.15 -LAFAYETTE_COUNTY_WI: - AGE_0_THROUGH_1: + LAFAYETTE_COUNTY_WI: 2025-10-01: 9.78 - AGE_2_THROUGH_3: - 2025-10-01: 8 - AGE_4_THROUGH_5: - 2025-10-01: 6.58 - AGE_6_AND_OLDER: - 2025-10-01: 6.29 -LANGLADE_COUNTY_WI: - AGE_0_THROUGH_1: + LANGLADE_COUNTY_WI: 2025-10-01: 9.78 - AGE_2_THROUGH_3: - 2025-10-01: 8 - AGE_4_THROUGH_5: - 2025-10-01: 6.58 - AGE_6_AND_OLDER: - 2025-10-01: 6.29 -LINCOLN_COUNTY_WI: - AGE_0_THROUGH_1: + LINCOLN_COUNTY_WI: 2025-10-01: 7.61 - AGE_2_THROUGH_3: - 2025-10-01: 6.72 - AGE_4_THROUGH_5: - 2025-10-01: 6.47 - AGE_6_AND_OLDER: - 2025-10-01: 6.47 -MANITOWOC_COUNTY_WI: - AGE_0_THROUGH_1: + MANITOWOC_COUNTY_WI: 2025-10-01: 7.61 - AGE_2_THROUGH_3: - 2025-10-01: 6.72 - AGE_4_THROUGH_5: - 2025-10-01: 6.47 - AGE_6_AND_OLDER: - 2025-10-01: 6.47 -MARATHON_COUNTY_WI: - AGE_0_THROUGH_1: + MARATHON_COUNTY_WI: 2025-10-01: 8.58 - AGE_2_THROUGH_3: - 2025-10-01: 7.46 - AGE_4_THROUGH_5: - 2025-10-01: 6.86 - AGE_6_AND_OLDER: - 2025-10-01: 5.83 -MARINETTE_COUNTY_WI: - AGE_0_THROUGH_1: + MARINETTE_COUNTY_WI: 2025-10-01: 7.61 - AGE_2_THROUGH_3: - 2025-10-01: 6.72 - AGE_4_THROUGH_5: - 2025-10-01: 6.47 - AGE_6_AND_OLDER: - 2025-10-01: 6.47 -MARQUETTE_COUNTY_WI: - AGE_0_THROUGH_1: + MARQUETTE_COUNTY_WI: 2025-10-01: 7.61 - AGE_2_THROUGH_3: - 2025-10-01: 6.72 - AGE_4_THROUGH_5: - 2025-10-01: 6.47 - AGE_6_AND_OLDER: - 2025-10-01: 6.47 -MENOMINEE_COUNTY_WI: - AGE_0_THROUGH_1: + MENOMINEE_COUNTY_WI: 2025-10-01: 11.15 - AGE_2_THROUGH_3: - 2025-10-01: 9.72 - AGE_4_THROUGH_5: - 2025-10-01: 8.72 - AGE_6_AND_OLDER: - 2025-10-01: 7.86 -MILWAUKEE_COUNTY_WI: - AGE_0_THROUGH_1: + MILWAUKEE_COUNTY_WI: 2025-10-01: 11.15 - AGE_2_THROUGH_3: - 2025-10-01: 9.72 - AGE_4_THROUGH_5: - 2025-10-01: 8.72 - AGE_6_AND_OLDER: - 2025-10-01: 7.86 -MONROE_COUNTY_WI: - AGE_0_THROUGH_1: + MONROE_COUNTY_WI: 2025-10-01: 9.78 - AGE_2_THROUGH_3: - 2025-10-01: 8 - AGE_4_THROUGH_5: - 2025-10-01: 6.58 - AGE_6_AND_OLDER: - 2025-10-01: 6.29 -OCONTO_COUNTY_WI: - AGE_0_THROUGH_1: + OCONTO_COUNTY_WI: 2025-10-01: 9.38 - AGE_2_THROUGH_3: - 2025-10-01: 8.15 - AGE_4_THROUGH_5: - 2025-10-01: 7.29 - AGE_6_AND_OLDER: - 2025-10-01: 7.29 -ONEIDA_COUNTY_WI: - AGE_0_THROUGH_1: + ONEIDA_COUNTY_WI: 2025-10-01: 9 - AGE_2_THROUGH_3: + OUTAGAMIE_COUNTY_WI: + 2025-10-01: 8.86 + OZAUKEE_COUNTY_WI: + 2025-10-01: 11.15 + PEPIN_COUNTY_WI: + 2025-10-01: 9 + PIERCE_COUNTY_WI: + 2025-10-01: 8.86 + POLK_COUNTY_WI: 2025-10-01: 8.58 - AGE_4_THROUGH_5: + PORTAGE_COUNTY_WI: + 2025-10-01: 8.86 + PRICE_COUNTY_WI: + 2025-10-01: 9.78 + RACINE_COUNTY_WI: + 2025-10-01: 9.78 + RICHLAND_COUNTY_WI: 2025-10-01: 7.72 - AGE_6_AND_OLDER: + ROCK_COUNTY_WI: + 2025-10-01: 9.78 + RUSK_COUNTY_WI: + 2025-10-01: 9.78 + SAUK_COUNTY_WI: + 2025-10-01: 8.35 + SAWYER_COUNTY_WI: + 2025-10-01: 5.86 + SHAWANO_COUNTY_WI: 2025-10-01: 7.72 -OUTAGAMIE_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 8.86 - AGE_2_THROUGH_3: + SHEBOYGAN_COUNTY_WI: + 2025-10-01: 13.72 + ST_CROIX_COUNTY_WI: + 2025-10-01: 10.86 + TAYLOR_COUNTY_WI: 2025-10-01: 8.58 - AGE_4_THROUGH_5: - 2025-10-01: 7.89 - AGE_6_AND_OLDER: + TREMPEALEAU_COUNTY_WI: + 2025-10-01: 10.86 + VERNON_COUNTY_WI: + 2025-10-01: 9.78 + VILAS_COUNTY_WI: + 2025-10-01: 9.78 + WALWORTH_COUNTY_WI: + 2025-10-01: 8.95 + WASHBURN_COUNTY_WI: + 2025-10-01: 7.61 + WASHINGTON_COUNTY_WI: + 2025-10-01: 9.69 + WAUKESHA_COUNTY_WI: + 2025-10-01: 10.95 + WAUPACA_COUNTY_WI: + 2025-10-01: 7.79 + WAUSHARA_COUNTY_WI: + 2025-10-01: 9.78 + WINNEBAGO_COUNTY_WI: + 2025-10-01: 9.58 + WOOD_COUNTY_WI: 2025-10-01: 7.15 -OZAUKEE_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 11.15 - AGE_2_THROUGH_3: - 2025-10-01: 9.72 - AGE_4_THROUGH_5: - 2025-10-01: 8.72 - AGE_6_AND_OLDER: - 2025-10-01: 7.86 -PEPIN_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 9 - AGE_2_THROUGH_3: +AGE_2_THROUGH_3: + ADAMS_COUNTY_WI: + 2025-10-01: 8.75 + ASHLAND_COUNTY_WI: + 2025-10-01: 6.58 + BARRON_COUNTY_WI: + 2025-10-01: 6.72 + BAYFIELD_COUNTY_WI: + 2025-10-01: 7.46 + BROWN_COUNTY_WI: + 2025-10-01: 8.75 + BUFFALO_COUNTY_WI: + 2025-10-01: 6.08 + BURNETT_COUNTY_WI: + 2025-10-01: 8 + CALUMET_COUNTY_WI: + 2025-10-01: 8.58 + CHIPPEWA_COUNTY_WI: + 2025-10-01: 8.86 + CLARK_COUNTY_WI: + 2025-10-01: 6.86 + COLUMBIA_COUNTY_WI: + 2025-10-01: 8.15 + CRAWFORD_COUNTY_WI: + 2025-10-01: 8 + DANE_COUNTY_WI: + 2025-10-01: 11.49 + DODGE_COUNTY_WI: + 2025-10-01: 8.15 + DOOR_COUNTY_WI: + 2025-10-01: 8.75 + DOUGLAS_COUNTY_WI: + 2025-10-01: 7.46 + DUNN_COUNTY_WI: + 2025-10-01: 7.38 + EAU_CLAIRE_COUNTY_WI: 2025-10-01: 8.43 - AGE_4_THROUGH_5: + FLORENCE_COUNTY_WI: + 2025-10-01: 8.15 + FOND_DU_LAC_COUNTY_WI: + 2025-10-01: 8.15 + FOREST_COUNTY_WI: + 2025-10-01: 7 + GRANT_COUNTY_WI: + 2025-10-01: 8 + GREEN_COUNTY_WI: 2025-10-01: 7.72 - AGE_6_AND_OLDER: - 2025-10-01: 6.86 -PIERCE_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 8.86 - AGE_2_THROUGH_3: + GREEN_LAKE_COUNTY_WI: + 2025-10-01: 8 + IOWA_COUNTY_WI: + 2025-10-01: 9.43 + IRON_COUNTY_WI: + 2025-10-01: 6.72 + JACKSON_COUNTY_WI: + 2025-10-01: 8.75 + JEFFERSON_COUNTY_WI: + 2025-10-01: 7.26 + JUNEAU_COUNTY_WI: + 2025-10-01: 7 + KENOSHA_COUNTY_WI: + 2025-10-01: 8 + KEWAUNEE_COUNTY_WI: 2025-10-01: 8.58 - AGE_4_THROUGH_5: - 2025-10-01: 7.89 - AGE_6_AND_OLDER: - 2025-10-01: 7.15 -POLK_COUNTY_WI: - AGE_0_THROUGH_1: + LA_CROSSE_COUNTY_WI: + 2025-10-01: 7.43 + LAFAYETTE_COUNTY_WI: + 2025-10-01: 8 + LANGLADE_COUNTY_WI: + 2025-10-01: 8 + LINCOLN_COUNTY_WI: + 2025-10-01: 6.72 + MANITOWOC_COUNTY_WI: + 2025-10-01: 6.72 + MARATHON_COUNTY_WI: + 2025-10-01: 7.46 + MARINETTE_COUNTY_WI: + 2025-10-01: 6.72 + MARQUETTE_COUNTY_WI: + 2025-10-01: 6.72 + MENOMINEE_COUNTY_WI: + 2025-10-01: 9.72 + MILWAUKEE_COUNTY_WI: + 2025-10-01: 9.72 + MONROE_COUNTY_WI: + 2025-10-01: 8 + OCONTO_COUNTY_WI: + 2025-10-01: 8.15 + ONEIDA_COUNTY_WI: 2025-10-01: 8.58 - AGE_2_THROUGH_3: + OUTAGAMIE_COUNTY_WI: + 2025-10-01: 8.58 + OZAUKEE_COUNTY_WI: + 2025-10-01: 9.72 + PEPIN_COUNTY_WI: + 2025-10-01: 8.43 + PIERCE_COUNTY_WI: + 2025-10-01: 8.58 + POLK_COUNTY_WI: 2025-10-01: 7.46 - AGE_4_THROUGH_5: - 2025-10-01: 6.86 - AGE_6_AND_OLDER: - 2025-10-01: 5.83 -PORTAGE_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 8.86 - AGE_2_THROUGH_3: + PORTAGE_COUNTY_WI: 2025-10-01: 8.58 - AGE_4_THROUGH_5: + PRICE_COUNTY_WI: 2025-10-01: 8 - AGE_6_AND_OLDER: - 2025-10-01: 7.43 -PRICE_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 9.78 - AGE_2_THROUGH_3: + RACINE_COUNTY_WI: 2025-10-01: 8 - AGE_4_THROUGH_5: - 2025-10-01: 6.58 - AGE_6_AND_OLDER: - 2025-10-01: 6.29 -RACINE_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 9.78 - AGE_2_THROUGH_3: + RICHLAND_COUNTY_WI: + 2025-10-01: 7 + ROCK_COUNTY_WI: 2025-10-01: 8 - AGE_4_THROUGH_5: + RUSK_COUNTY_WI: + 2025-10-01: 8 + SAUK_COUNTY_WI: + 2025-10-01: 7.26 + SAWYER_COUNTY_WI: + 2025-10-01: 5.29 + SHAWANO_COUNTY_WI: + 2025-10-01: 7 + SHEBOYGAN_COUNTY_WI: + 2025-10-01: 11.49 + ST_CROIX_COUNTY_WI: + 2025-10-01: 8.86 + TAYLOR_COUNTY_WI: + 2025-10-01: 7.46 + TREMPEALEAU_COUNTY_WI: + 2025-10-01: 8.86 + VERNON_COUNTY_WI: + 2025-10-01: 8 + VILAS_COUNTY_WI: + 2025-10-01: 8 + WALWORTH_COUNTY_WI: + 2025-10-01: 7.89 + WASHBURN_COUNTY_WI: + 2025-10-01: 6.72 + WASHINGTON_COUNTY_WI: + 2025-10-01: 8.78 + WAUKESHA_COUNTY_WI: + 2025-10-01: 9.43 + WAUPACA_COUNTY_WI: + 2025-10-01: 6.68 + WAUSHARA_COUNTY_WI: + 2025-10-01: 8 + WINNEBAGO_COUNTY_WI: + 2025-10-01: 8.58 + WOOD_COUNTY_WI: + 2025-10-01: 7.15 +AGE_4_THROUGH_5: + ADAMS_COUNTY_WI: + 2025-10-01: 8.15 + ASHLAND_COUNTY_WI: + 2025-10-01: 6.15 + BARRON_COUNTY_WI: + 2025-10-01: 6.47 + BAYFIELD_COUNTY_WI: + 2025-10-01: 6.86 + BROWN_COUNTY_WI: + 2025-10-01: 8.15 + BUFFALO_COUNTY_WI: + 2025-10-01: 6 + BURNETT_COUNTY_WI: 2025-10-01: 6.58 - AGE_6_AND_OLDER: + CALUMET_COUNTY_WI: + 2025-10-01: 7.72 + CHIPPEWA_COUNTY_WI: + 2025-10-01: 7.98 + CLARK_COUNTY_WI: 2025-10-01: 6.29 -RICHLAND_COUNTY_WI: - AGE_0_THROUGH_1: + COLUMBIA_COUNTY_WI: + 2025-10-01: 7.29 + CRAWFORD_COUNTY_WI: + 2025-10-01: 6.58 + DANE_COUNTY_WI: + 2025-10-01: 10.24 + DODGE_COUNTY_WI: + 2025-10-01: 7.29 + DOOR_COUNTY_WI: + 2025-10-01: 8.15 + DOUGLAS_COUNTY_WI: + 2025-10-01: 6.86 + DUNN_COUNTY_WI: + 2025-10-01: 7.38 + EAU_CLAIRE_COUNTY_WI: 2025-10-01: 7.72 - AGE_2_THROUGH_3: - 2025-10-01: 7 - AGE_4_THROUGH_5: + FLORENCE_COUNTY_WI: + 2025-10-01: 7.29 + FOND_DU_LAC_COUNTY_WI: + 2025-10-01: 7.29 + FOREST_COUNTY_WI: 2025-10-01: 6.86 - AGE_6_AND_OLDER: + GRANT_COUNTY_WI: + 2025-10-01: 6.58 + GREEN_COUNTY_WI: + 2025-10-01: 7.72 + GREEN_LAKE_COUNTY_WI: + 2025-10-01: 6.58 + IOWA_COUNTY_WI: + 2025-10-01: 8.58 + IRON_COUNTY_WI: + 2025-10-01: 6.47 + JACKSON_COUNTY_WI: + 2025-10-01: 8.15 + JEFFERSON_COUNTY_WI: + 2025-10-01: 6.69 + JUNEAU_COUNTY_WI: 2025-10-01: 6.86 -ROCK_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 9.78 - AGE_2_THROUGH_3: - 2025-10-01: 8 - AGE_4_THROUGH_5: + KENOSHA_COUNTY_WI: 2025-10-01: 6.58 - AGE_6_AND_OLDER: - 2025-10-01: 6.29 -RUSK_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 9.78 - AGE_2_THROUGH_3: + KEWAUNEE_COUNTY_WI: + 2025-10-01: 7.89 + LA_CROSSE_COUNTY_WI: + 2025-10-01: 7.15 + LAFAYETTE_COUNTY_WI: + 2025-10-01: 6.58 + LANGLADE_COUNTY_WI: + 2025-10-01: 6.58 + LINCOLN_COUNTY_WI: + 2025-10-01: 6.47 + MANITOWOC_COUNTY_WI: + 2025-10-01: 6.47 + MARATHON_COUNTY_WI: + 2025-10-01: 6.86 + MARINETTE_COUNTY_WI: + 2025-10-01: 6.47 + MARQUETTE_COUNTY_WI: + 2025-10-01: 6.47 + MENOMINEE_COUNTY_WI: + 2025-10-01: 8.72 + MILWAUKEE_COUNTY_WI: + 2025-10-01: 8.72 + MONROE_COUNTY_WI: + 2025-10-01: 6.58 + OCONTO_COUNTY_WI: + 2025-10-01: 7.29 + ONEIDA_COUNTY_WI: + 2025-10-01: 7.72 + OUTAGAMIE_COUNTY_WI: + 2025-10-01: 7.89 + OZAUKEE_COUNTY_WI: + 2025-10-01: 8.72 + PEPIN_COUNTY_WI: + 2025-10-01: 7.72 + PIERCE_COUNTY_WI: + 2025-10-01: 7.89 + POLK_COUNTY_WI: + 2025-10-01: 6.86 + PORTAGE_COUNTY_WI: 2025-10-01: 8 - AGE_4_THROUGH_5: + PRICE_COUNTY_WI: 2025-10-01: 6.58 - AGE_6_AND_OLDER: - 2025-10-01: 6.29 -SAUK_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 8.35 - AGE_2_THROUGH_3: - 2025-10-01: 7.26 - AGE_4_THROUGH_5: + RACINE_COUNTY_WI: + 2025-10-01: 6.58 + RICHLAND_COUNTY_WI: + 2025-10-01: 6.86 + ROCK_COUNTY_WI: + 2025-10-01: 6.58 + RUSK_COUNTY_WI: + 2025-10-01: 6.58 + SAUK_COUNTY_WI: 2025-10-01: 6.69 - AGE_6_AND_OLDER: - 2025-10-01: 5.58 -SAWYER_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 5.86 - AGE_2_THROUGH_3: - 2025-10-01: 5.29 - AGE_4_THROUGH_5: - 2025-10-01: 5.29 - AGE_6_AND_OLDER: + SAWYER_COUNTY_WI: 2025-10-01: 5.29 -SHAWANO_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 7.72 - AGE_2_THROUGH_3: - 2025-10-01: 7 - AGE_4_THROUGH_5: - 2025-10-01: 6.86 - AGE_6_AND_OLDER: + SHAWANO_COUNTY_WI: 2025-10-01: 6.86 -SHEBOYGAN_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 13.72 - AGE_2_THROUGH_3: - 2025-10-01: 11.49 - AGE_4_THROUGH_5: + SHEBOYGAN_COUNTY_WI: 2025-10-01: 10.24 - AGE_6_AND_OLDER: - 2025-10-01: 9.29 -ST_CROIX_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 10.86 - AGE_2_THROUGH_3: - 2025-10-01: 8.86 - AGE_4_THROUGH_5: + ST_CROIX_COUNTY_WI: 2025-10-01: 8.43 - AGE_6_AND_OLDER: - 2025-10-01: 8.58 -TAYLOR_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 8.58 - AGE_2_THROUGH_3: - 2025-10-01: 7.46 - AGE_4_THROUGH_5: + TAYLOR_COUNTY_WI: 2025-10-01: 6.86 - AGE_6_AND_OLDER: - 2025-10-01: 5.83 -TREMPEALEAU_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 10.86 - AGE_2_THROUGH_3: - 2025-10-01: 8.86 - AGE_4_THROUGH_5: + TREMPEALEAU_COUNTY_WI: 2025-10-01: 8.43 - AGE_6_AND_OLDER: - 2025-10-01: 8.58 -VERNON_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 9.78 - AGE_2_THROUGH_3: - 2025-10-01: 8 - AGE_4_THROUGH_5: + VERNON_COUNTY_WI: 2025-10-01: 6.58 - AGE_6_AND_OLDER: - 2025-10-01: 6.29 -VILAS_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 9.78 - AGE_2_THROUGH_3: - 2025-10-01: 8 - AGE_4_THROUGH_5: + VILAS_COUNTY_WI: 2025-10-01: 6.58 - AGE_6_AND_OLDER: - 2025-10-01: 6.29 -WALWORTH_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 8.95 - AGE_2_THROUGH_3: - 2025-10-01: 7.89 - AGE_4_THROUGH_5: + WALWORTH_COUNTY_WI: 2025-10-01: 7.52 - AGE_6_AND_OLDER: - 2025-10-01: 7.06 -WASHBURN_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 7.61 - AGE_2_THROUGH_3: - 2025-10-01: 6.72 - AGE_4_THROUGH_5: - 2025-10-01: 6.47 - AGE_6_AND_OLDER: + WASHBURN_COUNTY_WI: 2025-10-01: 6.47 -WASHINGTON_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 9.69 - AGE_2_THROUGH_3: - 2025-10-01: 8.78 - AGE_4_THROUGH_5: + WASHINGTON_COUNTY_WI: 2025-10-01: 7.52 - AGE_6_AND_OLDER: - 2025-10-01: 6.86 -WAUKESHA_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 10.95 - AGE_2_THROUGH_3: - 2025-10-01: 9.43 - AGE_4_THROUGH_5: + WAUKESHA_COUNTY_WI: 2025-10-01: 8.58 - AGE_6_AND_OLDER: - 2025-10-01: 7.55 -WAUPACA_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 7.79 - AGE_2_THROUGH_3: + WAUPACA_COUNTY_WI: 2025-10-01: 6.68 - AGE_4_THROUGH_5: - 2025-10-01: 6.68 - AGE_6_AND_OLDER: - 2025-10-01: 6.68 -WAUSHARA_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 9.78 - AGE_2_THROUGH_3: - 2025-10-01: 8 - AGE_4_THROUGH_5: + WAUSHARA_COUNTY_WI: 2025-10-01: 6.58 - AGE_6_AND_OLDER: - 2025-10-01: 6.29 -WINNEBAGO_COUNTY_WI: - AGE_0_THROUGH_1: - 2025-10-01: 9.58 - AGE_2_THROUGH_3: - 2025-10-01: 8.58 - AGE_4_THROUGH_5: + WINNEBAGO_COUNTY_WI: 2025-10-01: 7.58 - AGE_6_AND_OLDER: + WOOD_COUNTY_WI: + 2025-10-01: 6.86 +AGE_6_AND_OLDER: + ADAMS_COUNTY_WI: + 2025-10-01: 7.29 + ASHLAND_COUNTY_WI: + 2025-10-01: 4.58 + BARRON_COUNTY_WI: + 2025-10-01: 6.47 + BAYFIELD_COUNTY_WI: + 2025-10-01: 5.83 + BROWN_COUNTY_WI: + 2025-10-01: 7.29 + BUFFALO_COUNTY_WI: + 2025-10-01: 6 + BURNETT_COUNTY_WI: + 2025-10-01: 6.29 + CALUMET_COUNTY_WI: + 2025-10-01: 7.29 + CHIPPEWA_COUNTY_WI: + 2025-10-01: 7.86 + CLARK_COUNTY_WI: + 2025-10-01: 6.15 + COLUMBIA_COUNTY_WI: + 2025-10-01: 7.29 + CRAWFORD_COUNTY_WI: + 2025-10-01: 6.29 + DANE_COUNTY_WI: + 2025-10-01: 9.29 + DODGE_COUNTY_WI: + 2025-10-01: 7.29 + DOOR_COUNTY_WI: + 2025-10-01: 7.29 + DOUGLAS_COUNTY_WI: + 2025-10-01: 5.83 + DUNN_COUNTY_WI: + 2025-10-01: 5.86 + EAU_CLAIRE_COUNTY_WI: + 2025-10-01: 6.86 + FLORENCE_COUNTY_WI: + 2025-10-01: 7.29 + FOND_DU_LAC_COUNTY_WI: + 2025-10-01: 7.29 + FOREST_COUNTY_WI: + 2025-10-01: 6.86 + GRANT_COUNTY_WI: + 2025-10-01: 6.29 + GREEN_COUNTY_WI: + 2025-10-01: 7 + GREEN_LAKE_COUNTY_WI: + 2025-10-01: 6.29 + IOWA_COUNTY_WI: + 2025-10-01: 7.55 + IRON_COUNTY_WI: + 2025-10-01: 6.47 + JACKSON_COUNTY_WI: + 2025-10-01: 7.29 + JEFFERSON_COUNTY_WI: + 2025-10-01: 5.58 + JUNEAU_COUNTY_WI: + 2025-10-01: 6.86 + KENOSHA_COUNTY_WI: + 2025-10-01: 6.29 + KEWAUNEE_COUNTY_WI: 2025-10-01: 7.15 -WOOD_COUNTY_WI: - AGE_0_THROUGH_1: + LA_CROSSE_COUNTY_WI: + 2025-10-01: 7.15 + LAFAYETTE_COUNTY_WI: + 2025-10-01: 6.29 + LANGLADE_COUNTY_WI: + 2025-10-01: 6.29 + LINCOLN_COUNTY_WI: + 2025-10-01: 6.47 + MANITOWOC_COUNTY_WI: + 2025-10-01: 6.47 + MARATHON_COUNTY_WI: + 2025-10-01: 5.83 + MARINETTE_COUNTY_WI: + 2025-10-01: 6.47 + MARQUETTE_COUNTY_WI: + 2025-10-01: 6.47 + MENOMINEE_COUNTY_WI: + 2025-10-01: 7.86 + MILWAUKEE_COUNTY_WI: + 2025-10-01: 7.86 + MONROE_COUNTY_WI: + 2025-10-01: 6.29 + OCONTO_COUNTY_WI: + 2025-10-01: 7.29 + ONEIDA_COUNTY_WI: + 2025-10-01: 7.72 + OUTAGAMIE_COUNTY_WI: 2025-10-01: 7.15 - AGE_2_THROUGH_3: + OZAUKEE_COUNTY_WI: + 2025-10-01: 7.86 + PEPIN_COUNTY_WI: + 2025-10-01: 6.86 + PIERCE_COUNTY_WI: 2025-10-01: 7.15 - AGE_4_THROUGH_5: + POLK_COUNTY_WI: + 2025-10-01: 5.83 + PORTAGE_COUNTY_WI: + 2025-10-01: 7.43 + PRICE_COUNTY_WI: + 2025-10-01: 6.29 + RACINE_COUNTY_WI: + 2025-10-01: 6.29 + RICHLAND_COUNTY_WI: 2025-10-01: 6.86 - AGE_6_AND_OLDER: + ROCK_COUNTY_WI: + 2025-10-01: 6.29 + RUSK_COUNTY_WI: + 2025-10-01: 6.29 + SAUK_COUNTY_WI: + 2025-10-01: 5.58 + SAWYER_COUNTY_WI: + 2025-10-01: 5.29 + SHAWANO_COUNTY_WI: + 2025-10-01: 6.86 + SHEBOYGAN_COUNTY_WI: + 2025-10-01: 9.29 + ST_CROIX_COUNTY_WI: + 2025-10-01: 8.58 + TAYLOR_COUNTY_WI: + 2025-10-01: 5.83 + TREMPEALEAU_COUNTY_WI: + 2025-10-01: 8.58 + VERNON_COUNTY_WI: + 2025-10-01: 6.29 + VILAS_COUNTY_WI: + 2025-10-01: 6.29 + WALWORTH_COUNTY_WI: + 2025-10-01: 7.06 + WASHBURN_COUNTY_WI: + 2025-10-01: 6.47 + WASHINGTON_COUNTY_WI: + 2025-10-01: 6.86 + WAUKESHA_COUNTY_WI: + 2025-10-01: 7.55 + WAUPACA_COUNTY_WI: + 2025-10-01: 6.68 + WAUSHARA_COUNTY_WI: + 2025-10-01: 6.29 + WINNEBAGO_COUNTY_WI: + 2025-10-01: 7.15 + WOOD_COUNTY_WI: 2025-10-01: 6.86 diff --git a/policyengine_us/variables/gov/states/wi/dcf/shares/rates/wi_shares_hourly_max_rate.py b/policyengine_us/variables/gov/states/wi/dcf/shares/rates/wi_shares_hourly_max_rate.py index 35e7519d32f..71934ec5349 100644 --- a/policyengine_us/variables/gov/states/wi/dcf/shares/rates/wi_shares_hourly_max_rate.py +++ b/policyengine_us/variables/gov/states/wi/dcf/shares/rates/wi_shares_hourly_max_rate.py @@ -26,8 +26,8 @@ def formula(person, period, parameters): # rate tables. in_wi = person.household("state_code_str", period) == "WI" safe_county = where(in_wi, county, "ADAMS_COUNTY_WI") - licensed_group_rate = p.licensed_group.hourly[safe_county][age_group] - licensed_family_rate = p.licensed_family.hourly[safe_county][age_group] + licensed_group_rate = p.licensed_group.hourly[age_group][safe_county] + licensed_family_rate = p.licensed_family.hourly[age_group][safe_county] # Certified hourly maximums are 90% of the licensed family hourly # maximum, rounded up to the cent (Section 18.5.1). The cents value # is rounded to two decimals first so float noise cannot flip the diff --git a/policyengine_us/variables/gov/states/wi/dcf/shares/rates/wi_shares_monthly_max_rate.py b/policyengine_us/variables/gov/states/wi/dcf/shares/rates/wi_shares_monthly_max_rate.py index 5ad6256f3ae..9c049c6cd54 100644 --- a/policyengine_us/variables/gov/states/wi/dcf/shares/rates/wi_shares_monthly_max_rate.py +++ b/policyengine_us/variables/gov/states/wi/dcf/shares/rates/wi_shares_monthly_max_rate.py @@ -36,18 +36,18 @@ def formula(person, period, parameters): part_time_monthly_hours = np.ceil( p.hours.part_time_weekly_conversion * p.hours.weeks_per_month ) - licensed_group_hourly = p.rates.licensed_group.hourly[safe_county][age_group] - licensed_family_hourly = p.rates.licensed_family.hourly[safe_county][age_group] + licensed_group_hourly = p.rates.licensed_group.hourly[age_group][safe_county] + licensed_family_hourly = p.rates.licensed_family.hourly[age_group][safe_county] time_category = person("wi_shares_time_category", period) full_time = time_category == WISharesTimeCategory.FULL_TIME licensed_group_monthly = where( full_time, - p.rates.licensed_group.full_time_monthly[safe_county][age_group], + p.rates.licensed_group.full_time_monthly[age_group][safe_county], licensed_group_hourly * part_time_monthly_hours, ) licensed_family_monthly = where( full_time, - p.rates.licensed_family.full_time_monthly[safe_county][age_group], + p.rates.licensed_family.full_time_monthly[age_group][safe_county], licensed_family_hourly * part_time_monthly_hours, ) # Certified providers have no monthly maximum of their own; their