Repository navigation
Use the printed Virginia TANF Appendix 2 standards from July 2021 - #10503
Conversation
Store the 7/21 (Transmittal 71) and 7/22 (Transmittal 74) Section 304, Appendix 2 standards of assistance, amounts for each person above 10, and maximum reimbursable payments for Groups II and III as dated values, and read them for the period. The standard multiplier now scales the payment standards only before July 2020; the need standard and the TANF-UP schedule still use it in every period. Fixes #10450 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 #10503 +/- ##
=========================================
Coverage 100.00% 100.00%
=========================================
Files 4 2 -2
Lines 76 49 -27
Branches 2 0 -2
=========================================
- Hits 76 49 -27
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:
|
hua7450
left a comment
There was a problem hiding this comment.
Approving at 2321b93. Thanks, Pavel.
I checked every new 7/21 and 7/22 value against the printed Section 304, Appendix 2 tables: the standards for sizes 1 to 10, the amount for each person above 10, and the maximum, for Groups II and III. They all match. Transmittals 71 and 74 date them July 1, 2021 and July 1, 2022. The current Chapter 300 still prints the 7/22 tables, so no later increase is missing. min_(p.standard_multiplier, 1) is below 1 only before July 2020, so earlier results don't change. I recomputed every new and edited case in va_tanf_grant_standard.yaml and va_tanf.yaml, including the 2021 and 2022 annual cases across the July switches, and they match. Main's floor and $10 minimum (merged since this branch was cut) leave the new expectations unchanged.
Optional nits:
- January 2019 control case. "In January 2019 the maximum still scales the 7/20 maximum" asserts $518. The manual in force then (10/18 Chapter 300, 7/17 Appendix 2, Transmittal 62) prints a Group II maximum of $516. The case pins model behavior, which is fine, but its comment could say the printed 7/17 maximum is $516, so the $518 isn't read as the law's value. See the first follow-up.
standard_multiplierdescription and label. These still say it applies to the standards of assistance. Only the new YAML comment records the split. A user who raises the multiplier for a new increase would see the need standard and TANF-UP move but not the grant or maximum, because of themin_(..., 1). The description could name what it now scales.- Live Chapter 300 URL. The 7/22 references point to the live file, which VDSS will overwrite with the next table. The archived Transmittal 74, or a dated Wayback copy, would keep supporting the 2022-07-01 values.
- "Up to $1.59 a month". The changelog and body say this, but for units over 10 the shortfall reaches $3.77 (the per-person amount went from 93.555 to $95). For example, "by up to a few dollars a month".
- Stale test text.
va_tanf.yamlstill says "max payment = ceil(base_max * standard_multiplier)" in the cap-section header, and the two 2023 cases are named "capped at scaled max payment", though they now test the printed 7/22 maximums. Line 110 keeps "(ceil(625 * 1.155) = 722)".- The 2025 TANF-UP integration case's comment still derives both values from the multiplier.
- Tests.
- The two
va_tanf.yamlcases repeatva_tanf_grant_standardassertions that the grant-standard file already pins. - No case pins the July dates of
max.yaml. For example, a 2022 annual case with no income in Pittsylvania: 6 × 688 + 6 × 723 = 8,466.
- The two
- PR body. It says 10261 conflicts with main, but 10261 is now merged, and the "main" column predates its floor.
Follow-ups, outside this PR:
- Before July 2020 the standards and maximums still scale the 7/20 table. They differ from the printed 7/17 tables (Group II maximum $518 vs $516; Group III $618 vs $614). For 7/19, the standards differ (Group II size 3: 362.62 vs 363), though the maximums match. Storing the 7/17 and 7/19 tables would retire the multiplier for standards.
va_tanf_need_standardstill scales the 7/20 Maximum Income Chart. It falls below the printed 7/21 and 7/22 charts by up to about $1.69 for units of 1 to 10, and more for larger units.va_tanf_grant_standard,va_tanfandmax_unit_size.yamlcite atanfx2fviewURL that returns 404. In the live Chapter 300,#page=51is Section 305.3, not the standards.
Summary
From July 2021, PolicyEngine's Virginia TANF standards of assistance and maximum payment were up to $1.59 a month below the amounts printed in the TANF Manual, Section 304, Appendix 2. PE stored only the July 2020 table and multiplied it by a cumulative multiplier (1.1 from July 2021, 1.155 from July 2022). The manual instead prints a new table for each increase. Transmittal 71 (July 1, 2021), PDF page 1:
This PR stores the printed 7/21 and 7/22 Appendix 2 tables as dated values: the standard of assistance for units of 1 to 10, the amount for each person above 10, and the maximum reimbursable payment, for Groups II and III.
va_tanf_grant_standardand the TANF maximum inva_tanfread them for the period. The tables used (pdftotext -layout; all 72 values were checked against the extracted text by script):Group II, 7/22 (Chapter 300, PDF page 29), as extracted:
The full 7/20, 7/21 and 7/22 tables for both groups are in #10450.
Design. The multiplier still covers what has no printed table here. For periods before July 2020, the formulas scale the July 2020 table by
standard_multiplieras before (min_(p.standard_multiplier, 1)is below 1 only before July 2020 and 1 from then on). The need standard (va_tanf_need_standard) and the separate TANF-UP schedule (va_tanf_up_grant_standard, not in effect since #10253) still use the multiplier in every period. The need standard was not checked against its printed chart, so this PR leaves it unchanged. A comment instandard_multiplier.yamlrecords this split.spm_unit_size12 is one adult and eleven children; Pittsylvania is a Group II county and Arlington a Group III county (Section 304, Appendix 1).va_tanf_grant_standardva_tanf, no incomeThe standard sets the payment for units below the maximum (
va_tanf) and the step-2 income screen (va_tanf_income_eligibility), so both now read the printed amounts. Results before July 2021 do not change.Tests
Added to
va_tanf_grant_standard.yaml(expectations from the printed tables):Added to
va_tanf.yaml:va_tanf$723 (the 7/22 maximum; main $722).Changed:
va_tanf_grant_standard.yaml, January 2023 Group III size 1: $364.98 (316 × 1.155) → $366, the 7/22 printed amount.va_tanf.yaml, 2023 Group II cap: 12 × $722 = $8,664 → 12 × $723 = $8,676, the 7/22 printed maximum. Comments in the TANF-UP cap cases now cite the printed maximums; their values ($688, $820, $861) do not change.Results:
tests/policy/baseline/gov/states/va/dss/: 436 passed. With main's code, 16 of the new or changed cases fail, with the values in the table above.tests/code_health/: 503 passed; 2 failed (test_selective_test_batches.py, thewith_coverage=Truevariants), because the local environment has nopytest_cov; they do not read VA files.This branch merges cleanly with #10261 (the $10 minimum payment) in
va_tanf.py. #10261 already conflicts with main inva_tanf.yamlbecause of #10253; this branch adds no new conflict.Fixes #10450
axiom: TheAxiomFoundation/rulespec-us#1921 queued (open,
pe-parity; its plan encodes the 7/20, 7/21 and 7/22 Section 304, Appendix 2 standards and maximums by group "as printed", and the 10/21 manual and transmittals must be ingested into the corpus first)🤖 Generated with Claude Code