diff --git a/changelog.d/7799.fixed.md b/changelog.d/7799.fixed.md new file mode 100644 index 00000000000..6d9cf2bedba --- /dev/null +++ b/changelog.d/7799.fixed.md @@ -0,0 +1 @@ +Make `never_eligible_for_social_security_benefits` an explicit input instead of inferring it heuristically. diff --git a/policyengine_us/parameters/gov/states/me/dhhs/ccap/hours/full_time_threshold.yaml b/policyengine_us/parameters/gov/states/me/dhhs/ccap/hours/full_time_threshold.yaml index 32d4efe5800..f477874e944 100644 --- a/policyengine_us/parameters/gov/states/me/dhhs/ccap/hours/full_time_threshold.yaml +++ b/policyengine_us/parameters/gov/states/me/dhhs/ccap/hours/full_time_threshold.yaml @@ -1,5 +1,6 @@ description: Maine sets this threshold for full-time child care hours per week under the Child Care Affordability Program. values: + 2024-01-01: 30 2024-07-06: 30 metadata: diff --git a/policyengine_us/parameters/gov/states/me/dhhs/ccap/hours/half_time_threshold.yaml b/policyengine_us/parameters/gov/states/me/dhhs/ccap/hours/half_time_threshold.yaml index e0c7dcdfc0b..b4fb822b6ee 100644 --- a/policyengine_us/parameters/gov/states/me/dhhs/ccap/hours/half_time_threshold.yaml +++ b/policyengine_us/parameters/gov/states/me/dhhs/ccap/hours/half_time_threshold.yaml @@ -1,5 +1,6 @@ description: Maine sets this threshold for half-time child care hours per week under the Child Care Affordability Program. values: + 2024-01-01: 10 2024-07-06: 10 metadata: diff --git a/policyengine_us/parameters/gov/states/me/dhhs/ccap/hours/part_time_threshold.yaml b/policyengine_us/parameters/gov/states/me/dhhs/ccap/hours/part_time_threshold.yaml index e727be3083e..63ba4473ad5 100644 --- a/policyengine_us/parameters/gov/states/me/dhhs/ccap/hours/part_time_threshold.yaml +++ b/policyengine_us/parameters/gov/states/me/dhhs/ccap/hours/part_time_threshold.yaml @@ -1,5 +1,6 @@ description: Maine sets this threshold for part-time child care hours per week under the Child Care Affordability Program. values: + 2024-01-01: 20 2024-07-06: 20 metadata: diff --git a/policyengine_us/parameters/gov/states/me/dhhs/ccap/hours/uses_simplified_time.yaml b/policyengine_us/parameters/gov/states/me/dhhs/ccap/hours/uses_simplified_time.yaml index 3e9a9857e48..2341133cfa1 100644 --- a/policyengine_us/parameters/gov/states/me/dhhs/ccap/hours/uses_simplified_time.yaml +++ b/policyengine_us/parameters/gov/states/me/dhhs/ccap/hours/uses_simplified_time.yaml @@ -1,5 +1,6 @@ description: Maine uses this indicator to determine whether the simplified two-category time authorization applies under the Child Care Affordability Program. values: + 2024-01-01: false 2024-07-06: false 2025-05-19: true diff --git a/policyengine_us/parameters/gov/states/me/dhhs/ccap/income/countable_income/sources.yaml b/policyengine_us/parameters/gov/states/me/dhhs/ccap/income/countable_income/sources.yaml index b9f33903647..26d2680f84a 100644 --- a/policyengine_us/parameters/gov/states/me/dhhs/ccap/income/countable_income/sources.yaml +++ b/policyengine_us/parameters/gov/states/me/dhhs/ccap/income/countable_income/sources.yaml @@ -1,6 +1,6 @@ description: Maine uses these income sources for countable income under the Child Care Affordability Program. values: - 2024-07-01: + 2024-01-01: # Earned income (Rule ยง2.C.3) - employment_income - self_employment_income diff --git a/policyengine_us/parameters/gov/states/me/dhhs/ccap/market_rate/license_exempt.yaml b/policyengine_us/parameters/gov/states/me/dhhs/ccap/market_rate/license_exempt.yaml index 5fc40819ae2..5d02e31882e 100644 --- a/policyengine_us/parameters/gov/states/me/dhhs/ccap/market_rate/license_exempt.yaml +++ b/policyengine_us/parameters/gov/states/me/dhhs/ccap/market_rate/license_exempt.yaml @@ -19,190 +19,190 @@ metadata: REGION_1: INFANT: FULL_TIME: - 2024-07-06: 171.5 + 2024-01-01: 171.5 PART_TIME: - 2024-07-06: 128.63 + 2024-01-01: 128.63 HALF_TIME: - 2024-07-06: 85.75 + 2024-01-01: 85.75 QUARTER_TIME: - 2024-07-06: 42.88 + 2024-01-01: 42.88 TODDLER: FULL_TIME: - 2024-07-06: 161.54 + 2024-01-01: 161.54 PART_TIME: - 2024-07-06: 121.15 + 2024-01-01: 121.15 HALF_TIME: - 2024-07-06: 80.77 + 2024-01-01: 80.77 QUARTER_TIME: - 2024-07-06: 40.38 + 2024-01-01: 40.38 PRESCHOOL: FULL_TIME: - 2024-07-06: 157.5 + 2024-01-01: 157.5 PART_TIME: - 2024-07-06: 118.13 + 2024-01-01: 118.13 HALF_TIME: - 2024-07-06: 78.75 + 2024-01-01: 78.75 QUARTER_TIME: - 2024-07-06: 39.38 + 2024-01-01: 39.38 SCHOOL_AGE: FULL_TIME: - 2024-07-06: 122.5 + 2024-01-01: 122.5 PART_TIME: - 2024-07-06: 91.88 + 2024-01-01: 91.88 2025-05-19: 98.33 HALF_TIME: - 2024-07-06: 61.25 + 2024-01-01: 61.25 QUARTER_TIME: - 2024-07-06: 30.63 + 2024-01-01: 30.63 REGION_2: INFANT: FULL_TIME: - 2024-07-06: 147 + 2024-01-01: 147 PART_TIME: - 2024-07-06: 110.25 + 2024-01-01: 110.25 HALF_TIME: - 2024-07-06: 73.5 + 2024-01-01: 73.5 QUARTER_TIME: - 2024-07-06: 36.75 + 2024-01-01: 36.75 TODDLER: FULL_TIME: - 2024-07-06: 140 + 2024-01-01: 140 PART_TIME: - 2024-07-06: 105 + 2024-01-01: 105 HALF_TIME: - 2024-07-06: 70 + 2024-01-01: 70 QUARTER_TIME: - 2024-07-06: 35 + 2024-01-01: 35 PRESCHOOL: FULL_TIME: - 2024-07-06: 133 + 2024-01-01: 133 PART_TIME: - 2024-07-06: 99.75 + 2024-01-01: 99.75 HALF_TIME: - 2024-07-06: 66.5 + 2024-01-01: 66.5 QUARTER_TIME: - 2024-07-06: 33.25 + 2024-01-01: 33.25 SCHOOL_AGE: FULL_TIME: - 2024-07-06: 119 + 2024-01-01: 119 PART_TIME: - 2024-07-06: 89.25 + 2024-01-01: 89.25 2025-05-19: 95.51 HALF_TIME: - 2024-07-06: 59.5 + 2024-01-01: 59.5 QUARTER_TIME: - 2024-07-06: 29.75 + 2024-01-01: 29.75 KENNEBEC: INFANT: FULL_TIME: - 2024-07-06: 147 + 2024-01-01: 147 PART_TIME: - 2024-07-06: 110.25 + 2024-01-01: 110.25 HALF_TIME: - 2024-07-06: 73.5 + 2024-01-01: 73.5 QUARTER_TIME: - 2024-07-06: 36.75 + 2024-01-01: 36.75 TODDLER: FULL_TIME: - 2024-07-06: 140 + 2024-01-01: 140 PART_TIME: - 2024-07-06: 105 + 2024-01-01: 105 HALF_TIME: - 2024-07-06: 70 + 2024-01-01: 70 QUARTER_TIME: - 2024-07-06: 35 + 2024-01-01: 35 PRESCHOOL: FULL_TIME: - 2024-07-06: 133 + 2024-01-01: 133 PART_TIME: - 2024-07-06: 99.75 + 2024-01-01: 99.75 HALF_TIME: - 2024-07-06: 66.5 + 2024-01-01: 66.5 QUARTER_TIME: - 2024-07-06: 33.25 + 2024-01-01: 33.25 SCHOOL_AGE: FULL_TIME: - 2024-07-06: 119 + 2024-01-01: 119 PART_TIME: - 2024-07-06: 89.25 + 2024-01-01: 89.25 2025-05-19: 95.51 HALF_TIME: - 2024-07-06: 59.5 + 2024-01-01: 59.5 QUARTER_TIME: - 2024-07-06: 29.75 + 2024-01-01: 29.75 KNOX_WALDO: INFANT: FULL_TIME: - 2024-07-06: 147 + 2024-01-01: 147 PART_TIME: - 2024-07-06: 110.25 + 2024-01-01: 110.25 HALF_TIME: - 2024-07-06: 73.5 + 2024-01-01: 73.5 QUARTER_TIME: - 2024-07-06: 36.75 + 2024-01-01: 36.75 TODDLER: FULL_TIME: - 2024-07-06: 140 + 2024-01-01: 140 PART_TIME: - 2024-07-06: 105 + 2024-01-01: 105 HALF_TIME: - 2024-07-06: 70 + 2024-01-01: 70 QUARTER_TIME: - 2024-07-06: 35 + 2024-01-01: 35 PRESCHOOL: FULL_TIME: - 2024-07-06: 133 + 2024-01-01: 133 PART_TIME: - 2024-07-06: 99.75 + 2024-01-01: 99.75 HALF_TIME: - 2024-07-06: 66.5 + 2024-01-01: 66.5 QUARTER_TIME: - 2024-07-06: 33.25 + 2024-01-01: 33.25 SCHOOL_AGE: FULL_TIME: - 2024-07-06: 119 + 2024-01-01: 119 PART_TIME: - 2024-07-06: 89.25 + 2024-01-01: 89.25 2025-05-19: 95.51 HALF_TIME: - 2024-07-06: 59.5 + 2024-01-01: 59.5 QUARTER_TIME: - 2024-07-06: 29.75 + 2024-01-01: 29.75 PENOBSCOT: INFANT: FULL_TIME: - 2024-07-06: 147 + 2024-01-01: 147 PART_TIME: - 2024-07-06: 110.25 + 2024-01-01: 110.25 HALF_TIME: - 2024-07-06: 73.5 + 2024-01-01: 73.5 QUARTER_TIME: - 2024-07-06: 36.75 + 2024-01-01: 36.75 TODDLER: FULL_TIME: - 2024-07-06: 140 + 2024-01-01: 140 PART_TIME: - 2024-07-06: 105 + 2024-01-01: 105 HALF_TIME: - 2024-07-06: 70 + 2024-01-01: 70 QUARTER_TIME: - 2024-07-06: 35 + 2024-01-01: 35 PRESCHOOL: FULL_TIME: - 2024-07-06: 133 + 2024-01-01: 133 PART_TIME: - 2024-07-06: 99.75 + 2024-01-01: 99.75 HALF_TIME: - 2024-07-06: 66.5 + 2024-01-01: 66.5 QUARTER_TIME: - 2024-07-06: 33.25 + 2024-01-01: 33.25 SCHOOL_AGE: FULL_TIME: - 2024-07-06: 119 + 2024-01-01: 119 PART_TIME: - 2024-07-06: 89.25 + 2024-01-01: 89.25 2025-05-19: 95.51 HALF_TIME: - 2024-07-06: 59.5 + 2024-01-01: 59.5 QUARTER_TIME: - 2024-07-06: 29.75 + 2024-01-01: 29.75 diff --git a/policyengine_us/parameters/gov/states/me/dhhs/ccap/market_rate/licensed_center.yaml b/policyengine_us/parameters/gov/states/me/dhhs/ccap/market_rate/licensed_center.yaml index 8d9a4cd7328..61b57afcc57 100644 --- a/policyengine_us/parameters/gov/states/me/dhhs/ccap/market_rate/licensed_center.yaml +++ b/policyengine_us/parameters/gov/states/me/dhhs/ccap/market_rate/licensed_center.yaml @@ -19,190 +19,190 @@ metadata: REGION_1: INFANT: FULL_TIME: - 2024-07-06: 330 + 2024-01-01: 330 PART_TIME: - 2024-07-06: 247.5 + 2024-01-01: 247.5 HALF_TIME: - 2024-07-06: 165 + 2024-01-01: 165 QUARTER_TIME: - 2024-07-06: 82.5 + 2024-01-01: 82.5 TODDLER: FULL_TIME: - 2024-07-06: 320 + 2024-01-01: 320 PART_TIME: - 2024-07-06: 240 + 2024-01-01: 240 HALF_TIME: - 2024-07-06: 160 + 2024-01-01: 160 QUARTER_TIME: - 2024-07-06: 80 + 2024-01-01: 80 PRESCHOOL: FULL_TIME: - 2024-07-06: 300 + 2024-01-01: 300 PART_TIME: - 2024-07-06: 225 + 2024-01-01: 225 HALF_TIME: - 2024-07-06: 150 + 2024-01-01: 150 QUARTER_TIME: - 2024-07-06: 75 + 2024-01-01: 75 SCHOOL_AGE: FULL_TIME: - 2024-07-06: 214 + 2024-01-01: 214 PART_TIME: - 2024-07-06: 160.5 + 2024-01-01: 160.5 2025-05-19: 171.76 HALF_TIME: - 2024-07-06: 107 + 2024-01-01: 107 QUARTER_TIME: - 2024-07-06: 53.5 + 2024-01-01: 53.5 REGION_2: INFANT: FULL_TIME: - 2024-07-06: 275 + 2024-01-01: 275 PART_TIME: - 2024-07-06: 206.25 + 2024-01-01: 206.25 HALF_TIME: - 2024-07-06: 137.5 + 2024-01-01: 137.5 QUARTER_TIME: - 2024-07-06: 68.75 + 2024-01-01: 68.75 TODDLER: FULL_TIME: - 2024-07-06: 250 + 2024-01-01: 250 PART_TIME: - 2024-07-06: 187.5 + 2024-01-01: 187.5 HALF_TIME: - 2024-07-06: 125 + 2024-01-01: 125 QUARTER_TIME: - 2024-07-06: 62.5 + 2024-01-01: 62.5 PRESCHOOL: FULL_TIME: - 2024-07-06: 244 + 2024-01-01: 244 PART_TIME: - 2024-07-06: 183 + 2024-01-01: 183 HALF_TIME: - 2024-07-06: 122 + 2024-01-01: 122 QUARTER_TIME: - 2024-07-06: 61 + 2024-01-01: 61 SCHOOL_AGE: FULL_TIME: - 2024-07-06: 180 + 2024-01-01: 180 PART_TIME: - 2024-07-06: 135 + 2024-01-01: 135 2025-05-19: 144.47 HALF_TIME: - 2024-07-06: 90 + 2024-01-01: 90 QUARTER_TIME: - 2024-07-06: 45 + 2024-01-01: 45 KENNEBEC: INFANT: FULL_TIME: - 2024-07-06: 275 + 2024-01-01: 275 PART_TIME: - 2024-07-06: 206.25 + 2024-01-01: 206.25 HALF_TIME: - 2024-07-06: 137.5 + 2024-01-01: 137.5 QUARTER_TIME: - 2024-07-06: 68.75 + 2024-01-01: 68.75 TODDLER: FULL_TIME: - 2024-07-06: 250 + 2024-01-01: 250 PART_TIME: - 2024-07-06: 187.5 + 2024-01-01: 187.5 HALF_TIME: - 2024-07-06: 125 + 2024-01-01: 125 QUARTER_TIME: - 2024-07-06: 62.5 + 2024-01-01: 62.5 PRESCHOOL: FULL_TIME: - 2024-07-06: 267 + 2024-01-01: 267 PART_TIME: - 2024-07-06: 200.25 + 2024-01-01: 200.25 HALF_TIME: - 2024-07-06: 133.5 + 2024-01-01: 133.5 QUARTER_TIME: - 2024-07-06: 66.75 + 2024-01-01: 66.75 SCHOOL_AGE: FULL_TIME: - 2024-07-06: 180 + 2024-01-01: 180 PART_TIME: - 2024-07-06: 135 + 2024-01-01: 135 2025-05-19: 144.47 HALF_TIME: - 2024-07-06: 90 + 2024-01-01: 90 QUARTER_TIME: - 2024-07-06: 45 + 2024-01-01: 45 KNOX_WALDO: INFANT: FULL_TIME: - 2024-07-06: 275 + 2024-01-01: 275 PART_TIME: - 2024-07-06: 206.25 + 2024-01-01: 206.25 HALF_TIME: - 2024-07-06: 137.5 + 2024-01-01: 137.5 QUARTER_TIME: - 2024-07-06: 68.75 + 2024-01-01: 68.75 TODDLER: FULL_TIME: - 2024-07-06: 250 + 2024-01-01: 250 PART_TIME: - 2024-07-06: 187.5 + 2024-01-01: 187.5 HALF_TIME: - 2024-07-06: 125 + 2024-01-01: 125 QUARTER_TIME: - 2024-07-06: 62.5 + 2024-01-01: 62.5 PRESCHOOL: FULL_TIME: - 2024-07-06: 244 + 2024-01-01: 244 PART_TIME: - 2024-07-06: 183 + 2024-01-01: 183 HALF_TIME: - 2024-07-06: 122 + 2024-01-01: 122 QUARTER_TIME: - 2024-07-06: 61 + 2024-01-01: 61 SCHOOL_AGE: FULL_TIME: - 2024-07-06: 220 + 2024-01-01: 220 PART_TIME: - 2024-07-06: 165 + 2024-01-01: 165 2025-05-19: 176.58 HALF_TIME: - 2024-07-06: 110 + 2024-01-01: 110 QUARTER_TIME: - 2024-07-06: 55 + 2024-01-01: 55 PENOBSCOT: INFANT: FULL_TIME: - 2024-07-06: 275 + 2024-01-01: 275 PART_TIME: - 2024-07-06: 206.25 + 2024-01-01: 206.25 HALF_TIME: - 2024-07-06: 137.5 + 2024-01-01: 137.5 QUARTER_TIME: - 2024-07-06: 68.75 + 2024-01-01: 68.75 TODDLER: FULL_TIME: - 2024-07-06: 250 + 2024-01-01: 250 PART_TIME: - 2024-07-06: 187.5 + 2024-01-01: 187.5 HALF_TIME: - 2024-07-06: 125 + 2024-01-01: 125 QUARTER_TIME: - 2024-07-06: 62.5 + 2024-01-01: 62.5 PRESCHOOL: FULL_TIME: - 2024-07-06: 244 + 2024-01-01: 244 PART_TIME: - 2024-07-06: 183 + 2024-01-01: 183 HALF_TIME: - 2024-07-06: 122 + 2024-01-01: 122 QUARTER_TIME: - 2024-07-06: 61 + 2024-01-01: 61 SCHOOL_AGE: FULL_TIME: - 2024-07-06: 200 + 2024-01-01: 200 PART_TIME: - 2024-07-06: 150 + 2024-01-01: 150 2025-05-19: 160.53 HALF_TIME: - 2024-07-06: 100 + 2024-01-01: 100 QUARTER_TIME: - 2024-07-06: 50 + 2024-01-01: 50 diff --git a/policyengine_us/parameters/gov/states/me/dhhs/ccap/market_rate/licensed_family.yaml b/policyengine_us/parameters/gov/states/me/dhhs/ccap/market_rate/licensed_family.yaml index 328688cbe76..a44e185efcd 100644 --- a/policyengine_us/parameters/gov/states/me/dhhs/ccap/market_rate/licensed_family.yaml +++ b/policyengine_us/parameters/gov/states/me/dhhs/ccap/market_rate/licensed_family.yaml @@ -19,190 +19,190 @@ metadata: REGION_1: INFANT: FULL_TIME: - 2024-07-06: 245 + 2024-01-01: 245 PART_TIME: - 2024-07-06: 183.75 + 2024-01-01: 183.75 HALF_TIME: - 2024-07-06: 122.5 + 2024-01-01: 122.5 QUARTER_TIME: - 2024-07-06: 61.25 + 2024-01-01: 61.25 TODDLER: FULL_TIME: - 2024-07-06: 230.77 + 2024-01-01: 230.77 PART_TIME: - 2024-07-06: 173.08 + 2024-01-01: 173.08 HALF_TIME: - 2024-07-06: 115.38 + 2024-01-01: 115.38 QUARTER_TIME: - 2024-07-06: 57.69 + 2024-01-01: 57.69 PRESCHOOL: FULL_TIME: - 2024-07-06: 225 + 2024-01-01: 225 PART_TIME: - 2024-07-06: 168.75 + 2024-01-01: 168.75 HALF_TIME: - 2024-07-06: 112.5 + 2024-01-01: 112.5 QUARTER_TIME: - 2024-07-06: 56.25 + 2024-01-01: 56.25 SCHOOL_AGE: FULL_TIME: - 2024-07-06: 175 + 2024-01-01: 175 PART_TIME: - 2024-07-06: 131.25 + 2024-01-01: 131.25 2025-05-19: 140.46 HALF_TIME: - 2024-07-06: 87.5 + 2024-01-01: 87.5 QUARTER_TIME: - 2024-07-06: 43.75 + 2024-01-01: 43.75 REGION_2: INFANT: FULL_TIME: - 2024-07-06: 210 + 2024-01-01: 210 PART_TIME: - 2024-07-06: 157.5 + 2024-01-01: 157.5 HALF_TIME: - 2024-07-06: 105 + 2024-01-01: 105 QUARTER_TIME: - 2024-07-06: 52.5 + 2024-01-01: 52.5 TODDLER: FULL_TIME: - 2024-07-06: 200 + 2024-01-01: 200 PART_TIME: - 2024-07-06: 150 + 2024-01-01: 150 HALF_TIME: - 2024-07-06: 100 + 2024-01-01: 100 QUARTER_TIME: - 2024-07-06: 50 + 2024-01-01: 50 PRESCHOOL: FULL_TIME: - 2024-07-06: 190 + 2024-01-01: 190 PART_TIME: - 2024-07-06: 142.5 + 2024-01-01: 142.5 HALF_TIME: - 2024-07-06: 95 + 2024-01-01: 95 QUARTER_TIME: - 2024-07-06: 47.5 + 2024-01-01: 47.5 SCHOOL_AGE: FULL_TIME: - 2024-07-06: 170 + 2024-01-01: 170 PART_TIME: - 2024-07-06: 127.5 + 2024-01-01: 127.5 2025-05-19: 136.45 HALF_TIME: - 2024-07-06: 85 + 2024-01-01: 85 QUARTER_TIME: - 2024-07-06: 42.5 + 2024-01-01: 42.5 KENNEBEC: INFANT: FULL_TIME: - 2024-07-06: 210 + 2024-01-01: 210 PART_TIME: - 2024-07-06: 157.5 + 2024-01-01: 157.5 HALF_TIME: - 2024-07-06: 105 + 2024-01-01: 105 QUARTER_TIME: - 2024-07-06: 52.5 + 2024-01-01: 52.5 TODDLER: FULL_TIME: - 2024-07-06: 200 + 2024-01-01: 200 PART_TIME: - 2024-07-06: 150 + 2024-01-01: 150 HALF_TIME: - 2024-07-06: 100 + 2024-01-01: 100 QUARTER_TIME: - 2024-07-06: 50 + 2024-01-01: 50 PRESCHOOL: FULL_TIME: - 2024-07-06: 190 + 2024-01-01: 190 PART_TIME: - 2024-07-06: 142.5 + 2024-01-01: 142.5 HALF_TIME: - 2024-07-06: 95 + 2024-01-01: 95 QUARTER_TIME: - 2024-07-06: 47.5 + 2024-01-01: 47.5 SCHOOL_AGE: FULL_TIME: - 2024-07-06: 170 + 2024-01-01: 170 PART_TIME: - 2024-07-06: 127.5 + 2024-01-01: 127.5 2025-05-19: 136.45 HALF_TIME: - 2024-07-06: 85 + 2024-01-01: 85 QUARTER_TIME: - 2024-07-06: 42.5 + 2024-01-01: 42.5 KNOX_WALDO: INFANT: FULL_TIME: - 2024-07-06: 210 + 2024-01-01: 210 PART_TIME: - 2024-07-06: 157.5 + 2024-01-01: 157.5 HALF_TIME: - 2024-07-06: 105 + 2024-01-01: 105 QUARTER_TIME: - 2024-07-06: 52.5 + 2024-01-01: 52.5 TODDLER: FULL_TIME: - 2024-07-06: 200 + 2024-01-01: 200 PART_TIME: - 2024-07-06: 150 + 2024-01-01: 150 HALF_TIME: - 2024-07-06: 100 + 2024-01-01: 100 QUARTER_TIME: - 2024-07-06: 50 + 2024-01-01: 50 PRESCHOOL: FULL_TIME: - 2024-07-06: 190 + 2024-01-01: 190 PART_TIME: - 2024-07-06: 142.5 + 2024-01-01: 142.5 HALF_TIME: - 2024-07-06: 95 + 2024-01-01: 95 QUARTER_TIME: - 2024-07-06: 47.5 + 2024-01-01: 47.5 SCHOOL_AGE: FULL_TIME: - 2024-07-06: 170 + 2024-01-01: 170 PART_TIME: - 2024-07-06: 127.5 + 2024-01-01: 127.5 2025-05-19: 136.45 HALF_TIME: - 2024-07-06: 85 + 2024-01-01: 85 QUARTER_TIME: - 2024-07-06: 42.5 + 2024-01-01: 42.5 PENOBSCOT: INFANT: FULL_TIME: - 2024-07-06: 210 + 2024-01-01: 210 PART_TIME: - 2024-07-06: 157.5 + 2024-01-01: 157.5 HALF_TIME: - 2024-07-06: 105 + 2024-01-01: 105 QUARTER_TIME: - 2024-07-06: 52.5 + 2024-01-01: 52.5 TODDLER: FULL_TIME: - 2024-07-06: 200 + 2024-01-01: 200 PART_TIME: - 2024-07-06: 150 + 2024-01-01: 150 HALF_TIME: - 2024-07-06: 100 + 2024-01-01: 100 QUARTER_TIME: - 2024-07-06: 50 + 2024-01-01: 50 PRESCHOOL: FULL_TIME: - 2024-07-06: 190 + 2024-01-01: 190 PART_TIME: - 2024-07-06: 142.5 + 2024-01-01: 142.5 HALF_TIME: - 2024-07-06: 95 + 2024-01-01: 95 QUARTER_TIME: - 2024-07-06: 47.5 + 2024-01-01: 47.5 SCHOOL_AGE: FULL_TIME: - 2024-07-06: 170 + 2024-01-01: 170 PART_TIME: - 2024-07-06: 127.5 + 2024-01-01: 127.5 2025-05-19: 136.45 HALF_TIME: - 2024-07-06: 85 + 2024-01-01: 85 QUARTER_TIME: - 2024-07-06: 42.5 + 2024-01-01: 42.5 diff --git a/policyengine_us/parameters/gov/states/ri/dhs/ccap/age_group/center/infant_max.yaml b/policyengine_us/parameters/gov/states/ri/dhs/ccap/age_group/center/infant_max.yaml index cd8ead8c938..35ef38aae97 100644 --- a/policyengine_us/parameters/gov/states/ri/dhs/ccap/age_group/center/infant_max.yaml +++ b/policyengine_us/parameters/gov/states/ri/dhs/ccap/age_group/center/infant_max.yaml @@ -7,7 +7,9 @@ metadata: period: year label: Rhode Island CCAP licensed center infant age maximum reference: + - title: 2025 Rhode Island Public Laws Chapter 278, Article 10, Section 6 + href: https://webserver.rilegislature.gov/PublicLaws/law25/law25278-10.htm - title: RI DHS CCAP Licensed Center Child Care Weekly Rates, Effective July 1, 2025 href: https://dhs.ri.gov/media/9356/download?language=en - - title: 218-RICR-20-00-4, Section 4.12.B.2 - href: https://rules.sos.ri.gov/regulations/part/218-20-00-4#4.12 + - title: 218-RICR-20-00-4, Section 4.13.B.2 + href: https://rules.sos.ri.gov/regulations/part/218-20-00-4#4.13 diff --git a/policyengine_us/parameters/gov/states/ri/dhs/ccap/age_group/center/toddler_max.yaml b/policyengine_us/parameters/gov/states/ri/dhs/ccap/age_group/center/toddler_max.yaml index 3c1b194165b..2122e80575f 100644 --- a/policyengine_us/parameters/gov/states/ri/dhs/ccap/age_group/center/toddler_max.yaml +++ b/policyengine_us/parameters/gov/states/ri/dhs/ccap/age_group/center/toddler_max.yaml @@ -7,7 +7,9 @@ metadata: period: year label: Rhode Island CCAP licensed center toddler age maximum reference: + - title: 2025 Rhode Island Public Laws Chapter 278, Article 10, Section 6 + href: https://webserver.rilegislature.gov/PublicLaws/law25/law25278-10.htm - title: RI DHS CCAP Licensed Center Child Care Weekly Rates, Effective July 1, 2025 href: https://dhs.ri.gov/media/9356/download?language=en - - title: 218-RICR-20-00-4, Section 4.12.B.2 - href: https://rules.sos.ri.gov/regulations/part/218-20-00-4#4.12 + - title: 218-RICR-20-00-4, Section 4.13.B.2 + href: https://rules.sos.ri.gov/regulations/part/218-20-00-4#4.13 diff --git a/policyengine_us/parameters/gov/states/ri/dhs/ccap/age_group/family/infant_toddler_max.yaml b/policyengine_us/parameters/gov/states/ri/dhs/ccap/age_group/family/infant_toddler_max.yaml index 180edd91121..4ea53bc5408 100644 --- a/policyengine_us/parameters/gov/states/ri/dhs/ccap/age_group/family/infant_toddler_max.yaml +++ b/policyengine_us/parameters/gov/states/ri/dhs/ccap/age_group/family/infant_toddler_max.yaml @@ -1,12 +1,14 @@ description: Rhode Island defines the licensed family and exempt infant/toddler age group as children younger than this age under the Child Care Assistance Program. values: - 2024-07-01: 3 + 2022-01-01: 3 metadata: unit: year period: year label: Rhode Island CCAP licensed family infant/toddler age maximum reference: + - title: RI DHS CCAP Licensed Family Child Care Weekly Rates, Effective January 1, 2023 + href: https://dhs.ri.gov/media/5006/download?language=en - title: RI DHS CCAP Licensed Family Child Care Weekly Rates, Effective July 1, 2024 href: https://dhs.ri.gov/media/7481/download?language=en - title: RI DHS CCAP Licensed Exempt Child Care Weekly Rates, Effective January 1, 2022 diff --git a/policyengine_us/parameters/gov/states/ri/dhs/ccap/rates/center.yaml b/policyengine_us/parameters/gov/states/ri/dhs/ccap/rates/center.yaml index 47c0b79c4c6..38267d3545d 100644 --- a/policyengine_us/parameters/gov/states/ri/dhs/ccap/rates/center.yaml +++ b/policyengine_us/parameters/gov/states/ri/dhs/ccap/rates/center.yaml @@ -8,193 +8,337 @@ metadata: - ri_ccap_star_rating - ri_ccap_center_age_group reference: + - title: 2025 Rhode Island Public Laws Chapter 278, Article 10, Section 6 + href: https://webserver.rilegislature.gov/PublicLaws/law25/law25278-10.htm + - title: 218-RICR-20-00-4, Section 4.13 + href: https://rules.sos.ri.gov/Regulations/part/218-20-00-4?reg_id=13099 - title: RI DHS CCAP Licensed Center Child Care Weekly Rates, Effective July 1, 2025 href: https://dhs.ri.gov/media/9356/download?language=en FULL_TIME: STAR_1: + INFANT_TODDLER: + 2022-07-01: 265 + 2024-07-01: 278 INFANT: 2025-07-01: 334 TODDLER: 2025-07-01: 278 PRESCHOOL: + 2022-07-01: 225 + 2024-07-01: 236 2025-07-01: 236 SCHOOL_AGE: + 2022-07-01: 200 + 2024-07-01: 210 2025-07-01: 210 STAR_2: + INFANT_TODDLER: + 2022-07-01: 270 + 2024-07-01: 284 INFANT: 2025-07-01: 341 TODDLER: 2025-07-01: 284 PRESCHOOL: + 2022-07-01: 235 + 2024-07-01: 247 2025-07-01: 247 SCHOOL_AGE: + 2022-07-01: 205 + 2024-07-01: 215 2025-07-01: 215 STAR_3: + INFANT_TODDLER: + 2022-07-01: 282 + 2024-07-01: 296 INFANT: 2025-07-01: 355 TODDLER: 2025-07-01: 296 PRESCHOOL: + 2022-07-01: 243 + 2024-07-01: 255 2025-07-01: 255 SCHOOL_AGE: + 2022-07-01: 220 + 2024-07-01: 231 2025-07-01: 231 STAR_4: + INFANT_TODDLER: + 2022-07-01: 289 + 2024-07-01: 303 INFANT: 2025-07-01: 364 TODDLER: 2025-07-01: 303 PRESCHOOL: + 2022-07-01: 250 + 2024-07-01: 263 2025-07-01: 263 SCHOOL_AGE: + 2022-07-01: 238 + 2024-07-01: 250 2025-07-01: 250 STAR_5: + INFANT_TODDLER: + 2022-07-01: 300 + 2024-07-01: 315 INFANT: 2025-07-01: 378 TODDLER: 2025-07-01: 315 PRESCHOOL: + 2022-07-01: 260 + 2024-07-01: 273 2025-07-01: 273 SCHOOL_AGE: + 2022-07-01: 250 + 2024-07-01: 263 2025-07-01: 263 THREE_QUARTER_TIME: STAR_1: + INFANT_TODDLER: + 2022-07-01: 198.75 + 2024-07-01: 208.5 INFANT: 2025-07-01: 250.5 TODDLER: 2025-07-01: 208.5 PRESCHOOL: + 2022-07-01: 168.75 + 2024-07-01: 177 2025-07-01: 177 SCHOOL_AGE: + 2022-07-01: 150 + 2024-07-01: 157.5 2025-07-01: 157.5 STAR_2: + INFANT_TODDLER: + 2022-07-01: 202.5 + 2024-07-01: 213 INFANT: 2025-07-01: 255.75 TODDLER: 2025-07-01: 213 PRESCHOOL: + 2022-07-01: 176.25 + 2024-07-01: 185.25 2025-07-01: 185.25 SCHOOL_AGE: + 2022-07-01: 153.75 + 2024-07-01: 161.25 2025-07-01: 161.25 STAR_3: + INFANT_TODDLER: + 2022-07-01: 211.5 + 2024-07-01: 222 INFANT: 2025-07-01: 266.25 TODDLER: 2025-07-01: 222 PRESCHOOL: + 2022-07-01: 182.25 + 2024-07-01: 191.25 2025-07-01: 191.25 SCHOOL_AGE: + 2022-07-01: 165 + 2024-07-01: 173.25 2025-07-01: 173.25 STAR_4: + INFANT_TODDLER: + 2022-07-01: 216.75 + 2024-07-01: 227.25 INFANT: 2025-07-01: 273 TODDLER: 2025-07-01: 227.25 PRESCHOOL: + 2022-07-01: 187.5 + 2024-07-01: 197.25 2025-07-01: 197.25 SCHOOL_AGE: + 2022-07-01: 178.5 + 2024-07-01: 187.5 2025-07-01: 187.5 STAR_5: + INFANT_TODDLER: + 2022-07-01: 225 + 2024-07-01: 236.25 INFANT: 2025-07-01: 283.5 TODDLER: 2025-07-01: 236.25 PRESCHOOL: + 2022-07-01: 195 + 2024-07-01: 204.75 2025-07-01: 204.75 SCHOOL_AGE: + 2022-07-01: 187.5 + 2024-07-01: 197.25 2025-07-01: 197.25 HALF_TIME: STAR_1: + INFANT_TODDLER: + 2022-07-01: 132.5 + 2024-07-01: 139 INFANT: 2025-07-01: 167 TODDLER: 2025-07-01: 139 PRESCHOOL: + 2022-07-01: 112.5 + 2024-07-01: 118 2025-07-01: 118 SCHOOL_AGE: + 2022-07-01: 100 + 2024-07-01: 105 2025-07-01: 105 STAR_2: + INFANT_TODDLER: + 2022-07-01: 135 + 2024-07-01: 142 INFANT: 2025-07-01: 170.5 TODDLER: 2025-07-01: 142 PRESCHOOL: + 2022-07-01: 117.5 + 2024-07-01: 123.5 2025-07-01: 123.5 SCHOOL_AGE: + 2022-07-01: 102.5 + 2024-07-01: 107.5 2025-07-01: 107.5 STAR_3: + INFANT_TODDLER: + 2022-07-01: 141 + 2024-07-01: 148 INFANT: 2025-07-01: 177.5 TODDLER: 2025-07-01: 148 PRESCHOOL: + 2022-07-01: 121.5 + 2024-07-01: 127.5 2025-07-01: 127.5 SCHOOL_AGE: + 2022-07-01: 110 + 2024-07-01: 115.5 2025-07-01: 115.5 STAR_4: + INFANT_TODDLER: + 2022-07-01: 144.5 + 2024-07-01: 151.5 INFANT: 2025-07-01: 182 TODDLER: 2025-07-01: 151.5 PRESCHOOL: + 2022-07-01: 125 + 2024-07-01: 131.5 2025-07-01: 131.5 SCHOOL_AGE: + 2022-07-01: 119 + 2024-07-01: 125 2025-07-01: 125 STAR_5: + INFANT_TODDLER: + 2022-07-01: 150 + 2024-07-01: 157.5 INFANT: 2025-07-01: 189 TODDLER: 2025-07-01: 157.5 PRESCHOOL: + 2022-07-01: 130 + 2024-07-01: 136.5 2025-07-01: 136.5 SCHOOL_AGE: + 2022-07-01: 125 + 2024-07-01: 131.5 2025-07-01: 131.5 QUARTER_TIME: STAR_1: + INFANT_TODDLER: + 2022-07-01: 66.25 + 2024-07-01: 69.5 INFANT: 2025-07-01: 83.5 TODDLER: 2025-07-01: 69.5 PRESCHOOL: + 2022-07-01: 56.25 + 2024-07-01: 59 2025-07-01: 59 SCHOOL_AGE: + 2022-07-01: 50 + 2024-07-01: 52.5 2025-07-01: 52.5 STAR_2: + INFANT_TODDLER: + 2022-07-01: 67.5 + 2024-07-01: 71 INFANT: 2025-07-01: 85.25 TODDLER: 2025-07-01: 71 PRESCHOOL: + 2022-07-01: 58.75 + 2024-07-01: 61.75 2025-07-01: 61.75 SCHOOL_AGE: + 2022-07-01: 51.25 + 2024-07-01: 53.75 2025-07-01: 53.75 STAR_3: + INFANT_TODDLER: + 2022-07-01: 70.5 + 2024-07-01: 74 INFANT: 2025-07-01: 88.75 TODDLER: 2025-07-01: 74 PRESCHOOL: + 2022-07-01: 60.75 + 2024-07-01: 63.75 2025-07-01: 63.75 SCHOOL_AGE: + 2022-07-01: 55 + 2024-07-01: 57.75 2025-07-01: 57.75 STAR_4: + INFANT_TODDLER: + 2022-07-01: 72.25 + 2024-07-01: 75.75 INFANT: 2025-07-01: 91 TODDLER: 2025-07-01: 75.75 PRESCHOOL: + 2022-07-01: 62.5 + 2024-07-01: 65.75 2025-07-01: 65.75 SCHOOL_AGE: + 2022-07-01: 59.5 + 2024-07-01: 62.5 2025-07-01: 62.5 STAR_5: + INFANT_TODDLER: + 2022-07-01: 75 + 2024-07-01: 78.75 INFANT: 2025-07-01: 94.5 TODDLER: 2025-07-01: 78.75 PRESCHOOL: + 2022-07-01: 65 + 2024-07-01: 68.25 2025-07-01: 68.25 SCHOOL_AGE: + 2022-07-01: 62.5 + 2024-07-01: 65.75 2025-07-01: 65.75 diff --git a/policyengine_us/parameters/gov/states/ri/dhs/ccap/rates/family.yaml b/policyengine_us/parameters/gov/states/ri/dhs/ccap/rates/family.yaml index 810abb59631..79c120e246a 100644 --- a/policyengine_us/parameters/gov/states/ri/dhs/ccap/rates/family.yaml +++ b/policyengine_us/parameters/gov/states/ri/dhs/ccap/rates/family.yaml @@ -8,153 +8,215 @@ metadata: - ri_ccap_star_rating - ri_ccap_family_age_group reference: + - title: RI DHS CCAP Licensed Family Child Care Weekly Rates, Effective January 1, 2023 + href: https://dhs.ri.gov/media/5006/download?language=en - title: RI DHS CCAP Licensed Family Child Care Weekly Rates, Effective July 1, 2024 href: https://dhs.ri.gov/media/7481/download?language=en FULL_TIME: STAR_1: INFANT_TODDLER: + 2023-01-01: 256.25 2024-07-01: 262.66 PRESCHOOL: + 2023-01-01: 215.25 2024-07-01: 220.63 SCHOOL_AGE: + 2023-01-01: 189.63 2024-07-01: 194.37 STAR_2: INFANT_TODDLER: + 2023-01-01: 260.35 2024-07-01: 266.86 PRESCHOOL: + 2023-01-01: 225.5 2024-07-01: 231.14 SCHOOL_AGE: + 2023-01-01: 194.75 2024-07-01: 199.62 STAR_3: INFANT_TODDLER: + 2023-01-01: 263.43 2024-07-01: 270.02 PRESCHOOL: + 2023-01-01: 233.7 2024-07-01: 239.54 SCHOOL_AGE: + 2023-01-01: 210.13 2024-07-01: 215.38 STAR_4: INFANT_TODDLER: + 2023-01-01: 266.5 2024-07-01: 273.16 PRESCHOOL: + 2023-01-01: 244.98 2024-07-01: 251.1 SCHOOL_AGE: + 2023-01-01: 230.63 2024-07-01: 236.4 STAR_5: INFANT_TODDLER: + 2023-01-01: 269.58 2024-07-01: 276.31 PRESCHOOL: + 2023-01-01: 256.25 2024-07-01: 262.66 SCHOOL_AGE: + 2023-01-01: 240.88 2024-07-01: 246.9 THREE_QUARTER_TIME: STAR_1: INFANT_TODDLER: + 2023-01-01: 192.19 2024-07-01: 196.99 PRESCHOOL: + 2023-01-01: 161.44 2024-07-01: 165.47 SCHOOL_AGE: + 2023-01-01: 142.22 2024-07-01: 145.78 STAR_2: INFANT_TODDLER: + 2023-01-01: 195.26 2024-07-01: 200.14 PRESCHOOL: + 2023-01-01: 169.13 2024-07-01: 173.35 SCHOOL_AGE: + 2023-01-01: 146.06 2024-07-01: 149.71 STAR_3: INFANT_TODDLER: + 2023-01-01: 197.57 2024-07-01: 202.51 PRESCHOOL: + 2023-01-01: 175.28 2024-07-01: 179.66 SCHOOL_AGE: + 2023-01-01: 157.6 2024-07-01: 161.54 STAR_4: INFANT_TODDLER: + 2023-01-01: 199.88 2024-07-01: 204.87 PRESCHOOL: + 2023-01-01: 183.74 2024-07-01: 188.33 SCHOOL_AGE: + 2023-01-01: 172.97 2024-07-01: 177.3 STAR_5: INFANT_TODDLER: + 2023-01-01: 202.19 2024-07-01: 207.23 PRESCHOOL: + 2023-01-01: 192.19 2024-07-01: 196.99 SCHOOL_AGE: + 2023-01-01: 180.66 2024-07-01: 185.18 HALF_TIME: STAR_1: INFANT_TODDLER: + 2023-01-01: 128.13 2024-07-01: 131.33 PRESCHOOL: + 2023-01-01: 107.63 2024-07-01: 110.32 SCHOOL_AGE: + 2023-01-01: 94.82 2024-07-01: 97.19 STAR_2: INFANT_TODDLER: + 2023-01-01: 130.18 2024-07-01: 133.43 PRESCHOOL: + 2023-01-01: 112.75 2024-07-01: 115.57 SCHOOL_AGE: + 2023-01-01: 97.38 2024-07-01: 99.81 STAR_3: INFANT_TODDLER: + 2023-01-01: 131.72 2024-07-01: 135.01 PRESCHOOL: + 2023-01-01: 116.85 2024-07-01: 119.77 SCHOOL_AGE: + 2023-01-01: 105.07 2024-07-01: 107.69 STAR_4: INFANT_TODDLER: + 2023-01-01: 133.25 2024-07-01: 136.58 PRESCHOOL: + 2023-01-01: 122.49 2024-07-01: 125.55 SCHOOL_AGE: + 2023-01-01: 115.32 2024-07-01: 118.2 STAR_5: INFANT_TODDLER: + 2023-01-01: 134.79 2024-07-01: 138.15 PRESCHOOL: + 2023-01-01: 128.13 2024-07-01: 131.33 SCHOOL_AGE: + 2023-01-01: 120.44 2024-07-01: 123.45 QUARTER_TIME: STAR_1: INFANT_TODDLER: + 2023-01-01: 64.06 2024-07-01: 65.66 PRESCHOOL: + 2023-01-01: 53.81 2024-07-01: 55.16 SCHOOL_AGE: + 2023-01-01: 47.41 2024-07-01: 48.59 STAR_2: INFANT_TODDLER: + 2023-01-01: 65.09 2024-07-01: 66.71 PRESCHOOL: + 2023-01-01: 56.38 2024-07-01: 57.78 SCHOOL_AGE: + 2023-01-01: 48.69 2024-07-01: 49.9 STAR_3: INFANT_TODDLER: + 2023-01-01: 65.86 2024-07-01: 67.5 PRESCHOOL: + 2023-01-01: 58.43 2024-07-01: 59.89 SCHOOL_AGE: + 2023-01-01: 52.53 2024-07-01: 53.85 STAR_4: INFANT_TODDLER: + 2023-01-01: 66.63 2024-07-01: 68.29 PRESCHOOL: + 2023-01-01: 61.25 2024-07-01: 62.78 SCHOOL_AGE: + 2023-01-01: 57.66 2024-07-01: 59.1 STAR_5: INFANT_TODDLER: + 2023-01-01: 67.4 2024-07-01: 69.08 PRESCHOOL: + 2023-01-01: 64.06 2024-07-01: 65.66 SCHOOL_AGE: + 2023-01-01: 60.22 2024-07-01: 61.73 diff --git a/policyengine_us/parameters/uprating_extensions.py b/policyengine_us/parameters/uprating_extensions.py index bf6d0061f93..41836037b5f 100644 --- a/policyengine_us/parameters/uprating_extensions.py +++ b/policyengine_us/parameters/uprating_extensions.py @@ -1,5 +1,7 @@ """Unified script to extend all uprating factors through 2100.""" +import math + from policyengine_us.model_api import * from policyengine_core.periods import instant @@ -50,6 +52,56 @@ def extend_parameter_values( parameter.update(start=instant(f"{end_year}{date_format}"), value=final_value) +def round_social_security_payroll_cap(amount: float) -> float: + """Round a contribution and benefit base to the statutory $300 increment.""" + quotient = amount / 300 + floored = math.floor(quotient) + fractional = quotient - floored + + if fractional < 0.5: + return floored * 300 + return (floored + 1) * 300 + + +def extend_social_security_payroll_cap( + parameters: ParameterNode, + last_projected_year: int, + end_year: int, +) -> None: + """ + Extend the Social Security contribution and benefit base through `end_year`. + + This follows the statutory formula in 20 CFR 404.1048 using the projected + national average wage index (NAWI), rather than extrapolating the cap + independently. + """ + cap = parameters.gov.irs.payroll.social_security.cap + nawi = parameters.gov.ssa.nawi + + last_increase_determination_year = last_projected_year - 1 + if cap(f"{last_projected_year}-01-01") <= cap(f"{last_projected_year - 1}-01-01"): + for year in range(last_projected_year - 1, 1992, -1): + if cap(f"{year}-01-01") > cap(f"{year - 1}-01-01"): + last_increase_determination_year = year - 1 + break + + for year in range(last_projected_year + 1, end_year + 1): + determination_year = year - 1 + current_cap = cap(f"{determination_year}-01-01") + numerator = nawi(f"{determination_year - 1}-01-01") + denominator = nawi(f"{last_increase_determination_year - 1}-01-01") + proposed_cap = round_social_security_payroll_cap( + current_cap * numerator / denominator + ) + new_cap = max(current_cap, proposed_cap) + cap.update(period=f"year:{year}-01-01:1", value=new_cap) + if new_cap > current_cap: + last_increase_determination_year = determination_year + + final_value = cap(f"{end_year}-01-01") + cap.update(start=instant(f"{end_year}-01-01"), value=final_value) + + def set_all_uprating_parameters(parameters: ParameterNode) -> ParameterNode: """ Extend all uprating parameters through 2100. @@ -103,6 +155,27 @@ def set_all_uprating_parameters(parameters: ParameterNode) -> ParameterNode: period_day=1, ) + # Social Security National Average Wage Index (January values, last + # projection year 2035). The payroll tax contribution and benefit base is + # indexed to NAWI, so this must remain available through the full long-run + # projection horizon. + extend_parameter_values( + parameters.gov.ssa.nawi, + last_projected_year=2035, + end_year=END_YEAR, + period_month=1, + period_day=1, + ) + + # Social Security payroll tax cap / contribution and benefit base is + # derived from NAWI under statute and should not be extrapolated + # independently. + extend_social_security_payroll_cap( + parameters, + last_projected_year=2035, + end_year=END_YEAR, + ) + # HHS poverty guideline uprating (January values, last projection year 2035) extend_parameter_values( parameters.gov.hhs.uprating, diff --git a/policyengine_us/tests/policy/baseline/gov/ssa/ss/never_eligible_for_social_security_benefits.yaml b/policyengine_us/tests/policy/baseline/gov/ssa/ss/never_eligible_for_social_security_benefits.yaml index 06d0e7d766f..8ebd4481ff4 100644 --- a/policyengine_us/tests/policy/baseline/gov/ssa/ss/never_eligible_for_social_security_benefits.yaml +++ b/policyengine_us/tests/policy/baseline/gov/ssa/ss/never_eligible_for_social_security_benefits.yaml @@ -14,10 +14,9 @@ output: never_eligible_for_social_security_benefits: false -- name: If 70 and no social security income, then assume never eligible. +- name: If explicitly reported, treat the filer as never eligible. period: 2022 input: - age: 70 - social_security: 0 + never_eligible_for_social_security_benefits: true output: never_eligible_for_social_security_benefits: true diff --git a/policyengine_us/tests/policy/baseline/gov/states/nj/tax/income/integration.yaml b/policyengine_us/tests/policy/baseline/gov/states/nj/tax/income/integration.yaml index 12066927214..bc669cc84d4 100644 --- a/policyengine_us/tests/policy/baseline/gov/states/nj/tax/income/integration.yaml +++ b/policyengine_us/tests/policy/baseline/gov/states/nj/tax/income/integration.yaml @@ -135,3 +135,27 @@ state_fips: 34 output: nj_income_tax: 2_640 + +- name: NJ single filer should not infer never-eligible SS status from missing SS income + absolute_error_margin: 0.01 + period: 2025 + input: + people: + person1: + age: 71 + taxable_interest_income: 104_762 + is_tax_unit_head: true + tax_units: + tax_unit: + members: [person1] + spm_units: + spm_unit: + members: [person1] + households: + household: + members: [person1] + state_fips: 34 + output: + never_eligible_for_social_security_benefits: false + nj_other_retirement_special_exclusion: 0 + nj_income_tax: 2_014.5629 diff --git a/policyengine_us/tests/policy/baseline/gov/states/ri/dhs/ccap/integration.yaml b/policyengine_us/tests/policy/baseline/gov/states/ri/dhs/ccap/integration.yaml index 55cc020d548..83c4d60b6cd 100644 --- a/policyengine_us/tests/policy/baseline/gov/states/ri/dhs/ccap/integration.yaml +++ b/policyengine_us/tests/policy/baseline/gov/states/ri/dhs/ccap/integration.yaml @@ -123,17 +123,17 @@ ri_ccap_copay: 0 # === Provider rates === - # child1 (age 1): INFANT center group, FT Star 2 = $341 + # child1 (age 1): INFANT_TODDLER center group, FT Star 2 = $284 # child2 (age 5, not in school): PRESCHOOL center group, FT Star 2 = $247 - ri_ccap_center_age_group: [PRESCHOOL, INFANT, PRESCHOOL] + ri_ccap_center_age_group: [PRESCHOOL, INFANT_TODDLER, PRESCHOOL] # Parent: 0 hrs/wk -> QUARTER_TIME; Children: FT ri_ccap_time_category: [QUARTER_TIME, FULL_TIME, FULL_TIME] - ri_ccap_maximum_weekly_benefit: [0, 341, 247] + ri_ccap_maximum_weekly_benefit: [0, 284, 247] # === Benefit === - # max annual per child: 341*52 = 17,732 + 247*52 = 12,844 = 30,576 + # max annual per child: 284*52 = 14,768 + 247*52 = 12,844 = 27,612 # uncapped = max(25,000 - 0, 0) = 25,000 - # annual benefit = min(25,000, 30,576) = 25,000 + # annual benefit = min(25,000, 27,612) = 25,000 # monthly = 25,000 / 12 = 2,083.33 ri_ccap: 2_083.33 @@ -417,17 +417,17 @@ ri_ccap_copay: 50 # === Provider rates === - # child1 (age 1): Center FT Star 4 Infant = $364 + # child1 (age 1): Center FT Star 4 Infant/Toddler = $303 # child2 (age 8, in school): Exempt HT Step 1 School Age = $29.40 - ri_ccap_center_age_group: [PRESCHOOL, INFANT, SCHOOL_AGE] + ri_ccap_center_age_group: [PRESCHOOL, INFANT_TODDLER, SCHOOL_AGE] # Parent: 0 hrs/wk -> QUARTER_TIME; child1: 35 hrs -> FULL_TIME; child2: 10 hrs -> HALF_TIME ri_ccap_time_category: [QUARTER_TIME, FULL_TIME, HALF_TIME] - ri_ccap_maximum_weekly_benefit: [0, 364, 29.40] + ri_ccap_maximum_weekly_benefit: [0, 303, 29.40] # === Benefit === - # max annual = (364 + 29.40) * 52 = 393.40 * 52 = 20,456.80 + # max annual = (303 + 29.40) * 52 = 332.40 * 52 = 17,284.80 # uncapped = max(15,000 - 600, 0) = 14,400 - # annual benefit = min(14,400, 20,456.80) = 14,400 + # annual benefit = min(14,400, 17,284.80) = 14,400 # monthly = 14,400 / 12 = 1,200 ri_ccap: 1_200 diff --git a/policyengine_us/tests/policy/baseline/gov/states/ri/dhs/ccap/ri_ccap_center_age_group.yaml b/policyengine_us/tests/policy/baseline/gov/states/ri/dhs/ccap/ri_ccap_center_age_group.yaml index f0c53d6984a..f735d4d583f 100644 --- a/policyengine_us/tests/policy/baseline/gov/states/ri/dhs/ccap/ri_ccap_center_age_group.yaml +++ b/policyengine_us/tests/policy/baseline/gov/states/ri/dhs/ccap/ri_ccap_center_age_group.yaml @@ -1,4 +1,9 @@ -# Center age groups: +# Center age groups before 2025-07: +# Infant/Toddler: age < 3 +# Preschool: age 3+ and not in K-12 school +# School Age: in K-12 school +# +# Center age groups from 2025-07: # Infant: age < 2 # Toddler: age 2 (i.e., age < 3) # Preschool: age 3+ and not in K-12 school @@ -15,7 +20,7 @@ members: [person1] state_code: RI output: - ri_ccap_center_age_group: INFANT + ri_ccap_center_age_group: INFANT_TODDLER - name: Case 2, toddler age 2. period: 2025-01 @@ -28,7 +33,7 @@ members: [person1] state_code: RI output: - ri_ccap_center_age_group: TODDLER + ri_ccap_center_age_group: INFANT_TODDLER - name: Case 3, preschool age 4 not in school. period: 2025-01 @@ -96,5 +101,31 @@ household: members: [person1] state_code: RI + output: + ri_ccap_center_age_group: INFANT_TODDLER + +- name: Case 8, infant age 1 after the July 2025 split. + period: 2026-01 + input: + people: + person1: + age: 1 + households: + household: + members: [person1] + state_code: RI output: ri_ccap_center_age_group: INFANT + +- name: Case 9, toddler age 2 after the July 2025 split. + period: 2026-01 + input: + people: + person1: + age: 2 + households: + household: + members: [person1] + state_code: RI + output: + ri_ccap_center_age_group: TODDLER diff --git a/policyengine_us/tests/policy/baseline/gov/states/ri/dhs/ccap/ri_ccap_maximum_weekly_benefit.yaml b/policyengine_us/tests/policy/baseline/gov/states/ri/dhs/ccap/ri_ccap_maximum_weekly_benefit.yaml index 14dc6a59c86..affa2dcf78c 100644 --- a/policyengine_us/tests/policy/baseline/gov/states/ri/dhs/ccap/ri_ccap_maximum_weekly_benefit.yaml +++ b/policyengine_us/tests/policy/baseline/gov/states/ri/dhs/ccap/ri_ccap_maximum_weekly_benefit.yaml @@ -1,5 +1,5 @@ # Tests for ri_ccap_maximum_weekly_benefit -# Rates effective: center July 2025, family July 2024, exempt Jan 2022 +# Rates effective: center July 2024 until the July 2025 split, family July 2024, exempt Jan 2022 # Person-level variable; parent output is 0 (default), child gets rate - name: Case 1, licensed center full time star 1 preschool. @@ -27,7 +27,7 @@ ri_ccap_maximum_weekly_benefit: [0, 236] - name: Case 2, licensed center full time star 5 infant. - period: 2025-01 + period: 2026-01 absolute_error_margin: 0.01 input: people: @@ -239,7 +239,7 @@ ri_ccap_maximum_weekly_benefit: [0, 15.13] - name: Case 11, licensed center quarter time star 2 infant. - period: 2025-01 + period: 2026-01 absolute_error_margin: 0.01 input: people: diff --git a/policyengine_us/tests/policy/baseline/parameters/test_uprating_extensions.py b/policyengine_us/tests/policy/baseline/parameters/test_uprating_extensions.py index 7a821e9b03d..95a334941f1 100644 --- a/policyengine_us/tests/policy/baseline/parameters/test_uprating_extensions.py +++ b/policyengine_us/tests/policy/baseline/parameters/test_uprating_extensions.py @@ -1,12 +1,17 @@ """Test unified uprating extensions through 2100.""" +from policyengine_us.system import system +from policyengine_us.parameters.uprating_extensions import ( + round_social_security_payroll_cap, +) + + +PARAMETERS = system.parameters + def test_all_uprating_factors_extend_to_2100(): """Test that all uprating factors extend through 2100 with consistent growth rates.""" - from policyengine_us import Microsimulation - - sim = Microsimulation() - parameters = sim.tax_benefit_system.parameters + parameters = PARAMETERS # Define all uprating parameters to test with their specific periods uprating_params = [ @@ -51,12 +56,50 @@ def test_all_uprating_factors_extend_to_2100(): ) +def test_ssa_nawi_and_payroll_cap_extend_to_2100(): + """Test that the SSA NAWI and payroll cap do not flatten after 2035.""" + parameters = PARAMETERS + + nawi = parameters.gov.ssa.nawi + payroll_cap = parameters.gov.irs.payroll.social_security.cap + + test_years = [2035, 2050, 2075, 2100] + nawi_values = [nawi(f"{year}-01-01") for year in test_years] + cap_values = [payroll_cap(f"{year}-01-01") for year in test_years] + + for i in range(1, len(test_years)): + assert nawi_values[i] > nawi_values[i - 1], ( + f"NAWI should increase from {test_years[i - 1]} to {test_years[i]}" + ) + assert cap_values[i] > cap_values[i - 1], ( + f"Payroll cap should increase from {test_years[i - 1]} to {test_years[i]}" + ) + + for year in [2036, 2040, 2050, 2100]: + current_cap = payroll_cap(f"{year - 1}-01-01") + expected_cap = round_social_security_payroll_cap( + current_cap * nawi(f"{year - 2}-01-01") / nawi(f"{year - 3}-01-01") + ) + assert payroll_cap(f"{year}-01-01") == expected_cap + + +def test_social_security_payroll_cap_formula_matches_known_projection(): + """Test the known 2025 cap against the statutory NAWI-indexing formula.""" + parameters = PARAMETERS + + payroll_cap = parameters.gov.irs.payroll.social_security.cap + nawi = parameters.gov.ssa.nawi + + expected_2025_cap = round_social_security_payroll_cap( + payroll_cap("2024-01-01") * nawi("2023-01-01") / nawi("2022-01-01") + ) + + assert expected_2025_cap == payroll_cap("2025-01-01") + + def test_uprating_growth_rates_are_reasonable(): """Test that all uprating growth rates are within reasonable bounds.""" - from policyengine_us import Microsimulation - - sim = Microsimulation() - parameters = sim.tax_benefit_system.parameters + parameters = PARAMETERS # Annual growth rates should be between 0.5% and 5% for inflation measures min_annual_growth = 1.005 @@ -87,10 +130,7 @@ def test_uprating_growth_rates_are_reasonable(): def test_cpi_relationships(): """Test that CPI indices maintain expected relationships.""" - from policyengine_us import Microsimulation - - sim = Microsimulation() - parameters = sim.tax_benefit_system.parameters + parameters = PARAMETERS # Test a few years to ensure relationships are maintained test_years = [2040, 2060, 2080, 2100] diff --git a/policyengine_us/variables/gov/ssa/ss/never_eligible_for_social_security_benefits.py b/policyengine_us/variables/gov/ssa/ss/never_eligible_for_social_security_benefits.py index 13a11451143..e903816b013 100644 --- a/policyengine_us/variables/gov/ssa/ss/never_eligible_for_social_security_benefits.py +++ b/policyengine_us/variables/gov/ssa/ss/never_eligible_for_social_security_benefits.py @@ -6,10 +6,4 @@ class never_eligible_for_social_security_benefits(Variable): entity = Person definition_period = YEAR label = "Never eligible for Social Security" - unit = USD - - def formula(person, period, parameters): - # Assumption: if person is above age 70 and has no social security benefits, then they are never eligible. - age = person("age", period) - social_security = person("social_security", period) - return (age >= 70) & (social_security == 0) + default_value = False diff --git a/policyengine_us/variables/gov/states/ri/dhs/ccap/ri_ccap_center_age_group.py b/policyengine_us/variables/gov/states/ri/dhs/ccap/ri_ccap_center_age_group.py index 72a3bec049e..40926aee26b 100644 --- a/policyengine_us/variables/gov/states/ri/dhs/ccap/ri_ccap_center_age_group.py +++ b/policyengine_us/variables/gov/states/ri/dhs/ccap/ri_ccap_center_age_group.py @@ -2,6 +2,7 @@ class RICCAPCenterAgeGroup(Enum): + INFANT_TODDLER = "Infant/Toddler" INFANT = "Infant" TODDLER = "Toddler" PRESCHOOL = "Preschool" @@ -16,12 +17,29 @@ class ri_ccap_center_age_group(Variable): definition_period = MONTH label = "Rhode Island CCAP licensed center age group" defined_for = StateCode.RI - reference = "https://dhs.ri.gov/media/9356/download?language=en" + reference = ( + "https://webserver.rilegislature.gov/PublicLaws/law25/law25278-10.htm", + "https://dhs.ri.gov/media/9356/download?language=en", + ) def formula(person, period, parameters): - p = parameters(period).gov.states.ri.dhs.ccap.age_group.center age = person("age", period.this_year) is_in_school = person("is_in_k12_school", period.this_year) + if (period.start.year, period.start.month) < (2025, 7): + p = parameters(period).gov.states.ri.dhs.ccap.age_group.family + return select( + [ + age < p.infant_toddler_max, + ~is_in_school, + ], + [ + RICCAPCenterAgeGroup.INFANT_TODDLER, + RICCAPCenterAgeGroup.PRESCHOOL, + ], + default=RICCAPCenterAgeGroup.SCHOOL_AGE, + ) + + p = parameters(period).gov.states.ri.dhs.ccap.age_group.center return select( [ age < p.infant_max,