Skip to content

Fix benefit parameter accuracy (CO SS cap increase, KY CCAP SMI, KY K-TAP citation, SNAP ABAWD gate)#8942

Merged
MaxGhenis merged 4 commits into
PolicyEngine:mainfrom
MaxGhenis:codex/benefit-params-accuracy
Jul 6, 2026
Merged

Fix benefit parameter accuracy (CO SS cap increase, KY CCAP SMI, KY K-TAP citation, SNAP ABAWD gate)#8942
MaxGhenis merged 4 commits into
PolicyEngine:mainfrom
MaxGhenis:codex/benefit-params-accuracy

Conversation

@MaxGhenis

Copy link
Copy Markdown
Contributor

Summary

Accuracy fixes for benefit/tax parameters where encoded law was wrong or stale. Each issue was adjudicated against a primary source that was actually retrieved and read; only code contradicting a primary source was changed. Verdicts: three fixed, one verified-correct with a citation upgrade (no value change), one recommended for close-with-evidence (no change — the proposed value was not supported by the primary source).

All affected test trees pass locally (471 tests across the CO pension, KY DCBS, and SNAP work-requirement trees), including new YAML cases that reproduce the issue-reported scenarios.


Colorado age 55-64 Social Security subtraction cap increase — Fixes #8541

Verdict: CORRECT (fixed). HB24-1142 amended C.R.S. 39-22-104(4)(f)(III)(A). Verbatim from the signed act (retrieved from the CO General Assembly): for income tax years commencing on or after January 1, 2025, for a filer aged 55-64, the $20,000 cap on the pension/annuity subtraction "is increased to an amount equal to the total amount of such social security benefits" when (a) the taxpayer's total Social Security benefits included in federal taxable income exceed $20,000, and (b) AGI is "less than or equal to seventy-five thousand dollars if filing individually or ninety-five thousand dollars if filing jointly." The 2025 CO 104 Book (Subtractions Line 3) operationalizes this: a 55-64 filer with AGI at or below the threshold "may claim the subtraction for the entire amount of the social security benefits."

Before this change, co_social_security_subtraction_indv capped the 55-64 bracket at a flat $20,000 regardless of AGI.

Changes:

  • New parameters gov/states/co/tax/income/subtractions/pension/ss_cap_increase_agi_limit/{single,joint}.yaml ($75,000 / $95,000 from 2025-01-01; $0 before 2025, which disables the increase and preserves prior behavior).
  • co_social_security_subtraction_indv: for the 55-64 bracket, when taxable SS exceeds the cap and AGI is at or below the filing-status limit, the effective cap becomes the taxable SS amount. The pension-side subtraction already reduces its own cap by the SS subtraction, so no change was needed there.
  • Four new YAML test cases (single below/above threshold, joint between the two thresholds, and a 2024 case confirming the increase is not yet effective).

Source: HB24-1142 signed act (leg.colorado.gov/.../2024a_1142_signed.pdf), 2025 CO 104 Book p.18.

Local tests: co/tax/income/subtractions/pension/ — 10 passed.


Kentucky CCAP 85% SMI income limits to DCC-113 R.12/24 — Fixes #8631

Verdict: CORRECT (fixed). The model carried the DCC-113 R.11/23 schedule (effective 2023-10-01) for all years. The current published form is DCC-113 R.12/24, effective October 01, 2025, with higher limits. The form was retrieved and its table read directly (same CHFS URL the file already cites; CHFS overwrites the dcc11319.pdf slug on each revision, and the live content is now R.12/24 — header "R.12/24", "Effective October 01, 2025").

New 2025-10-01 monthly limits by family size: 2=$4,862, 3=$6,005, 4=$7,149, 5=$8,293, 6=$9,437, 7=$9,651, 8=$9,866; over 8 add $215 per additional member (was $186).

Changes:

  • Added the 2025-10-01 layer to income/smi_limit/main.yaml and updated additional.yaml (186 -> 215).
  • Three new YAML cases: an income above the 2023 size-2 limit but below the R.12/24 limit is eligible under the new schedule and ineligible before it; a case just above the new size-3 limit.

