From 2c6ea9993a65abe847a52816e23f7c449bfd13c6 Mon Sep 17 00:00:00 2001 From: Ziming Date: Mon, 31 Aug 2026 14:33:21 -0400 Subject: [PATCH 1/3] Add Utah CCAP Table 4 copay and income limits effective October 1, 2026 Encode the DWS Table 4 "Child Care Income Eligibility and Co-Payment" edition effective October 1, 2026 as a 2026-10-01 layer in the copay amount and income group upper-bound parameters (household sizes 2-12+, income groups 1-16, all child-count columns). The existing 2020-01-01 layer keeps the April 1, 2026 edition at the backdating floor. The October edition prints 0 (previously n/a) in the structurally impossible child-count cells; the repeat-padding convention is retained. The size 10 group 16 bound is encoded as published (12,846) with a comment noting the apparent typo for 12,486; it has no behavioral effect. The new entry/exit eligibility structure (groups 6/10/16) is noted but not modeled here. Part of #9365. Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_01ASXyC4DNpinDieKCdkNgL8 --- .../ut-ccap-copay-table4-oct-2026.changed.md | 1 + .../gov/states/ut/dwf/ccap/copay/amount.yaml | 538 +++++++++++++++++- .../ut/dwf/ccap/copay/income_limits.yaml | 203 ++++++- .../ut/dwf/ccap/copay/ut_ccap_copay.yaml | 128 ++++- .../dwf/ccap/copay/ut_ccap_income_group.yaml | 52 +- 5 files changed, 903 insertions(+), 19 deletions(-) create mode 100644 changelog.d/ut-ccap-copay-table4-oct-2026.changed.md diff --git a/changelog.d/ut-ccap-copay-table4-oct-2026.changed.md b/changelog.d/ut-ccap-copay-table4-oct-2026.changed.md new file mode 100644 index 00000000000..ff53b72d86c --- /dev/null +++ b/changelog.d/ut-ccap-copay-table4-oct-2026.changed.md @@ -0,0 +1 @@ +Utah CCAP copayment amounts and income group limits from the Table 4 edition effective October 1, 2026. diff --git a/policyengine_us/parameters/gov/states/ut/dwf/ccap/copay/amount.yaml b/policyengine_us/parameters/gov/states/ut/dwf/ccap/copay/amount.yaml index 867a8532389..8c76988b874 100644 --- a/policyengine_us/parameters/gov/states/ut/dwf/ccap/copay/amount.yaml +++ b/policyengine_us/parameters/gov/states/ut/dwf/ccap/copay/amount.yaml @@ -1,8 +1,9 @@ description: Utah sets these monthly child care copayment amounts under the Child Care Assistance program. -# Table 4, effective April 1, 2026. The 2020 entry is placed at +# Table 4. The 2020-01-01 entry holds the April 1, 2026 edition at # PolicyEngine's backdating floor; earlier editions of Table 4 are not -# encoded, so prior periods use this table as an approximation. +# encoded, so prior periods use that table as an approximation. The +# 2026-10-01 entry holds the October 1, 2026 edition. # # The copayment is a sliding scale by household size (2 through 12 or # more), countable income group (1 through 16, classified with @@ -11,7 +12,8 @@ description: Utah sets these monthly child care copayment amounts under the Chil # federal poverty level) has no copayment (R986-700-707(5)(a)). The # published table marks child-count columns that exceed the possible # number of children in the household size as n/a (household size 2: two -# or more children; size 3: more than two); these cells repeat the +# or more children; size 3: more than two), which the October 2026 +# edition prints as 0 instead; in both layers these cells repeat the # largest published column for that row so every lookup is defined, and # they never bind in practice. metadata: @@ -29,6 +31,8 @@ metadata: reference: - title: Utah DWS Table 4 - Child Care Income Eligibility and Co-Payment (effective April 1, 2026) href: https://jobs.utah.gov/Infosource/eligibilitymanual/Tables,_Appendicies,_and_Charts/Tables,_Appendicies,_and_Charts/Table_4_-_Child_Care_Income_Eligibility_and_Co-Payment.htm + - title: Utah DWS Table 4 - Child Care Income Eligibility and Co-Payment (effective October 1, 2026) + href: https://jobs.utah.gov/occ/provider/table1026.pdf#page=1 - title: Utah Admin. Code R986-700-707(1) href: https://www.law.cornell.edu/regulations/utah/Utah-Admin-Code-R986-700-707 @@ -36,1242 +40,1770 @@ metadata: 1: ONE: 2020-01-01: 0 + 2026-10-01: 0 TWO: 2020-01-01: 0 + 2026-10-01: 0 THREE_PLUS: 2020-01-01: 0 + 2026-10-01: 0 2: ONE: 2020-01-01: 18 + 2026-10-01: 18 TWO: 2020-01-01: 18 + 2026-10-01: 18 THREE_PLUS: 2020-01-01: 18 + 2026-10-01: 18 3: ONE: 2020-01-01: 42 + 2026-10-01: 43 TWO: 2020-01-01: 42 + 2026-10-01: 43 THREE_PLUS: 2020-01-01: 42 + 2026-10-01: 43 4: ONE: 2020-01-01: 72 + 2026-10-01: 74 TWO: 2020-01-01: 72 + 2026-10-01: 74 THREE_PLUS: 2020-01-01: 72 + 2026-10-01: 74 5: ONE: 2020-01-01: 109 + 2026-10-01: 113 TWO: 2020-01-01: 109 + 2026-10-01: 113 THREE_PLUS: 2020-01-01: 109 + 2026-10-01: 113 6: ONE: 2020-01-01: 122 + 2026-10-01: 126 TWO: 2020-01-01: 122 + 2026-10-01: 126 THREE_PLUS: 2020-01-01: 122 + 2026-10-01: 126 7: ONE: 2020-01-01: 134 + 2026-10-01: 139 TWO: 2020-01-01: 134 + 2026-10-01: 139 THREE_PLUS: 2020-01-01: 134 + 2026-10-01: 139 8: ONE: 2020-01-01: 147 + 2026-10-01: 153 TWO: 2020-01-01: 147 + 2026-10-01: 153 THREE_PLUS: 2020-01-01: 147 + 2026-10-01: 153 9: ONE: 2020-01-01: 200 + 2026-10-01: 208 TWO: 2020-01-01: 200 + 2026-10-01: 208 THREE_PLUS: 2020-01-01: 200 + 2026-10-01: 208 10: ONE: 2020-01-01: 208 + 2026-10-01: 217 TWO: 2020-01-01: 208 + 2026-10-01: 217 THREE_PLUS: 2020-01-01: 208 + 2026-10-01: 217 11: ONE: 2020-01-01: 217 + 2026-10-01: 225 TWO: 2020-01-01: 217 + 2026-10-01: 225 THREE_PLUS: 2020-01-01: 217 + 2026-10-01: 225 12: ONE: 2020-01-01: 225 + 2026-10-01: 234 TWO: 2020-01-01: 225 + 2026-10-01: 234 THREE_PLUS: 2020-01-01: 225 + 2026-10-01: 234 13: ONE: 2020-01-01: 280 + 2026-10-01: 291 TWO: 2020-01-01: 280 + 2026-10-01: 291 THREE_PLUS: 2020-01-01: 280 + 2026-10-01: 291 14: ONE: 2020-01-01: 295 + 2026-10-01: 307 TWO: 2020-01-01: 295 + 2026-10-01: 307 THREE_PLUS: 2020-01-01: 295 + 2026-10-01: 307 15: ONE: 2020-01-01: 310 + 2026-10-01: 323 TWO: 2020-01-01: 310 + 2026-10-01: 323 THREE_PLUS: 2020-01-01: 310 + 2026-10-01: 323 16: ONE: 2020-01-01: 352 + 2026-10-01: 366 TWO: 2020-01-01: 352 + 2026-10-01: 366 THREE_PLUS: 2020-01-01: 352 + 2026-10-01: 366 3: 1: ONE: 2020-01-01: 0 + 2026-10-01: 0 TWO: 2020-01-01: 0 + 2026-10-01: 0 THREE_PLUS: 2020-01-01: 0 + 2026-10-01: 0 2: ONE: 2020-01-01: 22 + 2026-10-01: 23 TWO: 2020-01-01: 28 + 2026-10-01: 28 THREE_PLUS: 2020-01-01: 28 + 2026-10-01: 28 3: ONE: 2020-01-01: 52 + 2026-10-01: 54 TWO: 2020-01-01: 59 + 2026-10-01: 60 THREE_PLUS: 2020-01-01: 59 + 2026-10-01: 60 4: ONE: 2020-01-01: 90 + 2026-10-01: 93 TWO: 2020-01-01: 97 + 2026-10-01: 101 THREE_PLUS: 2020-01-01: 97 + 2026-10-01: 101 5: ONE: 2020-01-01: 135 + 2026-10-01: 140 TWO: 2020-01-01: 144 + 2026-10-01: 149 THREE_PLUS: 2020-01-01: 144 + 2026-10-01: 149 6: ONE: 2020-01-01: 151 + 2026-10-01: 157 TWO: 2020-01-01: 160 + 2026-10-01: 166 THREE_PLUS: 2020-01-01: 160 + 2026-10-01: 166 7: ONE: 2020-01-01: 167 + 2026-10-01: 171 TWO: 2020-01-01: 177 + 2026-10-01: 182 THREE_PLUS: 2020-01-01: 177 + 2026-10-01: 182 8: ONE: 2020-01-01: 182 + 2026-10-01: 189 TWO: 2020-01-01: 194 + 2026-10-01: 201 THREE_PLUS: 2020-01-01: 194 + 2026-10-01: 201 9: ONE: 2020-01-01: 247 + 2026-10-01: 257 TWO: 2020-01-01: 259 + 2026-10-01: 270 THREE_PLUS: 2020-01-01: 259 + 2026-10-01: 270 10: ONE: 2020-01-01: 257 + 2026-10-01: 268 TWO: 2020-01-01: 270 + 2026-10-01: 281 THREE_PLUS: 2020-01-01: 270 + 2026-10-01: 281 11: ONE: 2020-01-01: 268 + 2026-10-01: 278 TWO: 2020-01-01: 281 + 2026-10-01: 292 THREE_PLUS: 2020-01-01: 281 + 2026-10-01: 292 12: ONE: 2020-01-01: 278 + 2026-10-01: 289 TWO: 2020-01-01: 292 + 2026-10-01: 304 THREE_PLUS: 2020-01-01: 292 + 2026-10-01: 304 13: ONE: 2020-01-01: 346 + 2026-10-01: 360 TWO: 2020-01-01: 360 + 2026-10-01: 375 THREE_PLUS: 2020-01-01: 360 + 2026-10-01: 375 14: ONE: 2020-01-01: 364 + 2026-10-01: 379 TWO: 2020-01-01: 380 + 2026-10-01: 395 THREE_PLUS: 2020-01-01: 380 + 2026-10-01: 395 15: ONE: 2020-01-01: 383 + 2026-10-01: 398 TWO: 2020-01-01: 399 + 2026-10-01: 415 THREE_PLUS: 2020-01-01: 399 + 2026-10-01: 415 16: ONE: 2020-01-01: 435 + 2026-10-01: 453 TWO: 2020-01-01: 452 + 2026-10-01: 470 THREE_PLUS: 2020-01-01: 452 + 2026-10-01: 470 4: 1: ONE: 2020-01-01: 0 + 2026-10-01: 0 TWO: 2020-01-01: 0 + 2026-10-01: 0 THREE_PLUS: 2020-01-01: 0 + 2026-10-01: 0 2: ONE: 2020-01-01: 27 + 2026-10-01: 28 TWO: 2020-01-01: 33 + 2026-10-01: 34 THREE_PLUS: 2020-01-01: 40 + 2026-10-01: 41 3: ONE: 2020-01-01: 63 + 2026-10-01: 65 TWO: 2020-01-01: 71 + 2026-10-01: 73 THREE_PLUS: 2020-01-01: 78 + 2026-10-01: 81 4: ONE: 2020-01-01: 108 + 2026-10-01: 111 TWO: 2020-01-01: 117 + 2026-10-01: 121 THREE_PLUS: 2020-01-01: 126 + 2026-10-01: 130 5: ONE: 2020-01-01: 162 + 2026-10-01: 168 TWO: 2020-01-01: 172 + 2026-10-01: 178 THREE_PLUS: 2020-01-01: 182 + 2026-10-01: 189 6: ONE: 2020-01-01: 180 + 2026-10-01: 187 TWO: 2020-01-01: 192 + 2026-10-01: 199 THREE_PLUS: 2020-01-01: 203 + 2026-10-01: 210 7: ONE: 2020-01-01: 199 + 2026-10-01: 204 TWO: 2020-01-01: 211 + 2026-10-01: 217 THREE_PLUS: 2020-01-01: 224 + 2026-10-01: 230 8: ONE: 2020-01-01: 217 + 2026-10-01: 226 TWO: 2020-01-01: 231 + 2026-10-01: 240 THREE_PLUS: 2020-01-01: 244 + 2026-10-01: 254 9: ONE: 2020-01-01: 294 + 2026-10-01: 306 TWO: 2020-01-01: 309 + 2026-10-01: 321 THREE_PLUS: 2020-01-01: 324 + 2026-10-01: 337 10: ONE: 2020-01-01: 306 + 2026-10-01: 319 TWO: 2020-01-01: 322 + 2026-10-01: 335 THREE_PLUS: 2020-01-01: 337 + 2026-10-01: 351 11: ONE: 2020-01-01: 319 + 2026-10-01: 332 TWO: 2020-01-01: 335 + 2026-10-01: 348 THREE_PLUS: 2020-01-01: 351 + 2026-10-01: 365 12: ONE: 2020-01-01: 331 + 2026-10-01: 344 TWO: 2020-01-01: 347 + 2026-10-01: 361 THREE_PLUS: 2020-01-01: 364 + 2026-10-01: 379 13: ONE: 2020-01-01: 412 + 2026-10-01: 428 TWO: 2020-01-01: 429 + 2026-10-01: 446 THREE_PLUS: 2020-01-01: 446 + 2026-10-01: 464 14: ONE: 2020-01-01: 434 + 2026-10-01: 451 TWO: 2020-01-01: 452 + 2026-10-01: 470 THREE_PLUS: 2020-01-01: 470 + 2026-10-01: 489 15: ONE: 2020-01-01: 456 + 2026-10-01: 474 TWO: 2020-01-01: 475 + 2026-10-01: 494 THREE_PLUS: 2020-01-01: 494 + 2026-10-01: 514 16: ONE: 2020-01-01: 518 + 2026-10-01: 539 TWO: 2020-01-01: 538 + 2026-10-01: 559 THREE_PLUS: 2020-01-01: 558 + 2026-10-01: 580 5: 1: ONE: 2020-01-01: 0 + 2026-10-01: 0 TWO: 2020-01-01: 0 + 2026-10-01: 0 THREE_PLUS: 2020-01-01: 0 + 2026-10-01: 0 2: ONE: 2020-01-01: 31 + 2026-10-01: 32 TWO: 2020-01-01: 39 + 2026-10-01: 40 THREE_PLUS: 2020-01-01: 47 + 2026-10-01: 48 3: ONE: 2020-01-01: 73 + 2026-10-01: 76 TWO: 2020-01-01: 82 + 2026-10-01: 85 THREE_PLUS: 2020-01-01: 92 + 2026-10-01: 94 4: ONE: 2020-01-01: 126 + 2026-10-01: 130 TWO: 2020-01-01: 136 + 2026-10-01: 141 THREE_PLUS: 2020-01-01: 147 + 2026-10-01: 152 5: ONE: 2020-01-01: 189 + 2026-10-01: 195 TWO: 2020-01-01: 201 + 2026-10-01: 208 THREE_PLUS: 2020-01-01: 212 + 2026-10-01: 220 6: ONE: 2020-01-01: 210 + 2026-10-01: 218 TWO: 2020-01-01: 223 + 2026-10-01: 231 THREE_PLUS: 2020-01-01: 236 + 2026-10-01: 245 7: ONE: 2020-01-01: 231 + 2026-10-01: 237 TWO: 2020-01-01: 245 + 2026-10-01: 251 THREE_PLUS: 2020-01-01: 260 + 2026-10-01: 266 8: ONE: 2020-01-01: 252 + 2026-10-01: 262 TWO: 2020-01-01: 268 + 2026-10-01: 278 THREE_PLUS: 2020-01-01: 283 + 2026-10-01: 295 9: ONE: 2020-01-01: 341 + 2026-10-01: 355 TWO: 2020-01-01: 358 + 2026-10-01: 373 THREE_PLUS: 2020-01-01: 375 + 2026-10-01: 390 10: ONE: 2020-01-01: 355 + 2026-10-01: 370 TWO: 2020-01-01: 373 + 2026-10-01: 388 THREE_PLUS: 2020-01-01: 391 + 2026-10-01: 407 11: ONE: 2020-01-01: 370 + 2026-10-01: 385 TWO: 2020-01-01: 388 + 2026-10-01: 404 THREE_PLUS: 2020-01-01: 407 + 2026-10-01: 423 12: ONE: 2020-01-01: 384 + 2026-10-01: 399 TWO: 2020-01-01: 403 + 2026-10-01: 419 THREE_PLUS: 2020-01-01: 422 + 2026-10-01: 439 13: ONE: 2020-01-01: 478 + 2026-10-01: 497 TWO: 2020-01-01: 498 + 2026-10-01: 518 THREE_PLUS: 2020-01-01: 518 + 2026-10-01: 538 14: ONE: 2020-01-01: 503 + 2026-10-01: 524 TWO: 2020-01-01: 524 + 2026-10-01: 545 THREE_PLUS: 2020-01-01: 545 + 2026-10-01: 567 15: ONE: 2020-01-01: 529 + 2026-10-01: 550 TWO: 2020-01-01: 551 + 2026-10-01: 573 THREE_PLUS: 2020-01-01: 573 + 2026-10-01: 596 16: ONE: 2020-01-01: 601 + 2026-10-01: 625 TWO: 2020-01-01: 624 + 2026-10-01: 649 THREE_PLUS: 2020-01-01: 647 + 2026-10-01: 673 6: 1: ONE: 2020-01-01: 0 + 2026-10-01: 0 TWO: 2020-01-01: 0 + 2026-10-01: 0 THREE_PLUS: 2020-01-01: 0 + 2026-10-01: 0 2: ONE: 2020-01-01: 36 + 2026-10-01: 37 TWO: 2020-01-01: 45 + 2026-10-01: 46 THREE_PLUS: 2020-01-01: 54 + 2026-10-01: 55 3: ONE: 2020-01-01: 84 + 2026-10-01: 86 TWO: 2020-01-01: 94 + 2026-10-01: 97 THREE_PLUS: 2020-01-01: 105 + 2026-10-01: 108 4: ONE: 2020-01-01: 144 + 2026-10-01: 148 TWO: 2020-01-01: 156 + 2026-10-01: 161 THREE_PLUS: 2020-01-01: 168 + 2026-10-01: 173 5: ONE: 2020-01-01: 215 + 2026-10-01: 223 TWO: 2020-01-01: 229 + 2026-10-01: 237 THREE_PLUS: 2020-01-01: 242 + 2026-10-01: 251 6: ONE: 2020-01-01: 239 + 2026-10-01: 248 TWO: 2020-01-01: 254 + 2026-10-01: 264 THREE_PLUS: 2020-01-01: 269 + 2026-10-01: 279 7: ONE: 2020-01-01: 263 + 2026-10-01: 269 TWO: 2020-01-01: 279 + 2026-10-01: 286 THREE_PLUS: 2020-01-01: 296 + 2026-10-01: 303 8: ONE: 2020-01-01: 287 + 2026-10-01: 298 TWO: 2020-01-01: 305 + 2026-10-01: 317 THREE_PLUS: 2020-01-01: 323 + 2026-10-01: 335 9: ONE: 2020-01-01: 388 + 2026-10-01: 404 TWO: 2020-01-01: 408 + 2026-10-01: 424 THREE_PLUS: 2020-01-01: 427 + 2026-10-01: 444 10: ONE: 2020-01-01: 404 + 2026-10-01: 421 TWO: 2020-01-01: 425 + 2026-10-01: 442 THREE_PLUS: 2020-01-01: 445 + 2026-10-01: 463 11: ONE: 2020-01-01: 421 + 2026-10-01: 438 TWO: 2020-01-01: 442 + 2026-10-01: 459 THREE_PLUS: 2020-01-01: 463 + 2026-10-01: 481 12: ONE: 2020-01-01: 437 + 2026-10-01: 454 TWO: 2020-01-01: 459 + 2026-10-01: 477 THREE_PLUS: 2020-01-01: 481 + 2026-10-01: 500 13: ONE: 2020-01-01: 544 + 2026-10-01: 566 TWO: 2020-01-01: 566 + 2026-10-01: 589 THREE_PLUS: 2020-01-01: 589 + 2026-10-01: 613 14: ONE: 2020-01-01: 573 + 2026-10-01: 596 TWO: 2020-01-01: 597 + 2026-10-01: 621 THREE_PLUS: 2020-01-01: 620 + 2026-10-01: 645 15: ONE: 2020-01-01: 602 + 2026-10-01: 626 TWO: 2020-01-01: 627 + 2026-10-01: 652 THREE_PLUS: 2020-01-01: 652 + 2026-10-01: 678 16: ONE: 2020-01-01: 684 + 2026-10-01: 711 TWO: 2020-01-01: 710 + 2026-10-01: 738 THREE_PLUS: 2020-01-01: 736 + 2026-10-01: 766 7: 1: ONE: 2020-01-01: 0 + 2026-10-01: 0 TWO: 2020-01-01: 0 + 2026-10-01: 0 THREE_PLUS: 2020-01-01: 0 + 2026-10-01: 0 2: ONE: 2020-01-01: 41 + 2026-10-01: 42 TWO: 2020-01-01: 51 + 2026-10-01: 52 THREE_PLUS: 2020-01-01: 61 + 2026-10-01: 63 3: ONE: 2020-01-01: 92 + 2026-10-01: 95 TWO: 2020-01-01: 104 + 2026-10-01: 107 THREE_PLUS: 2020-01-01: 115 + 2026-10-01: 119 4: ONE: 2020-01-01: 155 + 2026-10-01: 160 TWO: 2020-01-01: 168 + 2026-10-01: 174 THREE_PLUS: 2020-01-01: 181 + 2026-10-01: 187 5: ONE: 2020-01-01: 229 + 2026-10-01: 237 TWO: 2020-01-01: 243 + 2026-10-01: 252 THREE_PLUS: 2020-01-01: 257 + 2026-10-01: 267 6: ONE: 2020-01-01: 251 + 2026-10-01: 260 TWO: 2020-01-01: 267 + 2026-10-01: 277 THREE_PLUS: 2020-01-01: 282 + 2026-10-01: 293 7: ONE: 2020-01-01: 273 + 2026-10-01: 275 TWO: 2020-01-01: 290 + 2026-10-01: 293 THREE_PLUS: 2020-01-01: 307 + 2026-10-01: 310 8: ONE: 2020-01-01: 295 + 2026-10-01: 307 TWO: 2020-01-01: 314 + 2026-10-01: 326 THREE_PLUS: 2020-01-01: 332 + 2026-10-01: 346 9: ONE: 2020-01-01: 397 + 2026-10-01: 413 TWO: 2020-01-01: 417 + 2026-10-01: 434 THREE_PLUS: 2020-01-01: 437 + 2026-10-01: 454 10: ONE: 2020-01-01: 414 + 2026-10-01: 430 TWO: 2020-01-01: 434 + 2026-10-01: 452 THREE_PLUS: 2020-01-01: 455 + 2026-10-01: 473 11: ONE: 2020-01-01: 430 + 2026-10-01: 448 TWO: 2020-01-01: 452 + 2026-10-01: 470 THREE_PLUS: 2020-01-01: 473 + 2026-10-01: 492 12: ONE: 2020-01-01: 447 + 2026-10-01: 465 TWO: 2020-01-01: 469 + 2026-10-01: 488 THREE_PLUS: 2020-01-01: 491 + 2026-10-01: 511 13: ONE: 2020-01-01: 556 + 2026-10-01: 578 TWO: 2020-01-01: 579 + 2026-10-01: 602 THREE_PLUS: 2020-01-01: 602 + 2026-10-01: 627 14: ONE: 2020-01-01: 586 + 2026-10-01: 609 TWO: 2020-01-01: 610 + 2026-10-01: 635 THREE_PLUS: 2020-01-01: 635 + 2026-10-01: 660 15: ONE: 2020-01-01: 616 + 2026-10-01: 640 TWO: 2020-01-01: 641 + 2026-10-01: 667 THREE_PLUS: 2020-01-01: 667 + 2026-10-01: 694 16: ONE: 2020-01-01: 699 + 2026-10-01: 727 TWO: 2020-01-01: 726 + 2026-10-01: 755 THREE_PLUS: 2020-01-01: 753 + 2026-10-01: 783 8: 1: ONE: 2020-01-01: 0 + 2026-10-01: 0 TWO: 2020-01-01: 0 + 2026-10-01: 0 THREE_PLUS: 2020-01-01: 0 + 2026-10-01: 0 2: ONE: 2020-01-01: 45 + 2026-10-01: 46 TWO: 2020-01-01: 56 + 2026-10-01: 58 THREE_PLUS: 2020-01-01: 68 + 2026-10-01: 70 3: ONE: 2020-01-01: 101 + 2026-10-01: 104 TWO: 2020-01-01: 113 + 2026-10-01: 117 THREE_PLUS: 2020-01-01: 126 + 2026-10-01: 130 4: ONE: 2020-01-01: 166 + 2026-10-01: 172 TWO: 2020-01-01: 180 + 2026-10-01: 186 THREE_PLUS: 2020-01-01: 194 + 2026-10-01: 201 5: ONE: 2020-01-01: 242 + 2026-10-01: 251 TWO: 2020-01-01: 257 + 2026-10-01: 267 THREE_PLUS: 2020-01-01: 273 + 2026-10-01: 282 6: ONE: 2020-01-01: 263 + 2026-10-01: 273 TWO: 2020-01-01: 279 + 2026-10-01: 290 THREE_PLUS: 2020-01-01: 296 + 2026-10-01: 307 7: ONE: 2020-01-01: 284 + 2026-10-01: 282 TWO: 2020-01-01: 301 + 2026-10-01: 299 THREE_PLUS: 2020-01-01: 319 + 2026-10-01: 317 8: ONE: 2020-01-01: 304 + 2026-10-01: 316 TWO: 2020-01-01: 323 + 2026-10-01: 336 THREE_PLUS: 2020-01-01: 342 + 2026-10-01: 356 9: ONE: 2020-01-01: 406 + 2026-10-01: 422 TWO: 2020-01-01: 426 + 2026-10-01: 443 THREE_PLUS: 2020-01-01: 447 + 2026-10-01: 465 10: ONE: 2020-01-01: 423 + 2026-10-01: 440 TWO: 2020-01-01: 444 + 2026-10-01: 462 THREE_PLUS: 2020-01-01: 465 + 2026-10-01: 484 11: ONE: 2020-01-01: 440 + 2026-10-01: 457 TWO: 2020-01-01: 462 + 2026-10-01: 480 THREE_PLUS: 2020-01-01: 484 + 2026-10-01: 503 12: ONE: 2020-01-01: 457 + 2026-10-01: 475 TWO: 2020-01-01: 480 + 2026-10-01: 499 THREE_PLUS: 2020-01-01: 502 + 2026-10-01: 523 13: ONE: 2020-01-01: 568 + 2026-10-01: 591 TWO: 2020-01-01: 592 + 2026-10-01: 616 THREE_PLUS: 2020-01-01: 616 + 2026-10-01: 640 14: ONE: 2020-01-01: 599 + 2026-10-01: 623 TWO: 2020-01-01: 624 + 2026-10-01: 649 THREE_PLUS: 2020-01-01: 649 + 2026-10-01: 675 15: ONE: 2020-01-01: 629 + 2026-10-01: 655 TWO: 2020-01-01: 655 + 2026-10-01: 682 THREE_PLUS: 2020-01-01: 682 + 2026-10-01: 709 16: ONE: 2020-01-01: 715 + 2026-10-01: 743 TWO: 2020-01-01: 742 + 2026-10-01: 772 THREE_PLUS: 2020-01-01: 770 + 2026-10-01: 801 9: 1: ONE: 2020-01-01: 0 + 2026-10-01: 0 TWO: 2020-01-01: 0 + 2026-10-01: 0 THREE_PLUS: 2020-01-01: 0 + 2026-10-01: 0 2: ONE: 2020-01-01: 50 + 2026-10-01: 51 TWO: 2020-01-01: 62 + 2026-10-01: 64 THREE_PLUS: 2020-01-01: 75 + 2026-10-01: 77 3: ONE: 2020-01-01: 109 + 2026-10-01: 112 TWO: 2020-01-01: 123 + 2026-10-01: 126 THREE_PLUS: 2020-01-01: 136 + 2026-10-01: 140 4: ONE: 2020-01-01: 178 + 2026-10-01: 184 TWO: 2020-01-01: 192 + 2026-10-01: 199 THREE_PLUS: 2020-01-01: 207 + 2026-10-01: 214 5: ONE: 2020-01-01: 256 + 2026-10-01: 265 TWO: 2020-01-01: 272 + 2026-10-01: 281 THREE_PLUS: 2020-01-01: 288 + 2026-10-01: 298 6: ONE: 2020-01-01: 275 + 2026-10-01: 285 TWO: 2020-01-01: 292 + 2026-10-01: 303 THREE_PLUS: 2020-01-01: 309 + 2026-10-01: 321 7: ONE: 2020-01-01: 294 + 2026-10-01: 288 TWO: 2020-01-01: 312 + 2026-10-01: 306 THREE_PLUS: 2020-01-01: 331 + 2026-10-01: 324 8: ONE: 2020-01-01: 313 + 2026-10-01: 325 TWO: 2020-01-01: 332 + 2026-10-01: 345 THREE_PLUS: 2020-01-01: 352 + 2026-10-01: 366 9: ONE: 2020-01-01: 415 + 2026-10-01: 431 TWO: 2020-01-01: 436 + 2026-10-01: 453 THREE_PLUS: 2020-01-01: 456 + 2026-10-01: 475 10: ONE: 2020-01-01: 432 + 2026-10-01: 449 TWO: 2020-01-01: 454 + 2026-10-01: 472 THREE_PLUS: 2020-01-01: 475 + 2026-10-01: 494 11: ONE: 2020-01-01: 449 + 2026-10-01: 467 TWO: 2020-01-01: 472 + 2026-10-01: 491 THREE_PLUS: 2020-01-01: 494 + 2026-10-01: 514 12: ONE: 2020-01-01: 467 + 2026-10-01: 485 TWO: 2020-01-01: 490 + 2026-10-01: 510 THREE_PLUS: 2020-01-01: 513 + 2026-10-01: 534 13: ONE: 2020-01-01: 581 + 2026-10-01: 604 TWO: 2020-01-01: 605 + 2026-10-01: 629 THREE_PLUS: 2020-01-01: 629 + 2026-10-01: 654 14: ONE: 2020-01-01: 612 + 2026-10-01: 636 TWO: 2020-01-01: 637 + 2026-10-01: 663 THREE_PLUS: 2020-01-01: 663 + 2026-10-01: 689 15: ONE: 2020-01-01: 643 + 2026-10-01: 669 TWO: 2020-01-01: 670 + 2026-10-01: 697 THREE_PLUS: 2020-01-01: 696 + 2026-10-01: 725 16: ONE: 2020-01-01: 730 + 2026-10-01: 760 TWO: 2020-01-01: 758 + 2026-10-01: 789 THREE_PLUS: 2020-01-01: 786 + 2026-10-01: 818 10: 1: ONE: 2020-01-01: 0 + 2026-10-01: 0 TWO: 2020-01-01: 0 + 2026-10-01: 0 THREE_PLUS: 2020-01-01: 0 + 2026-10-01: 0 2: ONE: 2020-01-01: 54 + 2026-10-01: 56 TWO: 2020-01-01: 68 + 2026-10-01: 70 THREE_PLUS: 2020-01-01: 81 + 2026-10-01: 84 3: ONE: 2020-01-01: 117 + 2026-10-01: 131 TWO: 2020-01-01: 132 + 2026-10-01: 147 THREE_PLUS: 2020-01-01: 147 + 2026-10-01: 163 4: ONE: 2020-01-01: 189 + 2026-10-01: 202 TWO: 2020-01-01: 205 + 2026-10-01: 219 THREE_PLUS: 2020-01-01: 220 + 2026-10-01: 236 5: ONE: 2020-01-01: 269 + 2026-10-01: 278 TWO: 2020-01-01: 286 + 2026-10-01: 295 THREE_PLUS: 2020-01-01: 303 + 2026-10-01: 312 6: ONE: 2020-01-01: 287 + 2026-10-01: 286 TWO: 2020-01-01: 305 + 2026-10-01: 304 THREE_PLUS: 2020-01-01: 323 + 2026-10-01: 321 7: ONE: 2020-01-01: 304 + 2026-10-01: 294 TWO: 2020-01-01: 323 + 2026-10-01: 312 THREE_PLUS: 2020-01-01: 342 + 2026-10-01: 330 8: ONE: 2020-01-01: 321 + 2026-10-01: 334 TWO: 2020-01-01: 342 + 2026-10-01: 355 THREE_PLUS: 2020-01-01: 362 + 2026-10-01: 376 9: ONE: 2020-01-01: 424 + 2026-10-01: 441 TWO: 2020-01-01: 445 + 2026-10-01: 463 THREE_PLUS: 2020-01-01: 466 + 2026-10-01: 485 10: ONE: 2020-01-01: 441 + 2026-10-01: 459 TWO: 2020-01-01: 463 + 2026-10-01: 482 THREE_PLUS: 2020-01-01: 485 + 2026-10-01: 505 11: ONE: 2020-01-01: 459 + 2026-10-01: 477 TWO: 2020-01-01: 482 + 2026-10-01: 501 THREE_PLUS: 2020-01-01: 505 + 2026-10-01: 525 12: ONE: 2020-01-01: 477 + 2026-10-01: 496 TWO: 2020-01-01: 500 + 2026-10-01: 521 THREE_PLUS: 2020-01-01: 524 + 2026-10-01: 545 13: ONE: 2020-01-01: 593 + 2026-10-01: 617 TWO: 2020-01-01: 618 + 2026-10-01: 643 THREE_PLUS: 2020-01-01: 642 + 2026-10-01: 668 14: ONE: 2020-01-01: 625 + 2026-10-01: 650 TWO: 2020-01-01: 651 + 2026-10-01: 677 THREE_PLUS: 2020-01-01: 677 + 2026-10-01: 704 15: ONE: 2020-01-01: 657 + 2026-10-01: 683 TWO: 2020-01-01: 684 + 2026-10-01: 711 THREE_PLUS: 2020-01-01: 711 + 2026-10-01: 740 16: ONE: 2020-01-01: 746 + 2026-10-01: 776 TWO: 2020-01-01: 774 + 2026-10-01: 806 THREE_PLUS: 2020-01-01: 803 + 2026-10-01: 835 11: 1: ONE: 2020-01-01: 0 + 2026-10-01: 0 TWO: 2020-01-01: 0 + 2026-10-01: 0 THREE_PLUS: 2020-01-01: 0 + 2026-10-01: 0 2: ONE: 2020-01-01: 59 + 2026-10-01: 61 TWO: 2020-01-01: 74 + 2026-10-01: 76 THREE_PLUS: 2020-01-01: 88 + 2026-10-01: 91 3: ONE: 2020-01-01: 126 + 2026-10-01: 134 TWO: 2020-01-01: 141 + 2026-10-01: 150 THREE_PLUS: 2020-01-01: 157 + 2026-10-01: 167 4: ONE: 2020-01-01: 200 + 2026-10-01: 206 TWO: 2020-01-01: 217 + 2026-10-01: 224 THREE_PLUS: 2020-01-01: 234 + 2026-10-01: 241 5: ONE: 2020-01-01: 283 + 2026-10-01: 283 TWO: 2020-01-01: 301 + 2026-10-01: 301 THREE_PLUS: 2020-01-01: 318 + 2026-10-01: 319 6: ONE: 2020-01-01: 299 + 2026-10-01: 292 TWO: 2020-01-01: 317 + 2026-10-01: 310 THREE_PLUS: 2020-01-01: 336 + 2026-10-01: 328 7: ONE: 2020-01-01: 314 + 2026-10-01: 300 TWO: 2020-01-01: 334 + 2026-10-01: 319 THREE_PLUS: 2020-01-01: 354 + 2026-10-01: 337 8: ONE: 2020-01-01: 330 + 2026-10-01: 343 TWO: 2020-01-01: 351 + 2026-10-01: 365 THREE_PLUS: 2020-01-01: 371 + 2026-10-01: 386 9: ONE: 2020-01-01: 432 + 2026-10-01: 450 TWO: 2020-01-01: 454 + 2026-10-01: 472 THREE_PLUS: 2020-01-01: 476 + 2026-10-01: 495 10: ONE: 2020-01-01: 450 + 2026-10-01: 469 TWO: 2020-01-01: 473 + 2026-10-01: 492 THREE_PLUS: 2020-01-01: 495 + 2026-10-01: 515 11: ONE: 2020-01-01: 468 + 2026-10-01: 487 TWO: 2020-01-01: 492 + 2026-10-01: 512 THREE_PLUS: 2020-01-01: 515 + 2026-10-01: 536 12: ONE: 2020-01-01: 486 + 2026-10-01: 506 TWO: 2020-01-01: 511 + 2026-10-01: 531 THREE_PLUS: 2020-01-01: 535 + 2026-10-01: 557 13: ONE: 2020-01-01: 605 + 2026-10-01: 630 TWO: 2020-01-01: 631 + 2026-10-01: 656 THREE_PLUS: 2020-01-01: 656 + 2026-10-01: 682 14: ONE: 2020-01-01: 638 + 2026-10-01: 664 TWO: 2020-01-01: 664 + 2026-10-01: 691 THREE_PLUS: 2020-01-01: 691 + 2026-10-01: 719 15: ONE: 2020-01-01: 670 + 2026-10-01: 697 TWO: 2020-01-01: 698 + 2026-10-01: 726 THREE_PLUS: 2020-01-01: 726 + 2026-10-01: 755 16: ONE: 2020-01-01: 761 + 2026-10-01: 792 TWO: 2020-01-01: 791 + 2026-10-01: 822 THREE_PLUS: 2020-01-01: 820 + 2026-10-01: 853 12: 1: ONE: 2020-01-01: 0 + 2026-10-01: 0 TWO: 2020-01-01: 0 + 2026-10-01: 0 THREE_PLUS: 2020-01-01: 0 + 2026-10-01: 0 2: ONE: 2020-01-01: 63 + 2026-10-01: 65 TWO: 2020-01-01: 79 + 2026-10-01: 82 THREE_PLUS: 2020-01-01: 95 + 2026-10-01: 98 3: ONE: 2020-01-01: 134 + 2026-10-01: 136 TWO: 2020-01-01: 151 + 2026-10-01: 153 THREE_PLUS: 2020-01-01: 168 + 2026-10-01: 170 4: ONE: 2020-01-01: 212 + 2026-10-01: 211 TWO: 2020-01-01: 229 + 2026-10-01: 228 THREE_PLUS: 2020-01-01: 247 + 2026-10-01: 246 5: ONE: 2020-01-01: 296 + 2026-10-01: 289 TWO: 2020-01-01: 315 + 2026-10-01: 307 THREE_PLUS: 2020-01-01: 333 + 2026-10-01: 325 6: ONE: 2020-01-01: 311 + 2026-10-01: 298 TWO: 2020-01-01: 330 + 2026-10-01: 316 THREE_PLUS: 2020-01-01: 349 + 2026-10-01: 335 7: ONE: 2020-01-01: 325 + 2026-10-01: 306 TWO: 2020-01-01: 345 + 2026-10-01: 325 THREE_PLUS: 2020-01-01: 365 + 2026-10-01: 344 8: ONE: 2020-01-01: 339 + 2026-10-01: 352 TWO: 2020-01-01: 360 + 2026-10-01: 374 THREE_PLUS: 2020-01-01: 381 + 2026-10-01: 396 9: ONE: 2020-01-01: 441 + 2026-10-01: 459 TWO: 2020-01-01: 463 + 2026-10-01: 482 THREE_PLUS: 2020-01-01: 485 + 2026-10-01: 505 10: ONE: 2020-01-01: 460 + 2026-10-01: 478 TWO: 2020-01-01: 483 + 2026-10-01: 502 THREE_PLUS: 2020-01-01: 506 + 2026-10-01: 526 11: ONE: 2020-01-01: 478 + 2026-10-01: 497 TWO: 2020-01-01: 502 + 2026-10-01: 522 THREE_PLUS: 2020-01-01: 526 + 2026-10-01: 547 12: ONE: 2020-01-01: 496 + 2026-10-01: 516 TWO: 2020-01-01: 521 + 2026-10-01: 542 THREE_PLUS: 2020-01-01: 546 + 2026-10-01: 568 13: ONE: 2020-01-01: 618 + 2026-10-01: 643 TWO: 2020-01-01: 643 + 2026-10-01: 669 THREE_PLUS: 2020-01-01: 669 + 2026-10-01: 696 14: ONE: 2020-01-01: 651 + 2026-10-01: 677 TWO: 2020-01-01: 678 + 2026-10-01: 705 THREE_PLUS: 2020-01-01: 705 + 2026-10-01: 733 15: ONE: 2020-01-01: 684 + 2026-10-01: 711 TWO: 2020-01-01: 712 + 2026-10-01: 741 THREE_PLUS: 2020-01-01: 741 + 2026-10-01: 771 16: ONE: 2020-01-01: 777 + 2026-10-01: 808 TWO: 2020-01-01: 807 + 2026-10-01: 839 THREE_PLUS: 2020-01-01: 837 + 2026-10-01: 870 diff --git a/policyengine_us/parameters/gov/states/ut/dwf/ccap/copay/income_limits.yaml b/policyengine_us/parameters/gov/states/ut/dwf/ccap/copay/income_limits.yaml index f1e3e7b494d..1fc25f4bc2a 100644 --- a/policyengine_us/parameters/gov/states/ut/dwf/ccap/copay/income_limits.yaml +++ b/policyengine_us/parameters/gov/states/ut/dwf/ccap/copay/income_limits.yaml @@ -1,18 +1,31 @@ description: Utah sets these monthly countable income upper limits for each copayment income group under the Child Care Assistance program. -# Table 4, effective April 1, 2026. The 2020 entry is placed at +# Table 4. The 2020-01-01 entry holds the April 1, 2026 edition at # PolicyEngine's backdating floor; earlier editions of Table 4 are not -# encoded, so prior periods use this table as an approximation. +# encoded, so prior periods use that table as an approximation. The +# 2026-10-01 entry holds the October 1, 2026 edition. # # Each value is the inclusive upper bound of a countable income group; # income above a group's upper bound falls in the next group. Household # sizes run from 2 (the smallest possible unit, one parent and one child) # through 12, where the size 12 column covers households of 12 or more. # Group 16 is the maximum income range to qualify for child care -# assistance (85% of the state median income). The published lower bound -# of household size 5 group 3 reads 3,644.01, an apparent typo for -# 3,664.01, since the size 5 group 2 upper bound is 3,664; only upper -# bounds are encoded here. +# assistance (85% of the state median income). The April 2026 edition's +# published lower bound of household size 5 group 3 reads 3,644.01, an +# apparent typo for 3,664.01, since the size 5 group 2 upper bound is +# 3,664; only upper bounds are encoded here (the October 2026 edition +# similarly prints the size 6 group 16 range as 10,940-11,445, omitting +# the usual .01 lower-bound offset). The October 2026 size 10 group 16 +# bound is encoded as published (12,846), although the uniform steps of +# the surrounding sizes (size 9: 12,225, size 11: 12,746, size 12: +# 13,006) suggest 12,486 was intended; the group 16 bound only separates +# group 15 from group 16 in ut_ccap_income_group, so the discrepancy has +# no behavioral effect. +# +# The October 2026 edition also introduces entry and exit eligibility +# thresholds (entry at group 6 for applications, exit at group 10 for +# reviews, and open child care at group 16 between review cycles); that +# structure is not yet modeled in ut_ccap_income_eligible. metadata: unit: currency-USD period: month @@ -26,369 +39,547 @@ metadata: reference: - title: Utah DWS Table 4 - Child Care Income Eligibility and Co-Payment (effective April 1, 2026) href: https://jobs.utah.gov/Infosource/eligibilitymanual/Tables,_Appendicies,_and_Charts/Tables,_Appendicies,_and_Charts/Table_4_-_Child_Care_Income_Eligibility_and_Co-Payment.htm + - title: Utah DWS Table 4 - Child Care Income Eligibility and Co-Payment (effective October 1, 2026) + href: https://jobs.utah.gov/occ/provider/table1026.pdf#page=1 - title: Utah Admin. Code R986-700-710(6)(d) href: https://www.law.cornell.edu/regulations/utah/Utah-Admin-Code-R986-700-710 2: 1: 2020-01-01: 1_763 + 2026-10-01: 1_803 2: 2020-01-01: 2_082 + 2026-10-01: 2_140 3: 2020-01-01: 2_402 + 2026-10-01: 2_477 4: 2020-01-01: 2_722 + 2026-10-01: 2_814 5: 2020-01-01: 3_041 + 2026-10-01: 3_151 6: 2020-01-01: 3_361 + 2026-10-01: 3_468 7: 2020-01-01: 3_681 + 2026-10-01: 3_825 8: 2020-01-01: 4_001 + 2026-10-01: 4_162 9: 2020-01-01: 4_167 + 2026-10-01: 4_335 10: 2020-01-01: 4_334 + 2026-10-01: 4_509 11: 2020-01-01: 4_501 + 2026-10-01: 4_682 12: 2020-01-01: 4_667 + 2026-10-01: 4_855 13: 2020-01-01: 4_918 + 2026-10-01: 5_116 14: 2020-01-01: 5_168 + 2026-10-01: 5_376 15: 2020-01-01: 5_418 + 2026-10-01: 5_636 16: 2020-01-01: 5_668 + 2026-10-01: 5_896 3: 1: 2020-01-01: 2_221 + 2026-10-01: 2_277 2: 2020-01-01: 2_610 + 2026-10-01: 2_686 3: 2020-01-01: 2_998 + 2026-10-01: 3_095 4: 2020-01-01: 3_387 + 2026-10-01: 3_504 5: 2020-01-01: 3_776 + 2026-10-01: 3_913 6: 2020-01-01: 4_165 + 2026-10-01: 4_284 7: 2020-01-01: 4_553 + 2026-10-01: 4_732 8: 2020-01-01: 4_942 + 2026-10-01: 5_141 9: 2020-01-01: 5_148 + 2026-10-01: 5_355 10: 2020-01-01: 5_354 + 2026-10-01: 5_570 11: 2020-01-01: 5_560 + 2026-10-01: 5_784 12: 2020-01-01: 5_766 + 2026-10-01: 5_998 13: 2020-01-01: 6_075 + 2026-10-01: 6_319 14: 2020-01-01: 6_383 + 2026-10-01: 6_641 15: 2020-01-01: 6_692 + 2026-10-01: 6_962 16: 2020-01-01: 7_001 + 2026-10-01: 7_283 4: 1: 2020-01-01: 2_679 + 2026-10-01: 2_750 2: 2020-01-01: 3_137 + 2026-10-01: 3_231 3: 2020-01-01: 3_595 + 2026-10-01: 3_713 4: 2020-01-01: 4_052 + 2026-10-01: 4_194 5: 2020-01-01: 4_510 + 2026-10-01: 4_676 6: 2020-01-01: 4_968 + 2026-10-01: 5_100 7: 2020-01-01: 5_426 + 2026-10-01: 5_639 8: 2020-01-01: 5_883 + 2026-10-01: 6_120 9: 2020-01-01: 6_128 + 2026-10-01: 6_375 10: 2020-01-01: 6_374 + 2026-10-01: 6_630 11: 2020-01-01: 6_619 + 2026-10-01: 6_885 12: 2020-01-01: 6_864 + 2026-10-01: 7_140 13: 2020-01-01: 7_232 + 2026-10-01: 7_523 14: 2020-01-01: 7_599 + 2026-10-01: 7_905 15: 2020-01-01: 7_967 + 2026-10-01: 8_288 16: 2020-01-01: 8_335 + 2026-10-01: 8_670 5: 1: 2020-01-01: 3_138 + 2026-10-01: 3_223 2: 2020-01-01: 3_664 + 2026-10-01: 3_777 3: 2020-01-01: 4_191 + 2026-10-01: 4_331 4: 2020-01-01: 4_718 + 2026-10-01: 4_885 5: 2020-01-01: 5_244 + 2026-10-01: 5_438 6: 2020-01-01: 5_771 + 2026-10-01: 5_916 7: 2020-01-01: 6_298 + 2026-10-01: 6_546 8: 2020-01-01: 6_825 + 2026-10-01: 7_100 9: 2020-01-01: 7_109 + 2026-10-01: 7_395 10: 2020-01-01: 7_393 + 2026-10-01: 7_691 11: 2020-01-01: 7_678 + 2026-10-01: 7_987 12: 2020-01-01: 7_962 + 2026-10-01: 8_283 13: 2020-01-01: 8_389 + 2026-10-01: 8_727 14: 2020-01-01: 8_815 + 2026-10-01: 9_170 15: 2020-01-01: 9_242 + 2026-10-01: 9_614 16: 2020-01-01: 9_668 + 2026-10-01: 10_058 6: 1: 2020-01-01: 3_596 + 2026-10-01: 3_697 2: 2020-01-01: 4_192 + 2026-10-01: 4_323 3: 2020-01-01: 4_787 + 2026-10-01: 4_949 4: 2020-01-01: 5_383 + 2026-10-01: 5_575 5: 2020-01-01: 5_979 + 2026-10-01: 6_201 6: 2020-01-01: 6_575 + 2026-10-01: 6_732 7: 2020-01-01: 7_170 + 2026-10-01: 7_453 8: 2020-01-01: 7_766 + 2026-10-01: 8_079 9: 2020-01-01: 8_090 + 2026-10-01: 8_415 10: 2020-01-01: 8_413 + 2026-10-01: 8_752 11: 2020-01-01: 8_737 + 2026-10-01: 9_089 12: 2020-01-01: 9_060 + 2026-10-01: 9_425 13: 2020-01-01: 9_546 + 2026-10-01: 9_930 14: 2020-01-01: 10_031 + 2026-10-01: 10_435 15: 2020-01-01: 10_516 + 2026-10-01: 10_940 16: 2020-01-01: 11_002 + 2026-10-01: 11_445 7: 1: 2020-01-01: 4_054 + 2026-10-01: 4_170 2: 2020-01-01: 4_610 + 2026-10-01: 4_755 3: 2020-01-01: 5_165 + 2026-10-01: 5_339 4: 2020-01-01: 5_721 + 2026-10-01: 5_924 5: 2020-01-01: 6_276 + 2026-10-01: 6_509 6: 2020-01-01: 6_832 + 2026-10-01: 6_885 7: 2020-01-01: 7_387 + 2026-10-01: 7_678 8: 2020-01-01: 7_943 + 2026-10-01: 8_262 9: 2020-01-01: 8_273 + 2026-10-01: 8_607 10: 2020-01-01: 8_604 + 2026-10-01: 8_951 11: 2020-01-01: 8_935 + 2026-10-01: 9_295 12: 2020-01-01: 9_266 + 2026-10-01: 9_640 13: 2020-01-01: 9_763 + 2026-10-01: 10_156 14: 2020-01-01: 10_259 + 2026-10-01: 10_672 15: 2020-01-01: 10_755 + 2026-10-01: 11_189 16: 2020-01-01: 11_252 + 2026-10-01: 11_705 8: 1: 2020-01-01: 4_513 + 2026-10-01: 4_643 2: 2020-01-01: 5_028 + 2026-10-01: 5_187 3: 2020-01-01: 5_543 + 2026-10-01: 5_730 4: 2020-01-01: 6_058 + 2026-10-01: 6_273 5: 2020-01-01: 6_573 + 2026-10-01: 6_816 6: 2020-01-01: 7_089 + 2026-10-01: 7_038 7: 2020-01-01: 7_604 + 2026-10-01: 7_903 8: 2020-01-01: 8_119 + 2026-10-01: 8_446 9: 2020-01-01: 8_457 + 2026-10-01: 8_798 10: 2020-01-01: 8_796 + 2026-10-01: 9_150 11: 2020-01-01: 9_134 + 2026-10-01: 9_502 12: 2020-01-01: 9_472 + 2026-10-01: 9_854 13: 2020-01-01: 9_980 + 2026-10-01: 10_382 14: 2020-01-01: 10_487 + 2026-10-01: 10_910 15: 2020-01-01: 10_995 + 2026-10-01: 11_437 16: 2020-01-01: 11_502 + 2026-10-01: 11_965 9: 1: 2020-01-01: 4_971 + 2026-10-01: 5_117 2: 2020-01-01: 5_446 + 2026-10-01: 5_619 3: 2020-01-01: 5_921 + 2026-10-01: 6_120 4: 2020-01-01: 6_396 + 2026-10-01: 6_622 5: 2020-01-01: 6_871 + 2026-10-01: 7_124 6: 2020-01-01: 7_346 + 2026-10-01: 7_191 7: 2020-01-01: 7_821 + 2026-10-01: 8_128 8: 2020-01-01: 8_296 + 2026-10-01: 8_630 9: 2020-01-01: 8_641 + 2026-10-01: 8_989 10: 2020-01-01: 8_987 + 2026-10-01: 9_349 11: 2020-01-01: 9_332 + 2026-10-01: 9_708 12: 2020-01-01: 9_678 + 2026-10-01: 10_068 13: 2020-01-01: 10_197 + 2026-10-01: 10_607 14: 2020-01-01: 10_715 + 2026-10-01: 11_147 15: 2020-01-01: 11_234 + 2026-10-01: 11_686 16: 2020-01-01: 11_752 + 2026-10-01: 12_225 10: 1: 2020-01-01: 5_429 + 2026-10-01: 5_590 2: 2020-01-01: 5_864 + 2026-10-01: 6_539 3: 2020-01-01: 6_299 + 2026-10-01: 6_740 4: 2020-01-01: 6_733 + 2026-10-01: 6_941 5: 2020-01-01: 7_168 + 2026-10-01: 7_143 6: 2020-01-01: 7_603 + 2026-10-01: 7_344 7: 2020-01-01: 8_037 + 2026-10-01: 8_353 8: 2020-01-01: 8_472 + 2026-10-01: 8_813 9: 2020-01-01: 8_825 + 2026-10-01: 9_181 10: 2020-01-01: 9_178 + 2026-10-01: 9_548 11: 2020-01-01: 9_531 + 2026-10-01: 9_915 12: 2020-01-01: 9_884 + 2026-10-01: 10_282 13: 2020-01-01: 10_414 + 2026-10-01: 10_833 14: 2020-01-01: 10_943 + 2026-10-01: 11_384 15: 2020-01-01: 11_473 + 2026-10-01: 11_935 16: 2020-01-01: 12_002 + 2026-10-01: 12_846 11: 1: 2020-01-01: 5_888 + 2026-10-01: 6_063 2: 2020-01-01: 6_282 + 2026-10-01: 6_675 3: 2020-01-01: 6_676 + 2026-10-01: 6_881 4: 2020-01-01: 7_071 + 2026-10-01: 7_086 5: 2020-01-01: 7_465 + 2026-10-01: 7_292 6: 2020-01-01: 7_860 + 2026-10-01: 7_497 7: 2020-01-01: 8_254 + 2026-10-01: 8_578 8: 2020-01-01: 8_649 + 2026-10-01: 8_997 9: 2020-01-01: 9_009 + 2026-10-01: 9_372 10: 2020-01-01: 9_369 + 2026-10-01: 9_747 11: 2020-01-01: 9_730 + 2026-10-01: 10_122 12: 2020-01-01: 10_090 + 2026-10-01: 10_496 13: 2020-01-01: 10_630 + 2026-10-01: 11_059 14: 2020-01-01: 11_171 + 2026-10-01: 11_621 15: 2020-01-01: 11_712 + 2026-10-01: 12_183 16: 2020-01-01: 12_252 + 2026-10-01: 12_746 12: 1: 2020-01-01: 6_346 + 2026-10-01: 6_537 2: 2020-01-01: 6_700 + 2026-10-01: 6_811 3: 2020-01-01: 7_054 + 2026-10-01: 7_021 4: 2020-01-01: 7_408 + 2026-10-01: 7_231 5: 2020-01-01: 7_763 + 2026-10-01: 7_440 6: 2020-01-01: 8_117 + 2026-10-01: 7_650 7: 2020-01-01: 8_471 + 2026-10-01: 8_803 8: 2020-01-01: 8_825 + 2026-10-01: 9_181 9: 2020-01-01: 9_193 + 2026-10-01: 9_563 10: 2020-01-01: 9_560 + 2026-10-01: 9_946 11: 2020-01-01: 9_928 + 2026-10-01: 10_328 12: 2020-01-01: 10_296 + 2026-10-01: 10_711 13: 2020-01-01: 10_847 + 2026-10-01: 11_284 14: 2020-01-01: 11_399 + 2026-10-01: 11_858 15: 2020-01-01: 11_951 + 2026-10-01: 12_432 16: 2020-01-01: 12_502 + 2026-10-01: 13_006 diff --git a/policyengine_us/tests/policy/baseline/gov/states/ut/dwf/ccap/copay/ut_ccap_copay.yaml b/policyengine_us/tests/policy/baseline/gov/states/ut/dwf/ccap/copay/ut_ccap_copay.yaml index 078cef732ec..c5cbc5e088c 100644 --- a/policyengine_us/tests/policy/baseline/gov/states/ut/dwf/ccap/copay/ut_ccap_copay.yaml +++ b/policyengine_us/tests/policy/baseline/gov/states/ut/dwf/ccap/copay/ut_ccap_copay.yaml @@ -1,9 +1,11 @@ # Tests for ut_ccap_copay (SPMUnit, MONTH, USD). -# Table 4 (effective April 1, 2026): the monthly copayment is a sliding -# scale by household size (2-12+), countable income group (1-16), and the -# number of children receiving the subsidy (one, two, or more than two). -# Group 1 has no copayment (R986-700-707(5)(a)). Countable income is set -# directly to pin the income group. +# Table 4: the monthly copayment is a sliding scale by household size +# (2-12+), countable income group (1-16), and the number of children +# receiving the subsidy (one, two, or more than two). Group 1 has no +# copayment (R986-700-707(5)(a)). Countable income is set directly to pin +# the income group. Periods in 2026 use the April 1, 2026 edition +# (encoded at the 2020-01-01 backdating floor); periods from October 2026 +# use the October 1, 2026 edition (the 2027-01 cases below). - name: Case 1, size 2 in income group 1 pays no copayment. period: 2026-01 @@ -274,3 +276,119 @@ # The padded two-child column repeats the one-child value, so the # copayment matches Case 2: size 2, group 2 -> 18. ut_ccap_copay: 18 + +- name: Case 12, October 2026 table, size 3 in income group 4 with two children. + period: 2027-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 30 + person2: + age: 3 + person3: + age: 6 + spm_units: + spm_unit: + members: [person1, person2, person3] + ut_ccap_countable_income: 3_300 # group 4 (3,095.01-3,504) + households: + household: + members: [person1, person2, person3] + state_code: UT + output: + # October 1, 2026 edition: size 3, group 4, two children -> 101 + # (up from 97 in the April 2026 edition). + ut_ccap_copay: 101 + +- name: Case 13, October 2026 table, size 2 at the group 2 upper bound. + period: 2027-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 30 + person2: + age: 3 + spm_units: + spm_unit: + members: [person1, person2] + ut_ccap_countable_income: 2_140 # inclusive group 2 upper bound + households: + household: + members: [person1, person2] + state_code: UT + output: + # Income exactly at the size 2 group 2 bound (2,140) stays in group 2: + # one child -> 18. + ut_ccap_copay: 18 + +- name: Case 14, October 2026 table, size 2 just above the group 2 bound. + period: 2027-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 30 + person2: + age: 3 + spm_units: + spm_unit: + members: [person1, person2] + ut_ccap_countable_income: 2_141 # group 3 (2,140.01-2,477) + households: + household: + members: [person1, person2] + state_code: UT + output: + # One dollar above the group 2 bound moves to group 3: one child -> 43 + # (up from 42 in the April 2026 edition). + ut_ccap_copay: 43 + +- name: Case 15, October 2026 table, income above the group 16 bound uses the group 16 copayment. + period: 2027-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 30 + person2: + age: 3 + spm_units: + spm_unit: + members: [person1, person2] + ut_ccap_countable_income: 6_000 # above the size 2 group 16 bound of 5,896 + households: + household: + members: [person1, person2] + state_code: UT + output: + # Same situation as Case 9 but on the October 2026 layer: size 2, + # group 16, one child -> 366 (up from 352). + ut_ccap_copay: 366 + +- name: Case 16, October 2026 table, size 4 in income group 16 with three children. + period: 2027-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 30 + person2: + age: 1 + person3: + age: 4 + person4: + age: 9 + spm_units: + spm_unit: + members: [person1, person2, person3, person4] + ut_ccap_countable_income: 8_500 # group 16 (8,288.01-8,670) + households: + household: + members: [person1, person2, person3, person4] + state_code: UT + output: + # October 1, 2026 edition: size 4, group 16, more than two children + # -> 580 (up from 558 in the April 2026 edition). + ut_ccap_copay: 580 diff --git a/policyengine_us/tests/policy/baseline/gov/states/ut/dwf/ccap/copay/ut_ccap_income_group.yaml b/policyengine_us/tests/policy/baseline/gov/states/ut/dwf/ccap/copay/ut_ccap_income_group.yaml index 745b56d2216..e1caef6531a 100644 --- a/policyengine_us/tests/policy/baseline/gov/states/ut/dwf/ccap/copay/ut_ccap_income_group.yaml +++ b/policyengine_us/tests/policy/baseline/gov/states/ut/dwf/ccap/copay/ut_ccap_income_group.yaml @@ -1,9 +1,11 @@ # Tests for ut_ccap_income_group (SPMUnit, MONTH, int). -# Table 4 (effective April 1, 2026) classifies monthly countable income -# into 16 groups per household size (2 through 12 or more). Each encoded -# limit is the inclusive upper bound of its group; income above a bound -# falls in the next group. Countable income is set directly to isolate the -# classification. +# Table 4 classifies monthly countable income into 16 groups per +# household size (2 through 12 or more). Each encoded limit is the +# inclusive upper bound of its group; income above a bound falls in the +# next group. Countable income is set directly to isolate the +# classification. Periods in 2026 use the April 1, 2026 edition (encoded +# at the 2020-01-01 backdating floor); periods from October 2026 use the +# October 1, 2026 edition (the 2027-01 cases below). - name: Case 1, size 2 with low income lands in group 1. period: 2026-01 @@ -272,3 +274,43 @@ # Classification never exceeds group 16; the 85% state median income # eligibility ceiling is applied separately in ut_ccap_income_eligible. ut_ccap_income_group: 16 + +- name: Case 13, October 2026 table, size 2 at the group 2 upper bound stays in group 2. + period: 2027-01 + input: + people: + person1: + age: 30 + person2: + age: 5 + spm_units: + spm_unit: + members: [person1, person2] + ut_ccap_countable_income: 2_140 # inclusive group 2 upper bound + households: + household: + members: [person1, person2] + state_code: UT + output: + # The October 1, 2026 edition raised the size 2 group 2 bound from + # 2,082 to 2,140, so 2,140 now stays in group 2. + ut_ccap_income_group: 2 + +- name: Case 14, October 2026 table, size 2 just above the group 2 bound moves to group 3. + period: 2027-01 + input: + people: + person1: + age: 30 + person2: + age: 5 + spm_units: + spm_unit: + members: [person1, person2] + ut_ccap_countable_income: 2_141 # above 2,140, group 3 (2,140.01-2,477) + households: + household: + members: [person1, person2] + state_code: UT + output: + ut_ccap_income_group: 3 From dd094b52ba016f2f1392d340c1e8aef75b4d3fff Mon Sep 17 00:00:00 2001 From: Ziming Date: Mon, 31 Aug 2026 16:17:35 -0400 Subject: [PATCH 2/3] Update UT annual subsidies test for the October 2026 copay layer The 2026 annual case now spans two Table 4 editions: nine months at the April 2026 copay (791/month) and three at the October 2026 copay (826/month, since the uprated bounds move the household from income group 5 to 4), totaling 9,597. Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_01ASXyC4DNpinDieKCdkNgL8 --- .../ut/dwf/ccap/ut_child_care_subsidies.yaml | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/policyengine_us/tests/policy/baseline/gov/states/ut/dwf/ccap/ut_child_care_subsidies.yaml b/policyengine_us/tests/policy/baseline/gov/states/ut/dwf/ccap/ut_child_care_subsidies.yaml index 3e44e96dff9..af08aa92361 100644 --- a/policyengine_us/tests/policy/baseline/gov/states/ut/dwf/ccap/ut_child_care_subsidies.yaml +++ b/policyengine_us/tests/policy/baseline/gov/states/ut/dwf/ccap/ut_child_care_subsidies.yaml @@ -66,11 +66,14 @@ output: # Computed end to end from raw inputs rather than setting ut_ccap # directly. Each month: countable income 3,000 - 100 (one earner) - # - 100 (medical) = 2,800 -> size 2 group 5 (2,722.01-3,041), one - # child -> copay 109; cap: licensed center three year old = 900; - # min(1,000, 900) - 109 = 791. Annual: 791 x 12 = 9,492, which the + # - 100 (medical) = 2,800; cap: licensed center three year old = 900. + # January-September (April 2026 table): size 2 group 5 + # (2,722.01-3,041), one child -> copay 109; min(1,000, 900) - 109 + # = 791. October-December (October 2026 table): the uprated bounds + # place 2,800 in group 4 (2,477.01-2,814) -> copay 74; + # 900 - 74 = 826. Annual: 9 x 791 + 3 x 826 = 9,597, which the # ut_child_care_subsidies aggregator passes into the federal # child_care_subsidies total (child_care_subsidy_programs.yaml). - ut_ccap: 9_492 - ut_child_care_subsidies: 9_492 - child_care_subsidies: 9_492 + ut_ccap: 9_597 + ut_child_care_subsidies: 9_597 + child_care_subsidies: 9_597 From 20bbfe9e38d4c7f91c546f028cd5de56a7ca8b53 Mon Sep 17 00:00:00 2001 From: Ziming Date: Tue, 1 Sep 2026 13:53:34 -0400 Subject: [PATCH 3/3] Address UT Table 4 review nits Adds the reviewer-requested October-layer tests (padded n/a cell, size 12 group 16 far corner, size 4 and size 10 group 15/16 boundary pairs documenting the as-published 12,846 bound), tightens the n/a-cell header comment in amount.yaml, and swaps the April 2026 citation to an archived capture of the Infosource page (verified to show the April edition), since Utah overwrites the live page at each reissue and publishes no date-stamped April PDF. The entry/exit eligibility tiers are tracked in #9372. Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_01ASXyC4DNpinDieKCdkNgL8 --- .../gov/states/ut/dwf/ccap/copay/amount.yaml | 20 +-- .../ut/dwf/ccap/copay/income_limits.yaml | 4 +- .../ut/dwf/ccap/copay/ut_ccap_copay.yaml | 68 ++++++++++ .../dwf/ccap/copay/ut_ccap_income_group.yaml | 121 ++++++++++++++++++ 4 files changed, 204 insertions(+), 9 deletions(-) diff --git a/policyengine_us/parameters/gov/states/ut/dwf/ccap/copay/amount.yaml b/policyengine_us/parameters/gov/states/ut/dwf/ccap/copay/amount.yaml index 8c76988b874..8647d791feb 100644 --- a/policyengine_us/parameters/gov/states/ut/dwf/ccap/copay/amount.yaml +++ b/policyengine_us/parameters/gov/states/ut/dwf/ccap/copay/amount.yaml @@ -9,13 +9,15 @@ description: Utah sets these monthly child care copayment amounts under the Chil # more), countable income group (1 through 16, classified with # copay/income_limits), and the number of children receiving the subsidy # (one, two, or more than two). Group 1 (income at or below 100% of the -# federal poverty level) has no copayment (R986-700-707(5)(a)). The -# published table marks child-count columns that exceed the possible -# number of children in the household size as n/a (household size 2: two -# or more children; size 3: more than two), which the October 2026 -# edition prints as 0 instead; in both layers these cells repeat the -# largest published column for that row so every lookup is defined, and -# they never bind in practice. +# federal poverty level) has no copayment (R986-700-707(5)(a)). +# +# Child-count columns that exceed the possible number of children in the +# household size (household size 2: two or more children; size 3: more +# than two) are printed as n/a in the April 2026 edition and as 0 in the +# October 2026 edition. Neither the n/a nor the 0 is stored: in both +# layers these structurally impossible cells repeat the row's largest +# published column so every lookup is defined; they can never bind (a +# two-person household cannot have two subsidized children). metadata: unit: currency-USD period: month @@ -30,7 +32,9 @@ metadata: - Children receiving subsidy reference: - title: Utah DWS Table 4 - Child Care Income Eligibility and Co-Payment (effective April 1, 2026) - href: https://jobs.utah.gov/Infosource/eligibilitymanual/Tables,_Appendicies,_and_Charts/Tables,_Appendicies,_and_Charts/Table_4_-_Child_Care_Income_Eligibility_and_Co-Payment.htm + # Archived capture of the Infosource page, which Utah + # overwrites in place at each reissue of Table 4. + href: http://web.archive.org/web/20260901174900/https://jobs.utah.gov/Infosource/eligibilitymanual/Tables,_Appendicies,_and_Charts/Tables,_Appendicies,_and_Charts/Table_4_-_Child_Care_Income_Eligibility_and_Co-Payment.htm - title: Utah DWS Table 4 - Child Care Income Eligibility and Co-Payment (effective October 1, 2026) href: https://jobs.utah.gov/occ/provider/table1026.pdf#page=1 - title: Utah Admin. Code R986-700-707(1) diff --git a/policyengine_us/parameters/gov/states/ut/dwf/ccap/copay/income_limits.yaml b/policyengine_us/parameters/gov/states/ut/dwf/ccap/copay/income_limits.yaml index 1fc25f4bc2a..ab24c3ba931 100644 --- a/policyengine_us/parameters/gov/states/ut/dwf/ccap/copay/income_limits.yaml +++ b/policyengine_us/parameters/gov/states/ut/dwf/ccap/copay/income_limits.yaml @@ -38,7 +38,9 @@ metadata: - Income group reference: - title: Utah DWS Table 4 - Child Care Income Eligibility and Co-Payment (effective April 1, 2026) - href: https://jobs.utah.gov/Infosource/eligibilitymanual/Tables,_Appendicies,_and_Charts/Tables,_Appendicies,_and_Charts/Table_4_-_Child_Care_Income_Eligibility_and_Co-Payment.htm + # Archived capture of the Infosource page, which Utah + # overwrites in place at each reissue of Table 4. + href: http://web.archive.org/web/20260901174900/https://jobs.utah.gov/Infosource/eligibilitymanual/Tables,_Appendicies,_and_Charts/Tables,_Appendicies,_and_Charts/Table_4_-_Child_Care_Income_Eligibility_and_Co-Payment.htm - title: Utah DWS Table 4 - Child Care Income Eligibility and Co-Payment (effective October 1, 2026) href: https://jobs.utah.gov/occ/provider/table1026.pdf#page=1 - title: Utah Admin. Code R986-700-710(6)(d) diff --git a/policyengine_us/tests/policy/baseline/gov/states/ut/dwf/ccap/copay/ut_ccap_copay.yaml b/policyengine_us/tests/policy/baseline/gov/states/ut/dwf/ccap/copay/ut_ccap_copay.yaml index c5cbc5e088c..105ca474246 100644 --- a/policyengine_us/tests/policy/baseline/gov/states/ut/dwf/ccap/copay/ut_ccap_copay.yaml +++ b/policyengine_us/tests/policy/baseline/gov/states/ut/dwf/ccap/copay/ut_ccap_copay.yaml @@ -392,3 +392,71 @@ # October 1, 2026 edition: size 4, group 16, more than two children # -> 580 (up from 558 in the April 2026 edition). ut_ccap_copay: 580 + +- name: Case 17, October 2026 table, a structurally impossible size 2 two-child cell uses the padded one-child value. + period: 2027-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 30 + person2: + age: 3 + spm_units: + spm_unit: + members: [person1, person2] + ut_ccap_countable_income: 2_000 # group 2 (1,803.01-2,140) + # The October 2026 edition prints 0 in the impossible size 2 + # multi-child cells (where the April edition printed n/a); the + # child count group is forced directly to reach the padded cell. + ut_ccap_child_count_group: TWO + households: + household: + members: [person1, person2] + state_code: UT + output: + # As in Case 11, the padded two-child column repeats the one-child + # value on the October 2026 layer: size 2, group 2 -> 18. + ut_ccap_copay: 18 + +- name: Case 18, October 2026 table, size 12 in income group 16 with three or more children. + period: 2027-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 40 + person2: + age: 38 + person3: + age: 12 + person4: + age: 11 + person5: + age: 10 + person6: + age: 9 + person7: + age: 8 + person8: + age: 7 + person9: + age: 6 + person10: + age: 5 + person11: + age: 4 + person12: + age: 3 + spm_units: + spm_unit: + members: [person1, person2, person3, person4, person5, person6, person7, person8, person9, person10, person11, person12] + ut_ccap_countable_income: 12_800 # group 16 (12,432.01-13,006) + households: + household: + members: [person1, person2, person3, person4, person5, person6, person7, person8, person9, person10, person11, person12] + state_code: UT + output: + # The far corner of the October 2026 table: size 12, group 16, more + # than two children -> 870 (up from 837 in the April 2026 edition). + ut_ccap_copay: 870 diff --git a/policyengine_us/tests/policy/baseline/gov/states/ut/dwf/ccap/copay/ut_ccap_income_group.yaml b/policyengine_us/tests/policy/baseline/gov/states/ut/dwf/ccap/copay/ut_ccap_income_group.yaml index e1caef6531a..b277ef8b784 100644 --- a/policyengine_us/tests/policy/baseline/gov/states/ut/dwf/ccap/copay/ut_ccap_income_group.yaml +++ b/policyengine_us/tests/policy/baseline/gov/states/ut/dwf/ccap/copay/ut_ccap_income_group.yaml @@ -314,3 +314,124 @@ state_code: UT output: ut_ccap_income_group: 3 + +- name: Case 15, October 2026 table, size 4 at the group 15 upper bound stays in group 15. + period: 2027-01 + input: + people: + person1: + age: 30 + person2: + age: 28 + person3: + age: 3 + person4: + age: 6 + spm_units: + spm_unit: + members: [person1, person2, person3, person4] + ut_ccap_countable_income: 8_288 # inclusive group 15 upper bound + households: + household: + members: [person1, person2, person3, person4] + state_code: UT + output: + ut_ccap_income_group: 15 + +- name: Case 16, October 2026 table, size 4 just above the group 15 bound moves to group 16. + period: 2027-01 + input: + people: + person1: + age: 30 + person2: + age: 28 + person3: + age: 3 + person4: + age: 6 + spm_units: + spm_unit: + members: [person1, person2, person3, person4] + ut_ccap_countable_income: 8_289 # group 16 (8,288.01-8,670) + households: + household: + members: [person1, person2, person3, person4] + state_code: UT + output: + ut_ccap_income_group: 16 + +# The October 2026 size 10 group 16 upper bound is encoded as published +# (12,846) although the surrounding sizes suggest 12,486 was intended; +# the group 16 bound only separates group 15 from group 16, so the +# classification below is identical under either reading (see the +# income_limits.yaml header comment). +- name: Case 17, October 2026 table, size 10 at the group 15 upper bound stays in group 15. + period: 2027-01 + input: + people: + person1: + age: 40 + person2: + age: 38 + person3: + age: 12 + person4: + age: 11 + person5: + age: 10 + person6: + age: 9 + person7: + age: 8 + person8: + age: 7 + person9: + age: 6 + person10: + age: 5 + spm_units: + spm_unit: + members: [person1, person2, person3, person4, person5, person6, person7, person8, person9, person10] + ut_ccap_countable_income: 11_935 # inclusive group 15 upper bound + households: + household: + members: [person1, person2, person3, person4, person5, person6, person7, person8, person9, person10] + state_code: UT + output: + ut_ccap_income_group: 15 + +- name: Case 18, October 2026 table, size 10 just above the group 15 bound moves to group 16. + period: 2027-01 + input: + people: + person1: + age: 40 + person2: + age: 38 + person3: + age: 12 + person4: + age: 11 + person5: + age: 10 + person6: + age: 9 + person7: + age: 8 + person8: + age: 7 + person9: + age: 6 + person10: + age: 5 + spm_units: + spm_unit: + members: [person1, person2, person3, person4, person5, person6, person7, person8, person9, person10] + ut_ccap_countable_income: 11_936 # group 16 (11,935.01-12,846 as published) + households: + household: + members: [person1, person2, person3, person4, person5, person6, person7, person8, person9, person10] + state_code: UT + output: + ut_ccap_income_group: 16