Repository navigation
Pay South Dakota CCA from the July 2024 hourly county rates - #10815
Merged
Merged
Conversation
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Set calendar-year inputs for the hourly start and weekly transition cases. Link the private-charge source conflict to its draft pull request. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Multiply weekly care hours by 4.3 in float64. In float32, 50 weekly hours times 4.3 gave 215.0000153, and rounding up paid 216 hours instead of 215. The same error added an hour at 90, 100 and 110 weekly hours. Add cases at 15, 50, 90 and 100 weekly hours, and check every quarter hour from 0 to 100 weekly hours against integer arithmetic. Note in the coverage entry that the hourly special-needs ceiling needs the DSS approval input. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #10815 +/- ##
=========================================
Coverage 100.00% 100.00%
=========================================
Files 1 5 +4
Lines 37 89 +52
Branches 0 2 +2
=========================================
+ Hits 37 89 +52
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Contributor
Author
|
US + core hub merge audit, us#10815 at
🤖 Generated with Claude Code |
MaxGhenis
added a commit
that referenced
this pull request
Nov 14, 2026
Main now holds South Dakota's hourly child care rates (#10815), whose source-conflict candidate ends candidates.yaml, where this branch adds New York's. Keep both candidates, South Dakota's first. Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
MaxGhenis
added a commit
that referenced
this pull request
Nov 14, 2026
Keep both new source-conflict candidates: South Dakota's hourly child care cap from #10815 and Minnesota's AMT charitable floor. Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Add South Dakota CCA payments from July 2024 through July 2026, when the model previously returned zero. DSS publishes separate hourly schedules for family care, centers, before-and-after-school programs, and informal, in-home and relative care.
Convert authorized weekly need to monthly hours under Section 8 of the June 2025 manual: multiply it by 4.3 and round up, as DSS does when it turns 45 weekly hours into 194 monthly hours. Multiply in float64, so 50 weekly hours give 215 monthly hours, where float32 arithmetic gives 216. Apply the published special-needs ceiling after DSS approval under Section 19. Cap reimbursement at billed expenses before subtracting the copayment under ARSD 67:47:01:15 and 67:47:01:16.
Update South Dakota's coverage note to name the hourly schedule, record the remaining limits, and say that the hourly special-needs ceiling needs the approval input. Add a changelog fragment and record the private-charge source conflict in
source_conflicts/candidates.yaml.Closes #10712
Invariants
sd_ccaremains nonnegative and does not exceed those expenses.test_hourly_bounds_monotonicity_and_positive_paymentchecks these bounds;sd_cca.yamlchecks expense caps, zero inputs and copayments that exceed allowed costs.test_hourly_bounds_monotonicity_and_positive_paymentcompares separate simulations after each increase.sd_cca.yamlalso checks covered hourly months.test_monthly_hours_round_exact_products_upchecks every quarter hour from 0 to 100 weekly hours against integer arithmetic, andsd_cca.yamlpins 15, 40, 45, 50, 90 and 100 weekly hours.sd_ccaretains main's weekly formula.test_weekly_formula_matches_mainindependently aggregates weekly ceilings and samples periods from August 2026 through December 2030.sd_cca_weekly_rate.yamlalso checks the school-program mapping.See
policyengine_us/tests/core/test_sd_cca_hourly_rates_invariants.pyfor the property tests. The YAML cases underpolicyengine_us/tests/policy/baseline/gov/states/sd/dss/cca/check benefits and rates;rates/sd_cca_hourly_rate.yamlpins county rates, age boundaries, provider categories, enhancements and county defaults.Methodology choices
sd_cca_provider_type. Family care uses the family sheet; licensed centers use the center sheet; informal, in-home and relative providers use the flat informal sheet. Add a separate before-and-after-school value for the hourly school-program sheet; weekly payments use the licensed-center table.us-sd:cca-hourly-private-pay-capwithout adding a source-conflict marker.Validation
Pull request run 43603230729 at
0eb611de13passed all 36 jobs on GitHub's merge with main3ab9b19a11.Targeted YAML tests pass:
sd_cca.yaml(28),sd_cca_hourly_rate.yaml(25), andsd_cca_weekly_rate.yaml(17). The three tests intest_sd_cca_hourly_rates_invariants.pypass, as do 103 source-conflict checks and 872 program-registry checks (10 skipped). Ruff format and lint pass.Three mutants of the monthly-hours conversion each fail tests. Multiplying in float32 fails Cases 26 to 28 and
test_monthly_hours_round_exact_products_up; those cases then pay $820.80, $1,474.40 and $1,637.80 for 216, 388 and 431 hours. Rounding half to even fails Case 25 and the same test. Dropping the rounding fails Cases 22 and 25.The quarter-hour test adds one 401-household simulation to the core Python group, with a 0.12-second call. On a local macOS run with four numeric threads, the property file took 45 seconds of wall time and peaked at 1.27 GiB. Before the new test, it took 34 seconds and peaked at 1.27 GiB; host load varied between the two runs.
Microsimulation impact
We estimate that this branch changes none of the outputs below in 2025 on the default dataset. We compared
mainat75aee22d6dwith this branch at0eb611de13.sd_ccasd_child_care_subsidieschild_care_subsidiesstate_income_taxincome_taxhousehold_benefitshousehold_net_incomeWe estimate that this branch changes none of the outputs below in 2026 on the default dataset. We compared the same two commits.
sd_ccasd_child_care_subsidieschild_care_subsidiesstate_income_taxincome_taxhousehold_benefitshousehold_net_incomeOn that dataset, we estimate $0 of South Dakota child care assistance in 2025 and 2026 at both commits, so the household tests above show what this change does.
axiom: TheAxiomFoundation/rulespec-us#2232 queued (ARSD 67:47:01:10.02, 67:47:01:15 and 67:47:01:16 and DSS's July 2024 hourly rate sheets; the corpus lacks those sheets and the June 2025 manual, so the signed encoder can't run yet)
🤖 Generated with Claude Code