Source: DCC-113 R.12/24 (chfs.ky.gov/agencies/dcbs/dcc/Documents/dcc11319.pdf).

Local tests: ky/dcbs/ — 339 passed.


Kentucky K-TAP November 2025 payment maximum — closes #8286 (verified correct; citation upgraded, no value change)

Verdict: ALREADY CORRECT (no value change). The issue asked whether the encoded 2025-11-01 reduction is real and correctly mapped, given the prior source was only the KY FACES web app (which labels its axis "Number of Children"). A primary administrative source was located and read: the DCBS Division of Family Support Operation Manual Volume III, MS 2820, transmittal OMTL-682, revised 11/1/25. It gives the "Maximum Payment Scale" by "Number of Eligible Persons" as 1=$242, 2=$293, 3=$341, 4=$426, 5=$498, 6=$562, 7 or more=$627 — an exact match to the encoded 2025-11-01 values, and it confirms the axis is eligible-persons / assistance-unit size (resolving the "children vs eligible persons" ambiguity in favor of the model's existing mapping). 921 KAR 2:016 has not been amended (it still shows the 2023 $372-$964 schedule); the reduction was implemented administratively via the operations manual. Per MS 2810, the standard of need was unchanged (consistent with the existing file note).

Change: updated the file NOTE to record the verification and added the operations-manual citation. No parameter values changed.

Source: KY DCBS Operation Manual Volume III, MS 2820 (chfs.ky.gov/agencies/dcbs/dfs/Documents/OMVOLIII.pdf).


SNAP ABAWD dependent-child gate — Fixes #8863

Verdict: CORRECT (fixed). 7 CFR 273.24(c)(4) (retrieved verbatim) exempts a person "residing in a household where a household member is under age 18, even if the household member who is under 18 is not himself eligible for SNAP benefits." The exemption keys on the presence of any household member under the threshold, with no tax-unit-dependency requirement. The model's gate used is_tax_unit_dependent & under-threshold, so a non-dependent under-18 household member (e.g., a teen parent) failed to trigger the exemption. A second, duplicate layer (exempt_parent = is_parent & has_child) in meets_snap_abawd_work_requirements was dead code — whenever true, the upstream gate had already routed the person around the ABAWD test — and was narrower than the regulation.

Changes:

  • meets_snap_work_requirements_person: the gate now keys on any household (SPM-unit) member under the age threshold (18 pre-HR1 per 273.24(c)(4); 14 post-HR1 per 7 U.S.C. 2015(o)(3)(C)), regardless of dependency. This is now the single source of truth.
  • meets_snap_abawd_work_requirements: removed the dead is_parent & has_child branch and its now-unused inputs.
  • New YAML cases covering the non-dependent under-threshold member (teen-parent) edge case, pre- and post-HR1, plus the contrast case with no under-threshold member. Two prior cases that asserted the child exemption at the ABAWD-variable layer were corrected to assert it at the person-level gate where it now lives.

Caution honored: no waived_states/waiver ABAWD files were touched (avoiding overlap with the held PR #8872).

Source: 7 CFR 273.24(c)(3)-(c)(4); 7 U.S.C. 2015(o)(3)(C).

Local tests: usda/snap/eligibility/work_requirements/ — 122 passed.


Alaska SSP household-of-another payment-standard cents — recommend close with evidence (NO change)

Verdict: WRONG as filed — do not change. The issue proposes storing $368.33 / $464.33 for the household-of-another supplement (individual / couple-one-eligible), derived as 2026 APA maximum payment standards ($1,031 / $1,127) minus the 2026 SSI "B Individual" figure ($662.67). That arithmetic uses 2026 figures, but the PolicyEngine parameter cell is dated 2011-01-01 and traces to its primary reference, the SSA "State Assistance Programs for SSI Recipients, January 2011 — Alaska" table.

The 2011 SSA source was retrieved (via the Internet Archive; live ssa.gov is Akamai-blocked) and read directly. Table 1, "Optional state supplementation payment levels, January 2011 (in dollars)," State supplementation columns:

  • Living in the household of another — Individual 368.00, Couple 543.00
  • Living in the household of another with an ineligible spouse (couple, one eligible) — Individual 464.00

These are whole dollars, and they match the own-household cells ($362, $521) that the issue itself acknowledges are correct. The .34 cents in that document appear only in the "Combined federal and state" column (817.34 / 913.34), which is not the value PolicyEngine stores. PolicyEngine's HOUSEHOLD_OF_ANOTHER supplements of 368 / 464 are therefore correct as published for the 2011-dated parameter; the proposed .33 cents are an artifact of back-deriving from a different year and would introduce a fabricated value onto a 2011 parameter.

(Separately, the parameter has not been updated past 2011; bringing the whole Alaska APA supplement schedule current to the 2023-2026 standards would be a distinct backdating task, not the cents fix this issue requests.)

Source: SSA January 2011 Alaska Table 1 (ssa.gov/policy/docs/progdesc/ssi_st_asst/2011/ak.pdf, via Internet Archive capture 2012-01-13).

No code changed for this issue.


🤖 Generated with Claude Code

MaxGhenis and others added 3 commits July 6, 2026 15:04
…AP cite, SNAP ABAWD gate)

- CO (PolicyEngine#8541): implement HB24-1142 age 55-64 Social Security subtraction cap
  increase to full taxable SS when AGI <= $75k (single) / $95k (joint), from
  tax year 2025. New AGI-limit parameters; middle-bracket cap logic in
  co_social_security_subtraction_indv.
- KY CCAP (PolicyEngine#8631): update 85% SMI income limits to DCC-113 R.12/24
  (effective 2025-10-01); per-additional-person amount 186 -> 215.
- KY K-TAP (PolicyEngine#8286): Nov 2025 payment-maximum values verified correct against
  the DCBS Operation Manual Volume III (MS 2820, OMTL-682, R. 11/1/25), which
  keys the scale on "Number of Eligible Persons" (= assistance unit size);
  updated the file NOTE and added the operations-manual citation. No value
  change.
- SNAP ABAWD (PolicyEngine#8863): key the dependent-child exception on any household
  member under the age threshold per 7 CFR 273.24(c)(4) (not tax-unit
  dependency), and remove the dead duplicate is_parent & has_child branch.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…through

The pass-through deems compliance via SNAP's own requirements, so its
child exception must match 7 CFR 273.24(c)(4) household-member
semantics rather than the tax-dependency gate this PR removes from the
SNAP path.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@codecov

codecov Bot commented Jul 6, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 100.00%. Comparing base (f9e58e7) to head (1bd7f87).
⚠️ Report is 163 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff            @@
##              main     #8942   +/-   ##
=========================================
  Coverage   100.00%   100.00%           
=========================================
  Files            3         4    +1     
  Lines           55       103   +48     
  Branches         0         1    +1     
=========================================
+ Hits            55       103   +48     
Flag Coverage Δ
unittests 100.00% <100.00%> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Case 10 fails under the removed tax-dependency gate (the under-14
member is explicitly a non-dependent), so the mirror behavior is now
test-locked; case 11 pins the hours test binding absent a child.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@MaxGhenis
MaxGhenis marked this pull request as ready for review July 6, 2026 23:47
@MaxGhenis
MaxGhenis merged commit d9fc0cc into PolicyEngine:main Jul 6, 2026
35 checks passed
daphnehanse11 added a commit to daphnehanse11/policyengine-us that referenced this pull request Jul 7, 2026
Upstream PolicyEngine#8942 (merged after this branch was cut) removed the
exempt_parent path from meets_snap_abawd_work_requirements and made
meets_snap_work_requirements_person the single source of truth for the
7 CFR 273.24(c)(4) household-child exception. CI tests the merge with
main, which is why the parent cases failed there while passing locally.

Replace the person-level parent cases with a routing test at
meets_snap_work_requirements_person: an adult who complies with general
work requirements via work program participation but fails the 20-hour
ABAWD test is routed around the ABAWD test by a 15-year-old household
member under the pre-OBBBA threshold (18) and not under the post-OBBBA
threshold (14), plus a baseline-contrast case. Drop the diagnostic
scaffolding and update household-child wording.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment